Giáo trình Mô hình Client/Server trên SQL Server - Nghề: Lập trình máy tính - Trình độ: Công nhân lành nghề bậc cao

pdf 61 trang Gia Huy 17/05/2022 3240
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Mô hình Client/Server trên SQL Server - Nghề: Lập trình máy tính - Trình độ: Công nhân lành nghề bậc cao", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfgiao_trinh_mo_hinh_clientserver_tren_sql_server_nghe_lap_tri.pdf

Nội dung text: Giáo trình Mô hình Client/Server trên SQL Server - Nghề: Lập trình máy tính - Trình độ: Công nhân lành nghề bậc cao

  1. BỘ LAO ĐỘNG - THƯƠNG BINH VÀ Xà HỘI TỔNG CỤC DẠY NGHỀ Dự án giáo dục kỹ thuật và dạy nghề (VTEP) tr×nh ®é ®µo t¹o cc GIÁO TRÌNH Mô đun: MÔ HÌNH CLIENT/SERVER TRÊN SQL SERVER Mã số: ITPRG3_17 NGHỀ: LẬP TRÌNH MÁY TÍNH Trình độ : Công nhân lành nghề bậc cao Đà Lạt - 2007 Hà Nội - 2004
  2. Tuyên bố bản quyền : Tài liệu này thuộc loại sách giáo trình Cho nên các nguồn thông tin có thể được phép dùng nguyên bản hoặc trích dùng cho các mục đích về đào tạo và tham khảo . Mọi mục đích khác có ý đồ lệch lạc hoặc sử dụng với mục đích kinh doanh thiếu lành mạnh sẽ bị nghiêm cấm. Tổng Cục Dạy nghề sẽ làm mọi cách để bảo vệ bản quyền của mình. Tổng Cục Dạy Nghề cám ơn và hoan nghênh các thông tin giúp cho việc tu sửa và hoàn thiện tốt hơn tàI liệu này. Địa chỉ liên hệ: Dự án giáo dục kỹ thuật và nghề nghiệp Tiểu Ban Phát triển Chương trình Học liệu 2
  3. LỜI TỰA Đây là tài liệu được xây dựng theo chương trình của dự án giáo dục kỹ thuật và dạy nghề, để có đươc giáo trình này dự án đã tiến hành theo hai giai đoạn. Giai đoạn 1 : Xây dựng chương trình theo phương pháp DACUM, kết quả của gian đoạn này là bộ khung chương trình gồm 230 trang cấp độ 2 và 170 trang cấp độ 3. Giai đoạn 2 : 29 giáo trình và 29 tài liệu hướng dẫn giáo viên cho nghề lập trình máy tính 2 cấp độ. Để có được khung chương trình chúng tôi đã mời các giáo viên, các chuyên gia đang làm việc trong lĩnh vực công nghệ thông tin cùng xây dựng chương trình. Trong giai đoạn viết giáo trình chúng tôi cũng đã có những sự điều chỉnh để giáo trình có tính thiết thực và phù hợp hơn với sự phát triển của lĩnh vực công nghệ thông tin. Hệ quản trị cơ sở dữ liệu SQL Server là một trong 2 hệ quản trị cơ sở dữ liệu mạng được sử dụng rộng rãi nhất hiện nay với khả năng linh hoạt và hiệu quả. Vì vậy trong mô đun này, chúng tôi chủ yếu giới thiệu mô hình Client/Server trên hệ quản trị cơ sở dữ liệu SQL Server 2000. Trong quá trình biên soạn, mặc dù đã cố gắng tham khảo nhiều tài liệu và giáo trình khác nhưng tác giả không khỏi tránh được những thiếu sót và hạn chế. Tác giả chân thành mong đợi những nhận xét, đánh giá và góp ý để cuốn giáo trình ngày một hoàn thiện hơn. Tài liệu này được thiết kế theo từng mô đun/ môn học thuộc hệ thống mô đun/môn học của một chương trình, để đào tạo hoàn chỉnh nghề Lập trình máy tính ở cấp trình độ bậc cao và được dùng làm Giáo trình cho học viên trong các khoá đào tạo, cũng có thể được sử dụng cho đào tạo ngắn hạn hoặc cho các công nhân kỹ thuật, các nhà quản lý và người sử dụng nhân lực tham khảo. Đây là tài liệu thử nghiệm sẽ được hoàn chỉnh để trở thành giáo trình chính thức trong hệ thống dạy nghề. 3
  4. 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 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 4
  5. 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 5
  6. GIỚI THIỆU VỀ MÔĐUN Vị trí, ý nghĩa, vai trò Môđun : Ngôn ngữ SQL (Structured Query Language), có tiền thân là SEQUEL, là một ngôn ngữ được IBM phát triển và sử dụng trong hệ cơ sở dữ liệu thử nghiệm có tên là System/R vào năm 1974, chính thức được ANSI/ISO công nhận là một chuẩn ngôn ngữ sử dụng trong cơ sở dữ liệu quan hệ vào năm 1986. Cho đến hiện nay, SQL đã được sử dụng phổ biển trong các hệ quản trị cơ sở dữ liệu thương mại và có vai trò quan trọng trong những hệ thống này. Giáo trình này là một thành phần của hệ thống giáo trình của Tổng cục dạy nghề. Giáo trình được biên soạn theo chương trình chính quy công nhân lành nghề ngành Công nghệ thông tin. Mục tiêu của Môđun: Sau khi học xong môđun này học viên có khả năng: Trình bày được các kiến thức về mô hình dữ liệu Client/Server và thể hiện cụ thể qua việc cài đặt trên hệ quản trị cơ sở dữ liệu SQL Server trên môi trường Windows. Mục tiêu thực hiện của môđun: Học xong môđun này học viên có khả năng: - Phân biệt được mô hình quản trị cơ sở dữ liệu Client/Server với các mô hình quản trị cơ sở dữ liệu khác. - Cài đặt được cơ sở dữ liệu SQL Server trên máy đơn và máy mạng. - Đăng nhập được vào SQL Server. - Tạo được cơ sở dữ liệu và các thành phần của cơ sở dữ liệu Client/Server . - Xây dựng được các ứng dụng đơn giản trên mô hình Client/Server - Quản trị được cơ sở dữ liệu Client/Server Nội dung chính của môn học: Bài 1: TỔNG QUAN VỀ MÔ HÌNH Client/Server BÀI 2: CẤU HÌNH CƠ SƠ DỮ LIỆU CLIENT/SERVER BÀI 3: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER BÀI 4: CÁC THAO TÁC TRÊN SQL SERVER BÀI 5: THIẾT KẾ, BẢO TRÌ VÀ PHÁT TRIỂN MÔ HÌNH CLIENT/SERVER BÀI 6: LẬP TRÌNH TRÊN SQL SERVER BÀI 7: KẾT NỐI ÚNG DỤNG VỚI CƠ SỞ DỮ LIỆU 6
  7. SƠ ĐỒ MỐI LIÊN HỆ GIỮA CÁC MÔ ĐUN VÀ MÔN HỌC TRONG CHƯƠNG TRÌNH Học kỳ V Học kỳ VI Tiếng Anh Lập trình nâng chuyên ngành cao hướng .NET Phát triển phần mềm ứng dụng Phân tích và thiết kế giải thuật Lý thuyết về ngôn ngữ lập trình Kho dữ liệu Mô hình client- server trên SQL Cấp độ 3 Cấp độ Cơ sở trí tuệ nhân server I. Phân tích tạo và hệ chuyên gia hướng đối tượng UML Tích hợp các ứng dụng trên mạng Lập trình logic An toàn thông tin Cơ sở dữ liệu Chuyên đề tự chọn nâng cao Trang 7
  8. Mô hình client/server trên SQL server là một môđun nâng cao đối với hệ công nhân lành nghề bậc cao. Để học được môđun này, học viên cần phải học qua các môn học cơ bản của cấp độ 2 như cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu, Những học viên qua kiểm tra và thi mà không đạt phải thu xếp cho học lại những phần chưa đạt ngay và phải đạt điểm chuẩn mới được phép học tiếp các mô đun/ môn học tiếp theo. Học viên, khi chuyển trường, chuyển ngành.nếu đã học ở một cơ sở đào tạo khác rồi thì phải xuất trình giấy chứng nhận; Trong một số trường hợp có thể vẫn phải qua sát hạch lại. 8
  9. CÁC HÌNH THỨC HỌC TẬP CHÍNH TRONG MÔN HỌC 1 - Học trên lớp về : - Tư tưởng lập trình theo mô hình client/server. - Cú pháp của ngôn ngữ SQL server. - Kiến thức về cơ sở dữ liệu quan hệ. - Các giải pháp kết nối cơ sở dữ liệu qua ứng dụng trên mạng. 2 - Học tại phòng học thực hành trường về: - Thiết kế cơ sở dữ liệu. - Sử dụng câu lệnh SQL. - Lập trình thủ tục, hàm, trigger quản lý cơ sở dữ liệu SQL. - Xây dựng ứng dụng Web kết nối và sử dụng cơ sở dữ liệu SQL. YÊU CẦU VỀ ĐÁNH GIÁ HOÀN THÀNH MÔĐUN Kỹ năng thực hành: - Sử dụng thành thạo ngôn ngữ SQL server. - Sử lý được các lỗi xảy ra. - Xây dựng thành công ứng dụng Web. Thái độ học viên: - Cẩn thận lắng nghe ý kiến và thảo luận trong nhóm thiết kế. - Học viên cần tuân thủ các bài tập thực hành theo thứ tự các chương, từ dễ đến khó. Đánh giá thông qua kiểm tra trắc nghiệm: Đánh giá học viên thực hiện 1 trong 2 cách sau: 1- Làm một ứng dụng nhỏ cụ thể, giải quyết một vấn đề cụ thể. 2- Thi trắc nghiệm, có thể thi trên giấy hoặc trên máy bẳng phần mềm thi trắc nghiệm. Thang điểm: 0-49: Không đạt 50-69 : Đạt trung bình 70-85 : Đạt khá 86-100: Đạt Giỏi 9
  10. BÀI 1 TỔNG QUAN VỀ MÔ HÌNH CLIENT/SERVER Mã bài : ITPRG3_17.1 Giới thiệu : Nhìn chung mọi ứng dụng cơ sở dữ liệu đều bao gồm các phần: - Thành phần xử lý ứng dụng (Application processing components) - Thành phần phần mềm cơ sở dữ liệu (Database software componets) - Bản thân cơ sở dữ liệu (The database itself) Các mô hình về xử lý cơ sở dữ liệu khác nhau là bởi các trường hợp của 3 loại thành phần nói trên định vị ở đâu. Bài này xin giới thiệu các mô hình kiến trúc dựa trên cấu hình phân tán về truy nhập dữ liệu của hệ thống máy tính Client/Server. Mục tiêu thực hiện: Học xong bài này học viên sẽ có khả năng: - Mô tả chính xác các mô hình Client/server - Xác định chính xác các nguyên tắc mô hình Client/server - Xác định chính xác các đặc trưng của mô hình Client/server - Mô tả được các tầng client và server của mô hình Client/server - So sánh được sự khác nhau giữa mô hình Client/ server và các mô hình cơ sở dữ liệu khác. - Tư vấn cho khách hàng về ý nghĩa của mô hình Client/Server và lợi ích khi sử dụng cơ sở dữ liệu theo mô hình này. Nội dung chính: 1.1 Các kiến thức tổng quan về cơ sở dữ liệu. 1.2 Các giai đoạn phát triển của một hệ quản trị cơ sở dữ liệu. 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. 1.4 Các đặc trưng của mô hình Client/server 10
  11. 1.1 Các kiến thức tổng quan về cơ sở dữ liệu. Ngôn ngữ CSDL được cài đặt khác nhau đối với các hệ quản trị CSDL khác nhau, tuy nhiên đều phải theo một chuẩn (Standard) nhất định. Bài học này sẽ cung cấp cho các học viên các kiến thức cơ bản về ngôn ngữ truy vấn có cấu trúc (Structured Query Language - SQL) CSDL, những cú pháp lệnh đã được chuẩn hóa trong hầu hết các hệ quản trị CSDL (DBMS). 1.2 Các giai đoạn phát triển của một hệ quản trị cơ sở dữ liệu. Những năm 1975-1976, IBM lần đầu tiên đưa ra hệ quản trị CSDL kiểu quan hệ mang tên SYSTEM-R với ngôn ngữ giao tiếp CSDL là SEQUEL (Structured English QUEry Language), đó một ngôn ngữ con để thao tác với CSDL. Năm 1976 ngôn ngữ SEQUEL được cải tiến thành SEQUEL2. Khoảng năm 1978- 1979 SEQUEL2 được cải tiến và đổi tên thành Ngôn Ngữ Truy Vấn Có Cấu Trúc (Structured Query Language - SQL) và cuối năm 1979 hệ quản trị CSDL được cải tiến thành SYSTEM-R. Năm 1986 Viện Tiêu Chuẩn Quốc Gia Mỹ (American National Standards Institute - ANSI) đã công nhận và chuẩn hóa ngôn ngữ SQL, và sau đó Tổ chức Tiêu chuẩn Thế giới (International Standards Organization - ISO) cũng đã công nhận ngôn ngữ này. Đó là chuẩn SQL-86. Tới nay SQL đã qua 3 lần chuẩn hóa lại (1989, 1992, 1996) để mở rộng các phép toán và tăng cường khả năng bảo mật và tính toàn vẹn dữ liệu. Tài liệu này trình bày Ngôn ngữ truy vấn CSDL dựa trên chuẩn SQL-92 và có tham khảo với SQL, SQL*PLUS, PL/SQL của Oracle Server Release 7.3 (1996) và MicroSoft SQL Server 7.1 với các phạm trù nêu trên. 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. Năm mô hình kiến trúc dựa trên cấu hình phân tán về truy nhập dữ liệu của hệ thống máy tính Client/Server. - Mô hình cơ sở dữ liệu tập trung (Centralized database model) - Mô hình cơ sở dữ liệu theo kiểu file - server (File - server database model) - Mô hình xử lý từng phần cơ sở dữ liệu (Database extract processing model) - Mô hình cơ sở dữ liệu Client/Server (Client/Server database model) 11
  12. - Mô hình cơ sở dữ liệu phân tán (Distributed database model) 1.4 Các đặc trưng của mô hình Client/server Mô hình Client/Server, mà cụ thể trong module này chúng ta sẽ tìm hiểu về mô hình của hệ quản trị cơ sở dữ liệu SQL. SQL được sử dụng để điều khiển tất cả các chức năng mà một hệ quản trị cơ sở dữ liệu cung cấp cho người dùng bao gồm: • Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở dữ liệu, các cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối quan hệ giữa các thành phần dữ liệu. • Truy xuất và thao tác dữ liệu: Với SQL, người dùng có thể dễ dàng thực hiện các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trong các cơ sở dữ liệu. • Điều khiển truy cập: SQL có thể được sử dụng để cấp phát và kiểm soát các thao tác của người sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở dữ liệu • Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ sở dữ liệu nhờ đó đảm bảo tính hợp lệ và chính xác của dữ liệu trước các thao tác cập nhật cũng như các lỗi của hệ thống. Như vậy, có thể nói rằng SQL là một ngôn ngữ hoàn thiện được sử dụng trong các hệ thống cơ sở dữ liệu và là một thành phần không thể thiếu trong các hệ quản trị cơ sở dữ liệu. Mặc dù SQL không phải là một ngôn ngữ lập trình như C, C++, Java, song các câu lệnh mà SQL cung cấp có thể được nhúng vào trong các ngôn ngữ lập trình nhằm xây dựng các ứng dụng tương tác với cơ sở dữ liệu. Khác với các ngôn ngữ lập trình quen thuộc như C, C++, Java, SQL là ngôn ngữ có tính khai báo. Với SQL, người dùng chỉ cần mô tả các yêu cầu cần phải thực hiện trên cơ sở dữ liệu mà không cần phải chỉ ra cách thức thực hiện các yêu cầu như thế nào. Chính vì vậy, SQL là ngôn ngữ dễ tiếp cận và dễ sử dụng. Bài tập: Câu 1: Cho ví dụ về một số hệ quản trị cơ sở dữ liệu theo mô hình Client/Server ? Câu 2: Hãy trình bày các đặt trưng của mô hình Client/Server? 12
  13. BÀI 2 CẤU HÌNH CƠ SƠ DỮ LIỆU CLIENT/SERVER Mã bài : ITPRG3_17.2 Giới thiệu : Trong module này chúng ta sẽ tìm hiểu về cấu trúc, mô hình Client/Server để từ đó chúng ta có một cái nhìn xâu hơn về hệ thóng Client/Server. Mục tiêu thực hiện: Học xong bài này học viên sẽ có khả năng: - Mô tả được chính xác các tầng cấu trúc - Diễn đạt được chính xác các mô hình cấu trúc dữ liệu của hệ thống Client/Server Nội dung chính: 2.1 Tổng quan về cấu trúc Client/Server 2.2 Các tầng cấu trúc 2.3 Các mô hình dữ liệu của hệ thống Client/Server 13
  14. 2.1 Tổng quan về cấu trúc Client/Server Trong mô hình cơ sở dữ liệu Client/Server, cơ sở dữ liệu nằm trên một máy khác với các máy có thành phần xử lý ứng dụng. Nhưng phần mềm cơ sở dữ liệu được tách ra giữa hệ thống Client chạy các chương trình ứng dụng và hệ thống Server lưu trữ cơ sở dữ liệu. Trong mô hình này, các thành phần xử lý ứng dụng trên hệ thống Client đưa ra yêu cầu cho phần mềm cơ sở dữ liệu trên máy client, phần mềm này sẽ kết nối với phần mềm cơ sở dữ liệu chạy trên Server. Phần mềm cơ sở dữ liệu trên Server sẽ truy nhập vào cơ sở dữ liệu và gửi trả kết quả cho máy Client. 2.2 Các tầng cấu trúc Theo kiến trúc ANSI-PARC, một CSDL có 3 mức biểu diển: Mức trong (còn gọi là mức vật lý - Physical), mức quan niệm (Conception hay Logical) và mức ngoài. Kiến thức tổng quát (ANSI – PARC) của một cơ sở dữ liệu 2.2.1. Mức trong: 14
  15. Đây là mức lưu trữ CSDL. Tại mức này, vấn đề cần giải quyết là, dữ liệu gì và được lưu trữ như thế nào? ở đâu (đĩa từ, băng từ, track, sector nào)? Cần các chỉ mục gì? Việc truy xuất là tuần tự (Sequential Access) hay ngẫu nhiên (Random Access) đối với từng loại dữ liệu. Những người hiểu và làm việc với CSDL tại mức này là người quản trị CSDL (Administrator), những người sử dụng (NSD) chuyên môn. 2.2.2. Mức quan niệm: Tại mức này sẽ giải quyết cho câu hỏi CSDL cần phải lưu giữ bao nhiêu loại dữ liệu? đó là những dữ liệu gì? Mối quan hệ giữa các loại dữ liệu này như thế nào? Từ thế giới thực (Real Universe) các chuyên viên tin học qua quá trình khảo sát và phân tích, cùng với những người sẽ đảm nhận vai trò quản trị CSDL, sẽ xác định được những loại thông tin gì được cho là cần thiết phải đưa vào CSDL, đồng thời mô tả rõ mối liên hệ giữa các thông tin này. Có thể nói cách khác, CSDL mức quan niệm là một sự biểu diễn trừu tượng CSDL mức vật lý; hoặc ngược lại, CSDL vật lý là sự cài đặt cụ thể của CSDL mức quan niệm. Từ môi trường thế giới thực, xuất phát từ nhu cầu quản lý, việc xác định các loại thông tin cần lưu trữ và các mối quan hệ giữa các thông tin đó như thế nào đó chính là công việc ở mức quan niệm. 2.2.3. Mức ngoài. Đó là mức của người sử dụng và các chương trình ứng dụng. Làm việc tại mức này có các nhà chuyên môn, các kỹ sư tin học và những người sừ dụng không chuyên. Mỗi người sử dụng hay mỗi chương trình ứng dụng có thể được "nhìn" (View) CSDL theo một góc độ khác nhau. Có thể "nhìn" thấy toàn bộ hay chỉ một phần hoặc chỉ là các thông tin tổng hợp từ CSDL hiện có. Người sử dụng hay chương trình ứng dụng có thể hoàn toàn không được biết về cấu trúc tổ chức lưu trữ thông tin trong CSDL, thậm chí ngay cả tên gọi của các loại dữ liệu hay tên gọi của các thuộc tính. Họ chỉ có thể làm việc trên một phần CSDL theo cách "nhìn" do người quản trị hay chương trình ứng dụng quy định, gọi là khung nhìn (View). 2.3 Các mô hình dữ liệu của hệ thống Client/Server 2.3.1 Mô hình cơ sở dữ liệu tập trung (Centralized database model) Trong mô hình này, các thành phần xử lý ứng dụng, phần mềm cơ sở dữ liệu và bản thân cơ sở dữ liệu đều ở trên một bộ xử lý. Ví dụ người dùng máy tính cá nhân có thể chạy các chương trình ứng dụng có sử dụng phần mềm cơ sở dữ liệu Oracle để truy nhập tới cơ sở dữ liệu nằm trên đĩa cứng 15
  16. của máy tính cá nhân đó. Từ khi các thành phần ứng dụng, phần mềm cơ sở dữ liệu và bản thân cơ sở dữ liệu cùng nằm trên một máy tính thì ứng dụng đã thích hợp với mô hình tập trung. Hầu hết công việc xử lý luồng thông tin chính được thực hiện bởi nhiều tổ chức mà vẫn phù hợp với mô hình tập trung. Ví dụ một bộ xử lý mainframe chạy phần mềm cơ sở dữ liệu IMS hoặc DB2 của IBM có thể cung cấp cho các trạm làm việc ở các vị trí phân tán sự truy nhập nhanh chóng tới cơ sở dữ liệu trung tâm. Tuy nhiên trong rất nhiều hệ thống như vậy, cả 3 thành phần của ứng dụng cơ sở dữ liệu đều thực hiện trên cùng một máy mainframe do vậy cấu hình này cũng thích hợp với mô hình tập trung. 2.3.2 Mô hình cơ sở dữ liệu theo kiểu file - server (File - server database model) Trong mô hình cơ sở dữ liệu theo kiểu file - server các thành phần ứng dụng và phần mềm cơ sở dữ liệu ở trên một hệ thống máy tính và các file vật lý tạo nên cơ sở dữ liệu nằm trên hệ thống máy tính khác. Một cấu hình như vậy thường được dùng trong môi trường cục bộ, trong đó một hoặc nhiều hệ thống máy tính đóng vai trò của server, lưu trữ các file dữ liệu cho hệ thống máy tính khác thâm nhập tới. Trong môi trường file - server, phần mềm mạng được thi hành và làm cho các phần mềm ứng dụng cũng như phần mềm cơ sở dữ liệu chạy trên hệ thống của người dùng cuối coi các file hoặc cơ sở dữ liệu trên file server thực sự như là trên máy tính của người chính họ. Mô hình file server rất giống với mô hình tập trung. Các file cơ sở dữ liệu nằm trên máy khác với các thành phần ứng dụng và phần mềm cơ sở dữ liệu; tuy nhiên các thành phần ứng dụng và phần mềm cơ sở dữ liệu có thể có cùng thiết kế để vận hành một môi trường tập trung. Thực chất phần mềm mạng đã làm cho phần mềm ứng dụng và phần mềm cơ sở dữ liệu tưởng rằng chúng đang truy nhập cơ sở dữ liệu trong môi trường cục bộ. Một môi trường như vậy có thể phức tạp hơn mô hình tập trung bởi vì phần mềm mạng có thể phải thực hiện cơ chế đồng thời cho phép nhiều người dùng cuối có thể truy nhập vào cùng cơ sở dữ liệu. 2.3.3 Mô hình xử lý từng phần cơ sở dữ liệu (Database extract processing model) Một mô hình khác trong đó một cơ sở dữ liệu ở xa có thể được truy nhập bởi phần mềm cơ sở dữ liệu, được gọi là xử lý dữ liệu từng phần . 16
  17. Với mô hình này, người sử dụng có thể tại một máy tính cá nhân kết nối với hệ thống máy tính ở xa nơi có dữ liệu mong muốn. Người sử dụng sau đó có thể tác động trực tiếp đến phần mềm chạy trên máy ở xa và tạo yêu cầu để lấy dữ liệu từ cơ sở dữ liệu đó. Người sử dụng cũng có thể chuyển dữ liệu từ máy tính ở xa về chính máy tính của mình và vào đĩa cứng và có thể thực hiện việc sao chép bằng phần mềm cơ sở dữ liệu trên máy cá nhân. Với cách tiếp cận này, người sử dụng phải biết chắc chắn là dữ liệu nằm ở đâu và làm như thế nào để truy nhập và lấy dữ liệu từ một máy tính ở xa. Phần mềm ứng dụng đi kèm cần phải có trên cả hai hệ thống máy tính để kiểm soát sự truy nhập dữ liệu và chuyển dữ liệu giữa hai hệ thống. Tuy nhiên, phần mềm cơ sở dữ liệu chạy trên hai máy không cần biết rằng việc xử lý cơ sở dữ liệu từ xa đang diễn ra vì người sử dụng tác động tới chúng một cách độc lập. 2.3.4 Mô hình cơ sở dữ liệu Client/Server (Client/Server database model) Mới nhìn, mô hình cơ sở dữ liệu Client/Server có vẻ giống như mô hình file - server, tuy nhiên mô hình Client/Server có rất nhiều thuận lợi hơn mô hình file - server. Với mô hình file - server, thông tin gắn với sự truy nhập cơ sở dữ liệu vật lý phải chạy trên toàn mạng. Một giao tác yêu cầu nhiều sự truy nhập dữ liệu có thể gây ra tắc nghẽn lưu lượng truyền trên mạng. Giả sử một người dùng cuối tạo ra một vấn tin để lấy dữ liệu tổng số, yêu cầu đòi hỏi lấy dữ liệu từ 1000 bản ghi, với cách tiếp cận file - server nội dung của tất cả 1000 bản ghi phải đưa lên mạng, vì phần mềm cơ sở dữ liệu chạy trên máy của người sử dụng phải truy nhập từng bản ghi để thoả mãn yêu cầu của người sử dụng. Với cách tiếp cận cơ sở dữ liệu Client/Server, chỉ có lời vấn tin khởi động ban đầu và kết quả cuối cùng cần đưa lên mạng, phần mềm cơ sở dữ liệu chạy trên máy lưu giữ cơ sở dữ liệu sẽ truy nhập các bản ghi cần thiết, xử lý chúng và gọi các thủ tục cần thiết để đưa ra kết quả cuối cùng. Front-end software Trong mô hình cơ sở dữ liệu Client/Server, thường nói đến các phần mềm front- end software và back-end software. Front-end software được chạy trên một máy tính cá nhân hoặc một workstation và đáp ứng các yêu cầu đơn lẻ riêng biệt, phần mềm này đóng vai trò của Client trong ứng dụng cơ sở dữ liệu Client/Server và thực hiện các 17
  18. chức năng hướng tới nhu cầu của người dùng cuối cùng, phần mềm Front-end software thường được chia thành các loại sau: - End user database software: Phần mềm cơ sở dữ liệu này có thể được thực hiện bởi người sử dụng cuối trên chính hệ thống của họ để truy nhập các cơ sở dữ liệu cục bộ nhỏ cũng như kết nối với các cơ sở dữ liệu lớn hơn trên cơ sở dữ liệu Server. - Simple query and reporting software: Phần mềm này được thiết kế để cung cấp các công cụ dễ dùng hơn trong việc lấy dữ liệu từ cơ sở dữ liệu và tạo các báo cáo đơn giản từ dữ liệu đã có. - Data analysis software: Phần mềm này cung cấp các hàm về tìm kiếm, khôi phục, chúng có thể cung cấp các phân tích phức tạp cho người dùng. - Application development tools: Các công cụ này cung cấp các khả năng về ngôn ngữ mà các nhân viên hệ thống thông tin chuyên nghiệp sử dụng để xây dựng các ứng dụng cơ sở dữ liệu của họ. Các công cụ ở đây bao gồm các công cụ về thông dịch, biên dịch đơn đến các công cụ CASE (Computer Aided Software Engineering), chúng tự động tất cả các bước trong quá trình phát triển ứng dụng và sinh ra chương trình cho các ứng dụng cơ sở dữ liệu. - Database administration Tools: Các công cụ này cho phép người quản trị cơ sở dữ liệu sử dụng máy tính cá nhân hoặc trạm làm việc để thực hiện việc quản trị cơ sở dữ liệu như định nghĩa các cơ sở dữ liệu, thực hiện lưu trữ hay phục hồi. Back-end software Phần mềm này bao gồm phần mềm cơ sở dữ liệu Client/Server và phần mềm mạng chạy trên máy đóng vai trò là Server cơ sở dữ liệu. 2.3.5 Mô hình cơ sở dữ liệu phân tán (Distributed database model) Cả hai mô hình File - Server và Client/Server đều giả định là dữ liệu nằm trên một bộ xử lý và chương trình ứng dụng truy nhập dữ liệu nằm trên một bộ xử lý khác, còn mô hình cơ sở dữ liệu phân tán lại giả định bản thân cơ sở dữ liệu có ở trên nhiều máy khác nhau. Bài tập: Câu 1: Hãy so sánh mô hình dữ liệu tập trung và mô hình dữ liệu phân tán ? Câu 2: Cho ví dụ về mô hình dữ liệu tập trung và mô hình dữ liệu phân tán hiện nay mà bạn biết? 18
  19. BÀI 3 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU SQL SERVER Mã bài : ITPRG3-17.3 Giới thiệu : SQL Server là một hệ thống quản lý cơ sở dữ liệu (Relational Database Management System (RDBMS) ) sử dụng Transact-SQL để trao đổi dữ liệu giữa Client computer và SQL Server computer. Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác nhau trong RDBMS. SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn (Very Large Database Environment) lên đến Tera-Byte và có thể phục vụ cùng lúc cho hàng ngàn user. SQL Server 2000 có thể kết hợp "ăn ý" với các server khác như Microsoft Internet Information Server (IIS), E-Commerce Server, Proxy Server Mục tiêu thực hiện: Học xong bài này học viên sẽ có khả năng: - Trình bày được đặc điểm của hệ quản trị cơ sở dữ liệu SQL SERVER, lịch sử phát triển, các thành phần - Cài đặt hệ quản trị CSDL Client/Server ở máy chủ và máy khách - Thao tác chính xác các tiến trình càI đặt, gỡ bỏ bộ cài đặt - Sử dụng thành thạo các điều khiển cơ bản trong cơ sở dữ liệu Client/Server. Nội dung: 3.1 Giới thiệu hệ quản trị cơ sở dữ liệu SQL Server. 3.2 Cài đặt SQL Server 3.3 Các thành phần cua Sql Server 3.4 Các thao tác cơ bản trên môi trường SQL Server 19
  20. 3.1 Giới thiệu hệ quản trị cơ sở dữ liệu SQL Server. Ngôn ngữ hỏi có cấu trúc (SQL) và các hệ quản trị cơ sở dữ liệu quan hệ là một trong những nền tảng kỹ thuật quan trọng trong công nghiệp máy tính. Cho đến nay, có thể nói rằng SQL đã được xem là ngôn ngữ chuẩn trong cơ sở dữ liệu. Các hệ quản trị cơ sở dữ liệu quan hệ thương mại hiện có như Oracle, SQL Server, Informix, DB2, đều chọn SQL làm ngôn ngữ cho sản phẩm của mình Vậy thực sự SQL là gì? Tại sao nó lại quan trọng trong các hệ quản trị cơ sở dữ liệu? SQL có thể làm được những gì và như thế nào? Nó được sử dụng ra sao trong các hệ quản trị cơ sở dữ liệu quan hệ? Nội dung của chương này sẽ cung cấp cho chúng ta cái nhìn tổng quan về SQL và một số vấn đề liên quan. SQL, viết tắt của Structured Query Language (ngôn ngữ hỏi có cấu trúc), là công cụ sử dụng để tổ chức, quản lý và truy xuất dữ liệu đuợc lưu trữ trong các cơ sở dữ liệu. SQL là một hệ thống ngôn ngữ bao gồm tập các câu lệnh sử dụng để tương tác với cơ sở dữ liệu quan hệ. Tên gọi ngôn ngữ hỏi có cấu trúc phần nào làm chúng ta liên tưởng đến một công cụ (ngôn ngữ) dùng để truy xuất dữ liệu trong các cơ sở dữ liệu. Thực sự mà nói, khả năng của SQL vượt xa so với một công cụ truy xuất dữ liệu, mặc dù đây là mục đích ban đầu khi SQL được xây dựng nên và truy xuất dữ liệu vẫn còn là một trong những chức năng quan trọng của nó. SQL được sử dụng để điều khiển tất cả các chức năng mà một hệ quản trị cơ sở dữ liệu cung cấp cho người dùng bao gồm: • Định nghĩa dữ liệu: SQL cung cấp khả năng định nghĩa các cơ sở dữ liệu, các cấu trúc lưu trữ và tổ chức dữ liệu cũng như mối quan hệ giữa các thành phần dữ liệu. • Truy xuất và thao tác dữ liệu: Với SQL, người dùng có thể dễ dàng thực hiện các thao tác truy xuất, bổ sung, cập nhật và loại bỏ dữ liệu trong các cơ sở dữ liệu. • Điều khiển truy cập: SQL có thể được sử dụng để cấp phát và kiểm soát các thao tác của người sử dụng trên dữ liệu, đảm bảo sự an toàn cho cơ sở dữ liệu • Đảm bảo toàn vẹn dữ liệu: SQL định nghĩa các ràng buộc toàn vẹn trong cơ sở dữ liệu nhờ đó đảm bảo tính hợp lệ và chính xác của dữ liệu trước các thao tác cập nhật cũng như các lỗi của hệ thống. 20
  21. Như vậy, có thể nói rằng SQL là một ngôn ngữ hoàn thiện được sử dụng trong các hệ thống cơ sở dữ liệu và là một thành phần không thể thiếu trong các hệ quản trị cơ sở dữ liệu. Mặc dù SQL không phải là một ngôn ngữ lập trình như C, C++, Java, song các câu lệnh mà SQL cung cấp có thể được nhúng vào trong các ngôn ngữ lập trình nhằm xây dựng các ứng dụng tương tác với cơ sở dữ liệu. Khác với các ngôn ngữ lập trình quen thuộc như C, C++, Java, SQL là ngôn ngữ có tính khai báo. Với SQL, người dùng chỉ cần mô tả các yêu cầu cần phải thực hiện trên cơ sở dữ liệu mà không cần phải chỉ ra cách thức thực hiện các yêu cầu như thế nào. Chính vì vậy, SQL là ngôn ngữ dễ tiếp cận và dễ sử dụng. 3.2 Cài đặt SQL Server Chúng ta cần có Standard Edition để có thể cài đặt SQL Server. Bạn có thể cài đặt SQL Server 7.0 trên mọi hệ điều hành Win9x/Win2K và có thể cài đặt SQL Server 2000 trên Windows Server hay Windows XP Professional, Windows 2000 Professional hay NT Workstation nhưng không thể cài đặt trên Win 98 family. Sau khi cài đặt bạn sẽ thấy một biểu tượng nằm ở góc phải bên dưới màn hình, đây chính là Service Manager. Bạn có thể Start, Stop các SQL Server services dễ dàng bằng cách double-click vào biểu tượng này. * Kiến thức về các Version của SQL Server SQL Server của Microsoft được thị trường chấp nhận rộng rãi kể từ version 6.5. Sau đó Microsoft đã cải tiến và hầu như viết lại một engine mới cho SQL Server 7.0. Cho nên có thể nói từ version 6.5 lên version 7.0 là một bước nhảy vọt. Có một số đặc tính của SQL Server 7.0 không tương thích với version 6.5. Trong khi đó từ Version 7.0 lên version 8.0 (SQL Server 2000) thì những cải tiến chủ yếu là mở rộng các tính năng về web và làm cho SQL Server 2000 đáng tin cậy hơn. * Các bước cài đặt SQL Server 2000 - Đặt đĩa CD vào sẽ tự động xuất hện cửa sổ sau (nếu không thấy xuất hiện hãy chạy tập tin autorun.exe trong thư mục gốc của đĩa CD) như hình 1: 21
  22. Hình 3.1 Sql server 2000 - Chọn SQL Server 2000 Components, và chọn Install Database Server ở bướckế tiếp, cửa sổ sau sẽ xuất hiện: Hình 3.2:Install Database Server 22
  23. - Nhấn Next để tiếp tục: Hình 3.3: chọn Local Computer nhấn Next để tiếp tục - Nếu cài trên máy cá nhân hãy để nguyên tùy chọn Local Computer và nhấn Next để tiếp tục, cửa sổ sau sẽ xuất hiện: Hình 3.4:nhấn Next để tiếp tục 23
  24. - Để nguyên tùy chọn Create a new instance of SQL Server,or install Client Tools và nhấn Next để tiếp tục rồi điền thông tin ở cửa sổ kế tiếp: Hình 3.5 Nhấn Next để tiếp tục - Nhấn Next để tiếp tục, cửa sổ sau xuất hiện: Hình 3.6:Chọn Yes nếu đồng ý cài đặt 24
  25. - Chọn Yes nếu đồng ý cài đặt hệ quản trị cơ sở dữ liệu SQL Server: Hình 3.7:chọn Server and Client Tools để cài đặt - Trên máy đơn, hệ thống vừa đóng vai trò là Server vừa là Client nên chúng ta nên để nguyên tùy chọn Server and Client Tools để cài đặt hết các công cụ cần thiết để quản trị. Ở các bước tiếp theo chúng ta nên chọn chế độ Local và sử dụng tài khoản đăng nhập là sa (password rỗng) để thuận tiện cho việc thực hành về sau. 3.3 Các thành phần cua Sql Server 25
  26. 3.4 Hình 3.8 Các thành phần cua Sql Server English Query - Một dịch vụ mà người Việt Nam chắc là ít muốn dùng. Ðây là một dịch vụ giúp cho việc query data bằng tiếng Anh "trơn" (plain English). SQL Server Books Online - Cho dù bạn có đọc các sách khác nhau dạy về SQL server thì bạn cũng sẽ thấy books online này rất hữu dụng và không thể thiếu được. SQL Server Tools - Ðây là một bộ đồ nghề của người quản trị cơ sở dữ liệu (DBA) Ở đây người viết chỉ kể ra một vài công cụ thông dụng mà thôi. . Ðầu tiên phải kể đến Enterprise Manager. Ðây là một công cụ cho ta thấy toàn cảnh hệ thống cơ sở dữ liệu một cách rất trực quan. Nó rất hữu ích đặc biệt cho người mới học và không thông thạo lắm về SQL. . Kế đến là Query Analyzer. Ðối với một DBA giỏi thì hầu như chỉ cần công cụ này là có thể quản lý cả một hệ thống database mà không cần đến những thứ khác. Ðây là một môi trường làm việc khá tốt vì ta có thể đánh bất kỳ câu lệnh SQL nào và chạy ngay lập tức đặc biệt là nó giúp cho ta debug mấy cái stored procedure dễ dàng. 26
  27. 3.5 Các thao tác cơ bản trên môi trường SQL Server SQL chuẩn bao gồm khoảng 40 câu lệnh. Bảng sau đây liệt kê các lệnh SQL thường được sử dụng nhất trong số các câu lệnh của SQL Server: Thao tác dữ liệu: Câu lệnh Chức năng SELECT Truy xuất dữ liệu INSERT Bổ sung dữ liệu UPDATE Cập nhật dữ liệu DELETE Xóa dữ liệu TRUNCATE Xóa toàn bộ dữ liệu trong bảng Định nghĩa dữ liệu: Câu lệnh Chức năng CREATE TABLE Tạo bảng DROP TABLE Xóa bảng ALTER TABLE Sửa đổi bảng CREATE VIEW Tạo khung nhìn DROP VIEW Xóa khung nhìn ALTER VIEW Sửa đổi khung nhìn CREATE INDEX Tạo chỉ mục DROP INDEX Xóa chỉ mục CREATE SCHEMA Tạo lược đồ cơ sở dữ liệu DROP SCHEMA Xóa lược đồ cơ sở dữ liệu CREATE PROCEDURE Tạo thủ tục lưu trữ DROP PROCEDURE Xóa thủ tục lưu trữ ALTER PROCEDURE Sửa thủ tục lưu trữ CREATE FUNCTION Tạo hàm (do người sử dụng định nghĩa) DROP FUNCTION Xóa hàm ALTER FUNCTION Sửa đổi hàm CREATE TRIGGER Tạo Trigger DROP TRIGGER Xóa Trigger ALTER TRIGGER Sửa đổi Trigger 27
  28. Điều khiển truy nhập: Câu lệnh Chức năng GRANT Cấp phát quyền cho người sử dụng REVOKE Thu hồi quyền đối với người sử dụng Quản lý giao tác: Câu lệnh Chức năng COMMIT Uỷ thác (kết thúc thành công) giao tác ROLLBACK Quay lui giao tác SAVE TRANSACTION Đánh dấu một điểm trong giao tác Lập trình: Câu lệnh Chức năng DECLARE Khai báo biến hoặc định nghĩa con trỏ OPEN Mở một con trỏ để truy xuất kết quả trừ FETCH Đọc một dòng trong kết quả của câu truy vấn (dùng con trỏ) CLOSE Đóng một con trỏ EXECUTE Thực thi một cấu lệnh SQL BÀI TẬP THỰC HÀNH 1. Cài đăt SQL Server 2000 với công cụ quản trị cơ sở dữ liệu. 2. Sử dụng Books Online để tra cứu thông tin cú pháp của câu lệnh Create Table, Select. 28
  29. BÀI 4 CÁC THAO TÁC TRÊN SQL SERVER MÃ BÀI ITPRG3_17.4 Giới thiệu: Trong bài này sẽ đề cập đến các thao tác trên SQL chủ yếu thông qua công cụ Enterprise Manager, không đề cập nhiều đến các lệnh của SQL Server. Trong bài sau sẽ tìm hiểu cụ thể các câu lệnh này. Mục tiêu thực hiện: Học xong bài này học viên sẽ có khả năng: - Đăng nhập được vào SQL Server - Phân biệt được các thành phần của SQL Server - Khai báo đúng các kiểu dữ liệu và phạm vi ứng dụng - Tạo được cơ sở dữ liệu trong SQL Server - Tạo được bảng trong SQL Server - Tạo được quan hệ trong SQL Server - Nhập và trang trí được dữ liệu trong SQL Server Nội dung: 4.1 Đăng nhập vào SQL Server 4.2 Các thành phần của SQL Server 4.3 Các kiểu dữ liệu trong SQL Server 4.4 Tạo cơ sở dữ liệu trong SQL Server 4.5 Tạo bảng trong SQL Server 4.6 Tạo quan hệ trong SQL Server 4.7 Nhập dữ liệu trong SQL Server 30
  30. 4.1 Đăng nhập vào SQL Server - Sau khi cài đặt thành công, việc đăng nhập sẽ được thực hiện qua các bước như sau: 1) Vào Start programs Microsoft SQL Server Service Manager, cửa sổ sau sẽ xuất hiện: Nhập tên Server (thường là tên máy) Chọn dịch vụ MSSQL Server Đánh dấu vào ô này nếu muốn dịch vụ tự động chạy khi hệ điều hành khởi động. Hình 4.1 Cài đặt SQL Server - Nhấn vào nút Start/Continue để bắt đầu chạy dịch vụ của SQL Server. Nếu thành công, cửa sổ sau sẽ xuất hiện: Hình 4.2 :chạy dịch vụ của SQL Server - Sau đó chúng ta có thể đóng cửa sổ này lại, một biểu tượng sẽ xuất hiện ở góc phải dưới của màn hình (trên thanh toolbars). Biểu tượng của Service Manager 31
  31. Hình 4.3 : biểu tượng trên thanh toolbars 2) Để đăng nhập vào hệ thống cơ sở dữ liệu của SQL Server, chúng ta thực hiện quy trình sau: - Vào Start Programs Microsoft SQL Server Query Analyzer, cửa sổ sau sẽ xuất hiện: Hình 4.4:Query Analyzer + Nhập tên server vào hộp SQL Server, thường tên Server là tên máy chủ cài đặt SQL hoặc nếu muốn đăng nhập vào chính máy của người sử dụng thì có thể gõ vào localhost. + Nhập tên đăng nhập vào hộp Login Name. + Nhập mật khẩu vào hộp Password. Nhấn OK để truy nhập vào hệ thống cơ sở dữ liệu của SQL Server. 4.2 Các thành phần của SQL Server SQL Server có nhiều dịch vụ chạy trên Windows NT/Windows 2000/XP/2003 hay các chương trình nền trên Windows 98. Những dịch vụ này là MSSQLServer, Search Service, MSDTC và SQLServerAgent. Ngoài ra OLAP là một dịch vụ khá hoàn hảo về kho dữ liệu. Dịch vụ MSSQL Server là trình quản lý cơ sở dữ liệu cốt lõi và là dịch vụ duy nhất phải chạy. Bộ phối hợp giao tác phân phối (MSDTC) tương tác với các SQL Server khác và với MS Transaction Server (MTS) để phối hợp các giao tác với những trình ứng dụng chạy trên nhiều máy tính hay công nghệ. Dịch vụ tìm kiếm (Search service) điều khiển việc tìm kiếm text, cho phép bạn tìm kiếm qua dữ liệu text trong cơ sở dữ liệu của bạn; 32
  32. dịch vụ này không được cài đặt theo mặc định, do đó nó có thể không hiện diện trên server của bạn. Dịch vụ SQLServerAgent là một bộ lập thời biểu tác vụ nhằm xử lý tất cả các tác vụ theo định kỳ, chẳng hạn như bảo trì và sao chép. Những tiến trình này hoạt động cùng với nhau để quản lý cho phép bạn truy cập các cơ sở dữ liệu. một SQL Server có thể điều khiển nhiều cơ sở dữ liệu trên cùng một Server. Mỗi SQL Server có tối thiểu các cơ sở dữ liệu như model, msdb, master và tempdb. Chúng ta sẽ thường tìm thấy hai cơ sở dữ liệu mẫu là Northwind và pubs cũng như các cơ sỡ dữ liệu của công việc riêng của chúng ta. 4.3 Các kiểu dữ liệu trong SQL Server Tên kiểu Mô tả CHAR (n) Kiểu chuỗi với độ dài cố định NCHAR (n) Kiếu chuỗi với độ dài cố định hỗ trợ UNICODE VARCHAR (n) Kiểu chuỗi với độ dài chính xác NVARCHAR (n) Kiểu chuỗi với độ dài chính xác hỗ trợ UNICODE 31 31 INTEGER Số nguyên có giá trị từ -2 đến 2 - 1 INT Như kiểu Integer TINYTINT Số nguyên có giá trị từ 0 đến 255. 15 15 SMALLINT Số nguyên có giá trị từ -2 đến 2 – 1 63 63 BIGINT Số nguyên có giá trị từ -2 đến 2 -1 NUMERIC (p,s) Kiểu số với độ chính xác cố định. DECIMAL (p,s) Tương tự kiểu Numeric FLOAT Số thực có giá trị từ -1.79E+308 đến 1.79E+308 REAL Số thực có giá trị từ -3.40E + 38 đến 3.40E + 38 MONEY Kiểu tiền tệ BIT Kiểu bit (có giá trị 0 hoặc 1) DATETIME Kiểu ngày giờ (chính xác đến phần trăm của giây) SMALLDATETIME Kiểu ngày giờ (chính xác đến phút) TIMESTAMP BINARY Dữ liệu nhị phân với độ dài cố định (tối đa 8000 bytes) VARBINARY Dữ liệu nhị phân với độ dài chính xác (tối đa 8000 bytes) 33
  33. IMAGE Dữ liệu nhị phân với độ dài chính xác (tối đa 2,147,483,647 bytes) TEXT Dữ liệu kiếu chuỗi với độ dài lớn (tối đa 2,147,483,647 ký tự) NTEXT Dữ liệu kiếu chuỗi với độ dài lớn và hỗ trợ UNICODE (tối đa 1,073,741,823 ký tự) 4.4 Tạo cơ sở dữ liệu trong SQL Server Chúng ta có hai cách để tạo một cơ sở dữ liệu: 4.4.1 Tạo mới cơ sở dữ liệu từ công cụ Enterprise Manager: Vào menu Start Programs Microsoft SQL Server Enterprise Manager, cửa số sau sẽ xuất hiện: Hình 4.5 :Enterprise Manager Nhấn chuột phải vào mục Databases New database , một cửa sổ sẽ hiện ra yêu cầu chúng ta nhập tên cơ sở dữ liệu: 34
  34. Hình 4.6 :nhập tên cơ sở dữ liệu Nhập tên cơ sở dữ liệu vào hộp Name (ví dụ trên đã đặt tên cơ sở dữ liệu là QuanLyHocVien), chúng ta có thể thay đổi kích thước lưu trữ giới hạn cho cơ sở dữ liệu bằng cách chọn vào tùy chọn In megabytes và nhập dung lượng sẽ lưu trữ cơ sở dữ liệu. 4.4.2 Tạo mới cơ sở dữ liệu bằng lệnh SQL: Đăng nhập với tài khoản sa, trong cửa sổ lệnh của công cụ Query Analyzer chúng ta gõ vào dòng lệnh Create Database với cú pháp như sau: Create Database [Các tham số nếu có] Để tìm hiểu chi tiết về các tham số, chúng ta có thể tham khảo trong thành phần Books Online. 4.5 Tạo bảng trong SQL Server Để tạo bảng cho môt cơ sở dữ liệu nào đó ta nhắp chuột vào dấu cộng (+) bên trái cơ sỡ dữ liệu tương ứng, chúng ta sẽ thấy một danh sách các thành phần của cơ sở dữ liệu sẽ mở ra: 35
  35. Hình 4.7:thành phần của cơ sở dữ liệu Nhắp chuột phải vào thành phần Tables (bảng) New Table đặt tên bảng: Hình 4.8:đặt tên bảng 36
  36. Sau khi nhập tên bảng hãy nhấn OK để xác nhận, nếu muốn bỏ qua thao tác tạo bảng hãy nhấn nút Cancel. Sau khi tạo bảng mới, chúng ta thiết kế bảng bằng cách nhập vào tên trường vào cột Column Name, chọn kiểu dữ liệu trong cột Datatype, đặt kích thước dữ liệu của trường trong cột Length, bỏ chọn Allow Nulls nếu muốn trường tương ứng không được để trống, chọn Identity nếu muốn tạo chỉ mục. Muốn tạo khóa chính cho trường nào thì chọn dòng tương ứng sau đó nhắp vào biểu tượng chìa khóa trên thanh công cụ. Chúng ta có thể kết hợp với phím Shift và Ctrl nếu muốn chọn nhiều dòng. Hình 4.9:tạo khoá chính Sau khi thiết kế bảng xong, chúng ta nhắp chuột vào biểu tượng đĩa mềm trên thanh công cụ để lưu bảng và nhấn vào dấu (X) bên dưới của cửa sổ Enterprise Manager để đóng bảng lại. Để sửa đổi cấu trúc bảng đã tạo chúng ta nhắp chuột phải vào bảng tương ứng chọn Design Table: 37
  37. Hình 4.10 Design Table 4.6 Tạo quan hệ trong SQL Server Để tạo quan hệ cho một cơ sở dữ liệu trong SQL Server, chúng ta nhắp chuột phải vào thành phần Diagrams của cơ sở dữ liệu tương ứng New Database Diagram 38
  38. Hình 4.11:New Database Diagram Một cửa sổ sẽ hiện ra: 39
  39. Hình 4.12 :Database Diagram Nhấn nút Next để tiếp tục, một cửa sổ sẽ hiện ra: Hình 4.13:Select Table Chọn bảng cần thiết lập quan hệ và nhấn nút Add để đưa các bảng này sang cửa sổ bên phải, chọn vào tùy chọn Add related tables automatically nếu muốn SQL tự động thiết lập quan hệ. 40
  40. Hình 4.14:Add related tables automatically Nhấn nút Next để tiếp tục: Hình 4.15:completing the create Database diagram wizard Nhấn nút Finish để hoàn tất. 4.7 Nhập dữ liệu trong SQL Server Để nhập dữ liệu cho các bảng, chúng ta có thể sử dụng nhanh chóng công cụ Enterprise Manager thông qua các bước như sau: + Trong cửa sổ Enterprise Manager, chúng ta chọn cơ sở dữ liệu chọn Tables. + Nhấn chuột phải lên bảng cần nhập dữ liệu, chọn Open Table: 41
  41. Hình 4.16:Nhập dữ liệu trong SQL Server + Nếu muốn nhập dữ liệu với hiện trạng xem tất cả các dòng dữ liệu thì chọn Return all rows (như hình minh họa), nếu muốn xem một số dòng đầu tiên thì chọn Reture Top , hoặc muốn định nghĩa riêng một truy vấn trả về các dòng dữ liệu theo ý của người sử dụng thì chọn Query. Hình 4.17:bảng dữ liệu Trong cửa sổ hiện ra cho phép chúng ta nhập dữ liệu như cách thông thường chúng ta đã nhập dữ liệu với cơ sở dữ liệu Access. 42
  42. BÀI TẬP THỰC HÀNH 1. Tạo một cơ sở dữ liệu tên QuanLyNhanVien. 2. Tạo và thiết lập quan hệ cho hai bảng như sơ đồ sau: 3. Nhập dữ liệu cho hai bảng, mỗi bảng ít nhất 10 bản ghi. 43
  43. BÀI 5 THIẾT KẾ, BẢO TRÌ VÀ PHÁT TRIỂN MÔ HÌNH CLIENT/SERVER MÃ BÀI: ITPRG3_17.5 Giới thiệu: Đối với một doanh nghiệp thương mại điện tử, một cơ quan chính phủ, thì dữ liệu cực kỳ quan trọng và bảo mật. Vì vậy, đối với một chuyên gia quản lý cơ sở dữ liệu cần hết sức lưu ý về cách thức và giải pháp lưu trữ. Ngoài việc sử dụng công nghệ sao lưu tự động với nhiều bản, nhiều vị trí khác nhau, người quản trị còn phải thường xuyên theo dõi, điều hành để đảm bảo dữ liệu được an toàn tuyệt đối. Trong bài này chúng ta sẽ tìm ra những phương pháp để giải quyết vấn đề trên. Mục tiêu thực hiện: Học xong bài này học viên sẽ có khả năng: - Thiết kế được các cơ sở dữ liệu Client/Server với qui mô vừa và nhỏ - Quản lý được các tập tin CSDL trên mô hình client/server - Quản lý được các thực thể của CSDL và từ điển dữ liệu - Xây dựng được một số ứng dụng vừa và nhỏ trên môi trường Client/Server Nội dung: 5.1 Đọc hồ sơ thiết kế cơ sở dữ liệu 5.2 Thiết kế cơ sở dữ liệu hoàn hảo ứng dụng cơ sở dữ liệu 5.3 Bảo mật cơ sở dữ liệu 5.4 Chuyển đổi cơ sở dữ liệu từ các nguồn cơ sở dữ liệu 5.5 Sao lưu dự phòng cơ sở dữ lịêu 5.6 Bảo trì cơ sở dữ liệu 44
  44. 5.1 Đọc hồ sơ thiết kế cơ sở dữ liệu Bước đầu tiên của việc thiết kế cơ sở dữ liệu là chúng ta phải biết cách đọc hộ sơ thiết kế cơ sở dữ liệu. Việc đọc được sơ đồ này đòi hỏi chúng ta phải nắm rõ các ký hiệu và quy định đã được trình bày trong môn học Cơ sở dữ liệu. 5.2 Thiết kế cơ sở dữ liệu hoàn hảo ứng dụng cơ sở dữ liệu Khi thiết kế cơ sở dữ liệu chúng ta cần hết sức cẩn thận vì việc thiết kế sai, thiếu sót dẫn dến mất rất nhiều công sức và tiền bạc. Việc xây dựng một ứng dụng hay một Website có thành công hay không thì điều đầu tiên phải nói đến là cơ sở dữ liệu có tốt hay không, có an toàn và hiệu quả hay không. Do đó yêu cầu chúng ta phải quan tâm đúng mức để cơ sở dữ liệu được hoàn hảo trước khi chuyển sang bước lập trình. 5.3 Bảo mật cơ sở dữ liệu 5.3.1 Các khái niệm Bảo mật là một trong những yếu tố đóng vai trò quan trọng đối với sự sống còn của cơ sở dữ liệu. Hầu hết các hệ quản trị cơ sở dữ liệu thương mại hiện nay đều cung cấp khả năng bảo mật cơ sở dữ liệu với những chức năng như: • Cấp phát quyền truy cập cơ sở dữ liệu cho người dùng và các nhóm người dùng, phát hiện và ngăn chặn những thao tác trái phép của người sử dụng trên cơ sở dữ liệu. • Cấp phát quyền sử dụng các câu lệnh, các đối tượng cơ sở dữ liệu đối với người dùng. • Thu hồi (huỷ bỏ) quyền của người dùng. Bảo mật dữ liệu trong SQL được thực hiện dựa trên ba khái niệm chính sau đây: • Người dùng cơ sở dữ liệu (Database user): Là đối tượng sử dụng cơ sở dữ liệu, thực thi các thao tác trên cơ sở dữ liệu như tạo bảng, truy xuất dữ liệu, Mỗi một người dùng trong cơ sở dữ liệu được xác định thông qua tên người dùng (User ID). Một tập nhiều người dùng có thể được tổ chức trong một nhóm và được gọi là nhóm người dùng (User Group). Chính sách bảo mật cơ sở dữ liệu có thể được áp dụng cho mỗi người dùng hoặc cho các nhóm người dùng. • Các đối tượng cơ sở dữ liệu (Database objects): Tập hợp các đối tượng, các cấu trúc lưu trữ được sử dụng trong cơ sở dữ liệu như bảng, khung nhìn, 45
  45. thủ tục, hàm được gọi là các đối tượng cơ sở dữ liệu. Đây là những đối tượng cần được bảo vệ trong chính sách bảo mật của cơ sở dữ liệu. • Đặc quyền (Privileges): Là tập những thao tác được cấp phát cho người dùng trên các đối tượng cơ sở dữ liệu. Chằng hạn một người dùng có thể truy xuất dữ liệu trên một bảng bằng câu lệnh SELECT nhưng có thể không thể thực hiện các câu lệnh INSERT, UPDATE hay DELETE trên bảng đó. SQL cung cấp hai câu lệnh cho phép chúng ta thiết lập các chính sách bảo mật trong cơ sở dữ liệu: • Lệnh GRANT: Sử dụng để cấp phát quyền cho người sử dụng trên các đối tượng cơ sở dữ liệu hoặc quyền sử dụng các câu lệnh SQL trong cơ sở dữ liệu. • Lệnh REVOKE: Được sử dụng để thu hồi quyền đối với người sử dụng. 5.3.2 Cấp phát quyền Câu lệnh GRANT được sử dụng để cấp phát quyền cho người dùng hay nhóm người dùng trên các đối tượng cơ sở dữ liệu. Câu lệnh này thường được sử dụng trong các trường hợp sau: • Người sở hữu đối tượng cơ sở dữ liệu muốn cho phép người dùng khác quyền sử dụng những đối tượng mà anh ta đang sở hữu. • Người sở hữu cơ sở dữ liệu cấp phát quyền thực thi các câu lệnh (như CREATE TABLE, CREATE VIEW, ) cho những người dùng khác. 5.3.2.1 Cấp phát quyền cho người dùng trên các đối tượng cơ sở dữ liệu Chỉ có người sở hữu cơ sở dữ liệu hoặc người sở hữu đối tượng cơ sở dữ liệu mới có thể cấp phát quyền cho người dùng trên các đối tượng cơ sở dữ liệu. Câu lệnh GRANT trong trường hợp này có cú pháp như sau: GRANT ALL [PRIVILEGES]| các_quyền_cấp_phát [(danh_sách_cột)] ON tên_bảng | tên_khung_nhìn |ON tên_bảng | tên_khung_nhìn [(danh_sách_cột)] |ON tên_thủ_tục |ON tên_hàm TO danh_sách_người_dùng | nhóm_người_dùng [WITH GRANT OPTION ] Trong đó: ALL Cấp phát tất cả các quyền cho người dùng trên đối tượng cơ sở dữ 46
  46. [PRIVILEGES] liệu được chỉ định. Các quyền có thể cấp phát cho người dùng bao gồm: • Đối với bảng, khung nhìn, và hàm trả về dữ liệu kiểu bảng: SELECT, INSERT, DELETE, UPDATE và REFERENCES. • Đối với cột trong bảng, khung nhìn: SELECT và UPDATE. • Đối với thủ tục lưu trữ và hàm vô hướng: EXECUTE. Trong các quyền được đề cập đến ở trên, quyền REFERENCES được sử dụng nhằm cho phép tạo khóa ngoài tham chiếu đến bảng cấp phát. các_quyền_cấp_phát Danh sách các quyền cần cấp phát cho người dùng trên đối tượng cơ sở dữ liệu được chỉ định. Các quyền được phân cách nhau bởi dấu phẩy tên_bảng | Tên của bảng hoặc khung nhìn cần cấp phát quyền. tên_khung_nhìn danh_sách_cột Danh sách các cột của bảng hoặc khung nhìn cần cấp phát quyền. tên_thủ_tục Tên của thủ tục được cấp phát cho người dùng. tên_hàm Tên hàm (do người dùng định nghĩa) được cấp phát quyền. danh_sách_người_dùng Danh sách tên người dùng nhận quyền được cấp phát. Tên của các người dùng được phân cách nhau bởi dấu phẩy. WITH GRANT OPTION Cho phép người dùng chuyển tiếp quyền cho người dùng khác. Các ví dụ dưới đây sẽ minh hoạ cho ta cách sử dụng câu lệnh GRANT để cấp phát quyền cho người dùng trên các đối tượng cơ sở dữ liệu. Ví dụ 1: Cấp phát cho người dùng có tên thuchanh quyền thực thi các câu lệnh SELECT, INSERT và UPDATE trên bảng LOP 47
  47. GRANT SELECT,INSERT,UPDATE ON lop TO thuchanh Cho phép người dùng thuchanh quyền xem họ tên và ngày sinh của các sinh viên (cột HODEM,TEN và NGAYSINH của bảng SINHVIEN) GRANT SELECT (hodem,ten,ngaysinh) ON sinhvien TO thuchanh hoặc: GRANT SELECT ON sinhvien(hodem,ten,ngaysinh) TO thuchanh FROM sinhvien Với quyền được cấp phát như trên, người dùng thuchanh có thể thực hiện câu lệnh sau trên bảng SINHVIEN SELECT hoden,ten,ngaysinh Nhưng câu lệnh dưới đây lại không thể thực hiện được SELECT * FROM sinhvien Trong trường hợp cần cấp phát tất cả các quyền có thể thực hiện được trên đối tượng cơ sở dữ liệu cho người dùng, thay vì liệt kê các câu lệnh, ta chỉ cần sử dụng từ khoá ALL PRIVILEGES (từ khóa PRIVILEGES có thể không cần chỉ định). Câu lệnh dưới đây cấp phát cho người dùng thuchanh các quyền SELECT, INSERT, UPDATE, DELETE VÀ REFERENCES trên bảng DIEMTHI GRANT ALL ON DIEMTHI TO thuchanh Khi ta cấp phát quyền nào đó cho một người dùng trên một đối tượng cơ sở dữ liệu, người dùng đó có thể thực thi câu lệnh được cho phép trên đối tượng đã cấp phát. Tuy nhiên, người dùng đó không có quyền cấp phát những quyền mà mình được phép cho những người sử dụng khác.Trong một số trường hợp, khi ta cấp phát quyền cho một người dùng nào đó, ta có thể cho phép người đó chuyển tiếp quyền cho người dùng khác bằng cách chỉ định tuỳ chọn WITH GRANT OPTION trong câu lệnh GRANT. Ví dụ 2: Cho phép người dùng thuchanh quyền xem dữ liệu trên bảng SINHVIEN đồng thời có thể chuyển tiếp quyền này cho người dùng khác 48
  48. GRANT SELECT ON sinhvien TO thuchanh WITH GRANT OPTION 5.3.2.2 Cấp phát quyền thực thi các câu lệnh Ngoài chức năng cấp phát quyền cho người sử dụng trên các đối tượng cơ sở dữ liệu, câu lệnh GRANT còn có thể sử dụng để cấp phát cho người sử dụng một số quyền trên hệ quản trị cơ sở dữ liệu hoặc cơ sở dữ liệu. Những quyền có thể cấp phát trong trường hợp này bao gồm: • Tạo cơ sở dữ liệu: CREATE DATEBASE. • Tạo bảng: CREATE RULE • Tạo khung nhìn: CREATE VIEW • Tạo thủ tục lưu trữ: CREATE PROCEDURE • Tạo hàm: CREATE FUNCTION • Sao lưu cơ sở dữ liệu: BACKUP DATABASE Câu lệnh GRANT sử dụng trong trường hợp này có cú pháp như sau: GRANT ALL | danh_sách_câu_lênh TO danh_sách_người_dùng Ví dụ 3: Để cấp phát quyền tạo bảng và khung nhìn cho người dùng có tên là thuchanh, ta sử dụng câu lệnh như sau: GRANT CREATE TABLE,CREATE VIEW TO thuchanh Với câu lệnh GRANT, ta có thể cho phép người sử dụng tạo các đối tượng cơ sở dữ liệu trong cơ sở dữ liệu. Đối tượng cơ sở dữ liệu do người dùng nào tạo ra sẽ do người đó sở hữu và do đó người này có quyền cho người dùng khác sử dụng đối tượng và cũng có thể xóa bỏ (DROP) đối tượng do mình tạo ra. Khác với trường hợp sử dụng câu lệnh GRANT để cấp phát quyền trên đối tượng cơ sở dữ liệu, câu lệnh GRANT trong trường hợp này không thể sử dụng tuỳ chọn WITH GRANT OPTION, tức là người dùng không thể chuyển tiếp được các quyền thực thi các câu lệnh đã được cấp phát. 5.3.3 Thu hồi quyền 49
  49. Câu lệnh REVOKE được sử dụng để thu hồi quyền đã được cấp phát cho người dùng. Tương ứng với câu lệnh GRANT, câu lệnh REVOKE được sử dụng trong hai trường hợp: • Thu hồi quyền đã cấp phát cho người dùng trên các đối tượng cơ sở dữ liệu. • Thu hồi quyền thực thi các câu lệnh trên cơ sở dữ liệu đã cấp phát cho người dùng. 5.3.3.1 Thu hồi quyền trên đối tượng cơ sở dữ liệu: Cú pháp câu lệnh REVOKE sử dụng để thu hồi quyền đã cấp phát trên đối tượng cơ sở dữ liệu có cú pháp như sau: REVOKE [GRANT OPTION FOR] ALL [PRIVILEGES]| các_quyền_cần_thu_hồi [(danh_sách_cột)] ON tên_bảng | tên_khung_nhìn |ON tên_bảng | tên_khung_nhìn [(danh_sách_cột)] |ON tên_thủ_tục |ON tên_hàm FROM danh_sách_người_dùng [CASCADE] Câu lệnh REVOKE có thể sử dụng để thu hồi một số quyền đã cấp phát cho người dùng hoặc là thu hồi tất cả các quyền (ALL PRIVILEGES). Ví dụ 4: Thu hồi quyền thực thi lệnh INSERT trên bảng LOP đối với người dùng thuchanh. REVOKE INSERT ON lop FROM thuchanh Giả sử người dùng thuchanh đã được cấp phát quyền xem dữ liệu trên các cột HODEM, TEN và NGAYSINH của bảng SINHVIEN, câu lệnh dưới đây sẽ thu hồi quyền đã cấp phát trên cột NGAYSINH (chỉ cho phép xem dữ liệu trên cột HODEM và TEN) REVOKE SELECT ON sinhvien(ngaysinh) FROM thuchanh Khi ta sử dụng câu lệnh REVOKE để thu hồi quyền trên một đối tượng cơ sở dữ liêu từ một người dùng náo đó, chỉ những quyền mà ta đã cấp phát trước đó mới được thu hồi, những quyền mà người dùng này được cho phép bởi những người dùng khác vẫn còn 50
  50. có hiệu lực. Nói cách khác, nếu hai người dùng khác nhau cấp phát cùng các quyền trên cùng một đối tượng cơ sở dữ liệu cho một người dùng khác, sau đó người thu nhất thu hồi lại quyền đã cấp phát thì những quyền mà người dùng thứ hai cấp phát vẫn có hiệu lực. Ví dụ 5: Giả sử trong cơ sở dữ liệu ta có 3 người dùng là A, B và C. A và B đều có quyền sử dụng và cấp phát quyền trên bảng R. A thực hiện lệnh sau để cấp phát quyền xem dữ liệu trên bảng R cho C: GRANT SELECT ON R TO C và B cấp phát quyền xem và bổ sung dữ liệu trên bảng R cho C bằng câu lệnh: GRANT SELECT, INSERT ON R TO C Như vậy, C có quyền xem và bổ sung dữ liệu trên bảng R. Bây giờ, nếu B thực hiện lệnh: REVOKE SELECT, INSERT ON R FROM C Người dùng C sẽ không còn quyền bổ sung dữ liệu trên bảng R nhưng vẫn có thể xem được dữ liệu của bảng này (quyền này do A cấp cho C và vẫn còn hiệu lực). Nếu ta đã cấp phát quyền cho người dùng nào đó bằng câu lệnh GRANT với tuỳ chọn WITH GRANT OPTION thì khi thu hồi quyền bằng câu lệnh REVOKE phải chỉ định tuỳ chọn CASCADE. Trong trường hợp này, các quyền được chuyển tiếp cho những người dùng khác cũng đồng thời được thu hồi. Ví dụ 6: Ta cấp phát cho người dùng A trên bảng R với câu lệnh GRANT như sau: GRANT SELECT ON R TO A WITH GRANT OPTION sau đó người dùng A lại cấp phát cho người dùng B quyền xem dữ liệu trên R với câu lệnh: GRANT SELECT ON R TO B Nếu muốn thu hồi quyền đã cấp phát cho người dùng A, ta sử dụng câu lệnh REVOKE như sau: REVOKE SELECT ON NHANVIEN 51
  51. FROM A CASCADE Câu lệnh trên sẽ đồng thời thu hồi quyền mà A đã cấp cho B và như vậy cả A và B đều không thể xem được dữ liệu trên bảng R. Trong trường hợp cần thu hồi các quyền đã được chuyển tiếp và khả năng chuyển tiếp các quyền đối với những người đã được cấp phát quyền với tuỳ chọn WITH GRANT OPTION, trong câu lệnh REVOKE ta chỉ định mệnh đề GRANT OPTION FOR. Ví dụ 7: Trong ví dụ trên, nếu ta thay câu lệnh: REVOKE SELECT ON NHANVIEN FROM A CASCADE bởi câu lệnh: REVOKE GRANT OPTION FOR SELECT ON NHANVIEN FROM A CASCADE Thì B sẽ không còn quyền xem dữ liệu trên bảng R đồng thời A không thể chuyển tiếp quyền mà ta đã cấp phát cho những người dùng khác (tuy nhiên A vẫn còn quyền xem dữ liệu trên bảng R). 5.3.3.2 Thu hồi quyền thực thi các câu lênh: Việc thu hồi quyền thực thi các câu lệnh trên cơ sở dữ liệu (CREATE DATABASE, CREATE TABLE, CREATE VIEW, ) được thực hiện đơn giản với câu lệnh REVOKE có cú pháp: REVOKE ALL | các_câu_lệnh_cần_thu_hồi FROM danh_sách_người_dùng Ví dụ 8: Để không cho phép người dùng thuchanh thực hiện lệnh CREATE TABLE trên cơ sở dữ liệu, ta sử dụng câu lệnh: REVOKE CREATE TABLE FROM thuchanh 5.4 Chuyển đổi cơ sở dữ liệu từ các nguồn cơ sở dữ liệu Việc chuyển đổi cơ sở dữ liệu có thể thực hiện qua lại giữa các hệ quản trị cơ sở dữ liệu. Việc chuyển đổi chỉ thông qua một số bước đơn giản. Trong giới hạn của module này, chúng ta sẽ tìm hiểu về cách chuyển đổi qua lại giữa nguồn cơ sở dữ liệu SQL 52
  52. Server và cơ sở dữ liệu Access. Đối với các cơ sở dữ liệu khác, chúng ta cũng có cách làm tương tự. 5.4.1 Tạo cơ sở dữ liệu SQL Server từ nguồn cơ sở dữ liệu Access Trước tiên, để thuận tiện cho việc thực hành chúng ta tạo một cơ sở dữ liệu Acces có tên QuanLyNhanVien (quản lý nhân viên) với hai bảng và quan hệ như sau: Hình 5.1: bảng quan hệ Tiếp theo, chúng ta nhập một số bản ghi cho từng bảng và đóng cơ sở dữ liệu lại. Các bước kết xuất dữ liệu từ Access: 1 - Tạo một cơ sở dữ liệu SQL mới , ở đây chúng ta đặt tên là QLNV. 2 - Click chuột phải lên cơ sở dữ liệu All Tasks Import Data Hình 5.2:Import Data một cửa sổ sẽ hiện ra như sau: 53
  53. Hình 5.3:Data Transformation Services 3 – Nhấn Next để tiếp tục, cửa sổ tiếp theo sẽ hiện ra: Hình 5.4:Choose a data source 54
  54. 4 – Chọn nguồn cơ sở dữ liệu. Trong hộp Data Source chọn Microsoft Access, trong hộp File name chọn cơ sở dữ liệu Access đã được tạo trước (QuanLyNhanVien.mdb) như hình trên, nhấn Next để tiếp tục. 5 – Chọn cơ sở dữ liệu đích. Để mặc định như hình dưới đây, nếu bạn chọn kết nối với tài khoản của SQL Server thì đánh dấu vào ô Use SQL Server Authentication, trong hộp Username nhập tài khoản đăng nhập quản trị cơ sở dữ liệu như hình dưới đây: Hình 5.5:đăng nhập quản trị cơ sở dữ liệu nhấn Next để tiếp tục, cửa sổ mới hiện ra: 55
  55. Hình 5.6 :nhấn Next tiếp tục 6 – Để mặc định như hình trên nếu muốn sao chép toàn bộ bảng và truy vấn từ cơ sở dữ liệu nguồn, nhấn Next để tiếp tục. Hình 5.7:truy vấn từ cơ sở dữ liệu nguồn 7 – Đánh dấu vào bảng và truy vấn cần sao chép, nhấn Next Next để tiêp tục: 56
  56. Hình 5.8:Next để tiêp tục 8. Nhấn Finish. Đợi trong vài giây, phụ thuộc vào dung lượng cơ sở dữ liệu nguồn mà thời gian này có thể lâu hơn, sau đó nhấn Done để hoàn tất công việc. 5.4.2 Xuất cơ sở dữ liệu SQL Server sang cơ sở dữ liệu Access Nhấn chuột phải lên cơ sở dữ liệu SQL Server chọn All Tasks Export Data Hình 5.9:xuất cơ sở dữ liệu Thực hiện lần lượt 8 bước tương tự như trên, chỉ thay đổi cơ sở dữ liệu nguồn và đích. 5.5 Sao lưu dự phòng cơ sở dữ lịêu Trong phần này chúng ta sẽ bàn về cách sao lưu cơ sỏ dữ liệu (backup database). 57
  57. Thuật Giải Thích Ngữ Quá trình copy toàn bộ hay một phần của database, transaction log, file hay file group hình thành một backup set. Backup set được chứa trên backup Backup media (tape or disk) bằng cách sử dụng một backup device (tape drive name hay physical filename) Backup Một file vật lý (như C:\SQLBackups\Full.bak) hay tape drive cụ thể (như Device \\.\Tape0) dùng để record một backup vào một backup media. Backup File chứa một backup set File Disk hay tape được sử dụng để chứa một backup set. Backup media có thể Backup chứa nhiều backup sets (ví dụ như từ nhiều SQL Server 2000 backups và từ Media nhiều Windows 2000 backups). Backup Một bộ backup từ một lần backup đơn được chứa trên backup media. Set Chúng ta có thể tạo một backup device cố định (permanent) hay tạo ra một backup file mới cho mỗi lần backup. Thông thường chúng ta sẽ tạo một backup device cố định để có thể dùng đi dùng lại đặc biệt cho việc tự động hóa công việc backup. Ðể tạo một backup device dùng Enterprise Manager bạn chọn Management->Backup rồi Right-click->New Backup Device. Ngoài ra bạn có thể dùng sp_addumpdevice system stored procedure như ví dụ sau: USE Master Go Sp_addumpdevice 'disk' , 'FullBackupDevice' , 'E:\SQLBackups\Full.bak' Ðể backup database bạn có thể dùng Backup Wizard hoặc click lên trên database muốn backup sau đó Right-click->All Tasks->Backup Database sẽ hiện ra window như hình vẽ sau: 58
  58. Hình 5.10:Backup Database Sau đó dựa tùy theo yêu cầu của database mà chọn các option thích hợp. Ta có thể schedule cho SQL Server backup định kỳ. 5.6 Bảo trì cơ sở dữ liệu Việc sao lưu dự phòng cơ sở dữ liệu nhằm phục hồi lại khi cần thiết, đó là một quá trình bảo trì cơ sở dữ liệu. Trước khi phục hồi cơ sở dữ liệu (restore database) ta phải xác định được thứ tự file cần phục hồi. Các thông tin này được SQL Server chứa trong msdb. Việc phục hồi lại dữ liệu có thể thực hiện như sau: Right-click->All Tasks->Restore database sẽ thấy window như hình vẽ sau: 59
  59. Hình 5.11:Restore database Nếu chúng ta muốn phục hồi cơ sở dữ liệu từ một tập tin khác của SQL Server hay từ một server khác bạn có chọn tùy chọn From device và chọn backup device (file backup) tương ứng . 60
  60. BÀI TẬP THỰC HÀNH 1. Tạo hai tài khoản đăng nhập là nguoisudung1, nguoisudung2 và cho phép hai tài khoản này sử dụng cơ sở dữ liệu QuanLyNhanVien. 2. Cấp phát tất cả các quyền cho nguoisudung1, cấp quyền SELECT cho nguoisudung2 trên hai bảng của cơ sở dữ liệu QuanLyNhanVien. 3. Thu hồi quyền Delete đối với nguoisudung1 trên bảng DONVI. 4. Sao lưu cơ sở dữ liệu QuanLyNhanVien và lưu trên thư mục C:\BackUp\Data với tên QLNV.bak. 5. Xóa cơ sở dữ liệu QuanLyNhanVien khỏi hệ thống và phục hồi lại như cũ nhờ tập tin QLNV.bak. 61