Nội dung dạy học cơ bản môn sơ sở dữ liệu | Trường đại học Hồng Đức
Nội dung dạy học cơ bản môn sơ sở dữ liệu | Trường đại học Hồng Đức được sưu tầm và soạn thảo dưới dạng file PDF để gửi tới các bạn sinh viên cùng tham khảo, ôn tập đầy đủ kiến thức, chuẩn bị cho các buổi học thật tốt. Mời bạn đọc đón xem!
Preview text:
MỤC LỤC
LỜI NÓI ĐẦU ..................................................................................................................................... .5
DANH MỤC CÁC TỪ VIẾT TẮT ............................................................................................................. 7
MỤC LỤC ............................................................................................................................................ 8
CHƯƠNG 1. ĐẠI CƯƠNG VỀ CƠ SỞ DỮ LIỆU ...................................................................................... 9
1.1. CÁC KHÁI NIỆM CƠ BẢN ....................................................................................................................... 9
1.1.1. Cơ sở dữ liệu ....................................................................................................................... 10
1.1.2. Hệ quản trị CSDL ................................................................................................................. 12
1.1.3. Kiến trúc ba mức của một hệ CSDL ..................................................................................... 13
1.1.4. Vai trò của con người trong hệ CSDL .................................................................................. 16
1.1.5. Phân loại hệ CSDL ................................................................................................................ 17
1.2. CÁC MÔ HÌNH DỮ LIỆU....................................................................................................................... 21
1.2.1. Khái niệm ............................................................................................................................ 21
1.2.2. Các mô hình dữ liệu cơ bản ................................................................................................. 21
1.3. MÔ HÌNH THỰC THỂ L ÊN
I KẾT .............................................................................................................. 26
1.3.1. Các thành phần ................................................................................................................... 26
1.3.2. Xây dựng mô hình thực thể liên kết .................................................................................... 30
CÂU HỎI ÔN TẬP CHƯƠNG 1 ........................................................................................................... .34
BÀI TẬP CHƯƠNG 1 ......................................................................................................................... .35
CƠ SỞ DỮ LIỆU MẪU ......................................................................................................................... 38
CHƯƠNG 2. MÔ HÌNH DỮ LIỆU QUAN HỆ ......................................................................................... 40
2.1. CÁC KHÁI NIỆM CƠ BẢN ..................................................................................................................... 40
2.1.1. Thuộc tính ........................................................................................................................... 40
2.1.2. Tích Descartes ..................................................................................................................... 42
2.1.3. Quan hệ và các tích chất của quan hệ ................................................................................ 42
2.1.4. Lược đồ quan hệ (Relation Schema) ................................................................................... 44
2.1.5. Lược đồ CSDL quan hệ ........................................................................................................ 45
2.1.6. Thể hiện của quan hệ (Occurrence of a Relation) ............................................................... 45
2.2. KHOÁ CỦA LƯỢC ĐỒ QUAN HỆ ............................................................................................................ 46
2.2.1. Định nghĩa khoá .................................................................................................................. 46
2.2.2. Siêu khoá ............................................................................................................................. 48
... ................................................................................................................................................... 48
2.2.3. Khoá ngoài (Foreign Key) .................................................................................................... 48
2.3. CÁC PHÉP TOÁN ĐẠI SỐ QUAN HỆ ......................................................................................................... 48
2.3.1. Các phép toán tập hợp trên quan hệ .................................................................................. 49
2.3.2. Các thao tác cơ sở trên các quan hệ ................................................................................... 53
2.3.3. Các phép toán khác ............................................................................................................. 56
2.4. CÁC PHÉP TOÁN TRÊN CSDL QUAN HỆ .................................................................................................. 60
2.4.1. Phép chèn (Insert) ............................................................................................................... 61
2.4.2. Phép xóa (Delete) ................................................................................................................ 62
2.4.3. Phép cập nhật (Update) ...................................................................................................... 63
TÓM TẮT CUỐI CHƯƠNG 2 .............................................................................................................. .65
CÂU HỎI ÔN TẬP CHƯƠNG 2 ........................................................................................................... .66
BÀI TẬP CHƯƠNG 2 ......................................................................................................................... .67
CHƯƠNG 3. NGÔN NGỮ SQL ........................................................................................................... .75
3.1. GIỚI THIỆU SQL ............................................................................................................................... 75
3.1.1. Lịch sử ra đời và phát triển ................................................................................................. 75
3.1.2. Các lệnh của ngôn ngữ SQL ................................................................................................. 76
3.1.3. Các kiểu dữ liệu ................................................................................................................... 77
3.1.4. Các loại ràng buộc dữ liệu ................................................................................................... 77
3.1.5. Quy tắc viết câu lệnh trong SQL .......................................................................................... 82
3.2. CÁC LỆNH VỚI BẢNG VÀ TỆP CHỈ SỐ ...................................................................................................... 83
3.2.1. Các lệnh với bảng ................................................................................................................ 83
3.2.2. Các lệnh đối với tệp chỉ mục ............................................................................................... 88
3.3. CÁC THAO TÁC DỮ LIỆU TRONG SQL ..................................................................................................... 90
3.3.1. Tìm kiếm với câu lệnh đơn giản .......................................................................................... 91
3.3.2. Tìm kiếm với câu lệnh nâng cao .......................................................................................... 95
3.3.3. Các hàm thư viện .............................................................................................................. 100
3.3.4. Các lệnh sửa đổi, bổ sung, loại bỏ dữ liệu ......................................................................... 102
3.3.5. Các phép toán tập hợp trong SQL ..................................................................................... 105
TÓM TẮT CUỐI CHƯƠNG 3 ............................................................................................................ .108
CÂU HỎI ÔN TẬP CHƯƠNG 3 ......................................................................................................... .109
BÀI TẬP CHƯƠNG 3 ....................................................................................................................... .110
CHƯƠNG 4. THIẾT KẾ CƠ SỞ DỮ LIỆU ............................................................................................. 114
4.1. TỔNG QUAN VỀ THIẾT KẾ CSDL ......................................................................................................... 114
4.1.1. Quá trình thiết kế CSDL ..................................................................................................... 114
4.1.2. Dị thường (khuyết tật) dữ liệu .......................................................................................... 115
4.1.3. Quy ước về ký hiệu ............................................................................................................ 116
4.2. PHỤ THUỘC HÀM ........................................................................................................................... 117
4.2.1. Một số khái niệm .............................................................................................................. 117
4.2.2. Hệ tiên đề Armstrong ........................................................................................................ 119
4.2.4. Bao đóng ........................................................................................................................... 121
4.2.5. Tính tương đương của các tập pth ................................................................................... 123
4.2.6. Phủ cực tiểu....................................................................................................................... 124
4.2.7. Khoá của lược đồ quan hệ ................................................................................................ 127
4.2.8. Phép tách trên lược đồ quan hệ ........................................................................................ 131
4.4. CHUẨN HOÁ LƯỢC ĐỒ QUAN HỆ ........................................................................................................ 133
4.4.1. Một số định nghĩa ............................................................................................................. 135
4.4.2. Các dạng chuẩn ................................................................................................................. 136
4.4.3. Chuẩn hoá một lược đồ quan hệ....................................................................................... 140
TÓM TẮT CUỐI CHƯƠNG 4 ............................................................................................................ .142
CÂU HỎI ÔN TẬP CHƯƠNG 4 ......................................................................................................... .143
BÀI TẬP CHƯƠNG 4 ....................................................................................................................... .144
CHƯƠNG 5. ..................................................................................................................................... 146
CC VN ĐỀ VỀ AN TOÀN V TON VN DỮ LIỆU ........................................................................... 146
5.1. SỰ CN THIẾT PHẢI BẢO VỆ AN TON CSDL ......................................................................................... 146
5.2. TÍNH TOÀN VẸN DỮ LIỆU .................................................................................................................. 147
5.3. RÀNG BUỘC TOÀN VẸN (RBTV) ........................................................................................................ 147
5.3.1. Khái niệm .......................................................................................................................... 147
5.3.2. Các yếu tố của ràng buộc toàn vẹn ................................................................................... 148
5.3.3. Phân loại RBTV .................................................................................................................. 152
5.3.4. Biểu diễn RBTV bằng phụ thuộc hàm ................................................................................ 155
5.4. AN TOÀN DỮ LIỆU ........................................................................................................................... 158
5.4.1. Khái niệm .......................................................................................................................... 158
5.4.2. Các lệnh về an toàn dữ liệu trong SQL .............................................................................. 159
Cấp phát quyền cho người dùng trên các đối tượng CSDL ......................................................... 160
Thu hồi quyền trên đối tượng CSDL ............................................................................................ 164
Thu hồi quyền thực thi các câu lệnh............................................................................................ 165
TÓM TẮT CUỐI CHƯƠNG 5 ............................................................................................................ .167
CÂU HỎI ÔN TẬP CHƯƠNG 5 ......................................................................................................... .168
BÀI TẬP CHƯƠNG 5 ....................................................................................................................... .169
CHƯƠNG 6. TỐI ƯU HÓA TRUY VN ............................................................................................... 172
6.1. TỔNG QUAN CHUNG VỀ TỐI ƯU HOÁ .................................................................................................. 172
6.2. CÁC CHIẾN LƯỢC TỐI ƯU .................................................................................................................. 173
6.2.1. Thực hiện phép chọn /phép chiếu càng sớm càng tốt ...................................................... 174
6.2.2. Nhóm các phép chọn và phép chiếu của cùng quan hệ thành một phép toán ................. 174
6.2.3. Tổ hợp các phép chọn xác định với phép tích Đề các thành phép kết nối ......................... 174
6.2.4. Tìm các biểu thức con chung trong một biểu thức ........................................................... 174
6.2.5. Xử lí các quan hệ trước khi thực hiện lệnh ........................................................................ 174
6.2.6. Đánh giá các chi phí trước khi thực hiện các phép tính .................................................... 175
6.3. CÁC BIỂU THỨC TƯƠNG ĐƯƠNG ........................................................................................................ 175
6.3.1. Khái niệm .......................................................................................................................... 175
6.3.2. Các biểu thức tương đương .............................................................................................. 175
6.3.3. Ví dụ về thuật toán tối ưu hoá biểu thức quan hệ ............................................................ 178
6.4. THUẬT TOÁN ................................................................................................................................. 182
TÓM TẮT CUỐI CHƯƠNG 6 ............................................................................................................ .185
CÂU HỎI ÔN TẬP CHƯƠNG 6 ......................................................................................................... .186
BÀI TẬP CHƯƠNG 6 ....................................................................................................................... .187
TÀI LIỆU THAM KHẢO ...................................................................................................................... 188 LỜI NÓI ĐẦU Cơ sở ữ ệ ế ậ ữ ộ
ột lĩnh vực được quan tâm đặ ệ ỉ ớ ữ ườ ệ đố ớ ả ữ ườ ều lĩnh vự ư ố ả ệ ứ ụ ệ ả ề ơ đ ạ ơ ể ầ ết các lĩnh vự ế ộ ụ ế đề đã ứ ụ ự ớ ủ ệ ụ ụ ủ ậ ểu đúng về ừ đó thiế ế ổ ứ ự ố ấn đề ận đượ ề ự
Cũng bở ì lý do đó, Cơ sở ữ ệ ộ ọ ầ ắ ộ ất kinh điể ủ ệ ề ọ ọ ỹ ậ ệ
ảo “Cơ sở ữ ệu” này đượ ự ằm đáp ứ ầ ọ ậ ứ ủ
ệ thông tin, trường Đạ ọ ồ Đứ ệu này đượ ạ ự ệ ả ạ ọ ầ ủ ả ế ừ ừ ồ ầ ồ ẩ ệ ế ự ậ ụ ị ần Đứ ệ cơ sở ứ ậ ố ị ấ ế ế CSDL, NXB ĐH Quố ến Vương, Nhậ ệ ọ ỹ ậ ộ ủ ệ ồm 6 chương, c ấp cho người đọ ế ức cơ bả
ề cơ sở ữ ệu (CSDL) như: các định nghĩa về ữ ệ ệ ả ị CSDL tương ứ ữ ủ ệ ả ị ệu cũng ấp cho người đọ ế ứ ề phép toán đạ ố ệ ệ ằ ữ đạ ố ệ ữ ệu cũng trình bày các phương pháp tổ ức lưu trữ ế ử ữ ệ ối ưu hoá truy vấ ấn đề cơ bả ậ ỹ năng cầ ết để ế ế được CSDL đúng ẩ ối ưu và phù hợ ớ ầ ả ế ỗ ầ ủ ệ ố ắ ắ ọ ự ế ả ấ ủ ấn đề ớ ụ ạ ụ ể ễ ể ằm hướ ớ ục tiêu chính cho ngườ
ọc: Nâng cao tư duy trong thiế ế ệ ỹ năng làm việ ớ ỗi chương đề ầ ắ ối chương, câu ỏ ậ ậ ằ ắ ữ ữ ộ ủ ừ
chương và tự ểm tra trình độ ủ ả ệ ả ậ ặc dù đã rấ ẩ ọ ạ ệ ỏ ữ ế ạ ế ả ất mong đượ ự ủa các độ ả ạn đồ ệp để ầ ả ệu đượ ỉnh hơn. ọ ử ề ộ ệ ố – ệ ề – Trường Đạ ọ ồng Đứ
Thanh Hóa, tháng 07 năm 2018 ả
DANH MỤC CÁC TỪ VIẾT TẮT ừ ế ắ Đượ ể ệ Cơ sở ữ ệ – Ngườ ả ị cơ sở ữ ệ ữ điề ể ữ ệ ữ định nghĩa dữ ệ ữ ữ ệ – ự ể ế ụ ộ Ngườ ử ụ ữ ấ ấ MỤC LỤC
HƯƠNG 1. ĐẠI CƯƠNG VỀ CƠ SỞ DỮ LIỆU Cơ sở ữ ệ ậ ữ ộ ột lĩnh vực đượ m đặ ệ ữ ọng đố ớ ự ệ ố ậ ểu đúng về ừ đó thiế ế ổ ứ ự ố
ấn đề ốt lõi đố ới ngườ ự ể ệ ố Chương ệm cơ bả ủ ế
ủa cơ sở ữ ệu (CSDL) như: ➢ Cơ sở dữ ệ ấn đề ủ ệ ➢ ệ ả ị ế ứ ủ ộ ệ ➢ ầ ủ ừ ầ ệ ➢ ữ ệ cơ bản. ệm cơ bả ẫ ậ ạ ầ Trướ
ững năm 1960, mỗi chương trình ứ ụng đề ộ ệ ữ ệu tương ứ ỗi khi chương trình ứ ụ ần thay đổ ở ộ ệ ữ ệ
tương ứng cũng phải thay đổ ệ ữ ệu này đượ ọ ệ ổ điể ệ ổ điể ẫn đang đượ ử ụng để ự ệ ạt độ ệ ụ ạ ều cơ quan, tổ ức chưa đượ ọ ặ ọc hoá chưa triệt ể đ ụ Trường Đạ ọ đã tin họ ề ạ độ ệ ụ ản lí đào tạ ả ản lí điể
ản lí ngân hàng đề thi…), ới đào tạ ừ ừ ọ ạc sĩ, ẫ ấ ề ạ động đang sử ụ ệ ản lí đào tạo sau đạ ọ ử ụ ầ ề
Microsoft Word và Microsoft Excel để ả ọ ề ọ ế ả ọ ậ ủ ọc viên sau đạ ọ ản lí đào tạ qui cũng sử ụ ầ
ềm Microsoft Word và Microsoft Excel để ả ọ ề ọ ế ả ọ ậ ủ ọ ừ ừ ọc. Các khoa đào tạ ụ ể ụ
ản lí sinh viên khoa,...) cũng ử ụ ầ
ềm Microsoft Word và Microsoft Excel để ả ọ ề ọ ế ả ọ ậ ủ ọ ững chương trình như
ậy có ưu và nhược điể Ư đ ể
• Việc xây dựng hệ thống các tập tin riêng tại từng đơn vị quản lý ít tốn thời
bởi khối lượng thông tin cần quản lý và khai thác là nhỏ đòi hỏi
đầu tư cơ sở vật chất và chất xám nhiều, do đó triển khai ứng dụng nhanh •
được khai thác chỉ phục vụ cho mục đích hẹp nên khả nă đá
ứng nhanh chóng, kịp thời ượ đ ể
• Dư thừa dữ liệu và không nhất quá
được tổ chức ở mỗi phòng
mỗi khác, cũng như phần mềm công cụ để triển khai mỗi nơi cũng rất khác
nhau nên sự phối hợp tổ chức và khai thác ở các phòng là khó khă
tin ở phòng này không sử dụng được cho phòng khác, tại đơn vị con với đơ
vị cấp trên. Cùng một thông tin được nhập vào máy tính tại nhiều nơ
(ví dụ, thông tin về học viên liên thông, vừa làm vừa học vừa được lưu
trữ tại các khoa đào tạo, vừa được lưu trữ tại phòng quản lí đào tạo không
ng sức nhập tin và không gian lưu trữ trên các
vật mang tin. Sự trùng lắp thông tin có thể dẫn đến tình trạng không nhất quán dữ liệu.
được tổ chức ở nhiều nơi nên việc cập nhật cũng dễ
làm mất tính nhất quán dữ liệu (Ví dụ, một học viên thôi học có thể được
cập nhật thông tin ngay tại khoa đào tạo nhưng sau một thời gian mới được
cập nhật tại tổng phòng quản lí đào tạo không chính qui).
• Sự cô lập của dữ liệu: dữ liệu nằm trong nhiều tệp và các tệp có thể có định
dạng khác nhau (Ví dụ, dữ liệu ở khoa đào tạo lưu ở tệp Microsoft Word,
trong khi dữ liệu ở phòng quản lí sau đại học lại được lưu ở tệp Microsoft
, nên thiếu sự chia sẻ thông tin giữa các nơi và việc kết nối các hệ
thống này hay việc nâng cấp ứng dụng sẽ là rất khó khă
• Khó khăn trong truy cập dữ liệu
ệc tổ chức dữ liệu bằng các tệp
không cho phép dữ liệu được tìm kiếm theo cách thức thuận tiện và hiệu quả.
• Các vấn đề an toàn: thông thường mỗi người dùng chỉ được phép truy cập
một phần dữ liệu và có một số quyền nhất định đối với dữ liệu đó, tuy nhiên
đối với tệp tin cổ điển, các chương trình ứng dụng được thêm vào hệ thống
theo cách rất khó tiên liệu trước nên rất khó để đảm bảo các vấn đề an toàn dữ liệu.
Trên cơ sở phân tích các ưu nhượ đ ể ủ ệ ổ điể ấ ệ ự ộ ệ ố đả ả đượ ấ ữ ệ ặ ẫ đá ứ đượ ầ đồ ờ ự ự ầ ế Cơ sở dữ liệu Định nghĩa Cơ sở ữ ệ ộ ệ ố ấ ủ ữ ệ ề ế ớ ự
ột lĩnh vực nào đó có liên quan vớ ề ặ đượ ư ữ ở ộ ớ ư ă ừ đĩ ừ để ể ỏ ầ đồ ờ ủ ề ườ ử ụ ề ươ ứ ụ ớ ề ụ đí Như vậ ả ộ ậ ợ ệ ố ứ ả ờ ạ ố ệ ớ ả ấ ậ ợ ả ả ă đá ứ ầ ủ ề ườ ử ụ ộ đồ ờ CƠ SỞ Ữ Ệ Chương trình ứ ụ Chương trình ứ ụ ữ ệ ống chương trình ứ ụ Hình 1.1. Sơ đồ ổ ề ộ ục đích chính củ ằ
• 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à toàn vẹn dữ liệu. (Cấu trúc của CSDL được định nghĩa
một lần và được hệ quản trị CSDL lưu trữ). • Nhiều khung nhìn
đảm bảo dữ liệu có thể được truy xuất theo
nhiều cách khác nhau. Vì yêu cầu của mỗi đối tượng sử dụng CSDL l
nhau nên tạo ra nhiều khung nhìn vào dữ liệu là cần thiết (Ví dụ: sinh viên
chỉ được quyền truy xuất vào CSDL để xem điểm thi, nhân viên phòng đào
tạo có quyền truy xuất vào CSDL để cập nhật điểm thi).
• Đảm bảo sự độc lập giữa dữ liệu và chương trình ứng dụng (Insulation
Cho phép thay đổi cấu trúc, dữ liệu trong
CSDL mà không cần thay đổi chương trình ứng dụng. • Nhiều người dùng
thông tin được chia sẻ cho nhiều người sử
dụng và nhiều ứng dụng khác nhau.
• Trừu tượng hoá dữ liệu
): người sử dụng chỉ nhìn thấy
mức khái niệm (logic) của CSDL. để đạ đượ ư đ ể đặ ữ ấ đề ầ ả ả ết đ •
sở hữu của dữ liệu: Do tính chia sẻ của nên các vấ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 cần được đặt ra.
• Tính bảo mật và quyền khai thác thông tin của người sử dụng: Do có nhiều
ười được phép khai thác
một cách đồng thời nên cần phải có cơ
chế bảo mật và phân quyền khai thác
(nhiệm vụ này được hỗ trợ bởi
phần lớn các hệ điều hành hiện nay).
• Tranh chấp dữ liệu: Vì nhiều người sử dụng được phép truy cập vào cùng một dữ liệu trong với những mục đí
hoặc sửa dữ liệu). Vì vậy, cần phải có cơ chế ưu tiên truy nhập dữ liệu (ví
dụ, cấp quyền (hay mức độ) ưu tiên cho từng người khai thác, người nào
được cấp quyền hạn ư ơ
được ưu tiên truy nhập dữ liệu ước).
• Đảm bảo dữ liệu khi có sự cố
iệc quản lý dữ liệu tập trung có thể làm tă
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
ngột hỏng đĩa cứng,... Một số hệ điều hành mạng có cung cấp dịch vụ sao
ưu ảnh đĩa cứng (cơ chế sử dụng đĩa cứng dự phòng RAID), tự động kiểm
và khắc phục lỗi khi có sự cố. T để đảm bảo ổn định, một
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. . Hệ quản trị CSDL Định nghĩa ệ ả ị ộ ứ ụ ầ ề
ả năng tương tác với ngườ ứ ụ ủ ằ ấ ữ ệ Hình 1.2. Sơ đồ ổ ủ ộ ệ ả ị ệ ả ị ộ ầ ề ngườ ử ụ ự ả đượ
ữ ệu đó. Ngoài ra, nó cũng phả ấ tính năng để ả ị
ền người dùng, cơ chế sao lưu, phụ ồ ặ ỗ ộ ệ ệ ậ ệ ễ ử ụ ả ế ệ ớ ệ ả ị ỗ ệ ả ị đề đượ đặ ự ộ ữ ệ ụ ể ả sơ đồ ổ ủ ộ ệ ả ị ầ ế ệ ả ị ệ đề ự ệ
Để làm việc với hệ quản trị
quan hệ, ta sẽ sử dụng ngôn ngữ truy vấn dữ
liệu, hay ngôn ngữ truy vấn có cấu trúc (
ngữ SQL được chia làm 3 loại như sau: • ữ định nghĩa dữ ệ ấ ệ định sơ đồ ả, định nghĩa các đố tượ ủ ấ ủ ố ệ ủ ữ ệ ắ ộ ả đặ ữ ệ đó • ữ ữ ệ ữ phép ngườ ử ụ ấ ặ ử ữ ệu như ậ ậ ữ ệ • ữ điề ể ữ ệ ): điề ển tính đồ ời (tương tranh) đố ớ ữ ệ ữ ườ ả ị ệ ố đổ ấ ủ ả ữ ệ ả ậ ấ ề ạ ườ ử ụ Ứ ụ ệ ả ị Ứ ụ Ứ ụ ế ế ả ị
Hình 1.3. Tương tác vớ ệ ả ị
. Kiến trúc ba mức của một hệ CSDL
ải ngườ ử ụng nào cũng có kỹ năng khai thác thông tin tố ậ ngườ ả ố ắ ấ ự ứ ạ ề ể ễ ủ ữ ệ ề ứ ừu tượ
ữ ệu để làm đơn giả ự tương tác giữ ngườ ử ụ ệ ố – ệ ẩ ố ỳ ỷ ầ ế ạ ỳ ộ ứ ể ễ ứ ậ ứ ứ ứ ứ ứ ậ ế ứ ủ ệ cơ sở ữ ệ a. Mức vật lí ứ ậ ọ ứ ứ ấ ấ ủ ự ừu tượ ả ữ ệu đượ ự ự ư ữ như thế ạ ứ ấ đề ầ ả ế ữ ệ đượ ư ữ ư ế ở đâ đĩ ừ ă ừ ầ ỉ ụ ệ ấ ầ ự ấ ẫ đố ớ ừ ạ ữ ệ ữ ườ ể ệ ớ ạ ứ ườ ả ị – ữ ườ ử ụ ệ ụ
ẫu tin được lưu thành nhữ ố ế ừ ớ,…). Trình biên dị ấ
ết này, không cho ngườ ậ thườ ế ừ ững ngườ ả ị b. Mức logic ứ ọ ứ ệ ứ ả ữ ữ ệ nào được lưu trữ ố ế ữ . Ngườ ế ế CSDL, ngườ ả ị và ngườ ậ ững ngườ ệ ở ứ ứ ẽ ả ế ỏ ầ ả ư ữ ữ ữ ệ ố ệ ữ ạ ữ ệ ư ế ấ ừ ầ ả
ảo sát và phân tích, ngườ ẽ đị ữ đượ ầ ế ả đư đồ ờ ả ố ệ ữ ụ ố ự để ả đào tạ ủa trường Đạ ọ ườ ế ớ ự ồ ọ ầ ế ả ỗi sinh viên đượ ấ ộ ố sinh viên (dùng để ệ ớ ố ỳ
ọ tên sinh viên, năm sinh, giớ quê quán, nơi sinh, đị ỉ th ờng ư trú, đị ỉ ạ ỗ ẽ ọ ộ ặ ề ọ ầ ỗ ọ ầ ộ ọ ầ ọ ầ ố ỉ ế ả ọ ủa sinh viên đố ớ ỗ ọ ầ ẽ đượ ể ệ ế ả ế ả ẽ ổ ợ ủ ầ ữ ỳ ế ế ọ ầ ế Như vậ ần lưu trữ ề ọ ầ ế ả, trong đó kế ả ẽ ể ệ ố ệ ữ ọ ầ c. Mức khung nhìn ứ ọ ứ ứ ấ ủ ự ừu tượ ặ
ức logic đã đơn giản hoá đi nhiều nhưng do có kích thướ ớ ẫ ứ ạ ều ngườ ử ụ ỉ ầ ấ ộ ầ ộ
ậ khung nhìn được đặt ra để ả ỉ ộ ầ ủ ộ
ột nhóm ngườ ử ụng nào đó. Ngoài ra, khung nhìn còn cung cấp cơ chế
toàn để ngăn ngừa ngườ ử ụ ấ ầ ẩ ề Đó ứ ủ ườ ử ụ ươ ứ ụ ệ ạ ứ ỹ ư ọ ữ ườ ử ụ ụ ệ ố ản lí đào tạ ủa trườ ả ọ ầ ế ề ồ ả đị ỉ gia đình, đị ỉ th ờ ư ố điệ ạ ạ ủa gia đình,...) và kế ả ọ ậ
ủa sinh viên, nhưng không cầ ế ề ọ ầ ản lý đào tạ ạ ầ ề ọ ầ ế ả ọ ập, nhưng không cầ ắm đế ế ề sinh viên như đị ỉ đình, đị ỉ thườ ố điệ ạ ạ ủa gia đình,... giố ả ọ ớ ự ệ ệ ụ ủa phòng đào tạ ọ cũng ế ờ ể ầ ế ả
ập các thông tin như giới tính, năm sinh, quê quán củ
ản lý chương trình đào tạ ấ ế ải quan tâm đế ế ả ọ ậ ủ ế ổ – ủ ộ ư ậ ấ ậ ứ ỉ ộ ư ạ ứ ứ ủ ươ ứ ụ ườ ử ụ ự ế ể ấ ề ấ ươ ứ ả ế ổ ủ ộ ế ứ ự ệ ệ ề ủ ều ngườ ử ụ ớ ữ ế ể ễ ề ậ ủa CSDL. Điề ững ưu điể
• Đối với một CSDL, mỗi người dùn có một khung nhìn riêng. Họ có thể
thay đổi khung nhìn của họ và sự thay đổi này không làm ảnh hưởng đến
khung nhìn dữ liệu của những người dùng khác đang dùng chung CSDL
• Những tương tác của người dùng với CSDL không phụ thuộc vào những
vấn đề chi tiết trong lưu trữ dữ liệu (ví dụ, vấn đề chỉ mục hoá hay bảng băm).
• Người quản trị CSDL có thể thay đổi cấu trúc lưu trữ của CSDL mà không
làm ảnh hưởng đến những khung nhìn của người sử dụng.
• Những thay đổi về khía cạnh vật lí trong lưu trữ, chẳng hạn như thay một
thiết bị nhớ thứ cấp mới, có thể không làm ảnh hưởng đến cấu trúc bên trong của CSDL.
• Người quản trị CSDL có thể thay đổi cấu trúc tổng quát hay cấu trúc khái
niệm của CSDL mà không làm ảnh hưởng đến tất cả người dùng.
. Vai trò của con người trong hệ CSDL ớ ộ ớ ấ ều ngườ ệ ế ế ử ụ
ững người liên quan đế ệ ồm các nhóm chính đượ ọ ả ủ ề ổ ứ ệ ố Đả ả Ngườ ả ị ả ệ ả ệ ụ ả ế ệ ấ ệ ố ị ự ứ ụ ỗ ợ ngườ Ngườ ậ ứ ụ Ngườ ử ụ ầ ừ ủa con ngườ ệ
a. Người quản trị CSDL (Database Administrator – ộ ổ ứ ều ngườ ử ụ ệ ả ị ầ ề . Ngườ ả ị ệ là ngườ ị ệ
ản lý các tài nguyên đó. Ngườ ị ệ ề ệ ậ ổ ức và hướ ẫ ệ ử ụ ấ ầ ề ầ ứ ầ ệ ụ ủa ngườ ả ị như ạo ra sơ đồ ốc, định nghĩa
ấu trúc lưu trữ và phương pháp truy xuấ ấ ề ấ ữ ệu và đặ ả ộ ẹ ề ữ ệ gười sử dụng (End User) gườ ử ụ ững ngườ ệ ủ ọ đòi hỏ ập đế để ấ ậ ậ ể ững ngườ ử ụ ững ngườ ử ụ ụ độ ững ngườ ề ế ứ ề ững ngườ ử ụ ủ độ ững ngườ ể ế ố ề ức năng công việ ủ ững ngườ ử ụ ụ độ ế ầ ớ ững ngườ ử ụ ắ ề ớ ệ ấ ậ ật thườ ằ ử ụ ỏ ậ ậ ẩ ọi là các giao tác đị ẵn) đã đượ ậ ể ẩ ậ ững ngườ ỉ ầ ọ ộ ề phương tiệ ệ ả ị ấ ể ể ẩn đã đượ
ế ế và cài đặt là đủ ững ngườ ử ụ ủ độ ể ế ố ề ệ ọ ể ự đặ ứ ụ ủa mình để ả ầ ứ ạ ế ứ ụ ệ ằ ử ữ ệ ề ố
c. Người phân tích hệ thống và lập trình ứng dụng Ngườ ệ ống xác đị ầ ủ
ững ngườ ử ụng để đặ
ả các chương trình phù hợ ớ ầ ủ ọ. Ngườ ậ ứ ụ ể ệ đặ ả ủ
ững người phân tích thành chương trình, sau đó kiể ử ử ỗ ệ ả ầ ề . Phân loại hệ CSDL ự ế
ỳ theo qui mô để ngườ ử ụ ể ể ộ ệ ỏ ặ ớ ạ ế ệ ậ a. Các hệ CSDL tập trung ớ ộ ệ ậ ậ ấ ả ữ ệu được đị ị ạ ộ ạ đơn lẻ ả ế ố ậ ững ngườ ử ụ ạ ạ ừ ể ậ ụ ề ữ ệ ả ệ ậ ệ ệ ập trung đượ ệ ệ ệ ủ ệ ột ngườ ừ ế ế ạ ậ ừ ậ ậ ả ọ ừa ngườ ả ị CSDL đồ ờ ngườ ết chương trình, đồ ời cũng là ngườ ử ụ ố ủ ệ ả ệ CSDL đượ ệ ổ ứ ớ ữ ệ ầ ế ứ ụ ể ập được lưu trữ ộ ề ệ ố ững ngườ ử ụ ừ ể ậ ế ị đầ ố ố ề ữ ệ ỳ ộ ổ ứ thườ ồ ề ặ ộ
ệ CSDL trung tâm thường lưu trữ ợ ấ ớn và đượ ều ngườ ử ụ ậ ứ ụng điể hình như hệ ố ệ ố
ả, CSDL đất đai,... Hình 1.9 mô tả ộ ụ ệ ệ ệ ủ ộ ế ủ đượ ế ế ớ ự ả ệ ộ
ạng máy tính trong đó các máy khách có thể ẻ ị ụ ủ ộ ủ đơn lẻ ộ ủ ộ ứ ụ ầ ề ấ ị ụ ả ệ ả ền thông,... đố ớ đang yêu cầ ộ ộ ứ ụ ầ ề ầ ị ụ ừ ộ ề ủ. Thông thườ ứ ụ ủ ủ CSDL) được đị ị ộ ạ ụ ộ ệ ủ b. Các hệ CSDL phân tán ề ổ ứ ố ề
ị trí địa lý như thành phố ố ững trườ ợp như vậ ệ ự ệ ậ trung đố ớ ổ ức này thườ ự ế ế. Để ả ế ấn đề này, ngườ ử ụ ệ Hình 1.11. Sơ đồ ự ụ ộ đặ ạ sites) và đượ ế ố ở ạ ề ụ ộ ợ đượ ớ ạ ầ ự ậ ữ ệu. Do đó, có thể ự đượ ộ ệ
ống CSDL, trong đó dữ ệ ộ ạ ấ ủ
• Về mặt vật lý: Yếu tố chính để phân biệt một CSDL phân tán với một cơ
CSDL tập trung là: CSDL phân tán phải có nhiều máy tính gọi là các trạm
và các trạm phải được kết nối bởi một kênh truyền thông nào đó để truyền
dữ liệu (trao đổi dữ liệu).
• Về mặt logic gồm 3 mô đun chính sau: Xử lý dữ liệu để quản lý dữ liệu cục
bộ tại các trạm giống như với CSDL tập trung; Xử lý ứng dụng CSDL trên
từng trạm để xử lý các chức năng phân tán và truy cập các thông tin phân
tán; Xử lý truyền thông để liên kết (kết nối) với kênh truyền thông. ệ ể ấ ủ ệ ệ ầ ấ ệ ầ ấ ệ ầ ấ ụng đố ớ ệ ậ ữ ầ
ất có nghĩa là công nghệ CSDL là như nhau hay ít nhấ ể tương thích tạ
ỗ ị trí địa lý khác nhau cũng có thể tương thích. Hình 1.13 miêu tả ộ ệ ầ ấ Đào tạ … … Thư việ ệ ầ ấ Đố ớ ệ ầ ất, các điề ệ ải được đả ả
• Các hệ điều hành máy tính tại mỗi vị trí địa lý là như nhau hay ít nhất chúng
có khả năng tương thích cao. •
ác mô hình dữ liệu được sử dụng tại mỗi vị trí địa lý là như nhau.
• Các hệ quản trị CSDL được sử dụng tại mỗi vị trí địa lý là như nhau hay ít
nhất chúng có khả năng tương thích cao.
• Dữ liệu tại các vị trí khác nhau có các định nghĩa và khuôn dạng chung. ệ ầ ấ ự ế ệ điề ể đượ ử ụ ạ ỗ ị trí đị ữ ệ ệ ả
ị CSDL khác nhau cũng có thể đượ ự ọ ử ụ ụ ộ ị ể ử ụ ệ ệ ớ ấ ộ ị ể lưu ữ ữ ệ ử ụ ệ ề ố ạ ấp cũ hơn. ứ ạp hơn nữ ữ ệ
ị trí thường không tương thích. Các mâu thuẫn điể ồ ệ ề ự ể ễ ủ ả ụ ữ ệ ạ ị ệ ề
ữ nghĩa. Hình 1.14 miêu tả ộ ệ ầ ấ Đào tạ … … ệ ầ ấ ữ ệ .2.1. Khái niệm ữ ệ ộ ậ ệm và kí pháp dùng để ả ữ ệ ố ệ ủ ữ ệ ộ ữ ệ ủ ộ ổ ứ Như vậ ể xem như mộ ữ ệ ầ
• Phần mô tả cấu trúc của C
• Phần mô tả các thao tác, định nghĩa các phép toán được phép trên dữ liệu;
• Phần mô tả các ràng buộc toàn vẹn để đảm bảo sự chính xác của dữ liệu.
1.2.2. Các mô hình dữ liệu cơ bản ấ ạng đượ ế ế ệ đầ ủ ế ệ ứ ệ ự ể
ết. Các mô hình này đượ ổ điể ớ ất đượ ế ế ệ ứ ủ hình hướng đối tượ ễ ả đoạ ể ủ ữ ệ ị ử ể ủ ữ ệ
a. Mô hình dữ liệu phân cấp (Hierarchical Data Model) ữ ệ ấ đượ ọ ắ ấ ạng cây được đề ấ ững năm 1960 – đượ ổ ứ ấ ừ ống dướ ỗi nút tương ứ ớ ộ ể ữ ệ ể ộ ặ ều trườ ả ự ể ộ ạ ộ ế ữ ể ữ ệ ớ ể ữ ệ ỗi nút đề ộ ề ừ ố ỉ ể ện đượ ệ ứ ả được trườ ợ ề ụ ộ ể ề ớ ộ ớ ể ều sinh viên), còn trườ ợp ngượ ạ ộ ớ ả ộ ự ả ủ ộ ỉ
ột khoa). Điều này gây dư thừ ữ ệ phí không gian lưu trữ Điể ổ ậ ủ ụ ất đế ột đối tượ ấp là đườ ẫn đi từ ốc đế ầ ử ầ ấ ả ấ ủ ữ ệ đố ớ ổ đ ề ố ố ờ ă ạ ữ ệ ấ ụ ộ ổ đ ề ố ă ươ ậ ế đ ề đượ ế ằ ữ ế ả ữ ệ ậ ạ ă ả đượ ổ ứ ư
• Các dòng là các bản ghi có độ dài thay đổi. • Có 6 loại bản ghi:
o Bản ghi đặc trưng cho tỉnh, thành phố gồm mã số tỉnh (thành phố),
tên tỉnh (thành phố). Ví dụ: ‘02’ là mã số Thành phố Hồ Chí Minh.
o Bản ghi đặc trưng cho quận huyện gồm mã số tỉnh thành + mã số
quận huyện, tên quận huyện trong tỉnh thành phố đó. Ví dụ: ‘0201’
là Mã số quận 1 của Thành phố Hồ Chí Minh. o Bản ghi đặc trư
ường xã gồm mã số tỉnh thành + mã số
quận huyện + mã số phường xã, tên phường xã thuộc quận huyện
trong tỉnh thành phố đó. Ví dụ: ‘020101’ là Mã số phường Bến Nghé,
Quận 1, Thành phố Hồ Chí Minh. o Bản ghi đặc trư
địa bàn điều tra trong một phường xã. Ví dụ:
‘02010101’ là mã số địa bàn điều tra số 01 trong phường Bến nghé.
o Bản ghi đặc trưng cho hộ điều tra, gồm Mã số tỉnh + Mã số quận +
Mã số phường + Mã số địa bàn + Số thứ tự hộ điều tra trong địa bàn,
Tổng số nhân khẩu trong hộ, Trong đó: Nữ, Tổng số trẻ dưới 16 tuổi.
o Bản ghi đặc trưng cho nhân khẩu của hộ, gồm các thông tin xác định
hộ điều tra, Số thứ tự nhân khẩu trong hộ, Quan hệ với chủ hộ (1
Giới tính (1, 2, 3), Tháng sinh, Nă độ vă Ở đâ ộ ự ấ ệ ộ ỉ ố ề ậ ệ ộ ậ ệ ỉ ộ ộ ỉ ấ ộ ậ ệ ề ườ ộ ườ ỉ ộ ộ ậ ệ ấ ỗ ườ đượ ề đị đ ề ỗ đị ỉ ộ ộ ườ ấ
b. Mô hình dữ liệu mạng (Network Data Model) ữ ệ ạ đượ ọ ắ ạ ặ ướ ) được đề ấ ố
ững năm 1960 và được định nghĩa lại năm ự ể ệ trong đó các mố ệ ị ạ ế ể ị ề – ột. Như vậ ể ột đồ ị có hướ ữ ệ Ở ị ủ ậ ự ể ạng đưa ra kiể ả ộ ể ả ộ ậ ả ản ghi đượ ấ ạ ở trườ ứ ị cơ bản như số ỗ
ự,… Tập các tên trườ ể ủ ạ ạ ả ể ả ể đặ ư ộ ạ đố ượ ệ ụ ản lý đào tạ ạ ột trường đạ ọ đố ượ ầ ả ủ ế ớ ự ể ả ọ ầ ớ đó ạ ả đặ ư ừ đố ượ đồ ị ể ễ ạ ỗ ể ả đượ ể ễ ở ộ ữ ậ ộ ể ệ ủ ộ ể ả đượ ọ ả ụ ể ả ả ể ả ọ ầ ả ọ ần đượ ả
ạy trong chương trình đào tạ ể ệ ự ế ữ ộ ể ả ủ ớ ộ ể ả đồ ị ể ễ ạ ỗ ể ệ đượ ể ễ ở ộ ầ ụ ự ế ữ ể ả đượ ể ệ ở
ướng (các mũi tên) đ ừ ể ả ủ ớ ể ệ ừ ể ệ ớ ể ả ể ế ườ ỉ ố ượ ả ố ế ợ ể ệ •
1 (Một – Một): Mỗi bản ghi của kiểu bản ghi chủ kết hợp với đúng 1 bản
ghi của kiểu bản ghi thành viên. Ví dụ, mỗi sinh viên viên thực hiện một và ỉ một khoá luận. •
(Một – Nhiều): Mỗi bản ghi của kiểu bản ghi chủ kết hợp với 1 hay
nhiều bản ghi của kiểu bản ghi thành viên. Ví dụ, mỗi khoa có từ 1 đến nhiều lớp. •
1 (Nhiều – Một): Nhiều bản ghi của kiểu bản ghi chủ kết hợp với đú
bản ghi của kiểu bản ghi thành viên. Ví dụ, nhiều sinh viên cùng thuộc một lớp. • Đệ quy (
): Một kiểu bản ghi chủ cũng có thể đồng thời là kiểu bản
ghi thành viên với chính nó. Ví dụ, một học phần (Cơ sở dữ liệu) là điều
kiện tiên quyết của học phần khác (Hệ quản trị cơ sở dữ liệu). KHOÁ LUẬN ự ệ ồ LỚP ồ ạ ữ ệ ạ
Ví dụ 1.6. Hình 1.17 biểu diễn một ví dụ về mô hình dữ liệu mạng đối với
CSDL quản lý đào tạo của một trường. Trong đồ thị này, ta có
• 4 kiểu bản ghi: KHOA, LỚP, SINH VIÊN, KHOÁ LUẬN
• 3 kiểu liên hệ: KHOA gồm 1 đến nhiều LỚP; LỚP gồm một hoặc nhiều
SINH VIÊN, SINH VIÊN thực hiện có 1và chỉ 1 KHOÁ LUẬN; ữ ệ ạ ươ đố đơ ả ễ ử ụ ư ợ ệ ể ễ ớ ở ộ đồ ị ướ ả ă ễ đạ ữ nghĩa củ ữ ệ ấ ữ ệ ố ệ ứ ạ ủ ữ ệ ự ế ấ ạ ế c. Mô hình quan hệ ệ đượ ự ế ớ ệ năm 1970, ự ế ậ ợp và đạ ố ệ ấ ặ ẽ ủ ọ ề ế ậ
ợp nên mô hình này đã mô tả ữ ệ ộ ề ẻ
ừ năm 1980 đã trở thành mô hình đượ ử ụ ộ ậ ữ “qu ệ” là do bả ữ ệ ều đượ ọ ả ệ ệ ữ ệu đượ ể ệ ả ề ồ ộ ả
ọi là các “quan hệ”, các dòng gọi là các “bộ” và cột là “thuộc tính”. ủ mô hình trướ ỗ ộ ả ộ ết ý nghĩa củ ị ả ệ ộc tính để ế ữ ệ ữ ả ỏ để ế ậ
ản ghi như trong mô hình mạ ẽ
ểu kĩ về mô hình này trong chương 2 củ ệ
d. Mô hình thực thể mối quan hệ (Entity ữ ệ ự ể ố ệ đề ấ ă hình này đượ ự ự ậ ứ ế ớ ự ố ả ộ ậ
ợp các đối tượng cơ sở ố ệ ọ ế ữ ệ ự ể – ố ệ – ậ ấ ả ự ể ộ ộ ể ậ ấ ả ố ệ ộ ộ ể ứ ự đượ ọ ậ ự ể ậ ố ệ ẽ ểu kĩ về ầ ủ ệ
e. Mô hình hướng đối tượng (Object Oriented Data Model)
ữ ệu hướng đối tượng ra đờ ừ ố ững năm 80 và đầ ữ năm 90. Đây là loạ ế ấ ệ ự ế ận hướng đố
tượng đã quen thuộc trong các phương pháp lập trình hướng đối tượ ử ụ ệm như lớ ự ế ừ ế ừ ộ ứ ế ừ ừ ề ớp cơ sở ). Đặc trưng cơ bả ủ ế ậ đóng gói ( ), tính đa hình ( ử ụ
ệ CSDL hướng đối tượng dùng lược đồ ồ ập các “lớp” ỗ ớ đượ ả ồ
ập các “thuộc tính” và “phương thức”. Mỗi đối tượ ộ ớp đề mang đầy đủ ộc tính và phương thứ ủ ớp đó. Phương pháp tiế ận hướng đối tượ ữ ệ ặ ớ
ẻ nhưng hiện nay đang đượ ề ườ ứ ể ụ ệ ả
ị CSDL hướng đối tượ ệ ẫn chưa nhiề ộ ố còn chưa ầ
ất (nghĩa là việ ập trình là hướng đối tượng nhưng CSDL vẫ ủ ế ự ệ ự ể ế 1.3.1. Các thành phần
a. Thực thể và kiểu thực thể Định nghĩa 1.3. ự ể
ột “vật” hay một “đối tượng” trong thế ớ ự ự ồ ại ộ đ ậ ộ ự ể ể ụ ể ứ ể ả ận đượ ằ ụ ả ặ ể ừu tượ ứ ả ận đượ
ằng các giác quan nhưng có thể ậ ết đượ ằ ậ ứ ụ ọ ầ ự ả ộ ậ ự ể ộ ậ ợ ự ể ể , nghĩa là cùng đượ ể ệ ở
ộ ập đặc trưng hay thuộ ụ ậ ấ ả ủa trườ đạ ọ ỗ ộ ự ể ự ể sinh viên đều đượ ả ộ ậ
ộc tính như mã sinh viên, họ ớ tính,… Mộ ậ ự ể thường đượ ếu đế ằ ụ ậ ự ể ồ ấ ả ể ế
ằng tên SINH VIÊN. Như vậ ừ ủ ộ ậ ự ể ỉ đế ậ ệ ạ ủ ấ ả ự ể
viên trong CSDL đang đề ậ ể ự ể ộ ậ ợ ự ể ộc tính như nhau. Mộ ể ự ể trong CSDL đượ ả ằ ộ ụ ể ự ể ồ ộc tính như: ọ n, năm sinh, giớ quán, nơi sinh ể ự ể Ọ Ầ ồ ộc tính như: ọ ầ ọ ầ ố ỉ ả ộ ể ự ể đượ ể ễ ằ ữ ậ ứ ể ự ể ế ộ Định nghĩa 1.4. ộ ủ ộ ự ể ặ ủ ộ ố ế ộ ầ ử ủa mô hình tương ứ ớ ột đặ ủ ộ ớp đối tượ ặ ộ ố ệ ữa các đối tượ ộc tính thường đị
ằng tên, mang ý nghĩa là đặ ủa đối tượ ệ ữa các đối tượ ế ớ ự ể lượ
ả, cân đong, đo, đếm) đượ ụ ộ ự ể sinh viên đượ ả ằ ọ ới tính, nơi sinh,… củ viên đó. ề ị ủ ộ ỗ ộc tính đơn củ ộ ể ự ể đượ ế ợ ớ ộ ề ị. Đó là mộ ậ ị ể ộ đố ớ ỗ ự ể ệ ụ ề ị ủ ộ ớ ữ”}. Các miề ị ể ị trong các sơ đồ ạ ộc tính đượ ạ • ộc tính đơn ộ ể phân chia ra đượ ầ ỏ hơn. Ví dụ ộ ớ ủ ộ ộ ộ tính đơn. • ộ ứ ợ ộ ể phân chia đượ ầ ỏ hơn, biể ễ
ộc tính cơ bản hơn với các ý nghĩa độ ậ ụ ộ ọ ủ ự ể ể ộ ọ đệ ộ ủ ự ể ể ộ phườ ậ ệ ị ố ỉ ố ị ủ ộ ộ ự ế ợ ị ủ ộ ầ ạ ệ ộ ộ ứ ợ ộc tính đơn tùy thuộ ả ụ ể • ộc tính đơn trị ộ ị ấ ộ ự ể ụ ể ụ ọ ộ ộc tính đơn trị ủ ự ể ỗ ộ ọ ấ • ộc tính đa trị ộ ể ậ ộ ậ ị ộ ự ể ụ ộ đối tượng ưu tiên ủ ộ ộ ộ đa trị ộ ể
ộc đối tượng ưu tiên n ể ộ
ột đối tượng ưu tiên, nhân viên khác nữ ể ộ
ều đối tượng ưu tiên. Như vậ ể ộ ố ị
ộc tính đối tượng ưu tiên. • ộc tính được lưu trữ ộ ị ủa nó đượ ậ cài đặ ụ ộ ọ ới tính, năm sinh • ộ ễn đượ ộ ị ủ ể tính đượ ị ủ ộ ộ ố trườ ợ ề ộ ị liên quan đế ụ ộ Điể ọ ầ Điể ữ ỳ Điể Điể ọ ầ • ị không xác đị đượ ạ ộ ộ ị ụng đượ ặ ế ộ ự ể ụ ể ể ị ụng đượ ộ ộ ụ ộ ố điệ ạ ủ ự ể ẽ ị đố ớ ố điệ ại. Trong trườ ợp như vậ ả ạ ộ ị đặ ệ ọ ị không xác đị • ộ ứ ạ ự ế ợ ủ ộ ứ ợp và đa ị ệ ủ
ộc tính được ghi bên trong, phía dướ ệ ự ể ặ ủ ố ế ợ
ộc tính đa trị được đánh dấ ộ ộ ủ ộ ể ự ể ộ ặ ộ ộ
ị ủa nó là khác nhau đố ớ ỗ ự ể ệ ộ ậ ự ể ộc tính khóa đượ ể ễ ằ ạ g dướ ủ ộ ể ự ể ể ều hơn mộ ộ ụ ế ộ ộ ố ấ ộ ố ứng minh thư duy nhấ ộ ố ố ứng minh thư đề ộ ộ ể ự ể cũng có thể ộ ự ể không có khóa đượ ọ ể ự ể ế ố ọ Đối tượ ể ễ ể ự ể ộ
e. Kiểu liên kết và các thể hiện ộ ể ệ ủ ộ ố ế ậ ợ ể ệ ủ ự ể ố ế ợp đó. ụ ệ ố ản lý đào tạ ớ ọ ẽ ộ ự ả ề ặ ủ ột khoa, như vậ ộ ể ế ộ ế ữ ể ự ể Ớ ể ự ể Trong sơ đồ ể ết đượ ể ễ ằ ộ ố ự ế ớ ữ ậ ể ễ ể ự ể ế ọ ể ế Ớ ộ ể ế ố ết đệ ộ ố ế ừ ộ ự ể đi đế ự ể đó. ụ Ọ
ẦN (Cơ sở ữ ệu) là điề ệ ế ủ Ọ Ầ ế ế ệ ố HỌC Điề ố ết đệ ậ ủ ộ ể ế ố ể ự ể ể ết đó. ộ ể ế ể ậ ậ ụ ể ế ộ ữ ể ự ể Ớ ể ự ể ộ ể ế ậ ể ế ọ ữ ể ự ể Ớ Ọ Ọ Ầ ộ ể ế ậ
f. Các ràng buộc trên các kiểu liên kết ể ết thườ ộ ố ộc để ạ ế ố ổ ợ ể ủ ự ể ể ậ ợ ết tương ứ ộ được xác đị ừ ạ ủ ế ớ ự ể ế ể ễ ụ ế trường đạ ọ ế ộ ớ ề ặ ỉ ộ ự ả ủ ộ ả ả ộc này trong lược đồ ạ ộ ỷ ố ực lượ ả ố ỷ ố ực lượ ỷ ố ực lượ ộ ể ế ỉ ố ể ệ ế ộ ự ể ể ớ ể ế ấ ể ỷ ố ực lượ ỷ ố ực lượ ộ ự ể ủ ể ỉ ế ớ ộ ự ể ủ ểu B và ngượ ạ ộ ự ể ủ ể ỉ ế ớ ộ ự ể ủ ể ỷ ố ực lượ ộ ự ể ủ ể ể ế ớ ề ự ể ủ ểu B nhưng mộ ự ể ủ ể ỉ ế ớ ộ ự ể ủ ể ỷ ố ực lượ ỗ ự ể ủ ể ế ớ ề ự ể ủ ểu B và ngượ ạ ỗ ự ể ủ ể ế ớ ề ự ể ủ ể ả ố ủ ộ ự ể đố ớ ộ ố ế ợ ặ ả ố ố ể ả ố
ối đa). Trong đó chúng được định nghĩa như sau: ả ố ố ể ằ ặ ố ầ ố ể ộ ể ệ ấ ỳ ủ ộ ự ể ể ệ ủ ố ế ợ ả ố ối đa: ằ ặ ố ầ ối đa mà mộ ể ệ ấ ỳ ủ ộ ự ể ể ệ ủ ố ế ợ Lưu ý ộ ố trườ ợ ả ố ố ể ủ ộ ự ể đố ớ ộ ố ế ợ ằ ệ ệ ể ệ ủ ự ể đó. ể ễ ủa lược đồ ỷ ố ực lượ ả ố đượ ể ễ ằ ể ễ ể ết, trong đó kí tự đứng trướ ả ố ố ể ự đứ ả ố ối đa. ụ ế ộ ự ệ ặ ộ ẬN, nhưng mộ Ậ ải đượ ự ệ ở ộ ỉ ộ ự ệ Ậ ộ ộ ộ ỉ ộ Ớ ớ ề ặ Ớ ồ ộ ặ ề ộ Ớ ộ ặ Ầ ộ ọ ở ặ ề ọ ầ ự ọn chưa bao giờ đượ ọ ẽ không đượ ọ ọ Ọ Ầ ỷ ố ực lượ ủ ể ế
g. Thuộc tính của các kiểu liên kết ể ết cũng có thể ộ ống như các thuộ ủ ể ự ể ụ ể ế ọ ữ ể ự ể Ọ Ầ ể ộc tính Điểm để ạ ế ả ọ ậ ủ ột sinh viên đố ớ ộ ọ ầ ộ ủ ể ết cũng đượ ể ễ ằ ộ ô van và đượ ố ớ ể ế Điể ọ Ọ Ầ ộ ủ ể ế
Xây dựng mô hình thực thể liên kết ụ ớ ảo sát đã thự ệ ở ầ Ở ĐẦ ả ử ột đoạ
• Thông tin về khoa gồm: Mã khoa, tên khoa, địa chỉ, số điện thoại.
• Thông tin về lớp gồm: Mã lớp, Tên lớp, Năm nhập học.
• Mỗi khoa gồm nhiều lớp, nhưng mỗi lớp chỉ chịu sự quản lý về mặt hành chính của một khoa.
• Thông tin về sinh viên gồm: Mã sinh viên, họ tên sinh viên, giới tính, ngày
sinh, quê quán, số điện thoại
• Mỗi sinh viên thuộ một và chỉ một lớp, mỗi lớp có thể gồm nhiều sinh
• Thông tin về học phần gồm: Mã học phần, tên học phần, số tín chỉ, học kỳ.
• Mỗi học phần được học bởi một hoặc nhiều sinh viên, và mỗi sinh viên cũng
phải học nhiều học phần. Kết quả của mỗi lần học là Điểm. Bước 1. Xác đị ự ể ế ộ ở ể xác đị ể ự ể ể ết như sau:
• KHOA là một kiểu thực thể với các thuộc tính mã khoa, tên khoa, địa chỉ, số
điện thoại. Các thuộc tính đều là đơn và đơn trị. Các thuộc tính
là các thuộc tính khóa (vì mỗi khoa có một mã khoa và một tên khoa duy nhất).
• LỚP là một kiểu thực thể với các thuộc tính mã lớp, tên lớp, nm nhập học
Các thuộc tính đều là đơn và đơn trị. Các thuộc tính mã lớp, tên lớp
thuộc tính khóa (vì mỗi khoa có một mã lớp và một tên lớp duy nhất).
• SINH VIÊN là một kiểu thực thể với các thuộc tính Mã sinh viên, họ tên
sinh viên, giới tính, ngày sinh, quê quán, số điện thoại.... Các thuộc tính đều
à đơn và đơn trị; thuộc tính Họ tên sinh viên là một thuộc tính phức hợp
(gồm Họ đệm, Tên). Thuộc tính
thuộc tính khóa (vì mỗi sinh viên có một duy nhất).
• HỌC PHẦN là một kiểu thực thể với các thuộc tính mã học phần, tên học
ần, số tín chỉ, học kỳ. Các thuộc tính đều là đơn và đơn trị. Thuộc tính m
học phần là thuộc tính khóa (vì mỗi học phần có một mã học phần nhất).
• Kiểu liên LỚPKHOA có tỷ số lực lượng N:1 (mỗi lớp thuộc một
khoa nhưng mỗi khoa có nhiều lớp). Sự tham gia của hai kiểu thực thể vào liên kết là toàn bộ.
• Kiểu liên SINH VIÊNLỚP có tỷ số lực lượng N:1 (mỗi sinh viên
thuộc một lớp nhưng mỗi lớp có nhiều sinh viên). Sự tham gia của hai kiểu
thực thể vào liên kết là toàn bộ.
• Kiểu liên kết SINH VIÊN HỌC PHẦN là có tỷ số lực lượng là M:N
(một sinh viên có thể họcnhiều học phần khác nhau và mỗi học phầnđược
học bởi nhiều sinh viên). Sự tham gia của kiểu thực thể HỌC PHẦN là bộ
phận (bởi vì không phải tất cả học phần đều được học, ví dụ môn tự chọn)
ngược lại, sự tham gia của kiểu thực thể SINH VIÊN là toàn bộ (bởi vì sinh
viên nào cũng phải học). Kiểu liên kết này có một thuộc tính là điểm, ghi lại
kết quả học của một sinh viên đối với một học phần. Bướ ẽ ểu đồ ự ể ế Ắ ỐI CHƯƠNG 1
✓ CSDL là một hệ thống các thông tin có cấu trúc của các dữ liệu về thế giới thực
trong một lĩnh vực nào đó có liên quan với nhau về mặt logic được lưu trữ ở bộ
nhớ ngoài (như ăng từ, đĩa từ ...) để có thể thỏa mãn yêu cầu kh
đồ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 đí ✓ Hệ quản trị
là một phần mềm cho phép tạo lập và điều khiển hoặc truy nhập
đó, đặc biệt hệ quản trị
đảm bảo tính độc lập dữ liệu (là sự
bất biến của các chương trình ứng dụng đối với các thay đổi về cấu trúc lưu trữ và chiến lược truy nhập). ✓ Một
có 3 mức biểu diễn: Mức vật lý (Physical level), mức logic (Logical
level) và mức khung nhìn (View level)
✓ Những người liên quan đến hệ
được chia thành hai nhóm chính. Nhóm thứ
nhất gồm những người mà công việc của họ liên quan hàng ngày đến CSDL, đó là
những người quản trị CSDL, thiết kế CSDL, sử dụng CSDL, phân tích hệ thống và
lập trình ứng dụng. Nhóm thứ hai gồm những người làm việc để duy trì môi trường hệ
nhưng không quan tâm đến bản thân CSDL, đó là những người thiết kế
và cài đặt hệ quản trị CSDL, phát triển công cụ, thao tác viên và bảo trì.
✓ Có hai loại kiến trúc hệ CSDL: tập trung và phân tán, hệ CSDL tập trung, tập tất
cả các dữ liệu được định vị tại một trạm đơn lẻ. Những người sử dụng tại các trạm
từ xa nói chung có thể truy nhập CSDL thông qua các công cụ truyền thông dữ liệu.
✓ Mô hình dữ liệu là một tập các khái niệm và kí pháp dùng để mô tả dữ liệu, các
mối quan hệ của dữ liệu, các ràng buộc trên dữ liệu của một tổ chức
✓ Mô hình phân cấp và mô hình mạng được xếp vào thế hệ đầu của CSDL. Thế hệ
thứ hai của các hệ quản trị CSDL có mô hình quan hệ. Các mô hình này được xem
là mô hình cổ điển. Mô hình mới nhất được xếp vào thế hệ thứ ba của CSDL là mô
hình hướng đối tượng, mô hình phân tán, mô hình suy diễn.
✓ Mô hình ER là mô hình dữ liệu khái niệm bậc cao, hỗ trợ cho việc thiết kế CSDL
và nhiều công cụ thiết kế CSDL, sử dụng các khái niệm của nó.
✓ Một kiểu thực thể là một đối tượng hay một khái niệm được xác định là tồn tại một
cách độc lập trong một tổ chức. Một thực thể là một thể hiện của một kiểu thực thể.
✓ Một kiểu liên kết là một tập các kết hợp có ý nghĩa giữa các kiểu thực thể. Một liên
kết là một thể hiện của một kiểu liên kết, nó là một kết hợp bao gồm một số thực
thể, trong đó mỗi thực thể thuộc một kiểu thực thể tham gia liên kết.
✓ Một thuộc tính là một đặc tính (tính chất) của một kiểu thực thể hay của một kiểu liên kết.
CÂU HỎI ÔN TẬP CHƯƠNG 1 ạ
ả ử ụng CSDL? Trình bày các ưu nhược điể ủ ứ ụ ủ ộ ố ệ ệ ữ ệ ệ ả ị ệ ệ ả ị ầ ủ ệ ả ị ức năng củ ệ ủ
ững người sau đây đố ớ ộ ệ Ngườ ả ị Ngườ ế ế Ngườ ế ế ậ Ngườ ậ ứ ụ Ngườ ử ụ ứ ể ễ
ình bày các ưu nhược điể ủ ộ ệ ữ ệu cơ bả ụ đố ớ ừ ệ ệ đượ ử ụ ộ ị ế ữ ả ệ) đượ ự ộ
So sánh ưu và nhược điể ủ ậ ấ Đặc trưng củ ạ ị ả ậ ữ ự ể ậ ự ể ộ ệ ệ ự ể ể ự ể ế ể ế ị ế ế ằm trong giai đoạ ủ ế ế ộ BÀI TẬP CHƯƠNG 1 ự ữ ệ đã ọ ể ễ ạ ẫ ệ ị đã ế ậ ạ
• Loại liên hệ là mạng
• Mỗi nhân viên có một lý lịch; mỗi lý lịch chỉ thuộc 1 nhân viên duy nhất.
• Mỗi phòng ban có từ mộtđến nhiều nhân viên. Mỗi nhân viên chỉ thuộc một phòng ban nhất định.
• Nhiều nhân viên cùng làm một công việc.
• Mỗi nhân viên không có, có một hoặc nhiều nhân viên là thân nhân ự ữ ệ đã ọ ể ễ ạ ẫ ệ ị đã ế ậ ấ
• 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 1 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 1 nhân viên duy nhất. ự ữ ệ đã ọ ể ễ ề ổ đ ề ố ố ờ ă ạ ẫ ỉ ố ậ ệ ườ Đị ộ đ ề ẩ đã ấ ế ậ ạ
• Loại liên hệ phân mạng là loại "thuộc về • 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ã). •
ường (xã) thuộc một quận (huyện)
• Quận (huyện) thuộc một tỉnh (thành phố). ự ự ể ế ủ ầ ựng CSDL để ả ề ả ẩ ả ẩ ồ • ề ả ẩ ỗ ả ẩ ộ ả ẩ ấ ả
ẩm, đơn vị tính, đơn giá, xuấ ứ • ề ạ ả ẩ ỗ ạ ả ẩ ộ ạ ấ ạ • ề ỗ ộ ố ấ ọ ớ ề ệp, đị ỉ ố điệ ạ • ề ấ ỗ ấ ộ ấ ấ ấp, đị ỉ ố điệ ạ ố ả • ỗ ạ ả ẩ ồ ề ả ẩm, nhưng mỗ ả ẩ ỉ ộ ộ ạ ả ẩ • ỗ ể ộ ặ ề ả ẩm, ngượ ạ ỗ ả ẩm cũng có thể đượ ở ộ ặ ề ề ả ẩ ồ ả ẩ ố lượ ấ ấ • ỗ ấ ể ấ ộ ặ ề ả ẩm, ngượ ạ ỗ ả ẩm cũng đượ ấ ở ộ ặ ề ấ ề ả ẩ ấ ậ ồ ả ẩ ố lượ ậ ậ ự ự ể ế ủ Giám đố ạn Phương Nam cầ ựng CSDL để ả ề ị ụ ồ • ề ỗ ộ ố ấ ọ ớ ố ứng minh thư (hoặ ố ộ ếu), đị ỉ ố ị • ề ỗ ộ ố ấ ạ • ề ạ ỗ ạ ộ ạ ấ ạ ạ ạ ạ • ề ị ụ ỗ ị ụ ộ ị ụ ấ ị ụ đơn giá, đơn vị • ộ ể ạ ạ ề ầ ủ ỗ ầ ủ ộ ồ ố ắt đầ ế • ỗ ạ ồ ộ ặ ều phòng, nhưng mỗ ỉ ộ ộ ạ • ộ ể ử ụ ộ ặ ề ị ụ ỗ ị ụ cũng đượ ử ụ ở ộ ặ ề ủ ỗ ầ ử ụ ị ụ ờ ử ụ ự ự ể ế ủ ấ ầ ự ả ề ự ty đã và đang thự ệ ồ
• Thông tin về nhân viên: mỗi nhân viên có mã nhân viên duy nhất, họ tên
nhân viên, giới tính, địa chỉ, số điện thoại, trình độ, chức vụ.
• Thông tin về dự án: mỗi dự án có mã dự án duy nhất, tên dự án, địa điểm
triển khai, ngày bắt đầu, thời gian thực hiện dự kiến, vốn đầu tư.
• Thông tin về nhiệm vụ: mỗi nhiệm vụ có mã nhiệm vụ duy nhất, tên nhiệm
vụ, kỹ năng, thời gian, khối lượng công việc.
• Thông tin về công cụ: mỗi công cụ có mã công cụ duy nhất, tên công cụ, yêu cầu sử dụng. ừ: “ ỗ ớ ọ ộ ố ướ ấ để ệ ớ ấ ả ớ ọ ộ ọ ủ ớ ọ ộ ộ ủ ườ ”.
(MaKhoa, TenKhoa, ĐC, SĐT) là lược đồ quan hệ của Khoa ừ: “ ỗ ộ ọ ột đị ỉ ộ ố điệ ạ ộ ố ấ để ệ ớ ấ ả ủ ườ ”. lđqh của Học phần ừ: “ ỗ ọ ầ ộ ọ ụ ể ộ ả, đượ ọ ộ ố ỉ ất đị ứ ớ ọ ầ ộ ọ ầ ất để ệ ớ ọ ọ ầ ”. ừ: “ ỗ ọ ộ ọ ầ ộ ế ả là điểm”.
CHƯƠNG 2. MÔ HÌNH DỮ LIỆU QUAN HỆ ữ ệ ệ ổ ế ọng, được E.Codd đưa ra vào năm 1970. Mộ ững ưu điể ủ ữ ệ ệ ỗ ợ
ữ khai báo, khá đơn giản nhưng hiệ ả ữ ệ ể ổ ợ ễ ờ ộ ệ ố ệ đạ ố ọi là đạ ố
ệ (relational algebra). Chương 2 giớ ệ ấn đề ừ cơ ản đế ừ ổng quát đế ế ủ ữ ệ ệ ➢ ệm cơ bả ủ ữ ệ ệ ➢ ệ ➢ Các phép toán đạ ố ệ ➢ ệ ệm cơ bả Thuộc tính ộ ộ ấ ệ ủ ột đối tượ ần đượ lưu trữ trong CSDL để ụ ụ ệ ữ ệ ề đối tượ ộ tính được xác đị ở ọ ể ị ề ị ụ
• Đối tượng HỌC PHẦN (tương ứng với loại thực thể HỌC PHẦN
hình thực thể kết hợp) có một số thuộc tính Mã học phần, Tên học phần, Số tín chỉ...
• Đối tượng SINH VIÊN có một số thuộc tính Mã sinh viên, Họ tên sinh viên,
Năm sinh, Giới tính, Quê quán... ọ ệ ế ầ ưu ý đế
ữ nghĩa thì ta qui ước đặ ộc tính như sau: • ộc tính đượ ệ ằ ữ cái in hoa đầ ả ữ • ậ ợ ộc tính đượ ệ ằ ữ • Trườ ợ ổ ốn đề ập đế ố ố lượ ộ ủ ộ ệ ệ ữ ớ ỉ ố ự ế, ta thường đặ ộ
ữ nghĩa, vì vậy để ễ đọ ễ ớ đặ ộ ớ ữ in hoa đầ ừ ặ ế ở ấ ạ ụ ặ ụ ủ ệ ầm đị ắ ộc tính đượ ế ằ ế ệ ữ cái đầ tiên đượ ế Trong cài đặ ụ ể ớ ộ ệ ả ị ầ ưu ý đế ạnh đặ ảng cũng như tên củ ộ ầ ế ữ ậ ộ ố ữ ả
ị CSDL nói riêng, tên đối tượ ế ệ ộc tính...) đề ỉ đượ ế ằ ữ ữ ố ặ ấ ạ ‘_’), ắt đầ ằ ữ ặ ấ ạ
ớ độ dài tên theo quy đị ết, không nên đặ ộ ở ệ ế ệ ấ ở ấ
ả hơn) và cũng không nên đặ ộ ắ ấ ữ nghĩa củ ộ ủ ệ), đặ ệ không đặ ộ ữ nghĩa khác nhau t ộ đối tượ ụ ếu có hai đối tượ ẢNG VIÊN đề
ộc tính TÊN thì nên đặ ộ ọ ủ ại đố tượ ọ ảng viên cho đối tượ Ả ở ộ
ÊN đó mang ngữ nghĩa khác nhau trong 2 quan hệ ể ữ ệ ỗ ộc tính đề ả ộ ộ ể ể ữ ệ ất đị ể ữ ệ ể vô hướ (đó là các kiể ữ ệu cơ bản như chuỗ ặ ặ ố ặ ể ữ ệ ấ đượ định nghĩa dự ể ữ ệu đã có sẵ ộ ố ể
ữ ệu vô hướng sau đây thường đượ ử ụ ệ ả ị • (hoặc , hoặc – kiểu văn bản. • (hoặc , hoặc – kiểu số • (hoặc – kiểu logic •
– kiểu thời gian: ngày tháng năm + giờ phút • (hoặc
– kiểu văn bản có độ dài thay đổi.
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, ngoà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 có kiểu dữ liệu OLE để chứa các đối tượng nhúng như hình ảnh, âm
thanh, audio, video… ORACLE có kiểu dữ liệu LONG cho phép chứa dữ liệu có kích
hước lớn tới 2 tỷ bytes. Lưu ý ế ộ ể
ữ ệu là vô hướng thì nó đượ ọ ộ đơn hoặ ộ ố ế ộ ể ữ ệ ấ ộ ả ố c. Miền giá trị ề ạ ị ể ộ ộ ả ậ
ị đơn. Miền tương tự ề ặ ệ ớ ể ữ ệ ập trình. Cũng như ể ữ ệ ề ỉ xác đị ậ ị ộ đị hao tác đượ ử ụ ữ ệ ụ, đố ớ ữ ệ ố ớ ể ụ ố ọ ộ ừ, nhân, chia,…). Nế ạ
ền còn có ý nghĩa ngữ nghĩa. Chẳ ạ ặ ề ủ ột ngườ đề ậ ị ố, nhưng hai số ể ới nhau đượ ề ị ủ ộ ậ ợ ị ộ ể ận được và đượ ệ ặ ụ inh viên đang theo ọ ại trường Đạ ọ ồng Đứ ớ ỉ ậ ộ ị là “Nam” ặc “Nữ” nên miề ị ủ ộ
ới tính là DOM (GioiTinh)={“Nam”, “Nữ”} xác đị ộ ộ ải xác đị ề ủ ộ ị ộ ầ ỏ ộ ề ề ụ ổ ủ ộ người đ ợ ư ể ệ ằ ố ậ ị ừ 1 đế ế ể ữ ệ ủ ộ ấ ề ị ủ ặ ậ ủ ủ ề ị ầ ụ ể
ữ ệu ngày tháng năm theo dương lị ớ ả ằ ữ C như sau: ủ ề ị ủ ầ ế ộ ộ ể ở ả ột ngày tháng năm hợ ệ ổ ợp đó không thuộ ầ ế ữ ả ị ữ ệu đề
định nghĩa kiểu này như ộ ểu cơ bả ổ ợ ị ần luôn luôn đượ
ểm tra tính đúng đắn trước khi đượ ộ ị ể ố ọ ể tác độ ể ộ ặ ừ ộ ớ ộ ố nguyên để ế ả ộ ị ể ệ ị ể ố ữa 2 ngày tháng năm đó. ề ệ ả
ị CSDL, người ta thường đưa thêm vào miề ị ủ ộ ộ ị đặ ệ ọ ị ỗ ữ ả ị ể đặc trưng cho mộ ị ể xác định đượ ặ ộ ị chưa được xác đị ở ời điể
ập tin nhưng có thể được xác đị ộ ờ điể ệ ọ ệ đượ ể ệ ới ý nghĩa ủ ế ậ ợ ứ ậ ủ ề ọ ề ủ ề ậ ấ ả ộ ớ ụ = {a, b, c}, khi đó
. Quan hệ và các tích chất của quan hệ ệ Định nghĩa 2.1. ọ ậ ữ ạ ủ ộ ỗ ộ ớ ề ị tương ứ ). Khi đó R là quan ệ xác đị ộ ế ậ ặ ớ ủ = 1..n), n đượ ọ ủ ệ . Khi đó kí hiệ ặ ụ ệ ệ
KHOA (MaKhoa, TenKhoa, ĐC, SĐT) là một quan hệ 4 ngôi. là quan hệ 3 ngôi. ộ ị ộ ộ ị ủ ộ đố ượ ộ ệ ộ ị cũng ườ đượ ọ ẫ ả ặ ủ ả ề ặ ứ ộ ộ ộ ơ ồ ầ ộ ậ ợ ủ ề ị ủ ộ ỏ ừ đã ủ ệ ụ ệ ồ ộ ộ ệ ậ ị ồ ữ ộ ộ ủ ệ Để ấ ầ ứ ị ộ ủ ộ ị ế đượ ọ ế ộ ộ ộ ‘Lê Thị ồng Hà’. ỗ ị ộ ộ ộ ị
ố, nghĩa là nó không phân chia đượ ầ ạ ủ ệ ệ ộ ứ ợ ộc tính đa trị ị ủ ộ ố ộ ạ ộ ố
ộc tính nào đó có thể là chưa biết đượ ở
ời điểm đang xét). Cũng có trườ ợ ị ợp đặ ộ ộ ủ ộ ộ nào đó. Trong nhữ ống như vậ ộ ị đặ ệ ọ ị NULL đượ ử ụ Lưu ý ằ ă ả đượ ế ặ ấ kép (“”), còn trong SQL ằ ă ả đượ ế ặ ấ đơn (‘ ‘). ỗ ệ ể ể ễn dướ ạ
ảng, khi đó một dòng tương ứ ớ ộ ộ ủ ệ ộ ột tương ứ ớ ị ủ ộ ộ ệ ả ệ ộ ả ộ ộ Trườ
hai đại lượng đo kích thướ ệ • ố ộ ủ ệ ọ ậ ệ • ố ộ ọ ực lượ ủ ệ ấ ủ ệ
• Một quan hệ có một tên phân biệt với tên các quan hệ khác.
• Mỗi ô trong bảng (quan hệ) chứa một giá trị nguyên tố.
• Mỗi thuộc tính trong quan hệ có một tên phân biệt.
• Các giá trị của một thuộc tính thuộc cùng một miền.
• Thứ tự các thuộc tính là không quan trọng vì quan hệ là một tập hợp.
• Các bộ trong quan hệ là phân biệt, nghĩa là không có hai bộ giống hệt nhau ng một quan hệ.
• Thứ tự các bộ không quan trọng về mặt lí thuyết
. Lược đồ quan hệ (Relation Schema) Đị ĩ Lược đồ ệ ự ừu tượ ủ ệ ộ ự ừu tượ ở ức độ ấ ủ ộ ả ề ới lược đồ ệ ức là đề ậ ớ ấ ổ ủ ộ ệ; khi đề ậ ớ ệ ể đó là mộ ả ấ ụ ể ặ ột định nghĩa cụ ể ột lược đồ ệ ớ ộ ị ủ ậ ợ ồ ộ ,…, A ) đượ ọ sơ đồ ệ hay lược đồ ệ ậ ấ ả ộ ầ ả ủ ột đối tượ ớ ố ệ ữa chúng đượ ọ lược đồ ệ Lược đồ ệ ớ ậ ộ } đượ ế ệ ụ là lược đồ ệ ủ Thườ ậ ột lược đồ ệ, ngườ ế ế ắ ộ nghĩa nhất đị ọ ừ ủa lược đồ ệ ụ lược đồ ệ ủ ừ “ ỗ ộ ọ và tên, năm sinh, giớ đượ ấ ộ ấ để ệ ớ ọ ườ đượ ộ ớ ọ ấ ườ ” lược đồ ệ ủ ớ ừ: “ ỗ ớ ọ ộ ố ướ ấ để ệ ớ ấ ả ớ ọ ộ ọ ủ ớ ọ ộ ộ ủ ườ ”.
KHOA (MaKhoa, TenKhoa, ĐC, SĐT) là lược đồ quan hệ của Khoa ừ: “ ỗ ộ ọ ột đị ỉ ộ ố điệ ạ ộ ố ấ để ệ ớ ấ ả ủ ườ ”. lđqh của Học phần ừ: “ ỗ ọ ầ ộ ọ ụ ể ộ ả, đượ ọ ộ ố ỉ ất đị ứ ớ ọ ầ ộ ọ ầ ất để ệ ớ ọ ọ ầ ”. ể ừ ột lược đồ ệ, ngườ ế ế ầ ả ả đầ đủ ý nghĩa để ngườ ể ầ ự
ừ này, người ta xác định đượ ậ ủa lược đồ ệ ẽ đượ ầ ệm lược đồ ệ ứ ớ ệ ạ ự ể ở ự ể ế ợ . Lược đồ CSDL quan hệ ều lược đồ ằ ộ ệ ống đượ ọ lược đồ Lược đồ ậ ợp các lược đồ ệ ụ ớ
ụ 1.8. trong chương 1, ta có thể ựng đượ lược đồ ẽ dùng lược đồ này để ả ụ trong chương 2.
KHOA (MaKhoa, TenKhoa, ĐC, SĐT)
. Thể hiện của quan hệ (Occurrence of a Relation) Đị ĩ ể ệ ặ ọ ạ ủ ệ ệ ở ậ ợ ộ ị ủ ệ ộ ời điể ạ ữ ờ điể ệ ẽ ữ ể ệ ể ệ ạ ủa các lược đồ ệ ọ ạ ủa lược đồ ụ ể ệ ủ ệ ệ Lê Đình Bách ị ữ Nam Đị ệ ĐH CNTT K16 ĐH CNTT K17 ĐH CNTT K18 ệ ậ Cơ sở Cơ sở ữ ệ Cơ bả ế ế ệ ố ủa lược đồ ệ 2.2.1. Định nghĩa khoá
ều cách khác nhau để định nghĩa khóa: Định nghĩa 2. ủa lược đồ
ệ R định nghĩa trên tậ ộ ộ ậ ỏ ấ ớ ọ ộ ị ủa R đề ồ ạ ộ ộ Điều này có nghĩa là k ồ ạ ộ ị ằ ọ ộ ủ ở ộ ế ủ ộ ậ ộ ể ế .K. Như ậ ỗ ị ủ ải là xác đị ấ ệ
Theo định nghĩa trên, nế ủa lược đồ ệ cũng là khóa củ ở .K' thì cũng có q .K. Như vậy, trong lượ đồ ệ ể ấ ề ệc xác đị ấ ả ủ ột lược đồ ệ ất khó khăn. Định nghĩa 2. ủ ộ ệ r xác đị ậ ộ ậ ế ớ ọ đề ồ ạ ộ ộ ị ủ ộ ạ ị ạ ộ ồ ạ ộ ị ằ ọ ộ ủa K. Điề ệ ể ế ậ ỗ ị ủ xác đị ấ ộ ộ Định nghĩa 2.
ệ R định nghĩa trên tậ ộ ủ ệ ế ỏa 2 điề ện sau đây:
• (i) K xác định được giá trị của A 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 A với mọi Nghĩa là ậ ỏ ấ ị ủ ể xác đị ấ ộ ộ ị ủ ệ ủ
ệ theo định nghĩa đượ ọ ỉ đị ầ ế ế ỉ định đều đượ ọ ụ ệ ả ể ố ấ Ý nghĩa thự ế ủ dùng để ậ ệ ộ ộ ộ ệ, nghĩa ầ ộ ộ q nào đó, ta chỉ ầ ế ị ủa q là đủ để toàn xác định đượ ệ ự ế, đố ớ ạ ự ể ồ ạ ụ ả ngườ ế ế CSDL thườ ộ ộ ả ọ ố để ỉ đị ụ ả ố
ố hàng hóa, ...). Trong khi đó, các lược đồ ệ ể ễ ự ừu tượng hóa thườ ỉ đị ộ ổ ợ ủ ề ộ ủ Trong trườ ợp, lược đồ ệ ề ỉ đị ự ể khi cài đặ ộ ệ ả ị CSDL, ngườ ử ụ ể ọ ộ ố ỉ định để ạ ỉ ụ ố ệ ập đế ộ ỉ đị này đượ ọ ạ ọ khóa tương đương ệ ự ọ ộ ỉ đị ỳ ý, nhưng ọ ỉ đị ỉ ồ ộ ộ ặ ộ ấ ỉ
ậ ự có ý nghĩa trong quá trình khai thác CSDL và xét trên phương diệ ế ớ ỉ đị ạ ộ ố ệ ả ị CSDL như MicroSoft Acces
DB2,... có cài đặt cơ chế ự độ ể ấ ứ ế ộ ộ ớ ị ớ ị ủ ộ ộ đã ệ ệ ố ẽ ỗ ầ ậ ạ ộ ị Ta cũng qui ướ
• Trong một bộ của một quan hệ các thuộc tính khóa không chứa giá trị rỗng
• Không được phép cập nhật giá trị của thuộc tính khóa. Nếu muốn cập nhật
giá trị thuộc tính khóa của một bộ , người sử dụng phải hủy bỏ bộ
đó thêm mới một bộ với giá trị khóa đã được cập nhật. ộ ột khóa đượ ọ ộ lược đồ ệ ộ ẽ đượ ạch dưới. Ngượ ạ ộ ộ ọ ộ ụ ược đồ ồ ệ , TenKhoa, ĐC, SĐT) ộ ủ ệ ộ ủ ệ ộ ủ ệ ộ ủ ệ ộ ủ ệ Định nghĩa 2. K' đượ ọ ủ ế ớ ủ ệ ), nghĩa là vớ ừ ’ ủ ệ ế ’ ộ ủ ệ ột lượ đồ ệ ủ ấ ộ ể ề ụ Lược đồ ộ ố Định nghĩa 2. K đượ ọ ủ ệ ếu như K không phả ủ ệ r nhưng nó lạ ủ ệ ả ử ệ ộ ậ ộ ủ ệ đượ ọ ủ ệ ế ủ ệ ụ ệ ủ ệ ệ ủ ệ ủ ệ
2.3. Các phép toán đạ ố ệ ệc định nghĩa cấ ộ ộ ữ ệ ả ứ ộ ậ ợp phép toán để ữ ệ ậ ợp cơ sở ệ ạo nên đạ ố ệ ngườ ử ụ đị ầ ấ ế ả ủ ộ ấ ộ ệ ớ ể đượ ạ ừ ộ ề ệ ệ đó có thể đượ ế ằ ử ụ ủ đạ ố ộ ệ ạ ộ ể ức đạ ố ệ ế ả ủa nó cũng là mộ ệ ầ ắ ế ận để ế ế ữ ể ễ ấ ề ệ. Đối tượ ủ ữ ữ ệ ệ ọ “ngôn ngữ ỏ ấn” ặ ẽ ớ ạ ỏ ậ ậ ộ ủ ệ ặ ỏ ể ữ ố ụ ệ ữ ỏ ệ đượ ớ •
ữ đạ ố, trong đó câu hỏi đượ ể ễ ờ ụ đặ ệt ố đ ớ ệ • ữ
ừ, trong đó câu hỏi đượ ể ễ ộ ậ ợ ộ ả ừ xác đị Các phép toán đạ ố ệ đượ • ộ ậ ợ ấ ừ ế ậ ợ ọ
phép toán đó là phép hợ ừ
• Nhóm hai: các phép toán đượ ựng đặ ệ ệ ọ ế ế ố • ủ ế đế ế ố
Ta cũng có thể chia các phép toán đạ ố ệ ự ố ệ, đó là • ộ ộ ồ ọ ế • ợ ừ ế ố
2.3.1. Các phép toán tập hợp trên quan hệ
Các phép toán này là các phép toán hai ngôi, nghĩa là mỗi phép toán đượ ụ ệ ụ ệ ệ ộ ả ể ủ ộ như nhau, hay nói ả ộ ấu trúc. Điề ện này đượ ọ ả ợ ệ 2,…, ) đượ ọ ả ợ ế ấ ớ
≤ i ≤ n. Điều đó có nghĩa là ệ ố ộ ỗ ặ ộc tính tương ứ ề ị . Phép hợp (Union) Định nghĩa 2. ợ ủ ệ đượ ệ ộ ệ Q xác đị ậ ộ ứ ự
ộc tính như trong quan hệ
S, được định nghĩa như sau: ặ
Hợp của hai quan hệ R và S là một quan hệ có cùng ngôi với R và S với các bộ
giá trị bằng gộp các bộ giá trị của cả R và S; những bộ giá trị trùng nhau chỉ được giữ lại một bộ. ụ ệ HP1 và HP2 tương ứ ới lược đồ ệ ệ ậ Cơ sở ữ ệ ế ế ệ ố ệ ậ Cơ sở ữ ệ ế ả ợ ậ Cơ sở ữ ệ ế ế ệ ố ậ Định nghĩa 2.10 ủ ệ R và S, đượ ệ ∩ ộ ệ Q xác đị ậ ộ ứ ự
ộc tính như trong R và S,
được định nghĩa như sau: Q = R ∩ S = {t/t
Giao của hai quan hệ R và S là một quan hệ có cùng ngôi với R và S với các bộ
giá trị là các bộ giống nhau của cả hai quan hệ R và S. ụ ế ả Cơ ở ữ ệ
. Phép trừ quan hệ (Minus).
Định nghĩa 2.11 Hiệu của hai quan hệ R và S, được ký hiệu là R S, là một
quan hệ Q xác định trên tập thuộc tính U, có cùng thứ tự thuộc tính như trong R và S,
được định nghĩa như sau:Q = R
Hiệu của hai quan hệ R và S là một quan hệ có cùng ngôi với R và S với các bộ
giá trị là các bộ giá trị của R sau khi đã loại bỏ đi các bộ có mặt trong S. ụ ế ả ừ ậ ế ế ệ ố ụ ế ả ừ ậ ủ ậ ợ ợ án, nghĩa là:
+ Các phép toán trên cũng có tính chấ ế ợp, nghĩa là: ừ ậ ợ ấ ứ – S ≠ S –
. Tích Descartes của hai quan hệ (Cartesian) Định nghĩa 2.1 ) là hai quan hệ có
số bộ giá trị hữu hạn. Tích Descartes của hai quan hệ R và S, được ký hiệu là R x S, là
một quan hệ Q xác định trên tập thuộc tính của R và S (với thuộc tính) và được định nghĩa như sau: S = {t/t có dạng (a ) trong đó (a
Tích Descartes của 2 quan hệ R và S là một quan hệ Q có số ngôi bằng tổng số
ngôi của R và S, với các bộ giá trị gồm 2 phần: phần bên trái là một bộ giá trị của R và
phần bên phải là một bộ giá trị của S. Như vậy, nếu R có n bộ giá trị và S có n bộ giá trị, thì Q sẽ có n bộ giá trị. ế ụ
ột mình thì không có ý nghĩa ỉ ợ ế ằ ộ ọ ị tương thích củ ộ ấ ừ ệ ầ ế ợ ớ ộ ọ ộ ế ố ụ ệ ệ ĐH CNTT K16 ĐH CNT ĐH CNTT K18 ệ ậ Cơ sở ữ ệ Phép tích Đề ủ ệ ĐH CNTT K16 ậ ĐH CNTT K17 Cơ sở ữ ệ ĐH CNTT K18 ậ ĐH CNTT K16 Cơ sở ữ ệ ĐH CNTT K17 ậ ĐH CNTT K18 Cơ sở ữ ệ Định nghĩa 2.1
R là quan hệ ngôi và S là quan hệ và S ≠Ø),
thuộc tính chung (giống nhau về mặt ngữ nghĩa, hoặc các thuộc tính có thể so
sánh được) giữa R và S. Phép chia 2 quan hệ R và S, ký hiệu là R÷ S, là một quan hệ
ngôi được định nghĩa như sau:Q=R÷ S={t/
Sử dụng định nghĩa phép tích Descartes, có thể định nghĩa phép chia hình thức hơn như sau: Định nghĩa 2.1
R (với giả thiết thêm là thứ tự thuộc
tính của R, S, Q là không quan trọng).
Ví dụ 2.18. Giả sử ta có 2 quan hệ LOP_HOC_PHAN và LOP, trong đó ệ ĐH CNTT K16 ậ ĐH CNTT K17 Cơ sở ữ ệ ĐH CNTT K18 ậ ĐH CNTT K16 Cơ sở ữ ệ ĐH CNTT K17 ậ ĐH CNTT K18 Cơ sở ữ ệ ệ ĐH CNTT K16 ĐH CNTT K17 ĐH CNTT K18 ế ả ủ ữ ệ ậ Cơ sở ữ ệ
. Phép bù của một quan hệ (Complement) Định nghĩa 2.1 Cho quan hệ R (A
) với các miền giá trị của thuộc
). Phép bù của quan hệ R là quan hệ Q xác định trên tập thuộc tính
, ký hiệu là ˥ , được định nghĩa như sau: =˥
Nghĩa là, tập tất cả các bộ giá trị có thể có của tích Descartes miền giá trị
) nhưng chưa có mặt trong thể hiện của quan hệ R. Quan hệ bù của một quan
hệ có số lượng bộ giá trị là rất lớn, vì vậy, trong thực tế rất ít hệ quản trị CSDL cài đặt phép toán này.
2.3.2. Các thao tác cơ sở trên các quan hệ . Phép chọn (Selection) Định nghĩa 2.1 ọn là phép toán đạ ố ệ đượ ử ụng để ọ ộ ậ ợ ộ ỏa mãn điề ệ ọ ừ ộ ệ ể ọn như mộ ộ ọ ỉ ữ ạ ộ ỏa mãn điề ện đặ ệ ế ả ủ ọ ộc tính như R. ọn đượ ệ <điề ệ ọ (R), trong đó • đượ g để ệ ọ • <điề ệ ọ ộ ể ứ ể ứ ỉ ra trong <điề ệ ọn> đượ ạ ừ ộ ố ạ ụ ạ ộ ị ằ ặ ộ ộ rong đó ộ ủ ộ ộ
ột trong các phép so sánh {<, <=, =, >, >=, ≠}, ị ằ ộ ị ằ ừ ề ị ủ ộ ạ ụ ể đượ ố ớ ằ ic và (˄), hoặ
(˅), phủ định (¬) để ạ ột điề ệ ụ ọ ớ ừ ệ GioiTinh= “Nam”
ọn sinh viên Nam và sinh năm 1998 từ ệ GioiTinh= “Nam” ọ
ở “Thanh Hoá” hoặc “Nghệ An” ừ ệ
QueQuan= “Thanh Hoá” ˅ QueQuan= “Nghệ An” ọ ở ặ ớ ữ ừ ệ
QueQuan= “Thanh Hoá” ˅ GioiTinh= “Nữ” Lư ậ ợ ≠ ụ ộ ề ị ị ứ ự ụ ề ị ố ề ị ủ
ự được xem như có thứ ự ự ệ ự ế ề ị ủ ộ ộ ộ ậ ợ ị ứ ự ỉ ậ ợp {=, ≠} là có thể ụng đượ ể ổ ẳ
ạn như “là dãy con của…” hoặc “trong khoả ừ … đến …”. ọ ộ ấ , nghĩa là: <Điề ệ <Điề ệ <Điề ệ <Điề ệ ụ
ọn sinh viên Nam và sinh năm 1998 từ ệ GioiTinh= “Nam” GioiTinh= “Nam” Hơn nữ ể ế ợ ộ ạ ọ ộ ọn đơn ả ằ ử ụng phép toán ˄. <Điề ệ <Điề ệ <Điề ện 2> ˄ <Điề ệ ụ
ọn sinh viên Nam và sinh năm ừ ệ GioiTinh= “Nam” GioiTinh=“Nam” . Phép chiếu (Projection) ế ộ ệ như mộ ả • ọ ọ ộ ố ủ ả ỏa mãn điề ệ ọ • ế ọ ộ ố ộ ủ ả Định nghĩa 2.1 ếu đượ ệ ộ (R) trong đó • ệu dùng để ể ễ ế • ộ ộ ộ ế ả ủ ế ộ ệ ỉ ộ ằ ộ
ứ ự như thứ ự ủa chúng trong danh sách. Như ậ ấ ủ ệ ế ả ố ộ ộ ế ộ ỉ ồ ộ ả ộ ủ ệ ế ả ể ữ ộ ế ạ ỏ ọ ộ ặp, và như vậ ế ả ủ ế ộ ậ ợ ộ ộ ệ đúng đắ ụ ệ Lê Đình Bách ị ữ Nam Đị ế ế ả ộ ệ ộ ả ế ả ế Lê Đình Bách ị ữ ố ộ ệ ế ả ừ ộ ế ỏ hơn hoặ ằ ố ộ ế ế ộ ủ (nghĩa là nó chứ ột khóa nào đó củ ệ ế ả ộ ố ộ như R. ế ấ ớ ế ụ ế ợ ủ ế ọ ệ Lê Đình Bách ị ữ Nam Đị
Hãy đưa ra danh sách các sinh viên Nam, sinh năm ồ ộ ọ GioiTinh=“Nữ” ế ả đượ ả ả ị Nam Đị . Phép kết nối (Join) Định nghĩa 2.1
Giả sử có 2 quan hệ R (A
) là một bộ giá trị của R và u = (b ) là một bộ giá trị
của S. Gọi là bộ ghép nối (hay bộ giá trị
được “xếp cạnh nhau” để tạo
nh bộ giá trị mới ) được định nghĩa như sau:
A ϵ R và B ϵ S là hai thuộc tính có thể so sánh được.
Gọi θ là một trong các phép toán so sánh { , ≠} Định nghĩa 2.1
Phép kết nối hai quan hệ (có thể nói tắt là phép kết) R với S
trên các thuộc tính A và B với phép so sánh θ, với giả thiết là giá trị cột R[A] có thể so
sánh được (qua phép so sánh θ) với mỗi giá trị của cột R[B], được định nghĩa qua: ϵ R , ϵ S và .A θ Hoặc: S = (R x S) : (A θ B).
Phép kết nối 2 quan hệ R và S có thể xem như được thực hiện qua 2 bước:
• Bước 1: Thực hiện tích Descartes hai quan hệ R và S.
• Bước 2: Chọn các bộ giá trị thỏa mãn điều kiện A θ B.
Ngữ nghĩa: Định nghĩa trên cho ta kết quả của phép kết nối hai quan hệ R và S
với phép so sánh θ trên 2 thuộc tính A và B là một quan hệ mới. Đó là kết quả cuối
cùng của phép toán quan hệ (phép Chọn) trên quan hệ kết quả của phép toán tập hợp
Nếu θ là phép toán so sánh bằng
thì ta gọi đó là phép kết nối bằng (Equi
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 kết nối
sẽ loại bỏ đi một trong 2 thuộc tính đó, khi đó phép kết nối được gọi là phép kết nối tự
) và sử dụng ký hiệu cho phép toán là “*” hoặc chỉ ký hiệu I>(không có A θ B) ở phía trên của phép toán.
Trong các trường hợp còn lại, phép toán được gọi chung là phép kết nối theta (θ Ví dụ 2.24. ệ Lê Đình Bách ị ữ Nam Đị ệ ĐH CNTT K16 ĐH CNTT K17 ĐH CNTT K18 ĐH CNTT K19
Kết quả phép kết nối tự nhiên của 2 quan hệ SINH_VIEN và LOP
(SINH_VIEN*LOP) là quan hệ SV_LOP với các bộ giá trị như sau: Lê Đình Bách ĐH CNTT K16 ị ữ Nam Đị ĐH CNTT K18
Mục này trình bày 3 phép toán kết nối mở rộng khác đặc biệt quan trọng, mà
bản chất của chúng vẫn là kết nối. Chúng đã được cài đặt trong một số hệ quản trị
CSDL như MicroSoft Access, SQL
rver, Oracle. Các phép kết nối đó là: Kết nối nội ), Kết nối trái ( ) và Kết nối phải (
. Phép kết nối nội (Inner Join)
Thực chất là phép kết nối bằng đã trình bày. Tuy nhiên, trong trường hợp hai
thuộc tính so sánh có cùng tên thì kết quả phép kết nối vẫn giữ lại 2 tên thuộc tính đó. Ví dụ 2.25. ệ ọ ị ữ ầ ăn Hậ ệ ĐH CNTT K16 ĐH CNTT K17 ĐH CNTT K18 ĐH CNTT K19
Kết quả phép kết nối nội của 2 quan hệ SINH_VIEN và LOP đưa ra danh sách
lớp “ĐH CNTT K16” là quan hệ SV_LOP với các bộ giá trị như sau: ọ ĐH CNTT K16 ị ữ ĐH CNTT K16
. Phép kết nối trái (Left Join)
Giả sử có 2 quan hệ R (A
) là hai bộ giá trị của R và S. Gọi là bộ ghép nối (hay bộ giá trị
được "xếp cạnh nhau") và ký hiệu
Bộ tNULL = (NULL, NULL, ..., NULL) là một bộ đặc biệt của R gồm giá trị của các thuộc tính A
đều là không xác định và uNULL = (NULL, NULL,...,
NULL) là một bộ đặc biệt của S gồm
giá trị của các thuộc tính B đều là không xác định.
A ϵ R và B ϵ S là hai thuộc tính có thể so sánh được. Định nghĩa 2.20
kết nối trái hai quan hệ R với S trên các thuộc tính A và
B với phép so sánh bằng (=), với giả thiết là giá trị cột R[A] có thể so sánh tương
đương được với mỗi giá trị của cột S[B], được định nghĩa là:
ϵR , ϵS và .Aθ .B) hoặc ( ϵR, u = uNULL với t.A
ghĩa là, tất cả các bộ có được nhờ cách đặt bộ giá trị của R và S xếp cạnh
nhau, nếu có giá trị giống nhau trên 2 thuộc tính kết nối; và các bộ có được nhờ cách
đặt bộ của 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. Ví dụ 2.26. ệ ọ ị ữ ần Văn Hậ ệ ĐH CNTT K16 ĐH CNTT K17 ĐH CNTT K18 ĐH CNTT K19
Kết quả phép kết trái –
của 2 quan hệ SINH_VIEN và LOP là quan hệ
SV_LOP với các bộ giá trị như sau: ọ ị ữ ần Văn Hậ
. Phép kết nối phải (Right Join)
Vẫn với các quan hệ R, S; các thuộc tính A, B; và các bộ giá trị v, t, u, tNULL,
uNULL được xác định như trên.
Định nghĩa 2.21 Phép kết nối phải hai quan hệ R với S trên các thuộc tính A
và B với phép so sánh =, với giả thiết là giá trị cột R[A] có thể so sánh tương đương
được với mỗi giá trị của cột S[B], được định nghĩa là: ϵR , ϵ
.Aθ .B) hoặc (t = tNULL, ϵS, với t.B
Nghĩa là, tất cả các bộ có được nhờ cách đặt bộ giá trị của R và S xếp cạnh
nhau nếu chúng có giá trị giống nhau trên 2 thuộc tính kết nối, và các 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. Ví dụ 2.27. ệ ọ ị ữ ần Văn Hậ ệ ĐH CNTT K16 ĐH CNTT K17 ĐH CNTT K18 ĐH CNTT K19
Kết quả phép kết phải –
của 2 quan hệ SINH_VIEN và LOP kết nối
trái là quan hệ SV_LOP với các bộ giá trị như sau: ọ ĐH CNTT K16 ị ữ ĐH CNTT K16 ĐH CNTT K17 ần Văn Hậ ĐH CNTT K18 ĐH CNTT K19 ộ ố ữ ấ ngườ ọ ế ố ế ố ả ằ ộ ừ là “phép kế ối ngoài” ( ục đích củ ế ố ữ ạ ấ ả ả ặ ộ ị ủ ệ ị ủ ộ ế ố ữ ộ ị ủ ả ệ không tìm đượ ộ ị ố ộ ế ố ộ ệ đố ứ ệ ổ ể ấ ể ự ện đượ
ằng các phép toán đạ ố cơ bả ở ầ ế ữ ữ ệ ủ ệ ả ị
CSDL được thương mại hoá đã có nhữ ổ ầ ẽ ổ sung để ể ễ
ấn đó. Các phép toán này làm tăng cườ ứ ạ ủa đạ ố ệ ế ậ
Kiểu truy vấn đầu tiên không thể biểu diễn được trong đại số quan hệ cơ sở là
kiểu đặc tả được bằng các hàm toán học có tính kết tập trên một tập hợp các giá trị của
CSDL. Các ví dụ về các hàm như vậy có thể là: đưa ra điểm trung bình của từng sinh
iên, hoặc cho biết số các bộ của bảng sinh viên. Các hàm hay áp dụng để thu thập các giá trị số là: ổ ộ ị ớ ấ ị ấ Hàm đế ố ộ (COUNT) đượ ử ụng để đế ộ ị ộ
Có một kiểu yêu cầu khác nữa ta hay gặp mà cũng không thể hiện được trong
đại số quan hệ. Đó là kiểu yêu cầu nhóm các bộ trong một quan hệ theo một giá trị của
một số các thuộc tính của chúng và sau đó áp dụng các hàm kết tập trên từng nhóm một cách độc lập.
Ví dụ, nhóm các bộ của quan hệ SINH_VIEN theo MaLop. Như vậy, mỗi nhóm
bao gồm các sinh viên học trong một lớp (về mặt quản lí hành chính). Sau đó ta có thể
đưa ra mỗi giá trị của MaLop cùng với điểm trung bình của các sinh viên ở trong lớp.
Ta có thể định nghĩa một phép toán nhóm như sau:
< các thuộc tính nhóm> rong đó
là một danh sách các thuộc tính của quan hệ được chỉ ra là ký hiệu phép to
là danh sách các cặp ().
Trong các cặp như vậy, là một trong các hàm cho phép như SUM,
AVERAGE, MAX, MIN, COUNT, và là một thuộc tính của quan hệ
được chỉ ra trong R. Quan hệ kết quả có các thuộc tính nhóm cộng với một thuộc tính
cho mỗi phần tử trong danh sách hàm. Ví dụ 2.28. ấy theo
các sinh viên và tuổi trung bình của các sinh viên
theo từng lớp, ta có thể viết: ệ ậ ậ ồm ba phép toán cơ bả ậ ậ chèn được dùng để ộ ộ ị ặ ề ộ ị ộ ệ xóa dùng để ạ ỏ ộ ị ậ ật dùng để ậ ậ ị ủ ộ ố ộ ộ ị đã có. Mỗ ậ ật đượ ụ ộc trên lược đồ ể ạ ầ ẽ nói đế ả năng vi phạ ộ ủ ừ ểu hành độ ể ự ệ ộ ộ ị ạ ử ụ ụ sau để ả Ví dụ 2.2 ệ Lê Đình Bách ị ữ Nam Đị ệ ĐH CNTT K16 ĐH CNTT K17 ĐH CNTT K18 ĐH CNTT K19 ệ ậ Cơ sở ữ ệ ế ế ệ ố Bướ ậ ợ ầ ế ả ủa bướ ộ ậ ợ ầ ủa người dùng đượ ở ạ ững đặ ả như vậ ết và càng đầy đủ ố Bướ ế ế ệ Ở bước này ngườ ế ế ự ọ ộ ữ ệ ệ ủ hình đã chọn để ể ững đặ ả ầ ủ ngườ ế ả ủa bướ ột lược đồ ệm. Lược đồ ệ ộ ả cô đọ ề ầ ữ ệ ủ ững ngườ ồ ả ế ể ữ ệ ế ộ Bướ ế ế ọ ạ ữ ệ Ở bướ ngườ ế ế cài đặ ằ ộ ệ ả ị ầ ế ệ ả ị ộ ữ ệ ẳ ạ
ệ hay mô hình hướng đố tượ ậy, lược đồ ệm đượ ển đổ ừ ữ ệ ậ ữ ệ ế ả ủa bướ ột lược đồ CSDL dướ ạ ộ ữ ệ ủ ệ ả ị Bướ
ế ế ật lí. Các đặc điể ề ặ ậ ủ ải được đặ ả ở giai đoạ ồ ệ ế ế ữ ấu trúc lưu trữ ữ ệ đườ ẫ ậ ể ổ ứ ệ
4.1.2. Dị thường (khuyết tật) dữ liệu ục đích chính củ ế ế ộ ả ảm đượ ề ấ ự dư thừ ữ ệ ậ
ảm được không gian lưu trữ ầ ế ệ cơ sở. Trướ ề ế ế ột lược đồ ố ả ạ ộ ố lược đồ ạ ồ ạ ữ ấn đề ắ ố ụ để lưu trữ ề ủ ột trường Đạ ọ phương án.
Phương án 1: dùng 1 lược đồ
Phương án 2: dùng 2 lược đồ Phương án 1, dễ ậ ấ ề ấn đề, trong đó: • Dư thừ ế ề ớp đượ ặp đi lặ ạ ấ ả ộ ề ớ • ất thườ ậ ậ ệ ả ủa dư thừ ể y đổ ớ ủ ộ ớ ộ ộ nhưng vẫn để ạ ớp cũ trong mộ ộ ậ ộ ớ ể • ị thườ ầ ế ề ộ ớ ới, nhưng lớ
chưa có sinh viên, trong quan hệ ộ ới đó phải để ố ộ
ề sinh viên. Tuy nhiên, điều này là không đượ ộ ậ ị • ị thườ ế ộ ứ ủ ấ ạ ố ủ
ộ ớp nào đó trong quan hệ ữ ế ề ớp này cũng bị ụ ấn đề ẽ đượ ả ế lược đồ ệ ằng hai lược đồ ệ ớ ổ ứ ẽ ả ết đượ ấn đề ủ ổ ứ ứ ấ • ệ ấ ớ ủ ỗ ớp đúng mộ ầ ậ dư thừ • ể ậ ớ ệ
ạ ớp đó chưa có sinh viên nào. ậ ẫ ộ ố ỏ chưa có câu trả ờ ắ ắn, đó là • ở trên có nhược điể ặ ế nào đế ẳ định đượ ế ở ều ưu điểm hơn? • ồ ại trong hai lược đồ ệ ớ ữ ấn đề đã xả ớ ổ ứ ứ ấ • ế nào để có đượ ộ ế ố ột lược đồ ệ chưa ố ấ ả ẽ đượ ả ời trong chương 4. . Quy ước về ký hiệu • ữ ở đầ ả ữ ụ ể ị ộ ộ tính đơn. • ữ ở ố ả ữ ụ ể ị ậ ộ ể ậ ỉ ộ ộ • R được dùng để ể ị ột lược đồ ệ đặ ệ ằng lược đồ ủ ẳ ạ ộ ệ ộ ể đượ ế • ử ụ ộ ệ ể ệ ệ ủa lược đồ • ệ ố ế ỗi đượ ể ị ợ ậ ….A đượ ùng để ể ễ ậ ộ ….A ế ắ ủ ∪ Trườ ợp XA hay AX cũng đượ ế ∪ ớ ậ ộ ộ ộc tính đơn. ụ ộ Một số khái niệm hụ thuộc ọ ột lược đồ ệ ậ ủ X→Y, đọ ậ ộ ậ ộ ặ ậ ộc tính X xác đị ậ ộ ớ ấ ỳ ọ ệ r nào đó là giá trị ệ ể ệ ủ ể ồ ạ ộ ố ở ầ ấ ả ộ ập X nhưng lạ ở ộ ề ầ ộ ậ Định nghĩa Cho lược đồ ệ xác đị ậ ộ ộ ứ ạng: f: X→Y; vớ ⊆ ếu f: X→Y là mộ ậ ộ ậ ộ ặ ậ ộc tính X xác đị ậ ộ ụ lược đồ ệ MaSV→HoTenSV →NamSinh MaSV→QueQuan, GioiTinh
b. Thể hiện thỏa hụ thuộc hàm ớ ột lược đồ ể ề ể ệ
ệ) r khác nhau. Đó là mộ ậ ồ ộ ạ ủ ữ ệ ạ ộ ời điểm nào đó. Định nghĩa ộ ệ ả X→Y nế ớ ỗ ộ μ và ν trong r
ếu μ[X]= ν[X] thì μ[Y]= ν[Y]. Lưu ý ống như mọ
ệnh “if….then”, khẳng đị ể đượ ả
ởi μ[X] khác với ν[X] hoặ ởi μ[Y] giố ới ν[Y]. ế ả X→Y thì r vi phạ đó. ộ ậ ế ệ ỏ ỏ ấ ả hụ uộc
định nghĩa trên lược đồ Định nghĩa ế ớ ọ ệ ủa lược đồ ả X→Y thì
X→Y được định nghĩa trên lược đồ
ả ử ta khai báo X→Y được định nghĩa trên lược đồ ọ ệ ủ lược đồ ẽ
ả X→Y. Tuy nhiên, nếu X→Y không được định nghĩa trên lược đồ ộ ệ r nào đó vẫ ể ẫ ả X→Y hay có thể ạm X→Y. ộ ậ
nghĩa là F được định nghĩa trên lược đồ ấ ả
trong F được định nghĩa trên R. hụ uộc hệ quả Định nghĩa ậ cho lược đồ ệ X→Y là mộ X→Y là hệ ả ủ ết là F ╞ X→Y, nế ỗ ệ ủ ả trong F thì cũng ả X→Y. ụ Cho lượ đồ ệ R(U, F), trong đó U={ A→B B→C ỏi đặ A→C ả ử ộ ệ
ả A→B và B→C, nhưng có hai bộ μ và ν trong r ố ở ần A nhưng không giố ở ầ ế ả đặ ỏ ệu μ và ν có giố ở ộ ế ạ A→B. Nế ở ố ở B nhưng không giố ở ầ ạm B→C. Do vậ ộ ả ả A→C. Ở ấ ế
ứa A→B và B→C thì A→C là hệ ả ủa F. Nghĩa là {A→B, B→C╞A→C} e. Bao đóng củ ậ Định nghĩa
, bao đóng (closure), là tậ ệ ả ủa F, nghĩa là ={X→Y | F╞X→Y} ụ
ọi R=ABC và F={A→B, B→C} thế thì bao đóng F+ c ứ ấ ả ạng X→Y sao cho: ặ ứ
ụ, ABC→AB, AB→BC, hay A→C, ặ ứa B nhưng không chứ ứ ụ BC→B, B→C hay B→Ø, ặc X→Y là mộ C→C, C→Ø hay Ø→Ø . Lưu ý hụ uộc hàm ẫn Định nghĩa ộ đượ ẫ ừ ậ cho trướ ờ ộ ậ ậ ẫ ệ ┝ ế ồ ạ ộ ỗ ,…, f ỗ ộ trong F hay đượ ẫ ừ ữ j=1, 2, …, i trướ đó ờ ậ ẫ ệ ậ đượ ẫ ừ ờ ậ ẫn. Điề ố ộ ậ ậ ẫ đúng đắ ợ ệ) và đầy đủ ậ ậ ẫn là đúng đắ ế ỉ ế , nghĩa là: ế ┝ thì F╞ f. Như vậ ế ậ ẫn để ẫ ộ f nào đó từ ậ
F cho trước, thì f cũng là ệ ả ủ ậ ậ ẫn là đầy đủ ế ỉ ế F*, nghĩa ếu F╞ f thì ┝ . Như vậ ếu f cũng là ệ ả ủ ể ậ ẫ để ẫ ừ ậ . Hệ tiên đề Armstrong Định nghĩa ọ ậ ấ ả đố ới lược đồ ệ X→Y là mộ ớ ⊆ U, X→Y là ễ ừ ế ệ đề ỏ
ủa F thì cũng thỏa X→Y. Sau đây là tậ ắ ủ
ệ tiên đề được Armstrong đề ất vào năm 1974, đượ ọ ệ tiên đề . Hệ tiên đề Armstrong ọi R(U) là lược đồ ệ ớ ậ ộ ả ử ⊆ ệ tiên đề ồ ắ ả ạ ế ⊆ X thì X→Y ắc này đưa ra nhữ ầm thườ ữ ế trái đượ ứ ế ả ữ
ầm thường đều đúng trong mọ ệ ế ệ ử ụ ắ ỉ ụ ộ ả ắc tăng trưở ế ⊆ U, X→thì ZX→X đó ZX=Z Lưu ý ậ ộ ạ ế ắ ủ ộ điề ọng khác cũng cầ ả ớ X→Y đã cho có thể ộ ặ ể đượ ẫ ừ ằ
ử ụng các tiên đề đang mô tả ở đây. ắ ắ ầ
ếu X→Y và Y→Z thì X→Z. ụ Cho AB→C, C→A, chứ BC→ABC (1) C→A ( ả ế (2) BC→AB ụ
ật tăng trưởng tăng (1) lên B) (3) AB→C ả ế (4) AB→ABC (tăng (3)AB) (5) BC→ABC ắ ầ
. Tính đúng đắn của hệ tiên đề Armstrong ổ đề
ệ tiên đề Armstrong là đúng. Nghĩa là ế →Y đượ ẫ ừ ờ ệ tiên đề →Y đúng trong mọ ệ ủa F đúng. Nghĩa là ế ộ ệ ỏa F thì r cũng thỏ →Y. ứ A1, tiên đề ề ả ạ rõ ràng là đúng đắ ể ộ ệ ớ ộ ố ở ần trong X nhưng lạ ố ở ộ ậ con nào đó củ A2, tính tăng trưở ớ → ế ợ ớ ắ ầ → [Y], nhưng vì → ề ắc đượ ừ ệ tiên đề ổ đề ế ế ố ắ
ởi vì ta đã chứng minh tính đúng đắ ủ và A3 nên ta đượ ề ử ụ ứ ổ đề ắ ợ
ếu X→Y và X→Z thì X→YZ . ắ ả ắ ầ
ếu X→Y và WY→Z thì XW→Z. ắ ếu X→Y và Z ⊆ hì X→Z. ứ A4, ta đã có X→ ắc tăng trưở ớ → Ta cũng có X→ ắc tăng trưở ớ → ờ ấ ắ ầ ừ → → → ử ụng tính tăng trưở →Y thành WX→WY. ởi vì ta đã có WY→ ắ ầ → ừ ả ạ → ờ ắ ầu ta cóX→Z. ộ ệ ả ọ ủ ắ ợ ế ,…, A ộ → ,…, A đúng nế ỉ ế → đúng vớ ọ ậ ỉ ầ ử ụ ế ả ỉ ộ ộ ấ ẽ ả ậ ấn đề
ết hơn khi phân tích về “phủ ự ểu” củ
ệ tiên đề Armstrong là đầy đủ, có nghĩa là nế ậ đúng trên quan hệ : X→Y là mộ đượ ẫ ừ
ờ ệ tiên đề Armstrong thì f đúng trên r Trướ ứng minh tính đầy đủ
ần định nghĩa bao đóng (closure) củ ộ ậ ộ ứ ớ ộ ậ
. Bao đóng của một tập thuộc tính với tập Định nghĩ ả ử ậ ậ ộ ộ ậ ủ ⊆ ao đóng củ ứ ớ ệ ậ ộ sao cho X→A có thể ẫ ừ ờ ệ tiên đề ={A/X→A ϵ Điể ố ủa bao đó ủ ậ ộ ẳng đị ộ X→Y có thể ừ ằ
ệ tiên đề Arsmtrong đượ ổ đề đây khẳng định điề ổ đề X→Y suy ra đượ ừ ộ ậ F đã cho bằ ử ụ ệ đề ế ỉ ế
ở đây bao đóng của X đượ ấ ứ ớ ứ Đặ ,…, A ậ ộ ,…, A ả ử Theo định nghĩa củ , X→A , đượ ừ ệ tiên đề ớ ọ ằ ắ ợp ta có X→Y đúng. Ngượ ạ ả ử X→Y đượ
ừ ệ tiên đề này. Đố ớ ỗi i, X→Ai đúng theo qui tắ ậ
. Tính đầy đủ của hệ tiên đề Armstrong
ệ tiên đề Armstrong là đầy đủ, có nghĩa là nế ậ đúng trên quan hệ r và f: X→Y là mộ đượ ẫ ừ ờ ệ tiên ề
đ Armstrong thì f đúng trên r ẽ ứ ế ậ
đã cho, và không thể suy ra X→Y đúng ằ ệ tiên đề ả ộ ệ trong đó tấ ả ủa F đề
đúng nhưng X→Y không đúng; nghĩa là không khẳng đị h logic X→Y. Đị
ệ tiên đề Arsmtrong là đúng đắn và đầy đủ ứ
Tính đúng đắn đã đượ ứ ổ đề ậ ỉ ả
ứng minh tính đầy đủ (xem như bài tậ ể ả ệ ả ố Đị ộ ố ệ ả • • ={A | X→A ϵ X→A ϵ • ={X→Y ╞X→Y} = {X→Y ┝X→Y} Cho trướ ậ F và f: X→ ộ ới đượ ậ ện. Bài toán đặ ả
ủa F, nghĩa là f có thuộc bao đó ủ ủ =F* (đị ổ đề Cho nên để ả ế ỉ ầ đố ới F, sau đó 4.2.4. Bao đóng a. Định nghĩa bao đóng Định nghĩa 4.9 lược đồ ệ R=(U, F). Bao đóng củ ậ ộ ⊆ ệ ậ ấ ợ ả ộ ể ễ ừ ận xét: Bao đóng củ ậ ộ ự ấ ậ ấ ả ộ
ể “vớ ới” (hay suy ra) ừ ậ ộc tính X ban đầ
ệc tính toán bao đóng là cơ sở ệ ậ ể ộ nào đó có tồ ạ ệ
. Thuật toán tìm bao đóng Tính các bao đ ng ậ
ật toán tìm bao đóng củ ậ ộ ậ ộ
ần tính bao đóng trên lược đồ ệ ậ ộ Phương pháp ể ần lượ ừ α→β ế α⊆ ế ạ ế ả ứ β ∪β ặ ại cho đế ụ ể ỗ ậ ộ ,…. bằ ắ ợ ủ ớ ậ ộ ộ Y→Z thuộ ộ ở …. ữ ạ ố ải đạt đế ộ ị ố ở ỗ ỉ đượ … Ta không cầ ả ếp khi đã phát hiệ ể ứ ớ ị ố Định nghĩa 4. ậ ộ ⊂ ập pth F. Bao đóng củ đố ớ ậ ậ ∈U| (X→A) ∈ ật toán tìm bao đ ng tậ ộ Lược đồ ệ ậ ậ ộ ⊂ ∈U | X→A ∈ ậ Đặ ế ồ ạ Y→Z) ∈ ∈ ⊆ ∪ ngượ ạ ụ
Cho F={AB→C, D→EG, C→A, BE→C, BC→D, CG→BD,
ACD→B, CE→AG} và X=BD. Hãy tính X Để ụ ởi đầu ta đặ ố ế ả ặ ỉ ộ D→EG, vì thế ố ớ ế ả Đố ớ ế trái đượ ứ và tìm đượ D→EG và BE→C. Vì vậ ế ụ ớ ế trái đượ ứ
ới C→A, BC→D, CG→BD, và CE→AG. Vì vậ ậ ợ ồ ấ ả ọ ộc tính đã cho. Do đó không có gì ngạ =…. ậ
4.2.5. Tính tương đương của các tập ầ ả ậ ề ự tương đương củ ậ ộ ậ ợ E đượ ủ ở ộ ậ ặ ủ ế ỗ ộ đề ở
,điều đó có nghĩa là mỗ ể ễn đượ ừ ậ
E và F là tương đương ế
. Như vậ tương đương có nghĩa là mỗ ể ễn đượ ừ ỗ ể ễn đượ ừ ể xác đị ủ ằ đố ớ đố ớ ỗ
ộc hàm X→Y trong E và sau đó kiể ộ
trong Y hay không (nghĩa là X ⊃ ếu điều đó xả ớ ỗ
ủ E. Ta xác định xem E và F có tương đương hay không bằ ể ủ ủ Định nghĩa ọ ậ
F và G là tương đương, ký ệ ≡ G , nế tương đương ủ ủ ổ đề F và G tương đương nế ỉ ế ậ ủ ậ ủ F ≡ G ứ a. Điề ện đủ ả ết F tương đương G Lưu ý ớ ọ ậ ả ứ ọ ộ ấ ỳ ộ ộ Lưu ý Hơn nữa ta cũng có G ả
ết F tương đương với G). Nên cũng thuộ ả ứ Tương tự ứ b. Điề ệ ầ ả ế ả
ứng minh F tương đương G hay F Lưu ý ớ ọ ậ Lưu ý ớ ậ ấ ỳ ế ứ ả ế Lưu ý Hơn nữ Lưu ý ứ Tương tự ứ ậ ụ ế ả ủ ổ đề ễ ể tính tương đương ủ G theo các bướ ớ ỗ Y→Z thuộ ểm tra xem Y→Z có thuộ ằ ật toán 4.1 để ứ ớ ồ ể ứ ạ ả ế ộ
Y→Z nào đó thuộc F nhưng không th ộ ắ ắ ế ỗ ủa F đề ộ thì ta có đượ ế ả Để ứ ỗ trong G cũng thuộ
ử ụng phương pháp tương ự ếu đượ ế ả ụ ổ đề 4.4 ta có F ≡ G. 4.2.6. Phủ cực tiểu Đố ớ ộ ậ đã cho, ta có thể
ộ ập tương đương có mộ ố đặ ữ ột đặc tính đơn giả ọ ế ả ủ ữ đượ ữ ộc tính độ ấ
Tập phụ thuộc hàm tương đương ổ đề
ỗ ập pth F tương đương vớ
ộ ập pth G trong đó các vế ả ộ ộ ứ ọ ậ X→A sao cho vớ ộ X→Y thuộ ộc Y. Như ậ X→A đượ ừ X→Y bằ ắc phân rã. Do đó G Nhưng ta cũng có F ế ….A thì X→Y đượ ừ X→A ,…, X→A ờ ắ ợ ậ F và G tương đương. ầ ộ ế
ế ế lược đồ CSDL đưa ra nhiề ạ ế hơn là ỉ ầ ế ả ỉ ộ ộ
. Tập hụ uộc hàm cực tiểu Định nghĩa 4.12 ộ ậ ự ể ế ế ả ủ ỗ ỉ ộ ộ ồ ạ ấ ỳ ộ X→A nào trong F mà tậ {X→A} tương đương vớ ồ ạ ấ ỳ ộ
X→A nào trong F sao cho có mộ ậ ự ự ủ
{X→A}){Z→A} tương đương vớ ề ự ảo đả nào trong F là dư thừ ể ể X→A có dư thừ ằ ứ ớ {X→A} rồ ế ả ớ ứ ớ Điề ệ ảo đả ộ ở ế trái là dư thừ ể ể
dư thừ ở ế trái như sau: ộc tính B trong X đố ớ X→A là dư thừ ế ỉ ế ộ
{B})+ khi bao đóng đượ ấ ứ ớ ở ỗ ế ả ỉ ộ ộ ắ ắ ộ ở ế ải là dư thừ ụ ậ
F = {AB→C; C→DE} không phả ậ ự ể C→DE có ế ả ồ ộ ạm điề ệ ậ
F = {AB→C; C→D; AB→D} thỏa điề ện 1 nhưng vi phạm điề ệ ể ỏ AB→D. ể ậ ố ể như là mộ ậ ợ ở ạ ẩ ự dư thừa. Điề ện 1 đả ả ỗ ở ạ ắ ớ ộ ộ ở ế ải. Điề ệ đả ả ự dư thừ ặ ộc tính dư thừ ở ế ủ ặ ộ ể đượ ễ ừ ở ộ ủ ố ể ủ ộ ậ ộ ậ ố ể tương đương với F. Thườ ấ ề ủ ố ể ộ ậ ể tìm đượ ấ ộ ủ ố ể ộ ậ ấ ỳ ậ sau đây: ậ ủ ố ể 1. Đặ ế ỗi pth X→{A
ằng n pth X→A , X→A , … , X→A ớ ỗi pth X→A trong G, vớ ỗ ộ ộ ầ ử ủ ế
– (X→A) ∪ ((X − {B})→A) là tương đương vớ ếX→A bằ – {B})→A ở ớ ỗ X→A còn lạ
ếu (G − {X→A}) là tương đương vớ ạ ỏ X→A ra khỏ ụ ủ ố ể ậ
{A→B, A→C, B→A, B→C, C→A, C→B} ụ ậ ể tìm đượ ủ ố ể
Do A→B và B→C nên A→C là thừa. Do C→B và B→A nên C→A là thừ ỏ ữ
ừa đi, ta có {A→B, B→A, B→C, C→B} là mộ ủ ố ể
Do A→B và B→C nên A→C là thừa. Do có B→C và C→A nên B→A là ừ
Do có C→A và A→B nên C→B là thừ ỏ ữ ừa đi, ta nhận đượ ộ ủ ố
ểu khác là{A→B, B→C, C→A} . Phủ cực tiểu Cho trướ ậ ộ ậ G đượ ọ ủ ự ể ủ ế ộ ậ ự ể
và G tương đương F (G phủ Đị ỗ ậ F đề ấ ộ ủ ự ể ứ ờ ổ đề ể ả ử ế ả F đề ộ ộ ẽ ế ặp đi lặ ạ ạm điề ệ dư thừa] và điề ệ ộc tính dư thừ ở ế ửa đổ ậ ứ ở ỗ ửa đổ ộ ặ ộ ộ ộ ể ế ụ ố ẽ thu đượ ộ ậ ạm các điề ệ ặ Đố ới điề ệ ỗ X→Y trong tậ ệ ạ ế
X→Y} tương đương với F thì xoá X→Y ra ỏ ứ ự ể ạ ỏ ậ ẳ ạ
ớ ập F={A→B, A→C, B→A, C→A, B→C}
ể ạ ỏ ả B→A lẫn A→C hoặ
ể ạ ỏ B→C nhưng không thể ạ ỏ ả ba đượ Đố ới điề ệ ỗ …A →B ậ ỗ ộ ở ế ộ ứ ự nào đó. Nế …A ….A →B}) …A
…A →B} tương đương vớ ỏ ế ủ ….A →B. ứ ự ộ ị ạ ỏ ể ảnh hưởng đế ế ả ụ ậ
{AB→C, A→B, B→A}. Ta có thể ạ ỏ ặ
ỏ AB→C nhưng không thể ạ ả ứ ạ ỏ ấ ả ạ ủa (3) trướ ồi đế ấ ả ạ ủ ẽ có đượ ủ ự ểu nhưng thự ện ngượ ạ ắ ụ ậ ủ ụ ế ậ ủ ổ đề để ế
ải, ta thu được: {AB→C, D→E, CG→B, C→A, D→G, CG→D, BC→D,
BE→C, CE→A, ACD→B, CE→G} CE→A là dư thừ ởi vì nó đượ ừ C→A. CG→B cũng dư thừ
CG→D,C→A và suy ra CG→B. nào dư thừ ữ
ể thay ACD→B bằng CD→B, vì có thể suy ra CD→B từ ACD→B và C→A. Bây giờ ọ đượ ữ ế ả ộ ủ ự ể
ủa F={AB→C, C→A, BC→D, CD→B, D→E,
D→G, BE→C, CG→D, CE→G}. ộ ủ ự ỉểu khác, đượ ự ừ ằ ạ ỏ
CE→A,CG→D, và ACD→B là {AB→C, C→A, BC→D, D→E, D→G, BE→C, CG→B, CE→G}. ủ ự ể ố lượ
4.2.7. Khoá của lược đồ quan hệ
. Định nghĩa khóa: dùng hụ thuộc hàm Định nghĩa 4.13 ột lược đồ ệ ớ ộ …A và cho trướ ậ ọ ộ ậ ủ …A ộ ủ ế X→A …A ộ . Nghĩa là có sự ụ ộ ủ ấ ả ộ ậ
ộc tính X được cho trướ ặc đượ ừ ữ đã cho, và ậ ậ ự ự ủ Y→A …A ộ ụ
ọi R=ABC và F={A→B, B→C}Ta thấ ỉ ộ ấ ởi vì A→ABC thuộ ấ ỳ ậ ộ ứ mà X→ABC đúng. . Thuật toán tìm khoá ậ ể ố ểu: Cho lược đồ ệ ộ ố ể ủ ệ ụ ột lược đồ ộ ậ
ột khóa cho lược đồ đó. ậ Bướ ậ ộ ủ Bướ ộ ủ + Tính bao đóng củ ế ạ ỏ ỏ ứ ế ặ ại bướ ầ Bướ ế ậ ụ
cho U={A, B, C, D, E} và F={AB→C, AC→B, BC→DE} ộ ủa lược đồ ệ r xác đị Bướ ứ Bướ + Tính bao đóng củ nghĩa là tính (BCDE) ấ ế ả tính bao đóng không bằ Bướ + Tính bao đóng củ nghĩa là tính (ACDE) ấ ế ả tính bao đóng bằ ạ ậ K ban đầ Bướ + Tính bao đóng củ nghĩa là tính (ADE) ấ ế ả bao đóng không bằ ỏ ậ Bướ + Tính bao đóng củ nghĩa là tính (ACE) ấ ế ả bao đóng bằ ỏ ậ Bướ + Tính bao đóng củ nghĩa là tính (AC) ấ ế ả bao đóng bằ ỏ ậ ế ả ậ ộ ả ế Lược đồ ệ →P =Ø, i=1, 2, …, p}, ộ ủ ậ Bướ Đặ ớ →P ϵ ϵ ớ →P ϵ ϵ Bướ ế → ế ậ gượ ạ ế ục bướ Bướ ớ ỗ ự ệ ế ≠ U thì K:= K Bướ ế ậ ụ Cho lược đồ ớ ={A→B, B→C,
B→DE, A→E, A→D}. Hãy tìm mộ ố ể ủa lược đồ Bướ ậ ộ ấ ệ ậ ộ ấ ệ ả Bướ ử ộ ủ ụ Cho lược đồ ệ đó:
={AB→DE, E→AD, D→C}. Hãy tìm mộ ố ể ủ lược đồ Bướ Bướ ử ế ục Bướ Bướ ử ừ ộ ỏ ử ạ ỏ ỏ ={BEDAC}=U→loại đượ ử ạ ỏ ỏ U→không thể ạ đượ ử ạ ỏ ỏ Đến đây ta đã thử ế Bướ ố ểu tìm đượ Thuật tất cả của lược đồ hệ gọi: • ậ • ậ • ộ ỉ ấ ệ • ộ ỉ ấ ệ ở ế ả • ậ • ậ • ậ ộ ồ ồ ộ ỉ ấ ệ ở ế ấ ệ ở ế ả ủ ậ ộ ấ ệ ở ả ế ế ả ủ ậ Nghĩa ấ ừ để ộ ỉ ấ ệ ở ộ ấ ệ ở ả dụ tập ậ ộc tính đích (TĐ) ồ ộ ỉ ấ ệ ở ấ ệ ở ậ TĐ=R dụ TĐ ậ ộ ứ ộ ấ ệ ở ả ậ dụ Vậy Thuật toán Bước 1. tập thuộc nguồn tập thuộc Bước 2. Nếu kết thuật kết luận Ngược lại, nếu bước Bước 3. tất cả tập của Bước 4. bằng vớ mọi nếu đó Bước 5. bằng loại bỏ tối thiểu Với mọi thuộc Nếu chứa loại bỏ khỏi tập đó, tập lại tập cần dụ thấy chứa chứa vậy cần phải loại bỏ Vậy tập cần dụ với F={AB→C, C→A}. tất cả của lược đồ Bước Bước tiếp bước Bước tập của tập Bước lấy từng thuộc thuộc tập của tập hợp với thuộc Vậy tập Bước chứa chứa loại bỏ khỏi tập Vậy tập của lược đồ hệ
4.2.8. Phép tách trên lược đồ quan hệ . Định nghĩa
Định nghĩa 4.14 Cho lược đồ ệ ậ l ợc ư đồ ρ={R )} đượ ọ ủ ế ếu ρ là phép ủ ệu: ρ(R ) hay ρ=(R
. Phép tách bảo toàn thông tin (không mất mát thông tin) ộ ố ẳng đị ề ạ ế ối đượ ổ đề 4.5.Trướ ết ta đưa ộ ố ệ ế ,…, R ộ ộ ạ được định nghĩa …* Nghĩa ố ự ế ủ lược đồ ệ ậy, điề ệ ố ấ ứ ớ ậ ể ễ ả ớ ọ ả ổ đề ọ ột lược đồ ệ …, ộ ủ ộ ệ ủ ọ ế ế ậ ể ấ Cho lược đồ ệ thành các lược đồ , …, } đượ ọ ất mát thông tin đố ớ ộ ậ ế ớ ọ ệ r xác đị ỏ * … r , trong đó r Lược đồ ệ ậ Phép tách ρ(R ế
ận phép tách ρ không mấ Các bướ ủ ậ Bướ ế ậ ộ ả ớ ột (tương ứ ớ ộ (tương ứ ớ ệ), trong đó cộ ứ ứ ớ ộ ứ ứ ớ lược đồ ạ ột j, ta điề ệ ế ộ ∈ ượ ại ta điề ệ Bướ ụ ả ả ử ta có pth X→Y∈ ị ằ ộ ằ
ị ủa chúng trên Y. Ngượ ạ ằ ằ ệ ế ụ ụ ả ể ả ệ ặ ại các pth đã áp dụ ớ ụng đượ ữ Bướ ả ế ả ế ấ ệ ộ ứ ị ,…, a ế
ận phép tách ρ không mấ ụ ược đồ ệ ậ F={A→B, B→C, A→D, D→C}. Kiể ấ ủa phép tách ρ(Q) = (Q ớ Bướ ự ả Bướ A→B, làm bằ ị ằ ả B→C, làm bằ ị ằ ả pth A→D ằ ị ằ ả Bướ ứ ệ ế ận phép tách ρ(Q) = (Q ấ ậ ể ả ế ộ ầ ả đặ ố ấ ụ ạ ộ ệ ban đầ ừ ế ủ ể suy ra đượ ậ ủ ừ ế ủ lược đồ ệ ậ …, định nghĩa sau. Định nghĩa ế ủ ộ ậ ộ ệ ậ → ộ → ấ ế ộ ỉ ầ ộ Định nghĩa 4 ả ậ ế ợ ủ ấ ả ế ủ
lược đồ con tương đương vớ ọ ới i = 1, 2, …, k Đặ … Theo định nghĩa thì: ả G ≡ F
ắ ại G ≡ F (G tương đương nghĩa ầ ả ập F đó ể đượ ộ ẹ lược đồ ệ ế ế ra đượ ể ễ ằ …R ể ấ ị ệ ủ ể ể ễ ộ ệ ả ả ế ố ấ ứ ớ Khi đó ỗ ậ ậ ộ ẽ ầ ả ự ệ ộ ố để ể ạ ộ ị ạ ẩn hoá lược đồ ệ ẩn hoá (do Codd đề ị ấ ột lược đồ ệ ự ệ ộ ạ ểm tra để ậ ả ộ ạ ẩn nào đó hay . Quá trình này đượ ự
ện theo phương pháp trên xuố ằ ệ đánh giá ỗ ệ ớ ẩ ủ ạ ẩ ệ ế ầ ể xem như là việ ế ế
ệ ằng phân tích. Lúc đầ đề ị ạ ẩ ọ ạ ẩ ạ ẩ ạ ẩ ộ đị nghĩa mạnh hơn ạ ẩ ọ ạ ẩ đề ị ộn hơn. Tấ ả ạ ẩ ự ữ ộ ủ ộ ệ. Sau đó, dạ ẩ ạ ẩn 5 (5NF) được đề ị ự đa trị ố ẩ ữ ệ
ể được xem như một quá trính phân tích các lược đồ ệ cho trướ ự ủa chúng để đạt đế ấ ố • ự ể ự dư thừ • ự ể ậ ậ ất thườ Các lược đồ ệ ả ể ạ ẩ ẽ đượ thành các lược đồ ệ ỏ hơn thoả ể ấ ốn. Như vậ ủ ụ ẩ ấ ững ngườ ế ế • ột cơ cấ ức để ược đồ ệ ự ủ ữ ộ ủ • ộ ạ ể ạ ẩ ể ự ện trên các lược đồ ệ ẽ ệ ể đượ ẩn hoá đế ộ ứ ầ ế ạ ẩ ủ ộ ệ liên quan đến điề ệ ạ ẩ ấ ả ạ
ẩn khi được xem xét độ ậ ớ ự ệ đả ả ộ ế ế ố ệ ệ ừng lược đồ ệ ở ạ ẩ là chưa đủ ốt hơn là q ẩ ả ẳng đị ộ ấ ỗ ợ ấ ả các lược đồ ệ ả ồ ấ • ấ ố ấ ặ ố ụ thêm), nó đả ả ấn đề ạ ộ ả ấ
ệ đố ới các lược đồ ệ đượ ạ ấ ố ấ ấ ọ ải đạt đượ ằ ọ ấ ả thì cũng rấ ốn nhưng đôi ể • ấ ả ự đả ả ừ ẽ đượ ể ệ ệ ẽ ận đượ
Trước khi định nghĩa các dạ ẩ ắ ạ ộ ố định nghĩa • ộ ủ ột lược đồ ệ ộ ậ ộ ủ ⊆ ấ ộ ộ ạ ệ ợ ủ • ộ ộ ấ ế ỏ đi bấ ỳ ộ ỏ
ữa. Điều đó có nghĩa là khóa là mộ ố ể • ế ột lược đồ ệ
ều hơn một khóa thì các khóa đó đượ ọ ự ể • ộ ữ ự ể ẽ đượ ỉ đị ại đượ ọ ụ • ột lược đồ ệ ả ộ • ộ ộ ủ ột lược đồ ệ R đượ ọ ộ ộ ủ ế ộ ầ ủ ủ ộ ộc tính đượ ọ ộ ế ả ộ ộ • ộc tính A đượ ọ ố ế ả ậ ị ặ ộ ị ứ ợ ộ ổ ề ặ ộ ị ể ộ ị ức, nhưng nế ể ấ ự ế ị ầ ẫ ị ố
4.4.1. Một số định nghĩa Định nghĩa 4.17 ẩn hoá lược đồ ệ ến đổi các lược đồ ệ ạ ợp để ị thườ ề ữ ệ Lược đồ đượ ẩn hoá là lược đồ đó miề ị ủ ỗ ộ ỉ ứ ị ố ỏ đượ ữa), do đó mỗ ị ệ cũng là các giá trị ố Lược đồ ứ ề ị ố đượ ọi là lược đồ ẩ
Định nghĩa 4.18 Cho lược đồ ệ ậ ộ ộ ∈U đượ ọ ộ ế ầ ủ ộ
nào đó của R. Ngượ ại, A đượ ọ ộ ệ ậ ộ ụ Cho lược đồ ệ ớ B, C, D, E} F={AB→CE,
B→D, BC→A}. Các khóa củ ộ Định nghĩa 4. ụ
ộc hàm đầy đủ Cho lược đồ ệ ,…, ậ ậ ộ ủ đầ đủ ế vào X nhưng không ấ ỳ ộ ậ ự ự ủ Nghĩa là muố đầy đủ ả ỏ ả 2 điề ệ →Y X’
ếu (X’ X và X’ X) thì X’→Y ụ Cho lược đồ ệ
ới U={ A, B, C, D, E} F={AB→CE, B→D, BC→A}. Thuộ đầy đủ ộ đầy đủ ộ ậ Định nghĩa 4. ụ ộ ắ ầ Cho lược đồ ệ ,…, ậ ậ ộ ủ ộ ộ . A đượ ọ ắ ầ ế ồ ạ ộ ậ ủ cho X→ , Y→ , nhưng Y→ Nghĩa là để ắ ầ ải tìm đượ ậ ỏa các điề ệ ộ ộ ộ X→ Y→ Y→ ụ Cho lược đồ ệ
ới U={A, B, C, D, E} F={A→BCE, B→DC}. Thuộ ắ ầ 4.4.2. Các dạng chuẩn . Chuẩn 1NF Định nghĩa 4. ộ ệ đượ ọ ở ạ ẩ ế ề ị ủ ộ ộ ỉ ứ ị
ử (đơn, không phân chia đượ ị ủ ỗ ộ ộ ộ ả ộ ị đơn lấ ừ ề ị ủ ộc tính đó Như vậ ệ ộc tính đa trị ặ ộ ặ ệ ệ ỉ ị ủ ộ ử Để đạt đế ạ ẩn 1 đố ớ ệ ở g phương pháp sau: • ạ ỏ ộ ạ ạ ẩn 1 và đặ ộ ả ớ ủ ệ ban đầ • ủ ả ộ ổ ợ ủ ủ ệ đầ ộc tính đa trị ặ ộ ậ ủ ặ ộ ạ ậ ộ
ệ ới khóa chính là khóa chính ban đầ ột trườ ợp đặ ệ quan đế ộ ể ộ ự ấ ộ ứ ợ ủ ộ năm). ể đượ ộ đơn ộ ố ế như không ặ ế ầ ất đế ừ ầ ẻ năm. ế qui ướ ữ ộ ề ị ngày (Datetime) đề ộ ố Lược đồ đạ ẩ ế ọi lược đồ ệ con đều đạ ẩ Tạo hàm: Sao lưu CSDL:
Câu lệnh GRANT sử dụng trong trường hợp này có cú pháp như sau: TO danh_sách_người_dùng
Để cấp phát quyền tạo bảng và khung nhìn cho người dùng có tên là
, ta sử dụng câu lệnh như sau:
Với câu lệnh GRANT, ta có thể cho phép người sử dụng tạo các đối tượng . Đối tượng
do người dùng nào tạo ra sẽ do người đó sở hữu
và do đó người này có quyền cho người dùng khác sử dụng đối tượng và cũng có thể
xóa bỏ (DROP) đối tượng do mình tạo ra.
Khác với trường hợp sử dụng câu lệnh GRANT để cấp phát quyền trên đối tượng
, câu lệnh GRANT trong trường hợp này không thể sử dụng tuỳ chọn
OPTION, tức là người dùng không thể chuyển tiếp được các quyền
thực thi các câu lệnh đã được cấp phát.
Thu hồi lại quyền hạn trên các đối tượng của người sử dụng quyền hạn quyền hạn đối tượng người dùng gười dùng
Mệnh đề CASCADE CONSTRAINTS được sử dụng khi muốn hủy tất cả các
RBTV về phụ thuộc tồn tại đã tạo trên đối tượng nhờ quyền hạn REFERENCES. Ví dụ 5.
Thu hồi lại các quyền truy vấn dữ liệu (SELECT) vào cập nhật (UPDATE) đã
trao cho người sử dụng taikhoan_sv trên bảng SINH_VIEN:
Câu lệnh REVOKE được sử dụng để thu hồi quyền đã được cấp phát cho người
dùng. Tương ứng với câu lệnh GRANT, câu lệnh REVOKE được sử dụng trong hai trường hợp:
Thu hồi quyền đã cấp phát cho người dùng trên các đối tượng
Thu hồi quyền thực thi các câu lệnh trên
đã cấp phát cho người dùng.
Thu hồi quyền trên đối tượng CSDL
EGES]| các_quyền_cần_thu_hồi [(danh_sách_cột)] tên_bảng tên_bảng [(danh_sách_cột)] |ON tên_thủ_tục FROM danh_sách_người_dùng
Câu lệnh REVOKE có thể sử dụng để thu hồi một số quyền đã cấp ph
người dùng hoặc là thu hồi tất cả các quyền (ALL PRIVILEGES).
Thu hồi quyền thực thi lệnh INSERT trên bảng đối với người Giả sử người dùng
đã được cấp phát quyền xem dữ liệu trên các cột
của bảng SINH VIEN, câu lệnh dưới đây sẽ thu hồi quyền đã cấp phát trên cột
(chỉ cho phép xem dữ liệu trên cột
Khi ta sử dụng câu lệnh REVOKE để thu hồi quyền trên một đối tượng cơ sở
dữ liêu từ một người dùng náo đó, chỉ những quyền mà ta đã cấp phát trước đó mới
được thu hồi, những quyền mà người dùng này được cho phép bởi những người dùng
khác vẫn còn có hiệu lực. Nói cách khác, nếu hai người dùng khác nhau cấp phát cùng
các quyền trên cùng một đối tượng
cho một người dùng khác, sau đó người thu
nhất thu hồi lại quyền đã cấp phát thì những quyền mà người dùng thứ hai cấp phát vẫn có hiệu lực. Giả sử trong ta có 3 người dùng là
. A và B đều có quyền sử
dụng và cấp phát quyền trên bảng R. A thực hiện lệnh sau để cấp phát quyền xem dữ liệu trên bảng R cho C: ấ ề ổ ữ ệ ả ằ ệ
Như vậy, C có quyền xem và bổ sung dữ liệu trên bảng R. Bây giờ, nếu B thực hiện lệnh:
Người dùng C sẽ không còn quyền bổ sung dữ liệu trên bảng R nhưng vẫn có
thể xem được dữ liệu của bảng này (quyền này do A cấp cho C và vẫn còn hiệu lực).
Nếu ta đã cấp phát quyền cho người dùng nào đó bằng câu lệnh GRANT với
tuỳ chọn WITH GRANT OPTION thì khi thu hồi quyền bằng câu lệnh REVOKE phải
chỉ định tuỳ chọn CASCADE. Trong trường hợp này, các quyền được chuyển tiếp cho
những người dùng khác cũng đồng thời được thu hồi.
Ta cấp phát cho người dùng A trên bảng R với câu lệnh GRANT như sau:
Sau đó người dùng A lại cấp phát cho người dùng B quyền xem dữ liệu trên R với câu lệnh:
Nếu muốn thu hồi quyền đã cấp phát cho người dùng A, ta sử dụng câu lệnh REVOKE như sau:
Câu lệnh trên sẽ đồng thời thu hồi quyền mà A đã cấp cho B và như vậy cả A
và B đều không thể xem được dữ liệu trên bảng R.
Trong trường hợp cần thu hồi các quyền đã được chuyển tiếp và khả năng
chuyển tiếp các quyền đối với những người đã được cấp phát quyền với tuỳ chọn
WITH GRANT OPTION, trong câu lệnh REVOKE ta chỉ định mệnh đề GRANT
Trong ví dụ trên, nếu ta thay câu lệnh: bởi câu lệnh:
Thì B sẽ không còn quyền xem dữ liệu trên bảng R đồng thời A không thể
chuyển tiếp quyền mà ta đã cấp phát cho những người dùng khác (tuy nhiên A vẫn còn
quyền xem dữ liệu trên bảng R).
hồi quyền thực thi các câu lệ
Việc thu hồi quyền thực thi các câu lệnh trên
VIEW,...) được thực hiện đơn giản với câu lệnh
REVOKE ALL | các_câu_lệnh_cần_thu_hồi FROM danh_sách_người_dùng
Để không cho phép người dùng
thực hiện lệnh CREATE TABLE , ta sử dụng câu lệnh: TÓM TẮT CUỐI CHƯƠNG 5
✓ Vấn đề an toàn và bảo toàn dữ liệu không bảo đảm khi quá trình biến đổi dữ liệu
không được tôn trọng, phá vỡ tính nhất quán của dữ liệu bởi người sử dụng.
✓ Những ràng buộc về miền xác định liên quan đến giá trị của các thuộc tính có thể
dẫn đến các giá trị rỗng hoặc không xác định.
✓ Ràng buộc tính tham chiếu toàn vẹn sẽ bị bị xâm phạm khi giá trị xuất hiện tập các
thuộc tính cho trước của một quan hệ đồng thời cũng xuất hiện tập các thuộc tính củamột quan hệ khác.
✓ Những ràng buộc miền xác định và những ràng buộc tham chiếu toàn vẹn có thể
kiểm tra khá dễ dàng. Việc sử dụng nhiều những ràng buộc phức tạp có thể đưa tới
giá trị đáng kể. Có 2 cách để thể biểu diễn các ràng buộc tổng quát.
✓ Dữ liệu được lưu trữ trong CSDL cần được bảo vệ khỏi các truy cập trái phép, sự
phá hoại hoặc các thay đổi và sự ngẫu nhiên của mâu thuẫn.
✓ Việc chống lại sự mất mát ngẫu nhiên của dữ liệu dễ hơn là sự chống lại những
truy cập trái phép vào CSDL. Không thể tuyệt đối bảo vệ CSDL khỏi các truy nhập
trái phép, nhưng có thể ngăn chặn hầu hết.
✓ Người sử dụng có thể có rất nhiều quyền truy nhập vào các phần khác nhau của
CSDL. Các quyền này là phương tiện để hệ thống CSDL có thể chống lại những
truy cập không cho phép và nguy hiểm.
✓ Người sử dụng có quyền có thể chuyển giao quyền truy nhập tới những người sử
dụng khác. Tuy nhiên, cũng cần phải cẩn trọng trong việc chuyển những quyền này
như thế nào trong số những người sử dụng nếu như có thể chắc chắn sự cho
này có thể được thu hồi lại tại một thời điểm nào đó trong tương lai ÂU HỎI ÔN TẬP CHƯƠNG 5 ả ả ệ ệ ống cơ sở ữ ệ ể ẹ ữ ệu như thế ụ ạ ế ộ ẹ ữ ệ ục đích củ ệ ể ộ ẹ ệ ểm tra RBTV đượ ự ệ ở ữ ời điể ụ ế ố ảnh hưởng đế ấ ụ ề ả ầ ảnh hưở ữ ệ ứ ữ ệ ề ứ ả ậ ấ ụ ọ ử ụ
ữ ấn tin định nghĩa các quyề ậ BÀI TẬP CHƯƠNG 5
Cho CSDL quản lý thi tuyển lớp chuyên của một trường như sau ừ “ ỗ ộ ố ấ ỗi SoBD xác đị ọ
ớp chuyên (LopChuyen) mà thí sinh đó đăng ký thi.” ừ “ ỗ ộ ọ ấ ị ữ văn), TOAN (Toán họ ế ậ ọ ậ ị ử), DIA (đị ế ế
Trung),… Các môn chuyên có hệ ố ệ ố ầ GhiChu là để ả
ề môn thi đó (GhiChu có thể ằ ả ắ ề ị ủ ệ ộ ề ề ị ủ ệ MON_THI”. ừ “ ỗ ứ ớ ộ ột điể ấ ỗ đó hai môn chung (môn bắ ộ ọ ữ Văn, môn thứ ự ớ
chuyên văn thi môn thứ ba là môn văn nhưng ở trình độ ị
là VANCH), tương tự như vậy đố ớ ự ớ ị MON là TOANCH).” ề ị ủ ệ ộ ề ề ị ệ MONTHI. Điể ố ự ấ ẻ đế ắ ị điể ở môn thi đó. Thí sinh đượ ể ế ỏa đồ ời hai điề ện sau đây: Điề ện 1: Điể ủ ả ớn hơn hoặ ằng 5 và điể ủ ả ớn hơn hoặ ằ Điề ệ ổng điể ủ ả ả ớ ặ ằ ứ điể ển, trong đó mức điể ển đượ ấ ừ ụ ứcđiể ể ủ
ớp chuyên toán là 30 (đã nhân hệ ố 2 đố ớ ứcđiể ể
ủ ớp chuyên văn là 24,… ể ễ ộ ẹn đã đượ ả trong cơ sở ữ ệ ạ ộ ẹ ề ỉ ể ộ trườ ợ ớ ỗ ộ ẹ ầ ộ ả ầ ảnh hưở ế ầ ả ề năm dự ủ ức điể ể ủ ừ ớ
ừng năm thì lược đồ cơ sở ữ ệ ấ ầ đượ ổ sung như thế ụ năm 2016 lớ ấy 31 điểm, năm 2017 ớ ấy 30 điểm,…
ựa vào lược đồ cơ sở ữ ệu đã bổ ở ử ụ ữ ậ ể ạ ả ấ ề ự ệ ả ấ ề ột HoTen đố ớ ả ạ ả ấ ề ả QUA đố ớ ả ồ ền DELETE đố ớ ả
Cho lược đồ cơ sở ữ ệ ả ỳ ố ệ ủ ộ ở ục Đào tạo như sau: ừ “ ỗ ộ ố ấ ỗ ố đị ọ ểu ngày tháng), nơi sinh (QueQuan), năm dự ố ệ ể ố ỗ ộ ề ột đơn vị ức năng dạ ậc THPT nào đ ản lý (các đơn vị ọ ả ế ỗ ự thi đề ả ừ ổ ở ” ừ “ ỗi trườ ột mã trườ ấ ỗi mã trườ xác đị tên trườ ” ừ “ ỗ ộ ấ ỗ xác đị ” ừ “ ỗ ứ ớ ỗ ẽ ộ ế ả điể ất, điể ừ 0 đế ộ ố ẻ đế ỳ ố ệ đúng 6 môn, nế
ắng thi môn nào thì điểm thi môn đó tính là 0 và ở ộ ị ‘Vắng thi’ (nhằ ệ ớ ộ ị ấ
điểm 0, nghĩa là mỗi thí sinh đều có đúng 6 d ở ệ Điể ố ệp (ĐXTN) = Tổ ố điể ổ ố ”
ột thí sinh được xem là đậ ố ệ ế ị điể ĐXTN từ ở ế ạ ố ệ ố ệp đượ ế ạ ỏ ẩ ạ ỏi: ĐXTN từ 8.0 điể ở bài thi nào dướ
ại khá: ĐXTN từ 6.5 điể ở dướ ại trung bình: các tr ờ ư ợ ạ ể ễ ộ ặ ẽ ộ ẹn đã đượ ả lược đồ ỏ ộ ẹ ề ớ ỗ ộ ẹ ầ ộ ả ầ ảnh hưở ạ ả ấ ề ự ệ ả ấ ề ộ đố ớ ả ạ ả ấ ề ả QUA đố ớ ả ồ ề đố ớ ả ạ ả ấ ề ả ồ ấ ả ề ừ ấ ảng TRUONG đố ớ ả Cho lược đồ ồ ệ ả ệ ự ện đề ọ ủ ả ệ thông tin như sau: ừ “ ỗ ả ộ ả ấ ỗ ả viên xác đị ọ ộ ” ừ “ ỗ ộ ộ ộ ấ ỗ ộ đị ộ ).” ừ “Mỗi đề ột mã đề ấ ỗi mã đề định tên đề ự ệ ), năm thự ệ ỗ đề ự
ện đúng trong một năm và có mộ ủ ệm đề ỗ ả ột năm chỉ đượ ủ ệ ối đa2 đề ủ ệm đề ộ ộ
n nào thì xem như đề tài đượ ủ ộ môn đó.” ừ “Mỗ ả ể đượ ự ệ ều đề ộ năm và mỗi đề ể ề ả ự ệ ” Hãy xác đị ừ ệ
b, Hãy xác định các RBTV có trong cơ sở ữ ệ ỏ ề ớ ỗ ộ ẹ ầ ộ ả ầ ảnh hưở ạ ả ấ ề ảng GIANG_VIEN đố ớ ả ản giang_vien đượ ề ả ạ ả ấ ề ả ạ ả ấ ề ả ồ ền DELETE đố ớ ả ủ ả HƯƠNG TỐI ƯU HÓA TRUY V N ối ưu hóa câu hỏ ự
ọn phương pháp sao cho khi thự ệ ỏ ấ ệ ả ấ ể đánh giá đượ ả năng xử ấ ừ ề ế lược khác nhau, đặ ệ ữ ấ ứ ạ ột phương pháp khi thự ệ ấ ứ ối ưu về ờ ấ ối ưu về ông gian lưu trữ ẫ
ảo đảm được tính độ ậ ẹ ữ ệ ộ ủa chương gồ ấn đề ➢ ệ ề ối ưu hóa ➢ ến lượ ối ưu hoá ➢ ể ức tương đương
➢ hương pháp tối ưu hóa các biể ứ ệ ổ ề ối ưu hoá
Các ngôn ngữ bậc cao nói chung và ngôn ngữ con dữ liệu nói riêng khi thực
hiện trong máy đều mất rất nhiều thời gian. Do đó, trước khi thực hiện các câu lệnh
thuộc các ngôn ngữ đó cần thiết phải biến đổi hợp lý về dạng tương đương, tức là dạng
o cùng một kết quả, để giảm thời gian tính toán. Việc làm đó được gọi là “tối ưu hóa”
. Việc tối ưu hóa không nhất thiết phải được tối ưu trên
mọi khả năng có thể có của các cách cài đặt các câu hỏi. Có thể thỏa hiệp giữa thuật
giải phức tạp, hoặc/và tốn kém không gian lưu trữ với việc tiết kiệm thời gian xử lý.
CSDL có thể từ hàng nghìn đến hàng tỉ bản ghi. Những này, nếu mỗi thao tác trên một bản ghi
tiết kiệm được θ thời gian thì một câu truy vấn trên 1 bảng đã có
thể tiết kiệm được 10 *θ thời gian, ở đây là số bản ghi của bảng. hãy thử tưởng
tượng, với bảng lưu trữ các bản ghi có độ dài cố định về nhân khẩu, trong vòng 1 giây
máy có thể xử lý cực nhanh 1000 bản ghi, thì để xử lý 4.850.000 nhân khẩu của bảng,
máy phải tốn 4.850 giây! Quả là một thời gian khó có thể chấp nhận cho việc chờ đợi
nhận kết quả của một câu lệnh truy vấn
Nói chung, trong việc tối ưu hóa xử lý thông tin, người ta ưu tiên việc tối ưu
hóa về thời gian hơn so với việc tối ưu hóa lưu trữ dữ liệu. Trong một số trường hợp,
người ta còn phải “phi chuẩn hóa” cả dạng chuẩn (
) để đạt tốc độ xử lý nhanh hơn.
Bộ nhớ của máy tính giờ đây không còn là vấn đề làm mọi người phải bận tâm
khi xây dựng các hệ CSDL lớn
ung lượng một đĩa cứng đã đạt tới hàng
Tuy nhiên vẫn có thể tồn tại nguy cơ thiếu không gian tính toán cho máy nếu không
lưu tâm đến việc tối ưu hóa các câu hỏi trước khi đưa vào máy và yêu cầu máy thi
hành. Một nguyên nhân dẫn tới điều này là việc thực hiện các phép kết nối và phép
của các quan hệ. Ta đã biết, tích và các phép kết (θ
) đòi hỏi nhiều không gian lưu trữ và thời gian xử ) là hai quan hệ địn ĩa trên 2 tập thuộc tính {
. Nếu R có N bộ giá trị và S có N bộ giá trị thì tích
sẽ cho kết quả là một bảng mới gồm m+n thuộc tính với N bộ
giá trị. Chỉ cần mỗi quan hệ có 10 thuộc tính chứa số lượng bộ giá trị khoảng 1000 bộ,
đã tạo ra bảng trung gian có số thuộc tính là 20 và số lượng bộ giá trị
là 1.000.000. Nếu mỗi trường chỉ rộng 5 bytes thì quan hệ trung gian này đã chiếm
mất 1/10 Giga bytes! Điều này dẫn đến, thời gian truy nhập CSDL và truy xuất đĩa từ
để tạo ra ngần ấy bản ghi cũng là những thách thức. Sự bùng nổ số lượng và “mở
rộng” kích thước (chiều dài) bản ghi này đặt
vào việc phải nghiên cứu để tối ưu câu
hỏi trước khi đưa vào máy tính toán. Thông thườ ử ộ ấ ồm 3 bướ Bướ
• Bộ quét: Truy vấn được biểu diễn bằng một biểu thức. Bộ quét sẽ duyệt truy
vấn để biết truy vấn được viết bằng ngôn ngữ nào.
• Bộ kiểm tra: Kiểm tra cú pháp của truy vấn xem có hợp lệ hay không.
• Xác nhận tính hợp lệ: Kiểm tra các quan hệ, thuộc tính sử dụng trong truy
vấn đã được khai báo hay chưa? Bướ
• Bộ tối ưu: Tìm ra phương pháp thực hiện tối ưu cho truy vấn. Sau bước này
sẽ cho ra một biểu thức đại số quan hệ với chi phí thực hiện nhỏ nhất. Bướ
• Bộ tạo mã sẽ tạo ra chương trình bằng ngôn ngữ trong để thực hiện truy vấn.
• Thực thi chương trình để lấy về kết quả. ến lượ ối ưu
a hãy xét một ví dụ đơn giản sau đây
Cho hai quan hệ R(A, B) với bản ghi và S (C,D) với bản ghi. Tích
của R và S là một quan hệ Q (A, bản ghi. có câu hỏi “Lấy
giá trị của thuộc tính A sao cho B=C và D=50”. Câu hỏi được viết lại dưới dạng ngôn
ngữ đại số quan hệ như sau: Nếu đưa phép chọn D=5 sẽ được:
à sau đó chuyển phép chọn B=C của tích
thành phép “kết nối bằng” thu được:
Rõ ràng, phép tính cuối cùng sẽ tốn kém thời gian xử lý hơn rất nhiều.
Giải thích Chỉ chọn trên quan hệ S những bộ có giá trị D=50 thì số bộ lấy ra sẽ
ít hơn toàn bộ số bộ của cả quan hệ trên S. Số bộ được chọn ra xong từ S mới đem kết
nối với quan hệ R. Phép kết nối này chỉ chọn ra bộ nào thuộc R mà có giá trị tại B là
bằng bộ có giá trị tại C thuộc S mới được lấy ra để kết lại với nhau. Điều đó hoàn toàn nhanh hơn là lấy tích
của R x S rồi mới chọn trong kết quả những bộ có giá
trị tại B bằng giá trị tại C.
Việc biến đổi câu hỏi t
câu hỏi tương đương như ví dụ nêu trên là một
minh họa cho việc giảm bớt thời gian trả lời câu hỏi bằng cách giảm bớt số lần cần
truy nhập tới bộ nhớ thứ cấp dựa trên nguyên tắc thực hiện phép chọn càng sớm càng
tốt. Trình tự thực hiện các phép tính sẽ đóng một vai trò quan trọng quá trình tổ chức câu hỏi.
J. D. Ullman [5] trong các kết quả nghiên cứu công bố lần đầu tiên của mình đã
trình bày 6 chiến lược tổng quan cho việc tối ưu hóa câu hỏi như sau:
.2.1. Thực hiện phép chọn /phép chiếu càng sớm càng tốt ến đổ ỏi để đưa phép chọ ự ện trướ ằ ả ớ ỡ ủ ế ả ậ ả ả ệ ậ ộ ớ ứ ấ cũng như lưu trữ ủ ộ ớ ẻ ỏ đi.
.2.2. Nhóm các phép chọn và phép chiếu của cùng quan hệ thành một phép toán ộ ột ngôi như phép chọ ặ ế ế ả ủ ụ ộ ộ ủ ộ ệ độ ậ ể nhóm các phép đó lạ
.2.3. Tổ hợp các phép chọn xác định với phép tích Đề các thành phép kết nối Như đã biế ế ối, đặ ệ ế ố ằ ể đượ ự ệ ốn kém hơn nhiề ớ ệ ế ế ả ủ RxS là đố ố ủ ọ ọ ớ ữ ộ ủ ế ố
.2.4. Tìm các biểu thức con chung trong một biểu thức ế ế ả ủ ộ ể ứ ứ ể ứ ấ ệ ều hơn ộ ầ ộ ệ ớ ể được đọ ừ ộ ớ ứ ấ ớ ờ
gian thì nên tính toán trướ ể ức đó chỉ ộ ầ ế ể ứ ớ ộ ế ối thì trong trườ ợ ổ ể thay đổi đượ ằng cách “đẩy” ọ
Điều đáng quan tâm là, các biể ứ ầ ố ấ ệ ớn thườ đượ ể ễ ủa ngườ ử ụ ởi vì, để ự ệ ỏi đó cầ ả ế ằ ộ ể ứ ố đị
.2.5. Xử lí các quan hệ trước khi thực hiện lệnh ấn đề ọ ầ ử lý trướ ệ ắ ếp trướ ộ ị ứ ự ậ ắ ế ứ ế ậ ả ỉ ụ ản ghi. Khi đó việ ự ệ ớ ệ ẽ nhanh hơn rấ ề
.2.6. Đánh giá các chi phí trước khi thực hiện các phép tính ỗ ầ ọ ự ự ệ ể ứ ặ ọ ột trong hai đố ố ủ ộ ầ ự
ện các phép tính đó (thườ ố ờ ặc/và dung lượ ộ ớ ầ ế ới kích thướ ủ
ệ ừ đó xác định đượ ổ ể ả ả ự ệ ỏ ể ức tương đương .3.1. Khái niệm Trướ ế ạ ệ
ề định nghĩa quan hệ đã đượ ử ụ các chương 2 và 3 để ấ ự tương đương củ
ệ ựa theo định nghĩa. Vớ
các định nghĩa khác nhau ấ ọc cũng khác nhau. Nế ệ ệ ộ ậ ợ ộ ộ ớ
ố định, khi đó hai quan hệ là tương đương khi và chỉ ộ ậ ộ ớ ệ ệ ậ ạ ừ ậ ộ ậ
ị, thì khi đó hai quan hệ ằ ế ộ ậ ạ. Định nghĩa thứ ấ
ể ến đổi sang định nghĩa thứ ằng cách thay đổ ộ ộ
ảng và, ngượ ại đổ ừ định nghĩa thứ định nghĩa thứ ấ ằ ố đị ứ ự ộ
tính. Sau đây sẽ ử ụng định nghĩa thứ hai, nghĩa là, quan hệ ộ ậ ạ ừ ậ ộ ậ ị ộ ữ ấ ệ ữu luôn luôn đòi hỏ ả ế ủ ộ ộ ệ. Do đó, tên các thuộ ộ ệ ả ộ ế ộ ể
ức và cũng thể ệ ở ế ả ủ ể ứ ể ứ ữ đạ ố ệ ạ ứ ế ệ ệ ằ được xác đị như là mộ ạ ừ ộ ủ ệ ) trong đó r ệ lược đồ ế khi đánh giá biể ứ ể ứ đượ ọ tương đương (Equivalent) ế ắ ế ể ễ ộ ạ nghĩa là, nế ế
ệ cho tên các lược đồ tương ứ ở ể ứ ẽ ộ ế ả
.3.2. Các biểu thức tương đương
Trước hết, xem xét lại khái niệm về định nghĩa quan hệ đã được sử dụng trong
các chương 2 và 3 để thấy sự tương đương của các quan hệ dựa theo định nghĩa. Với
các định nghĩa khác nhau chúng cho các tính chất toán học cũng khác nhau. Nếu quan
niệm quan hệ là một tập hợp các bộ (k bộ) với k cố định, khi đó hai quan hệ là tương
đương khi và chỉ khi chúng có cùng một tập các bộ. Với quan niệm quan hệ là tập các
ánh xạ từ tập tên thuộc tính vào tập giá trị, thì khi đó hai quan hệ là bằng nhau nếu
chúng có cùng một tập ánh xạ. Định nghĩa thứ nhất có thể biến đổi sang định nghĩa thứ
hai bằng cách thay đổi tên thuộc tính thành tên các cột trong bảng và, ngược lại đổi từ
định nghĩa thứ hai sang định nghĩa thứ nhất bằng cách cố định thứ tự cho các thuộc
tính. Sau đây sẽ sử dụng định nghĩa thứ hai, nghĩa là, quan hệ là một tập ánh xạ từ tập
thuộc tính vào tập các giá trị. Một ngôn ngữ truy vấn hiện hữu luôn luôn đòi hỏi phải
biết tên của các cột trong một quan hệ. Do đó, tên các thuộc tính trong một quan hệ
phải là một biến trong một biểu thức và cũng thể hiện ở kết quả của biểu thức.
+ Biểu thức trong ngôn ngữ đại số quan hệ có các hạng thức là biến quan hệ
quan hệ hằng (constant relation), được xác định
như là một ánh xạ từ các k bộ của các quan hệ (r
) trong đó r là quan hệ trên
lược đồ r và thay thế r
khi đánh giá biểu thức. Hai biểu thức E được gọi
tương đương (Equivalent), viết tắt là E
, nếu chúng biểu diễn cùng một ánh xạ, nghĩa là, nếu
thay thế cùng các quan hệ cho tên các lược đồ tương ứng ở hai biểu thức E
, thì chúng sẽ cho ra cùng một kết quả.
Với định nghĩa tương đương này
có một phép chuyển dịch đại số thông thường sau đây:
. Các quy tắc liên quan tới phép kết và tích
Qui tắc 1. Quy tắc giao hoán của phép kết nối và tích Nếu E
là hai biểu thức quan hệ và F là điều kiện trên các thuộc tính của ≡
// Tính giao hoán của kết ≡
// Tính giao hoán của kết bằng ≡ án của tích
chứng minh quy tắc giao hoán của phép kết nối. Giả sử E có các thuộc tính có các thuộc tính B
và các thuộc tính A, B không nhất thiết phải là phân biệt. Gọi r
là hai quan hệ tương ứng của E Giá trị của E tập các ánh xạ từ A
vào tập giá trị sao cho các ánh xạ thỏa mãn điều kiện:
và điều kiện F là đúng khi thay [C] cho mỗi thuộc tính C tron Nếu biểu diễn E cũng như trên,
dễ dàng nhận thấy hai phép kết trên
cho chính xác cùng một tập kết quả. Do vậy hai biểu thức là tương đương.
Nếu quan niệm quan hệ là tập các bộ (có thứ tự thuộc tính cố định) thì kết, kết tự nhiên v
không thể giao hoán được vì thứ tự các
thuộc tính trong quan hệ kết quả bị thay đổi.
Qui tắc 2 Quy tắc kết hợp của phép kết nối và tích Nếu E
là các biểu thức quan hệ: F là điều kiện thì:
Việc kiểm tra tính tương đương của các quy tắc trên khá dễ dàng.
. Các quy tắc liên quan tới phép chọn và phép chiếu
Dãy các phép chiếu có thể tổ hợp lại thành một phép chiếu, biểu diễn theo trường hợp sau:
Qui tắc 3. Dãy các phép chiếu ( ) )
Ở đây, các thuộc tính A
phải nằm trong tập các thuộc tính B
Ngữ nghĩa của việc biến đổi tương đương này là: Nếu thực hiện một phép chiếu biểu
thức quan hệ E trên tập các thuộc tính B, rồi sau đó thực hiện tiếp phép chiếu trên tập
con các thuộc tính A B của quan hệ vừa tìm được, thì kết quả của dãy phép chiếu
này hoàn toàn tương đương với một phép chiếu biểu thức quan hệ E trên tập thuộc tí
Tương tự, dãy các phép chọn có thể tổ hợp thành một phép chọn để kiểm tra tất
cả các điều kiện cùng một lúc và được biểu diễn như sau:
Qui tắc 4. Dãy các phép chọn ( (( ( )) ) ) ( )
Ngữ nghĩa: Việc lần lượt thực hiện các phép chọn trên quan hệ kết quả của
một phép chọn trước đó đối với biểu thức quan hệ E là tương đương với việc chọn trên
E các bộ giá trị thỏa mãn đồng thời tất cả các điều kiện chọn f
Qui tắc 5. Giao hoán phép chọn và phép chiếu ( ( )) ( ( )) )
Một cách tổng quát hơn, nếu điều kiện chọn liên quan tới các thuộc tính B
mà không nằm trong tập thuộc tính A ( ) ( ) (( ( ) ( )) )
tắc 6. Giao hoán phép chọn và tích
Nếu tất cả các thuộc tính của F là thuộc tính của E ( ) ( ) ( ( ))
Từ đó, có thể suy ra, nếu F có dạng f = f
trong đó f chỉ liên quan tới các thuộc tính của E
chỉ liên quan tới các thuộc tính của E , thì có thể sử dụng các luật để có: ( ) ( ) ( ( )) ( ( )) )
Hơn nữa nếu f chỉ liên quan tới các thuộc tính của E , nhưng f liên quan tới
các thuộc tính của cả E ( ) ( ) (( ( )) ) ( )
Qui tắc 7. Giao hoán phép chọn và một phép hợp Nếu có biểu thức E = E
; có thể giả thiết, các thuộc tính của E
cùng tên như của E hoặc ít nhất mỗi thuộc tính của E là phù hợp với một thuộc tính
duy nhất của E và một thuộc tính duy nhất của E . Khi đó: ( ) ( ) ( ( )) ) ( ( ))
Nếu tên các thuộc tính của E và hoặc E khác với tên thuộc tính của E thì trong
ở vế phải của công thức trên cần thay đổi để sử dụng tên cho phù hợp.
Qui tắc 8. Giao hoán phép chọn và một phép hiệu tập hợp ( − ) ( ) ( ( )) − ( ( )) )
Như đã nêu trong luật 7, nếu tên các thuộc tính của E
cần thay thế các thuộc tính trong ở vế phải biểu thức tương đương tương ứng với E Chú ý, phép chọn
thể là không cần thiết. Trong nhiều trường hợp, việc thực
hiện phép chọn (E (f)) trước sẽ có hiệu quả hơn là tính toán trực tiếp với E vì kích cỡ
quan hệ lúc đó sẽ bé đi rất nhiều.
Các quy tắc nêu trên nói chung là đẩy phép chọn xuống trước phép kết nối
phép kết nối thường thực hiện lâu như phép tích Đề Các. Quy tắc đẩy phép chọn
xuống trước phép kết nối suy ra từ quy tắc 4
. Quy tắc đẩy phép chiếu xuống trước phép tích
hoặc phép hợp cũng tương tự như quy tắc Lưu
phương pháp tổng quát cho việc đẩy phép chiếu xuống trước phép hiệu các tập hợp.
Qui tắc 9. Giao hoán một phép chiếu với một phép tích Gọi E
là hai biểu thức quan hệ, A
là tập các thuộc tính trong đó là các thuộc tính của
, các thuộc tính còn lại C thuộc E . Khi đó: ( )
Qui tắc 10. Giao hoán một phép chiếu với một phép hợp ( )
Như đã nêu trong luật , nếu tên các thuộc tính của E /hoặc E là khác với các thuộc tính trong E thì cần thay A
bên vế phải bằng các tên phù hợp.
. Ví dụ về thuật toán tối ưu hoá biểu thức quan hệ
Tới đây có thể áp dụng các quy tắc nêu trong mục 6. để có thể tối ư
biểu thức quan hệ. Biểu thức “tối ưu” kết quả phải tuân theo các nguyên tắc đã nêu ở
phần 6.1 mặc dù các nguyên tắc đó không bảo đảm để tối ưu cho mọi trường hợp ươ đươ ư •
đẩy phép chọn và phép chiếu xuống mức càng sâu càng tốt tro
cây biểu diễn biểu thức quan hệ nhằm tạo nên một dãy các phép chọn cũng
ư phép chiếu để từ đó có thể tổ chức thành một phép chọn theo sau một phép chiếu.
• Nhóm các phép chọn và phép chiếu lại trong một nhóm để thực hiện trước ư phép hợp, tích , hiệu tập hợp
Có một số trường hợp đặc biệt xảy ra khi một phép tính hai ngôi có các hạng
thức chứa phép chọn và/hoặc phép chiếu được áp dụng đối với lá của cây biểu diễn
biểu thức. Khi đó cần xem xét cẩn thận tác động của phép tính hai ngôi vì một số
ường hợp cần phải liên kết phép chọn hoặc phép chiếu với phép hai ngôi đó Kết quả đầu ra (
) của thuật toán là một chương trình bao gồm các bước ư
Áp dụng của một phép chọn hoặc một phép chiếu đơn giản.
ụng của một phép chọn và một phép chiếu hoặc Áp dụng của một tích
, phép hợp hoặc phép hiệu tập hợp cho hai
hạng thức mà trước đó các phép chọn hoặc các phép chiếu đã được áp dụng cho một hoặc cả hai hạng thức. Ví dụ 6.1
CSDL gồm các quan hệ sau đâ , TenKhoa, ĐC, SĐT)
Câu hỏi Cho danh sách những đạt điểm
Biểu thức quan hệ được viết như
Hình cây của biểu thức trên được biểu diễn bằng hình 6.1. Xin lư
phép toán nằm ở phiá dưới là các phép toán được thược hiện trước các phép toán ở trên của cây. ấ ộ ọ ọ ững điể
Hình 6.1. Biểu diễn cây của biểu thức hỏi
Thay thế các giá trị và S vào biểu thức hỏi có được cây biểu diễn của biểu thức quan hệ như
ước thứ nhất của tối ưu là tách phép chọn thành hai phép chọn với điều kiện: Bây giờ
có 3 phép chọn. Cần “đẩy” chúng xuống mức thấp hơn chừng nào còn có thể được.
Phép chọn với điều kiện
được đẩy xuống dưới phép chiếu và hai
phép chọn kia bằng cách áp dụng các quy tắc (hoặc luật) số 4 và qui tắc 5. Phép chọn
đầu được áp dụng cho tích thuộc tính
trong phép chọn chỉ có ở quan hệ nên có thể thay thế: bằng biểu thức:
và tiếp tục đẩy xuống nữa, cuối cùng ta được biểu thức:
ư vậy, đã đẩy được phép chọn theo DiemSo này xuống sâu nhất có thể.
Bây giờ tiếp tục đẩy phép chọn với điều kiện SINH_VIEN.MaSV=
.MaSV xuống mức thấp nhất nếu có thể . Không thể đẩy phép chọn này xuống dưới tích
vì nó liên quan tới một thuộc tính của quan hệ SINH_VIEN
và một thuộc tính thuộc quan hệ . Do vậy phép chọn:
MaDeTai có thể đẩy xuống để áp dụng cho tích
là tên một thuộc tính của phép chọn:
ước tiếp the : Tổ hợp hai phép chiếu thành một phép chiếu là [
nhờ qui tắc số 3. Kết quả được cho như
đó áp dụng quy tắc mở rộng số 5 thay thế: ) và chiếu [ nhờ dãy phép toán:
rồi chiếu để lấy tên đề tài:
Áp dụng quy tắc số 9 để thay thế biểu thức đầu tiên, biểu thức số (1), của phép chiếu nhờ phép chiếu:
Để áp dụng cho quan hệ áp dụng cho
hạng thức phía trái của tích
Hình 6.2 Cây với tổ hợp phép chọn và phép chiếu
Phần còn lại là phép chiếu để lấy 4 thuộc tính:
Các thuộc tính không phù hợp sẽ bị loại bỏ. Biểu diễn cây cuối cùng của biểu thức như
Nhóm các phép tính bằng đường mũi tên. Mỗi tích được tổ hợp với
phép chọn để tạo thành một phép kết nối bằng nhau (
) rất có hiệu quả. Thứ tự
thực hiện của cây biểu thức trong các hình 6.3, 6.2 là từ dưới lên: Nhóm các phép toán
nằm ở phía dưới được thực hiện trước các phép toán ở phía
Hình 6.3 Cây kết quả biểu diễn việc phân nhóm các biểu thức. ậ ụ ộ ọ ề ệ ển đổ ộ ỏ ằ ữ Đạ ố
ệ ề ạng tương đương tốt hơn (hay tối ưu hơn). Phương pháp trên tậ ủ ế ế ọ ớ ục đích làm sao “đẩ ” đượ ọ ế ố ứ ấ ấ ứ ớ ố ế ể ế ế ợ ọ ớ ế ự nhiên để ả ế ả ố ủ ấ
đề ối ưu hóa chính là việ ả ểu lưu trữ ừ đó làm tăng nhanh ốc độ ử ỏ
Tuy nhiên, để thực hiện được các quá trình tối ưu hóa như trên, cần lưu ý tới
thứ tự thực hiện các phép toán để có thể “đẩy” các phép toán xuống các mức hợp lý
cần thiết. Bảng dưới đây cho phép
cách thực hiện các phép biến đổitương đương đối với các phép Hợp ), Trừ ( ), Chiếu ( họn (
). Kết tự nhiên tương đương với dãy phép tích , phép chọn và phép chiếu: ( ) ( ) ( ( = ))
kết tương đương với dãy phép tích và phép chọn với điều kiện ( ) ( ) ( ) ( )
) tương đương với phần bù ( ) của hội hai phần bù của 2 quan hệ: (( ( ) ( )) ) ) (
). Phép bù của một quan hệ tương đương với tích của các phép
chiếu trên từng thuộc tính của quan hệ trừ đi các bộ giá trị đã có trong thể hiện của quan hệ: ( ) ( ) ) − (
). Thương của 2 quan hệ tương đương với hiệu của các quan hệ trung gian ( ) ( ) = − (( ( − ( ))
Áp dụng các cách biến đổi tương đương trên, kết hợp với các quy tắc “đẩy”
kết hợp như đã trình bày trong mục 6.2,
đưa ra thuật toán tổng quát để tối ưu hóa
các câu hỏi trong ngôn ngữ đại số quan hệ.
Sơ đồ cú pháp câu hỏi bằng ngôn ngữ đại số quan hệ. Sơ đồ cú pháp tối ưu. Thuật toán
Bước 1. Áp dụng các phép biến đổi tương đương nêu trong bảng ( ) đến (
Bước 2. Áp dụng luật biến đổi dãy các phép chọn tương đương: tách phép
chọn thành các phép chọn c
Bước 3. Đối với mỗi phép chọn, áp dụng các luật nhằm đẩy các
phép toán chọn đó xuống càng sâu càng tốt.
Bước 4. Đối với mỗi phép chiếu, áp dụng các quy tắc 3, 9 và 10 nhằm đẩy các
phép toán chiếu đó xuống càng sâu càng tốt. Bước 5 • Tập tru
c phép chọn nhằm áp dụng luật 4
• Áp dụng luật 3 để loại bỏ bớt các phép chiếu vô ích.
• Tập trung các phép chọn với tích
, nếu được, để chuyển thành ph kết tự nhiên hay
kết bằng cách áp dụng các luật 3 và 6 Nhận xét
1. Thuật giải nêu trên chủ yếu nhằm giảm khối lượng dữ liệu trung gian chứ
không chỉ ra thứ tự thực hiện các phép kết. Ví dụ: ( ( ) ( )) ( ) 2. Thuật
một kết quả tối ưu mà nó chỉ đưa ra một giải tối ưu
3. Các phép biến đổi chỉ dựa trên các phép toán cơ bản là Hợp ), Trừ ), Chiếu ) và Chọn (
còn có thể thực hiện các phép biến đổi dựa trên oán khác nữa. TÓM TẮT CUỐI CHƯƠNG 6 ✓ Đố ớ ộ ỏi, thườ ấ ều phương pháp để ả ờ ệ ả ị ệ ến đổ
ỏi được người dùng đưa vào thành ộ
ỏi tương đương có thể đượ ệ ả hơn. Chiến lượ ối ưu (chiế lượ ả ệ ệ ử ộ ỏi đượ ọ ối ưu hóa câu hỏ ✓ ến lược đượ ọn để đị ộ ụ ộc vào kích thướ ủ ỗ ệ ự ố ị ộ ộc tính. Để ự ự ọ ột phương án thự ến lượ ớ ỗ ệ ệ CSDL có lưu trữ ố ề ố ộ ệ r, kích thướ ủ ỗ ộ ố ị ệ ấ ệ ệ ớ ộ ộ ụ ể ✓ ữ ỏ ứ ọn đơn giản đượ ử ằ ự ệ ộ ế ằ ự ệ ộ ế ị ằ ệ ử ụ ỉ ụ ọ ứ ạp đượ ử ằ ệ ợ ữ ế ả ủ ọn đơn giả ✓ Bướ ứ ấ ệ ọ ộ ến lượ ử ỏ ộ ể ứ đạ ố ệ tương đương vớ ể
ức đã cho và được ước lượ ự ỏ hơn. Có thể ắ
ến đổi tương đương để ạ ộ ệ ố ấ ả ể ức tương đương vớ ỏi đã cho và chọ ể ứ ớ ỏ ấ ẻ ất). Các phương án đị ỗ ể ứ ể đượ ạ ở ắc tương tự ể ọn đượ phương án rẻ ấ ấ ả ể ứ ều kĩ thuậ ối ưu để ả ố ể
ức và phương án cần đượ ạ ✓ ể dùng các heuristic để ả
ố các phương án cần đượ đó làm giả ủ
ối ưu hóa. Các qui tắ heuristic để ến đổ ỏ đạ ố ệ ồ ự ệ ọ ớ ấ ể ự ệ ớ ế CÂU HỎI ÔN TẬP CHƯƠNG ục đích củ ối ưu hoá truy vấ ậ ữ ối ưu hoá truy vấ ải đượ
ểu như thế nào cho đúng? ả ến lượ ối ưu hoá ối ưu hoá các câu hỏ ấ ữ ệ ì ối ưu hoá câu hỏ ữ ối ưu về ờ ấ ò ải đả ảo đặ í à ủa cơ sở ữ ệ ấ í ụ ọ ể
ức tương đương liên quan đế ế ọ ến đổ ộ ể ứ đạ ố ệ ề ộ ể ức đạ ố ệ tương đương ằm đạt đượ ục đí ì ấ í ụ ọ ể ứ
ệ các phép toán là các phép toán trong đạ ố ệ á á ạ à ì ấ í ụ ọ ì à á ỹ ậ
nhau để ối ưu hoá các câu hỏ ể
ức E1 và E2 tương đương vớ ≅ ế ể ễ ộ
ạ, nghĩa là .......... giố ể ứ ế ả cũng giố Điề ừ ò ế à ấu …? ối ưu hoá là xác đị ậ ự ự ệ ằm đáp ứ ầ ế ả ệ ự ệ ậ ự ban đầ ủ ể ứ ả ớ đượ ự ệ Điề ừ ò ế à ấu ….? BÀI TẬP CHƯƠNG 6 Cho 3 lược đồ ệ ối ưu ể ứ Cho 3 lược đồ ệ ối ưu hoá biể ứ Cho 3 lược đồ ệ ối ưu hoá biể ứ Cho 3 lược đồ ệ ối ưu hoá biể ứ Cho 3 lược đồ ệ ối ưu hoá biể ứ Cho 3 lược đồ ệ ối ưu hoá biể ứ Cho 3 lược đồ ệ ối ưu hoá biể ứ Cho 3 lược đồ ệ ối ưu hoá biể ứ Cho 3 lược đồ ệ ối ưu hóa biể ứ Cho 3 lược đồ ệ ối ưu hoá biể ứ Cho 3 lược đồ ệ ối ưu hoá biể ứ Cho 3 lược đồ ệ ối ưu hoá biể ứ – Cho 3 lược đồ ệ ối ưu hoá biể ứ Cho 3 lược đồ ệ ối ưu hoá biể ứ – Cho ba lược đồ ệ ối ưu hoá biể ứ B≤C TÀI LIỆU THAM KHẢO Ế Ệ ễ ủ ệ , NXB ĐH Quố ộ [2] Dương Tuấ ễ ự ệ , NXB Đạ ọ ố ắ ậ ấ ả ố Đỗ ễn Đăng Tỵ , NXB Đạ ọ ố ần Đứ ị ừ ệ CSDL và cơ sở ứ ậ ữ ệ ữ ấ ố ần Đứ ị ừ ệ CSDL và cơ sở ứ ậ ế ế ệ ố ồ ầ ồ ẩ ệ ế ự ậ ụ ồ ầ ồ ẩ ệ ế ự ậ ụ ị ấ ế ế , NXB ĐH Quố [10] Đỗ ấ , NXB Đạ ọ ố ộ ễ ệ ậ ệ ụ ến Vương, ậ ệ ọ ỹ ậ Ế –