Bài giảng Cơ sở dữ liệu (Bản đẹp)
Thời lượng: 03 tiết lý thuyết
Kết thúc chương này, sinh viên có thể:
Hiểu được tại sao phải ra đời một hệ cơ sở dữ liệu
Biết được các đối tượng sử dụng cơ sở dữ liệu
Biết các yêu cầu(đặc tính)của hệ cơ sở dữ liệu
Biết các thành phần của hệ quản trị cơ sở dữ liệu
1.1 DẪN NHẬP - TẠI SAO PHẢI CÓ MỘT CƠ SỞ DỮ LIỆU
1.1.1 Hệ thống tập tin cổ điển
- Trong quá trình xử lý thông tin, cách tiếp cận cổ điển được biểu diễn
dưới dạng sau:
OUTPUT INPUT
- Phân tích dữ liệu (Output) dẫn đến nhu cầu cần (Input). Dữ liệu được
dùng cho chương trình ứng dụng nhất định.
1.1.2 Các ví dụ
Ứng dụng 1: Về quản lý tiền lương (QLTL). Lập bảng lương trong một đơn vị quản
lý
STT Họ tên Bậc lương Phụ cấp Tiền lương
* Suy ra dữ liệu cần:
- Họ tên, Bậc lương, Bậc lương
* Dữ liệu được tổ chức thành các tập tin:
- Tập tin NHANVIEN_1 gồm:
- Tập tin CHEDO_PHUCAP gồm:
* Sơ đồ khai thác của hệ QLTL như sau:
Tóm tắt nội dung tài liệu: Bài giảng Cơ sở dữ liệu (Bản đẹp)
TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA CÔNG NGHỆ THÔNG TIN HÀ VĂN LÂM BÀI GIẢNG CƠ SỞ DỮ LIỆU Quảng Ngãi, tháng 12 năm 2016 TRƯỜNG ĐẠI HỌC PHẠM VĂN ĐỒNG KHOA CÔNG NGHỆ THÔNG TIN BÀI GIẢNG CƠ SỞ DỮ LIỆU Dành cho sinh viên bậc đại học ngành Công nghệ thông tin và Sư phạm tin Quảng Ngãi, tháng 12 năm 2016 1 Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU Thời lượng: 03 tiết lý thuyết Kết thúc chương này, sinh viên có thể: Hiểu được tại sao phải ra đời một hệ cơ sở dữ liệu Biết được các đối tượng sử dụng cơ sở dữ liệu Biết các yêu cầu(đặc tính)của hệ cơ sở dữ liệu Biết các thành phần của hệ quản trị cơ sở dữ liệu 1.1 DẪN NHẬP - TẠI SAO PHẢI CÓ MỘT CƠ SỞ DỮ LIỆU 1.1.1 Hệ thống tập tin cổ điển - Trong quá trình xử lý thông tin, cách tiếp cận cổ điển được biểu diễn dưới dạng sau: OUTPUT INPUT - Phân tích dữ liệu (Output) dẫn đến nhu cầu cần (Input). Dữ liệu được dùng cho chương trình ứng dụng nhất định. 1.1.2 Các ví dụ Ứng dụng 1: Về quản lý tiền lương (QLTL). Lập bảng lương trong một đơn vị quản lý STT Họ tên Bậc lương Phụ cấp Tiền lương * Suy ra dữ liệu cần: - Họ tên, Bậc lương, Bậc lương * Dữ liệu được tổ chức thành các tập tin: - Tập tin NHANVIEN_1 gồm: - Tập tin CHEDO_PHUCAP gồm: * Sơ đồ khai thác của hệ QLTL như sau: Họ tên Bậc lương Phụ cấp Bậc lương NHANVIEN_1 CHEDO_PHUCAP Chương trình QLTL Phiếu lương 2 Ứng dụng 2: Lập danh sách phân công (dự kiến) cho một công trình(QLCT) STT Họ tên Chuyên môn Công trình * Suy ra dữ liệu cần: - Họ tên, Chuyên môn, Công trình * Dữ liệu được tổ chức thành các tập tin: - Tập tin NHANVIEN_2 gồm: - Tập tin CONG_TRINH gồm: * Sơ đồ khai thác của hệ QLTL như sau: Nhận xét: - Việc xử lý, khai thác dữ liệu trong công tác quản lý khoa học còn đơn lẻ, tự phát ở mỗi phòng ban chức năng của từng cơ quan, đơn vị theo một cấu trúc tổ chức dữ liệu cho riêng mình. - Việc triển khai như thế được tiến hành với thời gian ngắn, ít đầu tư, tốn kém về nhân sự, vật chất - Chính quan điểm trên dẫn đến việc: trùng lắp thông tin, dư thừa thông tin, lại không nhất quán về xử lý, quản lý thông tin. Quan trọng nhất vẫn là thiếu sự chia sẻ thông tin tại một đơn vị. - Do nhu cầu xử lý thông tin ngày càng qui mô, rộng hơn về nhiều khía cạnh... nên đòi hỏi ra đời một hệ cơ sở dữ liệu để giải quyết những nhu cầu trên. 1.2 ĐỊNH NGHĨA MỘT CƠ SỞ DỮ LIỆU 1.2.1 Giới thiệu chung - Nghiên cứu Cơ sở dữ liệu (CSDL) sẽ giúp chúng ta biết lưu trữ, cập nhật, tìm kiếm thông tin nhanh, hiệu quả, tiết kiệm được bộ nhớ. Mặt khác còn giúp chúng ta hiểu được các ràng buộc mang tính chất nội tại trên một mô hình cơ sở dữ liệu. - Cơ sở dữ liệu là môn học liên quan nhiều đến lý thuyết đại số, logic toán và Họ tên Chuyên môn Công trình Chuyên môn NHANVIEN_2 CONG_TRINH Chương trình QLCT Phân công Danh sách 3 nhiều lĩnh vực kiến thức tin học khác. - Bất kỳ một ứng dụng tin học nào cũng chứa đựng các vấn đề về cách tổ chức lưu trữ và khai thác dữ liệu. - Hiện nay, hầu như CSDL gắn liền với mọi ứng dụng của tin học, chẳng hạn như quản lý các hệ thống thông tin trong một cơ quan, đơn vị, trường học.. . - Đó là các dữ liệu tác nghiệp của các Cơ quan, đơn vị trường học .. có thể bao gồm: Dữ liệu về sản phẩm, dữ liệu về các tài khoản, dữ liệu về đào tạo, dữ liệu về sinh viên, dữ liệu về lập kế hoạch công việc v.v... - CSDL bảo đảm cho các cơ quan, đơn vị, trường học có khả năng quản lý tập trung dữ liệu tác nghiệp của mình. Cần phải tính đến một người quản trị CSDL, chịu trách nhiệm về dữ liệu tác nghiệp. 1.2.2 Định nghĩa một cơ sở dữ liệu CSDL là một tập hợp dữ liệu được tổ chức có cấu trúc liên quan với nhau và được lưu trữ trong máy tính. Để tối ưu hóa các thao tác cơ bản sau: - Lưu trữ dữ liệu. - Truy xuất thông tin. - Cập nhật dữ liệu. 1.3 CÁC ĐỐI TƯỢNG SỬ DỤNG CSDL 1.3.1 Các đối tượng sử dụng CSDL - Quản trị viên (Database Administrator - DBA) + Có trách nhiệm quản lý hệ CSDL cấp quyền truy cập CSDL. + Điều phối và giám sát việc sử dụng CSDL. - Thiết kế viên (Database Designer) + Chịu trách nhiệm về - Lựa chọn cấu trúc phù hợp để lưu trữ dữ liệu. - Quyết định những dữ liệu nào cần được lưu trữ. + Liên hệ với người dùng để nắm bắt những yêu cầu và đưa ra một thiết kế CSDL thỏa yêu cầu này. + Có thể là 1 nhóm các (DBA) quản lý các CSDL sau khi việc thiết kế hoàn tất. - Người dùng cuối (End User) * Người ít sử dụng - Ít khi truy cập CSDL, nhưng cần những thông tin khác nhau trong mỗi lần truy cập và dùng những câu truy vấn phức tạp. - Người quản lý * Người sử dụng thường xuyên - Thường xuyên truy vấn và cập nhật CSDL nhờ vào một số các chức năng đã được xây dựng sẳn. - Nhân viên. 4 * Người sử dụng đặc biệt - Thông thạo về HQT CSDL, tự xây dựng những truy vấn phức tạp cho công việc. - Kỹ sư, nhà khoa học, người phân tích, 1.3.2 Các đặc tính của hệ CSDL(yêu cầu) 1. Tính cấu trúc: Thông tin trong CSDL được lưu trữ theo cấu trúc nhất định. 2. Tính toàn vẹn: Các giá trị của dữ liệu được lưu trữ trong CSDL phải thỏa mãn các ràng buộc. Tùy thuộc vào hành động và tổ chức của CSDL. 3. Tính nhất quán: Sau những lần cập nhật và ngay khi có sự cố(phần cứng, Phần mềm) xảy ra trong quá trình cập nhật thì CSDL phải đảm bảo tính nhất quán dữ liệu. 4. Tính an toàn và bảo mật thông tin: CSDL phải được bảo vệ an toàn, tránh những truy cập không được phép và phải khôi phục được CSDL khi có sự cố xảy ra (phần cứng, Phần mềm). Mỗi nhóm NSD có thamền hạn và mục đích khác nhau. 5. Tính không dư thừa: CSDL không lưu trữ những dữ liệu trùng lặp. 6. Tính cạnh tranh: Cạnh tranh trong truy xuất, do nhiều người sử dụng. Do đó phải phân cấp cho chương trình ứng dụng. 1.3.3 Cấu trúc của CSDL: (Có 3 mức) - Mức ngoài: Mô tả 1 phần của CSDL. - Mức trung gian: Mô tả dữ liệu được lưu trữ trong CSDL và các mối quan hệ (logic) giữa các mẫu tin. - Mức vật lý: Mô tả dữ liệu được lưu trữ trong bộ nhớ. 1.4 HỆ QUẢN TRỊ CSDL (Data Base Management System - DBMS) 1.4.1 Khái niệm Hệ quản trị CSDL Để giải quyết tốt những vấn đề mà cách tổ chức CSDL đặt ra như khai thác có hiệu quả, đảm bảo sự bảo mật, sự cạnh tranh truy xuất..., cần thiết phải có những phần mềm chuyên dùng để khai thác chúng, những phần mềm này được gọi là các hệ quản trị CSDL (Data base management system- DBMS). Hệ quản trị CSDL là một hệ thống phần mềm, có nhiệm vụ hỗ trợ cho những nhà phân tích, thiết kế và những người khai thác CSDL, đảm bảo sự bảo mật, cạnh tranh truy xuất, an toàn dữ liệu,... cung cấp cho người dùng những cách nhìn khác nhau về CSDL. Hiện nay, trên thị trường có nhiều hệ quản trị CSDL (DBMS) với chất lượng khác nhau như: Oracle, DB2, Paradox, Ms Access, Visual Foxpro, MySQL, SQL SERVER. . . Lưu ý: Điều quan trọng để khai thác, tổ chức tốt một CSDL cần phải có một hệ quản trị CSDL tối ưu, phù hợp với CSDL. 1.4.2 Các thành phần của Hệ quản trị CSDL (DBMS): (có 3 phần) * Ngôn ngữ mô tả dữ liệu(DDL) 5 + Mô tả về cấu trúc của CSDL. + Mô tả các mối quan hệ của dữ liệu. + Mô tả các ràng buộc toàn vẹn của dữ liệu. * Ngôn ngữ thao tác dữ liệu(DML) Có đặc tính như một ngôn ngữ lập trình bậc cao dùng để: + Cập nhật dữ liệu. + Khai thác dữ liệu (có 2 loại: Thủ tục và phi thủ tục). * Tự điển dữ liệu(DD) Là nơi tập trung các thông tin lưu trữ về: + Cấu trúc của CSDL(thuộc tính, quan hệ). + Chương trình ứng dụng. + Mã bảo mật. 1.5 SƠ ĐỒ TỔNG QUÁT CỦA MỘT HỆ QUẢN TRỊ CSDL 1.5.1 Kiến trúc 3 lược đồ 1.5.2 Kiến trúc của Hệ quản trị CSDL * Mức trong (lược đồ trong) - Mô tả cấu trúc lưu trữ vật lý CSDL * Mức quan niệm (lược đồ quan niệm) - Mô tả cấu trúc của toàn thể CSDL cho một cộng đồng người sử dụng, gồm thực thể, kiểu dữ liệu, mối liên hệ và ràng buộc. - Che bớt các chi tiết của cấu trúc lưu trữ vật lý. * Mức ngoài (lược đồ ngoài) - Còn gọi là mức khung nhìn (view). - Mô tả một phần của CSDL mà 1 nhóm người dùng quan tâm đến và che dấu phần còn lại của CSDL đối với nhóm người dùng đó. 1.6 TÍNH ĐỘC LẬP GIỮA DỮ LIỆU VÀ CHƯƠNG TRÌNH * Có hai mức độc lập dữ liệu 6 - Tính độc lập vật lý: Cho phép người Quản trị hệ quản trị CSDL có thể thay đổi cách cài đặt các mẫu tin mà không ảnh hưởng đến chương trình ứng dụng. - Tính độc lập logic: Cho phép sửa đổi cấu trúc của CSDL (thay đổi lược đồ quan niệm) mà không ảnh hưởng đến chương trình ứng dụng sử dụng CSDL đó. ----oOo---- 7 Chương 2: MÔ HÌNH THỰC THỂ LIÊN KẾT ER (Entity - Relationship model) Thời lượng: 03 tiết lý thuyết + 03 tiết bài tập Kết thúc chương này, sinh viên có thể: Hiểu được các thành phần cơ bản của mô hình thực thể liên kết ER Biết sử dụng khái niệm mô hình bậc cao cho việc thiết kế cơ sở dữ liệu Trong chương này chúng ta sẽ làm quen với mô hình thực thể-liên kết (Entity- Relationship model), gọi tắt là mô hình ER. Đó là một mô hình dữ liệu quan niệm bậc cao phổ biến, tập trung vào các cấu trúc cơ sở dữ liệu và các ràng buộc. 2.1 SỬ DỤNG MÔ HÌNH KHÁI NIỆM BẬC CAO CHO VIỆC THIẾT KẾ CƠ SỞ DỮ LIỆU Hình 2.1 Sơ đồ mô tả các bước chính của việc thiết kế cơ sở dữ liệu - Bước đầu tiên là tập hợp các yêu cầu và phân tích. Trong bước này, người thiết kế cơ sở dữ liệu phỏng vấn những người sử dụng cơ sở dữ liệu để hiểu các đòi hỏi về dữ liệu của họ. 8 - Bước tiếp theo là tạo ra lược đồ quan niệm cho cơ sở dữ liệu bằng cách sử dụng mô hình dữ liệu quan niệm mức cao. Bước này được gọi là thiết kế khái niệm. + Lược đồ khái niệm là một mô tả súc tích về các yêu cầu dữ liệu của người sử dụng, bao gồm các mô tả chi tiết của các kiểu thực thể, các kiểu liên kết và các ràng buộc, chúng được biểu diễn bằng các khái niệm do các mô hình dữ liệu bậc cao cung cấp. Vì những khái niệm này không chứa các chi tiết cài đặt (thể hiện), chúng thường dễ hiểu và có thể sử dụng để giao lưu với người sử dụng. + Lược đồ quan niệm mức cao cũng có thể được sử dụng như một dẫn chứng để đảm bảo rằng tất cả các đòi hỏi của người sử dụng đều thoả mãn và không chứa các mâu thuẫn. Giải pháp này cho phép những người thiết kế cơ sở dữ liệu tập trung vào việc đặc tả các tính chất của dữ liệu mà không cần quan tâm đến các chi tiết lưu trữ. Một thiết kế cơ sở dữ liệu quan niệm tốt, sẽ dễ cho công việc của những người thiết kế cơ sở dữ liệu. + Trong quá trình (hoặc sau khi) thiết kế lược đồ quan niệm, ta có thể sử dụng các phép toán mô hình dữ liệu cơ bản để đặc tả các thao tác của người sử dụng được xác định trong khi phân tích chức năng. + Điều đó cũng giúp khẳng định rằng lược đồ quan niệm thoả mãn mọi yêu cầu chức năng được xác định. Nếu có một số yêu cầu chức năng không thể chỉ ra trong lược đồ ban đầu thì ở bước này có thể có sự sửa đổi lược đồ khái niệm cho phù hợp. - Bước tiếp theo trong thiết kế cơ sở dữ liệu là việc thể hiện (cài đặt) cơ sở dữ liệu bằng cách sử dụng một hệ quản trị cơ sở dữ liệu có sẵn. Hầu hết các hệ quản trị cơ sở dữ liệu sử dụng một mô hình dữ liệu thể hiện (chẳng hạn như mô hình cơ sở dữ liệu quan hệ hoặc đối tượng). Vì vậy, lược đồ quan niệm được chuyển đổi từ mô hình dữ liệu bậc cao thành mô hình dữ liệu thể hiện. + Bước này gọi là thiết kế lô gic hoặc là ánh xạ mô hình dữ liệu. Kết quả của bước này là một lược đồ cơ sở dữ liệu dưới dạng một mô hình dữ liệu thể hiện của hệ quản trị cơ sở dữ liệu. - Bước cuối cùng trong thiết kế cơ sở dữ liệu là thiết kế vật lý. Trong bước này ta phải chỉ ra các cấu trúc lưu trữ bên trong, các đường dẫn truy cập, tổ chức tệp cho các tệp cơ sở dữ liệu. Song song với các hoạt động đó, các chương trình áp dụng cũng được thiết kế và cài đặt như là các giao dịch cơ sở dữ liệu tương ứng với các đặc tả giao dịch mức cao. 2.2 CÁC THÀNH PHẦN CƠ BẢN CỦA MÔ HÌNH THỰC THỂ LIÊN KẾT 2.2.1 Thực thể, tập thực thể a) Thực thể - Thực thể là một “vật” trong thế giới thực có sự tồn tại độc lập. Một thực thể có thể là một vật cụ thể (chẳng hạn như một người, một cái ô tô,...) hoặc có thể là một vật trừu tượng (chẳng hạn một công ty, một công việc, một môn học,...). 9 - Mỗi thực thể có các thuộc tính, đó là các tính chất cụ thể mô tả nó. Ví dụ 1: Một thực thể nhân viên được mô tả bằng họ tên, tuổi, địa chỉ, lương và công việc của nhân viên đó. Một thực thể cụ thể sẽ có một giá trị cho mỗi thuộc tính của nó. Các giá trị thuộc tính mô tả mỗi thực thể sẽ trở thành một phần chính của các dữ liệu được lưu trữ trong cơ sở dữ liệu. b) Tập thực thể Tập hợp các thực thể giống nhau tạo thành một tập thực thể. Ví dụ 2: (Hình 2.2) chỉ ra một số thực thể và các thuộc tính của chúng. Thực thể nhân viên e1 có 4 thuộc tính : Họ tên, Địa chỉ, Tuổi, và Điện thoại. Giá trị của các thuộc tính tương ứng là “Lê Minh”, “Quảng Ngãi”, “25”, “0553823856”. NHANVIEN Họ tên Địa chỉ Tuổi Điện thoại e1 Lê Minh Quảng Ngãi 25 0553823856 e2 Trần Chỉnh Mộ Đức 28 0553823876 e3 Huỳnh Mỹ Sơn Tịnh 32 0553823456 Hình 2.2 Kiểu thực thể và tập thực thể 2.2.2 Các loại thuộc tính Trong mô hình ER có mặt nhiều kiểu thuộc tính : thuộc tính đơn và thuộc tính phức hợp, thuộc tính đơn trị và thuộc tính đa trị, thuộc tính được lưu trữ và thuộc tính suy diễn được. Chúng ta sẽ định nghĩa các kiểu thuộc tính và minh họa chúng thông qua các ví dụ. a) Thuộc tính đơn và thuộc tính phức hợp - Thuộc tính đơn: Các thuộc tính không thể phân chia được gọi là thuộc tính đơn hay thuộc tính nguyên tố. - Thuộc tính phức hợp: là các thuộc tính có thể phân chia ra thành các phần nhỏ hơn, biểu diễn các thuộc tính cơ bản hơn với các ý nghĩa độc lập. Giá trị của một thuộc tính phức hợp là sự kết hợp các giá trị của các thuộc tính thành phần tạo nên nó. Ví dụ 3: thuộc tính Họ tên của thực thể Nhân viên có thể được phân chia thành Họ đệm, Tên. b) Thuộc tính đơn trị và thuộc tính đa trị - Thuộc tính đơn trị: Đa số các thuộc tính có một giá trị duy nhất cho một thực thể cụ thể, các thuộc tính như vậy gọi là các thuộc tính đơn trị. Ví dụ: Tuổi là một thuộc tính đơn trị của một người. - Thuộc tính đa trị: Trong một số trường hợp, một thuộc tính có thể có một tập hợp các giá trị cho cùng một thực thể. Những thuộc tính như vậy được gọi là thuộc 10 tính đa trị. Ví dụ 4: thuộc tính Bằng cấp của một người. Một người có thể không có bằng cấp nào, người khác có thể có một bằng, người khác nữa có thể có nhiều bằng,. Như vậy các người khác nhau có thể có một số các giá trị khác nhau cho thuộc tính Bằng cấp. Những thuộc tính như vậy được gọi là thuộc tính đa trị. c) Thuộc tính lưu trữ và thuộc tính suy diễn được Một số trường hợp, hai hay nhiều giá trị thuộc tính có liên quan đến nhau. Ví dụ 5: thuộc tính Tuổi và thuộc tính Ngày sinh của một người. Với một người cụ thể ta có thể tính Tuổi của anh ta bằng cách lấy năm hiện tại trừ đi năm của Ngày sinh. Thuộc tính Tuổi như vậy gọi là thuộc tính suy diễn được và nó được suy diễn từ thuộc tính Ngày sinh. Thuộc tính Ngày sinh được gọi là thuộc tính lưu trữ. d) Thuộc tính không xác định giá trị(null values) Trong một số trường hợp, một thực thể c ... N FROM BANHANG Ví dụ 6: ( dùng ORDER BY ) Select MASV, HOSV, TENSV, MAKHOA FROM SVIEN ORDER BY MAKHOA, TENSV DESC 5.2.3.2 Phép chọn (trích ra những bộ của quan hệ thỏa ) Cú pháp: Select [distinct] * ll From Where [Order by [desc], . . .] Ví dụ 7: Tạo danh sách Sinh viên khoa CNTT Select MASV, HOSV, TENSV, MAKHOA FROM SVIEN WHERE MAKHOA=”CNTT” ORDER BY TENSV, HOSV ( Tương đương với phép chọn trên SVIEN với điều kiện MAKHOA=”CNTT” ) Ví dụ 8 : Tạo danh sách Sinh viên có họ là “ Nguyễn” Select MASV, HOSV, TENSV, MAKHOA FROM SVIEN WHERE HOSV LIKE “ Nguyễn%” ( Ký tự % biểu diễn cho một chuỗi ký tự có độ dài tùy ý ) 5.2.3.3 Phép tích Descartes Cú pháp: Select [distinct] * ll, . . . From [Order by [desc], . . .] Ví dụ 9: select * from svien, ketqua where hocbong > 100000 5.2.3.4 Phép kết Cú pháp: Select [distinct] * ll, . . . From Where 84 [Order by [desc], . . .] Nhận xét : Phép kết chính là phép tích Descartes phối hợp với phép chọn. Ví dụ 10: Cho Q1(A, B, C) và Q2(D, E) (các thuộc tính đều có kiểu số nguyên) Kết Q1 và Q2 theo điều kiện : = (A >=5 and D <=2) Select * From Q1, Q2 Where A >=5 and D<=2 Ví dụ 11: Liệt kê các phiếu thu tiền của khách hàng theo tên, họ từ quan hệ PHIEUTHU và K_HANG Select SOHĐ, NGP_HANH, MAKH, TENKH, SOTIEN From PHIEUTHU, K_HANG Where PHIEUTHU.MAKH=K_HANG.MAKH Ví dụ 12: (Phép kết nối kết hợp với phép chọn bằng cách dùng thêm các toán tử luận lý trong WHERE) Select MASV, HOSV, TENSV, MAKHOA,DIEM, XEPLOAI FROM SVIEN, KETQUA WHERE KETQUA.MASV=SVIEN.MASV And MAKHOA=’CNTT’ 5.2.3.5. Các lệnh truy vấn lồng nhau Trong các trường hợp truy vấn cần dùng nhiều quan hệ ta có thể dùng nhiều lệnh truy vấn lồng vào nhau (dùng IN / NOT IN) Ví dụ 13: Select MASV, HOSV, TENSV, MAKHOA, DIEM, XEPLOAI FROM KETQUA WHERE MASV IN ( Select MASV FROM SVIEN WHERE MAKHOA=’CNTT’ ) 5.2.3.6. Phân loại các bộ của một quan hệ Cú pháp: Select [distinct] * ll, . . . From GROUP BY , . . . [HAVING ] [Order by [desc], . . .] Thành phần GROUP BY , . . . dùng để phân nhóm dữ liệu. Những bộ trong có cùng giá trị trên các , . . . sẽ tạo thành một nhóm. Có thể dùng HAVING sau để kiểm tra điều kiện nhóm. Nhóm nào thỏa sau mới được trình bày. Ví dụ 14: Tính tổng số Sinh viên theo từng Huyện đang học tại trường ĐHPVĐ QN Select HUYEN, Count(*) From SVIEN Group by HUYEN 85 Ví dụ 15: (Dùng Having như là phép chọn phối hợp với phân nhóm dữ liệu) - In danh sách những mặt hàng có doanh số bán ra trên 1 triệu Select MAHH, Sum(GIABAN*SLUONG) From BANHANG Group by MAHH Having sum(GIABAN*SLUONG) >1.000.000 5.2.3.7 Phép hội / trừ / giao Cho Q1(A1,B1) và Q2(A1, B1), với Phép hội : (SELECT A1 FROM Q1 ) UNION (SELECT A1 FROM Q2 ) Phép trừ : (SELECT * FROM Q1 ) MINUS (SELECT * FROM Q2 ) Phép giao : (SELECT A1 FROM Q1 ) INTERSECT (SELECT A1 FROM Q2 ----oOo---- 86 BÀI TẬP CHƯƠNG 5 Cho lược đồ CSDL như sau: SINHVIEN(Masv, Hosv, Tensv, Ngaysinh, Phai, Makhoa) KHOA(Makhoa, Tenkhoa) MONHOC(Mamh, Tenmh, Sotiet) KETQUA(Masv, Mamh, Lanthi, Diem) 1. Cho biết kết qủa học tập của sinh viên có mã sinh viên S007 2. Liệt kê những sinh viên sinh vào ngày 03 tháng 07 3. Cho biết danh sách sinh viên mà họ có chứa chữ Anh 4. Cho biết danh sách sinh viên Nam khoa 'Công Nghệ Thông Tin' sắp tăng dần theo tên 5. Cho biết danh sách các môn học có số tiết trên 40 và có tên bắt đầu bằng chữ T 6. Liệt kê những sinh viên từ 20 tuổi trở lên khoa 'Công Nghệ Thông Tin' và khoa 'Điện Tử Viễn Thông' 7. Cho biết tên khoa nào không có Sinh viên 8. Cho biết danh sách sinh viên chưa học môn nào, thông tin gồm Hosv, Tensv, Ngaysinh, Ten khoa 9. Cho biết danh sách những sinh viên đã học môn có mã môn học AV, sắp giảm dần theo ngày sinh.(Thông tin hiển thị gồm MASV,HOSV,TENSV,NGAYSINH,TENKHOA) 10. Cho biết tên sinh viên được điểm cao nhất 11. Cho biết sinh viên nào rớt môn CSDL ở lần thi thứ nhất 12. Cho biết sinh viên nào rớt môn CSDL ở lần thi thứ nhất mà chưa thi lại lần 2 13. Đếm số lượng sinh viên của khoa 'Quản Trị Kinh Doanh' 14. Đếm số lượng sinh viên của từng khoa 15. Cho biết tên khoa có đông sinh viên nhất 16. Cho biết điểm thấp nhất của mọi môn học 17. Cho biết tên môn học nào chưa có sinh viên học 18. Cho biết điểm trung bình, điểm lớn nhất, điểm nhỏ nhất, lần thi thứ nhất của từng sinh viên.(Thông tin gồm TenSV, TenKhoa, DiemTB) ----oOo---- 87 TÀI LIỆU THAM KHẢO 1. Lê Tiến Vương, Nhập môn CSDL quan hệ, NXB Khoa học & Kỹ thuật, 2000 2. Nguyễn An Tế, Giáo trình nhập môn CSDL, Khoa CNTT, ĐHQG TP Hồ Chí Minh, 1996 3. Nguyễn Bá Tường, Cơ sở dữ liệu lý thuyết và thực hành, NXB Khoa học & Kỹ thuật, Hà Nội 2001. 4. Hồ Thuần, Nguyễn Quang Vinh, Nguyễn Xuân Huy, Nhập môn các hệ CSDL (tập 1 & 2) 5. Bài giảng môn Cơ sở dữ liệu, Trường Cao đẳng Công nghiệp 4, Thành phố Hồ Chí Minh, 2005. 6. David Maier The theory of Relational Databases, Computer Science Press, Rockville, 1983 88 MỤC LỤC Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU ............................................................ 1 1.1 DẪN NHẬP - TẠI SAO PHẢI CÓ MỘT CƠ SỞ DỮ LIỆU ................................... 1 1.1.1 Hệ thống tập tin cổ điển ....................................................................................... 1 1.1.2 Các ví dụ .............................................................................................................. 1 1.2 ĐỊNH NGHĨA MỘT CƠ SỞ DỮ LIỆU ..................................................................... 2 1.2.1 Giới thiệu chung ................................................................................................. 2 1.3 CÁC ĐỐI TƯỢNG SỬ DỤNG CSDL ...................................................................... 3 1.3.1 Các đối tượng sử dụng CSDL .............................................................................. 3 1.3.2 Các đặc tính của hệ CSDL(yêu cầu) ................................................................... 4 1.3.3 Cấu trúc của CSDL: (Có 3 mức) ........................................................................ 4 1.4 HỆ QUẢN TRỊ CSDL (Data Base Management System - DBMS) ........................ 4 1.4.1 Khái niệm Hệ quản trị CSDL ........................................................................... 4 1.4.2 Các thành phần của Hệ quản trị CSDL (DBMS): (có 3 phần) ........................... 4 1.5 SƠ ĐỒ TỔNG QUÁT CỦA MỘT HỆ QUẢN TRỊ CSDL ..................................... 5 1.5.1 Kiến trúc 3 lược đồ ............................................................................................. 5 1.5.2 Kiến trúc của Hệ quản trị CSDL ......................................................................... 5 1.6 TÍNH ĐỘC LẬP GIỮA DỮ LIỆU VÀ CHƯƠNG TRÌNH ...................................... 5 Chương 2: MÔ HÌNH THỰC THỂ LIÊN KẾT ER (Entity - Relationship model) .... 7 2.1 SỬ DỤNG MÔ HÌNH KHÁI NIỆM BẬC CAO CHO VIỆC THIẾT KẾ CƠ SỞ DỮ LIỆU ................................................................................................................................. 7 2.2 CÁC THÀNH PHẦN CƠ BẢN CỦA MÔ HÌNH THỰC THỂ LIÊN KẾT ........... 8 2.2.1 Thực thể, tập thực thể .......................................................................................... 8 2.2.2 Các loại thuộc tính ............................................................................................... 9 2.2.3 Kiểu thực thể, tập thực thể, khoá và tập giá trị .................................................. 10 2.2.4 Các liên kết, các kiểu liên kết, các vai trò và các ràng buộc cấu trúc ................ 12 2.2.5 Cấp liên kết, tên vai trò và liên kết đệ quy ........................................................ 13 2.2.6 Các ràng buộc trên các kiểu liên kết .................................................................. 14 2.2.7 Ví dụ về thiết kế một mô hình ER ..................................................................... 16 BÀI TẬP CHƯƠNG 2 ...................................................................................................... 19 CHƯƠNG 3: MÔ HÌNH QUAN HỆ ................................................................................. 20 3.1 CÁC KHÁI NIỆM CỦA MÔ HÌNH QUAN HỆ .................................................... 20 3.1.1 Miền, thuộc tính, bộ và quan hệ ........................................................................ 20 3.1.2 Các đặc trưng của các quan hệ .......................................................................... 22 3.2 CÁC RÀNG BUỘC QUAN HỆ, LƯỢC ĐỒ CSDL QUAN HỆ ............................ 23 3.2.1 Các ràng buộc miền ........................................................................................... 24 3.2.2 Ràng buộc khoá và ràng buộc trên các giá trị rỗng (null) ................................. 24 3.2.3 Cơ sở dữ liệu quan hệ và lược đồ cơ sở dữ liệu quan hệ ................................... 25 3.2.4 Toàn vẹn thực thể, toàn vẹn tham chiếu và khoá ngoài..................................... 28 3.3 CÁC PHÉP TOÁN CỦA MÔ HÌNH QUAN HỆ .................................................... 29 3.3.1 Các phép toán cập nhật ...................................................................................... 29 3.3.2 Các phép toán đại số quan hệ ............................................................................ 31 3.3.3 Các phép toán lý thuyết tập hợp ........................................................................ 34 3.3.4 Các phép toán quan hệ bổ sung ......................................................................... 39 3.4 CHUYỂN ĐỔI MÔ HÌNH THỰC THỂ - LIÊNKẾT THÀNH MÔ HÌNH QUAN HỆ .......................................................................................................................................... 40 3.4.1 Các quy tắc chuyển đổi ...................................................................................... 40 3.4.2 Chuyển đổi mô hình cụ thể ................................................................................ 43 BÀI TẬP CHƯƠNG 3 ...................................................................................................... 45 89 Chương 4: LÝ THUYẾT CHUẨN HÓA LƯỢC ĐỒ QUAN HỆ ................................ 46 4.1 CÁC KHÁI NIỆM CƠ BẢN ...................................................................................... 46 4.1.1 Quan hệ ............................................................................................................. 46 4.1.2 Các tính chất của một quan hệ ............................................................................ 47 4.1.3 Các ràng buộc toàn vẹn trên quan hệ .................................................................. 47 4.2 PHỤ THUỘC HÀM ................................................................................................... 49 4.2.1 Khái niệm phụ thuộc hàm .................................................................................. 49 4.2.2 Định nghĩa phụ thuộc hàm ................................................................................. 50 4.2.3 Các phụ thuộc hàm có thể có ............................................................................. 51 4.2.4 Hệ luật dẫn ARMSTRONG (Armstrong inference rule) ................................... 51 4.2.5 Phụ thuộc hàm được suy diễn logic từ F ........................................................... 52 4.2.6 Bao đóng của tập thuộc tính X (closures of attribute sets) ................................ 53 4.2.7 Bài toán thành viên ............................................................................................ 54 4.3 PHỦ CỦA TẬP PHỤ THUỘC HÀM....................................................................... 54 4.3.1 Định nghĩa ......................................................................................................... 54 4.3.2 Phủ tối thiểu của một tập phụ thuộc hàm (minimal cover) ............................... 55 4.4 KHÓA CỦA LƯỢC ĐỒ QUAN HỆ (KEY) ........................................................... 57 4.4.1 Định Nghĩa ........................................................................................................ 57 4.4.2 Các thuật toán tìm khóa ..................................................................................... 57 4.5 DẠNG CHUẨN CỦA LƯỢC ĐỒ QUAN HỆ (Normal Forms For Relation Schemes) ................................................................................................................................ 59 4.5.1 Dạng chuẩn 1NF (First Normal Form) .............................................................. 59 4.5.2 Dạng Chuẩn 2NF (Second Normal Form) ......................................................... 60 4.5.3 Dạng Chuẩn 3NF (Third Normal Form) ............................................................ 60 4.5.4 Dạng Chuẩn BCNF (Boyce-Codd Normal Form) ............................................. 63 4.6 PHÉP TÁCH KẾT NỐI BẢO TOÀN ...................................................................... 64 4.6.1 Phép tách kết nối bảo toàn thông tin (lossless-join decomposition) .................. 64 4.6.2 Định nghĩa phép tách R thành 2 lược đồ con .................................................... 65 4.6.3 Thuật toán kiểm tra phép tách kết nối bảo toàn thông tin ................................. 66 4.6.4 Phép tách bảo toàn phụ thuộc hàm (decompositions that preserve dependencies) .................................................................................................................................... 68 4.7 THIẾT KẾ CSDL BẰNG CÁCH PHÂN RÃ .......................................................... 72 4.7.1 Phân rã thành dạng chuẩn BCNF (hay chuẩn 3NF) bảo toàn thông tin ............ 72 4.7.2 Phân rã thành dạng chuẩn 3NF vừa bảo toàn thông tin vừa bảo toàn phụ thuộc hàm ............................................................................................................................. 74 BÀI TẬP CHƯƠNG 4......................................................................................................76 CHƯƠNG 5: NGÔN NGỮ TRUY VẤN CÓ CẤU TRÚC SQL ....................................... 78 5.1 GIỚI THIỆU SQL ..................................................................................................... 78 5.2 NGÔN NGỮ TRUY VẤN SQL ................................................................................ 80 5.2.1 Nhóm lệnh về kiến trúc CSDL ......................................................................... 80 5.2.2 Nhóm lệnh cập nhật dữ liệu .............................................................................. 81 5.2.3 Nhóm lệnh truy vấn dữ liệu ............................................................................... 82 BÀI TẬP CHƯƠNG 5 ...................................................................................................... 86 TÀI LIỆU THAM KHẢO ............................................................................................... 87
File đính kèm:
- bai_giang_co_so_du_lieu_ban_dep.pdf