Giáo trình Mô hình Client Server trên SQL Server
MỤC LỤC
ĐỀ MỤC TRANG
1. LỜI TỰA . 3
2. MỤC LỤC . 4
3. GIỚI THIỆU VỀ MÔN HỌC . 6
4. CÁC HÌNH THỨC HỌC TẬP CHÍNH TRONG MÔN HỌC . 9
Bài 1: TỔNG QUAN VỀ MÔ HÌNH Client/Server . 10
1.1 Các kiến thức tổng quan về cơ sở dữ liệu. . 11
1.2 Các giai đoạn phát triển của một hệ quản trị cơ sở dữ liệu. . 11
1.3 Giới thiệu về mô hình Client server
và các hệ quản trị cơ sở dữ liệu phục vụ cho mô hình Client/Server. . 11
1.4 Các đặc trưng của mô hình Client/server . 12
BÀI 2: CẤU HÌNH CƠ SƠ DỮ LIỆU CLIENT/SERVER . 13
2.1 Tổng quan về cấu trúc Client/Server . 14
2.2 Các tầng cấu trúc . 14
2.3 Các mô hình dữ liệu của hệ thống Client/Server . 15
BÀI 3: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER . 19
3.1 Giới thiệu hệ quản trị cơ sở dữ liệu SQL Server. . 20
3.2 Cài đặt SQL Server . 21
3.3 Các thành phần cua Sql Server . 26
3.4 Các thao tác cơn bản trên môi trường SQL Server . 28
BÀI 4: CÁC THAO TÁC TRÊN SQL SERVER . 30
4.1 Đăng nhập vào SQL Server . 32
4.2 Các thành phần của SQL Server . 33
4.3 Các kiểu dữ liệu trong SQL Server . 34
4.4 Tạo cơ sở dữ liệu trong SQL Server . 35
3
4.5 Tạo bảng trong SQL Server . 36
4.6 Tạo quan hệ trong SQL Server . 39
4.7 Nhập dữ liệu trong SQL Server . 42
BÀI 5: THIẾT KẾ, BẢO TRÌ VÀ PHÁT TRIỂN MÔ HÌNH
CLIENT/SERVER . 44
5.1 Đọc hồ sơ thiết kế cơ sở dữ liệu . 46
5.2 Thiết kế cơ sở dữ liệu hoàn hảo ứng dụng cơ sở dữ liệu . 46
5.3 Bảo mật cơ sở dữ liệu . 46
5.4 Chuyển đổi cơ sở dữ liệu từ các nguồn cơ sở dữ liệu. 53
5.5 Sao lưu dự phòng cơ sở dữ lịêu . 58
5.6 Bảo trì cơ sở dữ liệu . 60
BÀI 6: LẬP TRÌNH TRÊN SQL SERVER . 62
6.1 Các câu lệnh SQL Server . 63
6.2 Lập tin batch . 77
6.3 Stored Procedure . 80
6.4 Trigger . 88
BÀI 7: KẾT NỐI ỨNG DỤNG VỚI CƠ SỞ DỮ LIỆU . 103
7.1 ODBC, JDBC . 103
7.2 ADO . 108
7.3 Data Environment . 110
7.4 OLE_DB . 118
7.5 Lập trình được trên các đối tượng Record Set . 120
THUẬT NGỮ CHUYÊN MÔN . 123
TÀI LIỆU THAM KHẢO . 124
sử dụng ADO để làm việc với cơ sở dữ liệu Client/Server thì dễ dàng hơn các kỹ thuật khác. Tuy nhiên, với xu hướng phát triển của công nghệ Internet thì việc kết nối dự liệu từ xa là một nhu cầu rất thực tế và thông dụng. Do đó, chúng ta sẽ tìm hiểu về đối tượng ADO trong môi trường Web, mà cụ thể là môi trường của ngôn ngữ kịch bản ASP. Để tạo một đối tượng Recordset ASP, chúng ta dùng phương thức CreateObject với cú pháp như sau: Dim rs „Khai báo biến recordset Set rs = Server.CreateObject(“ADODB.Recordset”) 111 Bởi vì đối tượng Server là mặc định của ASP nên ta không cần phải tham chiếu đến nó trực tiếp, có nghĩa là chúng ta có thể dùng CreateObject() thay vì Server.CreateObject(). Để tham chiếu đến một trường của đối tượng Recordset, chúng ta sử dụng một trong hai cú pháp sau: rs.Fields(“Tên trƣờng”) Hoặc: rs! Để đóng đối tượng Recordset lại, chúng ta dùng cú pháp: rs.Close set rs = nothing „hủy đối tƣợng Recordset Ví dụ sau sẽ mô tả tổng quát một cách sử dụng đối tượng ADO để hiển thị dang sách nhân viên trong cơ sở dữ liệu QuanLyNhanVien (quản lý nhân viên) đã được tạo bởi ODBC với tên DSN là QLNV: Hien thi dang sach nhan vien <% set rs = Server.CreateObject(“ADODB.Recordset”) rs.ActiveConnection = “DSN = QLNV” rs.Open “SELECT * FROM NHANVIEN WHERE Luong>=1000000” Do Until rs.EOF Response.write(“rs.Fields(“HotenNV”) & “ – “) Response.write(“rs.Fields(“NgaySinh”) & “– ”) Response.write(“rs.Fields(“Luong”) & “”) rs.MoveNext Loop rs.Close set rs = nothing %> 112 Chú ý: Ở ví dụ trên, đoạn lệnh VB Script được đặt trong cặp dấu . 7.3 Data Environment Trong phần này chúng ta sẽ tìm hiểu về cách sử dụng môi trường dữ liệu (Data Environment) để xây dựng một ứng dụng Visual Basic 6.0 kết nối đến cơ sở dữ liệu SQL, đối với các hệ quản trị cơ sở dữ liệu khác chúng ta cũng có cách làm tương tự. Trước tiên, chúng ta chắc chắn rằng đã thiết kế cơ sở dữ liệu QuanLyNhanVien như trên. Các bước thực hiện sau sẽ cho phép sử dụng đối tượng Textbox để điều khiển các bản ghi trong bảng NHANVIEN của cơ sở dữ liệu: 1. Trong môi trường Visual Basic, vào menu Prọect Add Data Environment: Hình 7.1:Add Data Environment một đối tượng Data Environment sẽ được bổ sung vào có tên DataEnvironment1 và một dối tượng Connection có tên Connection1 được tạo sẵn như hình sau: 113 Hình 7.2: Data Environment 1 2. Để với tên mặc định hoặc có thể thay đổi bằng cách nhắp chuột phải lên đối tượng Rename để đổi tên lại nếu bạn muốn. 3. Tạo kết nối cho đối tượng Connection1 bằng cách nhắp chuột phải lện tên Connection1 Properties, một cửa sổ sẽ xuất hiện: Hình 7.3:Properties Ở đây chung ta muốn kết nối tới cơ sở dữ liệu SQL Server nên sẽ chọn chuỗi kết nối Microsoft OLE DB Provider for SQL Server như hình trên, lưu ý nếu sử 114 dụng cơ sở dữ liệu khác thì sẽ dùng chuỗi kết nối khác trong danh sách tương ứng. Nhấn Next để tiếp tục và chọn tên cơ sở dữ liệu như hình dưới đây: Hình 7.4:Connection and select database - Nếu muốn hạn chế quyền truy cập thì chọn vào tab Advanced và thiết lập như hình dưới đây: 115 Hình 7.5: Advanced access permissions Nhấn OK để hoàn tất 4. Nhắp chuột phải lên tên đối tượng Connection1 Add Command để bổ sung vào một đối tượng Command1: Hình 7.6:Add Command 116 Hình 7.7:Command 5. Tiếp theo, nhắp chuột phải lên tên đối tượng Command1 Properties: Hình 7.8:Properties Một cửa sổ sau sẽ hiện ra: 117 Hình 7.9:General command properties 6. Đặt tên cho lệnh, giả sử ở đây chúng ta đặt tên là NHANVIEN, và trong Source of Data, chúng ta chọn Database Object là Table, chọn Object Name là NHANVIEN như hình sau: Hình 7.10:Object Name Nhấn OK để hoàn tất, chúng ta sẽ thấy xuất hiện một bảng NHANVIEN trong môi trường dữ liệu như sau: 118 Hình 7.11:bảng trong môi trường dữ liệu 7. Kết gán các trường cho các trường dữ liệu vào Form bằng cách nhắp chuột vào trường tương ứng và thả vò Form: Hình 7.12:Tạo Form 8. Sau khi hoàn tất, nhấn F5 để chạy thử chương trình, chúng ta sẽ thấy chương trình được hiển thị như sau: 119 Hình 7.13: chương trình được hiển thi Quả là rất đơn giản, chúng ta đã có thể hiển thị được dữ liệu của bảng nhân viên, nếu chúng ta thay đổi thông tin này thì dữ liệu cũng sẽ được cập nhật đối với cơ sở dữ liệu. Và dĩ nhiên sẽ chỉ thay đổi đối với bản ghi hiện hành, đối với ví dụ trên là bản ghi đầu tiên, nếu muốn di chuyển đến bản ghi khác chúng ta có thể dùng các phương thức MoveNext, MovePrevious,… của đối tượng Recordset trong DataEnvironment1: Private Sub cmdLui_Click() DataEnvironment1.rsNHANVIEN.MovePrevious End Sub Private Sub cmdToi_Click() DataEnvironment1.rsNHANVIEN.MoveNext End Sub Lưu ý, ở đoạn lệnh trên chúng ta đã sử dụng một đối tượng Recordset mặc định tên là rsNHANVIEN để trỏ đến bảng NHANVIEN do môi trường tự động sinh ra. Đoạn lệnh trên là thủ tục sự kiện của hai nút lệnh Lui và Tới. 120 7.4 OLE_DB Phần lớn các nhà lập trình không tương tác trực tiếp với OLE DB. Thay vào đó họ lập trình với đối tượng ADO, tuy nhiên chúng ta cũng cần phải biết mô hình đối tượng cung cấp giao diện với OLE DB. Chúng ta có thể tham khảo ba mô hình sau để có cái nhìn sâu hơn về OLE DB: Mô hình 1: Sử dụng ADO và OLE DB truy cập thông tin trong một cơ sở dữ liệu Client Application Client Workstation Remote Data Objects ODBC Driver ODBC Driver Maager ActiveX Data Objects OLE DB Data Provider OLE DB Document Server Email Server Relational Database 121 Mô hình 2: Cấu trúc truy cập cơ sở dữ liệu ODBC dùng trình cung cấp ODBC OLE DB. Internet Information Sever (IIS) ActiveX Server (DDL hoặc EXE) ADO OLE DB Database Trình duyệt Web Ứng dụng Client Máy chủ HTTP DCOM Client Application Client Workstation ODBC Driver ODBC Driver Maager ActiveX Data Objects OLE DB ODBC Provider OLE DB Relational Database 122 Mô hình 3: Cấu trúc sử dụng một thành phần chương trình ActiveX chung với cả trình duyệt Web và các ứng dụng Client. 7.5 Lập trình trên các đối tƣợng RecordSet Như một số ví dụ trên, chúng ta đã làm quen với đối tượng Recordset. Bây giờ chúng ta sẽ tìm hiểu rõ hơn về các phương thức, thuộc tính của đối tượng Recordset. * Các phƣơng thức của đối tƣợng Recordset: PHƢƠNG THỨC DIỄN GIẢI AddNew Tạo một bản ghi mới Cancel Hủy bỏ thao tác đang thực thi CancelBatch Hủy bỏ các cập nhật bị treo CancelUpdate Hủy bỏ các thay đổi với bản ghi hiện hành Clone Tạo một bản sao của đối tượng Recordset Close Đóng đối tượng Recordset và các đối tượng liên quan CompareBookmarks So sánh 2 chổ đánh dấu Delete Xóa bản ghi hay một tập bản ghi hiện hành Find Tìm một bản ghi thỏa điều kiện GetRows Lấy nhiều bản ghi đưa vào một mảng GetString Trả recordset về dưới dạng một chuổi Move Di chuyển vị trí của bản ghi hiện hành MoveFirst Đưa vị trí của bản ghi hiện hành đến bản ghi đầu tiên trong Recordset MoveLast Đưa vị trí của bản ghi hiện hành đến bản ghi cuối cùng trong Recordset MoveNext Đưa vị trí của bản ghi hiện hành đến bản ghi tiếp theo trong Recordset MovePrevious Đưa vị trí của bản ghi hiện hành đến bản ghi trước đó trong Recordset NextRecordset Xóa đối tượng recordset hiện hành và trả về đối tượng recordset kế tiếp Open Mở một Recordset 123 Requery Cập nhật lại dữ liệu bằng cách thực thi lại câu truy vấn ban đầu Resync Refresh lại dữ liệu trong đối tượng Recordset hiện hành Save Lưu recordset xuống file Seek Tìm chỉ mục của Recordset Supports Xác định xem đối tượng recordset có hổ trợ chức năng gì đặc biệt Update Lưu các thay đổi UpdateBatch Lưu các khối thay đổi xuống đĩa * Các thuộc tính của đối tƣợng Recordset: THUỘC TÍNH DIỄN GIẢI BOF Trả về giá trị là TRUE nếu vị trí bản ghi hiện thời nằm phía trước bản ghi đầu tiên, ngược lại là FALSE EOF Trả về giá trị là TRUE nếu vị trí bản ghi hiện thời nằm phía sau bản ghi cuối cùng, ngược lại là FALSE RecordCount Trả về số bản ghi trong Recordset Sort Sẵp xếp Để thấy rõ hơn lợi ích và tính khả thi của đối tượng Recordset trong các thao tác dữ liệu, chúng ta hãy xem xét cách thức kết nối và thao tác trên cơ sở dữ liệu SQL Server. Trong thực tế, người ta ít khi thực hiện việc kết nối trực tiếp qua đối tượng Recordset mà thường thông qua một đối tượng kết nối cơ sở dữ liệu gọi là đối tượng Connection nhằm tăng tính linh động và hiệu quả cho ứng dụng cũng như Website. Chuỗi kết nối OLE DB của hệ quản trị cơ sở dữ liệu SQL Server được cung cấp như sau: “Data Source = tên_server; Initial Catalog = tên_cơ_sở_dữ_liệu; User ID = tên_sử_dụng; Password = mật_khẩu” Ví dụ sau sẽ dùng đối tượng Connection kết nối dữ liệu, dùng đối tượng Recordset hiển thị thông tin nhân viên: <% Dim Conn 124 Dim rs Set Conn = server.CreateObject(“ADODB.Connection”) Conn.Open “DSN = QLNV” Dim sqlText sqlText = “SELECT * FROM NHANVIEN” Set rs = Conn.Execute(sqlText) While Not rs.EOF Response.Write(rs(“HotenNV”) & “ – “) Response.Write(rs(“NgaySinh”) & “ – “) Response.Write(rs(“Luong”) & “ “) rs.MoveNext WEnd Rs.Close Set rs = nothing Conn.Close %> BÀI TẬP THỰC HÀNH 1. Xây dựng một ứng dụng WEB bằng ngôn ngữ VB Script kết nối đến cơ sở dữ liệu SQL Server QuanLyNhanVien và thực hiện các công việc sau: - Hiển thị danh sách nhân viên và đơn vị. - Bổ sung các nhân viên và đơn vị. - Sửa đổi thông tin một nhân viên và đơn vị dựa vào mã nhân viên, mã đơn vị. - Xóa các nhân viên và đơn vị dựa vào mã nhân viên, mã đơn vị. 125 CÁC THUẬT NGỮ CHUYÊN MÔN 1. Database: Cơ sở dữ liệu 2. Server: Máy chủ 3. Client: Máy khách 126 TÀI LIỆU THAM KHẢO 1. Giáo trình SQL Server – Trần Nguyên Phong – Trường Đại học Khoa học Huế 2. Website: 3. ASP.NET- Kỹ thuật và ứng dụng – Nhà xuất bản thống kê 2002.
File đính kèm:
- Giáo trình Mô hình Client Server trên SQL Server.pdf