Giáo trình Cơ sở dữ liệu - Cao Thị Nhạn (Phần 1)
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Cơ sở dữ liệu - Cao Thị Nhạn (Phần 1)", để 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:
- giao_trinh_co_so_du_lieu_cao_thi_nhan.pdf
Nội dung text: Giáo trình Cơ sở dữ liệu - Cao Thị Nhạn (Phần 1)
- TRƯỜNG ĐẠI HỌC ĐÀ LẠT KHOA CƠNG NGHỆ THƠNG TIN CAO THỊ NHẠN NGUYỄN THỊ THANH BÌNH GIÁO TRÌNH CƠ SỞ DỮ LIỆU Dành cho sinh viên ngành Cơng nghệ Thơng tin Đà Lạt 2010 Trang 1/109
- LỜI MỞ ĐẦU Để đáp ứng nhu cầu học tập của sinh viên chuyên ngành Cơng nghệ Thơng tin, bài giảng Cơ sở dữ liệu được biên soạn theo chương trình hệ thống tín chỉ của Trường Đại học Đà Lạt, cung cấp các kiến thức cơ bản về lý thuyết cơ sở dữ liệu. Giáo trình gồm 8 chương sau: Chương 1: giới thiệu chung Chương 2: trình bày mơ hình thực thể kết hợp E_R (Entity Relationship) để mơ hình hĩa các hoạt động trong thế giới thực, nhìn thế giới thực như là một tập các đối tượng căn bản được gọi là các thực thể, và các mối quan hệ ở giữa các đối tượng này. Mơ hình được phát triển để làm thuận tiện cho việc thiết kế cơ sở dữ liệu bằng cách đặc tả một tổ chức. Chương 3: trình bày mơ hình dữ liệu quan hệ, các quy tắc chuyển đổi cơ sở dữ liệu biểu diễn dạng lược đồ E_R sang mơ hình dữ liệu quan. Chương 4, 5 và 6: trình bày các ngơn ngữ truy vấn trên cơ sở dữ liệu. Trong chương 4 trình bày ngơn ngữ đại số quan hệ, chương 5 trình bày ngơn ngữ tân từ và chương 6 trình bày ngơn ngữ truy vấn SQL. Chương 7: trình bày các khái niệm liên quan đến phụ thuộc hàm, khĩa, các thuật tốn tìm phủ tối thiểu của tập phụ thuộc hàm, tìm khĩa và cuối chương trình bày về ràng buộc tồn vẹn dữ liệu. Chương 8: Chương này giới thiệu các dạng chuẩn, phân rã bảo tồn thơng tin, bảo tồn phụ thuộc hàm, qua đĩ cũng trình bày cách phân rã bảo tồn bảo tồn thơng tin và bảo tồn phụ thuộc. Mặc dù đã rất cố gắng trong quá trình biên soạn bài giảng nhưng chắc chắn bài giảng sẽ cịn nhiều thiếu sĩt và hạn chế. Rất mong nhận được sự đĩng gĩp ý kiến quý báu của sinh viên và các bạn đọc để giáo trình ngày một hồn thiện hơn. Trang 2/109
- MỤC LỤC Lời mở đầu 2 Mục lục 3 Chương 1: Giới thiệu chung 8 1. Giới thiệu chung 8 1.1. Giới thiệu 8 1.2. Định nghĩa CSDL. 10 1.3. Các đối tượng sử dụng CSDL. 11 1.4. Hệ quản trị CSDL 12 1.5. Các mức biểu diễn một CSDL 12 1.6. Sơ đồ tổng quát một hệ quản trị CSDL 14 1.7. Tính độc lập giữa dữ liệu và chương trình. 15 2. Các cách tiếp cận của một CSDL 15 2.1. Cách tiếp cận theo mơ hình dữ liệu mạng 16 2.2. Mơ hình dữ liệu phân cấp 17 2.3. Mơ hình dữ liệu quan hệ thực thể 18 2.4. Mơ hình dữ liệu quan hệ 18 2.5. Mơ hình dữ liệu hướng đối tượng 19 3. Bài tập 19 Chương 2: Mơ hình thực thể kết hợp 21 1. Mơ hình thực thể kết hợp. 21 1.1. Thực thể - tập thực thể 21 1.2. Thuộc tính 21 1.3. Mối kết hợp 22 1.4. Bản số 23 1.5. Khố 24 Trang 3/109
- 1.6. Số chiều của mối kết hợp 25 1.7. Tổng quát hĩa và chuyên biệt hĩa 25 1.8. Tập thực thể yếu 26 2. Ví dụ 27 3. Bài tập 29 Chương 3: Mơ hình dữ liệu quan hệ 30 1. Các khái niệm cơ bản 30 1.1. Thuộc tính 30 1.2. Quan hệ n ngơi 31 1.3. Bộ 31 1.4. Lược đồ quan hệ 32 1.5. Khĩa của một quan hệ 33 1.6. Ràng buộc tồn vẹn 35 2. Các thao tác cơ bản trên quan hệ 35 2.1. Phép thêm 35 2.2. Phép xĩa 36 2.3. Phép sửa 36 3. Các bước chuyển đổi từ mơ hình thực thể kết hợp sang mơ hình quan hệ 37 3.1. Biến các tập thực thể chuyên biệt hĩa về dạng bình thường 37 3.2. Chuyển tất cả các tập thực thể thành quan hệ 38 3.3. Mối kết hợp 39 3.4. Nhập tất cả các quan hệ cĩ cùng khĩa 39 Chương 4: Ngơn ngữ đại số quan hệ 40 Trang 4/109
- 1. Các phép tốn cơ sở 40 1.1. Các phép tốn tập hợp 40 1.2. Các phép tốn quan hệ 41 2. Các phép tốn khác 46 2.1. Phép kết hai quan hệ 46 2.2. Phép kết nối nội 47 2.3. Phép kết nối trái 48 2.4. Phép kết nối phải 49 2.5. Hàm kết hợp và gom nhĩm 49 2.6. Các phép tốn cập nhật trên quan hệ 50 3. Bài tập 52 Chương 5: Ngơn ngữ tân từ 55 1. Ngơn ngữ tân từ cĩ biến là bộ 55 1.1. Một số khái niệm 55 1.2. Định nghĩa hình thức của phép tính bộ 55 1.3. Lượng từ tồn tại ∃ và với mọi ∀ 57 2. Ngơn ngữ tân từ cĩ biến là miền giá trị 58 3. Bài tập 59 Chương 6: Ngơn ngữ truy vấn SQL 61 1. Các lệnh hỏi 61 1.1. Cú pháp lệnh truy vấn 61 1.2. Phép chiếu 62 1.3. Phép chọn 62 1.4. Phép kết 63 Trang 5/109
- 1.5. Một số lưu ý 63 2. Truy vấn lồng 65 3. Hàm kết hợp và gom nhĩm 68 4. Các lệnh khai báo cấu trúc CSDL 69 5. Các thao tác cập nhật dữ liệu 72 6. Bài tập 73 Chương 7: Phụ thuộc hàm, khĩa, ràng buộc tồn vẹn 74 1. Phụ thuộc hàm 74 1.1. Khái niệm phụ thuộc hàm 74 1.2. Hệ luật dẫn Amstrong 75 1.3. Thuật tốn tìm bao đĩng của tập thuộc tính 77 1.4. Bài tốn thành viên 78 1.5. Phủ tối thiểu của một tập phụ thuộc hàm 78 2. Khĩa 82 2.1. Định nghĩa 82 2.2. Thuật tốn tìm khĩa 82 3. Ràng buộc tồn vẹn 85 3.1. Định nghĩa – các yếu tố của ràng buộc tồn vẹn 85 3.2. Các loại ràng buộc tồn vẹn 87 4. Bài tập 93 Chương 8: Dạng chuẩn và chuẩn hĩa CSDL 96 1. Dạng chuẩn của lược đồ quan hệ 96 1.1. Dạng chuẩn 1 96 1.2. Dạng chuẩn 2 97 1.3. Dạng chuẩn 3 100 Trang 6/109
- 1.4. Dạng chuẩn BC 101 1.5. Kiểm tra dạng chuẩn 101 2. Phép phân rã 102 2.1. Phân rã bảo tồn thơng tin 102 2.2. Phân rã bảo tồn phụ thuộc hàm 103 3. Thiết kế CSDL bằng cách phân rã 104 3.1. Phân rã thành dạng chuẩn BC (hoặc dạng chuẩn 3) bảo tồn thơng tin 104 3.2. Phân rã thành dạng chuẩn 3 vừa bảo tồn thơng tin vừa bảo tồn phụ thuộc hàm 108 4. Bài tập 108 Tài liệu tham khảo 109 Trang 7/109
- Chương 1 Giới Thiệu Chung Chương 1 giới thiệu cho học viên các khái niệm cơ bản về cơ sở dữ liệu (CSDL) và hệ quản trị CSDL. 1. Giới thiệu chung 1.1. Giới thiệu Xét một hệ thống các tập tin cổ điển: được tổ chức một cách riêng rẽ, phục vụ cho một mục đích của một đơn vị hay một đơn vị con trực thuộc cụ thể. Ứng dụng là một hệ quản lý nhân sự của một cơng ty. Tại một cơng ty đã được trang bị máy vi tính cho tất cả các phịng ban. Trong đĩ: • Phịng Tổ chức lưu giữ những thơng tin về lý lịch của nhân viên như họ tên, bí danh, giới tính, ngày sinh, ngày vào đồn, ngày vào đảng, ngày tuyển dụng, hệ số lương, hệ số phụ cấp, hồn cảnh gia đình Phần mềm được sử dụng để quản lý là Microsoft Access. • Phịng Tài vụ lưu giữ những thơng tin về họ tên, hệ số lương, hệ số phụ cấp, đơn vị để tính tốn lương và phụ cấp dựa trên danh sách do phịng tổ chức gởi sang. Các bảng tính này được làm bởi Microsoft Excel. • Bộ phận Văn thư sử dụng Microsoft word để thảo các văn bản báo cáo về tình hình của đơn vị trong đĩ cĩ nêu tổng số cơng nhân viên và trình độ chuyên mơn được đào tạo. • Trong khi đĩ tại tổng cơng ty các phịng ban cũng được trang bị máy vi tính và cũng quản lý những thơng tin của các cán bộ chủ chốt của cơng ty con là giám đốc, phĩ giám đốc, trưởng phĩ phịng. Việc phát triển của hệ thống quản lý như sau: • Những chương trình ứng dụng mới phải được viết khi một nhu cầu nảy sinh. • Các tập tin thường trực mới được tạo ra theo yêu cầu. • Trong một thời gian dài các tập tin cĩ thể ở các dạng thức khác nhau. • Những chương trình ứng dụng cĩ thể viết bởi các ngơn ngữ khác nhau. Trang 8/109
- Ưu điểm: • Việc xây dựng những hệ thống tập tin riêng lẽ tại từng đơn vị quản lý ít tốn thời gian bởi lượng thơng tin cần quản lý và khai thác là nhỏ, khơng địi hỏi đầu tư nhiều nên triển khai nhanh. • Thơng tin được khai thác chỉ phục vụ cho mục đích hẹp nên khả năng đáp ứng nhanh chĩng, kịp thời. Hạn chế: Do thơng tin được tổ chức ở mỗi phịng ban mỗi khác (thơng tin và cơng cụ triển khai) nên rõ ràng sự phối hợp về mặt tổ chức và khai thác ở các phịng ban rất khĩ khăn. Thơng tin ở phịng ban này khơng được sử dụng cho phịng ban khác, tại cơng ty con với tổng cơng ty. Hơn nữa cùng một thơng tin được cập nhật vào máy tại nhiều nơi khác nhau. Do đĩ cĩ những hạn chế sau: • Dữ liệu dư thừa và khơng nhất quán 9 Những thơng tin giống nhau cĩ thể bị trùng lắp ở một số nơi. 9 Tất cả những bản sao dữ liệu cĩ thể khơng được cập nhật đúng. • Khĩ khăn trong việc truy xuất dữ liệu 9 Cĩ thể phải viết một trình ứng dụng mới thỏa yêu cầu mới đặt ra. 9 Cĩ thể tạo ra dữ liệu này một cách thủ cơng nhưng mất thời gian. • Khĩ khăn khi viết chương trình ứng dụng địi hỏi thơng tin liên quan đến nhiều đơn vị 9 Dữ liệu ở những tập tin khác nhau. 9 Dữ liệu ở các dạng thức khác nhau. Ngồi ra cịn một số vấn đề chưa được giải quyết như: • Nhiều người sử dụng 9 Muốn thời gian trả lời nhanh hơn cho các tác vụ đồng thời. 9 Cần sự bảo vệ đối với những cập nhật đồng thời. • Các vấn đề bảo mật 9 Mỗi người sử dụng hệ thống chỉ cĩ thể truy xuất những dữ liệu mà họ được phép thấy. Trang 9/109
- 9 Chẳng hạn như những người tính lương và phụ cấp chỉ giải quyết các mẫu tin nhân viên, và khơng thể thấy được thơng tin về lý lịch nhân viên; những thủ quỹ chỉ truy xuất những dữ liệu về các khoản chi 9 Khĩ khăn để ràng buộc điều này trong những chương trình ứng dụng. • Các vấn đề tồn vẹn. 9 Dữ liệu cĩ thể được yêu cầu thỏa mãn những ràng buộc. 9 Chẳng hạn như nhân viên đang hưởng chế độ nào đĩ ở phịng tổ chức thì sẽ khơng được hưởng chế độ trợ cấp cao nhất của phịng cơng đồn. 9 Với cách tiếp cận xử lý-tập tin, khĩ khăn để thực hiện hoặc thay đổi những ràng buộc như vậy. • Khĩ khăn khi nâng cấp hệ thống. 9 Do hệ thống được tổ chức thành các tập tin riêng lẽ nên thiếu sự chia xẻ thơng tin giữa các phịng ban. Bên cạnh đĩ việc kết nối các hệ thống này với nhau hay nâng cấp ứng dụng sẽ gặp rất nhiều khĩ khăn. Những nhược điểm này đã dẫn tới việc phát triển các hệ thống quản trị cơ sở dữ liệu. 1.2. Định nghĩa cơ sở dữ liệu Cơ sở dữ liệu (database) là một hệ thống các thơng tin cĩ cấu trúc được lưu trữ trên các thiết bị lưu trữ thứ cấp (băng từ, đĩa từ ) nhằm thoả mãn yêu cầu khai thác thơng tin đồng thời của nhiều người sử dụng hay nhiều chương trình ứng dụng với nhiều mục đích khác nhau. Ưu điểm của CSDL: • Giảm sự trùng lắp thơng tin xuống mức thấp nhất và do đĩ bảo đảm được tính nhất quán và tồn vẹn dữ liệu • Dữ liệu cĩ thể được truy xuất theo nhiều cách khác nhau • Khả năng chia xẻ thơng tin cho nhiều người sử dụng và nhiều ứng dụng khác nhau Để đạt được những ưu điểm trên CSDL đặt ra những vấn đề cần giải quyết, đĩ là: • Tính chủ quyền của dữ liệu. Do sự chia xẻ của CSDL nên tính chủ quyền của dữ liệu cĩ thể bị lu mời và làm mờ nhạt tinh thần trách nhiệm, được thể hiện trên vấn đề an tồn dữ liệu, khả năng biểu diễn các mối liên hệ ngữ nghĩa của dữ liệu và tính chính xác của dữ liệu. Nghĩa là người khai thác CSDL phải cĩ nghĩa vụ cập nhật các thơng tin mới nhất của CSDL. Trang 10/109
- • Tính bảo mật và quyền khai thác thơng tin của người sử dụng (NSD). Do cĩ nhiều người cùng khai thác CSDL một cách đồng nên cần phải cĩ một cơ chế bảo mật và phân quyền khai thác CSDL. • Tranh chấp dữ liệu. Nhiều người được phép truy cập vào cùng một tài nguyên dữ liệu (data source) của CSDL với những mục đích khác nhau như xem, thêm, xĩa, sửa dữ liệu. Như vậy cần phải cĩ cơ chế ưu tiên truy nhập dữ liệu cũng như cơ chế giải quyết tình trạnh khố chết (DeadLock) trong quá trình khai thác cạnh tranh. Cơ chế ưu tiên cĩ thể được thực hiện dựa trên: 9 Cấp quyền ưu tiên cho người khai thác CSDL, người nào cĩ quyền ưu tiên cao hơn thì được ưu tiên cấp quyền truy nhập dữ liệu trước. 9 Thời điểm truy nhập, ai cĩ yêu cầu truy xuất trước thì cĩ quyền truy nhập dữ liệu trước. 9 Hoặc dựa trên cơ chế lập lịch truy xuất hay cơ chế khố. 9 • Đảm bảo dữ liệu khi cĩ sự cố. Việc quản lý tập trung cĩ thể làm tăng khả năng mất mát hoặc sai lệch thơng tin khi cĩ sự cố như mất điện đột xuất, một phần hay tồn bộ đĩa lưu trữ dữ liệu bị hư Một số hệ điều hành mạng cĩ cung cấp dịch vụ sao lưu đĩa cứng (cơ chế sử dụng đĩa cứng dự phịng - RAID), tự động kiểm tra và khắc phục lỗi khi cĩ sự cố. Tuy nhiên bên cạnh dịch vụ của hệ điều hành, một CSDL nhất thiết phải cĩ một cơ chế khơi phục dữ liệu khi các sự cố bất ngờ xảy ra để đảm bảo CSDL luơn ổn định. 1.3. Các đối tượng sử dụng CSDL • Những người sử dụng khơng chuyên về lĩnh vực tin học và CSDL, do đĩ CSDL cần cĩ các cơng cụ để giúp cho người sử dụng khơng chuyên cĩ thể khai thác hiệu quả CSDL • Các chuyên viên tin học biết khai thác CSD, đây là những người cĩ thể xây dựng các ứng dụng khác nhau phục vụ cho những yêu cầu khác nhau trên CSDL. • Những người quản trị CSDL, là những người hiểu biết về tin học, các hệ quản trị CSDL và hệ thống máy tính. Họ là người tổ chức CSDL (khai báo cấu trúc CSDL, ghi nhận các yêu cầu bảo mật cho các dữ liệu cần bảo vệ ), do đĩ họ cần phải nắm rõ các vấn đề về kỹ thuật để cĩ thể phục hồi dữ liệu khi cĩ sự cố. Họ là những người cấp quyền hạn khai thác CSDL nên họ cĩ thể giải quyết các vấn đề tranh chấp dữ liệu. Trang 11/109
- 1.4. Hệ quản trị CSDL Để giải quyết tốt những vấn đề đặt ra cho một CSDL như đã trình bày trong 1.2 thì cần cĩ một hệ thống các phần mềm chuyên dụng. Hệ thống này được gọi là hệ quản trị CSDL (Database Management System - DBMS), là cơng cụ hỗ trợ tích cực cho các nhà phân tích, thiết kế và khai thác CSDL. Hiện nay cĩ nhiều hệ quản trị CSDL trên thị trường như: Visual Foxpro, SQL server, DB2, Microsoft Access, Oracle Một hệ quản trị CSDL phải cĩ: • Ngơn ngữ giao tiếp giữa NSD và CSDL: 9 Ngơn ngữ mơ tả dữ liệu (Data Definition Language - DDL) để cho phép khai báo cấu trúc của CSDL, khai báo các mối liên hệ của dữ liệu (Data Relationship) và các quy tắc (Rules, Constraint) quản lý áp đặt trên dữ liệu. 9 Ngơn ngữ thao tác dữ liệu (Data Manipulaton Language - DML) cho phép NSD cĩ thể thêm, xố, dữ liệu trong CSDL. 9 Ngơn ngữ truy vấn dữ liệu (Structured Query Language - SQL) cho phép NSD truy vấn các thơng tin cần thiết. 9 Ngơn ngữ quản lý dữ liệu (Data Control Language - DCL) cho phép những người quản trị hệ thống thay đổi cấu trúc của các bảng dữ liệu, khai báo bảo mật thơng tin và cấp quyền khai thác CSDL cho NSD. • Tự điển dữ liệu (Data dictionary) dùng để mơ tả các ánh xạ liên kết, ghi nhận các thành phần cấu trúc của CSDL, các chương trình ứng dụng, mật mã, quyền sử dụng • Cĩ biện pháp bảo mật tốt. • Cĩ cơ chế giải quyết tranh chấp dữ liệu. • Cĩ cơ chế sao lưu và phục hồi dữ liệu khi cĩ sự cố xảy ra. • Cĩ giao diện tốt, dễ sử dụng. • Bảo đảm tính độc lập giữa dữ liệu và chương trình: khi cĩ sự thay đổi dữ liệu (như sửa đổi cấu trúc lưu trữ các bảng dữ liệu, thêm các chỉ mục, ) thì các chương trình ứng dụng đang chạy trên CSDL vẫn khơng cần phải viết lại hay cũng khơng ảnh hưởng đến NSD khác. 1.5. Các mức biểu diễn một CSDL Để hệ thống cĩ thể dùng được thì phải tìm dữ liệu một cách hiệu quả. Điều này dẫn đến việc cần phải thiết kế những cấu trúc dữ liệu phức tạp đối với việc biểu diễn dữ liệu trong Trang 12/109
- cơ sở dữ liệu. Vì nhiều người sử dụng các hệ thống cơ sở dữ liệu khơng phải là người hiểu biết nhiều về máy tính nên những người phát triển hệ thống phải che dấu đi sự phức tạp khỏi người sử dụng thơng qua một số mức trừu tượng, nhằm làm đơn giản hĩa sự tương tác của người sử dụng đối với hệ thống. Cĩ 3 mức biểu diễn dữ liệu, cụ thể như sau: Mức trong (mức vật lý - Physical level) • Nĩi đến cách thức dữ liệu được lưu trữ thực sự. Trả lời câu hỏi dữ liệu gì và lưu trữ chúng như thế nào? Cần các chỉ mục gì? • Ví dụ như chỉ mục, B-cây, băm. • Những người thao tác tại mức này là người quản trị CSDL và những NSD chuyên mơn. Mức quan niệm hay mức logic (conception level, logical level) • Trả lời câu hỏi cần phải lưu trữ bao nhiêu loại dữ liệu? Đĩ là những dữ liệu gì? Mối quan hệ giữa chúng như thế nào? • Như vậy CSDL mức vật lý là sự cài đặt cụ thể của CSDL mức quan niệm. Mức ngồi hay mức nhìn (view level) • Là mức của NSD và các chương trình ứng dụng. • Làm việc tại mức này là các nhà chuyên mơn, kỹ sư tin học, NSD khơng chuyên. • Mỗi NSD hay mỗi chương trình ứng dụng cĩ thể được nhìn CSDL theo một gĩc độ khác nhau. Tuỳ thuộc vào vai trị của NSD mà cĩ thể thấy tất cả hoặc một phần của CSDL. NSD hay chương trình ứng dụng cĩ thể khơng được biết về cấu trúc tổ chức lưu trữ thơng tin trong CSDL. 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. Trang 13/109
- 1.6. Sơ đồ tổng quát một hệ quản trị CSDL Hình 1.2. Sơ đồ tổng quát của một hệ quản trị CSDL Hình 1.2 minh họa sơ đồ tổng quát của một hệ quản trị CSDL. Cĩ 3 mức: mức chương trình khai báo cấu trúc và chương trình ứng dụng; mức mơ tả CSDL, thao tác CSDL và các tự điển dữ liệu; mức CSDL. Trang 14/109
- Mỗi hệ quản trị CSDL cĩ một ngơn ngữ khai báo hay mơ tả (Data Definition Language - DDL) cấu trúc CSDL riêng. Những người thiết kế và quản trị CSDL thực hiện các cơng việc khai báo cấu trúc CSDL. Các chương trình khai báo cấu trúc CSDL được viết bằng ngơn ngữ mà hệ quản trị CSDL cho phép. Hai cơng việc khai báo cấu trúc logic (là việc khai báo các loại dữ liệu và các mối liên hệ giữa các loại dữ liệu đĩ, cùng các ràng buộc tồn vẹn dữ liệu) và khai báo vật lý (dữ liệu được lưu trữ theo dạng nào, cĩ bao nhiêu chỉ mục) Các chương trình ứng dụng được viết bằng ngơn ngữ thao tác CSDL (Data Manipulation Langage - DML) với mục đích: • Truy xuất dữ liệu • Cập nhật dữ liệu (thêm, xĩa, sửa) • Khai thác dữ liệu • Ngơn ngữ thao tác CSDL cịn được sử dụng cho những người sử dụng thao tác trực tiếp với CSDL. Tự điển dữ liệu (Data Dictionary - DD) là một CSDL của hệ quản trị CSDL sử dụng để lưu trữ cấu trúc CSDL, các thơng tin bảo mật, bảo đảm an tồn dữ liệu và các cấu trúc ngồi. Tự điển dữ liệu cịn được gọi là siêu CSDL (Meta-Database) 1.7. Tính độc lập giữa dữ liệu và chương trình • Độc lập dữ liệu vật lý 9 Khả năng cập nhật lược đồ vật lý khơng làm cho các chương trình ứng dụng phải bị viết lại. 9 Việc cập nhật ở mức này thường cần thiết để cải tiến hiệu suất. • Độc lập dữ liệu logic 9 Khả năng cập nhật lược đồ logic mà khơng làm cho các chương trình ứng dụng phải bị viết lại. 9 Những cập nhật thường được thực hiện khi cấu trúc logic của cơ sở dữ liệu thay đổi. 2. Các cách tiếp cận của một CSDL Nền tảng của cấu trúc cơ sở dữ liệu là mơ hình dữ liệu. Mơ hình dữ liệu được định nghĩa là một sưu tập các cơng cụ khái niệm dùng cho việc mơ tả dữ liệu, các mối quan hệ dữ liệu, các ngữ nghĩa dữ liệu và các ràng buộc dữ liệu. Trang 15/109
- 2.1. Cách tiếp cận theo mơ hình dữ liệu mạng Mơ hình dữ liệu mạng (Network Data Model) hay gọi tắt là mơ hình mạng (Network Model) là mơ hình được biểu diễn bởi một đồ thị cĩ hướng. Mơ hình này được xây dựng bởi Honeywell vào năm 1964-1965. Trong mơ hình này, cĩ 3 khái niệm được sử dụng: mẫu tin hay bản ghi (record), loại mẫu tin (record type) và loại liên hệ (set type). Loại mẫu tin: đặc trưng cho một loại đối tượng riêng biệt. Chẳng hạn như trong quản lý nhân sự tại một đơn vị thì đối tượng cần phản ảnh của thế giới thực cĩ thể là Phịng, nhân viên, cơng việc, lý lịch do đĩ cĩ các loại mẫu tin đặc trưng cho từng đối tượng này. Trong mơ hình mạng, mỗi loại mẫu tin được thể hiện bằng một hình chữ nhật, một thể hiện (instance) của một loại mẫu tin được gọi là bản ghi (record) . Ở ví dụ trên loại mẫu tin Phịng cĩ các mẫu tin là các phịng ban trong cơng ty, loại mẫu tin Nhân viên cĩ các mẫu tin là các nhân viên đang làm việc tại các phịng ban của cơng ty Loại liên hệ: là sự liên kết giữa một loại mẫu tin chủ với một mẫu tin thành viên. Trong mơ hình mạng, một loại liên hệ được thể hiện bằng hình bầu dục và sự liên kết giữa hai loại mẫu tin được thể hiện bằng các cung cĩ hướng đi từ loại mẫu tin chủ đến loại liên hệ và từ loại liên hệ đến loại mẫu tin thành viên. Trong loại liên kết người ta cịn chỉ ra số lượng các mẫu tin tham gia vào trong mối kết hợp. Cĩ một số loại sau: • 1÷ 1 (One to One): Mỗi mẫu tin của loại mẫu tin chủ kết hợp với đúng 1 mẫu tin của loại mẫu tin thành viên. Ví dụ, mỗi nhân viên cĩ duy nhất một lý lịch cá nhân. • 1÷ n (One to Many): Mỗi mẫu tin của loại mẫu tin chủ kết hợp với 1 hay nhiều mẫu tin của loại mẫu tin thành viên. Ví dụ, mỗi phịng ban cĩ thể cĩ một hoặc nhiều nhân viên. • n ÷ 1 (Many to One): Nhiều mẫu tin của loại mẫu tin chủ kết hợp với đúng 1 mẫu tin của loại mẫu tin thành viên. Ví dụ, nhiều nhân viên cùng làm một cơng việc. • Đệ quy (Recursive): Một loại mẫu tin chủ cũng cĩ thể đồng thời là mẫu tin thành viên với chính nĩ. Ví dụ, trưởng phịng cũng là một nhân viên thuộc phịng trong cơng ty. Hình 1.4 minh hoạ một mơ hình dữ liệu mạng. Trang 16/109
- Hình 1.4. Mơ hình dữ liệu mạng Ưu điểm: đơn giản, dễ sử dụng. Hạn chế: khơng thích hợp trong việc biểu diễn CSDL lớn do hạn chế về khả năng diễn đạt ngữ nghĩa của dữ liệu, đặc biệt là các dữ liệu và mối liên hệ phức tạp của dữ liệu trong thực thế là rất hạn chế. 2.2. Mơ hình dữ liệu phân cấp Mơ hình dữ liệu phân cấp (Hieracical Data Model), cịn gọi là mơ hình phân cấp (Hieracical Model), được thực hiện thơng qua sự kết hợp giữa IBM và North American Rockwell vào khoảng năm 1965. Mơ hình là một cây, trong đĩ mỗi nút của cây biểu diễn một thực thể, giữa nút con với nút cha được liên hệ với nhau theo một mối quan hệ xác định. Loại mẫu tin: giống trong mơ hình dữ liệu mạng Loại mối liên hệ: kiểu liên hệ là phân cấp: Mẫu tin thành viên chỉ đĩng vai trị thành viên của một mối liên hệ duy nhất, tức là nĩ thuộc một chủ duy nhất. Như vậy, mối liên hệ từ mẫu tin chủ tới các mẫu tin thành viên là 1 ÷ n và từ mẫu tin thành viên với mẫu tin chủ là 1 ÷ 1 Trang 17/109
- Giữa hai loại mẫu tin chỉ tồn tại một mối quan hệ duy nhất. Hình 1.5 minh hoạ mơ hình dữ liệu phân cấp một CSDL về điều tra dân số. Hình 1.5. Mơ hình dữ liệu phân cấp 2.3. Mơ hình dữ liệu quan hệ Mơ hình dữ liệu quan hệ (Relational Data Model) cịn được gọi là mơ hình quan hệ (Relational Model) do E.F.Codd đề xuất năm 1970. Nền tảng cơ bản là khái niệm lý thuyết tập hợp trên các quan hệ, tức là tập của các bộ giá trị (value tuples). Trong mơ hình dữ liệu này những khái niệm được sử dụng là thuộc tính (attribute), quan hệ (relation), lược đồ quan hệ (relation schema), bộ (tuple), khĩa (key). Mơ hình quan hệ là mơ hình được nghiên cứu nhiều nhất, và cĩ cơ sở lý thuyết vững chắc nhất. Mơ hình quan hệ cùng với mơ hình dữ liệu thực thể kết hợp đang được sử dụng rộng rãi nhất hiện nay trong việc phân tích và thiết kế CSDL. Chúng ta sẽ nghiên cứu chi tiết về mơ hình này trong chương sau. 2.4. Mơ hình dữ liệu thực thể - kết hợp Mơ hình dữ liệu thực thể - kết hợp (Entity – Relationship Model) do Peter Pin_Shan Chen đề xuất năm 1976. Mơ hình quan hệ-thực thể được dựa trên sự nhận thức thế giới gồm cĩ Trang 18/109
- một sưu tập các đối tượng căn bản, được gọi là các tập thực thể, và các mối quan hệ ở giữa các đối tượng này.Trong mơ hình này các khái niệm được sử dụng là tập thực thể (entity set), thực thể (entity), thuộc tính của loại thực thể (entity attribute), khĩa của loại thực thể (entity key), loại mối kết hợp (entity relationship), số ngơi của mối kết hợp (relationship degree), thuộc tính của mối kết hợp (relationship attribute), bản số của mối kết hợp (relationship cardinal). Chi tiết của mơ hình này sẽ được nghiên cứu trong chương sau. 2.5. Mơ hình dữ liệu hướng đối tượng Mơ hình dữ liệu hướng đối tượng (Object Oriented Data Model) ra đời vào cuối những năm 80 và đầu những năm 90. Đây là loại mơ hình tiên tiến nhất hiện nay dựa trên cách tiếp cận hướng đối tượng. Mơ hình này sử dụng các khái niệm như lớp (class), sự kế thừa (inheritance), kế thừa bội (multi - inheritance). Đặc trưng cơ bản của cách tiếp cận này là tính đĩng gĩi (encapsulation), tính đa hình (polymorphism) và tính tái sử dụng (reusability). 3. Bài tập Bài 1: Dựa vào những khái niệm đã học, hãy biểu diễn CSDL cĩ các loại mẫu tin Phịng, Nhân viên, Cơng việc, lý lịch đã trình bày trong mơ hình mạng theo cách tiếp cận phân cấp.Biết: • Loại liên hệ là phân cấp. • Phịng cĩ nhiều nhân viên, mỗi nhân viên chỉ thuộc một phịng duy nhất • Cơng việc cĩ nhiều nhân viên cùng làm; mỗi nhân viên chỉ làm một cơng việc duy nhất • Mỗi nhân viên cĩ một lý lịch, mỗi lý lịch chỉ thuộc duy nhất một nhân viên. Bài 2: Dựa vào những khái niệm đã học, hãy biểu diễn CSDL về tổng điều tra dân số tồn quốc cĩ các loại mẫu tin tỉnh – thành phố, quận huyện, phường xã, địa bàn, hộ điều tra và nhân khẩu đã trình bày trong mơ hình phân cấp theo cách tiếp cận mạng. Biết: • Nhân khẩu thuộc một hộ điều tra • Hộ điều tra thuộc một địa bàn • Địa bàn điều tra thuộc một phường xã Trang 19/109
- • Phường xã thuộc một quận huyện • Quận huyện thuộc một tỉnh, thành phố Trang 20/109
- Chương 2 Mơ Hình Thực Thể Kết Hợp Mơ hình dữ liệu thực thể kết hợp (E-R - entity-relationship data model) do Peter Pin_Shan Chen đề xuất năm 1976, nhìn thế giới thực như là một tập các đối tượng căn bản được gọi là các thực thể, và các mối quan hệ ở giữa các đối tượng này. Mơ hình đã được phát triển để làm thuận tiện cho việc thiết kế cơ sở dữ liệu bằng cách đặc tả một tổ chức. Một lược đồ như vậy biểu diễn một cấu trúc logic tổng quát của cơ sở dữ liệu. 1. Mơ hình thực thể kết hợp Những khái niệm căn bản mà mơ hình thực thể kết hợp dùng: thực thể, tập thực thể, khĩa, mối quan hệ, và thuộc tính. 1.1. Thực thể - Tập thực thể Một thực thể (an entity) là một “sự vật” hoặc “đối tượng” mà nĩ tồn tại và cĩ thể phân biệt được với các đối tượng khác. Ví dụ như một nhân viên trong một tổ chức là một thực thể. Một tập thực thể (an entity set) là một tập hợp các thực thể cùng loại mà chúng chia sẻ cùng những tính chất hoặc thuộc tính. Ví dụ như tập hợp tất cả những người mà họ là nhân viên của một tổ chức là một tập thực thể khách hàng. Mỗi tập thực thể được đặt một tên gọi, thơng thường là danh từ. Ví dụ như KHACHHANG, HOADON, Ký hiệu: hình chữ nhật với tên gọi NHANVIEN Hình 2.1. Tập thực thể 1.2. Thuộc tính Mỗi một tập thực thể cĩ nhiều đặc trưng riêng được gọi là các thuộc tính. Mỗi một thuộc tính được đặt một tên, chẳng hạn như MaKH (mã khách hàng), HoTenKH (họ tên khách hàng) Ký hiệu: hình oval với tên gọi, cĩ đường nối với thực thể Trang 21/109
- Khi phân tích một thuộc tính, thơng thường cần xét đến kiểu dữ liệu và miền giá trị tương ứng của thuộc tính đĩ. Chẳng hạn các thuộc tính Mã nhân viên (MANV), Họ tên (HoTen), Ðịa chỉ (DiaChi) là những chuỗi ký tự phản ánh những thơng tin trên về nhân viên; Đơn giá là số nguyên dương, Cĩ một số loại thuộc tính sau: • Thuộc tính đơn, kết hợp: Thuộc tính đơn là thuộc tính khơng thể chia ra thành những phần con nhỏ hơn. Cịn thuộc tính kết hợp thì cĩ thể chia ra thành những phần con (tức là thành những thuộc tính khác). Ví dụ tên nhân viên cĩ thể cấu trúc như là thuộc tính kết hợp bao gồm tên, chữ lĩt, và họ. Thuộc tính kết hợp cĩ thể xuất hiện theo sự phân cấp. Ví dụ thuộc tính địa chỉ nhân viên cĩ các thuộc tính thành phần là số nhà, đường, thành phố, tỉnh. • Thuộc tính rỗng. Một giá rỗng (null value) được dùng đến khi một thực thể khơng cĩ giá trị đối với một thuộc tính. Ví dụ một nhân viên nào đĩ khơng cĩ người trong gia đình thì giá trị của thuộc tính tên người trong gia đình đối với nhân viên đĩ phải là rỗng. Giá trị rỗng cũng cĩ thể được dùng để chỉ ra rằng giá trị của thuộc tính là chưa biết. Một giá trị chưa biết cĩ thể hoặc là giá trị tồn tại nhưng chúng ta khơng cĩ thơng tin đĩ, hoặc là khơng biết được (khơng biết giá trị thực sự cĩ tồn tại hay khơng). • Thuộc tính suy ra. Giá trị của loại thuộc tính này cĩ thể được suy ra từ các thuộc tính hoặc thực thể liên hệ khác. Ví dụ tập thực thể khách hàng cĩ thuộc tính số lượng tài khoản vay cho biết bao nhiêu tài khoản vay mà khách hàng cĩ từ ngân hàng. Chúng ta cĩ thể suy ra giá trị của thuộc tính này bằng cách đếm số lượng các thực thể tài khoản vay được kết hợp với khách hàng. Một ví dụ khác về tập thực thể nhân viên cĩ các thuộc tính ngày bắt đầu, cho biết ngày bắt đầu làm việc tại ngân hàng của nhân viên, và thuộc tính thời gian làm việc, cho biết tổng số giờ đã làm việc của nhân viên. Giá trị của thời gian làm việc cĩ thể được suy ra từ giá trị của ngày bắt đầu và ngày hiện thời. 1.3. Mối kết hợp Quan hệ giữa các tập thực thể được gọi là mối kết hợp. Mỗi mối kết hợp cũng được đặt tên thể hiện mối kết hợp, chẳng hạn như mỗi hĩa đơn chỉ bán cho một khách hàng, một khách hàng cĩ thể mua hàng nhiều lần (nhiều hĩa đơn) Trang 22/109
- Ký hiệu là hình thoi nối với những thực thể tham gia vào mối kết hợp 1.4. Bản số 1.4.1. Thể hiện của một thực thể Trong tập thực thể KHACHHANG cĩ nhiều khách hàng, ví dụ như {KH01, Nguyễn Trọng, Vũ, 11 Nguyễn Cơng Trứ, 063552540} là một khách hàng, đây được gọi là một thể hiện của thực thể KHACHHANG. Một thể hiện của một tập thực thể được nhận biết bằng tập hợp tất cả các giá trị của tất cả các thuộc tính của thể hiện thuộc tập thực thể, đĩ chính là dữ liệu của đối tượng trong thế giới thực. 1.4.2. Thể hiện của một mối kết hợp Xét mối kết hợp bán giữa HĨA ĐƠN và MẶT HÀNG, trong đĩ một thể hiện của quan hệ này sẽ tương ứng với việc một hĩa đơn bán mặt hàng với số lượng và đơn giá là bao nhiêu. Như vậy, một thể hiện của một mối kết hợp là tập hợp các thể hiện của các tập thực thể tham gia vào mối kết hợp đĩ. 1.4.2.1. Bản số Bản số của một tập thực thể đối với một mối kết hợp là cặp (bản số tối thiểu, bản số tối đa). Trong đĩ chúng được định nghĩa như sau: Trang 23/109
- • Bản số tối thiểu: bằng 0 hoặc 1, là số lần tối thiểu mà một thể hiện bất kỳ của một tập thực thể tham gia vào các thể hiện của mối kết hợp. • Bản số tối đa: bằng 1 hoặc n, là số lần tối đa mà một thể hiện bất kỳ của một tập thực thể tham gia vào các thể hiện của mối kết hợp. Ký hiệu: Ví dụ một nhân viên thuộc về một hoặc nhiều phịng ban, một phịng ban cĩ thể cĩ một hoặc nhiều nhân viên trực thuộc. 1.5. Khĩa 1.5.1. Khĩa của một tập thực thể Khĩa của một tập thực thể là một thuộc tính hoặc một số thuộc tính của thực thể, sao cho với mỗi giá trị của các thuộc tính này, tương ứng một và chỉ một thể hiện của tập thực thể (xác định một thực thể duy nhất). Trong nhiều trường hợp khĩa của tập thực thể thường là thuộc tính chỉ định của tập thực thể đĩ. Một thực thể cĩ thể cĩ nhiều khĩa. Khi đĩ cần chọn ra một khĩa để làm khĩa chính. Ký hiệu: Là thuộc tính được gạch dưới. 1.5.2. Khĩa của một mối kết hợp Khĩa của một mối kết hợp nhận được bằng cách kết hợp khĩa của các tập thực thể tham gia vào mối kết hợp đĩ. Tập hợp tất cả các giá trị của các thuộc tính khĩa của một mối kết hợp xác định duy nhất một thể hiện của mối kết hợp đĩ. Trang 24/109
- Trong mơ hình, khĩa của mối kết hợp ngầm hiểu mà khơng được ghi ra nếu khơng quan tâm. 1.6. Số chiều (bậc) của một mối kết hợp, mối kết hợp tự thân (đệ quy) 1.6.1. Số chiều của một mối kết hợp Số chiều của một mối kết hợp là số tập thực thể tham gia vào mối kết hợp đĩ. 1.6.2. Mối kết hợp tự thân (đệ quy, vai trị) Mối kết hợp tự thân là một mối kết hợp từ một tập thực thể đi đến chính tập thực thể đĩ. Ví dụ một nhân viên cĩ thể khơng chịu sự quản lý của ai hoặc một người, một người cĩ thể khơng quản lý ai hoặc nhiều người. 1.7. Tổng quát hĩa và chuyên biệt hĩa Mặc dù khái niệm bản số của tập thực thể đối với mối kết hợp cho chúng ta nhận biết mỗi thể hiện của tập thực thể tham gia tối thiểu là bao nhiêu, và tối đa là bao nhiêu vào mối kết hợp. Nhưng trong thực tế, một lớp các đối tượng trong tổ chức cĩ khi tồn tại tình trạng là: một số đối tượng (tập con) của nĩ tham gia vào một mối kết hợp này, số cịn lại cĩ thể tham gia hoặc khơng vào những mối kết hợp khác, trong khi cĩ thể tất cả các phần tử của chúng lại cùng tham gia vào mối kết hợp khác nữa. Hoặc một tập con này cĩ những đặc tính này, cịn những phần tử khác thì cĩ thêm những đặc tính khác hoặc khơng. Chẳng hạn cùng là nhân viên trong nhà máy, thì cơng nhân trực tiếp tham gia sản xuất, nhân viên quản lý tham gia cơng tác quản lý. Ðối với nhân viên quản lý người ta quan tâm đến chức vụ, cịn đối với nhân viên cơng nhân thì người ta lại quan tâm đến bậc. Ðể phản ánh tình Trang 25/109
- trạng đĩ trong phương pháp mơ hình hĩa, người ta dùng khái niệm chuyên biệt hĩa / tổng quát hĩa. Chuyên biệt hĩa nghĩa là phân hoạch một thực thể thành các tập (thực thể) con. Tổng quát hĩa là gộp các tập thực thể thành một tập thực thể bao hàm tất cả các thể hiện của các tập thực thể con. Các chuyên biệt được thừa hưởng tất cả các thuộc tính của các tập thực thể mức trên và chính nĩ cĩ thể cĩ những thuộc tính khác. Các tập thực thể chuyên biệt cĩ thể cĩ những mối kết hợp khác nhau với những tập thực thể khác và do đĩ các xử lý sẽ cĩ thể khác nhau tùy theo từng chuyên biệt thành phần. Ký hiệu: 1.8. Tập thực thể yếu Một tập thực thể cĩ thể khơng cĩ đủ các thuộc tính để cấu thành một khĩa chính, được gọi là tập thực thể yếu. Một tập thực thể mà nĩ cĩ khĩa chính được gọi là tập thực thể mạnh. Tập thực thể yếu phải tham gia vào mối quan hệ mà trong đĩ cĩ một tập thực thể mạnh (tập thực thể mà tập thực thể yếu phụ thuộc) Coi tập thực thể thân nhân (THANNHAN) cĩ các thuộc tính là tên thân nhân (TenTN), ngày sinh (NTNS), phái (Phai), quan hệ với nhân viên (QuanHe). Như vậy tập thực thể này khơng cĩ khĩa chính nên nĩ là tập thực thể yếu. Mặc dù tập thực thể yếu khơng cĩ khĩa chính nhưng chúng ta cần một phương tiện để phân biệt trong số những thực thể thuộc tập thực thể này mà chúng phụ thuộc vào một thực thể mạnh nào đĩ. • Phần phân biệt của một tập thực thể yếu là tập hợp các thuộc tính cho phép sự phân biệt nĩi trên được thực hiện. Ví dụ thuộc tính tên thân nhân (TenTN) là phần phân biệt của tập thực thể yếu thân nhân (THANNHAN). Trang 26/109
- • Phần phân biệt của một tập thực thể yếu cũng cịn được gọi là khĩa bộ phận của tập thực thể yếu. • Khĩa chính của tập thực thể yếu được hình thành bởi khĩa chính của tập thực thể mạnh mà tập thực thể yếu phụ thuộc vào, cộng với phần phân biệt của tập thực thể yếu. Ví dụ khĩa chính của THANNHAN là ⎨MaNV, TenTN⎬. Kí hiệu: Một tập thực thể yếu được chỉ ra bởi một hộp nét đơi trong lược đồ, và quan hệ định danh tương ứng được vẽ bởi hình thoi nét đơi. Trong hình, phần phân biệt được gạch dưới gián đoạn. 2. Ví dụ 2.1. Quản lý đề án Giả sử sau đây là một số yêu cầu dữ liệu đối với một cơng ty chuyên thực hiện các đề án: Cơng ty gồm nhiều nhân viên, mỗi nhân viên được gán mã nhân viên để tiện việc quản lý, cĩ họ tên, ngày sinh, mức lương được hưởng. Cơng ty gồm nhiều phịng ban, mỗi phịng ban cĩ chức năng riêng của mình, cĩ mã phịng, tên phịng, cĩ một trưởng phịng. Mỗi nhân viên chỉ thuộc vào một phịng ban và một phịng cĩ thể cĩ nhiều nhân viên. Mỗi nhân viên trong phịng cịn cĩ thể chịu sự quản lý trực tiếp từ một nhân viên khác. Do cơng ty thực hiện đề án, nên mỗi phịng cĩ thể cĩ nhiều văn phịng giao dịch hay làm việc khác nhau ở tại những địa điểm khác nhau. Mỗi một đề án khi được xây dựng, cĩ mã đề án, tên đề án, địa điểm thực hiện đề án đĩ và do một phịng ban chịu trách nhiệm chủ trì đề án. Quá trình thực hiện đề án cĩ thể được chia nhỏ thành nhiều cơng việc và phân cơn cho các nhân viên thực hiện, khi đĩ cơng ty sẽ ghi nhận lại thời gian phân cơng cơng việc cho nhân viên (tính bằng số giờ / tuần) để theo dõi tiến độ thực hiện. Nhằm cĩ thể chăm lo đời sống của nhân viên, cơng ty cĩ ghi nhận lại những thơng tin về những thân nhân của nhân viên, bao gồm những người như cha mẹ, chồng vợ, và con cái. Từ mơ tả tình huống trên, mơ hình quan hệ thực thể như sau: Trang 27/109
- TenNV DiaChi HoNV Phai MaPhg TenPhg MaNV Luong (1, n) (1,1) (1,n) Quan Ly NHANVIEN Thuoc PHONGBAN (0, n) (1,1) (1,1) (1,n) (1,n) (1,n) (1,n) La truong phong Co NgayNhanChuc (1,n) Moi quan he Chu tri Quan he DIADIEM ThoiGian (1,n) Tham gia DiaDiem THANNHAN (1,n) (1,1) MaTN NgaySinh DEAN HoTN Phai TenTN MaDA TenDA DDiemDA Trang 28/109
- 3. Bài tập Hãy xây dựng mơ hình thực thể kết hợp cho tình huống sau: Giả sử sau đây là một số yêu cầu dữ liệu đối với ví dụ hoạt động ngân hàng: Ngân hàng được tổ chức thành các chi nhánh. Mỗi chi nhánh tọa lạc tại một thành phố và được định danh bởi một tên duy nhất. Ngân hàng theo dõi tài sản của mỗi chi nhánh. Các khách hàng của ngân hàng được định danh bởi số CMND của họ. Ngân hàng lưu trữ các tên khách hàng, đường phố và thành phố mà khách hàng sinh sống. Khách hàng cĩ thể cĩ tài khoản gởi và tài khoản vay. Một khách hàng cĩ thể được kết hợp với một nhân viên ngân hàng. Nhân viên này cĩ thể là nhân viên cho vay hoặc nhân viên bình thường. Các nhân viên ngân hàng được định danh bởi mã số nhân viên của họ. Bộ phận quản lý ngân hàng lưu trữ tên và số phone của mỗi nhân viên, tên của các người phụ thuộc nhân viên và mã số nhân viên của người quản lý nhân viên. Ngân hàng cũng theo dõi ngày bắt đầu làm việc của nhân viên, và thời gian thuê nhân viên làm việc. Ngân hàng đưa ra các loại tài khoản gởi, tài khoản tiết kiệm và tài khoản séc. Các tài khoản gởi cĩ thể được nắm giữ bởi nhiều hơn một khách hàng, và một khách hàng cĩ thể cĩ nhiều hơn một tài khoản. Mỗi tài khoản gởi được gán bởi một số tài khoản duy nhất. Ngân hàng duy trì thơng tin về cân đối của mỗi tài khoản gởi và ngày gần nhất mà tài khoản gởi được truy cập bởi mỗi khách hàng nắm giữ tài khoản đĩ. Ngồi ra, mỗi tài khoản tiết kiệm cịn cĩ mức lãi suất, và tài khoản séc cĩ số tiền rút vượt mức. Một tài khoản vay đầu tiên xuất phát từ một chi nhánh nào đĩ, và nĩ cĩ thể được nắm giữ bởi một hoặc nhiều khách hàng. Mỗi tài khoản vay được gán bởi một số tài khoản duy nhất. Với mỗi tài khoản vay ngân hàng theo dõi số tiền vay và số tiền trả. Mặc dù số thứ tự lần trả tiền vay (gọi tắt là số lần trả) khơng xác định duy nhất lần trả đối với các tài khoản vay của ngân hàng nhưng nĩ xác định duy nhất lần trả đối với một tài khoản vay cụ thể. Ngày và số tiền trả đối với mỗi lần trả tiền vay cũng được ngân hàng theo dõi ghi nhận. Trang 29/109
- Chương 3 Mơ Hình Dữ Liệu Quan Hệ Mơ hình dữ liệu quan hệ lần đầu tiên được đề nghị bởi Edgar F. Codd vào năm 1970. Hiện nay mơ hình quan hệ là mơ hình ưu thế đối với các ứng dụng xử lý dữ liệu thương mại. Chương này sẽ trình bày chi tiết về các khái niệm đã nhắc tới trong chương 1 và coi đĩ như là những cơ sở nền tảng để tiếp tục nghiên cứu các phần tiếp theo. 1. Các khái niệm cơ bản 1.1. Thuộc tính Thuộc tính (attribute) là một tính chất riêng biệt của một đối tượng cần được lưu trữ trong CSDL để phục vụ cho việc khai thác dữ liệu về đối tượng. Ví dụ: • Đối tượng LOPHOC cĩ các thuộc tính mã lớp, tên lớp, khĩa, số học viên. • Đối tượng SINHVIEN cĩ các thuộc tính mã sinh viên, họ tên, ngày sinh, quê quán. Các thuộc tính được đặc trưng bởi một tên thuộc tính, kiểu giá trị (data type) và miền giá trị (domain). Trong các ứng dụng thực tế, người phân tích – thiết kế thường đặt tên thuộc tính một cách gợi nhớ, tuy nhiên khơng nên đặt tên quá dài (vì làm cho việc viết câu lệnh truy vấn vất vả hơn) nhưng cũng khơng nên quá ngắn (vì khơng thể hiện được ngữ nghĩa một cách rõ ràng). Ví dụ: nếu cĩ hai đối tượng HỌCVIEN và GIAOVIEN đều cĩ thuộc tính tên thì nên đặt tên một cách rõ ràng là Tên_học_viên và Tên_giáo _viên vì chúng mang ngữ nghĩa hồn tồn khác nhau. Mỗi một thuộc tính đều phải thuộc một kiểu dữ liệu. Kiểu dữ liệu cĩ thể là vơ hướng - là các kiểu dữ liệu cơ bản như chuỗi, số, logic, ngày tháng hoặc các kiểu cĩ cấu trúc được định nghĩa dựa trên các kiểu dữ liệu đã cĩ sẵn. Mỗi hệ quản trị CSDL cĩ thể gọi tên các kiểu dữ liệu nĩi trên bằng các tên gọi khác nhau, ngồi ra cịn bổ sung thêm một số kiểu dữ liệu riêng của mình. Ví dụ, Microsoft Access Trang 30/109
- cĩ kiểu dữ liệu text, memo là kiểu chuỗi; SQL Server cĩ kiểu dữ liệu text, char, varchar, nvarchar là kiểu chuỗi. Mỗi một thuộc tính cĩ thể chỉ chọn lấy những giá trị trong một tập hợp con của kiểu dữ liệu. Tập hợp các giá trị mà một thuộc tính A cĩ thể nhận được gọi là miền giá trị của thuộc tính A, thường được ký hiệu là MGT(A) hoặc Dom(A). Ví dụ: Điểm của sinh viên là một số, nhưng luơn nằm trong đoạn từ 0 đến 10. Với kiểu dữ liệu cấu trúc thì miền giá trị chính là tích đề các (hoặc tập con của tích đề các) của các miền giá trị thành phần. Trong nhiều hệ quản trị CSDL, thường đưa thêm vào miền giá trị của các thuộc tính một giá trị đặc biệt gọi là giá trị null. Tùy theo ngữ cảnh mà giá trị này cĩ thể là một giá trị khơng thể xác định được hay một giá trị chưa được xác định ở thời điểm nhập tin và cĩ thể được xác định vào một thời điểm khác. Nếu thuộc tính cĩ kiểu dữ liệu vơ hướng thì nĩ được gọi là thuộc tính đơn hoặc nguyên tố, nếu thuộc tính cĩ kiểu dữ liệu cĩ cấu trúc thì ta nĩi rằng nĩ là thuộc tính kép. 1.2. Quan hệ n ngơi Một quan hệ R cĩ n ngơi được định nghĩa trên tập các thuộc tính U = {}A1 , A2 , An và kèm theo nĩ là một tân từ, để xác định mối quan hệ giữa các thuộc tính Ai , và được ký hiệu là + R()A1 , A2 , An . Tập thuộc tính của quan hệ R cịn được ký hiệu là R . Với Ai là một thuộc tính cĩ miền giá trị là MGT(Ai), như vậy R()A1 , A2 , An là tập con của tích đề các: MGT(A1)x MGT(A2)x x MGT(An) Quan hệ cịn được gọi là bảng (table). Ví dụ: KHOA(Mã_khoa, Tên_khoa) là một quan hệ 2 ngơi với tân từ : “Mỗi khoa cĩ một mã khoa duy nhất để phân biệt với các khoa khác, cĩ một tên gọi”. SINHVIEN (Mã_sinh_viên, Tên_sinh_viên, Ngày_sinh, Quê_quán, Khoa) là một quan hệ 5 ngơi với tân từ : “Mỗi sinh viên cĩ một mã sinh viên duy nhất để phân biệt với các sinh viên khác, cĩ họ tên, ngày tháng năm sinh, quê quán và học tại một khoa trong trường ”. 1.3. Bộ Một bộ (tuple) giá trị là các thơng tin của một đối tượng thuộc quan hệ. Bộ giá trị cũng thường được gọi là một mẫu tin hay bản ghi (record), dịng của bảng (row). Trang 31/109
- Một bộ q là một vecto gồm n thành phần thuộc tập hợp con của tích đề các miền giá trị của các thuộc tính và thỏa mãn tân từ đã cho của quan hệ. Ví dụ: các bộ giá trị dựa trên các thuộc tính của quan hệ SINHVIEN q1 = (SV001, Trần Văn Mạnh, 10/10/1980, Lâm Đồng, CTK27) q2 = (SV002, Nguyễn Thị Hoa Huệ, 25/11/1985, Khánh Hịa, MTK27) q3 = (SV003, Tăng Thanh Hà, 11/11/1982, Tp. Hồ Chí Minh, NVK27) Để lấy thành phần Ai – là giá trị thuộc tính Ai của một bộ giá trị q, ký hiệu q.Ai. Đây được gọi là phép chiếu một bộ lên thuộc tính Ai Ví dụ: q1.Tên_sinh_viên = “Trần Văn Mạnh” q2.Khoa= “MTK27” 1.4. Lược đồ quan hệ Lược đồ quan hệ (Relation schema) là sự trừu tượng hĩa của quan hệ, một sự trừu tượng hĩa ở mức cấu trúc của một bảng hai chiều. Khi nĩi đến lược đồ quan hệ tức là đề cập tới cấu trúc tổng quát của một quan hệ; khi nĩi đến một quan hệ thì hiểu rằng đĩ là một bảng cĩ cấu trúc cụ thể trên một lược đồ quan hệ với các bộ giá trị của nĩ. Lược đồ cơ sở dữ liệu là tập hợp các lược đồ quan hệ con {Ri }, ký hiệu là ζ. Thể hiện (hay tình trạng) của quan hệ R, ký hiệu là TR, là tập hợp các bộ giá trị của quan hệ R vào một thời điểm. Như vậy, tại những thời điểm khác nhau thì quan hệ cĩ những thể hiện khác nhau. Thể hiện của các lược đồ quan hệ con TRi gọi là tình trạng của lược đồ CSDL ζ Ví dụ về thể hiện của quan hệ KHOA và LOPHOC Bảng 3.1. Thể hiện của quan hệ KHOA Mã khoa Tên khoa Ngày thành lập CNTT Cơng nghệ thơng tin 10/10/1994 TH Tốn học 20/10/1976 VL Vật lý 20/10/1976 HH Hĩa học 20/10/1976 Trang 32/109
- Bảng 3.2. Thể hiện của quan hệ LOPHOC Mã lớp Tên lớp Số học viên Mã khoa CTK27 Cơng nghệ thơng tin K27 75 CNTT HHK18 Hĩa học K18 95 HH THK20 Tốn học K20 120 TH 1.5. Khĩa của một quan hệ Quan hệ R định nghĩa trên tập các thuộc tính U = {A1 , A2 , , An } Khi đĩ K ⊆ U là khĩa của quan hệ R nếu thoả: (i) K xác định được giá trị của Aj , với mọi j = 1,2, ,n ' ' (ii) Khơng tồn tại K ⊆ K mà K cĩ thể xác định được giá trị của Aj , với mọi j = 1,2, ,n Theo định nghĩa trên, K là tập con nhỏ nhất mà giá trị của nĩ cĩ thể xác định được duy nhất một bộ giá trị của quan hệ. Khĩa theo định nghĩa trên gọi là khĩa đề nghị (candidate key). K được gọi là siêu khĩa (superkey) của quan hệ R nếu K ' ⊆ K là một khĩa của quan hệ. Như vậy một quan hệ Q luơn cĩ ít nhất một siêu khĩa và cĩ thể cĩ nhiều siêu khĩa. Ví dụ: Với quan hệ LOPHOC (MaLop, TenLop, SoSV, MaKhoa) Siêu khố : K1 = {MaLop, TenLop} K2 = {MaLop, SoSV} K3= {MaLop, TenLop, MaKhoa} K4= {MaLop, SoSV, MaKhoa} Trang 33/109
- Ý nghĩa thực tế của khĩa là dùng để nhận diện một bộ trong một quan hệ, khi cần thiết tìm thơng tin một bộ q nào đĩ ta chỉ cần biết giá trị của khĩa của q là đủ để dị tìm và hồn tồn xác định được nĩ trong quan hệ. Trong thực tế, đối với các loại thực thể tồn tại khách quan như NHANVIEN, SINHVIEN, MATHANG, người thiết kế CSDL thường gán thêm một thuộc tính giả là mã số để làm khĩa như MaNV, MSSV, MaHang, Đối với các lược đồ quan hệ biểu diễn cho sự trừu tượng hĩa thường cĩ khĩa chỉ định là một tổ hợp của hai hay nhiều thuộc tính. Trong trường hợp lược đồ quan hệ cĩ nhiều khĩa đề nghị, khi cài đặt lên một hệ quản trị CSDL người ta chọn ra một khĩa trong số các khố đề nghị này để sử dụng. Khi đĩ khĩa này được gọi là khĩa chính (primary key) và các khĩa cịn lại là khĩa tương đương. Khĩa chính chỉ thật sự cĩ ý nghĩa trong quá trình khai thác CSDL, khĩa chính hồn tồn khơng cĩ vai trị gì khác so với các khĩa chỉ định cịn lại. Trong các hệ quản trị CSDL cĩ cài đặt cơ chế tự động kiểm tra tính duy nhất của khĩa chính. Khi người sử dụng thêm một bộ mới q2 cĩ giá trị khĩa chính trùng với giá trị khĩa chính của một bộ q1 đã cĩ trong quan hệ thì hệ thống sẽ báo lỗi và yêu cầu nhập lại giá trị khác. Các thuộc tính tham gia vào một khĩa được gọi là thuộc tính khố. Về mặt ký hiệu, trong lược đồ quan hệ các thuộc tính khĩa được gạch dưới. Trong một bộ của quan hệ, các thuộc tính khĩa khơng chứa giá trị rỗng. Khơng được phép sửa đổi giá trị của thuộc tính khố, nếu người sử dụng muốn sửa giá trị thuộc tính khố của bộ q, cần phải hủy bỏ bộ q sau đĩ thêm vào bộ q’ với giá trị khĩa đã được sửa đổi. Ví dụ: Một lược đồ CSDL như sau: KHOA (MaKhoa, TenKhoa, NgayThanhLap) LOPHOC (MaLop, TenLop, NienKhoa, SoHocvien, MaKhoa) MONHOC (MaMon, TenMon, SoTC) HOCVIEN (MaHV, HoHV, TenHV, NgaySinh, QueQuan, MaLop) GIAOVIEN (MaGV, HoGV, TenGV, NgaySinh, HocVi, ChuyenNganh) KQUATHI (MaHV, MaMon, LanThi, NgayThi, DiemThi, GhiChu) DAY (MaGV, MaLop, MaMon) Với hai quan hệ R và S, một tập thuộc tính K của quan hệ R được gọi là khĩa ngoại (foreign key) của quan hệ R nếu K là khĩa của quan hệ S. Trang 34/109
- Ví dụ: • Trong quan hệ LOPHOC, MaKhoa là khố ngoại vì MaKhoa là khĩa của quan hệ KHOA. • Trong quan hệ HOCVIEN, MaLop là khố ngoại vì MaLop là khĩa của quan hệ LOPHOC. 1.6. Ràng buộc tồn vẹn Ràng buộc tồn vẹn (RBTV) là một quy tắc định nghĩa trên một hay nhiều quan hệ do mơi trường ứng dụng quy định. Đĩ chính là quy tắc để bảo đảm tính nhất quán của dữ liệu trong CSDL. Thơng thường mỗi RBTV được định nghĩa bằng một thuật tốn trong CSDL. Ví dụ: • Trong quan hệ KQUATHI, DiemThi là một số nguyên nằm trong khoảng từ 0 đến 10. • Trong quan hệ KQUATHI, LanThi là 1 hoặc 2. 2. Các thao tác cơ bản trên quan hệ Các thao tác cơ bản trên một quan hệ là thêm (insert), xĩa (delete), sửa (update) các bộ giá trị của quan hệ. 2.1. Phép thêm Việc thêm một bộ mới t vào quan hệ R(A1 , A2 , , An )làm cho thể hiện TR tăng thêm một phần tử mới TR = R ∪ t Dạng thức của phép thêm bộ mới là: INSERT ()R; A1 = v1 , A2 = v2 , , An = vn , với: A1 , A2 , , An là các thuộc tính và v1 ,v2 , ,vn là giá trị muốn thêm vào (với điều kiện là các giá trị này thuộc MGT(A1), MGT(A2), MGT(An) tương ứng) Trong trường hợp này nếu như các thuộc tính khơng được liệt kê trong danh sách gán giá trị của bộ t trong câu lệnh INSERT sẽ nhận giá trị null. Nếu xem thứ tự của các thuộc tính là cố định và các giá trị v1 ,v2 , ,vn là hồn tồn tương ứng thì phép chèn cĩ thể viết dưới dạng tường minh như sau: INSERT ()R;v1 ,v2 , ,vn Trang 35/109
- Chú ý rằng cĩ thể phép chèn khơng được thực hiện hoặc làm mất tính nhất quán của dữ liệu vì các lý do sau: • Giá trị khĩa của bộ mới là null hoặc trùng với giá trị khĩa của một bộ đã cĩ trong CSDL. Hệ quản trị CSDL sẽ khơng cho thêm mới trong trường hợp này. • Bộ mới khơng phù hợp với lược đồ quan hệ. Trường hợp này xảy ra khi người sử dụng thêm mới các giá trị sai thứ tự, sai kiểu hoặc độ lớn của các thuộc tính trong lược đồ. Hệ quản trị CSDL cĩ thể sẽ khơng cho bổ sung nếu khơng tương thích kiểu giá trị, hoặc vẫn cho bổ sung bộ mới nhưng tính nhất quán của dữ liệu khơng được đảm bảo. • Một số giá trị của bộ mới khơng thuộc miền giá trị của thuộc tính tương ứng. Trong trường hợp này, nếu quan hệ đã được đảm bảo tính nhất quán bởi các RBTV về miền giá trị thì hệ quản trị CSDL sẽ khơng cho bổ sung; ngược lại, nếu khơng cĩ RBTV về miền giá trị thì tính nhất quán của CSDL bị vi phạm mà hệ quản trị CSDL khơng phát hiện được. 2.2. Phép xĩa Phép xĩa bộ t của quan hệ sẽ xĩa đi một (hoặc nhiều) bộ t khỏi thể hiện của quan hệ TR = R \ t Dạng thức của phép xĩa là: DELETE()R; A1 = v1 , A2 = v2 , , An = vn , với Ai = v j ; j = 1 n chính là điều kiện thỏa một số thuộc tính của bộ t để loại một bộ t ra khỏi quan hệ. Ví dụ: Với quan hệ: HOCVIEN (MaHV, HoHV, TenHV, NgaySinh, QueQuan, Khoa), và phép loại bỏ : DELETE()HOCVIEN;QueQuan ="NhaTrang" thì tất cả các bộ trong thể hiện HOCVIEN cĩ quê quán ở Nha trang sẽ bị loại bỏ. 2.3. Phép sửa Dạng thức của phép sửa là: UPDATE()R; A1 = c1 , A2 = c2 , , An = cn ; A1 = v1 , A2 = v2 , , An = vn , với Ai = c j ; j = 1 n là điều kiện thỏa tìm kiếm bộ muốn sửa và Ai = v j ; j = 1 n là giá trị mới cần cập nhật Trang 36/109
- Ví dụ: Với quan hệ: HOCVIEN (MaHV, HoHV, TenHV, NgaySinh, QueQuan, MaLop), Trong thể hiện của HOCVIEN cĩ bộ: q = {“HV001”, “Nguyễn Văn”, “Mạnh”, 20/10/85, “Nghệ An”, “CNTT”} và phép cập nhật: UPDATE(HOCVIEN;MaHV = HV 001;QueQuan = Lâm Đồng) khi đĩ kết quả đạt được sẽ là bộ q được sửa lại với giá trị : q = {“HV001”, “Nguyễn Văn”, “Mạnh”, 20/10/85, “Lâm Đồng”, “CNTT”} 3. Các bước chuyển đổi từ mơ hình thực thể kết hợp sang mơ hình quan hệ 3.1. Biến các tập thực thể chuyên biệt hĩa về dạng bình thường 3.1.1. Tập thực thể chuyên biệt khơng cĩ thuộc tính riêng Trong trường hợp này, đưa tập thực thể chuyên biệt lên làm thuộc tính của tập thực thể mức tổng quát, khi đĩ cĩ thuộc tính mới cho biết loại của thực thể chuyên biệt. Trong ví dụ trên Loai={NV_QL, NV_CN} 3.1.2. Tập thực thể chuyên biệt cĩ thuộc tính riêng Nếu số lượng thuộc tính riêng ở tập thực thể chuyên biệt ít, gom lên mức tổng quát, và bổ sung thêm ràng buộc. Trang 37/109
- Trong ví dụ trên Loai={NV_QL, NV_CN} và các ràng buộc: • RBTV1: “Nếu Loai = NV_QL thì thuộc tính Chucvu mới cĩ giá trị ” • RBTV2: “Nếu Loai = NV_CN thì thuộc tính Bac mới cĩ giá trị ” 3.2. Chuyển tất cả các tập thực thể thành quan hệ Tập thực thể mạnh Với mỗi tập thực thể mạnh, chuyển thành quan hệ với khĩa là khĩa của tập thực thể. NHANVIEN (MaNV, HoTen, DiaChi) PHONGBAN (MaPhong, TenPhong) Tập thực thể yếu Với mỗi tập thực thể yếu, chuyển thành quan hệ với: • Các thuộc tính là các thuộc tính của tập thực thể yếu và khĩa của tập thực thể mạnh mà nĩ phụ thuộc • Khĩa của quan hệ là khĩa của tập thực thể mạnh và phần phân biệt của tập thực thể yếu. THANNHAN (MaNV, TenTN, NTNS, Phai, QuanHe) 3.3. Mối kết hợp Trang 38/109
- Mối kết hợp cĩ bản số (1,1) và (1, n), chuyển thành các quan hệ với: • Tập thực thể cĩ sự tham gia (1, n) chuyển như bình thường • Tập thực thể cĩ sự tham gia (1, 1) chuyển thành quan hệ gồm tất cả các thuộc tính của thực thể và thuộc tính khĩa của thực thể cĩ sự tham gia (1, n). NHANVIEN (MaNV, HoTen, DiaChi, MaPhong) PHONGBAN (MaPhong, TenPhong) Mối kết hợp khác, chuyển thành một quan hệ với: • Thuộc tính là khác khĩa của các tập thực thể tham gia vào mối kết hợp và mọi thuộc tính của mối kết hợp • Khĩa là khĩa của các tập thực thể tham gia vào mối kết hợp và cĩ thể cĩ thêm thuộc tính của mối kết hợp THAMGIA (MaNV, MaDA, ThoiGian): Khĩa là khĩa của các tập thực thể tham gia vào mối kết hợp 3.4. Nhập tất cả các quan hệ cĩ cùng khĩa Sau khi thực hiện chuyển đổi, cĩ thể cĩ một số quan hệ cĩ cùng khĩa, khi đĩ thực hiện việc nhập tất cả các quan hệ cĩ cùng khĩa lại thành một quan hệ. Trang 39/109
- Chương 4 Ngơn Ngữ Đại Số Quan Hệ Ngơn ngữ đại số quan hệ là ngơn ngữ phi thủ tục. Nĩ bao gồm tập hợp các phép tốn được áp dụng trên các thể hiện của quan hệ, kết quả của một câu truy vấn là một thể hiện của quan hệ. Ngơn ngữ đại số quan hệ cĩ ưu điểm trong việc thể hiện kế hoạch thực hiện câu truy vấn và các kỹ thuật tối ưu hĩa câu truy vấn. 1. Các phép tốn cơ sở 1.1. Các phép tốn tập hợp Các phép tốn cơ bản được áp dụng trên tập các bộ giá trị của các quan hệ, được hình thành từ lý thuyết tập hợp tốn học: hợp hay hội (union), hiệu (minus), giao (intersection), tích đề các (cartesian product operation), chia (division), bù (complement). Quan hệ kết quả của các phép tốn hợp, hiệu, trừ cĩ cùng tên thuộc tính với quan hệ đầu tiên (quy ước). Giả thiết: R()A1 , A2 , , An và S()B1 , B2 , , Bn Tính khả hợp Quan hệ R()A1 , A2 , , An và S()B1 , B2 , , Bn được gọi là khả hợp khi: • Số bậc của R và S là bằng nhau, nghĩa là cùng số lượng thuộc tính. • Miền giá trị của thuộc tính phải tương thích MGT(Ai )()= MGT Bi , với 1 ≤ i ≤ n 1.1.1. Phép hợp (union) Hợp (hay cịn gọi là hội) của hai quan hệ khả hợp R và S, ký hiệu R ∪ S , là quan hệ Q được định nghĩa như sau: Q = R ∪ S = {}t | t ∈ R ∨ t ∈ S Ví dụ: Trang 40/109
- A B A B A B A1 b1 a1 b2 a1 b1 a1 b2 a2 b3 a1 b2 a2 b1 a2 b1 a2 b3 R S R ∪ S Nĩi cách khác, hợp của hai quan hệ R và S là một quan hệ cĩ cùng ngơi với quan hệ R và S, với các bộ giá trị bằng gộp các bộ của cả R và S, những bộ giá trị trùng nhau chỉ giữ lại 1 bộ. Trong ví dụ trên bộ {a1, b2} xuất hiện trong cả R và S, do đĩ chỉ xuất hiện 1 lần trong R ∪ S 1.1.2. Phép trừ (minus) Phép trừ (hay cịn gọi là hiệu) của hai quan hệ khả hợp R và S, ký hiệu R − S , là quan hệ Q được định nghĩa như sau: Q = R − S = {}t | t ∈ R ∧ t ∉ S Ví dụ: A B A B A B a1 b1 a1 b2 a1 b1 a1 b2 a2 b3 a2 b1 a2 b1 R S R − S Nĩi cách khác, hợp của hai quan hệ R và S là một quan hệ cĩ cùng ngơi với quan hệ R và S, với các bộ giá trị là các bộ của cả R sau khi đã loại bỏ các bộ cĩ mặt trong S. 1.1.3. Phép giao (intersect) Giao của hai quan hệ khả hợp R và S, ký hiệu R ∩ S , là quan hệ Q được định nghĩa như sau: Q = R ∩ S = {}t | t ∈ R ∧ t ∈ S Trang 41/109
- Ví dụ: A B A B A B a1 b1 a1 b2 a1 b2 a1 b2 a2 b3 a2 b1 R S R ∩ S Nĩi cách khác, giao của hai quan hệ R và S là một quan hệ cĩ cùng ngơi với quan hệ R và S, với các bộ giá trị là các bộ giống nhau trong cả R và S. 1.1.4. Phép tích đề các (Cartesian Product Operation) Giả thiết: R()A1 , A2 , , An và S()B1 , B2 , , Bm Phép tích đề các của hai quan hệ của hai quan hệ R và S, ký hiệu RxS , là quan hệ Q được định nghĩa như sau: Q = RxS = {}tq | t ∈ R ∧ q ∈ S Ví dụ: A B C D A B C D a1 b1 c1 d2 a1 b1 c1 d2 a1 b2 c2 d3 a1 b1 c2 d3 a2 b1 a1 b2 c1 d2 a1 b2 c2 d3 a2 b1 c1 d2 a2 b1 c2 d3 R S RxS Vậy tích đề các của hai quan hệ R và S là một quan hệ gồm (n+m) ngơi với n thuộc tính đầu là một bộ của R và m thuộc tính sau là một bộ thuộc S. 1.1.5. Phép chia (division) Trang 42/109
- Giả thiết: R()A1 , A2 , , An và S()B1 , B2 , , Bm ( n > m, S ≠ ∅ ), cĩ m thuộc tính chung. Khi đĩ phép chia trên 2 quan hệ R và S, ký hiệu R ÷ S , là quan hệ Q cĩ (n-m) ngơi được định nghĩa như sau: Q = R ÷ S = {}t | ∀u ∈ S,()t,u ∈ R Ví dụ 1: A B C D C D A B a1 b1 c1 d1 C1 d1 a1 b1 a1 b1 c2 d3 C2 d3 a2 b1 a2 b1 c2 d3 a2 b1 c1 d1 a3 b1 c1 d3 R S R ÷ S Nĩi cách khác, phép chia của quan hệ R cho S đưa ra tất cả các bộ trong quan hệ R, sao cho khớp với tất cả các bộ trong quan hệ S 1.2. Các phép tốn quan hệ Phần này trình bày các phép tốn trên quan hệ và ví dụ minh họa dựa trên lược đồ cơ sở dữ liệu Quản lý đề án: NHANVIEN (MaNV, HoNV, tenNV, NgaySinh, DiaChi, Phai, Luong, MaNQL, Phong) Tân từ: Mỗi nhân viên cĩ Mã nhân viên (MaNV) duy nhất để phân biệt với các nhân viên khác, cĩ họ tên (HoNV, TenNV), ngày sinh (NgaySinh), địa chỉ (DiaChi), phái Nam hoặc Nữ (Phai), mức lương (Luong), người quản lý trực tiếp (MaNQL) và thuộc về một phịng ban (Phong) PHONGBAN (MaPhong, TenPhong, TruongPhong, NgayNhanChuc) Tân từ: Mỗi một phịng ban cĩ một mã phịng duy nhất (MaPhong) để phân biệt với các phịng ban khác, cĩ tên phịng (TenPhong), người trưởng phịng (TruongPhong), và ngày nhận chức của trưởng phịng (NgayNhanChuc) DIADIEMPHONG (MaPhong, DiaDiem) Trang 43/109
- Tân từ: Mỗi một phịng ban (MaPhong) cĩ thể cĩ nhiều địa điểm làm việc khác nhau (DiaDiem) DEAN (MaDA, TenDA, DdiemDA, Phong) Tân từ: Mỗi một đề án cĩ một mã đề án duy nhất (MaDA) để phân biệt với các đề án khác, cĩ tên đề án (TenDA), địa điểm thực hiện (DdiemDA), và do một phịng ban chủ trì đề án đĩ (Phong) PHANCONG (MaNV, MaDA, ThoiGian) Tân từ: Mỗi một nhân viên (MaNV) được phân cơng tham gia đề án (MaDA) dưới dạng tham gia số giờ trên 1 tuần (ThoiGian) THANNHAN(MaTN, HoTN, TenTN, Phai, NgaySinh) Tân từ: Mỗi thân nhân cĩ Mã thân nhân (MaTN) duy nhất để phân biệt với các thân nhân khác, cĩ họ tên (HoTN, TenTN), phái (Phai) ngày sinh (NgaySinh) NVIEN_TNHAN(MaNV, MaTN, QuanHe) Tân từ: Mỗi nhân viên (MaNV) cĩ thể cĩ nhiều thân nhân (MaTN), được diễn giải bởi quan hệ (QuanHe) như vợ, chồng, con, anh em 1.2.1. Phép chọn (selection) Cho phép chọn ra những bộ trong R thỏa mãn biểu thức điều kiện chọn P cho trước. Ký hiệu là σ P (R) với định nghĩa: σ P (R) = {}t | t ∈ R ∧ P(t) với R là quan hệ được chọn, P là biểu thức logic chứa các phép so sánh ( ≠,≥,≤,=, ), các phép tốn logic ( ∧,∨,¬) dạng: hay Như vậy kết quả của phép chọn là một quan hệ cĩ cùng danh sách thuộc tính với quan hệ R. Ví dụ: • Chọn những nhân viên cĩ lương >= 500000 σ Luong≥500000 (NHANVIEN) • Cho biết những nhân viên thuộc phịng số 5 và cĩ lương >= 500000 Trang 44/109
- σ Luong≥500000∧Phong=5 (NHANVIEN ) 1.2.2. Phép chiếu (projection) Cho phép trích chọn ra những cột (thuộc tính) trong R chỉ ra trong danh sách thuộc tính. Ký hiệu là π (R) với A , A , , A là danh sách các thuộc tính cần chọn và R là quan A1,A2 , , Ak 1 2 n hệ cần trích chọn. Nhận thấy rằng số lượng các bộ kết quả luơn nhỏ hơn hoặc bằng số lượng các bộ trong R. Các bộ trùng nhau sẽ loại đi và chỉ giữ lại bộ. Ví dụ: • Cho biết mã nhân viên, họ tên của tất cả các nhân viên π MaNV ,HoNV ,TenNV (NHANVIEN) • Cho biết mã nhân viên, họ tên, phịng làm việc và mức lương của tất cả các nhân viên π MaNV ,HoNV ,TenNV ,Phong,Luong (NHANVIEN ) • Cho biết các đề án cùng với các phịng phụ trách đề án đĩ π MaDA,TenDA,Phong (DEAN ) 1.2.3. Phép gán (assignment) Khi gặp những truy vấn phức tạp, phép gán cho phép diễn tả một cách rõ ràng hơn câu truy vấn. Khi đĩ, câu truy vấn chính là một chuỗi các phép gán theo sau đĩ là một biểu thức cĩ giá trị như là kết quả của câu truy vấn. Ký hiệu: Å Việc gán được thực hiện cho một biến quan hệ tạm và được sử dụng cho các biểu thức theo sau. 1.2.4. Phép đổi tên: Vì cho phép đặt tên nên cĩ thể tham chiếu tới kết quả của biểu thức đại số quan hệ, và cho phép tham chiếu tới một quan hệ bằng nhiều tên Các phép đổi tên sau: Trang 45/109
- • Đổi tên quan hệ và tên thuộc tính: Cho biểu thức đại số quan hệ E cĩ n thuộc tính, biểu thức ρ (E) trả về kết quả biểu thức E dưới tên λ và các tên của thuộc λ ()A1 ,A ,, ,An tính đổi thành A1 , A2 , , An • Đổi tên quan hệ: Cho biểu thức đại số quan hệ E, biểu thức ρ λ (E) trả về kết quả biểu thức E dưới tên λ • Đổi tên thuộc tính: Cho biểu thức đại số quan hệ E cĩ n thuộc tính, biểu thức ρ (E) trả về kết quả biểu thức E với các tên của thuộc tính đổi thành ()A1 ,A ,, ,An A1 , A2 , , An 1.2.5. Chuỗi các phép tốn Kết hợp các phép tốn đại số quan hệ với nhau để tạo ra một quan hệ kết quả theo yêu cầu. Cĩ nhiều cách để thể hiện một truy vấn cho trước. Ví dụ: Cho biết mã nhân viên, họ tên cùng lương của nhân viên làm việc trong phịng số 4 • Cách 1: π MaNV ,HoNV ,TenNV ,Luong (σ Phong =4 (NHANVIEN )) • Cách 2: NVIEN _ P4 ← σ Phong=4 (NHANVIEN ) KQ ← π MaNV ,HoNV ,TenNV ,Luong ()NVIEN _ P4 • Cách 3: NVIEN _ P4 ← σ Phong=4 (NHANVIEN ) KQ()()MaNV , HoNV ,TenNV , LuongNV ← π MaNV ,HoNV ,TenNV ,Luong NVIEN _ P4 Trong đĩ cĩ sử dụng phép gán và phép đặt lại tên. 2. Các phép tốn khác 2.1. Phép kết hai quan hệ Giả thiết: R()A1 , A2 , , An và S(B1 , B2 , , Bm ) , việc ghép bộ t = (a1 ,a2 , , an ) ∈ R vào v = (b1 ,b2 , ,bm ) ∈ S được định nghĩa như sau: A∈ R + và B ∈ S + là hai thuộc tính cĩ thể so sánh được. Trang 46/109
- Gọi θ là một trong các phép so sánh { ,=,≥,≤,≠} Khi đĩ, phép kết nối hai quan hệ R và S trên các thuộc tính A, B với phép so sánh θ được định nghĩa: AθB R S = {}v = (t,u)| t ∈ R,u ∈ S,t.Aθu.B Cĩ thể nhận thấy rằng phép kết nối được thực hiện qua 2 bước: (1) tích đề các hai quan hệ R và S, (2) chọn các bộ thỏa điều kiện AθB. Nếu θ là phép tốn so sánh bằng nhau được gọi là phép kết nối bằng (equi join). Nếu các thuộc tính so sánh là giống tên nhau thì trong kết quả của phép nốisẽ loại đi một cột (thuộc tính), khi đĩ phép kết được gọi là phép kết tự nhiên (natural join) và về mặt ký hiệu bỏ đi AθB. Các trường hợp cịn lại được gọi là phép kết nối theta (θ join) Ví dụ: A B C C D E A B C C D E a1 1 1 1 d1 e1 a1 1 1 1 d1 E1 a2 2 1 2 d2 e2 a2 2 1 1 d1 E1 a3 2 2 3 d3 e3 A2 2 1 2 D2 E2 A3 2 2 1 d1 E1 a3 2 2 2 d2 E2 R S R R.B ≥ S .C S Và kết quả của phép nối tự nhiên (kết bằng trên thụơc tính C) là A B C D E a1 1 1 d1 e1 a2 2 1 d1 e1 a3 2 2 d2 e2 Trang 47/109
- 2.2. Phép kết nối nội (inner join) Thực chất của phép kết nối nội là phép kết nối bằng đã nêu trên. Tuy nhiên, ngay cả khi hai thuộc tính cĩ cùng tên thì kết quả vẫn giữ lại 2 tên thuộc tính đĩ. Ví dụ: A B C A D E A B C A D E a1 B c1 a1 d1 e1 a1 b1 c1 a1 d1 E 1 1 a2 B c1 a2 d2 e2 a2 b2 c1 a2 d2 E 2 2 a3 B c2 a4 d4 e4 a7 b7 c7 a7 d7 E 3 7 a5 B c5 a6 d6 e6 5 a7 B c7 a7 d7 e7 7 R.A=S. R S R A S 2.3. Phép kết nối trái (left join) Phép kết nối trái hai quan hệ R và S trên các thuộc tính A và B với phép so sánh bằng được định nghĩa là tất cả các bộ v đạt được bằng cách xếp bộ giá trị của R và S cạnh nhau, nếu cĩ giá trị giống nhau trên hai thuộc tính kết nối; và các bộ v đạt được nhờ cách đặt bộ R với các bộ null của S, nếu khơng tìm được giá trị tương ứng của thuộc tính kết nối trên quan hệ S. R.A=S.B R S = {}v = ()(t,u | t ∈ R,u ∈ S : t.Aθu.B )∨ (t ∈ R,u = unull : t.A∉ S[]B ) Với S[B] là tập tất cả các giá trị của thuộc tính B của S Ví dụ: Trang 48/109
- A B C A D E A B C A D E a1 b1 c1 a1 d1 e1 a1 b1 c1 a1 d1 e1 a2 b2 c1 a2 d2 e2 a2 b2 c1 a2 d2 e2 a3 b3 c2 a4 d4 e4 a3 b3 c2 null null null a5 b5 c5 a6 d6 e6 a5 b5 c5 null null null a7 b7 c7 a7 d7 e7 a7 b7 c7 a7 d7 e7 R S R R.A=S .A S Ý nghĩa của phép kết nối này là xác định được các bộ giá trị của quan hệ bên trái nhưng khơng cĩ bộ giá trị tương ứng trong quan hệ bên phải. 2.4. Phép kết nối phải (right join) Phép kết nối phải hai quan hệ R và S trên các thuộc tính A và B với phép so sánh bằng được định nghĩa là tất cả các bộ v đạt được bằng cách xếp bộ giá trị của R và S cạnh nhau, nếu cĩ giá trị giống nhau trên hai thuộc tính kết nối; và các bộ v đạt được nhờ cách đặt bộ null của R với các bộ của S, nếu khơng tìm được giá trị tương ứng của thuộc tính kết nối trên quan hệ R. R.A=S.B R S = {}v = ()(t,u | t ∈ R,u ∈ S : t.Aθu.B )∨ (t = tnull ,u ∈ S,: u.B ∉ R[]A ) Với R[A] là tập tất cả các giá trị của thuộc tính A của R Ví dụ: A B C A D E A B C A D E a1 b1 c1 a1 d1 e1 a1 b1 c1 a1 d1 e1 a2 b2 c1 a2 d2 e2 a2 b2 c1 a2 d2 e2 a3 b3 c2 a4 d4 e4 null null Null a4 d4 e4 a5 b5 c5 a6 d6 e6 null null Null a6 d6 e6 a7 b7 c7 a7 d7 e7 a7 b7 c7 a7 d7 e7 R.A=S.A R S R S Trang 49/109
- Ý nghĩa của phép kết nối này là xác định được các bộ giá trị của quan hệ bên phải nhưng khơng cĩ bộ giá trị tương ứng trong quan hệ bên trái. Chú ý rằng trong một số ngơn ngữ truy vấn CSDL, người ta gọi hai phép kết nối trái và phải chung lại là phép kết nối ngồi (outer join) vì cho phép giữ lại tất cả các bộ của hai quan hệ khơng tìm được bộ giá trị giống nhau trên các thuộc tính kết nối. 2.5. Hàm kết hợp và gom nhĩm Dùng để tính tốn các giá trị mang tính chất tổng hợp trong đại số quan hệ. Trong đĩ: Hàm kết hợp: đầu vào là một tập giá trị và trả về một giá trị đơn • Avg(): giá trị trung bình • Min(): giá trị nhỏ nhất • Max(): giá trị lớn nhất • Sum(): tính tổng • Count(): đếm số mẫu tin Gom nhĩm: cơng thức như sau: ℑ (E) , với: G1 ,G2 , GN F1( A1),F 2( A2), ,Fn( An) • E là biểu thức đại số quan hệ • Gi là tên thuộc tính gom nhĩm (cĩ thể khơng cĩ) • Fi là hàm gom nhĩm • Ai là tên thuộc tính tính tốn trong hàm gom nhĩm Ví dụ: • Cho biết số nhân viên trong cơng ty và mức lương trung bình ℑCOUNT (MaNV ),AVG(Luong ) (NHANVIEN) • Cho biết số lượng nhân viên và lương trung bình của mỗi phịng ban Phong ℑCOUNT (MaNV ),AVG(Luong ) (NHANVIEN) 2.6. Các phép tốn cập nhật trên quan hệ Các thao tác được viết thơng qua phép tốn gán. Cụ thể như sau: Trang 50/109
- 2.6.1. Thêm Phép thêm: r ← r ∪ E , với r là một quan hệ và E là một biểu thức đại số quan hệ. Thơng thường, đưa ra bộ cần chèn một cách tường minh hoặc viết một câu truy vấn mà kết quả truy vấn chính là một tập các bộ cần chèn. Ví dụ: Chèn một bộ tường minh DEAN ← DEAN ∪{' DA01','Phổ cập tin học','Đức Trọng',4} 2.6.2. Xĩa Phép xố: : r ← r − E , với r là một quan hệ và E là một biểu thức đại số quan hệ. Chú ý rằng phép xĩa thực hiện xĩa một hoặc nhiều bộ mà khơng thể xĩa đi giá trị của các thuộc tính. Ví dụ: • Xĩa tất cả các phân cơng cơng tác tham gia đề án của nhân viên mang mã số NV01 PHANCONG ← PHANCONG − (σ MaNV ='NV 01' (NHANVIEN )) • Xĩa tất cả các đề án do phịng mang tên ‘Quản Lý’ chủ trì r1 ← (σ TenPhong='QuanLý' (PHONGBAN >< MaPhong=Phong DEAN )) r2 ← π MaDA,TenDA,DDiemDA,Phong (r1) DEAN ← DEAN − r2 2.6.3. Sửa Phép sửa: r ← π F1,F 2, ,Fn (r) , với: • Fi là một biểu thức, gồm hằng và thuộc tính của r để đưa ra giá trị mới cho thuộc tính này. • Mỗi Fi cĩ giá trị trả về là giá trị mới cho thuộc tính thứ i của r, thuộc tính này cĩ thể được giữ nguyên hoặc cập nhật với giá trị mới. Phép sửa cĩ thể được viết thơng qua phép xĩa và thêm. Khi đĩ, phép xĩa sẽ xĩa đi các bộ chứa giá trị cũ và phép thêm sẽ thêm những bộ chứa giá trị mới. Ví dụ: • Cộng thêm lương mỗi nhân viên với số tiền là 120000 NHANVIEN ← (π MaNV ,HoNV ,TenNV ,NgaySinh,DiaChi,Phai,Luong+120000,MaNQL,Phong ()NHANVIEN ) Trang 51/109
- • Với nhân viên nam, cộng thêm lương với số tiền là 100000; với nhân viên nữ, cộng thêm lương với số tiền là 150000 NHANVIEN ← (π (σ ()NHANVIEN )) MaNV ,HoNV ,TenNV ,NgaySinh,DiaChi,Phai,Luong +100000,MaNQL,Phong Phai='Nam' ∪ ()π MaNV ,HoNV ,TenNV ,NgaySinh,DiaChi,Phai,Luong +150000,MaNQL,Phong ()σ Phai='Nu' ()NHANVIEN 3. Bài tập Bài 1: Với lược đồ cơ sở dữ liệu Quản lý đề án trong 2.2. Hãy viết các biểu thức đại số quan hệ theo yêu cầu: 1. Cho biết thơng tin cá nhân về những nhân viên cĩ tên ‘Mai’ 2. Tìm mã nhân viên, họ tên và địa chỉ của tất cả nhân viên làm việc phịng ‘Hành Chính’ 3. Tìm mã nhân viên, họ tên và địa chỉ của tất cả nhân viên làm việc phịng ‘Hành Chính’ và ‘Tài Vụ’ 4. Cho biết mã nhân viên , họ tên nhân viên và tên các đề án mà nhân viên tham gia. 5. Tìm mã đề án, tên đề án, tên phịng ban chủ trì đề án cùng mã trưởng phịng, tên trưởng phịng đĩ. 6. Cho biết mã nhân viên, họ tên của những nhân viên tham gia vào đề án cĩ mã là ‘DA01’ và cĩ thời gian làm việc cho đề án trên 30giờ/tuần 7. Cho biết mã nhân viên, họ tên của những nhân viên cĩ cùng tên với người thân. 8. Cho biết mã nhân viên, họ tên của những nhân viên cĩ người trưởng phịng cĩ họ tên là ‘Nguyễn’ ‘Mai’ 9. Cho biết mã nhân viên, họ tên của những nhân viên cĩ người quản lý cĩ họ tên là ‘Nguyễn’ ‘Mai’ 10. Cho biết mã nhân viên, họ tên của những nhân viên tham gia mọi đề án của cơng ty. 11. Cho biết mã nhân viên, họ tên của những nhân viên khơng tham gia đề án nào của cơng ty. Trang 52/109
- 12. Cho biết mức lương trung bình của nhân viên trong cơng ty. 13. Cho biết mức lương trung bình của nhân viên nam trong cơng ty. 14. Cho biết tổng số đề án của cơng ty. 15. Với mỗi đề án, cho biết tổng số nhân viên tham gia vào đề án. 16. Với mỗi đề án, cho biết tổng số nhân viên nữ tham gia vào đề án. 17. Tăng thời gian tham gia đề án của các nhân viên nam thêm 4giờ/tuần 18. Xĩa tất cả những nhân viên cĩ mức lương dưới 500000 Bài 2: Cho lược đồ CSDL Quản lý sinh viên sau: SINHVIEN (MaSV, HoSV, TenSV, NgaySinh, DiaChi, Phai, Nam, Khoa) Tân từ: Mỗi sinh viên cĩ Mã sinh viên (MaSV) duy nhất để phân biệt với các sinh viên khác, cĩ họ tên (HoSV, TenSV), ngày sinh (NgaySinh), địa chỉ (DiaChi), phái Nam hoặc Nữ (Phai), năm nhập học (Nam) và thuộc về một khoa (Khoa) GIANGVIEN (MaGV, HoGV, TenGV, NgaySinh, DiaChi, Phai, ChuyenNganh, Khoa) Tân từ: Mỗi giảng viên cĩ Mã giảng viên (MaGV) duy nhất để phân biệt với các giảng viên khác, cĩ họ tên (HoGV, TenGV), ngày sinh (NgaySinh), địa chỉ (DiaChi), phái Nam hoặc Nữ (Phai), chuyên ngành (ChuyenNganh) và thuộc về một khoa (Khoa) MONHOC (MaMH, TenMH, STC, Loai, Khoa) Tân từ: Mỗi mơn học cĩ mã mơn học (MaMH) duy nhất để phân biệt với các mơn học khác, cĩ tên mơn học (TenMH), số tín chỉ (STC), là loại bắt buộc hay tự chọn (Loai), và do một khoa (Khoa) chịu trách nhiệm giảng dạy. DIEUKIEN (MaMH, MaMHTruoc) Tân từ: Một số mơn học cĩ điều kiện tiên quyết, sinh viên muốn học mơn học (MaMH) thì phải đạt được mơn tiên quyết của mơn học này (MaMHTruoc) KHOAHOC (MaKH, MaMH, HocKy, NamHoc, MaGV) Tân từ: Một mơn học (MaMH) được tổ chức trong học kỳ (HocKy) của một năm học (NamHoc) và do một giảng viên chịu trách nhiệm giảng dạy (MaGV). Lưu ý rằng một mơn học cĩ thể được mở nhiều lần (chẳng hạn năm học 2007-2008 mở cho khố CTK29, năm học 2008-2009 mở cho khố CTK30). Trong quan hệ này, mã khố học (MaKH) thể hiện việc một lần tổ chức giảng dạy mơn học. Trang 53/109
- KETQUA (MaSV, MaKH, Diem, KetQua) Tân từ: Khi sinh viên (MaSV) tham gia học mơn học tại một khố học (MaKH) sẽ cĩ điểm đánh giá (Diem) của học viên, từ điểm đánh giá sẽ cĩ kết quả (KetQua) đạt hay khơng đạt. Hãy viết các biểu thức đại số quan hệ theo yêu cầu: 1. Cho biết mã sinh viên, họ tên của mọi sinh viên 2. Cho biết mã mơn học, tên mơn học và số tín chỉ tương ứng 3. Cho biết mã mơn học, tên mơn học phải học trước mơn cĩ mã là ‘CT101’ 4. Cho biết mã sinh viên, họ tên sinh viên cùng với các mơn học mà sinh viên đạt trên 5 điểm. 5. Cho biết mã sinh viên, họ tên sinh viên học tất cả các khĩa học. 6. Cho biết tổng số sinh viên của mỗi khoa. 7. Cho biết mã sinh viên, họ tên sinh viên đạt điểm cao nhất trong mỗi khĩa học 8. Cho biết mã sinh viên, họ tên sinh viên và điểm trung bình của sinh viên trong từng học kỳ của từng niên học 9. Cho biết mã giáo viên, họ tên giáo viên và chuyên ngành của những giáo viên tham gia dạy năm 2004-2005 10. Tăng số tín chỉ cho những mơn học được học trong học kỳ 1, năm 2004-2005 11. Từ điểm của sinh viên, hãy điền vào cột KetQua thỏa: nếu điểm>=5: đạt, ngược lại: khơng đạt. Trang 54/109