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!

Môn:
Trường:

Đại học Hồng Đức 130 tài liệu

Thông tin:
188 trang 5 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

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!

112 56 lượt tải Tải xuống
MC LC
LỜI NÓI ĐẦU 5......................................................................................................................................
DANH M C CÁC T T T T VI ............................................................................................................. 7
MC L C ............................................................................................................................................ 8
CHƯƠNG 1. ĐẠI CƯƠNG VỀ CƠ SỞ D LIU ...................................................................................... 9
1.1. C ÁC KHÁI NIỆM CƠ BẢN ....................................................................................................................... 9
1.1.1. Cơ sở d liu ....................................................................................................................... 10
1.1.2. H n tr CSDL qu ................................................................................................................. 12
1.1.3. Ki n trúc ba m c c a m CSDL ế t h ..................................................................................... 13
1.1.4. Vai trò c i trong h CSDL ủa con ngườ .................................................................................. 16
1.1.5. Phân lo i h CSDL ................................................................................................................ 17
1.2. C ÁC MÔ HÌNH D LIU....................................................................................................................... 21
1.2.1. Khái ni m ............................................................................................................................ 21
1.2.2. Các mô hình d n liệu cơ bả ................................................................................................. 21
1.3. MÔ HÌNH TH C TH ÊN K LI T .............................................................................................................. 26
1.3.1. Các thành ph n ................................................................................................................... 26
1.3.2. Xây d mô hình th c th liên k t ng ế .................................................................................... 30
CÂU H I ÔN T ẬP CHƯƠNG 1 ............................................................................................................34
BÀI T ẬP CHƯƠNG 1 ..........................................................................................................................35
CƠ SỞ D LIU MU ......................................................................................................................... 38
CHƯƠNG 2. MÔ HÌNH DỮ LIU 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 a quan h t c ................................................................................ 42
2.1.4. Lược đồ quan h (Relation Schema) ................................................................................... 44
2.1.5. Lược đồ CSDL quan h ........................................................................................................ 45
2.1.6. Th n c a quan h (Occurrence of a Relation) hi ............................................................... 45
2.2. K HOÁ C QUAN HỦA LƯỢC ĐỒ ............................................................................................................ 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 trên các quan h tác cơ sở ................................................................................... 53
2.3.3. Các phép toán khác ............................................................................................................. 56
2.4. C CSDL ÁC PHÉP TOÁN TRÊN 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. G II THIU SQL ............................................................................................................................... 75
3.1.1. L ch s i và phát tri n ra đờ ................................................................................................. 75
3.1.2. Các l nh c a ngôn ng SQL ................................................................................................. 76
3.1.3. Các ki u d u li ................................................................................................................... 77
3.1.4. Các lo i ràng bu c d u li ................................................................................................... 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 i v i t p ch m c ệnh đố ............................................................................................... 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 n ế ệnh đơn giả .......................................................................................... 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 i, b sung, i b d u ửa đ lo li ......................................................................... 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Ế CƠ SỞT K D LIU ............................................................................................. 114
4.1. T NG QUAN V THI T K CSDL ......................................................................................................... 114
4.1.1. Quá trình thi CSDL ết kế ..................................................................................................... 114
4.1.2. D t) d u thường (khuyết t li .......................................................................................... 115
4.1.3. Quy ước v hi u ............................................................................................................ 116
4.2. PH THU C HÀM ........................................................................................................................... 117
4.2.1. Mt s khái ni m .............................................................................................................. 117
4.2.2. H Armstrong tiên đề ........................................................................................................ 119
4.2.4. Bao đóng ........................................................................................................................... 121
4.2.5. Tính tương đương của các tp pth ................................................................................... 123
4.2.6. Ph c c ti u.......................................................................................................................124
4.2.7. Khoá c quan h ủa lược đồ ................................................................................................127
4.2.8. Phép tách trên lược đồ quan h ........................................................................................ 131
4.4. C HUẨ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 4 ỐI CHƯƠNG .............................................................................................................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 V V AN TOÀN V N Đ TON VN D LIU ........................................................................... 146
5.1. S CN THI T PHI BO V AN TON CSDL ......................................................................................... 146
5.2. T ÍNH TOÀN V N D LIU .................................................................................................................. 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. A N TOÀN D LIU ........................................................................................................................... 158
5.4.1. Khái ni m .......................................................................................................................... 158
5.4.2. Các l nh v an toàn d u trong SQL li .............................................................................. 159
Cp phát quy ng CSDL ền cho người dùng trên các đối tượ ......................................................... 160
Thu h i quy ng CSDL ền trên đối tượ ............................................................................................ 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 C TẾN LƯỢ Ố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 nh v các thành phép k i n xác đị ới phép tích Đề ết n ......................... 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 c khi th c hi n l trướ nh........................................................................ 174
6.2.6. Đánh giá các chi phí trưc khi thc hin 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 u th c quan h ối ưu hoá biể ............................................................ 178
6.4. T HUT 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
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 bả 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 đề 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 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 đã 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
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ả
T ữ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 đào tạo sau đạ
Microsoft Word Microsoft Excel để
ế ọc viên sau đ ảnđào tạ
qui cũng sử ềm Microsoft Word Microsoft Excel để
ế
ọc. Các khoa đào tạ ản lí sinh viên khoa,...) cũng
m Microsoft Word 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 í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ả đá
ứng nhanh chóng, kịp thời
ượ đ
thừa dliệu 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 khai thác các phòng 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
(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 đào tạo không
ng sức nhập tin không gian lưu trữ trên các
vật mang tin. Sự trùng lắp thông tin 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 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ự lập của dữ liệu: dữ liệu nằm trong nhiều tệp các tệp thể định
dạng khác nhau (dụ, dữ liệu khoa đào tạo lưu tệp Microsoft Word,
trong khi dữ liệu phòng quản sau đại học lại được u tệp Microsoft
, nên thiếu sự chia sẻ thông tin giữa các nơi 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 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 sở phân tích các ưu nhượ đ điể
đả đượ
đá đượ đồ ế
Cơ sở dữ liệu
Định nghĩa sở
ế ột lĩnh vực nào đó liên quan vớ
đượ ư ư ă đĩ để
đồ ư ươ
đí
Như vậ
ă đá
ườ đồ
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 do đó bảo đảm được
tính nhất quán 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 dữ liệu thể được truy xuất theo đảm bảo
nhiều cách khác nhau. 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 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 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, tính
chính xác của dữ liệu cần được đặt ra.
Tính bảo mật quyền khai thác thông tin của người sử dụng: Do nhiều
ười được phép khai thác một cách đồng thời nên cần phải
chế bảo mật 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: 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 đí
Chương trình
Chương trình
ống chương trình
CƠ SỞ
hoặc sửa dữ liệu). vậy, cần phải 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 sự cố như đột mất điện
ngột hỏng đĩa cứng,... Một số hệ điều hành mạng 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ự đ g kiểm ộn
khắc phục lỗi khi sự cố. T đảm bảo để
ổn định, một nhất thiết phải một 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, cũng phả
tính năng để ền người dùng, chế sao lưu, ph
ế
đề đượ đặ
đ ế
đề
Để 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ấ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 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ườế ế
ngườ ng ngườ
ế ư
ư ế
ảo sát 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, đị ờng trú, đị thư
ế ủ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 chế
toàn để a ngưngăn ngừ
Đó ườ ươ
ư ườ
ản lí đào tạ ủa trư
ế
đị điệgia đình, đị thư ủa gia đình,...) kế
ủa sinh viên, nhưng không cầ ế
ản đào tạ ế
ập, nhưng không cầ ắm đế ế sinh viên như đị
đình, đị ủa gia đình,... gi thư điệ
ủ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 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 một khung nhìn riêng. Họ thể
thay đổi khung nhìn của họ sự thay đổi 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 thể thay đổi cấu trúc lưu trữ của CSDL 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 trong lưu trữ, chẳng hạn như thay một
thiết bị nhớ thứ cấp mới, thể không m ảnh hưởng đến cấu trúc bên
trong của CSDL.
Người quản trị CSDL 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 đượ
ủa con ngườ
a. Người quản trị CSDL (Database Administrator
ều ngườ
. Ngườ ngườ
ản các tài nguyên đó. Ngư
c và hướ
ủa ngườ như ạo ra sơ đồ ịnh nghĩa ốc, đ
ấu trúc lưu trữ phương pháp truy xuấ ệu đặ
gười sử dụng (End User)
gườ ững ngư đòi hỏ p đế
để ững ngư
Ngườ
Ngườ
Ngườ
ngườ
Đả
ế
ững ngườ độ ững ngườ ế
ững ngườ độ ững ngườ ế
ức năng công việ ững ngườ độ ế
ững ngườ ật thườ
ọi 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 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 t
ế đượ ế ế
ạng máy tính trong đó các máy khách 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 như thành phố
ững trườ ợp như vậ
trung đố ức này thườ ế. Để ế ế
ấn đề này, ngườ
Hình 1.11. Sơ đồ
đặ
sites) đượ ế
đượ ệ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
CSDL tập trung là: CSDL phân tán phải nhiều máy tính gọi các trạm
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ửdữ liệu để quản dữ liệu cục
bộ tại các trạm giống như với CSDL tập trung; Xử ứng dụng CSDL trên
từng trạm để xử các chức năng phân tán 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 công nghệ CSDL như nhau hay ít nhấ tương thích tạ
trí địa khác nhau cũng thể tương thích. Hình 1.13 miêu tả
Đố ấ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 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 th đượ
lưu
ấp 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ạ
Đào tạ
Thư việ
.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 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 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 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 số tỉnh thành + 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 gồm mã số tỉnh thành + số
quận huyện + số phường xã, tên phường 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ã. 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 số tỉnh + số quận +
Mã số phường + 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 được định nghĩa lại năm
trong đó các mố ế
ột. Như vậ ột đồ hướ
ạng đưa ra kiể
ản ghi đượ
trườ bản như số ự,… Tập các tên trư
đặ ư đố ượ
ản đà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. dụ, mỗi sinh viên viên thực hiện một
ỉ 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. dụ, mỗi khoa 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. 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 kiểu bản
ghi thành viên với chính nó. dụ, một học phần (Cơ sở dữ liệu) đ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).
dụ 1.6. Hình 1.17 biểu diễn một dụ về 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
LỚP
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 đạ
ế ợp nên hình này đã mô tả
năm 1980 đã trở thành mô hình đư
“qu ệ” do b ều đượ
ệu đượ
ọi là các “quan hệ”, các dòng gọi các “bộ” cột là “thuộc tính”.
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 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 đầ
năm 90. Đây 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 sở ). Đặc trưng 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” “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
nhưng hiện nay đang đượ ườ
CSDL hướng đối tượ ẫn chưa nhiề còn chưa
ất (nghĩa vi ập trình 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 thể ết đượ
, nghĩa cùng đư
ập đặc trưng hay thu ủa trườ
đạ sinh viên đều đượ
ộc tính như sinh viên, họ
tính,… Mộ ờng đượ ếu đế thư
ế ằ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 hình tương ột đặ ớp đối tượ
ữa các đối tượ ộc tính thường đị ằng tên, mang ý nghĩa
đặ ủ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ủ đượ
ế ị. Đó mộ
đố
ữ”}. Các miề trong các sơ đồ
ộc tính đượ
ộc tính đơn phân chia ra đượ
hơn. dụ
tính đơn.
phân chia đượ
hơn, biể ộc tính 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 nh được lưu tr ủa đư
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 đa
ộc tính được ghi bên trong, phía dướ
ế ộc tính đa tr được đánh dấ
ủa 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 đượ
ế
e. Kiểu liên kết và các thể hiện
ế
ế ợp đó. ản lý đào tạ
ột khoa, như vậ ế ế
Trong ết đượđồ ế
ế
ế
ế
Đố i tư
ết đệ ế đi đế đó.
ẦN (Cơ s ệu) là đ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ộ
ế
Lưu ý trườ đố
ế đó.
HỌC
Điề
ủa ợc đồ c đượ
ết, trong đó 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 thể ống như các thuộ
ế
ộc tính Điểm để ế ột sinh viên đố
ết cũng đượ
ô van và đượ ế
ế
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 về mặt hành
chính của một khoa.
Điể
Thông tin về sinh viên gồ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 chỉ một lớp, mỗi lớp 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
các thuộc tính khóa (vì mỗi khoa một khoa một tên khoa
duy nhất).
LỚP một kiểu thực thể với các thuộc tính lớp, tên lớp, nm nhập học
Các thuộc tính đều đơn đơn trị. Các thuộc tính 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 một kiểu thực thể với các thuộc tính 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 đơn trị; thuộc tính Họ tên sinh viên 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 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 thuộc tính khóa (vì mỗi học phần một học phần
nhất).
Kiểu liên LỚP<thuộc>KHOA có tỷ số lực lượng N:1 (mỗi lớp thuộc một
khoa nhưng mỗi khoa 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ÊN<thuộc>LỚP tỷ slực lượng N:1 (mỗi sinh viên
thuộc một lớp nhưng mỗi lớp 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>HỌC PHẦN tỷ số lực lượng M:N
(một sinh viên thể họcnhiều học phần khác nhau 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 bộ
phận (bởi không phải tất cả học phần đều được học, dụ môn tự chọn)
ngược lại, sự tham gia của kiểu thực thể SINH VIÊN toàn bộ (bởi 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 một hệ thống các thông tin 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 đó liên quan với nhau về mặt logic được lưu trữ bộ
nhớ ngoài (như ăng từ, đĩa từ ...) để 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ị một phần mềm cho phép tạo lập đ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 3 mức biểu diễn: Mức vật (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 công việc của họ liên quan hàng ngày đến CSDL, đó
những người quản trị CSDL, thiết kế CSDL, sử dụng CSDL, phân ch hệ thống
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, đó 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ì.
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 thể truy nhập CSDL thông qua các công cụ truyền thông dữ
liệu.
hình dữ liệu một tập các khái niệm pháp dùng để 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
hình phân cấp 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 hình này được xem
là mô hình cổ điển. hình mới nhất được xếp vào thế hệ thứ ba của CSDL
hình hướng đối tượng, mô hình phân tán, mô hình suy diễn.
hình ER 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ể 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 một thể hiện của một kiểu liên kết, 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 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 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 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 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 nhân viên duy nhất, họ 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 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ụ 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ô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 đ
ả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) 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ÊNmộ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ậ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 ế
ộc tính...) đề đư ế
‘_’), ắt đầ
độ dài tên theo quy đị ết, không nên đặ
ế hơn) cũng không nên
đặ nghĩa c
), đ không đ nghĩa khác nhau t
đối tượ ếu hai đối tượ ẢNG VIÊN đề
ộc tính 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 đị
hướ (đó là các ki ệu cơ bản như chuỗ
đượ
định nghĩa dự ệu đã sẵ ệu 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. dụ,
MicroSoft Access kiểu dữ liệu OLE để chứa các đối tượng nhúng như hình ảnh, âm
thanh, audio, video… ORACLE kiểu dữ liệu LONG cho phép chứa dữ liệu kích
hước lớn tới 2 tỷ bytes.
Lưu ý ế ệu 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 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 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 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 quan
xác đị ế
= 1..n), n đư
. Khi đó 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 không phân chia
đượ
ộc tính đa trị
ộc tính nào đó thể chưa biết đượ
ời điểm đang xét). Cũng 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 ứ
T
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ệ phân biệt, nghĩa không 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 ) đượ
đồ 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 đ
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ườ ế ế đầ
đủ ngườý nghĩa để này, người ta xác định đượ
ủa lược đồ đượ
ệm lược đồ
ế
. Lược đồ CSDL quan hệ
ều lượ ống được đồ lược đồ
Lượ c đ ợp các lược đ
1.8. trong chương 1, ta có thể ựng đượ ợc đồ
dùng lượ này để trong chương 2.c đồ
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 ợc đồ
cũng khóa củ .K' thì cũng 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 K' 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ự , nghĩa ế dùng để
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ài đặt 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 sở
ạo nên đạ ngườ
đị ế
đượ đó 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 các phép toán hai ngôi, nghĩa mỗi phép toán đượ
như nhau, hay nói
ấu trúc. Điề ện này đượ
2,…,
) đượ ế
i n. Điều đó nghĩa
ộ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, đượ ịnh nghĩa như sau:c đ
Hợp của hai quan hệ RS 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á trcủa cả R S; những bộ giá trị trùng nhau chỉ được giữ
lại một bộ.
HP1 HP2 tương ới lược đồ
Cơ sở
ế ế
Cơ sở
ế
Cơ sở
ế ế
Định nghĩa 2.10 R 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.
ế
. Phép trừ quan hệ (Minus).
Định nghĩa 2.11 Hiệu của hai quan hệ R S, được hiệu R S, 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 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 ) hai quan hệ
số bộ giá trị hữu hạn. Tích Descartes của hai quan hệ R 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 S (với thuộc tính) và được
định nghĩa như sau:
S = {t/t dạng (a ) trong đó (a
Tích Descartes của 2 quan hệ R S một quan hệ Q 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
phần bên phải là một bộ giá trị của S. Như vậy, nếu Rn bộ giá trị và S có n bộ giá
trị, thì Q sẽ có n bộ giá trị.
ế ột mình thì không ý 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 quan hệ ngôi S quan hệ S ≠Ø),
thuộc tính chung (giống nhau về mặt ngữ nghĩa, hoặc các thuộc tính thể so
sánh được) giữa R S. Phép chia 2 quan hệ R S, hiệu S, 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, 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 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 của quan hệ R 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ị thể của tích Descartes miền giá trị
) nhưng chưa mặt trong thể hiện của quan hệ R. Quan hệ bù của một quan
hệ số lượng bộ giá trị rất lớn, 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 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 (˄), 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ữ”
được xem như thứ ế
ợp {=, ≠} thể ụng đượ
ạn như “là 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à nvậ ế ế
đú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 u = (b ) là một bộ giá trị
của S. Gọi 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ệ (thể nói tắt 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 B một quan hệ mới. Đó kết quả cuối
cùng của phép toán quan hệ (phép ) trên quan hệ kết quả của phép toán tập hợp Chọn
Nếu θ phép toán so sánh bằng kết nối bằng (Equi thì ta gọi đó phép
Nếu các thuộc tính so sánh 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 phép kết nối tự
) sử dụng hiệu cho phép toán “*” hoặc chỉ ký hiệu I><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ả của 2 quan hệ SINH_VIEN LOP phép kết nối tự nhiên
(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,
bản chất của chúng vẫn 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 phép đã trình bày. Tuy nhiên, trong trường hợp hai kết nối bằng
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ả của 2 quan hệ SINH_VIEN LOP đưa ra danh sách phép kết nối nội
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
) hai bộ giá trị của R S. Gọi bộ
ghép nối (hay bộ giá trị được " ") và ký hiệu xếp cạnh nhau
Bộ tNULL = (NULL, NULL, ..., NULL) 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) một bộ đặc biệt của S gồm giá trị của các thuộc tính B đều
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 giá trị cột R[A] 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 bộ được nhờ cách đặt bộ giá trị của R 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ả của 2 quan hệ SINH_VIEN LOP quan hệ phép kết trái
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
B với phép so sánh =, với giả thiết giá trị cột R[A] 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 bộ được nhờ cách đặt bộ giá trị của R S xếp cạnh
nhau nếu chúng 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ả của 2 quan hệ SINH_VIEN LOP kết nối phép kết phả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ườ ế ế
“phép kế ối ngoài” ( ục đích củ ế
ế không tìm đư
ế đố
ện đượ ằng các phép toán đạ
bả ế
CSDL được thương mại hoá đã 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ệ sở
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 dụ về các hàm như vậy 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 để đế
một kiểu yêu cầu khác nữa ta hay gặp 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 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 đó
<các thuộc tính nhóm> 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
<danh sách hàm> là danh sách các cặp (<hàm><thuộc tính)>).
Trong các cặp như vậy, <hàm> một trong các hàm cho phép như SUM,
AVERAGE, MAX, MIN, COUNT, <thuộc tính> một thuộc tính của quan hệ
được chỉ ra trong R. Quan hệ kết quả 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 đ
đọ ữ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 đượ thừ ảm được không gian lưu tr
ế 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 đó:
thừ ế ớp đượ ặp đi lặ
ất thườ ủa thừ y đổ
nhưng vẫn để ớp cũ trong m
thườ ế ới, nhưng lớ
chưa sinh viên, trong quan hệ ới đó phải để
sinh viên. Tuy nhiên, điều này 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 ợc đồ ấn đề đã xả
ế nào để đượ ế ộ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 ế
T ợ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 đó giá trị
ập X nhưng l
Định nghĩa Cho lược đồ xác đị
ạng: f: X→Y; vớ
ếu f: X→Y mộ
ộc tính X xác đị
ợ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. Đó 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 đ c định nghĩa trên lượ
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 F được định nghĩa trên ợc đồ
trong F được định nghĩa trên R.
hụ uộc hệ quả
Định nghĩa cho lược đồ X→Y 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 B→C, nhưng hai bộ μ ν trong r
ần A nhưng không giố ế
đặ ệu μ ν có giố ế
A→B. Nế B nhưng không giố
ạm B→C. Do vậ A→C.
ế ứa A→B B→C thì A→C h ủa F. Nghĩa
{A→B, B→C╞A→C}
e. Bao đóng củ
Định nghĩa , bao đóng (closure), t ủa F, nghĩa
={X→Y | F╞X→Y}
i R=ABC 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 đúng đắ ế ế , nghĩa là: ế
thì F╞ f. Như vậ ẫn để f nào đó từế
F cho trước, thì f cũng là
ẫn đầ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 mộ
U, X→Y ế
đề ủa F thì cũng thỏa X→Y.
Sau đây 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 đú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àng đúng đắ
ần trong X nhưng lạ
con nào đó củ
A2, tính tăng trưở
ế
[Y], nhưng
ắc đượ tiên đề đề ế ế
ởi ta đã chứng minh nh đúng đắ
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
T ứ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 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 nế đúng trên quan hệ
r và f: X→Y là mộ đượ tiên đ Armstrong thì f đúng trên r
ế đã cho, 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 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 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 đó nghĩa mỗ n đượ
E F tương đương ế . Như vậ tương đương nghĩa mỗ
ễn đượ ễn đư
xác đị đố đố
ộc hàm X→Y trong E sau đó kiể
trong Y hay không (nghĩa 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 tương đương,
≡ 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 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 thể ập tương đương 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 F thì X→Y đư
ế ….A
X→A
,…, X→A F và G tương đương.
ế ế ế ợ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 t {X→A} tương
đương vớ
X→A nào trong F sao cho m
{X→A})
{Z→A} tương đương vớ
o đả nào trong F thừ
X→A thừ {X→A} rồ
ế
Điề ếảo đả trái th
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
ế ạm điề
F = {AB→C; C→D; AB→D} thỏa điề ện 1 nhưng vi phạm điề
AB→D.
như mộ
thừa. Điề ện 1 đả ế
ải. Điề đả thừ
ộc tính 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) tương đương v ếX→A bằ
{B})→A
X→A còn lạ ếu (G {X→A}) 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 thừa. Do C→B và B→A nên C→A thừ
ừa đi, ta có {A→B, B→A, B→C, C→B} là mộ
Do A→B B→C nên A→C thừa. Do B→C C→A nên B→A
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 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 đượ
Đố …A →B ới điề
ế 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 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 suy ra CG→B.
nào dư thừ
thay ACD→B bằng CD→B, 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, ACD→B {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 sự
ộc tính X được cho trướ ặc đượ đã cho,
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} F={AB→C, AC→B, BC→DE}
ủa lược đồ r xác đị
Bướ
Bướ
+ Tính bao đóng củ nghĩa tính (BCDE)
ế
tính bao đóng không b
Bướ
+ Tính bao đóng củ nghĩa tính (ACDE)
ế
tính bao đóng b
K ban đầ
Bướ
+ Tính bao đóng củ nghĩa 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 tính (AC)
ế
bao đóng bằ
ế
ế
Lược đồ →P
=Ø, i=1, 2, …, p},
Bướ Đặ
→P ϵ ϵ
→P ϵ ϵ
ế ế 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 ợc đồ
đó: ={AB→DE, E→AD, D→C}. Hãy tìm mộ
lượ c đ
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ụ
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 luậnkết
Ngược nếu bướclại,
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 bỏ đó, tậploại khỏi 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 hợp vớicủa tập
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 ợ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 đồ ợc đồ ρ={R
)} đượ ế
ếu ρ 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
ế ợ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 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ư 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 nmột quá trính phân tích các ợ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 đồ
ện trên các lược đồ
đượ ẩn hoá đế
ế
liên quan đến điề
ẩn khi được xem xét đ
đả ế ế ừng lược đồ
chưa đủ ốt n 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 đượ
T c khi đ ịnh nghĩa các dạ định nghĩa
ột lược đồ
ế đi bấ
ữa. Điều đó có nghĩa khóa là m
ế ột lược đ ều hơn một khóa thì các khóa đó đượ
đượ đị
ại đượ
t lược đ
ột ợ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ược đđượ đó miề
đượ ữa), do đó mỗ
cũng là các giá trị
Lược đồ ọi 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 ợ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 để ả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 đặ
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 khung nhìn cho người dùng tên
, ta sử dụng câu lệnh như sau:
Với câu lệnh GRANT, ta 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
do đó người này quyền cho người dùng khác sử dụng đối ợng cũng 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 , u lệnh GRANT trong trường hợp này không thể sử dụng tuỳ chọn
OPTION, tức 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 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 sở
dữ liêu từ một người dùng náo đó, chỉ những quyền ta đã cấp phát trước đó mới
được thu hồi, những quyền người 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 người dùng thứ hai cấp phát
vẫn có hiệu lực.
Giả sử trong ta 3 người dùng . A và B đều quyền sử
dụng 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 quyền xem 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
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 A đã cấp cho B 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 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 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 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 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 những ràng buộc tham chiếu toàn vẹn 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 dliệu dễ hơn 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 thể 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 phương tiện để hệ thống CSDL thể chống lại những
truy cập không cho phép và nguy hiểm.
Người sử dụng quyền 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ư 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 h
GhiChu để môn thi đó (GhiChu 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 môn văn nhưng trình độ
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 điể
ớn hơn hoặ
Điề ổng điể
điể ển, trong đó mức điể ển đượ
ứcđiể ớp chuyên toán 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 đồ 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 đồ 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 (các đơn vị
ế thi đề
ỗi trườ ột trườ ỗi 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 0
‘Vắng thi’ (nhằ
điểm 0, nghĩa mỗi thí sinh đều đúng 6 d
Điể ệp (ĐXTN) = Tổ đi
ột thí sinh được xem đậ ế điể
ĐXTN từ
ế ệp đượ ế
ỏi: ĐXTN từ 8.0 điể
bài thi 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 đ ỗi đề
định tên đ ), năm thự
đề ện đúng trong một năm 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 trong 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 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 ngôn ngcon 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 “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 thể của các cách i đặt các câu hỏi. thể thỏa hiệp giữa thuật
giải phức tạp, hoặc/tốn kém không gian lưu trữ với việc tiết kiệm thời gian xử lý.
CSDL 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 đã
thể tiết kiệm được 10 thời gian, đây 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ử 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ả một thời gian khó 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ử 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” dạng chuẩn ( ) để đạt tốc độ xử cả
lý nhanh hơn.
Bộ nhớ của máy tính giờ đây không còn 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 thể tồn tại nguy 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 yêu cầu máy thi
hành. Một nguyên nhân dẫn tới điều này việc thực hiện các phép kết nối phép
của các quan hệ. Ta đã biết, tích các phép kết
) đòi hỏi nhiều không gian lưu trữ 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ị
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 truy xuất đĩa từ
để tạo ra ngần ấy bản ghi cũng những thách thức. Sự bùng nổ số lượng “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 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 giá trị tại B
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ấy tích của R x S rồi mới chọn trong kết quả những bộ g
trị tại B bằng giá trị tại C.
Việc biến đổi câu hỏi t như dụ nêu trên một câu hỏi tương đương
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 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 đổ đưa phép chọ ện trướỏi để
ế
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 đố
ế
.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 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 đề 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
T ế định nghĩa quan hệ đã đượ
các chương 2 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ệ tương
đương khi chỉ
ị, tkhi đó 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ư 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 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 chỉ khi chúng cùng một tập các bộ. Với quan niệm quan hệ 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ệ 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 thhai, nghĩa là, quan hệ một tập ánh xtừ 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 hạng thức biến quan hệ
quan hệ hằng (constant relation), được xác định
như một ánh xạ từ các k bộ của các quan hệ (r ) trong đó r quan hệ trên
lược đồ r 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 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 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 hai biểu thức quan hệ F đ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 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ệ 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 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 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 thuộc tính B
Ngữ nghĩa của việc biến đổi tương đương 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ừ đó, thể suy ra, nếu F 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 , tcó 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 biểu thức E = E ; 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 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 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 ơ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ẽ 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 đẩ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 hai biểu thức quan hệ, A 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 thuộc tính của E /hoặc E 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. để thể tối ư
biểu thức quan hệ. Biểu thức kết quả phải tuân theo các nguyên tắc đã nêu tối ưu”
phần 6.1 mặc 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 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ừ đó 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 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
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 hạng
thức chứa phép chọn và/hoặc phép chiếu được áp dụng đối với 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 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 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 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
phép toán nằm phiá dưới 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.
Hình 6.1. Biểu diễn cây của biểu thức hỏi
Thay thế các giá trị S vào biểu thức hỏi đượ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ờ 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 hai
phép chọn kia bằng cách áp dụng các quy tắc (hoặc luật) số 4 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ể.
ững điể
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 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 [
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 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 để thể các phép toán xuống các mức hợp đẩy”
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 ( ) của hội hai
phần bù của 2 quan hệ:
    (  )  (   (
(
(
(
((
)
)
)
)
))

)
). Phép 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ị đã 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 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 ợ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 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 bản H ), Trừ ợp
), Chiếu
) và Chọn ( còn 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 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 lưu trữ r, kích thướ
ọn đơn giản đượ
ế ế
ạp đượ
ế ọn đơn giả
Bướ ến lượ
đạ tương đương vớ ức đã cho được ước lượ
hơn. 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 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 các phép toán trong đ á
á à ì í
ì à á nhau để ối ưu hoá các câu h
ức E1 E2 tương đương vớ ế
ạ, nghĩa .......... giố ế cũng giố
Điề ò ế à ấu …?
ối ưu hoá 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 ợc đồ ối ưu hoá biể
Cho 3 ợc đồ ối ưu hoá biể
Cho 3 ợc đồ ối ưu hoá biể
Cho 3 ợc đồ ối ưu hoá biể
Cho 3 ợ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 sở
ần Đứ CSDL sở
ế ế
ế
ế
ế ế , NXB ĐH Qu
[10] Đỗ , NXB Đạ
ến Vương,
| 1/188

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
CC VN ĐỀ VỀ AN TOÀN V TON VN DỮ LIỆU ........................................................................... 146
5.1. SỰ CN THIẾT PHẢI BẢO VỆ AN TON 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 VN ............................................................................................... 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, ậ ệ ọ ỹ ậ Ế –