LỜI GIỚI THIỆU Vài nét về xuất xứ giáo trình: Giáo trình này được viết theo căn cứ Thông tư số 03/2017/TT-BLĐTBXH ngày 01 tháng 03 năm 2017 của Bộ Lao động – Thương binh và Xã hội về việc Quy định về quy trình xây dựng, thẩm định và ban hành chương trình; tổ chức biên soạn, lựa chọn, thẩm định giáo trình đào tạo trình độ trung cấp, trình độ cao đẳng. Quá trình biên soạn: Giáo trình này được biên soạn có sự tham gia tích cực của các giáo viên có kinh nghiệm, cùng với những ý kiến đóng góp quý báu của các chuyên gia về lĩnh vực công nghệ thông tin. Mối quan hệ của tài liệu với chương trình, mô đun/môn học: Căn cứ vào chương trình đào tạo nghề Thiết kế trang web, giáo trình giúp cung cấp cho người học những kiến thức cơ bản về ngôn ngữ truy vấn SQL Server cũng như kỹ năng sử dụng phần mềm SQL Server để thiết kế cơ sở dữ liệu quan hệ. Để học được mô đun này người học cần có kiến thức cơ bản về cơ sở dữ liệu.
Cấu trúc chung của giáo trình này bao gồm 6 bài: Bài 1. Tổng quan về DBMS và SQL sever Bài 2. Ngôn ngữ định nghĩa dữ liệu Bài 3. Ngôn ngữ thao tác dữ liệu Bài 4.
Làm việc với View ( khung nhìn ) Bài 5. Bảo mật trong SQL Bài 6. Thủ tục lưu trữ , hàm và trigger Lời cảm ơn Giáo trình được biên soạn trên cơ sở các văn bản quy định của Nhà nước và tham khảo nhiều tài liệu liên quan có giá trị. Song chắc hẳn quá trình biên soạn không tránh khỏi những thiếu sót nhất định.
Ban biên soạn mong muốn và thực sự cảm ơn những ý kiến nhận xét, đánh giá của các chuyên gia, các thầy cô đóng góp cho việc chỉnh sửa để giáo trình ngày một hoàn thiện hơn. Lâm Đồng, ngày 10 tháng 12 năm 2019 Tham gia biên soạn 1. Phạm Đình Nam 2. Ngô Thiên Hoàng 3.
Nguyễn Quỳnh Nguyên 4. Phan Ngọc Bảo Trang 2 MỤC LỤC BÀI 1. Tổng quan về DBMS và SQL sever. Tổng quan về DBMS và SQL Sever .1Tổng quan về DBMS .2 Tổng quan về cơ sở dữ liệu quan hệ .3 Giới Thiệu SQL Server 2000 .4 Cài Ðặt SQL Server 2000 (Installation).
11 chọn các giá trị mặc định (default). 11 ra nên chọn các giá trị mặc định (default). Sơ lược về SQL .1 Kiểu dữ liệu .2 Các tập tin vật lý lưu trữ cơ sở dữ liệu. 20 Kết chương.
Ngôn ngữ định nghĩa dữ liệu. Ngôn ngữ định nghĩa dữ liệu .2 Tạo bảng dữ liệu .3 Tạo cấu trúc bảng bằng T-SQL .4 Ràng buộc CHECK .5 Ràng buộc PRIMARY KEY .6 Ràng buộc UNIQUE .7 Ràng buộc FOREIGN KEY. Sửa đổi định nghĩa bảng. Ngôn ngữ thao tác dữ liệu.
Ngôn ngữ thao tác dữ liệu .1 Truy xuất dữ liệu với câu lệnh SELECT .2 Danh sách chọn trong câu lệnh SELECT.3 Tạo mới bảng dữ liệu từ kết quả của câu lệnh SELECT .4 Sắp xếp kết quả truy vấn .1 Các loại phép nối .2 Sử dụng phép nối trong SQL2 .3 Thống kê dữ liệu với GROUP BY .4 Thống kê dữ liệu với COMPUTE .5 Truy vấn con (Subquery). Bổ sung, cập nhật và xoá dữ liệu .1 Bổ sung dữ liệu .2 Cập nhật dữ liệu .3 Xoá dữ liệu. 71 Bài tập chương 3. Làm việc với View ( khung nhìn ).
76 1 Khái niệm view (Khung nhìn). 76 2 Tạo khung nhìn. 77 3 Cập nhật, bổ sung và xoá dữ liệu thông qua khung nhìn. 79 4 Sửa đổi khung nhìn.
81 5 Xoá khung nhìn. 81 Bài tập chương 3. Bảo mật trong SQL. 86 2 Cấp phát quyền.
86 3 Cấp phát quyền thực thi các câu lệnh. 88 4 Thu hồi quyền. Thủ tục lưu trữ , hàm và trigger. Thủ tục lưu trữ (stored procedure).2 Tạo thủ tục lưu trữ .3 Lời gọi thủ tục lưu trữ.4 Sử dụng biến trong thủ tục .5 Giá trị trả về của tham số trong thủ tục lưu trữ .6 Tham số với giá trị mặc định .7 Sửa đổi thủ tục .8 Xoá thủ tục.
Hàm và trigger .1 Hàm do người dùng định nghĩa. 100 Bài tập chương 5. Giao dịch SQL. 111 1 Giao dịch và các tính chất của giao dịch.
111 2 Mô hình giao dịch trong SQL. 111 3 Giao dịch lồng nhau. 114 Phụ lục: Cơ sở dữ liệu mẫu. Tổng quan về DBMS và SQL sever 1.
Tổng quan về DBMS và SQL Sever Chương này trình bày một cách nhìn khái quát về cơ sở dữ liệu (CSDL/DB), về hệ quản trị cơ sở dữ liệu (HQTCSDL/DBMS) và về hệ cơ sở dữ liệu (HCSDL/DBS). Các đòi hỏi khi xây dựng một HQTCSDL đó cũng chính là những chức năng mà một HCSDL cần phải có. Trong chương này chúng tôi cũng muốn giới thiệu tổng quan về 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ệ? 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. Ta tìm hiểu DBMS trên một HQCSDL cụ thể: SQL Server 2000. Do vậy chương này giới thiệu cài đặt SQL Server 2000 và các thành phần của nó, giúp chúng ta chủ động khai thác trong nắm bắt và tạo lập ứng dụng.1Tổng quan về DBMS MỘT SỐ KHÁI NIỆM Một cơsở dữ liệu - CSDL(DataBase): Là một kho dữ liệu được tổ chức theo một nguyên tắc nào đó.
Đó là một tập hợp các tập tin có liên quan với nhau, được thiết kế nhằm làm giảm thiểu sự dư thừa dữ liệu, đảm bảo tính tin cậy khi truy xuất dữ liệu. Các tập tin này chứa các thông tin biểu diễn các đối tượng trong một ứng dụng thế giới thực. CSDL lưu giữ thông tin của một trường đại học như : khoa, giảng viên, sinh viên, khóa học,… Thông thường, một cơ sở dữ liệu sẽ bao trùm tất cả các thông tin của một ứng dụng, không nên đặt hai cơ sở dữ liệu vào một ứng dụng. Hệ quản trị cơ sở dữ liệu DBMS(DataBaseManagement System): là một hệ thống gồm một CSDL và các thao tác trên CSDL.
Đó là hệ thống chương trình, công cụ cho phép quản lý và tương tác với CSDL. Trên đó người dùng có thể định nghĩa, thao tác, và xử lí dữ liệu trong một CSDL để xuất ra những thông tin có nghĩa. Ví dụ 1-5 : một DBMS có thể quản trị cơ sở dữ liệu của một trường đại học cũng như những cơ sở dữ liệu có ý nghĩa khác như : cơ sở dữ liệu phục vụ tổng thu nhập quốc gia, một cơ sở dữ liệu liên hợp quốc về dữ liệu địa lý thế giới,v.v… - Một hệ cơ sở dữ liệu (HCSDL/ DBS: DataBase System) là một phần mềm cho phép xây dựng một HQTCSDL. Các vấn đề cần xử lý của hệ cơ sở dữ liệu Trang 6 Một số điểm bất lợi chính của việc lưu giữ thông tin có tổ chức trong hệ thống xử lý file thông thường mà hệ HCSDL cần lưu ý: • Dư thừa dữ liệu và tính không nhất quán (Data redundancy and inconsistency) : Do các file và các trình ứng dụng được tạo ra bởi các người lập trình khác nhau, nên các file có định dạng khác nhau, các chương trình được viết trong các ngôn ngữ lập trình khác nhau, cùng một thông tin có thể được lưu giữ trong các file khác nhau.
Tính không thống nhất và dư thừa này sẽ làm tăng chi phí truy xuất và lưu trữ, hơn nũa, nó sẽ dẫn đến tính không nhất quán của dữ liệu: các bản sao của cùng một dữ liệu có thể không nhất quán. • Khó khăn trong việc truy xuất dữ liệu: Môi trường của hệ thống xử lý file thông thường không cung cấp các công cụ cho phép truy xuất thông tin một cách hiệu quả và thuận lợi. • Sự cô lập dữ liệu(Data isolation) : Các giá trị dữ liệu được lưu trữ trong cơ sở dữ liệu phải thoả mãn một số các ràng buộc về tính nhất quán của dữ liệu ( ràng buộc nhất quán / consistency contraints ). Trong hệ thống xử lý file thông thường, rất khó khăn trong việc thay đổi các chương trình để thoả mãn các yêu cầu thay đổi ràng buộc.
Vấn đề trở nên khó khăn hơn khi các ràng buộc liên quan đến các hạng mục dữ liệu nằm trong các file khác nhau. • Các vấn đề về tính nguyên tử (Atomicity problems): Tính nguyên tử của một hoạt động (giao dịch) là: hoặc nó được hoàn tất trọn vẹn hoặc không có gì cả. Điều này có nghĩa là một hoạt động (giao dịch) chỉ làm thay đổi các dữ liệu bền vững khi nó đã hoàn tất (kết thúc thành công) nếu không, giao dịch không để lại một dấu vết nào trên CSDL. Trong hệ thống xử lý file thông thường khó đảm bảo được tính chất này.
• Tính bất thường trong truy xuất cạnh tranh : Một hệ thống cho phép nhiều người sử dụng cập nhật dữ liệu đồng thời, có thể dẫn đến kết quả là dữ liệu không nhất quán. Điều này đòi hỏi một sự giám sát. Hệ thống xử lý file thông thường không cung cấp chức năng này. • Vấn đề an toàn (Security problems): một người sử dụng hệ cơ sở dữ liệu không cần thiết và cũng không có quyền truy xuất tất cả các dữ liệu.
Vấn đề này đòi hỏi hệ thống phải đảm bảo được tính phân quyền, chống truy xuất trái phép. Các bất lợi nêu trên đã gợi mở sự phát triển các DBMS. Phần sau của giáo trình sẽ đề cập đến các quan niệm và các thuật toán được sử dụng để phát triển một hệ cơ sở dữ liệu nhằm giải quyết các vấn đề nêu trên .