You are on page 1of 95

G iáotrình Cơ sở dữ liệu Trang 1

MỤC LỤC

Chương 1 . ..................................................................................................................... ....................... .3


M ÔHÌNH QUAN H Ệ.............................................................................................................. ............3
I NGUYÊNN H Â NRA Đ Ờ IC Ủ AM ÔHÌNH QUAN H Ệ........................................................ .3
II CƠ S Ở D ỮL IỆ UV ÀH ỆQUẢN T R ỊCƠ S Ở D ỮL IỆ U........................................................ .3
1 CSDL là gì? ................................................................................................................. ..........4
2 H ệ quảntrị CSDL ................................................................................................................ .4
3 Ngườidùng(User)......................................................................................................... ........4
4 CSDLQH v à H ệ tập tin theo lố i c ũ ...................................................................................... .5
III M ÔHÌNH QUAN H Ệ.......................................................................................................... .5
1 M ô hình quan h ệ là gì ?........................................................................................................ .5
2 C ác kháiniệm cơ b ản c ủ a m ô hình quan h ệ ........................................................................ .6
3 C ác phép toántập hợp .................................................................................................. ......10
4 C ác phép toánquan h ệ................................................................................................... .....11
5 C ác tính chấtcủ a đại số quan h ệ ...................................................................................... ..12
IV M ÔHÌNH THỰC T H ỂK Ế THỢP..................................................................................... .15
1 G iớ ithiệu m ô hình thực thể kết hợp .................................................................................. .15
2 Chuyểnt ừ m ô hình thực thể kết hợp sang lược đ ồ CSDL.................................................. .17
V B À IT Ậ P................................................................................................................... ..............19
1 Phéptoán tập hợp v à phép toánquan h ệ........................................................................... .19
2 M ô hình thực thể kết hợp ................................................................................................... .20
Chương 2 . ..................................................................................................................... ..................... .22
N G Ô NN G ỮTRUY V Ấ NSQL ......................................................................................................... .22
I C Á C HTẠO QUAN H ỆB Ằ N GACCESS ............................................................................. .22
II C Â UL Ệ N HTRUY V Ấ N....................................................................................................... .22
1 B IỂ UT H Ứ C(EXPRESSION) ........................................................................................... .22
2 C Â UL Ệ N H SQL............................................................................................................... .25
III B À IT Ậ P.................................................................................................................. ...........28
Chương 3 . ..................................................................................................................... ..................... .32
R À N GB U Ô CT O À NVẸN QUAN H Ệ............................................................................................. .32
I R À N GB U Ộ CT O À NVẸN - C Á CY Ế UT Ố C Ủ AR À N GB U Ộ CT O À NVẸN .................. .32
1 R àngB uộcToànVẹn...................................................................................................... ....32
2 C ác Y ếu T ố C ủaRàng B uộcToànVẹn ............................................................................ .32
II P H Â NLOẠI R À N GBUỘC T O À NVẸN ............................................................................. .33
1 R àngbuộctoànvẹn liên b ộ ............................................................................................... .34
2 R àngbuộctoànvẹn v ề phụ thuộctồ n tại: ......................................................................... .34
3 R àngbuộctoànvẹn v ề m iền g iá trị................................................................................... .34
4 R àngbuộctoànvẹn liên thuộctính ................................................................................... .35
5 R àngbuộctoànvẹn liên thuộctính liên quan h ệ .............................................................. .35
6 R àngbuộctoànvẹn v ề thuộctính tổng hợp ...................................................................... .35
III B À IT Ậ P.................................................................................................................. ...........35
Chương 4 . ..................................................................................................................... ..................... .37
PHỤ T H U Ộ CH À M............................................................................................................... ............37
I K H Á IN IÊ MPHỤ T H U Ộ CH À M......................................................................................... .37

Sưu tầm Kiều Quang Hưng


G iáotrình Cơ sở dữ liệu Trang 2

1 Định nghĩa phụ thuộchàm ................................................................................................. .38


2 Phụ thuộchàm hiển nhiên............................................................................................... ....38
3 ThuậttoánSatifies ....................................................................................................... .......38
4 C ác phụ thuộchàm c ó thể c ó .......................................................................................... ....39
II H ỆL U Ậ TD Ẫ NARMSTRONG ............................................................................................ .42
1 Phụ thuộchàm được suy diễn logic t ừ F ............................................................................ .42
2 H ệ luậtdẫn Amstrong ........................................................................................................ .43
3 H ệ luậtdẫn Armstrong là đầy đ ủ ........................................................................................ 47
+
III T H U Ậ TT O Á NTÌM F ...................................................................................................... .48
1 Thuậttoáncơ bả n........................................................................................................ ........48
2 Thuậttoánc ả itiến ............................................................................................................. .48
IV B À IT Ậ P................................................................................................................... ..........49
Chương 5 . ..................................................................................................................... ..................... .50
P H ỦC Ủ AT Ậ PPHỤ TH U Ộ CH À M............................................................................................... ..50
I ĐỊNHNGHĨA.................................................................................................................. .......50
II P H ỦT Ố ITH IỂ UC Ủ AM Ộ TT Ậ PPHỤ TH U Ộ CH À M...................................................... .50
1 Phụ thuộchàm c ó v ế tráidư thừa..................................................................................... ..50
2 T ập phụ thuộchàm c ó v ế phảim ộ tthuộctính................................................................... .51
3 T ập phụ thuộchàm khôngdư thừa..................................................................................... .51
4 T ập phụ thuộchàm tố i thiểu ........................................................................................... ....51
III K H Ó AC Ủ ALƯỢC Đ ỒQUAN H Ệ.................................................................................. .52
1 Định Nghĩa ......................................................................................................................... .52
2 Thuậttoántìm tấ t c ả khóa................................................................................................. .53
IV B À IT Ậ P................................................................................................................... ..........55
Chương 6 . ..................................................................................................................... ..................... .57
C H U Ẩ NH Ó ACƠ S Ở D ỮL IỆ U...................................................................................................... .57
I DẠNG C H U Ẩ NC Ủ ALƯỢC Đ ỒQUAN H Ệ....................................................................... .57
1 Định nghĩa c á c dạng chuẩn................................................................................................ .57
II P H É PT Á C HK Ế TN Ố IB Ả OT O À N.................................................................................... .62
1 Phéptáchkết n ố ibả o toànthôngtin ................................................................................. .62
2 Phéptáchbả o toànphụ thuộchàm .................................................................................... .67
III T H IẾ TK ẾCSDL B Ằ N GC Á C HP H Â NR Ã..................................................................... .70
1 Phân r ã thànhdạng chuẩnBC (hay chuẩn3) b ảo toànthôngtin ....................................... .70
2 Phân r ã thànhdạng chuẩn3 v ừ ab ảo toàn thôngtin v ừ ab ảo toànphụ thuộchàm ............76
IV B À IT Ậ P................................................................................................................... ..........79

----oOo----

Sưu tầm Kiều Quang Hưng


G iáotrình Cơ sở dữ liệu Trang 3

Chương 1 .

M ÔHÌNH QUAN H Ệ

I NGUYÊNN H Â NRA Đ Ờ IC Ủ AM ÔHÌNH QUAN H Ệ(RELATIONAL MODEL)


Trong nhiều năm , công nghệ tính toán và thông tin phát triển t ừ n h ữ n gh ệ thống lớ n , đ ắt tiền, độ cquyền đến c á c h ệ
thống m ở mạnh v à không đắ t tiền. S ự phát triển nà y mang lại lợi ích to lớ n cho ngườidùng cuối b ở i sự phát triển
của c á c g ó iứ n g dụng số như x ử lý văn bản,bảngtính điện tử ,văn phòngxuấtbản,h ệ quảnl ý cơ s ở d ữ liệu, m áy tính trợ
g iúpcôngnghệ phần mềm....

Trướckhi m áy tính h ó a cơ s ở d ữ liệu được g iớ i thiệu, d ữ liệu được lưu trữ theo kiểu điện t ử thànhnhiều tập tin riêng
biệt s ử dụng h ệ tậ p tin (t ừ đây v ề sau ta gọi h ệ tậ p tin theo lối cũ) . Nhữngtập
tin n ày được x ử l ý bằng c á c ngôn n g ữ thế h ệ th ứ ba như COBOL, FORTRAN, PASCAL v à ngay c ả
BASIC đ ể tạo ra c á c giải pháp cho c á c vấn đ ề c ủ a doanh nghiệp. M ỗi ứ n g dụng, chẳng hạn như h ệ tính lương,
h ệ kho hay h ệ thống k ế toán s ẽ c ó m ột tập c á c tập tin riêng chứ a d ữ liệu riêng. C ác ứ n gdụng như vậy tạo ra ba vấn
đ ề sau:
- C ó sự liên kết chặt ch ẽ giữa cấu trú c luận l ý v à cấu trú c v ật lý của cá c tập tin v à chương trình ứ n g dụng
khai thác chúng. Điều nà y khiến việc tạo nên c á c ứ n g dụng n ày rất k h ókhăn,tố n nhiều th ờ igian v à
do vậy m à tố n kém trong b ảo trì h ệ thống.
- C ó sự dư thừa d ữ liệu rấ t lớ n qua việc trùng lắ p cá c tậ p tin trong cá c ứ n g dụng khác nhau.
Điều n ày tạo ra nhữngvấn đ ề như: d ữ liệu thiếu nhất quán,không gian đĩa b ị lãng phí, th ờ igian b ảo trì v à
lưu phòng h ờ cá c tập tin gia tăng, vấn đ ề v ề quản trị như không c h ú trọng b ảo m ật v à tổ chứ cd ữ liệu thiếu
thốngnhất.M ộtví dụ điển hình v ề sự trùnglắp d ữ liệu là :
H ệ quảnlý nguồnnhân lực bao gồm ba h ệ chính:
1. H ệ lương, h ệ n ày duy trì ngàycôngv à lương cho tấ t c ả nhân viên.
2. H ệ nhân sự, h ệ n ày duy trì lý lịch c á nhân, d ữ liệu v ề tổ chức,công việc đ ào tạo v à
v ị trí thăngtiến.
3. H ệ hưu, h ệ n ày quản trị c á c qui tắc liên quan đến nghỉ hưu, loại nghỉ hưu. Chi tiết v ề hưu c ủ a từ ng
nhân viên.
V ấn đ ề phứctạp là H ệ lương thôngthườngđược quản l ý b ở i phòngtà i chánh,trong khi H ệ nhân sự v à H ệ hưu
được quảnlý b ở iphòngtổ chức.R õ ràng, c ó nhiều d ữ liệu v ề nhân viên
là chung cho c ả ba hệ. Thườngn h ữ n gh ệ n ày thực hiện v à g iữ gìn riêng biệt v à chúng tạo
sự trùngd ữ liệu nhân viên m à chúngdùng.
- N gườis ử dụng c ó ít k hả năng khai th áctrực tiếp d ữ liệu.
II CƠ S Ở D Ữ L IỆ U V À H Ệ Q U Ả N TR Ị CƠ S Ở D Ữ L IỆ U (DATABASE AND DATABASE
MANAGEMENT SYSTEM)
K hở iđầu, sự g iớ ithiệu CSDL v à HQTCSDL nhằm giải quyết c á c vấn đ ề củ a h ệ thôngtin dựa trên
c á c tập tin theo lố i c ũ (C1.I). Điều n ày tạo ra việc phát triển trên hai mươi lăm năm qua m ột h ệ
CSDL quan h ệ thương mại xuất hiện cuối nhữngnăm thập niên 70 và c á c năm đầu củ a thập niên
80. Trướckhi xem x é t CSDL v à h ệ QTCSDLQH giảiquyếtm ộtv à i vấn đ ề c ủ a h ệ thôngtin theo lố i
c ũ như th ế nà o chúngta cần làm r õ v à ikháiniệm .

Sưu tầm Kiều Quang Hưng


G iáotrình Cơ sở dữ liệu Trang 4

1 CSDL l à gì?
M ột cơ s ở d ữ liệu c ó thể định nghĩa tạm như sau: m ộ t ch ỗ chứ a c ó tổ ch ứ c tậ p hợp c á c tập tin d ữ liệu c ó tương quan,
c á c m ẫu tin v à cá c cột.
N gàynay CSDL tồ n tại trong m ỗ iứ n gdụng thôngdụng, ví dụ:
- H ệ kho v à kiểm kê.
- H ệ đ ặ t ch ỗ m áy bay
- H ệ nguồnnhân lực.
- h ệ dịch vụ côngcộngnhư cấp nước,điện,khí đ ố t
- Đ iều khiển q uá trình chế tạo v à sả n xuất
2 H ệ q u ả ntrị CSDL
M ộth ệ quảntrị CSDL (HQTCSDL) là :
- m ộ t tập cá c phần m ềm quản l ý CSDL v à cung cấp c á c dịch vụ x ử l ý CSDL cho c á c nhữngngườiphát triển
ứ n gdụng v à ngườidùngcuối.
- HQTCSDL cung cấp m ộ tgiao diện giữangườis ử dụng v à d ữ liệu.
- HQTCSDL biến đ ổ iCSDL v ật l ý thànhCSDL logic.

Dựa và o cách tổ chứ cd ữ liệu, HQTCSDL được chia thànhnăm loại:


- loại phân cấp như h ệ IMS củ a IBM
- loại mạng như IDMS củ a Cullinet Software
- Loại tập tin đ ảo như ADABAS củ a Software AG
- Loại quan h ệ như như ORACLE củ a Oracle, DB2 c ủ a IBM, ACCESS củ a Microsoft Access
- Loại đ ố i tượng là m ộ t tiếp cận khá m ớ i trong thiết k ế HQTCSDL v à việc s ử dụng loại n ày sớ m trở nên p h ổ
biến
Hiện tại, loại HQTCSDL chính được s ử dụng trong công nghệ là loại HQTCSDL quan h ệ
(RDBMS). Loại n ày đ ã chiếm lĩnh trong công nghệ trên 10-15 năm cuối cùng khi đánh b ật loại
HQTCSDL phân cấp v à gần đây là HQTCSDL mạng.
3 Ngườid ùn g(User)
Ngườidùngkhai thác CSDL thôngqua HQTCSDL c ó thể phân thành ba loại: ngườiquản trị CSDL, ngườipháttriển
ứ n gdụng v à lập trình, ngườidùngcuối.
- N gườiquảntrị CSDL, hàngngày,chịu tráchnhiệm quảnl ý v à b ảo trì CSDL như:
+ sự chính x á c v à toànvẹn củ a d ữ liệu và ứ n gdụng trong CSDL, sự b ảo m ậtcủ a CSDL
+ lưu phòngh ờ v à phục h ồ iCSDL
+ g iữ liên lạc v ớ ingườipháttriển ứ n gdụng, ngườilập trình v à ngườidùngcuối.
+ b ảo đàm sự hoạt độngtrô ichảyvà hiệu q u ảc ủ a CSDL v à HQTCSDL

Sưu tầm Kiều Quang Hưng


G iáotrình Cơ sở dữ liệu Trang 5

- N gườipháttriển v à lập trình ứ n g dụng là nhữngngườichuyên nghiệp v ề m áy tính c ó trách


nhiệm thiết kế, tạo dựng v à b ảo trì h ệ thôngtin cho ngườidùngcuối.
- N gười dùng cuối là những người không chuyên v ề m áy tính nhưng họ l à c á c chuyên gia trong c á c
lãnh vực khác c ó trách nhiệm cụ thể trong tổ chức.H ọ khai th ác CSDL thông qua
h ệ được pháttriển b ở ingườipháttriển ứ n gdụng hay cá c côngcụ truy vấn c ủ a HQTCSDL.
4 CSDLQH và H ệ tậ p tin theo lố icũ
Tiếp c ậ nCSDL đ ã g iả iquyết3 vấ nđ ề c ủ ah ệ tậ p tin theo lố ic ũ :
i V ấ nđ ề 1: cấ u trú clogic v à cấ u trúc v ậ tlý

Kiến trú cbên trong HQTCSDL quan h ệ táchbiệt r õ ràng giữa:


- cấu trú cluận lý c ủ a tấ t c ả tập tin v à chương trình ứ n gdụng khai tháctập tin n ày v à
- cấu trú cv ật lý củ a csdl v à phần lưu trữ c á c tập tin.
T iếpc ậ n n à y tạo cho ngườiq u ả ntrị CSDL c ó th ể thay đ ổ ic ấ u trú c v ậ t lý hay nơi lưu tr ữ c ủ a tậ p tin
m à k h ô n gả n hhưởngđ ế nchương trình ứ n gdụng.
ii V ấ nđ ề 2: dư thừad ữ liệu
Khi HQTCSDLQH được g iớ ithiệu, nhiều tổ chứ cmong tích hợp c á c tậ p tin đã phân tá n khắp trong
tổ ch ứ cv ào m ộ t CSDL tậ p trung. D ữ liệu c ó thể chia s ẻ cho nhiều ứ n g dụng khác nhau v à ngườis ử dụng c ó th ể khai
th ác đồng th ờ ic á c tập con d ữ liệu liên quan đến họ. Đ iều n ày làm hạn chế sự dư thừad ữ liệu.
iii V ấ nđ ề 3: Sự khai th ácd ữ liệu c ủ angườis ử dụng
Trong h ệ QTCSDLQH ngườidùng c ó thể trực tiếp khai th ác d ữ liệu thôngqua việc s ử dụng cá c câu truy vấn hay cá c
côngcụ b áo cáo được cung cấp b ở ih ệ QTCSDL.
III M ÔHÌNH QUAN H Ệ(RELATIONAL MODEL)
1 M ô hình quan h ệ là gì ?
M ô hình Cơ s ở d ữ liệu Quan h ệ (gọi tắ t là Mô hình Quan h ệ) do E.F Codd đ ề xuất năm 1971. M ô hình n ày bao
gồm :
- M ột h ệ thống c á c k ý hiệu đ ể m ô tả d ữ liệu dư ới dạng dòng v à cộ t như quan hệ, b ộ , th u ộctính, k h ó achính,
k h o ángoại, ...
- M ộttập hợp cá c phép toán thao tá c trên d ữ liệu như phép toántập hợp, phép toánquan hệ.
- ràngbuộctoàn vẹn quan hệ.

Sưu tầm Kiều Quang Hưng


G iáotrình Cơ sở dữ liệu Trang 6

C ách ệ HQTCSDLQH ngàynay được xây dựng dựa v ào l ý thuyếtcủ a m ô hình quan hệ.
Mục đích củ a m ôn học n ày g iú pcho sinh viên nắm được kiến trú ctổng quát v ề m ô hình quan h ệ v à
áp dụng n ó đ ể lập m ô hình d ữ liệu quan h ệ c ó hiệu q uả trong lưu tr ữ v à khai thác.

MASV HOTENH MONHOC TENKHOA DIEMTHI


99001 TRAN DAN THU CO SO DU LIEU C Ô N GN G H ỆTH Ộ N GTIN 3.0
99002 NGUYEN HA DA THAO CO SO DU LIEU C Ô N GN G H ỆTH Ộ N GTIN 8.0
99001 TRAN DAN THU TIN HOC VAN PHONG CÔNG N G H ỆTH Ộ N GTIN 6.0
99005 LE THANH TRUNG TIN HOC VAN PHONG ANH VAN 5.0

Chẳnghạn v ớ i b à i toán quản lý điểm thi củ a sinh viên; nếu lưu trữ d ữ liệu theo dạng bảng v ớ i cá c
cộ t MASV, HOTEN, MONHOC,TENKHOA, DIEMTHI thì cá c giá trị c ủ a c á c c ộ t HOTEN, MONHOC,
TENKHOA s ẽ b ị trùnglắp.S ự trùnglắp nà y gây nên m ộ ts ố vấn đề:
- Ta khôngthể lưu trữ m ộ tsinh viên m ớ ikhi sinh viên n ày chưa c ó điểm thi
- Khi cần sử a đ ổ i họ tên sinh viên thì ta phải sử a tấ t c ả cá c dòng c ó liên quan đến sinh viên này.Điều n ày d ễ
gây ra tình trạng d ữ liệu thiếu nhấtquán.
- Khi c ó nhu cầu x o á điểm thi củ a m ộ tsinh viên kéo theo k h ả năng x o á luôn họ tên sinh viên đ ó .
Việc lưu trữ d ữ liệu như trên khôngđúngv ớ im ô hình quan hệ. Đ ể lưu trữ đúngv ớ im ô hình quan h ệ
ta phải thay MONHOC bằng MAMH, thay TENKHOA bằng MAKHOA, tách m ột bảng d ữ liệu lớ n đ ó ra thànhnhiều
bảngcon, như m ô hình dưới.
MASV MAMH MAKHOA DIEMTHI MASV HOTEN
99001 CSDL CNTT 3.0 99001 TRAN DAN THU
99002 CSDL CNTT 8.0 99002 NGUYEN HA DA THAO
99001 THVP CNTT 6.0 99005 LE THANH TRUNG
99005 THVP AV 5.0

MAMH TENMH SOTIET MAKHOA TENKHOA


CSDL CO SO DU LIEU 90 CNTT CONG NGHE THONG TIN
THVP TIN HOC VAN PHONG 90 AV ANH VAN
2 C á ck h á iniệm cơ b ả nc ủ am ô hình quan hệ
i T huộctính (Attribute, Arity)
Chẳng hạn v ớ i b à i toán quản lý điểm thi củ a sinh viên; v ớ i đ ố itượng sinh viên ta cần phải c h ú ý đến c á c đặc trưng
riêng như họ tên, ngày sinh, n ữ (giớ itính), t ỉ n hthườngtrú , học bổng, lớ p m à sinh viên theo học,. . . c á c đặc trưng
n ày gọi là th u ộctính.
C ác thuộc tính được phân biệt qua tên gọi v à phải thuộc v ào m ột kiểu d ữ liệu nhất định (số, chuỗi, ngày tháng,
logic, hình ản h ,… ).K iểu d ữ liệu ở đây là kiểu đơn. Trong cùng m ộ t đ ố i tượng không được c ó hai thuộc tính
cùngtên.
Thôngthườngm ỗ i thuộctính c h ỉ chọn lấy g iá trị trong m ột tập con củ a kiểu d ữ liệu v à tậ p hợp con
đ ó gọi là m iền g iá trị củ a thuộc tính đ ó . Thuộc tính n gà y trong tháng thì c ó kiểu d ữ liệu l à s ố nguyên,
m iền g iá trị củ a n ó l à 1 đến (tố i đa là ) 31. Hoặc điểm thi củ a sinh viên c h ỉ là c á c s ố nguyên t ừ 0 đến 10.
Thườngngườita dùng c á c c h ữ c á i hoa A,B,C,… đ ể biểu diễn c á c thuộc tính, hoặc A1,A2,… .,An đ ể
biểu diễn m ộ ts ố lượng lớ n cá c thuộctính.

Sưu tầm Kiều Quang Hưng


G iáotrình Cơ sở dữ liệu Trang 7

ii Lược Đ ồ Quan H ệ (Relation Schema)


T ập tấ t c ả c á c thuộc tính cần quản lý củ a m ột đ ố i tượng cùng v ớ i m ối liên h ệ giữa chúngđược gọi
l à lược đ ồ quan h ệ. Lược đ ồ quan h ệ Q v ớ i tậ p thuộc tính {A1,A2,...,An} được viết là
+
Q(A1,A2,...,An). T ập cá c thuộc tính c ủ a Q được k ý hiệu l à Q . Chẳng hạn lược đ ồ quan h ệ sinh viên (Đ ặt
tên l à Sv) v ớ ic á c thuộctính như trên là :
Sv(MASV, HOSV,TENSV,NU, NGAYSINH, MALOP, HOCBONG, TINH)
Thườngkhi thànhlập m ộ tlược đ ồ ,ngườithiết k ế luôn gắn cho n ó m ộtý nghĩa nhấtđịnh, ý nghĩa đ ó
gọi là tâ n t ừ c ủ a lược đ ồ quan h ệ đ ó .Dựa vào tân t ừ ngườita x ác định được tậ p th u ộctính kh óac ủ alược đ ồ quan h ệ (khái
niệm khoás ẽ được trình b ày ở phần sau).
Khi phát biểu tân t ừ cho m ộ t lược đ ồ quan hệ, người thiết k ế cần phải m ô t ả đầy đ ủ ý nghĩa đ ể ngườikhác tránh hiểu
nhầm. Chẳng hạn tân t ừ củ a lược đ ồ quan h ệ trên là:”m ỗ isinh viên c ó m ộ t
m ã sinh viên (MASV) duy nhất, m ỗi m ã sinh viên x ác đ ịn h tất c ả cá c thuộc tính c ủ a sinh viên đ ó
như họ tên (HOTEN), n ữ (NU) ,ngày sinh (NGAYSINH), lớ p theo học (MALOP), học bổng
(HOCBONG), tỉnh cư trú (TINH).

Nhiều lược đ ồ quan h ệ cùngnằm trong m ộth ệ thốngquảnl ý được gọi là m ộtlược đ ồ cơ s ở d ữ liệ u.
Ví dụ lược đ ồ cơ s ở d ữ liệu đ ể quản l ý điểm sinh viên c ó thể gồm cá c lược đ ồ quan h ệ sau: Sv(MASV,
HOSV,TENSV, NU, NGAYSINH, MALOP, TINH, HOCBONG)
Lop(MALOP,TENLOP,SISO,MAKHOA)
Kh(MAKHOA,TENKHOA, SOCBGD)
Mh(MAMH, TENMH, SOTIET)
Kq(MASV, MAMH, DIEMTHI)
Phần g iảithích c á c thuộctính:
MASV M ã sinh viên
HOTEN T ên sinh viên
NU Nữ
NGAYSINH ngàysinh
LOP lớ p
TENLOP tên lớ p
SISO s ỉ s ố lớ p
MAKHOA m ã khoa
HOCBONG học bổng
TINH tỉnh
TENKHOA tên khoa
SOCBGD s ố cán b ộ giảngdạy
MAMH m ã m ôn học
TENMH tên m ôn học
SOTIET số tiết
DIEMTHI điểm thi
iii Quan H ệ (Relation)
Sự th ể hiện củ a lược đ ồ quan h ệ Q ở m ộ t th ờ iđiểm n ào đ ó được gọi là quan h ệ, rõ ràng là trên m ộ tlược đ ồ quan h ệ c ó th ể
định nghĩa rất nhiều quan hệ. Thườngta dùngcác k ý hiệu như R, S, Q đ ể c hỉ
c á c lược đ ồ quan hệ, c ò nquan h ệ được định nghĩa trên n ó tương ứ n gđược k ý hiệu là là r, s, q.

Sưu tầm Kiều Quang Hưng


G iáotrình Cơ sở dữ liệu Trang 8

iv B ộ (Tuple)
Bộ là tậ p m ỗ ig iá trị liên quan c ủ a tất c ả c á c thuộctính c ủ a m ộ tlược đ ồ quan hệ.Chẳnghạn quan
h ệ sau c ó 2 b ộ .
MASV HOTEN NU NGAYSINH MALOP TINH HOCBONG
99001 TRAN DAN THU TRUE 15-03-1977 CĐTH2B TIEN GIANG 120000
99002 NGUYEN HA DA THAO TRUE 25-04-1986 TCTH29C TPHCM 120000
Thườngngườita dùngcác c h ữ c á i thường(như t,p,q,… )đ ể biểu diễn cá c b ộ . Chẳnghạn đ ể n ó ib ộ
t thuộcquan h ệ r ta viết: t ∈ r.
V ề trực quan thì m ỗi quan h ệ xem như m ột bảng, trong đ ó m ỗi c ộ t l à thông tin v ề m ộ t thuộc tính, m ỗ i dòng là
thông tin v ề m ộ t b ộ . Chẳng hạn sau đây là cá c thể hiện củ a cá c quan h ệ định nghĩa trên lược đ ồ cơ s ở d ữ liệu quản
l ý sinh viên ở trên:
rSv
MASV HOTEN NU NGAYSINH MALOP TINH HOCBONG
99001 TRAN DAN THU TRUE 15-03-1977 CĐTH2B TIEN GIANG 120000
99002 NGUYEN HA DA THAO TRUE 25-04-1986 CĐTH2B TPHCM 120000
99003 PHAM ANH HUY FALSE 16-08-1977 CĐTH2B BAC LIEU
99004 NGUYEN NGOC THUAN FALSE 24-12-1980 CĐTH2B CA MAU
99005 LE THANH TRUNG FALSE 20-11-1978 CĐAV1 CA MAU 120000
99006 NGUYEN HONG VAN FALSE 19-09-1979 CĐAV1 SOC TRANG
99007 VU THI LOAN TRUE 15-03-1975 CĐAV1 CA MAU
99008 TRUONG KIM QUANG FALSE 15-05-1975 CĐTH2B HA NOI
99009 TON THAT QUYEN FALSE 26-06-1976 CĐTH2B VUNG TAU 60000
99010 HA VAN LONG FALSE 14-04-1973 CĐAV1 BAC LIEU
99011 BUI VAN ANH FALSE 22-12-1972 CĐAV1 AN GIANG
99012 LE HUU CHI FALSE 28-08-1977 CĐĐT2 CAN THO 60000
99013 VU THANH CONG FALSE 29-03-1979 CĐTH2B KIEN GIANG 60000
99014 TRAN QUANG CUONG FALSE 30-05-1981 CĐĐT2 DONG THAP 120000
99015 PHAM VAN HAI FALSE 30-06-1976 CĐĐT2 CA MAU
99016 HUYNH THANH HOANG FALSE 29-07-1982 CĐĐT2 TPHCM 80000
99017 TRAN MINH LAM FALSE 21-08-1977 CĐTH2B TRA VINH
99018 PHAN VAN SANG FALSE 19-05-1979 CĐDL1 DONG THAP 120000
99019 PHAM THI HUYEN FALSE 16-06-1982 CĐDL1 CAN THO 120000
99020 NGUYEN THI NGAN TRUE 11-11-1981 CĐTH2B CA MAU 120000
99021 PHAM TAN QUANG FALSE 01-01-1980 CĐDL1 CA MAU
99022 TRAN PHUOC QUYEN FALSE 12-12-1979 CĐTH2B BAC LIEU 60000
99023 LE THI THANH VAN TRUE 11-11-1980 CĐDL1 TPHCM 120000

rKh rMh
MAKHOA TENKHOA SOCBGD MAMH TENMH SOTIET
CNTT CONG NGHE THONG TIN 60 CSDL CO SO DU LIEU 90
AV ANH VAN 60 FOX FOXPRO 120
HOA HOA CHAT 20 THVP TIN HOC VAN PHONG 90
MÁY TÍNH MOI TRUONG 10 AVTH ANH VAN TIN HOC 60
XD XAY DUNG 10 KTS KY THUAT SO 60
DL DU LICH 5 CTDL CAU TRUC DU LIEU 60

Sưu tầm Kiều Quang Hưng


G iáotrình Cơ sở dữ liệu Trang 9

TTNT TRI TUE NHAN TAO 45


MANG MANG MAY TINH CB 45
VB VI SUAL BASIC 90
AC ACCESS 180
LR LAP RAP MAY TINH 60
INTER CAC DICH VU INTERNET 45
HDH HE DIEU HANH 60
KTLT KY THUAT LAP TRINH 45
VIFOX VISUAL FOXPRO 60

rKq
MASV MAMH DIEMTHI
99001 CSDL 3.0 99006 MANG 6.0 99016 KTS 7.0
99002 CSDL 8.0 99007 MANG 2.0 99017 KTS 7.0
99003 CSDL 8.0 99008 MANG 7.0 99017 FOX 4.0
99004 CSDL 3.0 99009 MANG 3.0 99017 MANG 8.0
99005 CSDL 2.0 99010 TTNT 5.0 99017 CSDL 8.0
99001 THVP 6.0 99011 FOX 4.0 99017 TTNT 6.0
99002 THVP 3.0 99012 FOX 5.0 99002 MANG 8.0
99003 THVP 8.0 99013 FOX 7.0 99004 MANG 4.0
99004 THVP 9.0 99014 VB 7.0 99018 TTNT 7.0
99005 THVP 5.0 99015 VB 3.0 99019 CSDL 8.0

99020 THVP 7.0 99023 TTNT 3.0 99021 CSDL 8.0


99021 MANG 7.0 99023 THVP 6.0 99021 THVP 9.0
99022 MANG 6.0 99023 FOX 8.0 99022 FOX 5.0
99023 CSDL 8.0 99023 VB 9.0 99022 TTNT 6.0
99023 MANG 6.0 99023 KTS 6.0

rLop
MALOP TENLOP SISO MAKHOA
CĐTH2B CAO Đ Ẳ N GTIN HỌC K H O Á2000B 60 cntt
TCTH29C TRUNG CẤP TIN H Ọ CK H O Á29 C 121 cntt
CĐAV1 CAO Đ Ẳ N GANH V Ă N1 120 av
CĐĐT2 CAO Đ Ẳ N GĐ IỆ NT Ử 2 80 đt
CĐDL1 CAO Đ Ẳ N GDU LỊCH 1 42 dl
v K hóa(Key, Candidate Key):
+
Cho lược đ ồ quan h ệ R, S⊆R . S được gọi là m ộ t siê u khóa (superkey) củ a lược đ ồ quan h ệ R nếu
v ớ ihai b ộ tù y ý trong quan h ệ R thì g iá trị củ a c á c thuộctính trong S l à khácnhau.
Một lược đ ồ quan h ệ c ó thể c ó nhiều siêu khoá.Siêu khoáchứa ít thuộc tính nhất được gọi l à k h ó a
c h ỉ định, trong trường hợp lược đ ồ quan h ệ c ó nhiều khóa c h ỉ định, thì khóa được chọn đ ể c à i đ ặtgọi l à k h ó achính
(Primary key) (trong c á c phần sau khóachính được gọi tắ t là khóa)

Sưu tầm Kiều Quang Hưng


G iáotrình Cơ sở dữ liệu Trang 10

C ác thuộc tính tham gia v ào m ột khóa được gọi l à th u ộctính kh óa (prime key), ngược lại
được gọi là th u ộctính khôngkh óa(non prime key).
M ột thuộc tính được gọi l à kh óangoại nếu n ó l à thuộc tính củ a m ột lược đ ồ quan h ệ n ày nhưng lại
l à khóa chính củ a lược đ ồ quan h ệ khác.Ví dụ:
Ta h ãy xem lược đ ồ quan h ệ sau:
Xe(SODANGBO,QUICACH, INHDANG,MAUSAC,SOSUON,SOMAY,MAXE,QUOCGIA)
Siêu khóa:(SOSUON,QUICACH),...
K hóac h ỉđịnh: (SODANGBO,QUOCGIA), (SOSUON), (SOMAY), (MAXE)
K hóachính: MAXE
Thuộctính khóa:SODANGBO,QUOCGIA, SOSUON, SOMAY, MAXE
Thuộctính khôngkhóa:QUICACH, HINHDANG, MAUSAC
K hóa củ a Sv l à (MASV), Khoá c ủ a Mh là (MAMH), khoá c ủ a Kh l à (MAKHOA), khóa củ a Kq l à
(MASV,MAMH) khóacủ a Lop l à MALOP, trong Lop thuộctính MAKHOA l à khóangoại
3 C á cph éptoá ntậ p hợp (set operation )
i P h éphợp (Union operation )
Cho hai lược đ ồ quan h ệ Q1 v à Q2 c ó cùng tập thuộc tính {A1,A2,..,An}. r1 v à r2 lần lượt là hai quan h ệ trên
Q1 v à Q2. Phép hợp c ủ a hai lược đ ồ quan h ệ Q1 v à Q2 s ẽ tạo thành m ộ t lược đ ồ quan
h ệ Q3. Q3 được x ác định như sau:
Q3+= {A1,A2,..,An}
r3= r1+r2 = {t | t ∈ r1 hoặc t ∈ r2}
Ví dụ:
r1 r2 r3 = r1 + r2
MASV MAMH DIEMTHI MASV MAMH DIEMTHI MASV MAMH DIEMTHI
99001 CSDL 5.0 99002 CTDL 2.0 99001 CSDL 5.0
99002 CTDL 2.0 99001 TTNT 5.0 99002 CTDL 2.0
99003 MANG 8.0 99003 CSDL 6.0 99003 MANG 8.0
99001 TTNT 5.0
99003 CSDL 6.0
ii P h épGiao (Intersection):
Cho hai lược đ ồ quan h ệ Q1 v à Q2 c ó cùng tập thuộc tính {A1,A2,..,An}. r1 v à r2 lần lượt l à hai quan h ệ trên
Q1 v à Q2. Phép giao củ a hai lược đ ồ quan h ệ Q1 v à Q2 s ẽ tạo thành m ộ t lược đ ồ quan
h ệ Q3 như sau:
Q3+={A1,A2,..,An}
r3 = r1*r2= {t | t ∈ r1 v à t ∈ r2}
Ví dụ:
r1 r2 r3 = r1* r2

MASV MAMH DIEMTHI MAS MAMH DIEMTHI MAS MAMH DIEMTHI


99001 CSDL 5.0 V
99002 CTDL 2.0 V
99002 CTDL 2.0
99002 CTDL 2.0 99001 TTNT 5.0
99003 MANG 8.0 99003 CSDL 6.0

Sưu tầm Kiều Quang Hưng


iii P h épT rừ (Minus, difference)
Cho hai lược đ ồ quan h ệ Q1 v à Q2 c ó cùng tập thuộc tính {A1,A2,..,An}. r1 v à r2 lần lượt là hai quan h ệ
trên Q1 v à Q2. Phéptrừ lược đ ồ quan h ệ Q1 cho Q2 s ẽ tạo thànhm ộ tlược đ ồ quan h ệ Q3 như sau:
Q3+={A1,A2,..,An}
r3 = r1 - r2= {t | t ∈ r1 v à t ∉ r2}
Ví dụ:
r1 r2 r3 = r1 - r2
MASV MAMH DIEMTHI MASV MAMH DIEMTHI MASV MAMH DIEMTHI
99001 CSDL 5.0 99002 CTDL 2.0 99001 CSDL 5.0
99002 CTDL 2.0 99001 TTNT 5.0 99003 MANG 8.0
99003 MANG 8.0 99003 CSDL 6.0
iv Tích Descartes (Cartesian Product, product)
Cho hai lược đ ồ quan h ệ Q1(A1,A2,..,An), Q2(B1,B2,..,Bm). r1 v à r2 lần lượt là hai quan h ệ trên Q1 v à
Q2. Tích Descartes c ủ a hai lược đ ồ quan h ệ Q1 v à Q2 s ẽ tạo thànhm ộ tlược đ ồ quan h ệ Q3 như sau:
Q3+ = Q1+ ∪ Q2+= {A1,..., B1,...}
r3 = r1 x r2 = {(t1,t2)| t1 ∈ r1 v à t2 ∈ r2}
Ví dụ:
r1 r3 = r1 x r2
MASV MAMH DIEMTHI MASV MAMH DIEMTHI MAMH TENMH
99001 CSDL 5.0 99001 CSDL 5.0 CSDL CO SO DU LIEU
99002 CTDL 2.0 99001 CSDL 5.0 FOX FOXPRO
99003 MANG 8.0 99002 CTDL 2.0 CSDL CO SO DU LIEU
r2 99002 CTDL 2.0 FOX FOXPRO
MAMH TENMH 99003 MANG 8.0 CSDL CO SO DU LIEU
CSDL CO SO DU LIEU 99003 MANG 8.0 FOX FOXPRO
FOX FOXPRO

4 C á cph éptoá nquan hệ


i P h épChiếu(Projection)
Cho m ộtlược đ ồ quan h ệ Q(A1,A2,..,An). r là quan h ệ trên Q. X ⊆ Q+.
+
Phép chiếu củ a Q lên tập thuộctính X s ẽ tạo thành lược đ ồ quan h ệ Q’= Q[X], trong đ ó Q’ chính
l à X v à r’ chính l à r nhưng c h ỉ lấy cá c thuộctính c ủ a X.
Q’+ = X
r’ = r[X] = r.X = {t’|∃ t∈r v à t.X = t[X] = t’}
phép chiếu chính l à phép rú ttrích d ữ liệu theo c ộ t(chiều dọc) Ví dụ:
r r’ = r.{MAMH}
MASV MAMH DIEMTHI MAMH
99001 CSDL 5.0 CSDL
99002 CTDL 2.0 CTDL
99003 MANG 8.0 MANG
ii P h épChọn (Selection)
+
Cho lược đ ồ quan h ệ Q(A1,A2,..,An), r l à m ộ tquan h ệ trên Q. X⊂ Q v à E là m ộ tmệnh đ ề logic được phátbiểu trên
tập X. Phần t ử t∈r thoảm ãnđiều kiện E k ý hiệu là t(E).
Phépchọn t ừ r theo điều kiện E s ẽ tạo thànhm ộ tlược đ ồ quan h ệ Q’ như sau:
Q’+ = Q+
r’= r(E)= r:E ={t | t ∈ r v à t(E)}
phép chọn chính là phép rú t trích d ữ liệu theo dòng(chiềungang)
Ví dụ:
r r’= r:DIEMTHI >= 5
MASV MAMH DIEMTHI MASV MAMH DIEMTHI
99001 CSDL 5.0 99001 CSDL 5.0
99002 CTDL 2.0 99003 MANG 8.0
99003 MANG 8.0
iii P h épkết,P h épK ết Tự Nhiên (join, natural join):
Cho hai lược đ ồ quan h ệ Q1(A1,A2,..,An), Q2(B1,B2,..,Bm).
r1 v à r2 lần lượt là hai quan h ệ trên Q1 v à Q2.
Ai v à Bj lần lượt l à cá c thuộctính củ a Q1 v à Q2 sao cho MGT(AI) = MGT(BJ) (MGT: m iền g iá trị).
θ l à m ộtphép so sánhtrên MGT(AI).
Phépk ết giữaQ1 v à Q2 s ẽ tạo thànhm ộ tlược đ ồ quan h ệ Q3 như sau:
Q3+ = Q1+ ∪ Q2+
Aiθ Bj
r3=r1 |>< | r2 = {t12|∃ t1∈r1,∃ t2∈r2 sao cho
t12.Q1+ = t1
+
t12.Q2 = t2
t1.Ai θ
t2.Bj}
Ta rú t ra c á c bướccụ thể đ ể thực hiện phép kết như sau:
- Tạo tích descartes
- Thực hiện phép chọn theo điều kiện E=Ai θ Bj
Ví dụ:
Ai là thuộctính B, Bj l à thuộctính F v à θ là phép so sánh “>=”. Ta được kết q uả là quan h ệ sau:
B≥ F
r1 r2 r3 = r1 |>< | r2
A B C E F H A B C E F H
6 5 4 1 5 9 6 5 4 1 5 9
7 5 5 4 6 8 6 5 4 7 5 3
4 2 6 7 5 3 7 5 5 1 5 9
7 5 5 7 5 3
N ếu θ được s ử dụng trong phép kết là phép so sánh bằng (=) thì ta gọi là phép kết bằng. Hơn nữ a
nếu AI ≡ Bj thì phép kết bằng n à y được gọi là p h épk ế t tự nhiên. Phép kết tự nhiên là m ộ t phép kết thườngdùng nhất
trong thực tế .
Ví dụ: V ớ iAi ≡ Bj = MAMH
MAMH
r1 r2 r3 = r1 |>< | r2
MASV MAMH DIEMTHI MAMH TENMH MASV MAMH DIEMTHI TENMH
99001 CSDL 5.0 CSDL CO SO DU LIEU 99001 CSDL 5.0 CO SO DU LIEU
99002 CTDL 2.0 CTDL CAU TRUC DU LIEU 99002 CTDL 2.0 CAU TRUC DU LIEU
99003 MANG 8.0

iv P h épchia (division):
Cho hai lược đ ồ quan h ệ Q1(A1,A2,..,An), Q2(B1,B2,..,Bm).
r1 v à r2 lần lượt là hai quan h ệ trên Q1 v à Q2.
Ai v à Bj lần lượt l à cá c thuộctính củ a Q1 v à Q2 sao cho n>m.
Phépchia Q1 v à Q2 s ẽ tạo thànhm ộtlược đ ồ quan h ệ Q3 như sau:
Q3+ = {A1,...,An -m}
r3 = r1÷ r2 = {t3|∀t2∈r2, ∃ t1∈r1 t3=t1.{A1,...,An-m}
t2=t1.{An-m+1,...,An}}
Ví dụ:

r1 r2 r3 = r1  r2
A1 A2 A3 A4 A5 B1 B2 A1 A2 A3
a b d c g c g a b d
a b d e f e f e g c
b c e e f
e g c c g
e g c e f
a b e g e

5 C á ctính ch ấtc ủ ađại s ố quan hệ


Q là lược đ ồ quan h ệ q,r,s
l à quan h ệ trên Q,
+
E,E1,E2 là m ệnh đ ề logic trên Q
+
X1 ⊆ X2 ⊆ Q
Hãy chứngminh c á c tính chấtsau:

(r:E1):E2 = (r:E2):E1
Chứngminh:
(r:E1):E2 = {t’|t’∈(r:E1) v à t’(E2)}
= {t’|t’∈{t|t∈r v à t(E1)} v à t’(E2)}
= {t’∈r|t’(E1) v à t’(E2)}
= {t’|t’∈{t|t∈r v à t(E2)} v à t’(E1)}
= {t’|t’∈(r:E2) v à t’(E1)}
= (r:E2):E1
(r+s):E = (r:E)+(s:E)
Chứngminh:
(r+s):E = {t|t∈(r+s) v à t(E)}
= {t|t∈{t’|t’∈r hoặc t’∈s} v à t(E)}
= {t|(t∈r hoặc t∈s) v à t(E)}
= {t|(t∈r v à t(E)) hoặc (t∈s v à t(E))}
= {t|t∈{t’|t’∈r v à t’(E)} hoặc t∈{t’|t’∈s v à t’(E)}}
= {t|t∈(r:E) hoặc t∈(s:E)}
= (r:E)+(s:E)
(r*s):E = (r:E)*(s:E)
Chứngminh:
(r*s):E = {t|t∈(r*s) v à t(E)}
= {t|t∈{t’|t’∈r v à t’∈s} v à t(E)}
= {t|t∈r v à t∈s v à t(E)}
= {t|(t∈r v à t(E)) v à (t∈s v à t(E))}
= {t|t∈{t’|t’∈r v à t’(E)} v à t∈{t’|t’∈s v à t’(E)}}
= {t|t∈(r:E) v à t∈(s:E)}
= (r:E)*(s:E)
(r-s):E = (r:E)-(s:E)
Chứng minh:
(r-s):E = {t|t∈(r-s) v à t(E)}
= {t|t∈{t’|t’∈r v à t’∉s} v à t(E)}
= {t|t∈r v à t∉s v à t(E)}
= {t|(t∈r v à t(E)) v à (t∉s v à t(E))}
= {t|t∈{t’|t’∈r v à t’(E)} v à t∉{t’|t’∈s v à t’(E)}}
= {t|t∈(r:E) v à t∉(s:E)}
= (r:E)*(s:E)
V ớ i X2 ⊇ X1 ⇒ (r.X2).X1 = r.X1
Chứngminh:
(r.X2).X1 = {t.X1|t∈(r.X2)}
= {t.X1|t∈{t’.X2|t’∈r}}
= {(t’.X2).X1|t’∈r}
= {t’.X1|t’∈r} vì X1 ⊆ X2
= r.X1
E phátbiểu trên X ⇒ (r:E).X = (r.X):E
Chứngminh:
(r:E).X = {t.X|t∈(r:E)}
= {t.X|t∈{t’|t’∈r v à t’(E)}}
= {t.X|t∈r và t(E)}
= {t’|t’∈{t.X|t∈r} và t’(E)}
= {t’|t’∈(r.X) và t(E)}
= (r.X):E
q|><|r = r|><|q
Chứng minh:
(q|><|r) ={t12|∃ t1∈q,∃ t2∈r t12.Q+ = t1, t12.R+ = t2 t12.Aiθ t12.Bj}
= r|><|q

Ai∈Q,Bj∈S,Ck∈Q,Dl∈R ⇒ (q|><|r)|><|s = q|><|(r|><|s)


Chứngminh:
(q|><|r)|><|s ={t12|∃ t1∈(q|><|r),∃ t2∈s t12.Q+∪R+ = t1
t12.S+ = t2 t12.Aiθ 1t12.Bj}
={t12|∃ t1∈{u12|∃ u1∈q,∃ u2∈r u12.Q+=u1 u12.R+=u2
u1.Ckθ 2u2.Dl},
∃ t2∈s t12.Q+∪ R+ = t1,t12.S+=t2 t1.Aiθ 1t2.Bj}
={t123|∃ t1∈q,∃ t2∈r,∃ t3∈s t123.Q+=t1,t123.R+=t2 t123.S+=t3
t123.Aiθ 1t123.Bj t123.Ckθ 2t123.Dl}
={t12|∃ t1∈q,∃ t2∈{u12|∃ u1∈r,∃ u2∈s u12.R+=u1
u12.S+=u2 u1.Ckθ 2u2.Dl},t12.Q+=t1 t12.R+∪ S+=t2
t12.Aiθ 1t12.Bj}
={t12|∃ t1∈q,∃ t2∈(r|><|s),t12.Q+=t1
t12.R+∪S+=t2 t12.Aiθ 1t12.Bj}
=q|><|(r|><|s)
IV M ÔHÌNH THỰCTHỂ K Ế TH ỢP
1 G iớ ithiệum ô hình thực th ể k ết hợp
C ác nh à phân tích thiết k ế h ệ thống thông tin thườngxây dựng lược đ ồ cơ s ở d ữ liệ u (C1.III.2.ii) từ
m ô hình thực th ể kết hợp v à m ô hình n ày lại được xây dựng t ừ phần đặc tả vấn đ ề củ a m ộ tb à i toánthực tế .

Lược đ ồ cơ s ở d ữ liệu xây dựng theo hướngn ày thôngthường đạt tố i thiểu dạng chuẩn3 (3NF: third
normal form) nghĩa l à ở dạng c ó sự dư thừa d ữ liệu ở m ứ c tố i thiểu, c ò n m ôn CSDL xây dựng lược
đ ồ CSDL đạt dạng chuẩn 3 t ừ lược đ ồ cơ s ở d ữ liệu chưa đạt dạng chuẩn c ó kèm c á c tâ n từ
(C1.III.2.ii). Ta h ãy xem ví dụ sau:
i Ví d ụ – M ốiquan h ệ một-n h iề u
(a)Đ ặc tả v ấ n đề
Những người phụ trách đ ào tạo c ủ a Trườngcao đ ẳn gcộ ng đồn gn ú i Ayers mong m uốn tạo lập m ộ tCSDL v ề c á c
m ôn đ ào tạo củ a trường (như: chứng c h ỉ leo n ú i, công nghệ bay) v à học viên ghi danh v ào những m ôn học này.
Trườngcũngc ó qui định là cùng m ộ t lú c,học viên c h ỉ c ó thể ghi danh và om ột m ôn học. H ọ c h ỉ quan tâm v ề d ữ liệu
c ủ a đợt ghi danh hiện tại. Một khi học viên kết thúc m ôn học thì n h à trường s ẽ không c ò n quan tâm đến họ và
nhữnghọc viên n ày phảiđược x o á kh ỏiCSDL. Thông tin cần lưu trữ v ề m ộ t học viên bao gồm : m ã học viên, tên
học viên, địa chỉ, ngày sinh, s ố điện thoại, ngàynhập học
Thôngtin v ề m ôn học gồm m ã m ôn học, tên m ônhọc, th ờ ilượng
Phân tích:
- phần đặc tả vấn đ ề chứađựng c á c qui tắc quảnl ý v à d ữ liệu yêu cầu c ủ a vấn đề.
- d ữ liệu c ủ a vấn đ ề là : chi tiết v ề học viên c ó m ã học viên, tê n học v iên, địa c h ,ỉ n gà ysinh,
s ố đ iệ n thoại v à n gàynhập học chi tiết v ề m ôn học c ó m ã m ôn học, tê n m ôn học v à th ờ ilượng.
- qui tắ c quảnl ý gồm :
+ C ùngm ộ tlú c,m ộ thọc viên c h ỉ c ó thể ghi danh v ào m ộtm ônhọc.
+ Nhiều học viên c ó thể ghi danh v ào m ộtm ôn học.
+ N hàtrườngc hỉ quan tâm đến nhữnghọc viên c ủ a m ônhọc hiện tại.
(b)M ô hình thực th ể k ết hợp (M ôhình ER)

C áctính chấttrong m ô hình thực thể kết hợp:


- Hình c hữ nhật được gọi là tậ p thực th ể. T ên c ủ a tập thực thể được ghi bên trong hình c h ữ nhật v à dùng
danh t ừ đ ể đ ặt tên cho tập thực thể.
- Đườngn ố i giữa hai tập thực thể được gọi là mối quan h ệ (m ốik ế t hợp). M ối quan h ệ trong vấn đ ề trên là m ố i
quan h ệ m ột-nhiều(1:M). N ội dung c ủ a m ối quan h ệ được diễn t ả theo
hai chiều:“ghi danh vào”,“được ghi danh bởi”v à chúngdiễn t ả hai n ộ i dung sau:
+ M ỗi HỌC V IÊ Nc ó thể ghi danh v ào m ộ tM Ô NHỌC
+ M ỗiM Ô NHỌC phảiđược ghi danh b ở im ộ thay nhiều HỌC V IÊ N
- C ác d ữ liệu ghi bên cạnh tập thực thể được gọi là thuộc tính. Chúng cung cấp thông tin chi tiết v ề tập thực
thể. C ó hai loại thuộctính:
- Thuộctính nhận diện l à thuộctính đ ể phân biệt thực thể n ày v ớ ithực thể kia trong tập thực thể.
- Thuộctính m ô tả l à thuộctính cung cấp thôngtin chi tiết hơn v ề thực thể trong tập thực thể.
- M ốiquan h ệ củ a vấn đ ề trên l à m ố iquan h ệ m ột-nhiều.Tính chất nà y c ủ a m ố iquan h ệ gọi
là tính k ế tn ố icủ a m ốiquan hệ. Tính kết n ố i một-nhiềurất phổ biến trong m ô hình thực thể
k ết hợp. Hai loại kết n ố i c ò n lại ít phổ biến hơn nhưng không kém phần quan trọng là m ố iquan h ệ m ột-m ột
v à m ốiquan h ệ nhiều-nhiều.
ii Ví d ụ – m ố iquan h ệ một-m ộ t
(a)Đ ặc tả v ấ n đề
Phòng cảnh sá t mong muốn quản lý l ý lịch cá nhân những người lá i xe v à bằng lá i củ a họ. M ột người c h ỉ lấy
được m ộ t bằng lá i và m ột bằng lá i c hỉ thuộc v ề m ột người. Thông tin v ề lá i xe mà phòngcảnh s á t quan tâm là : m ã
ngườilá i xe, tên, địa chỉ,ngàysinh
Thông tin v ề bằng lá i cần lưu trữ là : mã bằng lái,loại bằng lá i,ngàyhết hạn
(b)M ô hình thực th ể k ết hợp

- m ỗ iN G Ư Ờ LI Á IXE phải s ở h ữ um ộtB Ằ N GL Á I


- m ỗ iB Ằ N GL Á Iphảiđược s ở h ữ ub ở im ộtN G Ư Ờ IL Á IXE
iii Ví d ụ – m ố iquan h ệ nhiều-nhiều
(a)Đ ặc tả v ấ n đề
Người phụ trách đ ào tạo Trường cao đẳng cộng đồng n ú i xanh mong m uốn thiết lập m ộ t csdl v ề cá c m ôn học m à họ
cung cấp (như chứngc h ỉ leo n ú i,cử nhân công nghệ bay) v à cá c học viên ghi danh
v ào cá c m ôn học này. N hà trường qui định là m ột học viên được ghi danh học tối đa ba m ôn học
trong cùng m ộ t lú c. H ọ c h ỉ quan tâm đến d ữ liệu c ủ a m ôn học hiện tại. M ột khi học viên kết thúc
m ôn học, họ s ẽ không c ò n thuộc diện quản l ý c ủ a n h à trườngv à phải được x o á k hỏ icsdl trừ khi học viên n ày ghi danh
học tiếp m ôn m ớ i. Thông tin v ề m ột học viên gồm : m ã học viên, tên học viên,
địa ch ỉ,ngàysinh, s ố điện thoại, ngàynhập học
Thông tin v ề m ônhọc gồm :m ã m ôn học, tên m ôn học, th ờ ilượng
(b)M ô hình ER

+ M ỗ iHỌC V IÊ Nc ó thể ghi danh v ào m ộ thay n hiềuM Ô NHỌC


+ M ỗ iM Ô NHỌC phảiđược ghi danh b ở im ộ thay nhiềuHỌC V IÊ N M hình
ô ER
trên c ó m ốiquan h ệ nhiều nhiều.
(c) Loại b ỏ tính k ết nối nhiều nhiều (n ếu được)
M ô hình trên gặp phảikhuyếtđiểm sau:
- N gàyn hậphọc là thuộc tính gắn liền v ớ i tậ p thực thể HỌC V IÊ Ns ẽ không hợp lý vì khôngdiễn tả được trường
hợp học viên học cùnglú c nhiều m ôn học.
- C ò nnếu n gà yn hậphọc là thuộctính củ a M Ô NHỌC thì khôngdiễn t ả được tình trạng cùng
môn học nhưng c ó cá c ngàynhập học khácnhau.

Đ ể g iảiquyếtvấn đ ề n ày ta phảiđưa vào:


- m ộ t tập thực thể làm trung gian giữa HỌC VIÊN v à M Ô NHỌC gọi là tập kết hợp PH IẾ UGHI DANH.
- Thuộc tính nhận diện củ a tập kết hợp là sự kết hợp giữa thuộc tính nhận diện c ủ a tập thực thể HỌC V IÊ Nv à
M Ô NHỌC
- thuộctính m ô t ả củ a tập kết hợp PHIẾU GHI DANH l à ngàynhập học
- tính k ết n ố i c ủ a tập kết hợp v ớ itập thực thể l à m ột-nhiều
N ộ idung c ủ a m ốiquan h ệ giữac á c tập thực thể là :
- m ỗ iHỌC V IÊ Nc ó thể c ó m ộthay nhiều PH IẾ UGHI DANH
- m ỗ iP H IẾ UGHI DANH phảithuộcv ề m ộ tHỌC V IÊ N
- m ỗ iP H IẾ UGHI DANH phảighi nhận đ ào tạo v ề m ộ tM Ô NHỌC
- m ỗ iM Ô NHỌC c ó thể được ghi nhận đào tạo b ở im ộ thay nhiều PH IẾ UGHI DANH
C ácqui tắ c phảituân th ủ khi thêm tậ p kết hợp làm trung gian đ ể loại b ỏ tính kết n ố i nhiều nhiều:
- P hảinhận diện được thuộctính m ô tả củ a tập kết hợp.
- N ếu c ó thuộctính m ô t ả thì tạo tập kết hợp làm trung gian giữahai tậ p thực thể.
- N ếu khôngc ó thuộctính m ô tả thì vẫn g iữ nguyên m ô hình như hình 1.4.4
2 Chuyểnt ừ m ô hình thực th ể k ết hợp sang lược đ ồ CSDL.
i Qui tắc chung
Khi biến đ ổ i m ô hình ER thànhc á c m ô hình quan h ệ ta á p dụng c á c qui tắc sau:
- M ỗitập thực thể trong m ô hình ER được chuyển thànhm ộ tlược đ ồ quan hệ.
- M ỗithuộctính trong m ô hình ER được chuyển thànhthuộctính trong lược đ ồ quan h ệ tương ứ n g
- M ỗi thuộc tính nhận diện trong m ô hình ER được chuyển thành khóa chính trong lược đ ồ quan h ệ
tương ứ ng.
- M ỗim ố iquan h ệ trong ER được chuyển thànhkhóangoại theo qui tắc sau
ii Qui tắc chuyểnm ố iquan h ệ thànhk h óangoại
(a)M ố iquan h ệ m ột-m ột
Chuyển khóa chính t ừ quan h ệ 1 sang quan h ệ 2 hay ngược lại. Ví dụ vấn đ ề ngườilá i xe v à bằng
lái s ẽ c ó m ô hình quan h ệ là m ộ ttrong hai m ô hình quan h ệ sau

(b)M ố iquan h ệ m ột-nhiều


Chuyển khóachính t ừ bên m ộ tsang bên nhiều.

(c) M ố iquan h ệ nhiềunhiềuđ ến tậ p kết hợp

Trong quan h ệ PH IẾ UGHI DANH c ó c á ckhóachính khóangoại như sau:


+ m ã học viên là khóangoại
+ m ã m ôn học là khóangoại
+ m ã học viên v à m ã m ônhọc là khóachính
(d)M ố iquan h ệ nhiều-nhiều
Tạo m ột quan h ệ m ớ i c ó khóa chính là sự kết hợp cá c khóa chính c ủ a hai quan h ệ c ó tính kết n ố inhiều nhiều.
Ví dụ g iả sử TrườngCao Đ ẳng C ộng Đồng N ú iXanh không quan tâm đến ngày nhập học củ a học
viên thì m ô hình ER s ẽ c ó m ố iquan h ệ nhiều nhiều như sau:

V B À IT Ậ P
1 P héptoántậ p hợp và ph éptoá nquan hệ
Cho lược đ ồ cơ s ở d ữ liệu dùng đ ể quản lý h ồ sơ sinh viên bao gồm cá c quan h ệ Sv(sinh viên), Lop(Lớp),
kh(khoa), Mh(mônhọc), Kq(kếtquả)được m ô t ả b ở icá c lược đ ồ quan h ệ như sau:
Sv(MASV,HOTEN,NU,NGAYSINH,MALOP,TINH,HOCBONG)
T ân từ : M ỗi sinh viên c ó m ỗi MASV duy nhất. M ỗi MASV x ác định tấ t c ả c á c thuộctính c ò nlại củ a
sinh viên đ ó .
Lop(MALOP,TENLOP,SISO,MAKHOA)
T ân từ : M ỗilớ p c ó m ộtm ã lớ p duy nhất, m ỗ ilớ p c h ỉ thuộcv ề m ộtkhoa n ào đ ó .
Kh(MAKHOA,TENKHOA,SOCBGD)
Tân từ : M ỗi khoa c ó m ỗ i MAKHOA duy nhất. M ỗi MAKHOA x ác định tấ t c ả c á c thuộc
tính c ò n lại c ủ a khoa đ ó .
Mh(MAMH,TENMH,SOTIET)
T ân từ : M ôiM ôn học c ó m ộtMAMH duy nhất. M ỗiMAMH x á c địn htấ t c ả cá c thuộctính c ò n lại củ a
m ôn học đ ó .
Kq(MASV,MAMH,DIEMTHI)
T â ntừ : M ỗisinh viên cùngv ớ im ộ tm ôn học x ác định duy nhấtm ộ tđiểm thi
Y Ê UC Ầ U :
1. Tìm khóacho m ỗilược đ ồ quan h ệ trên.
2. H ãythực hiện cá c câu h ỏ isau bằng ngônn g ữ đại số quan h ệ
a. L ập danh sáchsinh viên gồm MASV, HOTEN, HOCBONG
b. L ập danh s á c hsinh viên n ữ khoa ‘CNTT’,danh sáchcần MASV, HOTEN, HOCBONG
c. L ập bảng điểm cho tấ t c ả sinh viên khoa ‘CNTT’, bảng điểm gồm c á c cộ t MASV, HOTEN,
TENMH, DIEMTHI
d. L ập phiếu điểm cho sinh viên c ó MASV=”99001”
e. L ập danh sách sinh viên gồm MASV,HOTEN,TENLOP, TENKHOA
f. L ập bảng điểm m ôn học c ó m ã m ôn học là CSDL cho tấ t c ả sinh viên c ó m ã lớ p là
“CĐTH2B”
g. L ập danh sách sinh viên củ a lớ p c ó m ã lớ p là “CĐTH2B” v à c ó điểm thi m ôn học lớ nhơn hay bằng 8.
2 M ô hình thực th ể k ết hợp
Dựa v ào c á c phân tích sơ b ộ dư ớ iđây, h ãy lập m ô hình thực thể kết hợp cho m ỗi b à i toán quản l ý sau:
i Q U Ả NL Ý LAO Đ Ộ N G
Đ ể quản lý việc phân công cá c nhân viên tham gia v ào xây dựng cá c công trình. Công ty xây dựng
ABC tổ chứ cquảnl ý như sau:
C ùng lú c công ty c ó thể tham gia xây dựng nhiều công trình, m ỗ i công trình c ó m ộ t m ã s ố công trình duy
nhất (MACT), m ỗi m ã số công trình xác định c á c thông tin như: tên gọi công trình (TENCT), địa
điểm(ĐIAĐIEM), ngày công trình được cấp giấy phép xây dựng (NGAYCAPGP), ngày khởi công
(NGAYKC), ngàyhoànthành(NGAYHT).
M ỗi nhân viên củ a công ty ABC c ó m ộ t m ã số nhân viên(MANV) duy nhất, m ộ t m ã s ố nhân viên x á c định cá c
thông tin như: H ọ tên (HOTEN), ngày sinh (NGAYSINH), phái (PHAI), địa c h ỉ (ĐIACHI). M ỗi
nhân viên phải chịu sự quản l ý hành chánh b ở i m ột phòng ban. T ất nhiên m ộ tphòngban quảnlý hànhchánh
nhiều nhân viên. Công ty c ó nhiều phòngban (Phòngk ế toán,phòngkinh doanh, phòng k ỹ thuật, phòng tổ chức,
phòngchuyên m ôn, Phòngphục v ụ ,… ).M ỗi phòngban
c ó m ộ tm ã s ố phòngban(MAPB) duy nhất,m ã phòngban x ác định tên phòngban (TENPB).
Công ty phân công c á c nhân viên tham gia v ào c á c công trình, m ỗi công trình c ó thể được phân cho nhiều nhân
viên v à m ỗ i nhân viên cùng lú c cũng c ó thể tham gia và o nhiều công trình. Với m ỗ icông trình m ộ t nhân viên c ó
m ột số lượng ngày công (SLNGAYCONG) đ ã tham gia v ào công trình
đó.
ii Q U Ả NL Ý THƯ V IỆ N
M ộtthư viện tổ chứ cviệc cho mượn sáchnhư sau:
M ỗi quyển sách được đánh m ộ t m ã sách (MASH) dùng đ ể phân biệt v ớ i cá c quyển sách khác (g iả
s ử nếu m ộ t tá c phẩm c ó nhiều b ản giống nhau hoặc có nhiều tập thì cũng xem là c ó m ã sách khácnhau), m ỗ i m ã
sách x á c định cá c thông tin khác như : tên sách (TENSACH), tên tá c g iả (TACGIA), n h à xuất b ản (NHAXB),
năm xuấtb ản (NAMXB).
M ỗiđọc g iả được thư viên cấp cho m ộ tth ẻ thư viện, trong đ ó c ó ghi r õ m ã đọc g iả (MAĐG), cùng
v ớ i cá c thông tin khác như : họ tên (HOTEN), ngày sinh (NGAYSINH), địa c h ỉ (ĐIACHI), nghề
nghiệp(NGHENGHIEP).
C ứ m ỗ i lượt mượn sách,đọc g iả phải ghi c á c quyển sách cần mượn và o m ộ t phiếu mượn, m ỗi phiếu mượn c ó m ột s ố
phiếu mượn (SOPM) duy nhất, m ỗi phiếu mượn x ác định c á c thông tin như: ngày mượn (NGAYMUON),
đọc g iả mượn, c á c quyển sách mượn v à ngày trả (NGAYTRA). C ác cá c quyển sách trong cùngm ột phiếu
mượn khôngnhấtthiết phảitrả trong trong cùngm ộ tngày.
iii Q U Ả NL Ý B Á NH À N G
M ỗikháchhàng c ó m ộ tm ã khách hàng(MAKH) duy nhất, m ỗ iMAKH x ác định được cá c thôngtin
v ề khách hàng như : họ tên khách hàng (HOTEN), địa c hỉ (ĐIACHI), s ố điện thoại (ĐIENTHOAI). C ác m ặt
hàng được phân loại theo từ ng nhóm hàng,m ỗ i nhóm hàng c ó m ộ t m ã nhóm (MANHOM) duy nhất, m ỗ i m ã nhóm
hàng x á c định tên nhóm hàng (TENNHOM), tấ t nhiên m ột nhóm hàng c ó
th ể c ó nhiều m ặt hàng.M ỗi m ặt hàng được đánh m ộ t m ã số (MAHANG) duy nhất, m ỗ i m ã s ố n ày
x ác định c á c thôngtin v ề m ặt hàng đ ó như : tên hàng (TENHANG), đơn g iá bá n (ĐONGIA), đơn v ị
tính (ĐVT). M ỗih ó a đơn b án hàngc ó m ộts ố h óa đơn (SOHĐ) duy nhất,m ỗihó a đơn x á c định được kháchhàng v à
ngày lậ p h ó a đơn (NGAYLAPHĐ), ngày b án hàng (NGAYBAN). V ớ im ỗi m ặt hàngtrong m ộ th óa đơn cho biết
s ố lượng b án (SLBAN) c ủ a m ặthàngđ ó .
iv Q U Ả NL Ý LỊCHDẠY - H Ọ C
Đ ể quảnlý lịch dạy củ a cá c giáoviên v à lịch học củ a cá c lớp, m ộ ttrường tổ chứ cnhư sau:
M ỗigiáo viên c ó m ộ t m ã s ố giáo viên (MAGV) duy nhất, m ỗ i MAGV x ác định c á c thôngtin như: họ
v à tên giáo viên (HOTEN), s ố điện thoại (DTGV). M ỗi giáo viên c ó thể dạy nhiều m ôn cho nhiều khoa nhưng c h ỉ
thuộcsự quảnl ý hànhchánhc ủ a m ộ tkhoa n ào đ ó .
M ỗi m ôn học c ó m ộ t m ã số m ôn học (MAMH) duy nhất, m ỗ i m ôn học x ác định tên m ôn học
(TENMH). ứ n g v ớ im ỗilớ p thì m ỗ im ôn học c hỉ được phân cho m ộ tgiáoviên.
M ỗi phòng học c ó m ột số phòng học (SOPHONG) duy nhất, m ỗ i phòng c ó m ột chứ c năng
(CHUCNANG); chẳng hạn như phòng lý thuyết, phòng thực hành m áy tính, phòng nghe nhìn, xưởngthực tậ p
cơ khí,…
M ỗi khoa c ó m ộ t m ã khoa (MAKHOA) duy nhất, m ỗ i khoa x á c định cá c thông tin như: tên khoa
(TENKHOA), điện thoại khoa(DTKHOA).
M ỗi lớ p c ó m ộ t m ã lớ p (MALOP) duy nhất, m ỗi lớ p c ó m ột tên lớ p (TENLOP), sĩ số lớ p (SISO). M ỗilớ p c ó th ể
học nhiều m ôn của nhiều khoa nhưng c h ỉ thuộcsự quảnl ý hànhchính củ a m ột khoa n ào đ ó .
H àngtuần, m ỗi giáo viên phảilập lịch b áo giảngcho biết giáo viên đ ó s ẽ dạy nhữnglớ p nào,ngày
n ào (NGAYDAY), m ôn gì?, tại phòngnào, t ừ tiết n ào (TUTIET) đến tiết n ào (DENTIET),tựa đ ề
b à i dạy (BAIDAY), ghi c h ú (GHICHU) v ề cá c tiết dạy này,đây l à g iờ dạy lý thuyết(LYTHUYET)
hay thực hành- g iả s ử nếu LYTHUYET=1 thì đ ó là g iờ dạy thực hànhv à nếu LYTHUYET=2 thì đ ó là
g iờ lý thuyết, m ộ t ngày c ó 16 tiết, sáng t ừ tiết 1 đến tiết 6, chiều t ừ tiết 7 đến tiết 12, tố i t ừ tiết 13
đến 16.

----oOo----
Chương 2 .

N G Ô NN G ỮTRUY V Ấ NSQL
I C Á C HTẠ O QUAN H ỆB Ằ N GACCESS
Microsoft Access là m ộ t h ệ quản trị cơ s ở d ữ liệu quan hệ. Ta c ó thể dùng HQTCSDL Access hay gọi tắ t là
Access đ ể thực hànhm ô hình quan hệ.
Sau đây ta s ẽ tạo lược đ ồ csdl quảnlý sinh viên như ở trang 6 c ủ a tà i liệu.
+ K hở iđộngAccess: Start-> Programs-> Microsoft Access.
+ Tạo lược đ ồ csdl rỗng c ó tên l à qLSV: Blank Database->OK->qLSV->Create
+ Tạo quan h ệ bằng cách:Tables->New->Design View->OK

o Data type là Text (kiểu chuỗi),Yes/No (Kiểu luận lý ),Date/Time (kiểu ngày tháng),
Currency (kiểu số )
o Field size là kích thướckiểu d ữ liệu
+ Khi tạo xong c á c thuộc tính v à khóa chính ta lưu lại v à đ ặt tên cho quan h ệ Sv bằng cách :
File->Close->Yes->Sv->OK.
+ Tạo c á c quan h ệ c ò n lại theo bước3 v à 4
+ Nhập d ữ liệu cho quan h ệ Sv bằng cách:Tables->Sv->Open
II C Â UL Ệ N HTRUY V Ấ N
1 B IỂ UT H Ứ C(EXPRESSION)
C ác thành phần tạo nên biểu thứ c bao gồm :Literal
value
L à cá c d ữ liệu c ó g iá trị đúngnhư văn b ản thể hiện.
D ữ liệu chuỗi c ó dạng: “New York” D ữ
liệu số c ó dạng: 1056; 1056.25
D ữ liệu ngày c ó dạng: #1-Jan-94#; #12/2/2001#
Constant
Là m ộttên đại diện cho m ộtg iá trị khôngthay đ ổ inhư :
Const G iátrị đại d iện
True -1
False 0
Null 0
Toánt ử s ố học:
T oántử Ý nghĩa Ví d ụ K ết q u ả
+ Cộngsố học 5+2 7
Cộngngày #28/08/01# + 4 #01/09/01#
- T rừ s ố học N gày 5-2 3
trừ s ố N gày trừ #02/09/01# - 3 #30/08/01#
ngày #29/9/01#-#24/3/84# 16.597
* Phépnhân 5*2 10
/ Phépchia 5/2 2.5
\ Chia nguyên 5\2 2
^ L u ỹthừa 5^2 25
Mod L ấy s ố dư củ a phép chia 5 Mod 2 1
Toánt ử luận lý
T oánt ử Ý nghĩa Ví d ụ K ết Q u ả
Not Luậtp h ủ định Not True False
Not False True
And Luậtv à True And True True
True And False False
False And True False
False And False False
Or Luậthay True Or True True
True Or False True
False Or True True
False Or False False
Toánt ử so sánh
T oánt ử Ý nghĩa Ví d ụ K ết q u ả
< N hỏhơn 2<5 True
<= N hỏhơn hay bằng 2 <= 5 True
> L ớ nhơn 2>5 False
>= L ớ nhơn hay bằng 2 >= 5 False
= Bằng nhau 2=5 False
<> K hácnhau 2 <> 5 True
C áctoánt ử khác
T oántử Ý nghĩa Ví d ụ K ết q u ả
Between ... And ... G iữa hai g iá trị. 2 Between 1 And 5 True
D ùngtrong query
Like Giốngnhư “Hung” Like “Hu*” True
& N ốichuỗi “Nguyễn Văn” & “Hùng” “Nguyễn V ăn Hùng”
V ớ itoántử like ta c ó thể dùngcá c k ý tự đại diện sau:
Wildcard characters
K ý tự Ý nghĩa Ví d ụ
? Đại diện cho m ộtk ý tự b ất k ỳ A? -> AN, AM, AC
* Đại diện cho m ộtchuỗik ý tự b ất k ỳ . A* -> AI, ANH,
# Đại diện cho m ộtk ý s ố A## ->A13, A24, A35
[] Đại diện cho c á c k ý tự nằm trong A[IN] -> AI, AN
- Đại diện cho c á c k ý tự nằm trong khoảng A[M-O] -> AM, AN, AO
! Đại diện cho k ý tự khôngphảik ý tự nằm sau ! A[!C] -> AA, AB, AD, AE, ...
H àm:
H àm c ó dạng tenHam(danhSachDoiSo). H àm luôn luônđại diện cho m ộ ttrị gọi là trị trả về.
IIf(điềukiện,trị 1, trị 2)
Kiểm tra điều kiện,nếu điều kiện đúngtrả trị 1 ngược lại trả trị 2
Ví dụ: IIf(namNu = 1, “Nam”,”Nu ”)
Date()
T rả v ề ngàythángnăm củ a h ệ thống.
Now(biểuthức ngày)
T rả v ề g iờ ,phút,giây,ngàythángnăm củ a h ệ thống.
Time(biểuth ứ cngày)
T rả v ề g iờ ph útgiây c ủ a h ệ thống.
Day(biểuthức ngày)
T rả v ề m ộts ố t ừ 1 đến 31 là ngàycủ a Date.
Month(biểuth ứ cngày)
T rả v ề m ộts ố t ừ 1 đến 12 là thángc ủ a Date
Year(biểuth ứ cngày)T rả
v ề năm củ a ngày Len(
b iể uthức chuỗi)
T rả v ề chiều d àicủ a chuỗi.
Chr(mãAscii)
T rả v ề k ý tự c ó m ã ASCII tương ứn g .
InStr(Start, s1, s2)
T rả v ề v ị trí chuỗis2 nằm trong s1
LCase(s), UCase(s)
Đ ổ ichuỗis thànhchuỗigồm c á c k ý tự thường(hoa)
Left(s, n), Right(s, n)
T rả v ề chuỗigồm n k ý tự bên trá i(phải)c ủ a chuỗis
Mid(s, i, n)
T rả v ề chuỗicon củ a chuỗis, gồm n k ý tự k ể t ừ k ý tự th ứ i
Nz(v1, v2)
N ếu v1 = Null thì T rả v ề v2, ngược lại trả v ề v1
C áchàm tính toántrên nhóm :
SUM (thuộctính )
Tính tổng g iá trị củ a thuộctính củ a cá c b ộ trong bảng
MAX( thu ộctính)
tính g iá trị lớ n nhấtcủ a thuộctính củ a cá c b ộ trong bảng
MIN(thuộctính)
tính g iá trị n h ỏnhấtcủ a thuộctính củ a cá c b ộ trong bảng
AVG(thuộctính>)
tính g iá trị trung bình củ a thuộctính củ a cá c b ộ trong bảng
COUNT(thuộc tính)
c h ỉđếm nhữngb ộ m à g iá trị củ a thuộctính là khácNULL Biểu thứ c
Biểu th ứ c là tổ hợp cá c toán tử , literal value, hằng, tên hàm , tên thuộc tính. Biểu thứ c
được lượng giá thànhm ộtgiá trị.
2 C Â UL Ệ N H SQL
SQL l à ngôn n g ữ truy vấn dựa trên đại s ố quan hệ. C âu lệnh củ a SQL dùng đ ể rú t trích d ữ liệu c ủ a m ộ t m ột hay
nhiều quan hệ. K ết q u ả củ a m ộ t câu lệnh SQL (truy vấn) là m ột quan hệ. Đ ể đơn giản trong cách trình bày, ta
xem quan h ệ m à câu truy vấn s ử dụng đ ể tạo ra quan h ệ khác gọi l à quan h ệ nguồn,quan h ệ kết q u ả củ a truy vấn là
quan h ệ đích.
i Truy v ấ nđ ịn hnghĩa d ữ liệu (data definition query)
Tạo lược đ ồ quan h ệ rSV:
+ Create Table rSV (MASV Text (10) CONSTRAINT khoaChinh
PRIMARY KEY,HOTEN Text (30), NU YesNo, NGAYSINH Date, MALOP
Text (10), TINH Text (50), HOCBONG Double )
Tạo lược đ ồ quan h ệ rKQ:
+ Create Table rKQ (MASV text (10),MAMH Text (10), DIEMTHI
Double,CONSTRAINT khoaChinh PRIMARY KEY (MASV,MAMH) )
C hú ý: Hai cá ch tạo trên cho ta thấy hai cá c htạo k h ó a: kh óa chỉ g ồ mm ộ t thuộctính v à khó a c ó nhiềuthuộctính
Thêm cộ tDTHOAI c ó kiểu d ữ liệu text 20 k ý tự và o lược đ ồ quan h ệ rSV:
+ Alter Table rSV Add Column DTHOAI Text (20)
S ử a kiểu kiểu d ữ liệu c ủ a m ộtcộ :t
+ Alter Table rSV Alter Column DTHOAI double
X óac ộ tcủ a m ộ tlược đ ồ đ ã có:
+ Alter Table rSv Drop Column DTHOAI
X óaràng buộckhóachính:
+ Alter Table rSv Drop Constraint khoaChinh
Thêm ràng buộckhóachính:
+ Alter Table rSv Add Constraint khoaChinh Primary Key (MASV)
Thêm ràng buộcm iền g iá trị:
+ ALTER TABLE doc_exd WITH NOCHECK ADD CONSTRAINT exd _check CHECK (column_a > 1)
ii Truy v ấ nchọn (select query)
Khi c ó nhu cầu thể hiện c á c dòng d ữ liệu củ a m ộ t quan h ệ hay củ a nhiều quan h ệ d ư ới dạng m ộ tquan h ệ c ó s ố c ộ t v à
s ố dòng theo ý m uốn như bảng điểm của sinh viên, danh sách sinh viên thì ta
s ử dụng truy vấn chọn.

Đ ể truy vấn chọn ta s ử dụng câu lệnh SQL sau:

Select [Distinct|Top n[%]] field1 [As alias1][,field2 [As alias2][,...]]


From table1 [Inner Join table2 On table1.field1 θ table2.field2] ...
[Where dieuKien]
[Order By field1[Asc|Desc][,field2[Asc|Desc]][,...]]];
Distinct: loại b ỏ cá c b ộ trùngtrong quan h ệ đích
Top n[%]: Chọn n hay n% m ẫu tin đầu tiên.
table: Tên table hay query chứad ữ liệu.
field: T ên field hay m ộ tbiểu thức.
Alias: Trườnghợp field là m ộ tbiểu thứ cthì <Alias> l à m ộ ttên m ớ ic ủ a biểu thức.
Inner Join: m ỗ i m ẫu tin củ a table1 n ố i v ớ i b ất k ỳ m ẫu tin n ào củ a table2 c ó d ữ liệu củ a field1 thỏa m ãnđiều kiện so
sánhv ớ id ữ liệu c ủ a field2 tạo thànhm ẫu tin c ủ a query.
đ iềukiện:B iểu thứ cm à d ữ liệu m ẫu tin phảithỏam ãn
C h ú ý:
Khi nêu r õ thuộctính đ ó thuộcv ề quan h ệ nà o ta viết theo c ú pháptênQ uanH ệ.tênThuộcTính .

Ví dụ: L ập danh sáchsinh viên gồm MASV,HOTEN,HOCBONG


SELECT MASV,HOTEN,HOCBONG
FROM Sv;

Ví dụ: L ập danh sáchsinh viên n ữ , c ó học bổngthuộcc ó m ã lớ p l à “CĐTH2B”.


SELECT MASV,HOTEN,HOCBONG
FROM Sv
WHERE NU And MALOP='CĐTH2B' And HOCBONG>0;

Ví dụ: L ập danh sách sinh viên gồm MASV,HOTEN,HOCBONG trong đ ó học bổng được sắp giảmdần
SELECT MASV,HOTEN,HOCBONG
FROM Sv
ORDER BY HOCBONG DESC;
Ví du : L ập danh sáchsinh viên gồm MASV,HOTEN,TENLOP
SELECT MASV,HOTEN,TENLOP
FROM Sv Inner Join Lop On Sv.MALOP=Kh.LOP;
Ví dụ: L ập danh sách sinh viên c ó MASV,HOTEN,NU,NGAYSINH,DIEMTHI v ớ i điểm thi m ôn
‘CSDL’ >= 8
SELECT Kq.MASV,HOTEN,NU,NGAYSINH,DIEMTHI
FROM Kq Inner Sv On Kq.MASV = Sv.MaSV
WHERE MAMH='CSDL' AND DIEMTHI>=8;
Ví dụ: L ập danh sáchsinh viên c ó ho là “NGUYEN”
SELECT *
FROM Sv
WHERE HOTEN Like “NGUYEN*”;
iii Truy v ấ nnhómd ữ liệu (Select query c ó group by)
Khi c ó nhu cầu chia c á c b ộ theo từn g nhóm rồ i tính toán trên từn g nhóm nà y như tính điểm trung bình củ a tấ t c ả cá c
m ôn học c ủ a từ ngsinh viên,hay là cần tính số lượng sinh viên củ a m ỗ ilớ p , hay
l à cần biết tổng s ố m ôn m à m ộtsinh viên đã đăng k ý học thì ta s ử dụng truy vấn theo nhóm .

Đ ể truy vấn cộngnhómta s ử dụng câu lệnh SQL sau:

Select [Distinct|Top n[%]] field1 [As alias1][,field2 [As alias2][,...]]


From table1 [Inner Join table2 On table1.field1 θ table2.field2] ...
[Where dieuKienLocMauTinNguon]
[Group By fieldGroupBy[,fieldGroupBy[,...]]
[Having dieuKienLocMauTinTongHop]
[Order By field1[Asc|Desc][,field2[Asc|Desc]][,...]]];
điềuKiệnLọcM ẫuTinNguồn: điều kiện m à c á c m ẫu tin nguồn phải thỏa m ãn (phép chọn) fieldGroupBy: tên field
m à cá c m ẫu tin c ó d ữ liệu giốngnhau trên ấ y được xếp v ào cùngnhóm .điềuKiệnLọcM ẫuTinTổngHợp : điều kiện m à
c á c m ẫu tin tổng hợp phảithỏam ãn(phépchọn)

Ví du: ï L ập danh sáchsinh viên c ó đăng k ý ít nhấtlà ba m ôn học


SELECT Kq.MASV,HOTEN,NU,NGAYSINH,COUNT(MAMH) As SLMH
FROM Sv Inner Join Kq On Sv.MASV = Kq.MASV
GROUP BY Kq.MASV,HOTEN,NU,NGAYSINH
HAVING COUNT(MAMH)>=3;

Ví du: Đếm s ố lượng sinh viên n ữ củ a m ỗ ikhoa


SELECT Kh.MAKHOA,TENKHOA,COUNT(Kh.MAKHOA) AS SOLUONG
FROM (Sv Inner Join Lop On Sv.MALOP = LOP.MALOP)
INNER JOIN Kh On Lop.MAKHOA=Kh.MAKHOA
WHERE NU
GROUP BY Kh.MAKHOA,TENKHOA;

iv Truy v ấ nlồn gnhau (nested query , sub query)


L à những câu lệnh truy vấn m à trong thành phần WHERE hay HAVING c ó chứa thêm m ộ t câu lệnh Select
khác. C âu lệnh select khác n ày gọi l à subquery. Ta lồng câu Select v ào phần Where hay Having theo c ú
phápsau:
o bieuthuc toanTuSoSanh [ANY | ALL | SOME] (cauLenhSQL)

ANY, SOME là b ất k ỳ, ALL là tấ t c ả

C ácm ẫu tin củ a query chính thỏam ãntoánt ử so sánhv ớ ibấ t k ỳ /tấ t c ả m ẫu tin n ào củ asubquery

o bieuThuc [NOT] IN (cauLenhSQL)

C ácm ẫu tin củ a query chính c ó g iá trị bằng v ớ im ộ tg iá trị trong subquery

o [NOT] EXISTS (cauLenhSQL).

C ácm ẫu tin củ a query chính thỏa m ãnkhi subquery c ó m ẫu tin


Ví du: L ập danh sáchsinh viên c ó học bổngcao nhất
SELECT *
FROM Sv
WHERE HOCBONG>=ALL(SELECT HOCBONG FROM SV);

Ví du: L ập danh sách sinh viên c ó điểm thi m ôn CSDL cao nhất SELECT
SV.MASV,HOTEN,NU,NGAYSINH,DIEMTHI FROM sv
Inner Join kq On Sv.MASV = Kq.MASV WHERE
MAMH='CSDL' AND DIEMTHI >= ALL
(SELECT DIEMTHI FROM KQ WHERE MAMH='CSDL');
Hiểu v à vận dụng tố t lệnh truy vấn d ữ liệu là m ột việc làm cực k ỳ cần thiết đ ể tạo ra cá c kết q u ảcho b áo cáo ,thốngk ê s ố
liệu.
v Truy v ấ ncập n hậtd ữ liệu (action query, data modification query)
C ú pháp: Update table Set field1 = biểuThức1
, field2 = biểuThức2Where điềuK iện
C ú pháp: Delete From table Where điềuKiện
vi Truy vấ n hợp (union query)
Khi c ó nhu cầu thực hiện truy vấn c ó kết q uả như toánt ử hợp, ta s ử dụng câu lệnh SQL sau:
Select .....Union Select ....
Ví du: Lệnh sau đây gấp đ ô i danh sáchsinh viên
SELECT MASV,HOTEN,NGAYSINH UNION SELECT MASV,HOTEN,NGAYSINH
III B À IT Ậ P
1/ Cho lược đ ồ CSDL quảnlý sinh viên.H ãythực hiện cá c câu truy vấn sau
a) L ập danh sáchnhữngsinh viên nam củ a tỉnh “LONG AN” học khoa “CNTT”, danh sáchc ầ n
tấ t c ả cá c thuộctính c ủ a quan h ệ Sv.
b) L ập danh sách những sinh viên c ó điểm thi < 5 (thi lại), danh sách cần
MASV,HOTEN,TENMH, DIEMTHI v à được sắp tăng dần theo c ộ tMASV.
c) L ập danh sách c á c sinh viên c ó điểm thi trung bình c á c m ôn < 5, danh sách cần
MASV,HOTEN, DIEMTRUNGBINH v à được sắp tăng d ầ ntheo c ộ tMASV.
d) Tổngs ố tiền học bổngc ủ a m ỗikhoa
e) Những sinh viên n ào đăng k ý học nhiều hơn 3 m ôn học, danh sách cần
MASV,HOTEN,SOLAN_DANGKY
f) L ập danh sách sinh viên c ó điểm trung bình cao nhất, danh sá c h cần MASV, HOTEN,
NGAYSINH, DIEMTRUNGBINH

2/ Cho lược đ ồ CSDL dùngđ ể quảnlý lao độngbao gồm c á c lược đ ồ quan h ệ sau:
Nhanvien(MANV,HOTEN,NGAYSINH,PHAI,DIACHI,MAPB)
T ân từ : M ỗi nhân viên c ó m ộ t m ã số nhân viên (MANV) duy nhất. M ột m ã số nhân viên x á cđịnh c á c thông
tin như họ tên (HOTEN), ngày sinh (NGAYSINH), phái (PHAI), địa c h ỉ (DIACHI) v à phòng
ban (MAPB) nơi quảnl ý nhân viên.
Phongban(MAPB,TENPB)
T ân từ : M ỗi phòng ban c ó m ột m ã phòng ban (MAPB) duy nhất, m ã phòng ban x ác định tên phòng ban
(TENPB)
Cong(MACT,MANV,SLNGAYCONG)
T ân từ : Lược đ ồ quan h ệ Cong ghi nhận s ố lượng ngày công (SLNGAYCONG) củ a m ộ t nhânviên (MANV)
tham gia v ào côngtrình (MACT).
Congtrinh(MACT,TENCT,DIADIEM,NGAYCAPGP,NGAYKC,NGAYHT)
T ân từ : M ỗi công trình c ó m ột m ã s ố công trình (MACT) duy nhất. M ã số công trình x ác định c á c thông tin như
tên gọi công trình (TENCT), địa điểm (DIADIEM), ngày công trình được cấp giấy phép xây dựng
(NGAYCAPGP), ngày kh ởi công (NGAYKC), ngày hoàn thành
(NGAYHT).
H ãythực hiện c á c câu h ỏ isau bằng SQL
a) Danh sách nhữngnhân viên c ó tham gia và o công trình c ó m ã công trình (MACT) l à X. Y êu cầu cá c th ô n g
tin: MANV,HOTEN, SLNGAYCONG, trong đ ó MANV được s ắ ptăng dần.
b) Đếm s ố lượng ngày công c ủ a m ỗ i công trình. Y êu cầu cá c thông tin: MACT, TENCT,
TONGNGAYCONG (TONGNGAYCONG là thuộc tính tự đặt)
c) Danh sách những nhân viên c ó sinh nhật trong tháng 8. yêu cầu cá c thông tin: MANV, TENNV,
NGAYSINH, ĐIACHI,TENPB, sắp xếp quan h ệ kết q u ả theo th ứ tự tuổigiảm dần.
d) Đếm số lượng nhân viên củ a m ỗi phòng ban. Y êu cầu c á c thông tin: MAPB, TENPB,
SOLUONG. (SOLUONG l à thuộctính tự đặt.)

3/ Cho c á c quan h ệ sau:


Monhoc(MSMH ,TENMH,SOTINCHI ,TINHCHAT)
MSMH m ã s ố m ôn học,
TENMH tên m ôn học
SOTINCHI s ố lượng tín chỉ,
TÍNH C H Ấ T bằng 1 nếu đ ó là m ôn học b ắt buộc,bằng 0 nếu đ ó l à m ônhọc khôngb ắ t buộc
Sinhvien(MSSV,HOTEN,NGAYSINH,LOP)
MSSV m ã s ố sinh viên,
HOTEN họ tên sinh viên
NGAYSINH ngày sinh,
LOP(C,4,0) lớ p
Diem(MSSV,MSMH,DIEMTHI)
DIEMTHI điểm thi

H ãydùnglệnh SQL đ ể thực hiện c á c câu lệnh sau:


a) H ãycho biết nhữngm ôn học b ắ t buộcc ó SOTINCHI cao nhất.
b) H ãy liệt k ê danh sáchgồm MSSV,HOTEN,LOP, DIEMTHI củ a nhữngsinh viên thi m ôn học
CSDL, theo th ứ tự LOP,DIEMTHI
c) H ãycho biết cá c sinh viên c ó điểm thi cao nhấtv ề m ôn học c ó m ã là CSDL
d) H ãy cho biết phiếu điểm củ a sinh viên c ó m ã số là 9900277
e) H ãy liệt k ê danh sách gồm MSSV, HOTEN., LOP, Đ IỂ M TRUNG BÌNH củ a những sinh viên c ó
điểm trung bình cá c m ôn dư ới5, theo th ứ tự LOP,HOTEN.
f) H ãy liệt k ê danh sáchđiểm trung bình của sinh viên theo th ứ tự , lớ p ,tên.
g) H ãy cho biết điểm c ủ a sinh viên theo từ ngm ôn.

4/ Dựa v ào lược đồ cơ sở dữ liệu


Docgia(MADG,HOTEN,NGAYSINH,DIACHI,NGHENGHIEP)
Phieumuon(SOPM,NGAYMUON,MADG)
Chitietmuon(SOPM,MADAUSACH,NGAYTRA)
Dausach(MADAUSACH,BAN,TAP,MASH)
Sach(MASH,TENSACH,TACGIA,NHAXB,NAMXB)

H ãythực hiện c á c câu h ỏ isau đây bằng SQL


a) Danh sách c á c đọc g iả đ ã đăng k ý mượn sách trong ngày d. Y êu cầu c á c thông tin: MAĐG, HOTEN,
ĐIACHI.
b) C ác quyển sách c ủ a phiếu mượn c ó SOPM là x. Y êu cầu c á c thông tin MASH, TENSACH,
TACGIA, NGAYMUON, NGAYTRA.
c) Tổng s ố lượt m à m ỗ i đọc g iả đến mượn sách trong năm 2001. Y êu cầu thông tin
MAĐG,HOTEN,SOLANMUON (SOLANMUON l à thuộctính tự đặt)
d) Danh sách c á c đọc g iả cao tu ổi nhất đ ã mượn sách trong ngày d. Y êu cầu c á c thông tin
MAĐG, HOTEN, NGAYSINH, ĐIACHI, NGHENGHIEP.

5/ Dựa v ào lược đ ồ cơ s ở d ữ liệu


Khach(MAKH,HOTEN,DIACHI,DIENTHOAI)
Hoadon(SOHD,NGAYLAPHD,NGAYBAN,MAKH)
DongHoaDon(SOHD,MAHANG,SLBAN)
Hang(MAHANG,TENHANG,DONGIA,DVT,MANHOM)
Nhom(MANHOM,TENNHOM)
H ãythực hiện c á c câu h ỏ isau bằng SQL
a) Danh sách c á c khách hàng đã mua hàng trong ngày d. Y êu cầu cá c thông tin MAKH, HOTEN,
ĐIACHI, ĐIENTHOAI.
b) Danh s á c h cá c mặt h à n g trong số h ó a đơn (SOHĐ) là x. Y êu cầu c á c thông tin MAHANG,
TENHANG, SLBAN, ĐONGIA, THANHTIEN (THANHTIEN= SLBAN*ĐONGIA;
THANHTIEN l à thuộctính tự đặt).Y êucầu sắp xếp tăng dần theo c ộ tTENHANG
c) Danh sách cá c m ặt hàng thuộc m ã nhóm hàng là A c ó đơn g iá cao nhất. Y êu cầu cá c thông
tin : MAHANG, TENHANG,ĐONGIA
d) Đếm số lượng m ặt hàng c ủ a m ỗi nhóm hàng. Y êu cầu c á c thông tin : MANHOM, TENNHOM,
SOLUONG. (trong đ ó SOLUONG l à thuộctính tự đặt) (0,75đ)
e) Danh sách cá c khách hàng đ ã mua c á c m ặt hàng c ó m ã nhóm hàng là A trong ngày d. Y êu cầu c á c thôngtin
MAKH, HOTEN, ĐIACHI, ĐIENTHOAI,TENHANG.
f) Thống k ê việc mua hàng trong năm 2002 củ a khách hàng c ó m ã khách hàng là Kh01 (theo từ ng h ó a
đơn). Y êu cầu c á c thông tin MAKH,HOTEN,SOHĐ,TRIGIAHĐ trong đ ó TRIGIAHĐ l à
tổngs ố tiền trong m ộ th ó a đơn (TRIGIAHĐ l à thuộctính tự đặt)

6/ Dựa v ào lược đ ồ cơ s ở d ữ liệu


Giaovien(MAGV,HOTEN,DTGV,MAKHOA)
Khoa(MAKHOA,TENKHOA,DTKHOA)
Lop(MALOP,TENLOP,SISO,MAKHOA)
Monhoc(MAMH,TENMH)
Phonghoc(SOPHONG,CHUCNANG)
Lichbaogiang(MALICH,NGAYDAY,MAGV)
Dongbaogiang(MALICH,TUTIET,DENTIET,BAIDAY,GHICHU,LYTHUYET,MAMH,MALOP,SOPHONG)

H ãythực hiện c á c câu h ỏ isau bằng SQL


a) Xem lịch bá o giảng tuần từ ngày 16/09/2002 đến ngày 23/09/2002 củ a giáo viên c ó MAGV (m ã giáo
viên) l à TH3A040. Y êu cầu: MAGV,HOTEN,TENLOP,TENMH,SOPHONG, NGAYDAY,
TUTIET, DENTIET, BAIDAY, GHICHU
b) Xem lịch b áo giảng ngày 23/09/2002 c ủ a c á c giáo viên c ó m ã khoa l à CNTT. Y êu cầu:
MAGV,HOTEN,TENLOP,TENMH,PHONG,NGAYDAY,TUTIET,DENTIET,BAIDAY,
GHICHU)
c) Cho biết s ố lượng giáo viên (SOLUONGGV) củ a m ỗ i khoa, kết q u ả cần sắp xếp tăng dần theo c ộ t tên
khoa. yêu cầu: TENKHOA ,SOLUONGGV ( SOLUONGGV là thuộc tính tự
đặt)
----oOo----
Chương 3 .

R À N GB U Ô CT O À NV ẸN QUAN H Ệ
(entegrity constraint )

I R À N GB U Ộ CT O À NVẸN - C Á CY Ế UT Ố C Ủ AR À N GB U Ộ CT O À NVẸN
1 R àngB uộcT oànVẹn
Trong m ỗ iCSDL luôn tồ n tại nhiều m ố i liên h ệ giữa cá c thuộc tính, giữa c á c b ộ . S ự liên h ệ n ày c ó
th ể x ảy ra trong m ột lược đ ồ quan h ệ hoặc trong c á c lược đ ồ quan h ệ c ủ a m ộ t cơ s ở d ữ liệu. C ácm ố i liên h ệ nà y
l à nhữngđiều kiện b ất biến m à tấ t c ả c á c b ộ c ủ a nhữngquan h ệ c ó liên quan trong CSDL đều phảithỏa m ãn ở m ọi th ờ i
điểm. Nhữngđiều kiện b ất biến đ ó được gọi l à ràng buộc toànvẹn. Trong thực tế ràng buộc toàn vẹn l à cá c quy tắc
quảnl ý được á p đ ặt trên c á c đ ố i tượng của thế g iớ ithực.
Nhiệm vụ củ a người phân tích thiết k ế l à phải phát hiện càng đầy đ ủ v à chính x á c c á c ràng buộctoàn vẹn càng tố t v à
m ô tả chúngm ộ tcách chính xác trong h ồ sơ phân tích thiết k ế - đ ó là m ộtviệclàm rấ t quan trọng v à rất cần thiết.
Trong m ộ t cơ s ở d ữ liệu, ràng buộc toàn vẹn được xem như l à m ột công cụ đ ể diễn đạt n g ữ nghĩa c ủ a CSDL. M ột
CSDL được thiết k ế cồng kềnh nhưng n ó thể hiện được đầy đ ủ n g ữ nghĩa c ủ a thực
tế vẫn c ó g iá trị cao hơn rất nhiều so v ớ im ột cách thiết k ế gọn nhẹ nhưng nghèo n àn v ề n g ữ nghĩa
vì thiếu c á c ràngbuộctoàn vẹn c ủ a cơ s ở d ữ liệu.
Công việc kiểm tra ràng buộc toàn vẹn thường được tiến hành v ào th ờ i điểm cập nhật d ữ liệu ( thêm, sử a, xóa).
Những ràng buộc toàn vẹn phát sinh cần phải được ghi nhận v à x ử l ý m ộ t cáchtườngminh (thườnglà b ở im ộthàm
chuẩn hoặc m ộ tđoạn chương trình).
2 C á cY ếuT ố C ủ aR àngB uộcT oànVẹn
M ỗiràng buộctoànvẹn c ó 3 yếu tố : điều kiện,b ố i cảnhv à tầm ản h hưởng.
i Đ iều kiện
Điều kiện củ a m ộ t ràng buộc toàn vẹn R c ó thể được biểu diễn bằng ngôn n g ữ tự nhiên, thuật giải,ngôn n g ữ đại số tập
hợp, đại s ố quan h ệ ,…ngoài ra điều kiện c ủ a ràng buộc toàn vẹn cũng c ó thể được biểu diễn bằng phụ thuộc hàm .
Chẳnghạn, v ớ ilược đ ồ quan h ệ SV thì có m ộ tràng buộctoànvẹn như sau:
V ớ ir là m ộ tquan h ệ c ủ a Sv ta c ó ràng buộctoànvẹn sau
∀ t1,t2 ∈ r
t1.MASV ≠ t2.MASV
cu ố i ∀
ii B ố icả n h
B ố i cảnh củ a m ộ t ràng buộc toàn vẹn là những quan h ệ m à ràng buộc đ ó c ó hiệu lực hay n ó i m ột cách khác, đ ó là
nhữngquan h ệ cần phảiđược kiểm tra ràng buộctoàn vẹn. Bối cảnh củ a m ột ràngbuộc toàn vẹn c ó thể là m ộ t hoặc
nhiều quan hệ. Chẳng hạn v ớ i ràng buộc toàn vẹn trên thì b ố i
cảnhl à m ộ tquan h ệ Sv
iii T ầm ả n hhưởng
Trong q u á trình phân tích thiết k ế m ột CSDL, người phân tích cần lập bảng tầm ản h hưởng cho m ộ t ràng
buộc toàn vẹn nhằm x ác định th ờ i điểm cần phải tiến hành kiểm tra c á c ràng buộc toànvẹn đ ó . C ác th ờ i điểm cần
phải kiểm tra RBTV chính là nhữngth ờ i điểm cập nhật d ữ liệu (thêm
/sử a/xóa)
M ộtbảngtâm ản h hưởngcủ a m ộ tRBTV c ó dạng sau:
(T ênRBTV) Thêm(T) Sửa(S) Xóa(X)
r1 + - -
r2
... ... .. ..
... ... ... ...
rn

B ảngn ày chứatoànc á c k ý hiệu + hoặc –


Chẳnghạn + tại ô tương ứ n g v ớ i dòng r1, c ộ t thêm thì c ó nghĩa là khi thêm m ộ t b ộ v ào quan h ệ r1
thì cần phảikiểm tra RBTV
D ấu - Tại ô tương ứ n g v ớ i dòng r1, c ộ t sử a thì c ó nghĩa là khi sử a m ộ t b ộ trên quan h ệ r1 thì khôngcần phảikiểm tra
RBTV n à y ,…
II P H Â NLOẠIR À N GB U Ộ CT O À NVẸN
Trong q uá trình phân tích thiết k ế cơ s ở d ữ liệu, người phân tích phải phát hiện tấ t c ả cá c ràng buộc toàn vẹn tiềm ẩ n
trong CSDL đ ó .V iệc phân loại c á c ràng buộctoànvẹn l à rất có ích, n ó nhằm gíúp
cho ngườiphân tích c ó được m ộ t định hướng,tránh b ỏ s ó t nhữngràng buộc toàn vẹn. C ác ràng buộctoàn vẹn c ó th ể được
chia làm hai loại chính như sau:
+ R àng buộc toàn vẹn trên phạm vi l à m ộ t quan h ệ bao gồm :Ràng buộc toàn vẹn m iền g iá
trị, ràng buộctoànvẹn liên thuộctính, ràng buộctoànvẹn liên b ộ .
+ R àng buộc toàn vẹn trên phạm vi nhiều quan h ệ bao gồm :Ràng buộc toàn vẹn phụ thuộc
tồ n tại, ràng buộctoàn vẹn liên b ộ - liên quan hệ, ràng buộc toàn vẹn liên thuộc tính - liên quan h ệ.
Đ ể minh họa cho phần lý thuyếtcủ a chương này,ta nêu ví dụ sau đây
Ví dụ
Cho m ộ t CSDL C dùngđ ể quản l ý việc đ ặt hàng và giao hàng c ủ a m ộ t công ty. Lược đ ồ CSDL
C gồm c á c lược đ ồ quan h ệ như sau:
Q1: Khach (MAKH,TENKH,DCKH,DT)
T ân từ: M ỗi khách hàng c ó m ộ t m ã khách h à n g(MAKH) duy nhất, m ỗ i MAKH x á c định m ộttên khách hàng
(TENKH), m ộ tđịa c h ỉ(DCKH), m ộ ts ố điện thoại (DT).
Q2: Hang(MAHANG,TENHANG,QUYCACH,DVTINH)
T ân từ: M ỗi m ặt hàng c ó m ộ t m ã hàng (MAHANG) duy nhất, m ỗ i MAHANG x á c định m ộ t tên hàng
(TENHANG), quy cách hàng (QUYCACH), đơn v ị tính (DVTINH).
Q3: Dathang(SODH,MAHANG,SLDAT,NGAYDH,MAKH)
T ân từ: M ỗi lần đ ặt hàng c ó s ố đ ặt hàng (SODH) x á cđịnh m ộ t ngày đ ặt hàng (NGAYDH) v à
m ã kháchhàng tương ứ n g (MAKH). B iết m ã s ố đ ặt hàng v à m ã m ặt hàng thì biết được s ố lượng đ ặt hàng(SLDAT).
M õ ikháchhàngtrong m ộ tngàyc ó thể c ó nhiều lần đ ặ t hàng
Q4: Hoadon(SOHD, NGAYLAP, SODH, TRIGIAHD, NGAYXUAT)
T ân từ: M ỗi h ó a đơn c ó m ộ t m ã số duy nhất là SOHD, m ỗi h ó a đơn b án hàng c ó thể gồm nhiềum ặt hàng. M ỗi
h ó a đơn x ác định ngày lập h óa đơn (NGAYLAP), ứ n g v ớ i s ố đ ặ t hàng n ào(SODH). Giả s ử rằng hóa
đơn b án hàng theo yêu cầu c ủ a c h ỉ m ộ t đơn đ ặt h àn g c ó m ã số là SODH v à ngược lại, m ỗi đơn đ ặt hàng chỉ
được g iải quyết c hỉ trong m ộ t h ó a đơn. Do đ iều k iệ nkhách quan c ó th ể cô ng ty không giao đ ầ y đ ủ c á c m ặ t
hàn g cũ ng như s ố lượng từ n g m ặt h à n gnhư y ê u c ầ u trong đơn đ ặ t h àng nhưng khôngbao g iờ giao vượt
ngoàiy ê u c ầ u. M ỗi hó a đơn x á c định m ột trị g iá củ a c á c m ặt hàng trong hó a đơn (TRIGIAHD) v à m ộ t ngày
xuất kho giao hàngcho khách(NGAYXUAT)
Q5: Chitiethd (SOHD, MAHANG, GIABAN, SLBAN)
T ân từ: M ỗi SOHD, MAHANG x á cđịnh g iá b án (GIABAN) v à s ố lượng b án (SLBAN) c ủ a m ộ tm ặthàngtrong
m ộ th ó a đơn.
Q6: Phieuthu(SOPT, NGAYTHU, MAKH, SOTIEN)
T ân từ: M ỗi phiếu thu c ó m ộ t số phiếu thu (SOPT) duy nhất, m ỗ i SOPT x ác định m ộ t ngày thu
(NGAYTHU) c ủ a m ộ t khách hàng c ó m ã khách hàng l à MAKH v à s ố tiền thu l à SOTIEN. M ỗi khách hàng
trong m ộtngàyc ó thể c ó nhiều s ố phiếu thu.

1 R àngbu ộctoàn vẹn liên bộ


R àngbuộctoànvẹn liên b ộ là sự ràng buộctoàn vẹn giữac á c b ộ trong cùngm ộ tquan h ệ .
R àng buộc toàn vẹn liên b ộ hay c ò n gọi l à ràng buộc toàn vẹn v ề khóa.Đ ây là loại ràng buộc toànvẹn rất p h ổ biến, n ó
c ó m ặt trong mọi lược đ ồ quan h ệ c ủ a CSDL v à thườngđược cá c h ệ quản trị CSDL tự độngkiểm tra.

Ví dụ: V ớ ir là m ộ tquan h ệ củ a Khach ta c ó ràng buộctoàn vẹn sau


R1: ∀ t1, t2 ∈ r
t1. MAKH ≠ t2. MAKH
C uối ∀
R1 Thêm Sửa X óa
r + + -
2 R àngbu ộctoàn vẹn v ề phụ thuộctồ n tại:
R àng buộc toàn vẹn v ề phụ thuộc tồ n tại c ò n được gọi là ràng buộc toàn vẹn v ề khóa ngoại. Cũnggiống như ràng
buộctoàn vẹn v ề khóa chính, ràng buộctoàn vẹn v ề phụ thuộc tồ n tại rất phổ biến trong CSDL
Ví dụ: V ớ ir, s lần lượt là m ộtquan h ệ củ a Dathang, Khach ta c ó ràngbuộctoànvẹn sau
R2: r[MAKH] ⊆ s[MAKH]
R2 Thêm Sửa X óa
r + + -
s - + +
3 R àngbu ộctoàn vẹn v ề m iềng iá trị
R àng buộctoàn vẹn c ó liên quan đến m iền g iá trị c ủ a c á c thuộctính trong m ộ t quan hệ. R àng buộcn ày thườnggặp.M ột
s ố h ệ quảntrị CSDL đ ã tự độngkiểm tra m ộts ố ràng buộcloại này.
Ví dụ: V ớ ir là m ộ tquan h ệ củ a Hoadon ta c ó ràng buộctoànvẹn sau
R3: ∀ t ∈ r
t.TRIGIAHD > 0
C uối ∀
R3 Thêm Sửa X óa
r + + -
4 R àngbu ộctoàn vẹn liên thuộctính
R àngbuộctoànvẹn liên thuộctính là m ố iliên h ệ giữacá c thuộctính trong m ộ tlược đ ồ quan hệ.
Ví dụ: V ớ ir l à m ộtquan h ệ củ a Hoadon ta c ó ràng buộctoàn vẹn sau
R4: ∀ t ∈ r
t.NGAYLAP <= t.NGAYXUAT
Cuối ∀

5 R àngbu ộctoàn vẹn liên thuộctính liên quan hệ


R àngbuộcloại n ày là m ố iliên h ệ giữac á cthuộctính trong nhiều lược đ ồ quan hệ.
Ví dụ: V ớ ir, s lần lượt l à quan h ệ củ a Dathang, Hoadon ta c ó ràng buộctoànvẹn sau
R5: ∀ t1 ∈ r, t2 ∈ s
N ếu t1.SODH = t2.SODH thì
t1.NGAYDH <= t2.NGAYXUAT
C uối ∀
R5 Thêm Sửa X óa
r + + +
s + + +

6 R àngbu ộctoàn vẹn về thuộctính tổn ghợp


R àng buộc toàn vẹn v ề thuộc tính tổng hợp được x ác định trong trường hợp m ỗ i thuộc tính A củ a m ột lược đ ồ
quan h ệ Q được tính toáng iá trị từ c á c thuộctính củ a cá c lược đ ồ quan h ệ khác.
III B À IT Ậ P
1/ H ãy tìm cá c ràng buộctoàn vẹn c ó trong CSDL cho cá c b à itập được liệt k ê trong chương 3.
2/ Q U Ả NL Ý THI T Ố TN G H IỆPPTCS
M ột phònggiáo dục huyện muốn lậ p m ộ t h ệ thốngthông tin đ ể quản lý việc làm thi tố t nghiệp phổthôngcơ s ở .C ôngviệc
làm thi được tổ ch ứ cnhư sau:

Lãnh đạo phònggiáo dục thành lập nhiều h ộ i đồng thi (m ỗih ộ i đồng thi gồm m ột trườnghoặc m ột
s ố trường gần nhau). M ỗi h ộ i đồng thi c ó m ộ t mã s ố duy nhất (MAHĐT), m ột m ã s ố h ộ i đồng thi x ác định tên h ộ i
đồng thi(TENHĐT), họ tê n chủ tịch h ộ i đồng(TENCT), địa c h ỉ (ĐCHĐT),điện
thoại(ĐTHĐT).
M ỗi h ộ i đồng thi được b ố trí cho m ộ t s ố phòngthi, m ỗi phòngthi c ó m ột số hiệu phòng(SOPT)duy
nhất,m ộ tphòngthi x ác định địa c h ỉ phòngthi (ĐCPT). S ố hiệu phòngthi được đánhs ố khácnhau ở
tấ t c ả cá c h ộ iđồngthi.

G iáo viên củ a c á c trườngtrực thuộc phòngđược điều động đến c á c h ộ i đồng đ ể coi thi, m ỗi trường
c ó th ể c ó hoặc không c ó thí sinh dự thi, m ỗi trường c ó m ộ t m ã trường duy nhất (MATR), m ỗi m ã trường x ác
định m ộ t tên trường(TENTR),địa c h ỉ (ĐCTR), loại hình đ ào tạo (LHĐT) (C ông lập,chuyên, b án công,
dân lập, n ộ i trú ,… ).G iáo viên củ a m ộ t trườngc ó thể làm việc tại nhiều h ộ i đồng
thi. M ột giáo viên c ó m ột m ã giáo viên(MAGV), m ộ t m ã giáo viên x á c định tên giáo viên
(TENGV), chuyênm ôn giảngdạy (CHUYENMON), c h ứ cdanh trong h ộ iđồngthi(CHUCDANH)

C ác thí sinh dự thi c ó m ộ t s ố b áo danh duy nhất(SOBD), m ỗ i số b áo danh x á c định tên thí
sinh(TENTS), ngày sinh (NGSINH), g iớ i tính (PHAI), m ỗ i thí sinh được xếp thi tại m ột phòng thi nhất
định cho tấ t c ả c á c m ôn, m ỗi thí sinh có thể c ó chứng c hỉ nghề (CCNGHE) hoặc không (thuộctính CCNGHE
kiểu chuỗi, CCNGHE=”x” n ếu thí sinh c ó chứng c h ỉ nghề v à CCNGHE b ằ n grỗngnếu thí sinh khôngc ó chứng
c h ỉnghề).Thísinh củ a cùngm ộ ttrườngc h ỉdự thi tại m ộ th ộ iđồngthi.
M ỗi m ôn thi c ó m ột m ã m ôn thi duy nhất(MAMT),m ỗ i m ã m ôn thi x ác định tên m ôn thi(TENMT). G iả s ử toàn b ộ
c á c thí sinh đều thi chung m ộ tsố m ôn do sở giáo dục quy định. M ỗi m ôn thi được tổ chứ ctrong m ộ tbuổic ủ a m ột
ngàynà o đ ó .
Ứ n gv ớ i m ỗi m ôn thi m ộ t thí sinh c ó m ộ t điểm thi duy nhất(ĐIEMTHI) Dựa v ào
phân tích ở trên,g iả s ử ta c ó lược đ ồ CSDL sau:
Q1: HĐ(MAHĐT,TENHĐT, TENCT, ĐCHĐT,ĐTHĐT)
Q2: PT(SOPT,ĐCPT,MAHĐT)
Q3: TS(SOBD, TENTS,NGSINH,PHAI,CCNGHE, MATR,SOPT)
Q4: MT(MAMT,TENMT,BUOI,NGAY)
Q5: GV(MAGV,TENGV,CHUYENMON,CHUCDANH ,MAHĐT,MATR)
Q6: TR(MATR,TENTR,ĐCTR,LHĐT)
Q7: KQ(SOBD,MAMT,ĐIEMTHI)
Y êu cầu:
a) H ãyx ác định khóacho từn glược đ ồ quan hệ.
b) Tìm tấ t c ả cá c ràng buộctoànvẹn c ó trong CSDL trên.
c) Dựa v ào lược đ ồ CSDL đ ã thành lập, h ãy thực hiện c á c câu h ỏ i sau đây bằng ngôn n g ữ đại
s ố quan hệ.
1. Danh sách c á c thí sinh thi tại phòng thi có số hiệu phòng thi (SOPT) là “100”. Y êu cầu cá c thông
tin:SOBD,TENTS,NGSINH,TENTR
2. K ết q u ả c ủ a m ôn thi c ó m ã m ôn thi (MAMT) l à “T” c ủ a tất c ả cá c thí sinh c ó m ã
trường(MATR) là “NTMK”, kết q uả được sắp theo chiều giảm dần củ a điểm
thi(ĐIEMTHI). Y êu c ầ ucá c thôngtin:SOBD,TENTS, ĐIEMTHI
3. K ết q u ả thi c ủ a m ộ thọc sinh c ó SOBD là MK01. Y êu cầu : TENMT,ĐIEMTHI
4. Tổng s ố thí sinh c ó chứng c h ỉ nghề(CCNGHE) của m ỗ i trường, thông tin cần được sắp theo chiều tăng
dần c ủ aTENTR. Y êu cầu c á c thông tin: MATR, TENTR, SOLUONGCC
----oOo----
Chương 4 .

PH Ụ T H U Ộ CH À M
(functional dependency )

Phụ thuộc hàm (functional dependency) l à m ộ t công cụ dùng đ ể biểu diễn m ột cách hình thứ c c á c ràng buộc toàn
vẹn (vắn tắt: ràng buộc). Phương pháp biểu diễn n ày c ó rấ t nhiều ưu điểm, v à đây
l à m ộ tcôngcụ cực k ỳ quan trọng, gắn chặtv ớ ilý thuyếtthiết k ế cơ s ở d ữ liệu.
Phụ thuộc hàm được ứ n g dụng trong việc giải quyết c á c b à i toán tìm khóa, tìm p h ủ tố i thiểu v à chuẩn h ó a cơ s ở d ữ
liệu.
I K H Á IN IÊ MPH Ụ TH U Ộ CH À M
Cho quan h ệ phanCong sau:
phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Cushing 83 9/8 10:15a
Cushing 116 10/8 1:25p
Clark 281 8/8 5:50a
Clark 301 12/8 6:35p
Clark 83 11/8 10:15a
Chin 83 13/8 10:15a
Chin 116 12/8 1:25p
Copely 281 9/8 5:50a
Copely 281 13/8 5:50a
Copely 412 15/8 1:25p
Quan h ệ phanCong diễn tả phi công nà o lá i m áy bay n ào v à m áy bay kh ởihành và o th ờ igian nào.Không phải sự
phối hợp b ất k ỳ n ào giữa phi công, m áy bay v à ngày g iờ kh ởi hành cũng đều được chấp nhận m à chúngc ó c á c điều
kiện ràng buộcqui định sau:
+ M ỗim áybay c ó m ộtg iờ k hở ihànhduy nhất.
+ N ếu biết phi công,biết ngàyg iờ kh ởihànhthì biết được m áybay do phi côngấ y lái.
+ N ếu biết m áy bay, biết ngày kh ởihành thì biết phi công lá i chuyến bay ấy . C ác ràng buộc
n ày là cá c ví dụ v ề phụ thuộc hàm v à được phátbiểu lại như sau:
+ MAYBAY x ác định GIOKH
+ {PHICONG,NGAYKH,GIOKH} x ác định MABAY
+ {MAYBAY,NGAYKH} x ác định PHICONG
hay
+ GIOKH phụ thuộchàm v ào MAYBAY
+ MABAY phụ thuộchàm v ào {PHICONG,NGAYKH,GIOKH}
+ PHICONG phụ thuộchàm v ào {MAYBAY,NGAYKH}
v à được k ý hiệu như sau:
+ {MAYBAY}→ GIOKH
+ {PHICONG,NGAYKH,GIOKH}→ MABAY
+ {MAYBAY,NGAYKH}→ PHICONG
Trong k ý hiệu trên ta đ ã k ý hiệu MAYBAY thay cho {MAYBAY}.
M ộtcáchtổng quát:
1 Định nghĩa phụ thuộch àm
Q(A1,A2,…,An) là lược đ ồ quan hệ.
X, Y là hai tậ p con c ủ a Q+={A1,A2,…,An}.
r là quan h ệ trên Q.
t1,t2 l à hai b ộ b ất k ỳ củ a r.
X → Y ⇔ (t1.X = t2.X ⇒ t1.Y = t2.Y)
(Ta n ó i X x ác định Y hay Y phụ thuộc hàm và o X (X functional determines Y,Y functional
dependent on X )
Tính chất:
+ phụ thuộchàm X → ∅ đúngv ớ imọi quan h ệ r
+ phụ thuộchàm ∅ → Y c h ỉ đúngtrên quan h ệ r c ó cùngg iá trị trên Y.
Ví dụ: Quan h ệ sau thỏam ãnphụ thuộchàm ∅ → GIOKH
phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Cushing 83 9/8 10:15a
Cushing 116 10/8 10:15a
Clark 281 8/8 10:15a
Clark 301 12/8 10:15a
Clark 83 11/8 10:15a
Chin 83 13/8 10:15a
Chin 116 12/8 10:15a
Copely 281 9/8 10:15a
Copely 281 13/8 10:15a
Copely 412 15/8 10:15a
trên thực tế không c ó quan h ệ r n ào thỏa tính chất trên nên t ừ đây v ề sau nếu không n ó i r õ thì v ớ im ộ tquan h ệ r b ất k ỳ ta
luôn xem phụ thuộchàm ∅ → Y luôn luôn khôngthỏatrên r.
2 Phụ thuộch à m hiển nhiên(Trivial Dependencies)
H ệ quả: N ế u X ⊇ Y thì X → Y.
Chứngminh:
G iả s ử t1.X = t2.X do X ⊇ Y nên t1.Y = t2.Y theo định nghĩa suy ra X → Y
Trong trườnghợp nà y X → Y được gọi l à phụ thu ộch à m h iển nhiên. Ví dụ phụ
thuộchàm X → X l à phụ thuộchàm hiển nhiên.
V ậy v ớ i r là quan h ệ b ất k ỳ , F l à tập phụ thuộc hàm thỏa trên r, ta luôn c ó F ⊇ {c á c phụ thuộchàm hiển nhiên}
3 T huậttoá nSatifies
+
Cho quan h ệ r v à X, Y là hai tập con củ a Q . Thuật toán SATIFIES s ẽ trả v ề trị true nếu X → Y
ngược lại l à false

SATIFIES
V ào: quan h ệ r v à hai tập con X,Y
ra: true nếu X → Y, ngược lại l à false
SATIFIES(r,X,Y)
1. Sắp cá c b ộ củ a quan h ệ r theo X đ ể c á c giá trị giốngnhau trên X nhómlại v ớ inhau
2. N ếu tập cá c b ộ cùngg iá trị trên X cho c á c g iá trị trên Y giốngnhau thì trả v ề true ngược lại
là False

Ví dụ 1: SATIFIES(phanCong,MAYBAY,GIOKH)
phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Cushing 83 9/8 10:15a
Clark 83 11/8 10:15a
Chin 83 13/8 10:15a
Cushing 116 10/8 1:25p
Chin 116 12/8 1:25p
Clark 281 8/8 5:50a
Copely 281 9/8 5:50a
Copely 281 13/8 5:50a
Clark 301 12/8 6:35p
Copely 412 15/8 1:25p
cho kết q u ả là true nghĩa là MAYBAY→GIOKH
Ví dụ 2: SATIFIES(phanCong,GIOKH,MAYBAY)
phanCong (PHICONG, MAYBAY, NGAYKH, GIOKH)
Clark 281 8/8 5:50a
Copely 281 9/8 5:50a
Copely 281 13/8 5:50a
Cushing 83 9/8 10:15a
Clark 83 11/8 10:15a
Chin 83 13/8 10:15a
Cushing 116 10/8 1:25p
Chin 116 12/8 1:25p
Copely 412 15/8 1:25p
Clark 301 12/8 6:35p
cho kết q u ả là false nghĩa l à khôngc ó phụ thuộchàm GIOKH→MAYBAY
4 C á cphụ thuộch à m c ó th ể có
+
i C áchtìm tấ t c ả tậ p con c ủ aQ
Lược đ ồ quan h ệ Phancong(PHICONG,MAYBAY,NGAYKH,GIOKH)c ó tậ p thuộc tính
Phancong+={PHICONG,MAYBAY,NGAYKH,GIOKH} v à tấ t c ả cá c tập con c ó th ể c ó củ a
Phancong+ được cho b ở ibảngsau:
PHICONG MAYBAY NGAYKH GIOKH
∅ {PHICONG} {MAYBAY} {NGAYKH} {GIOKH}
{PHICONG,MAYBAY} {PHICONG,NGAYKH} {PHICONG,GIOKH}
{MAYBAY,NGAYKH} {MAYBAY,GIOKH}
{PHICONG,MAYBAY,NGAYKH} {PHICONG,MAYBAY,GIOKH}
{NGAYKH,GIOKH}
{PHICONG,NGAYKH,GIOKH}
{MAYBAY,NGAYKH,GIOKH}
{PHICONG,MAYBAY,NGAYKH,GIOKH}
S ố tập con c ó th ể c ó c ủ a Q+ = {A1,A2,...,An} là 2n
ii C áchtìm tấ t c ả c á cphụ thuộch àm c ó th ể có củ aQ
n 4
Ứ n gv ớ im ỗi tập con củ a Phancong+ cho 2 = 2 = 16 phụ thuộchàm c ó thể c ó .S ố phụ thuộchàm
4 4
c ó th ể c ó l à 2 * 2 = 16 * 16 = 256

∅ → ∅ PTHHN
∅ → {PHICONG} F-
∅ → {MAYBAY} F-
∅ → {MAYBAY,PHICONG} F-
∅ → {NGAYKH} F-
∅ → {PHICONG,NGAYKH} F-
∅ → {MAYBAY,NGAYKH} F-
∅ → {MAYBAY,PHICONG,NGAYKH} F-
∅ → {GIOKH} F-
∅ → {PHICONG,GIOKH} F-
∅ → {MAYBAY,GIOKH} F-
∅ → {MAYBAY,PHICONG,GIOKH} F-
∅ → {NGAYKH,GIOKH} F-
∅ → {PHICONG,NGAYKH,GIOKH} F-
∅ → {MAYBAY,NGAYKH,GIOKH} F-
-
∅ → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{PHICONG} → ∅ PTHHN
{PHICONG} → {PHICONG} PTHHN
{PHICONG} → {MAYBAY} F-
{PHICONG} → {MAYBAY,PHICONG} F-
{PHICONG} → {NGAYKH} F-
{PHICONG} → {PHICONG,NGAYKH} F-
{PHICONG} → {MAYBAY,NGAYKH} F-
{PHICONG} → {MAYBAY,PHICONG,NGAYKH} F-
{PHICONG} → {GIOKH} F-
{PHICONG} → {PHICONG,GIOKH} F-
{PHICONG} → {MAYBAY,GIOKH} F-
{PHICONG} → {MAYBAY,PHICONG,GIOKH} F-
{PHICONG} → {NGAYKH,GIOKH} F-
{PHICONG} → {PHICONG,NGAYKH,GIOKH} F-
{PHICONG} → {MAYBAY,NGAYKH,GIOKH} F-
-
{PHICONG} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{MAYBAY} → ∅ PTHHN
-
{MAYBAY} → {PHICONG} F
{MAYBAY} → {MAYBAY} PTHHN
{MAYBAY} → {MAYBAY,PHICONG} F-
{MAYBAY} → {NGAYKH} F-
{MAYBAY} → {PHICONG,NGAYKH} F-
{MAYBAY} → {MAYBAY,NGAYKH} F-
-
{MAYBAY} → {MAYBAY,PHICONG,NGAYKH} F
{MAYBAY} → {GIOKH} F
{MAYBAY} → {PHICONG,GIOKH} F-
{MAYBAY} → {MAYBAY,GIOKH} F+
{MAYBAY} → {MAYBAY,PHICONG,GIOKH} F-
{MAYBAY} → {NGAYKH,GIOKH} F-
{MAYBAY} → {PHICONG,NGAYKH,GIOKH} F-
{MAYBAY} → {MAYBAY,NGAYKH,GIOKH} F-
-
{MAYBAY} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{PHICONG,MAYBAY} → ∅ PTHHN
{PHICONG,MAYBAY} → {PHICONG} PTHHN
{PHICONG,MAYBAY} → {MAYBAY} PTHHN
{PHICONG,MAYBAY} → {PHICONG,MAYBAY} PTHHN
{PHICONG,MAYBAY} → {NGAYKH} F-
{PHICONG,MAYBAY} → {PHICONG,NGAYKH} F-
{PHICONG,MAYBAY} → {MAYBAY,NGAYKH} F-
-
{PHICONG,MAYBAY} → {MAYBAY,PHICONG,NGAYKH} F
+
{PHICONG,MAYBAY} → {GIOKH} F
+
{PHICONG,MAYBAY} → {PHICONG,GIOKH} F
+
{PHICONG,MAYBAY} → {MAYBAY,GIOKH} F
+
{PHICONG,MAYBAY} → {MAYBAY,PHICONG,GIOKH} F
-
{PHICONG,MAYBAY} → {NGAYKH,GIOKH} F
-
{PHICONG,MAYBAY} → {PHICONG,NGAYKH,GIOKH} F
-
{PHICONG,MAYBAY} → {MAYBAY,NGAYKH,GIOKH} F
-
{PHICONG,MAYBAY} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
-
{NGAYKH} → ∅ F
-
{NGAYKH} → {PHICONG} F
-
{NGAYKH} → {MAYBAY} F
-
{NGAYKH} → {PHICONG,MAYBAY} F
{NGAYKH} → {NGAYKH} PTHHN
-
{NGAYKH} → {PHICONG,NGAYKH} F
-
{NGAYKH} → {MAYBAY,NGAYKH} F
-
{NGAYKH} → {MAYBAY,PHICONG,NGAYKH} F
-
{NGAYKH} → {GIOKH} F
-
{NGAYKH} → {PHICONG,GIOKH} F
-
{NGAYKH} → {MAYBAY,GIOKH} F
-
{NGAYKH} → {MAYBAY,PHICONG,GIOKH} F
-
{NGAYKH} → {NGAYKH,GIOKH} F
-
{NGAYKH} → {PHICONG,NGAYKH,GIOKH} F
-
{NGAYKH} → {MAYBAY,NGAYKH,GIOKH} F
-
{NGAYKH} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{PHICONG,NGAYKH} → ∅ PTHHN
{PHICONG,NGAYKH} → {PHICONG} PTHHN
{PHICONG,NGAYKH} → {MAYBAY} F-
{PHICONG,NGAYKH} → {PHICONG,MAYBAY} F-
{PHICONG,NGAYKH} → {NGAYKH} PTHHN
{PHICONG,NGAYKH} → {PHICONG,NGAYKH} PTHHN
{PHICONG,NGAYKH} → {MAYBAY,NGAYKH} F-
{PHICONG,NGAYKH} → {MAYBAY,PHICONG,NGAYKH} F-
{PHICONG,NGAYKH} → {GIOKH} F-
{PHICONG,NGAYKH} → {PHICONG,GIOKH} F-
{PHICONG,NGAYKH} → {MAYBAY,GIOKH} F-
{PHICONG,NGAYKH} → {MAYBAY,PHICONG,GIOKH} F-
{PHICONG,NGAYKH} → {NGAYKH,GIOKH} F-
{PHICONG,NGAYKH} → {PHICONG,NGAYKH,GIOKH} F-
{PHICONG,NGAYKH} → {MAYBAY,NGAYKH,GIOKH} F-
-
{PHICONG,NGAYKH} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{MAYBAY,NGAYKH} → ∅ PTHHN
{MAYBAY,NGAYKH} → {PHICONG} F
{MAYBAY,NGAYKH} → {MAYBAY} PTHHN
+
{MAYBAY,NGAYKH} → {PHICONG,MAYBAY} F
{MAYBAY,NGAYKH} → {NGAYKH} PTHHN
+
{MAYBAY,NGAYKH} → {PHICONG,NGAYKH} F
{MAYBAY,NGAYKH} → {MAYBAY,NGAYKH} PTHHN
+
{MAYBAY,NGAYKH} → {MAYBAY,PHICONG,NGAYKH} F
+
{MAYBAY,NGAYKH} → {GIOKH} F
+
{MAYBAY,NGAYKH} → {PHICONG,GIOKH} F
+
{MAYBAY,NGAYKH} → {MAYBAY,GIOKH} F
+
{MAYBAY,NGAYKH} → {MAYBAY,PHICONG,GIOKH} F
+
{MAYBAY,NGAYKH} → {NGAYKH,GIOKH} F
+
{MAYBAY,NGAYKH} → {PHICONG,NGAYKH,GIOKH} F
+
{MAYBAY,NGAYKH} → {MAYBAY,NGAYKH,GIOKH} F
+
{MAYBAY,NGAYKH} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{PHICONG,MAYBAY,NGAYKH} → ∅ PTHHN
{PHICONG,MAYBAY,NGAYKH} → {PHICONG} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {MAYBAY} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {PHICONG,MAYBAY} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {NGAYKH} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {PHICONG,NGAYKH} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {MAYBAY,NGAYKH} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {PHICONG,MAYBAY,NGAYKH} PTHHN
{PHICONG,MAYBAY,NGAYKH} → {GIOKH} F+
{PHICONG,MAYBAY,NGAYKH} → {PHICONG,GIOKH} F+
{PHICONG,MAYBAY,NGAYKH} → {MAYBAY,GIOKH} F+
{PHICONG,MAYBAY,NGAYKH} → {MAYBAY,PHICONG,GIOKH} F+
{PHICONG,MAYBAY,NGAYKH} → {NGAYKH,GIOKH} F+
{PHICONG,MAYBAY,NGAYKH} → {PHICONG,NGAYKH,GIOKH} F+
{PHICONG,MAYBAY,NGAYKH} → {MAYBAY,NGAYKH,GIOKH} F+
+
{PHICONG,MAYBAY,NGAYKH} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
....................................................
{PHICONG,NGAYKH,GIOKH} → ∅ PTHHN
{PHICONG,NGAYKH,GIOKH} → {PHICONG} PTHHN
{PHICONG,NGAYKH,GIOKH} → {MAYBAY} F
{PHICONG,NGAYKH,GIOKH} → {PHICONG,MAYBAY} F+
{PHICONG,NGAYKH,GIOKH} → {NGAYKH} PTHHN
{PHICONG,NGAYKH,GIOKH} → {PHICONG,NGAYKH} PTHHN
+
{PHICONG,NGAYKH,GIOKH} → {MAYBAY,NGAYKH} F
+
{PHICONG,NGAYKH,GIOKH} → {MAYBAY,PHICONG,NGAYKH} F
{PHICONG,NGAYKH,GIOKH} → {GIOKH} PTHHN
{PHICONG,NGAYKH,GIOKH} → {PHICONG,GIOKH} PTHHN
+
{PHICONG,NGAYKH,GIOKH} → {MAYBAY,GIOKH} F
+
{PHICONG,NGAYKH,GIOKH} → {MAYBAY,PHICONG,GIOKH} F
{PHICONG,NGAYKH,GIOKH} → {NGAYKH,GIOKH} PTHHN
{PHICONG,NGAYKH,GIOKH} → {PHICONG,NGAYKH,GIOKH} PTHHN
+
{PHICONG,NGAYKH,GIOKH} → {MAYBAY,NGAYKH,GIOKH} F
+
{PHICONG,NGAYKH,GIOKH} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
{MAYBAY,NGAYKH,GIOKH} → ∅ PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {PHICONG} F
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {PHICONG,MAYBAY} F
{MAYBAY,NGAYKH,GIOKH} → {NGAYKH} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {PHICONG,NGAYKH} F
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY,NGAYKH} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY,PHICONG,NGAYKH} F
{MAYBAY,NGAYKH,GIOKH} → {GIOKH} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {PHICONG,GIOKH} F
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY,GIOKH} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY,PHICONG,GIOKH} F
{MAYBAY,NGAYKH,GIOKH} → {NGAYKH,GIOKH} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {PHICONG,NGAYKH,GIOKH} F
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY,NGAYKH,GIOKH} PTHHN
+
{MAYBAY,NGAYKH,GIOKH} → {MAYBAY,PHICONG,NGAYKH,GIOKH} F
................ ....
S ố phụ thuộchàm c ó thể c ó củ a Q(A1,A2,...,An) là 2n x 2n =22n
II H ỆL U Ậ TD Ẫ NARMSTRONG (Armstrong inference rule)
Ngườita thườngdùngF đ ể c h ỉ tập c á c phụ thuộchàm c ủ a lược đ ồ quan h ệ Q. Ta c ó thể đánhs ố c á c
phụ thuộc hàm c ủ a F là f1, f2, .., fm. Quy ư ớ c rằng c h ỉ cần m ô tả c á c phụ thuộc hàm không hiển nhiên trong tập
F (cácphụ thuộchàm hiển nhiên được ngầm hiểu l à đ ã c ó trong F).
1 Phụ thuộch à m được suy d iễnlogic từ F
N ó irằng phụ th u ộchà m X → Y được suy diễn logic t ừ F n ế u m ộ tquan h ệ r thỏa m ã n tấ t c ả c á cphụ th u ộch à m c ủ a
F thì cũ ngth ỏ aphụ thu ộch à m X → Y. K ý h iệuF|= X → Y.
Bao đóngcủ a F k ý hiệu F+ là tập tấ t c ả cá c phụ thuộchàm được suy diễn logic t ừ F.
C áctính chấtc ủ a tậ p F+
+
1. Tính p h ảnxạ: V ớ imọi tậ p phụ thu ộchà m F ta lu ônlu ô nc ó F ⊆ F+
2. Tính đơn đ iệu :N ế uF ⊆ G thì F+ ⊆ G+
3. Tính lũ yđẳ ng :V ớ im ọi tậ p phụ th u ộch àm F ta lu ônlu ô nc ó (F+)+ = F+.
Gọi G là tập tấ t c ả cá c phụ thuộchàm có thể c ó củ a r, phần phụ củ a F k ý hiệu F- = G - F+
Chứngminh
1. X → Y ∈ F ⇒ r thỏaX → Y ⇒ X → Y ∈ F+
2. N ếu X → Y l à phụ thuộchàm thuộcF+ ta phảichứngminh X → Y thuộcG+
G iả s ử r thỏatấ t c ả c á c phụ thuộchàm c ủ a G (1)
⇒ r thỏatấ t c ả phụ thuộchàm c ủ a F vì F ⊆ G
⇒ r thỏaphụ thuộchàm X → Y (2) vì X → Y∈F+
(1) v à (2) ⇒ X → Y ∈ G+ ⇒ F+ ⊆ G+
3. F ⊆ F+ (tính phảnxạ) ⇒ F+ ⊆ (F+)+ (1)
+ + +
N ếu X → Y ∈ (F ) (2)⇒ X → Y ∈ F thậtvậy: (3)
G iả s ử r thỏatấ t c ả c á c phụ thuộchàm c ủ a F (4)
⇒ r thỏatấ t c ả cá c phụ thuộchàm củ a F (theo định nghĩa)
+

⇒ r thỏatấ t c ả cá c phụ thuộchàm củ a (F+)+ (theo định nghĩa)


⇒ r thỏaX → Y (vì (2)) ⇒ X → Y ∈ F+
(1) v à (3) ⇒ (F+)+ = F+
2 H ệ lu ậ td ẫ nArmstrong
H ệ luật dẫn là m ộ t phát biểu cho biết nếu m ộ t quan h ệ r thỏa m ãn m ộ t v ài phụ thuộc hàm thì n ó phải thỏa m ãn phụ
thuộchàm khác.
+
V ớ iX,Y,Z,W là tập con c ủ a Q . r l à quan h ệ b ất k ỳ c ủ a Q. Ta c ó 6 luật dẫn sau:
1. L u ậtph ả nxạ (reflexive rule): X → X
2. L u ậtth êmvào (augmentation rule): Cho X → Y ⇒ XZ → Y
3. L u ậthợp (union rule): Cho X  Y, X  Z  X  YZ
4. L u ậtphânr ã (decomposition rule): Cho X  YZ  X  Y
5. L u ậtb ắc c ầ u(transitive rule): Cho X  Y, Y  Z  X  Z
6. L u ậtb ắc c ầ ug iả(pseudo transitive rule): Cho X → Y, YZ → W ⇒ XZ → W
H ệ tiên đ ề Armstrong (Armstrong’s Axioms) gồm 3 luật: (1), (2) v à (5) Chứng
minh
V ớ it1,t2 l à hai b ộ bấ t k ỳ c ủ a quan h ệ r.
Luậtphảnxạ: Ta c ó (t1.X = t2.X ⇒ t1.X = t2.X) theo định nghĩa suy ra X → X
Luậtthêm vào:g iả s ử c ó t1.XZ = t2.XZ (1)
⇒ t1.X = t2.X
⇒ t1.Y = t2.Y (do X  Y) (2)
⇒ XZ → Y (do (1) ⇒ (2))
Luậthợp: g iả s ử c ó t1.X = t2.X (1)
⇒ t1.X = t2.X v à t1.Z = t2.Z
⇒ t1.XZ = t2.XZ (2)
⇒ X → YZ (do (1) ⇒ (2))
Luậtphân rã : g ỉa s ử c ó : t1.X = t2.X (1)
⇒ t1.YZ = t2.YZ (do X → YZ)
⇒ t1 .Y = t2.Y (2)
⇒ X → Y (do (1) ⇒ (2))
Luậtbắc cầu:g iả s ử c ó t1.X = t2.X (1)
⇒ t1.Y = t2.Y
⇒ t1.Z = t2.Z (2)
⇒ X → Z (do (1) ⇒ (2))
Luậtbắc cầu g iả:g iả s ử c ó : t1.XZ = t2.XZ (1)
⇒ t1.X = t2.X v à t1.Z = t2.Z (2)
⇒ t1.Y = t2.Y (do X → Y) (3)
⇒ t1.YZ = t2.YZ (K ết hợp (2) v à (3))
 t1.W = t2.W (do YZ → W) (4)
⇒ XZ → W
Trong 6 luật trên, c h ỉ cần 3 luật 1, 2 v à 6 là đ ủ , nghĩa là c á c luật c ò n lại c ó thể suy dẫn t ừ ba luật này.
i H ệ lu ậtd ẫ nArmstrong là đ ú n g
N ó i rằng X → Y là phụ thuộc hàm được suy diễn n h ờ vào luật dẫn Armstrong nếu tồ n tại
c á c tập phụ thuộc hàm F0 ⊂ F1 ⊂... ⊂ Fn sao cho X → Y ∈ Fn v ớ i F0,F1,...,Fn lầ n lượt được
hình thànhthỏaphương phápsau:
B ước1: F0 = F
Bươc 2:chọn m ột s ố phụ thuộc hàm trong Fi á p dụng h ệ luật dẫn Armstrong đ ể thu được m ộ t số phụ
thuộchàm m ới.Đ ặtFi+1= Fi ∪ {cá c phụ thuộchàm m ớ } i
Ví dụ: Cho F = {AB → C,C → B,BC → A} thì c ó F0 ⊂ F1 ⊂ F2 sao cho C → A ∈ F2
F0 = {AB → C,C → B, BC → A} á p dụng luậthợp cho C → B v à C → C
F1 = {AB → C,C → B, BC → A, C → BC} á p dụng luậtb ắc cầu.
F2 = {AB → C,C → B, BC → A, C →BC, C → A}

H ệ quả: H ệ lu ậ td ẫ n Armstrong là đ ú n gnghĩa là n ế u F là tậ p c á c phụ thu ộchà m đ ú n gtrên quan


h ệ r v à X → Y là m ộ tphụ th u ộch àm được suy d iễ nt ừ F n h ờ h ệ lu ậtd ẫ n Armstrong thì X → Y
đ ú n gtrênquan h ệ r. V ậ yX → Y là phụ th u ộch à m được suy diễnlogic từ F

Phần tiếp theo chúng ta s ẽ chứng minh h ệ luật dẫn Armstrong l à đầy đ ủ , nghĩa l à mọi phụ thuộc hàm X → Y
được suy diễn logic t ừ F s ẽ được suy diễn t ừ F n h ờ h ệ luậtdẫn Armstrong.
ii Bao đóng của tậ p thu ộctính X (closures of attribute sets)
(a)Đ ịnhnghĩa
Q là lược đ ồ quan hệ, r là quan h ệ tương ứ ng ,F l à tập c á c phụ thuộchàm trong Q. X,Ai l à c á c tập con c ủ a Q+.
+
Bao đ ó n gc ủ atậ p th u ộ ctính X đ ố iv ớ iF k ý h iệulà X+ (hoặc X ) được định nghĩa như sau:
X+ = ∪ Ai v ớ iX → Ai là phụ thuộc h àm được suy diễnt ừ F n h ờh ệ tiê nđ ề Armstrong
Tính chất:
+ bao đóngc ủ a Q l à Q+
(b)C á ctính ch ấtc ủ abao đ ó ng
N ếu X,Y l à cá c tập con c ủ a tập thuộctính Q+ thì ta c ó cá c tính chấtsau đây:
1. Tính ph ả nxạ: X ⊆ X+
2. Tính đơn đ iệu : N ế u X ⊆ Y thì X+ ⊆ Y+
3. Tính lũ yđ ẳ n:g X++ = X+
4. (XY)+ ⊇ X+Y+
5. (X+Y)+ = (XY+)+ = (X+Y+)+
6. X → Y ⇔ Y+ ⊆ X+
7. X → X+ v à X+ → X
8. X+ = Y+ ⇔ X → Y v à Y → X
Chứngminh:
X → X ⇒ X ⊇ X
+
1.
+ +
2. A  X ⇒ X → A ⇒ Y → A ⇒ A ∈ Y
3. A ∈ X++ ⇒ X+ → A v à X → X+ (á p dụng 8) ⇒ X → A ⇒ A∈X+
⇒ X++ ⊆ X+. Á pdụng 1 ⇒ X++ ⊇ X+
...............................................
7. X → A1 v à X→ A2 ⇒ X → A1∪A2 .... X→∪Ai = X+
X+ ⊇ X ⇒ X+ → X (Phụ thuộchàm hiển nhiên)
...............................................
(c) T huậtto ántìm bao đ ón g
Tính liên tiếp tập c á c tập thuộctính X0,X1,X2,... theo phương phápsau:
B ư ớ c1: X0 = X
B ư ớ c2: lầ n lượt x é tc á cphụ thu ộchà m c ủ aF
N ế u Y→Z c ó Y ⊆ Xi thì Xi+1 = Xi ∪ Z
Loại phụ thuộc h à m Y → Z k h ỏ iF
B ư ớ c3: N ế uở b ư ớ c2 khôngtính được Xi+1 thì Xi chính là bao đ ó n gc ủ aX
Ngược lại lặ p lại bư ớ c2
Ví dụ 1:
Cho lược đ ồ quan h ệ Q(ABCDEGH) v à tập phụ thuộchàm F
A
CE
H
C
D }
Tìm bao đóngcủ a cá c tập X = {AC} dựa trên F. G iải:
B ước1: X0 = AC
B ước2: Do f1, f2, f3, f4 khôngthỏa.f5 thỏa vì X+ ⊇ AC X1
= AC ∪ D = ACD
L ập lại bước2: f1 khôngthỏa,f2 thỏavì X1 ⊇ AD:
X2 = ACD ∪ CE = ACDE
f3 thỏavì X2 ⊇ D
X3 = ACDE ∪ H = ACDEH
f4 khôngthỏa,f5 khôngx é t vì đ ã thỏa
L ập lại bước 2: f2,f3 không x é t vì đ ã thỏa, f1,f4 không thỏa,f5 không x ét vì đ ã thỏa.Trongbướcn ày X3
khôngthay đ ổ i=> X+=X3={ACDEH} là bao đóngc ủ a X
Ví du 2ï:
Q(A,B,C,D,E,G)
F = {f1: A → C;
f2: A → EG;
f3: B → D;
f4: G → E}
X = {A,B}; Y = {C,G,D}
K ết quả:
X+ = {ABCDEG}
Y+ = {CGDE}
(d)Đ ịnhlý
T huậtto á ntìm bao đ ó n gcho k ế tq u ảXi = X+
Chứngminh
1. Ta chứng minh Xi ⊆ X+ bằng phương pháp qui nạp.
B ướccơ sở chứngminh X → X0
Theo tính phảnxạ c ủ a h ệ luậtdẫn thì X → X theo thuậttoánthì X0 = X ⇒ X → X0
V ậy X0 ⊆ X+
B ướcqui nạp g iả s ử c ó X → Xi-1 (1) ta phảichứngminh X → Xi
Theo thuậttoántìm bao đóngthì c ó fj = Xj → Yj đ ể Xi-1 ⊇ Xj v à Xi = Xi-1 ∪ Yj
⇒ Xi-1 → Yj (2).(1)v à (2) ⇒ X → Yj (3)
(1) v à (3) ⇒ X→ Xi-1Yj = Xi ⇒ X → Xi
V ậy Xi ⊆ X+
2. Ta chứngminh A ⊆ X+ ⇒ A ⊆ Xi đ ể kết luận Xi ⊇ X+
A ⊆ X+ nên c ó m ộ tphụ thuộchàm X → A. Theo thuậttoántìm bao đóngthì X ⊆ Xi ⇒ A ⊆Xi
(e)H ệ quả
1. Q là lược đ ồ quan h ệ . F là tậ p phụ th u ộchàm ,A là th u ộctính c h ỉ x u ấ th iện ở v ế p h ả ic ủ ac á cphụ th u ộch à m
trong F thì X+ = (X – A)+ ∪ A
2. Q là lược đ ồ quan h ệ . F là tậ p phụ thu ộchàm , X là tậ p con c ủ a Q+ v à Y = {c á c thu ộctính xu ấth iện ở v ế
p h ả ic ủ ac á cphụ th u ộch àm trong F} thì X+ ⊆ X ∪ Y.
Chứngminh
1. Theo thuậttoán tìm bao đóngthì bao đóngX+ hay (X-A)+ được hình thànhqua m ộts ố bước.
Ta chứngminh biểu thứ cX+ = (X – A)+ ∪ A theo qui nạp.
B ướccơ sở: X0 = X, (X-A)0 = X - A ⇒ X0 =(X - A)0 ∪ A đúng
B ướcqui nạp: g iả s ử ta c ó Xi-1 =(X - A)i-1 ∪ A. Bao đóngXi được hình thànhdo c ó fj
= Xj → Yj để:
Xi-1 ⊇ Xj v à Xi = Xi-1 ∪ Yj = (X - A)i-1 ∪ A ∪ Yj
(1). Sự hình thànhXi luôn kéo theo sự hình thành(X-A)i vì:
Xi-1 = (X - A)i-1 ∪ A ⊇ Xj do Xj khôngchứaA nên:
(X - A)i-1 ⊇ Xj vậy (X - A)i = (X - A)i-1 ∪ Yj (2)
(1) v à (2) cho:
Xi = (X - A)i ∪ A l à điều phảichứngminh
2. B ướccơ sở: X0 = X ⇒ X0 ⊆ X ∪ Y
B ướcqui nạp: g iả s ử c ó Xi-1 ⊆ X ∪ Y ta chứngminh Xi ⊆ X ∪ Y.
Bao đóngXi được hình thànhdo c ó fj = Xj → Yj để:
Xi-1 ⊇ Xj v à Xi = Xi-1 ∪ Yj ⊆ X ∪ Y ∪ Yj do Yj l à v ế phảicủ a phụ thuộc hàm nên
Y ∪ Yj = Y vậy Xi ⊆ X ∪ Y
3 H ệ lu ậ td ẫ nArmstrong là đ ầ yđủ
i Định lý
H ệ lu ậ td ẫ n Armstrong là đ ầ y đ ủ nghĩa là m ọi phụ th u ộch àm X → Y được suy diễn logic t ừ F s ẽ được suy d iễ ntừ
F n h ờh ệ lu ậ td ẫ n Armstrong.
Chứngminh:
Đ ể chứng minh X → Y được suy diễn t ừ F n h ờ h ệ luật dẫn Armstrong ta chứng minh bằng phương pháp phản
chứngnghĩa l à nếu X → Y không suy diễn được t ừ h ệ lu ật dẫn Armstrong thì c ó quan
h ệ r thỏa các phụ thuộc hàm F nhưng không thỏa phụ thuộc hàm X → Y (điều n ày nghịch lý v ớ i
g iả thuyết là mọi quan h ệ r thỏa c á c phụ thuộc hàm trong F thì r cũng thỏa phụ thuộc hàm X →
Y).
Thật vậy g iả s ử Q(A1,A2,...,An) l à lược đ ồ quan hệ, ai,bi l à c á c g iá trị khác nhau trên m iền g iá
trị Ai. r là quan h ệ trên Q c ó hai b ộ t v à t’được x ác định như sau:
t=(a1,a2,...,an)
t ? α N ếu A i ∈ X +
'.Ai ι
?
? β Ngươc lai
ι
V ậy quan h ệ r c ó t.X = t’.X nhưng t.Y ≠ t’.Y (t.Y gồm c á c g iá trị ai c ò n t’.Y phải c ó ít nhất
m ột bi nếu không Y ⊆ X+ ⇒ X → Y được suy dẫn t ừ h ệ luật dẫn Armstrong ). Như vậy r không thỏa
phụ thuộchàm X → Y.
B ây g iờ ta chứngminh quan h ệ r thỏa mọi phụ thuộc hàm trong F. Gọi W → Z l à phụ thuộc hàm trong F.
N ếu W ⊄ X+ ⇒ t.W ≠ t’.W ⇒ mệnh đ ề (t.W = t’.W ⇒ t.Z = t’.Z)đúng
N ếu W ⊆ X+ ⇒ t.Z = t’.Z = b ộ cá c ai
⇒ mệnh đ ề (t.W = t’.W ⇒ t.Z = t’.Z)đúng
ii H ệq u ả :
Bao đ ó n gc ủ atậ p th u ộ ctính X đ ố iv ớ iF là :
X+ = ∪ Ai v ớ iX → Ai là phụ thuộc h àm được suy diễnlogic từ F
Tính chất
X → Y ∈ F+ ⇔ Y ⊆ X +
Chứngminh
X → Y ⇒ c ó k sao cho Y = Ak ⊆ ∪ Ai = X+
Y ⊆ X+ ⇒ X+ = Y ∪ (X+ - Y) ⇒ X → Y ∪ (X+ - Y) ⇒ X → Y
B àitoánthànhviên
N ó irằng X → Y l à thànhviên c ủ a F nếu X → Y ∈ F+
M ộtvấn đ ề quan trọng khi nghiên c ứ u l ý thuyếtCSDL là khi cho trướctậ p c á c phụ thuộchàm F và
+
m ột phụ thuộchàm X → Y, làm thế n ào đ ể biết X → Y c ó thuộcF hay không b à i toán n ày được
+ +
gọi l à ø b ài toán thành viên. Đ ể trả lờ i câu h ỏ i n ày ta c ó thể tính F rồi x ác định xem X → Y c ó thuộc F hay
+
không.Việc tính F là m ộ t công việc đ ò ih ỏ ith ờ igian v à công sứ c.Tuy nhiên, thay vì
+
tính F chúngta c ó thể dùng thuật toán sau đ ể x ác định X → Y c ó là thành viên củ a F hay không.Thuậttoán n ày s ử
dụng tính chấtv ừ achứngminh trên.
T huậtto á nx á cđịnh f = X→Y c ó là thànhviênc ủ aF hay không
B ư ớ c1: tính X+
B ư ớ c2: so sá n hX+ v ớ iY n ế uX+ ⊇ Y thì ta khẳng định X → Y là thànhv iênc ủ aF
Bạn đọc h ãy nắm thậtk ỹ thuậttoánn ày – n ó m ở đầu cho m ộtloạt ứ n gdụng v ề sau.
+
III TH U Ậ TT O Á NTÌM F
1 T huậttoá ncơ b ả n
+
Đ ể tính bao đóngF củ a tập c á c phụ thuộc hàm F ta thực hiện cá c bướcsau: B ước1: Tìm
+
tấ t c ả tập con củ a Q
B ước 2: Tìm tấ t c ả c á c phụ thuộc hàm c ó thể c ó c ủ a Q. B ước 3:
Tìm bao đóngcủ a tấ t c ả tập con củ a Q.
+
B ước 4: Dựa v ào bao đóng củ a tấ t c ả cá c tậ p con đ ã tìm đ ể x ác định phụ thuộc hàm n àothuộcF
Ví dụ 3:
Cho lược đ ồ quan h ệ Q(A,B,C) F = {AB → C,C → B} là tập phụ thuộchàm trên Q. F+ được tính lần lượt
theo c á c bướctrên là như sau:
B ước1: C áctập con củ a Q+
∅ A B C
∅ {A} {B} {C}
{A,B} {A,C}
{B,C}
{A,B,C}
Bước 2: c á c phụ thuộchàm c ó thể c ó củ a F (khôngk ê cá c phụ thuộchàm hiển nhiên)
A B ABC BC ABCF C A CBCF+ ACBCF+ BCAC
+
AAB AABC BAC ABACF CBF CABC ACABCF BCAB
+ + +
A C B  A BBC ABBCF CAB ACBF BCA C
AAC BAB BABC ABABCF CAC ACABF BCAB
+ +
B ước3: bao đóngcủ a cá c tập con củ a Q đ ố i v ớ iF
∅+ =∅ A+ = A C+ = BC
+
ABC =ABC B +
= B AC+ = ABC
+
AB = ABC BC+ = BC
B ước4: F = {AB → C,C → B} suy ra:
F+ = {AB→C,AB→AC,AB→BC,AB→ABC,C→B,C→BC,AC→B,AC→AB,AC→BC,AC→ABC}
2 T huậttoá nc ả itiến
Dựa v à o th u ậtto á ncơ b ả n trên ,ta nhậnth ấ yc ó th ể tính F+ theo c á c bư ớ csau: B ư ớ c1: Tìm
tấ tc ả tậ p con c ủ aQ+
B ư ớ c2: Tìm bao đ ó n gc ủ atấ tc ả tậ p con c ủ aQ+.
B ư ớ c4: Dựa v à obao đ ó n gc ủ ac á ctậ p con đ ã tìm đ ể suy ra c á cphụ th u ộch àm th u ộcF+.
Ví dụ bao đóngA+ = A c h ỉ gồm cá c phụ thuộchàm hiển nhiên
bao đóng{AB}+ = ABC cho c á c phụ thuộchàm khônghiển nhiên sau
AB→C,AB→AC,AB→BC,AB→ABC
(Tìm tấ t c ả cá c tập con c ủ a {ABC} rồ i b ỏ c á c tập con c ủ a {AB})
C áctập con c ủ a {ABC} là : ∅, {A},{B},{AB},{C},{AC},{BC},{ABC}
B ỏ c á c tập con củ a {AB} là : ∅, {A},{B},{AB},{C},{AC},{BC},{ABC}
C áctập c ò n lại chính l à v ế phảicủ a phụ thuộchàm c ó v ế trá ilà AB
IV B À IT Ậ P
1/ Cho quan h ệ sau:
r( A B C D E)
a1 b1 c1 d1 e1
a1 b2 c2 d2 d1
a2 b1 c3 d3 e1
a2 b1 c4 d3 e1
a3 b2 c5 d1 e1
Phụ thuộchàm n ào sau đây thỏar:
A→D,AB→D,C→BDE,E→A,A→E
2/ Cho Q+={ABCD}
a) Tìm tấ t c á c cá c tập con c ủ a Q
b) Tìm tấ t c ả cá c phụ thuộchàm c ó thể c ó c ủ a Q (khôngliệt k ê phụ thuộchàm hiển nhiên)
3/ Tìm bao đóngF+ củ a quan h ệ phanCong(PHICONG,MAYBAY,NGAYKH,GIOKH)
4/ Cho F = {AB→C,B→D,CD→E,CE→GH,G→A}
a) H ãychứngtỏ phụ thuộchàm AB→E,AB→G được suy diễn t ừ F n h ờ luậtdẫn Armstrong
b) Tìm bao đóngc ủ a AB(với b à i toán không n ó i gì v ề lược đ ồ quan h ệ Q ta ngầm hiểu Q+ l à tập thuộc tính c ó
trong F nghĩa là Q+={ABCDEGH})
5/ Cho F = {A→D,AB→DE,CE→G,E→H}. H ãytìm bao đóngcủ a AB.
6/ Cho F={AB→E,AG→I,BE→I,E→G,GI→H}.
a) H ãychứngtỏ phụ thuộchàm AB→GH được suy diễn t ừ F n h ờ luậtdẫn Armstrong
b) Tìm bao đóngc ủ a {AB}
7/ Cho F={A→D,AB→E,BI→E,CD→I,E→C} tìm bao đóngcủ a {AE}+={ACDEI}
----oOo----
Chương 5 .

P H ỦC Ủ AT Ậ PPH Ụ T H U Ộ CH À M
I ĐỊNH NGHĨA
N ó irằng hai tậ p phụ thuộchàm F v à G l à tương đương (Equivalent) nếu F+ = G+ k ý hiệu F ≡ G.
Ta n ó iF p h ủG nếu F+ ⊇ G+
T huậtto á nx á cđịnh F v à G c ó tương đương không
B ư ớ c1: V ớ im ỗ iphụ thu ộchà m X→Y c ủ aF ta x á cđịnh xem X→Y c ó là thànhviên c ủ aG khôngB ư ớ c2: V ớ i
m ỗ iphụ th u ộch à m X→Y c ủ aG ta x á c định xem X→Y c ó là thànhv iênc ủ aF khôngN ế uc ả hai b ư ớ ctrên đ ề u
đ ú n gthì F ≡ G
Ví dụ 1: Cho lược đ ồ quan h ệ Q(ABCDE) hai tậ p phụ thuộchàm :
F={A→BC,A→D,CD→E} v à G = {A→BCE,A→ABD,CD→E}
a) F c ó tương đương v ớ iG không?
b) F c ó tương đương v ớ iG’={A→BCDE} không?
G iải:
+
a) Ta c ó A =ABCDE ⇒ trong G+ c ó A→BC v à A→D ⇒ F ⊆ G+ ⇒ F+ ⊆ G+ (1).
+
A =ABCDE ⇒ trong F+ c ó A→BCE v à A→ABD ⇒ F+ ⊇ G ⇒ F+ ⊇ G+ (2)
(1) v à(2) ⇒ F+ = G+ ⇒ F ≡ G.
b) Do (CD) + = CD ⇒ G’+ không chứa phụ thuộc hàm CD→E ⇒ F không tương đương
v ớ iG’
II P H ỦT Ố ITH IỂ UC Ủ AM Ộ TT Ậ PPH Ụ TH U Ộ CH À M(minimal cover)
1 Phụ thuộch à m c ó v ế tr á idư thừa
F là tập cá c phụ thuộc hàm trên lược đ ồ quan h ệ Q, Z là tập thuộc tính, Z→Y∈F. N ó i r ằ n gphụ thu ộch àm Z →
Y c ó v ế trá idư thừa (phụ th u ộckhôngđ ầ yđ ủ )n ế uc ó m ộ tA∈Z sao cho:
F ≡ F-{Z → Y}∪ {(Z-A) → Y}
Ngược lại Z → Y là phụ th u ộchà m c ó v ế trá ikhôngdư th ừ ahay Y phụ thu ộch à m đ ầ yđ ủ v à o Z
hay phụ th u ộch àm đ ầ yđ ủ .
Ví dụ 2: Q(A,B,C) F={AB→C; B→C}
F ≡ F-{AB→C}∪{(AB-A)→C}={B→C}
AB → C là phụ thuộchàm khôngđầy đ ủ
B → C là phụ thuộchàm đầy đ ủ
C h úý: phụ thuộchàm c ó v ế trá ichứam ộ tthuộctính l à phụ thuộchàm đầy đ ủ .

Ví dụ 3: cho tập phụ thuộchàm F = {A → BC,B → C,AB → D} thì phụ thuộchàm AB→D c ó
v ế trá idư thừaB vì:
F ≡ F – {AB → D}∪{A → D}
≡ {A → BC,B → C,A → D}
Ta n ó iF là tậ p phụ thuộc h à m c ó v ế trá ik h ô n gdư th ừ an ế u F kh ôn gch ứ aphụ thu ộch àm c ó v ếtrá idư th ừa.
T huậtto á nloại k h ỏ iF c á cphụ thuộc h à m c ó v ế trá idư thừa.
B ư ớ c1: lầ n lượt thực h iệnb ư ớ c2 cho c á cphụ th u ộch à m X→Y c ủ aF
B ư ớ c2:V ớ im ọi tậ p con th ậ tsự X’≠ ∅ c ủ aX.
N ế uX'→Y∈ F+ thì thay X→Y trong F bằngX'→Y thực h iệnlại b ư ớ c2
Ví dụ: Ở ví dụ 3 phụ thuộc hàm AB→D c ó A+=ABCD ⇒ A→D∈F+. Trong F ta thay AB→D bằng
A→D ⇒ F ≡ {A → BC,B → C,A → D}
2 T ậ pphụ thuộch à m c ó v ế p h ả im ộtthuộctính (the right sides of dependencies has a
single attribute)
M ỗi tậ p phụ thuộc hàm F đều tương đương v ớ i m ộ t tập phụ thuộc hàm G m à v ế phải c ủ a cá c phụ thuộchàm trong G
c h ỉgồm m ộtthuộctính.
Ví dụ 4: cho F = {A → BC,B → C,AB → D} ta suy ra
F ≡ {A → B, A → C ,B → C,AB → D} = G
G được gọi l à tậ p phụ thuộc h à m c ó v ế p h ả im ộ tthu ộctính.
3 T ậ pphụ thuộch à m khôngdư thừa
N ó irằng F l à tập phụ thuộchàm không dư thừa nếu không tồ n tại F’⊂ F sao cho F’≡ F. Ngược
lại F là tập phụ thuộchàm dư thừa.
Ví dụ: cho F = {A→BC, B→D, AB→D} thì F dư thừavì
F ≡ F’= {A→BC, B→D}

T huậtto á nloại k h ỏ iF c á cphụ thu ộchà m dư thừ a:


B ư ớ c1: L ầ nlượt x é tcác phụ thu ộch àm X → Y c ủ aF
B ư ớ c2: n ế u X → Y là thànhviê n c ủ a F - {X → Y} thì loại X → Y k h ỏ iF B ư ớ c3:
thực h iệnb ư ớ c2 cho c á cphụ th u ộch àm tiế ptheo c ủ aF
4 T ậ pphụ thuộch à m t ố ithiểu(minimal cover)
F được gọi là m ộ ttập phụ thuộchàm tố i thiểu (hay p h ủ tố i thiểu) nếu F thỏa đồng th ờ iba điều kiện sau:
1. F l à tập phụ thuộchàm c ó v ế trá ikhôngdư thừa
2. F l à tập phụ thuộchàm c ó v ế phảim ộ tthuộctính.
3. F l à tập phụ thuộchàm khôngdư thừa

T huậtto á ntìm p h ủtố ith iểuc ủ am ộ ttậ p phụ thu ộch àm


B ư ớ c1: loại k h ỏ iF c á cphụ th u ộch à m c ó v ế trá idư thừa.
B ư ớ c2: T á chc á c phụ thu ộch à m c ó v ế p h ả itr ê nm ộ tthu ộctính thànhc á c phụ thu ộchà m
c ó v ế p h ả im ộ tthu ộctính.
B ư ớ c3: loại k h ỏ iF c á cphụ thu ộch àm dư th ừa.

C h úý: Theo thuậttoán trên, từ m ộ ttập phụ thuộchàm F luôn tìm được ít nhấtm ộ tp h ủ tố i thiểu Ftt
đ ể F≡ Ftt v à nếu th ứ tự loại cá c phụ thuộc hàm trong tập F là khác nhau thì c ó thể s ẽ thu được nhữngp h ủ tố i
thiểu khácnhau.
Ví dụ 5: Cho lược đ ồ quan h ệ Q(A,B,C,D) v à tập phụ thuộcF như sau:
F={AB → CD,B → C,C → D}
H ãytính p h ủtố i thiểu củ a F.
G iải:
B ước1: AB→CD là phụ thuộchàm c ó v ế trá idư thừa?
B → CD ∈ F+? trả lờ i: B+=BCD ⇒ B → CD ∈ F+
V ậy AB → CD là phụ thuộchàm c ó v ế trá idư thừaA ⇒ kết q u ả củ a bước1 là :
F≡ {B → CD;B → C;C → D}
B ước2: kết q uả củ a bước2 là :
F≡ {B → D; B → C;C → D}=F1tt
B ước3: trong F1tt, B → C l à phụ thuộchàm dư thừa?
B → C ∈ G+? v ớ iG = F1tt - {B → C}={B → D;C → D}
BG+=BD ⇒ B → C ∉ G+ ⇒ trong F1tt B → C không dư thừa.
trong F1tt,B → D l à phụ thuộchàm dư thừa?
B → D ∈ G+? v ớ iG = F1tt - {B → D}={B → C;C → D}
BG+=BCD ⇒ B → D ∈ G+ ⇒ trong F1tt,B → D dư thừa.kết
q u ả củ a bước3 cho p h ủ tố i thiểu:
F≡ {B → C;C → D}=Ftt
Ví dụ 6: Cho lược đ ồ quan h ệ Q(MSCD,MSSV,CD,HG) v à tập phụ thuộcF như sau:
F = {MSCD → CD;
CD → MSCD;
CD,MSSV → HG;
MSCD,HG → MSSV;
CD,HG → MSSV;
MSCD,MSSV → HG}
H ãytìm p h ủtố i thiểu c ủ a F
k ết quả :
Ftt = {MSCD → CD;
CD → MSCD;
CD,HG → MSSV;
MSCD,MSSV → HG}
III K H Ó AC Ủ ALƯỢCĐ Ồ QUAN HỆ (Key)
1 Định Nghĩa
Q(A1,A2,…,An)là lược đ ồ quan hệ.
Q+ là tập thuộctính c ủ a Q.
F là tậ p phụ thuộchàm trên Q.
K là tập con củ a Q+.
N ó irằngK là m ộtkh óac ủ aQ n ếu :
1. K+ = Q+ v à
2. K hôngtồ n tại K' ⊂ K sao cho K’+= Q+

T ập thuộctính S được gọi l à siê ukh óanếu S ⊇ K


Thuộctính A được gọi là th u ộctính kh óanếu A∈K v ớ iK là khóab ấ t k ỳ củ a Q. Ngược lại A được gọi
l à th u ộctính khôngkh óa.

M ộtlược đ ồ quan h ệ c ó thể c ó nhiều khóav à tập thuộctính khôngkhóacũngc ó thể bằng rỗng.
(Khi thiết k ế m ộ t h ệ thống thông tin, thì việc lập lược đ ồ cơ s ở d ữ liệu đạt đến m ộ t tiêu chuẩn n ào
đ ó l à m ột việc làm quan trọng. Việc x ác định chuẩn cho m ộ t lược đ ồ quan h ệ c ó liên quan m ật thiết v ớ i thuật toán tìm
khóa).
T huậtto á n tìm m ộ tkh óac ủ a m ộ tlược đ ồ quan h ệ Q B ư ớ c1:
g á n K = Q+
B ư ớ c2: A là m ộ tthuộc tính c ủ aK, đ ặ tK’ = K − A. N ế uK’+= Q+ thì g á nK = K' thực
h iệnlại b ư ớ c2
N ếu m uốn tìm c á c khóa khác (nếu c ó ) củ a lược đ ồ quan hệ, ta c ó thể thay đ ổ i th ứ tự loại b ỏ c á cphần t ử c ủ a K.
Ví dụ 7:
Q(A,B,C,D,E,G,H,I)F={AC→ B;BI → ACD;ABC→D;H→I;ACE→BCG;CG→AE}
Tìm K
L ần lượt loại c á c thuộctính trong K theo th ứ tự sau:
A, B, D, E, I
Ta được m ộ tkhóal à c ủ a lược đ ồ quan h ệ là {C,G,H}
(Lưu ý là thuậttoánn ày c h ỉ nên s ử dụng trong trườnghợp c h ỉcần tìm m ộtkhóa).
2 T huậttoá ntìm tấ t c ả k h óa
i T huậttoá ncơ b ả n
B ước 1: X ác định tấ t c ả c á c tậ p con khác rỗng củ a Q+. K ết q uả tìm được giả s ử là cá c tập thuộc tính X1,
X2, …,X2n-1
B ước2: Tìm bao đóngc ủ a c á c Xi
B ước3: Siêu khóalà cá c Xi c ó bao đóngđúngbằng Q+. G iả s ử ta đ ã có c á c siêu khóal à S =
{S1,S2,…,Sm}
B ước4: X ây dựng tập chứa tấ t c ả cá c khóa củ a Q từ tập S bằng cách x é t m ọi Si, Sj con c ủ a
S (i ≠ j), nếu Si ⊂ Sj thì ta loại Sj (i,j=1..n), kết q u ả c ò n lại của S chính là tậ p tấ t c ả cá c khóa
cần tìm.
Ví dụ 8: Tìm tấ t c ả c á c khóac ủ a lược đ ồ quan h ệ v à tập phụ thuộchàm như sau:
Q(C,S,Z); F = {f1:CS → Z; f2:Z → C}

X
i

V ậy lược đ ồ quan h ệ Q c ó hai khóalà : {C,S} v à {S,Z}


Thuật toán trên thì d ễ hiểu, d ễ c à i đặt, tuy nhiên nếu v ớ in k h á lớ n thì phép duyệt đ ể tìm ra tập tấ t
+
c ả cá c tập con c ủ a tập Q là không hiệu quả. Do vậy cần thu hẹp không gian duyệt. Chúng ta s ẽ nghiênc ứ uthuậttoán
c ả i tiến theo hướnggiảm số thuộctính củ a tập cần duyệttấ t c ả cá c tập con.
ii T huậttoá nc ả itiến
Trướckhi đi v ào thuậttoánc ả i tiến, ta cần quan tâm m ộts ố kháiniệm sau:
+ T ập thuộc tính nguồn (TN) chứa tấ t c ả c á c thuộc tính c ó xuất hiện ở v ế trái v à không xuất
hiện ở v ế phải củ a cá c phụ thuộc hàm v à c á c thuộc tính không xuất hiện ở c ả v ế trá i lẫn v ế phảic ủ a c á c phụ thuộc
hàm .
+ T ập thuộc tính đích (TD) chứa tấ t c ả c á c thuộc tính c ó xuất hiện ở v ế phải v à không xuấthiện ở v ế trái c ủ a
c á c phụ thuộchàm .
+ T ập thuộc tính trung gian (TG) chứa tấ t c ả c á c thuộc tính xuất hiện ở c ả v ế trá i lẫ n v ế phảicủ a c á c phụ thuộc
hàm .
H ệ quả: N ế uK là k h ó ac ủ aQ thì TN ⊆ K v à TD ∩ K = ∅
Chứngminh TN ⊆ K
Theo h ệ q u ả 2 củ a thuậttoántìm bao đóngta c ó K+ ⊆ K∪TD∪TG
Ta chứngminh A ∈ TN ⇒ A ∈ K. Thậtvậy:
N ếu A ∉ K ⇒ K+ ⊆ K∪TD∪TG ⊆ Q+-A ⇒ K khônglà khóa⇒ m âu thuẫn
Chứngminh TD ∩ K = ∅
G iả s ử c ó thuộctính A ∈ TD ∩ K ta s ẽ dẫn đến điều m âu thuẫn.Thật vậy:Theo h ệ qu ả
1 c ủ a thuậttoántìm bao đóngthì K+ = (K-A)+ ∪ A
A ∈ TD ⇒ c ó X l à v ế trá ic ủ a m ộ tphụ thuộchàm trong F sao cho X → A (1) v à A ∉ X ⇒ X
⊆ K+ = (K-A)+ ∪ A vì A ∉ X ⇒ X ⊆ (K-A)+ ⇒ (K-A) → X (2)
(1) v à (2) cho (K-A) → A ⇒ A∈(K-A)+ ⇒ (K-A)+ ∪ A = (K-A)+ ⇒ K+ = (K-A)+
m âu thuẫnv ớ iđiều K là khóa.
Dựa v ào h ệ q u ả trên ta c ó thuật toán tìm tấ t c ả khóa sau: D ữ liệu
v ào: Lược đ ồ quan h ệ Q v à tập phụ thuộc hàm F D ữ liệu ra: T ất
c ả cá c khóacủ a quan h ệ
T huậtto á ntìm tấ tc ả kh óac ủ am ộ tlược đ ồ quan h ệ
B ư ớ c1: tạo tậ p th u ộ ctính nguồnTN, tậ p thu ộctính trung gian TG
B ư ớ c2: if TG = ∅ then lược đ ồ quan h ệ c h ỉc ó m ộtkh óaK
K = TN
k ế tth ú c
Ngược lại
Qua b ư ớ c3
B ư ớ c3: tìm tấ tc ả c á ctậ p con Xi c ủ atậ p trung gian TG
B ư ớ c4: tìm c á csiê ukh óaSi bằngcách∀Xi
if (TN ∪ Xi)+ = Q+ then
Si = TN ∪ Xi
B ư ớ c5: tìm kh óab ằ n gcáchloại b ỏ c á cs iê ukh óakhôngtố itiểu
∀ Si, Sj ∈ S
if Si ⊂ Sj then Loại Sj ra k h ỏ iT ậ psiê ukh óaS
S c ò nlại chính là tậ p kh óacầ n tìm.

Ví dụ 9: G iảilại b à itập ví dụ 8
A ù pdụng thuậttoánc ả i tiến ta c ó lờ igiảinhư sau:
TN = {S}; TG = {C,Z}
Gọi Xi là c á c tập con củ a tập TG:
C SC Q+ SC SC
Z SZ Q+ SZ SZ
CZ SCZ Q+ SCZ
K ết q u ảquan h ệ trên c ó hai khóal à : {S,C} v à {S,Z}
IV B À IT Ậ P
1/ Chứngminh cá c tính chấtsau:
a) Tính cộngđầy đ ủ X → Y v à Z → W ⇒ XZ → YW
b) Tính tích lũ y X → Y v à Y → ZW ⇒ X → YZW
2/ Cho G={AB→C,A→B,B→C,A→C}. F={AB→C,A→B,B→C} c ó tương đương v ớ iG không?
3/ Cho lược đồ CSDL
Kehoach(NGAY,GIO,PHONG,MONHOC,GIAOVIEN)
F={NGAY,GIO,PHONG → MONHOC
MONHOC,NGAY → GIAOVIEN
NGAY,GIO,PHONG → GIAOVIEN
MONHOC → GIAOVIEN}
a) Tính {NGAY,GIO,PHONG}+ ; {MONHOC}+
b) Tìm p h ủtố i thiểu c ủ a F
c) Tìm tấ t c ả c á c khóac ủ a Kehoach
4/ Cho lược đồ CSDL
Q(TENTAU,LOAITAU,MACHUYEN,LUONGHANG,BENCANG,NGAY)
F={TENTAU → LOAITAU
MACHUYEN → TENTAU, LUONGHANG
TENTAU,NGAY → BENCANG, MACHUYEN}
a) H ãytìm tập p h ủtố i thiểu c ủ a F
b) Tìm tấ t c ả cá c khóacủ a Q
5/ Q(A,B,C,D,E,G)
Cho F={AB→C;C→A;BC→D;ACD→B;D→EG;BE→C;CG→BD;CE → AG}
X={B,D}, X+=?
Y={C,G}, Y+=?

6/ cho lược đ ồ quan h ệ Q v à tập phụ thuộchàm F


a) F={AB→E;AG→I;BE→I;E→G;GI→ H} chứngminh rằng AB → GH.
b) F={AB→C;B→D;CD→E;CE→GH;G→A}chứng minh rằng AB → E; AB → G
7/ Cho quan h ệ r
A B C D
x u x Y
y x z x
z y y y
y z w z
Trong c á c phụ thuộchàm sau đây,PTH nà o khôngthỏa
A → B; A → C; B → A; C → D; D → C; D → A
8/ H ãy tìm tấ t c ả c á c khóacho lược đ ồ quan h ệ sau:
Q(BROKER,OFFICE,STOCK,QUANTITY,INVESTOR,DIVIDENT)
F={STOCK → DIVIDENT
INVESTOR → BROKER
INVESTOR,STOCK → QUANTITY
BROKER → OFFICE }

9/ X ét lược đ ồ quan h ệ v à tậ p phụ thuộcd ữ liệu:


Q(C,T,H,R,S,G)
f={ f1: C→ T; f2: HR→ C; f3: HT→ R;
f4: CS→ G; f5: HS→ R}
Tìm p h ủtố i thiểu củ a F

10/ Q(A,B,C,D,E,H)
F={A → E; C → D; E → DH}
Chứngminh K={A,B,C} là khóaduy nhấtcủ a Q
11/ Q(A,B,C,D)
F={AB→C; D→B; C→ABD}
H ãytìm tấ t c ả cá c khóacủ a Q
12/ Q(A,B,C,D,E,G)
F={AB→C;C→ A;BC→D;ACD→B;D→EG;BE→C;CG→BD;CE→G}
H ãytìm tấ t c ả cá c khóacủ a Q.
13/ X ácđịnh p h ủtố i thiểu củ a tập phụ thuộchàm sau:
a) Q(A,B,C,D,E,G),
F={AB→C;C→A;BC→D;ACD→B;D→EG;BE→C;CG→BD;CE→AG}
b) Q(A,B,C)
F={A→B,A→C,B→A,C→A,B→C}
14/ X ácđịnh p h ủtố i thiểu củ a c á c tậ p phụ thuộchàm sau:
a) Q1(ABCDEGH)
F1={A→ H,AB→C,BC→D;G→B}
b) Q2(ABCSXYZ)
F2={S→A;AX→B;S→B;BY→C;CZ→X}
c) Q3(ABCDEGHIJ)
F3={BG→D;G→J;AI→C;CE→H;BD→G;JH→A; D→I }
d) Q4(ABCDEGHIJ)
F4={BH→I;GC→A;I→J;AE→G;D→B;I→H}
----oOo----
Chương 6 .

C H U Ẩ NH Ó ACƠ S Ở D ỮL IỆ U

I DẠNGCHUẨN C Ủ ALƯỢCĐ Ồ QUAN H Ệ(normal forms for relation schemes)


Trong thực tế , m ột ứ n g dụng cụ thể c ó thể được thiết k ế thành nhiều lược đ ồ cơ s ở d ữ liệu khácnhau, v à tấ t nhiên
chất lượng thiết k ế c ủ a c á c lược đ ồ CSDL n ày cũngkhác nhau. C hất lượng thiết
k ế củ a m ộ t lược đ ồ CSDL c ó thể được đánh g iá dựa trên nhiều tiêu chuẩn trong đ ó sự trùng lắp thôngtin v à chi phí
kiểm tra c á c ràngbuộctoànvẹn là hai tiêu chuẩnquan trọng.
Sau đây l à m ộ t số tiêu chuẩn đ ể đánh g iá đ ộ tố /t xấu c ủ a m ộ t lược đ ồ quan hệ. Trước tiên ta tìm hiểu m ộ tsố kháiniệm
liên quan:
1 Định nghĩa cá cdạng chuẩn
i Dạng C huẩnM ộ t(First Normal Form)
M ộ tlược đ ồ quan h ệ Q ở dạng chuẩn1 n ế utoàn b ộ c á cth u ộctính c ủ am ọi b ộ đ ề umang g iátrị đơn.
Ví dụ 1: X étquan h ệ
MASV HOVATEN KHOA TENMONHOC DIEMTHI
99023 NGUYENTHITHU CONG NGHE THONG TIN KY THUAT LAP TRINH 6
TOAN ROI RAC 8
CO SO DU LIEU 4
99030 LE VAN THANH DIEN TU VI XULY 4
Quan h ệ nà y không đạt chuẩn 1 vì c á c thuộc tính TENMONHOC, DIEMTHI củ a b ộ th ứ nhất khôngmang g iá
trị đơn (chẳng hạn sinh viên NGUYEN THI THU c ó thuộc tính TENMONHOC l à KY THUAT LAP
TRINH, TOAN ROI RAC, CO SO DU LIEU).
Ta hoàntoànc ó thể đưa quan h ệ trên v ề dạng chuẩn1 như sau:
MASV HOVATEN KHOA TENMONHOC DIEMTHI
99023 NGUYENTHITHU CONG NGHE THONG TIN KY THUAT LAP TRINH 6
99023 NGUYENTHITHU CONG NGHE THONG TIN TOAN ROI RAC 8
99023 NGUYENTHITHU CONG NGHE THONG TIN CO SO DU LIEU 4
99030 LE VAN THANH DIEN TU VI XULY 4
C h úý ràngkhi x é t c á c dạng chuẩn,nếu ta khôngn ó igì thêm,ta hiểu dạng chuẩn đang x é t ít nhấtl à đạt dạng chuẩn1.
ii Dạng Chuẩn2 (Second Normal Form)
M ộ tlược đ ồ quan h ệ Q ở dạng chuẩn2 n ế u Q đạt chuẩn1 v à mọi thu ộctính khôngkh óa c ủ a Q
đ ề uphụ th u ộcđ ầ yđ ủ v à okh óa.

T huậtto á nk iểmtra dạn gchuẩn2


V à o: lược đ ồ quan h ệ Q, tậ p phụ thuộch à m F
Ra: khẳngđịnh Q đạt chuẩn2 hay không đạt chuẩn2.
B ư ớ c1: Tìm tấ tc ả kh óac ủ aQ
B ư ớ c2: V ớ im ỗ ikh óaK, tìm bao đ ó n gc ủ atấ tc ả tậ p con th ậ tsự S c ủ aK.
B ư ớ c3: N ế uc ó bao đ ó n gS+ ch ứ ath u ộctính khôngkh óathì Q không đạt chuẩn2
Ngược lại thì Q đạt chuẩn2
Ví dụ 2: Cho lược đ ồ quan h ệ Q(A,B,C,D) v à tập phụ thuộchàm
F={AB→C; B→D; BC→A}. H ỏ iQ c ó đạt chuẩn2 không?
G iải:
TN={B}, TG={AC}

Xi (TN  Xi) (TN Xi)+ S iêuk h óa k h óa


φ B BD
A AB ABCD AB AB
C BC ABCD BC BC
AC ABC ABCD ABC
K hóa là K1=AB v à K2=BC. Ta thấy B⊂K1, B→D,D là thuộc tính không khóa⇒ thuộc tính khôngkhóa không
phụ thuộcđầy đ ủ v ào khóa⇒ Q khôngđạt chuẩn2.

Ví dụ 3: Quan h ệ sau đạt chuẩn2.


Q(G,M,V,N,H,P) F={G→M; G→N; G→H; G→P; M→V; NHP→M}
G iải:
TN={G} TG={M,N,H,P}

Xi (TN  Xi) (TN Xi)+ S iêuk h óa k h óa


φ G Q+ G G
+
M GM Q GM
N GN Q+ GN
+
MN GMN Q GMN
H GH Q+ GH
+
MH GMH Q GMH
NH GNH Q+ GNH
+
MNH GMNH Q GMNH
P GP Q+ GP
+
MP GMP Q GMP
NP GNP Q+ GNP
+
MNP GMNP Q GMNP
HP GHP Q+ GHP
+
MHP GMHP Q GMHP
+
NHP GNHP Q GNHP
MNHP GMNHP Q+ GMNHP
Lược đ ồ quan h ệ Q c h ỉ c ó m ộ t khóa v à khóa c hỉ c ó m ộ t thuộc tính nên mọi thuộc tính đều phụ thuộc đầy đ ủ
v ào khóa⇒ Q đạt chuẩn2
H ệ quả :
• N ếu Q đạt chuẩn1 v à tập thuộctính khôngkhóac ủ a Q bằng rỗng thì Q đạt chuẩn2
• N ếu tấ t c ả khóacủ a quan h ệ c h ỉ gồm m ộ tthuộc tính thì quan h ệ đ ó ít nhấtđạt chuẩn2.
Ví dụ 4: Q(A,B,C,D,E,H) F={A → E; C → D; E → DH}
G iải:
TN={ACB} TG={E}
Xi (TN  Xi) (TN Xi)+ S iêuk h óa k h óa
φ ACB ABCDEH ACB ACB
E ACBE ABCDEH ACBE
⇒ khóacủ a Q l à K = {ABC}.C⊂K, C→D, D là thuộctính khôngkhóa⇒ D phụ thuộc khôngđầy đ ủ
v ào khóanên Q khôngđạt chuẩn2.
iii Dạng Chuẩn3 (Third Normal Form)
Thuộctính phụ thuộcbắc cầu
Q l à lược đ ồ quan hệ, X,Y là hai tập con c ủ a Q+, A là m ộtthuộctính. N ó irằng
A phụ thuộcbắc cầu v ào X nếu c ả ba điều sau thỏa:
+ X → Y,Y → A
+ Y X
+ A ∉ XY
Định nghĩa 1:
Lược đ ồ quan h ệ Q ở dạng chuẩn3 n ế umọi phụ thu ộch àm X → A ∈ F+ v ớ iA ∉ X đ ề uc ó :
• H oặcX là siê ukh óa
• H oặcA là th u ộctính kh óa

Định nghĩa 2:
Lược đ ồ quan h ệ Q ở dạng chuẩn 3 n ế u mọi thuộc tính không kh óa c ủ a Q đ ề u không phụ th u ộcb ắ c cầ u v à o m ộ t
k h ó ab ấ tk ỳ c ủ aQ

Hai định nghĩa trên là tương đương, tuy nhiên việc c à i đặt thuật toán kiểm tra dạng chuẩn 3 theo định nghĩa 1
thì hiệu q uả hơn nhiều vì khôngphảikiểm tra tính phụ thuộcb ắc cầu.
Ta chứngminh hai định nghĩa tương đương bằng cách:
T ừ định nghĩa 1 ⇒ khôngc ó phụ thuộcbắc cầu v ào m ộtkhóabấ t k ỳ c ủ a Q. Thậtvậy:
Giả s ử c ó phụ thuộcbắc cầu v ào khóanghĩa l à c ó K → Y,Y → A,Y K v à A ∉ KY. Y → A
l à m ộ tphụ thuộchàm nên theo định nghĩa 1 c ó hai trườnghợp x ảy ra cho Y:
+ Y l à siêu khóa⇒ Y→K điều n ày m âu thuẫnv ớ iY K.
+ Y khônglà siêu khóa⇒ A là thuộctính khóa⇒ điều nà y trá iv ớ ig iả thiết A ∉ KY
T ừ định nghĩa 2 ⇒ nếu X→A∈F+ v ớ iA∉X thì X l à siêu khóahoặc A là thuộctính khóa
N ếu X→A∈F+ v ớ i A∉X c ó X không là siêu khóa v à A không l à thuộc tính khóa thì dẫn đến m ột số điều sau:
A không là thuộctính khóa ⇒ A ∉ K X
khônglà siêu khóa⇒ X K
Tóm lại ta c ó K→X, X→A,X K v à A ∉ KX ⇒
A phụ thuộc bắc cầu v ào K điều nà y m âu thuẫn v ớ i định nghĩa 2. H ệ qu ả 1:
N ếu Q đạt chuẩn3 thì Q đạt chuẩn2
H ệ q uả 2: N ếu Q không c ó thuộc tính không khóa thì Q đạt chuẩn 3. Chứng
minh:
H ệ q u ả 1: G iả s ử Q đạt dạng chuẩn 3 v à c ó thuộc tính không khóa A không phụ thuộc hàm đầy đ ủ
vào khóa K ⇒ K’⊂ K sao cho K’→A như vậy ta c ó K→K’,K’→A,K’ K, A ∉ KK’⇒ Q c ó phụ
thuộcbắc cầu.
H ệ q uả 2: mọi phụ thuộchàm trong Q đều c ó v ế phảil à thuộctính khóa ⇒ Q đạt dạng chuẩn3
Định lý:
Q là lược đ ồ quan h ệ
F là tậ p c á cphụ thu ộchà m c ó v ế phải m ộ tthu ộctính.
Q đạt ch u ẩ n3 n ế uv à c h ỉn ế umọi phụ thu ộch àm X→A∈F v ớ iA∉X đ ề uc ó
• H oặcX là siê ukh óa
• H oặcA là th u ộctính kh óa
Chứngminh:
Q đạt dạng chuẩn 3 theo định nghĩa ta suy ra m ọi phụ thuộc hàm X→A∈F v ớ i A∉X c ó X là siêu khóahoặc A
l à thuộctính khóa.
Ngược lại ta phải chứngminh nếu mọi phụ thuộc hàm X→A∈F v ớ i A∉X c ó X l à siêu khóa hoặc A
l à thuộc tính khóa thì m ọi phụ thuộc hàm X→A∈F+ v ớ i A∉X cũng c ó X là siêu khóa hoặc A l à thuộctính
khóa
G iả s ử c ó phụ thuộc hàm X→A∈F+ v ớ i A∉X sao cho X không là siêu khóa v à A không l à thuộc tính khóa s ẽ dẫn
đến A ∈ X+ ⊆ X ∪ {cá c thuộc tính khóa} điều nà y m âu thuẫn v ớ i A ∉ K.Trước khi chứngminh A ∈
X+ ⊆ X ∪ {c á c thuộctính khóa} ta c ó nhận x é t sau:
X không l à siêu khóa ⇒ X+ cũng không l à siêu khóa. Theo thuật toán tìm bao đóng, X+ được hình thành t ừ c á c Xi
⇒ ở m ỗ ibướ cXi cũngkhôngl à siêu khóa.
B ướccơ sở: X0 = X ⇒ X0 ⊆ X ∪ {cá c thuộctính khóa}
B ướcqui nạp: g iả s ử c ó Xi-1 ⊆ X ∪ {cá c thuộc tính khóa}. Bao đóngXi được hình thành do c ó
fj = Xj → Yj đ ể Xi-1 ⊇ Xj v à Xi = Xi-1 ∪ Yj ⇒ fj = Xj → Yj l à phụ thuộc hàm c ó Xj
không l à siêu khóa⇒ fj = Xj → Yj l à phụ thuộchàm c ó Yj l à thuộctính khóa⇒ Xi = Xi-1 ∪
Yj ⊆ X ∪ {c á c thuộctính khóa}
Qua chứngminh trên ⇒ A∈X+ ⊆ X ∪ {cá c thuộc tính khóa}⇒ A∈ X∪{c á c thuộc tính khóa}
⇒ A∈{c á c thuộc tính khóa} điều nà y nghịch l ý v ớ iđiều A ∉ K.
T huậtto á nk iểmtra dạn gchuẩn3
V à o: lược đ ồ quan h ệ Q, tậ p phụ thuộch à m F
Ra: khẳngđịnh Q đạt chuẩn3 hay không đạt chuẩn3.
B ư ớ c1: Tìm tấ tc ả kh óac ủ aQ
B ư ớ c2: T ừ F tạo tậ pphụ th u ộch à m tương đương F1tt c ó v ế p h ả im ộ tthu ộctính.
B ư ớ c3: N ế umọi phụ thu ộch à mX → A ∈ F1tt v ớ iA∉X đ ề uc ó X là siê ukh óahoặcA là
th u ộctính kh oá thì Q đạt chuẩn3 ngược lại Q khôngđạt chuẩn3
Ví dụ 5: Cho lược đ ồ quan h ệ Q(A,B,C,D) F={AB→C; D→B; C→ABD}.H ỏ iQ c ó đạt chuẩn 3
không?
G iải:
TN=∅ TG={ABCD}
Xi (TN  Xi) (TN Xi)+ S iêuk h óa k h óa
φ φ φ
A A A
B B B
AB AB ABCD AB AB
C C ABCD C C
AC AC ABCD AC
BC BC ABCD BC
ABC ABC ABCD ABC
D D BD
AD AD ABCD AD AD
BD BD BD
ABD ABD ABCD ABD
CD CD ABCD CD
ACD ACD ABCD ACD
BCD BCD ABCD BCD
ABCD ABCD ABCD ABCD

K1 = {AB}; K2 = {AD}; K3={C} l à cá c khóa ⇒ mọi phụ thuộc hàm X→A∈F đều c ó A là
thuộctính khóa.V ậy Q đạt chuẩn3

Ví dụ 6: Quan h ệ sau đạt chuẩn3. Q(N,G,P,M) F = {NGP→M,M→P}


iv Dạng ChuẩnBC (Boyce-Codd Normal Form)
M ộ tquan hệ Q ở dạng chuẩnBC n ế u m ọi phụ th u ộch à mX→A ∈ F+ v ớ iA∉X đ ề u c ó X là siê ukh óa .

H ệ q uả 1: N ếu Q đạt chuẩnBC thì Q đạt chuẩn3 (hiển nhiên do định nghĩa)


H ệ q uả 2: M ỗilược đ ồ c ó hai thuộctính đều đạt chuẩn BC (xétphụ thuộchàm c ó thể c ó c ủ a Q )
Định lý:
Q là lược đ ồ quan h ệ
F là tậ p c á cphụ thu ộchà m c ó v ế phải m ộ tthu ộctính.
Q đạt ch u ẩ nBC n ế uv à c h ỉn ế umọi phụ th u ộ ch àm X→A∈F v ớ iA∉X đ ề uc ó X là siê ukh óa
Chứngminh:
Q đạt dạng chuẩn BC theo định nghĩa ta suy ra mọi phụ thuộc hàm X→A∈F v ớ i A∉X c ó X là siêu khóa.
Ngược lại ta phải chứngminh nếu mọi phụ thuộc hàm X→A∈F v ớ i A∉X c ó X là siêu khóa thì m ọi
phụ thuộc hàm Z→B∈F+ v ớ i B∉Z cũng c ó Z l à siêu khóa. Thật vậy, do Z→B không là phụ thuộchàm hiển nhiên
nên theo thuật toán tìm bao đóngphảic ó X→A∈F sao cho Z⊇X (X là siêu khóa)⇒
Z là siêu khóa.

T huậtto á nk iểmtra dạn gchuẩnBC


V à o: lược đ ồ quan h ệ Q, tậ p phụ thuộch à m F
Ra: khẳngđịnh Q đạt chuẩnBC hay khôngđạt chuẩn BC.
B ư ớ c1: Tìm tấ tc ả kh óac ủ aQ
B ư ớ c2: T ừ F tạo tậ pphụ th u ộch à m tương đương F1tt c ó v ế p h ả im ộ t thu ộctính
B ư ớ c3: N ế u mọi phụ thu ộch àm X → A ∈ F1tt v ớ i A∉X đ ề uc ó X là siê u kh óa thì Q đạt
chuẩnBC ngược lại Q khôngđạt chuẩnBC
Ví dụ 7: Q(A,B,C,D,E,I) F={ACD→EBI;CE→AD}. H ỏ i Q c ó đạt chuẩn BC không?G iải:
TN={C} TG={ADE}
F ≡ F1tt={ACD→E,ACD→B,ACD→I,CE→A,CE→D}
M ọi phụ thuộchàm c ủ a F1tt đều c ó v ế trá ilà siêu khóa⇒ Q đạt dạng chuẩnBC
Ví dụ 8: Q(SV,MH,THAY)F = {SV,MH → THAY;THAY → MH}
Quan h ệ trên đạt chuẩn 3 nhưng không đạt chuẩn BC.. Ví dụ
9:
Chẳnghạn cho Q(A,B,C,D) v à F={AB → C; D → B; C → ABD}
thì Q là 3NF nhưng khôngl à BCNF
N ếu F={B → D,A → C,C → ABD} là 2 NF nhưng khôngl à 3 NF

T huậtto á nk iểmtra dạn gchuẩnc ủ am ộ tlược đ ồ quan h ệ.


V à o: lược đ ồ quan h ệ Q, tậ p phụ thuộc h à m F Ra:
khẳngđịnh Q đạt chuẩngì?
B ư ớ c1: Tìm tấ tc ả kh óac ủ aQ
B ư ớ c2: K iểmtra chuẩnBC n ế uđ ú n gthì Q đạt chuẩnBC, k ế tth ú cth u ậtto á nngược lại qua
b ư ớ c3
B ư ớ c3: K iểm tra chuẩn 3 n ế u đ ú n gthì Q đạt chuẩn 3, k ế t th ú c th u ậtto á nngược lại
qua b ư ớ c4
B ư ớ c4: K iểm tra chuẩn2 n ế u đ ú n gthì Q đạt chuẩn2, k ế t th ú cth u ậttoán .ngược lại Q
đạt chuẩn1

Định nghĩa: Dạng chuẩnc ủ a m ộ tlược đ ồ cơ s ở d ữ liệ ulà dạng chuẩnth ấp nh ất trong c á cdạng chuẩnc ủ ac á clược
đ ồ quan h ệ con.
II P H É PT Á C HK Ế TN Ố IB Ả OT O À N
1 P héptáchk ết n ố ib ả otoàn th ôn gtin (lossless-join decomposition)
Cho lược đ ồ quan h ệ Q(TENNCC,DIACHI,SANPHAM,DONGIA) c ó quan h ệ tương ứ n gl à r
Đ ặtr1 là quan h ệ c ó được bằng cáchchiếu r lên Q1(TENNCC,SANPHAM,DONGIA),
Đ ặtr2 là quan h ệ c ó được bằng cáchchiếu r lên Q2(TENNCC,DIACHI)
Đặt r’l à quan h ệ c ó được bằng cáchkết tự nhiên giữar1 v à r2 qua TENNCC.
chẳnghạn:
r
TENNCC DIACHI SANPHAM DONGI
Hung 12 NguyễnKiệm Gạch ống A 200
Hung 12 NguyễnKiệm Gạch th ẻ 250
Hung 40 NguyễnOanh Gạch ống 200

r2 = r.Q2+ r1 = r.Q1+
TENNCC DIACHI TENNCC SANPHAM DONGI
Hung 12 NguyễnKiệm Hung Gạch ống A 200
Hung 40 NguyễnOanh Hung Gạch th ẻ 250

TENNCC
r’ = r1|><|r2
TENNC DIACHI SANPHA DONGI
C
Hung 12 NguyễnKiệm M
Gạch ống A 200
Hung 12 NguyễnKiệm Gạch th ẻ 250
Hung 40 NguyễnOanh Gạch ống 200
Hung 40 NguyễnOanh Gạch th ẻ 250
K ết q u ảlà r ≠ r’ hay r ≠ r.Q1|><|r.Q2.
V ớ ik ết qu ả trên, ta n ó i phép tách ρ (Q1,Q2) tách Q thành Q1, Q2 là tách-kếtn ố i (phân rã ) m ất m átthôngtin.
N ếu r = r.Q1|><|r.Q2 ta n ó i phép tách ρ (Q1,Q2) l à tách-kếtn ố i không m ất m át thông tin
(táchk ết n ố i b ảo toànthôngtin hay phân r ã b ảo toànthôngtin).
V ậy v ớ iđiều kiện nà o thì phép táchtrở thành tách-kếtn ố i khôngm ấtm átthôngtin?
i Định nghĩa ph éptáchQ thành2 lược đ ồ con
Q là lược đ ồ quan hệ, Q1, Q2 hai lược đ ồ con c ó :
Q1+∩ Q2+ = X
Q1+∪ Q2+ = Q+
N ó i rằng lược đ ồ quan h ệ Q được tách thành hai lược đ ồ con Q1, Q2 theo phép tách ρ (Q1,Q2) l à phép tách k ết
n ố i không m ất (hay phép tách bả o toàn thông tin) nếu v ớ i r là quan h ệ b ất k ỳ c ủ a Q
ta c ó :
X
r = r.Q1 >< r.Q2
T ứ cl à r được tạo nên t ừ phép kết n ố i tự nhiên của cá c hình chiếu củ a n ó trên c á c Q1,Q2
ii Tính chất
N ế uQ là một lược đ ồ quan h ệ ,Q1,Q2 là hai lược đ ồ quan h ệ con c ó
Q1+ ∩ Q2+ = X
Q1+ ∪ Q2+ = Q+
X → Q2+
X
Thì r = r.Q1 >< r.Q2
Chứngminh:
X
t ∈ r ⇒ t ∈ r.Q1 >< r.Q2
t ∈ r ⇒ ∃ t1∈r1 t1 = t.Q1 ∃ t2∈r2 t2 = t.Q2 t1.X = t2.X = t.X
X
⇒ t ∈ r.Q1 >< r.Q2 (Theo định nghĩa)
X
t ∈ r.Q1 >< r.Q2 ⇒ t ∈ r
X
t ∈ r.Q1 >< r.Q2 ⇒ ∃ t1∈r1 t1 = t.Q1 (1)
m à t1 ∈ r1=r.Q1 nên theo định nghĩa phép chiếu ta lại c ó ∃ t’∈r t1 = t’.Q1 (2)
(1) v à (2) ⇒ t’.Q1 = t.Q1 ⇒ t’.X = t.X ⇒ t’.Q2 = t.Q2 (do X → Q2)
⇒ t’ = t ⇒ t ∈ r
Ví dụ 10: cho Q(SAIP), Q1 =(SA) , Q2 =(SIP) F={S→A,SI→P}. H ỏ iviệc tách Q thành Q1 v à
Q2 c ó gây ra m ất m át thông tin không? Á p
dụng tính chấttrên,ta c ó
Q1+ ∩ Q2+ = S
Q1+ ∪ Q2+ = SAIP = Q+
S → SA = Q1+
S
Theo tính chất trên, v ớ i mọi quan h ệ r c ủ a Q ta luôn c ó r = r.Q1 >< r.Q2. Suy ra phép tách
trên l à phép táchkết n ố i b ảo toànthôngtin.
iii P h éptáchQ thànhn lược đ ồ con

Q là m ộtlược đ ồ quan hệ, F l à tập phụ thuộchàm .Q được tách thànhc á c lược đ ồ con Q1, Q2, Q3..., Qn
theo từn gbướcm à ở m ỗi bướ cm ột lược đ ồ được tách thành hai lược đ ồ con v à thỏa m ãn điều kiện củ a tính chấtb ảo toàn
thôngtin thì v ớ ir là quan h ệ bấ t k ỳ c ủ a Q ta luônc ó :
r = r.Q1|><|r.Q2|><|r.Q3..... |><|r.Qn
Chứngminh:
Ta chứngminh bằng phương phápqui nạp.
Ở bướ ci = 1 thì r = r.Q1|><|r.Q1m đúngtheo định lý b ảo toànthôngtin
G iả s ử biểu th ứ ctrên đúngở bướci = k nghĩa là ta c ó :
r = r.Q1|><|r.Q2|><|r.Q3..... |><|r.Qk |><|r.Qkm (1)
ta phảichứngminh r = r.Q1|><|r.Q2|><|r.Q3.....|><|r.Qk|><|r.Qk+1|><|r.Qk+1m
V ớ i Qkm được tách thành hai lược đ ồ con Qk+1 v à Qk+1m theo đúng điều kiện c ủ a tính chất b ảo toàn thông tin
nghĩa nếu s là quan h ệ củ a Qkm thì s = s.Qk+1|><|s.Qk+1m ⇒
r.Qkm = (r.Qkm).Qk+1|><|(r.Qkm).Qk+1m = r.Qk+1|><|r.Qk+1m ⇒
r = r.Q1|><|r.Q2|><|r.Q3.....|><|r.Qk|><|r.Qk+1|><|r.Qk+1m
iv T huậttoá nkiểm tra ph éptáchk ết n ố ib ả otoànthôngtin
(a)Thuậttoá n
D ữ liệu và o: lược đ ồ quan h ệ Q(A1,A2,…An), tập phụ thuộchàm F, phép táchρ =(Q1,Q2,…,Qk).
D ữ liệu ra: kết luận phép tách ρ c ó phảilà phép táchb ảo toànthôngtin ?

1. T hiếtlậ p bản gv ớ ik+1 dòng,n+1 c ộ t . C ộ tj ứ n gv ớ ithu ộctính Aj (j=1...n), h àngi ứ n g v ớ ilược đ ồ quan h ệ
Qi(i=1…k). Tại ví trí h àngi, c ộ tj ta đ iề nk ý h iệ uAj n ế uAj ∈ Qi, n ế ukhông
ta đ ặ tk ý h iệubt v à ov ị trí đ ó .(v ớ it đ ầ utiê n b ằ n g1) v à sau đ ó tăngt lê n m ộ tđơn vị.
2. X é tlầ n lượt c á cphụ thuộc h àm trong F, á p dụ n gcho bản gv ừ am ớ ithànhlậ p ở trên .G iảs ử x é t
(X → Y) ∈ F, chú ngta tìm những hàng giốn gnhau ở tấ t c ả c á c th u ộctính c ủ a X, n ế u thấy những
hàn g như v ậ y ta s ẽ là m cho c á c k ý h iệu c ủ a hai h àng n à y bằng nhau ở tấ t c ả c á c th u ộctính c ủ a Y. Khi là m
cho 2 k ý h iệu n à y bằng nhau, n ế u m ộ t trong hai k ý h iệu là aj thì cho k ýh iệu kia tr ở thànhaj, n ế u hai k ý
h iệ ulà bk h oặcbl thì c ó th ể cho chú ngtr ở th ànhbt hoặcbt (v ớ i
t = min (k,l)). B ư ớ cn à y được tiế p tục cho c á c phụ th u ộch àm c ò n lại c ủ a F cho đ ế n khi không
c ò ná p dụng được n ữ a .
3. X é tbản g k ế tq u ả ,n ế u th ấ y trong bả n g n à y c ó m ộ t hàng ch ứ atoàn aj (i=1..n) thì k ế t lu ận đ ó là p h é pk ế t n ố ib ả oto à n
thôngtin, ngược lại là p h é pk ế tn ố im ấ tm á tthôngtin.
C h ú ý: m ộ tđiều quan trọng cần phảin h ớ l à khi cho hai k ý hiệu bằng nhau thì phảicho bằng nhau ở
tấ t c ả cá c xuất hiện c ủ a chúng trong bảng chứ không phải c h ỉ cho bằng nhau ở những k ý hiệu trong phạm vi c á c phụ
thuộcX → Y ∈ F.

Ví dụ 11: V ớ iQ(ABCDE)
Q1 = (AD),Q2 =(AB), Q3 =(BE), Q4 =(CDE), Q5 =(AE)
F = {A→C,B→C,A→D,DE→C,CE→A}
Kiểm tra tính bả o toànthôngtin củ a phép phân r ã Q thànhQ1,Q2,Q3,Q4,Q5.

Bước 1: a1 a2 a3 a4 a5 B ước2: Điền b1,b2,b3, ...


A B C D E A B C D E
Q1(AD) a1 a4 Q1(AD) a1 b1 b2 a4 b3
Q2(AB) a1 a2 Q2(AB) a1 a2 b4 b5 b6
Q3(BE) a2 a5 Q3(BE) b7 a2 b8 b9 a5
(
Q4 CDE) a3 a4 a5 (
Q4 CDE) b10 b11 a3 a4 a5
Q5(AE) a1 a5 Q5(AE) a1 b12 b13 b14 a5

S ử a bảngg iá trị đ ể n ó thỏaA→C S ử a bảngg iá trị đ ể n ó thỏa B→C


Sửa b4,b13 thànhb2 Sửa b8 thànhb2

S ử a bảngg iá trị đ ể n ó thỏaA→D S ử a bảngg iá trị đ ể n ó thỏa DE→C


S ử a b5,b14 thànha4 sử a b2 thànha3 ⇒ sử a tấ t c ả b2
thànha3
A B C D E A B C D E
Q1(AD) a1 b1 b2 a4 b3 Q1(AD) a1 b1 a3 a4 b3
Q2(AB) a1 a2 b2 a4 b6 Q2(AB) a1 a2 a3 a4 b6
Q3(BE) b7 a2 b2 b9 a5 Q3(BE) b7 a2 a3 b9 a5
Q4(CDE) b10 b11 a3 a4 a5 Q4(CDE) b10 b11 a3 a4 a5
Q5(AE) a1 b12 b2 a4 a5 Q5(AE) a1 b12 a3 a4 a5

S ử a bảngg iá trị đ ể n ó thỏaCE→A L ần lượt x é t lại cá c phụ thuộc hàm trong


S ử a b7,b10 thànha1. F, nếu bảng g iá trị chưa thỏa phụ thuộc
hàm n ào thì tiếp tục làm cho n ó thỏa.
Sửa bảngg iá trị đ ể n ó thỏa A→D

A B C D E A B C D E
Q1(AD) a1 b1 a3 a4 b3 Q1(AD) a1 b1 a3 a4 b3
Q2(AB) a1 a2 a3 a4 b6 Q2(AB) a1 a2 a3 a4 b6
Q3(BE) a1 a2 a3 b9 a5 Q3(BE) a1 a2 a3 a4 a5
Q4(CDE) a1 b11 a3 a4 a5 Q4(CDE) a1 b11 a3 a4 a5
Q5(AE) a1 b12 a3 a4 a5 Q5(AE) a1 b12 a3 a4 a5
D òng th ứ Q3(BE) củ a bảng chứa toàn g iá trị aj (j=1..n) nên phép phân rã trên l à bả o toàn
thôngtin.
(b)Đ ịnhlý
B ản g k ế t q u ả c ủ a thu ật to á n tr ê n cho p h é p ta k ế t lu ận được tính b ả o toàn hay không b ả o toànthôngtin c ủ a
p h éptá c h.
Chứngminh:
Ta chứng minh nếu bảng kết qu ả thuật toán không c ó hàng c hỉ chứa toàn g iá trị a thì phép tách
khôngb ảo toànthôngtin. Thậtvậy:
Ta xây dựng m ộ tquan h ệ r có c á c g iá trị như bảngkết q u ả c ủ a thuật toán, cá c hàngl à cá c b ộ .Quan
h ệ r thỏa tậ p phụ thuộc F vì thuật toán đ ã sử a c á c g iá trị c ủ a r đ ể n ó k hỏ i vi phạm cá c phụ thuộchàm trong F ⇒
r l à m ột quan h ệ củ a lược đ ồ Q. Ta tách quan h ệ r thành cá c quan h ệ ri v ớ i ri = r.Qi v à dùngphép kết tự
nhiên đ ể kết chúnglại. N ếu:
+ ∃ k Qk+∩Qi+ = ∅ ∀i ⇒ r1|><|r2....|><|rk không tồ n tại ⇒ phép tách không b ả o toàn
thôngtin.
+ ∀i,∃ k Qi+∩Qk+ = Xik ≠ ∅ m à m ỗ i ri đều c ó m ột b ộ ti chứa toàn a ⇒ c á c ti n ố i được v ớ inhau vì
c ó cùng g iá trị trên Xik ⇒ c ó m ộ t b ộ t∈r1|><|r2....|><|rk c ó toàn g iá trị a, b ộ
n ày lại không c ó trong r ⇒ r ≠ r1|><|r2....|><|rk ⇒ phép tách không bả o toàn thông
tin.
Ta chứngminh nếu bảng kết q u ả thuật toán c ó hàng chỉ chứa toàn g iá trị a thì phép tách b ảo toàn
thôngtin. Ta chứngminh điều n ày qua 2 bước:
+ B ước1: chứngminh nếu t∈r⇒ t∈r1|><|r2....|><|rk. Suy ra r⊆r1|><|r2....|><|rk.
G iả s ử t=(a1,...,an)∈ r . Ta tách quan h ệ r thành c á c ri = r.Qi v ớ i ti = t.Qi. C ó hai trường
hợp:
o ∀i,∃ k Qi+∩Qk+ = Xik ≠ ∅ ⇒ c á c ti n ố i được v ớ inhau vì c ó cùngg iá trị trên Xik ⇒ b ộ
t∈r1|><|r2....|><|rk ⇒ r ⊆ r1|><|r2....|><|rk.
o ∃ k Qk+∩Qi+ = ∅ ∀i. Suy ra bảng kiểm tra b ảo toàn th ô n gtin ở giai đoạn chưa thỏa cá cphụ thuộc
hàm ,c ó dạng:

V ớ imọi X⊆Q+ tk.X ≠ ti.X v ớ i i≠ k nên khi làm bằng c á c g iá trị theo c á c phụ thuộc hàm X→Y
thì c á c g iá trị b ở dòng Qk không thay đ ổ i c ò n cá c g iá trị b ở cá c c ộ t Ak,Ak+1,... không đ ổ i thành a được. Suy ra
bảngk ết q uả c ủ a thuật toán khôngbao g iờ chứa dòngc ó toàng iá trị a. V ậy trườnghợp
∃ k Qk+∩Qi+ = ∅ ∀i khôngxả y ra khi bảngkiểm tra b ảo toànthôngtin c ó m ộ tdòngtoàna.
+ B ước2: chứngminh nếu t∈r1|><|r2....|><|rk⇒ t∈r. Suy ra r1|><|r2....|><|rk⊆r.
G iả s ử t=(a1,...,an)∈ r1|><|r2....|><|rk theo định nghĩa suy ra ∀i ∃ ti∈ri sao cho
t.Qi+ = ti. Nhưng ri=r.Qi+ ⇒ ∃ ti’∈r sao cho ti’.Qi+=ti=t.Qi+ ∀i . Trườnghợp xấu nhất
l à c á c ti’là cá c dòng khác nhau. Trong trường hợp này, ta c ó thể xem ti’là dòng Qi c ủ a bảng kiểm tra b ảo
toàn thông tin v ớ i cá c g iá trị b xem như chưa biết. Nhưng cá c dòng Qi phải thỏa c á c
phụ thuộc hàm trong F, phép làm bằng c á c g iá trị theo các phụ thuộc hàm đ ã dần dần x ác định
được tấ t c ả cá c g iá trị b c ủ a m ột dòngti’n ào đ o ,ùlà dòngcó toàn g iá trị a. V ậy c ó m ộ t i’ đ ể ti’=
t ⇒ t∈r ⇒ r ⊇ r1|><|r2....|><|rn (2)
(1) v à (2) ⇒ r = r1|><|r2....|><|rn. N ó icách khácphép táchbả o toànthôngtin.
2 P héptáchb ả otoàn phụ thuộch à m (decompositions that preserve dependencies)
i T ậpphụ thuộch àm Fi c ủ aQi
Phần trên c h ỉ đ ề cấp vấn đ ề tách m ộ t lược đ ồ quan h ệ Q(A1,A2,…An)thành c á c lược đ ồ con Q1,Q2,
…,Qk c ò n không đ ề cập đến tậ p phụ thuộc hàm c ủ a c á c lược đ ồ con này. N ếu Q(A1,A2,…
An) là lược đ ồ quan hệ, F phụ thuộc hàm , ρ =(Q1,Q2,…,Qk)l à phép phân r ã b ảo toàn thông tin, ri l à
quan h ệ củ a Qi thì tính chấtsau thỏa:
+ ri c h ỉth ỏ ac á cphụ thu ộch à m X→Y∈F+ v ớ iXY⊆ Qi+
N ó icách khác,tập phụ thuộchàm củ a Qi chính là Fi c ó Fi+={X→Y∈F+| XY⊆Qi+}. Ta c ó thể hiểu
F được phân r ã thànhcá c F1,...,Fk
Chứngminh tính chấttrên:
Do ri được tách t ừ r m à r thỏa F+ ⇒ ri thỏa c á c phụ thuộc hàm X→Y∈F+ v ớ i XY⊆Qi+.Theo định nghĩa
phụ thuộc hàm , đương nhiên ri không thỏa c á c phụ thuộc hàm X→Y∈F+ v ớ i XY⊄Qi+. Ngoàira ri
không thỏa b ấ t k ỳ m ộ t phụ thuộc hàm n ào X→Y∉F+ . Thật vậy nếu c ó X→Y như vậy
thì r = r1|><|r2....|><|rn cũng phải thỏa X→Y∉F+. Điều nà y m âu thuẫn v ớ i định nghĩa
c ủ a tậ p F+ .
ii Định nghĩa:
Cho phân r ã ρ =(Q1,Q2,…,Qk) c ủ a m ộ tlược đ ồ quan hệ, v à m ộttập phụ thuộchàm F. Hình chiếu
c ủ a F trên m ộ ttập cá c thuộctính Qi+ k ý hiệu Π Qi(F) l à tập cá c phụ thuộchàm X → Y ∈ F+ sao
cho XY ⊆ Z.
Π Qi(F)=Fi+={ X → Y| X → Y ∈ F+ v à XY ⊆ Qi}
Ta n ó iphân r ã ρ b ảo toàntập phụ thuộchàm F nếu
F ≡ ∪ Π Qi(F) ⇔ F+ = (∪ Π Qi(F))+ v ớ i i=1..k

H ệ quả : F+ ⊇ (∪ Π Qi(F))+ v ớ i i=1..k


Nhận x é t: t ừ h ệ qu ả trên ta suy ra: đ ể x ác định phép phân r ã ρ =(Q1,Q2,…,Qk) c ó b ảo toànphụ
thuộchàm hay không,v ớ im ỗiphụ thuộchàm X→Y∈F ta x á c định xem n ó c ó là thànhviên c ủ a tập phụ thuộchàm G =
∪ Π Qi(F) hay không.Ta khôngcần x á c định chiều ngược lại.

Ví dụ12: Cho lược đ ồ quan h ệ Q(A,B,C) v à F={A→B,B→C,C→A}. Phép phân rã ρ =(Q1,Q2) tách
Q thành hai lược đ ồ quan h ệ Q1(A,B) v à Q2(B,C). H ãy tính hình chiếu c ủ a F trên Q1+ v à Q2+.Phép
phân r ã c ó b ảo toànphụ thuộchàm F không?
G iải: v ề nguyêntắ c ta c ó thể giảib à itoántheo c á c bướ cdư ớiđây
B ước1: K ê tấ t c ả tập con c ủ a Q+
A B C
∅ A B C
AB AC
BC
ABC
+
B ước2: Tính bao đóngc ủ a các tập con c ủ a Q
+
∅+=∅ A =ABC B+ =ABC C+ =ABC
AB+ =ABC AC+ =ABC
BC+ =ABC
ABC+ =ABC
B ước3: Tính F+
A B B A CA ABABC ACB BCA
A→AB B→AB C→B AB→C AC→AB BCAB
A→C B→C C→AB AB→BC AC→BC BC→AC
AAC BAC CAC ABABC ACABC BCAB
A→BC B→BC C→BC C
A→ABC B→ABC C→ABC
B ước4: Tính Π Q1(F), Π Q2(F)
Π Q1(F)= F1+ ={A→B,A→AB,B→A,B→AB}≡ {A→B,B→A} (chỉlấy pth c ó v ế phải1 tt)
Π Q2(F)= F2+ ={B→C,B→BC,C→B,C→BC}≡ {B→C,C→B}(chỉlấy pth c ó v ế phải1 tt) B ước5:
G = Π Q1(F)∪ Π Q2(F)={A→B,A→AB,B→A,B→AB,B→C,B→BC,C→B,C→BC}
F={A→B,B→C,C→A} c ó A→B, B→C đều l à thành viên củ a G, c ò n C→A c ó là thành viên
c ủ a G hay không ta tính CG+. CG+=ABC ⇒ C→A cũng là thành viên củ a G. V ậy phép phân rã trên b ảo toàn phụ
thuộchàm .

B àitoán trên c ó thể được giảitheo cá c b ư ớ cđơn giảnsau cho từ nglược đ ồ quan h ệ con: Tính cho Q1
B ước1: K ê tấ t c ả tập con c ủ a Q1+
A B
∅ A B
AB
+
B ước2: Tính bao đóngc ủ a các tập con c ủ a Q1
+ +
∅+=∅ A =ABC B =ABC
+
AB =ABC
+
B ước3: Tính F1 =Π Q1(F)
A→B B→A
A→AB B→AB
Tính cho Q2
B ước4: K ê tấ t c ả tập con c ủ a Q2+
B C
∅ B C
BC
+
B ước5: Tính bao đóngc ủ a các tập con c ủ a Q2
+ +
∅+=∅ B =ABC C =ABC
+
BC =ABC
+
B ước6: Tính F2 =Π Q2(F)
B→C C→B
B→BC C→BC
B ước7:
G=Π Q1(F)∪Π Q2(F)={A→B,A→AB,B→A,B→AB,B→C,B→BC,C→B,C→BC}
F={A→B,B→C,C→A} c ó A→B, B→C đều là thành viên củ a G c ò n C→A c ó là thành viên củ a
G hay không ta tính CG+. CG+=ABC ⇒ C→A cũng l à thành viên củ a G. V ậy phép phân r ã trên b ảo toàn phụ
thuộchàm .
iii Ý nghĩa c ủ aphânr ã có b ả otoàn phụ thuộch à m
Ví dụ 13: Cho lược đ ồ quan h ệ Q(C,S,Z) v à F={CS→Z,Z→C}. Phép tách ρ =(Q1,Q2) tách Q
thànhhai lược đ ồ Q1(S,Z) v à Q2(C,Z). H ỏ iphép táchc ó b ảo toànphụ thuộchàm không?G iải:
Q1 c ó c á c tập thuộctính con:
S Z
∅ S Z
SZ
Bao đóngcủ a c á c tậ p thuộctính con Q1+
+
∅ =∅ S =S
+ Z+ =ZC
SZ+ =CSZ
F1+ c h ỉ gồm cá c phụ thuộchàm hiển nhiên vì tấ t c ả c á c phụ thuộchàm sau đều khôngthỏa:
Z→C SZ→C
Z→ZC SZ→CS
SZ→CZ
SZ→CSZ
Q2 c ó c á c tập thuộctính con:
C Z
∅ C Z
CZ
Bao đóngcủ a c á c tậ p thuộctính con Q2+
+
+
∅ =∅ C =C Z+ =ZC
CZ+ =CZ
F2+ gồm c á c phụ thuộc:
Z→C Z→ZC

Π Q1(F)∪Π Q2(F)={Z→C,Z→ZC}≡ {Z→C} khôngtương đương v ớ iF = {CS→Z,Z→C}


V ậy phép phân r ã trên không b ảo toàn phụ thuộchàm, điều n ày c ó nghĩa khi ta đưa d ữ liệu v ào Q1
và Q2 sao cho không vi phạm phụ thuộc hàm hình chiếu c ủ a n ó , nhưng khi kết n ố i chúng lại thì d ữ liệu kết q u ả củ a
lược đ ồ quan h ệ Q lại vi phạm phụ thuộchàm CS→Z
Π Q1(F)={PTHHN} Π Q2(F)={Z→C, Z→ZC} F={CS→Z,Z→C}
Q1 (S Z) Q2 (C Z) Q (C S Z)
s1 z1 c1 z1 c1 s1 z1
s1 z2 c1 z2 c1 s1 z2
iv T huậttoá nkiểm tra b ả otoànphụ thuộch àm
Thuật to á ntìm bao đ ó n gc ủ atậ p thuộc tính X đ ố iv ớ iG = ∪ Π Qi(F)
V ào: ρ =(Q1,Q2,…,Qk),F,X
Ra: XG+
B ư ớ c1: V ớ im ỗ iphụ thu ộch àm X→Y∈F ta thực h iệntừ b ư ớ c2 đ ế nb ư ớ c4
B ư ớ c2: đ ặ tZ’ = X
+ +
Bước 3: th ế Z’ = Z’∪((Z’∩ Q )+ ∩ Q )
B ư ớ c4: n ế uở Qi, Z’thay đ ổ ithì thực h iệnlại b ư ớ c3 cho Qđầu tiê n
Ngược lại k ế tth ú cth u ậtto á nv à trả v ề Z’(là bao đ ó n gXG+)

T huậtto á nk iểmtra b ả otoànphụ th u ộch à m


V ào: ρ =(Q1,Q2,…,Qk),F
Ra: k ết luận phép táchρ b ả o toànhay khôngb ảo toànphụ thuộchàm
B ư ớ c1: V ớ im ỗ i phụ thu ộch àm X→Y∈F ta thực h iện t ừ b ư ớ c2 đ ế n bư ớ c3: B ư ớ c2:
Tìm bao đ ó n gXG+ v ớ iG = ∪ Π Qi(F)
B ư ớ c3: N ế uY ⊆ XG+ thì X→Y∈ ∪Π Qi(F)+
B ư ớ c 4: N ế u tấ t c ả phụ thu ộc X→Y∈F đ ề u thu ộc ∪Π Qi(F)+ thì ta k ế t lu ận phân r ã ρ b ả o toànphụ th u ộch à m
ngược lại ρ khôngb ả otoànphụ hà m

Ví dụ 14: thực hiện lại ví dụ 13, nghĩa l à kiểm tra phép tách c ó b ảo toàn phụ thuộc hàm không? V ào:

Q(C,S,Z),F={CS→Z,Z→C},Q1(S,Z) v à Q2(C,Z)
Đương nhiên Z→C∈G = Π Q1(F)∪Π Q2(F)⇒ Z→C ∈ (Π Q1(F)∪Π Q2(F))+
1. Z’=CS
+ +
2. g án Z’= Z’∪((Z’∩ Q 1 )+ ∩ Q1 ): Z’ = CS∪(S∩SZ)=CS
B ước1 v à 2 c ó Z’ khôngthay đổ i,ta sang lược đ ồ Q2 v à tính tiếp Z’
+ +
3. g án Z’= Z’∪((Z’∩ Q 2 )+ ∩ Q 2 ): Z’ = CS∪(C∩CZ)=CS
Z’khôngthay đ ổ iv à hết lược đ ồ quan h ệ ⇒ ngưng khôngtính tiếp Z’
4. V ậy CSG+ =CS⇒ CS→Z ∉ (Π Q1(F) ∪ Π Q2(F))+ phép phân r ã không b ảo toàn phụ thuộc
hàm .
Ví dụ 15: thực hiện lại ví dụ 12 v ớ in ộ idung kết luận phép táchρ c ó b ảo toàn phụ thuộchàm không
(khôngtính F+)
V ào: Q(A,B,C),F={A→B,B→C,C→A},Q1(A,B) v à Q2(B,C)
Hiển nhiên G = Π Q1(F) ∪ Π Q2(F) ⊇ {A→B,B→C}
Ta x ác định C→A c ó thuộc(Π Q1(F) ∪ Π Q2(F))+
1. Z’=C
+ +
2. g án Z’= Z’∪((Z’∩ Q 1 )+ ∩ Q1 ): Z’ = C∪(∅∩AB)=C
B ước1 v à 2 c ó Z’ khôngthay đổ i,ta sang lược đ ồ Q2 v à tính tiếp Z’
+ +
3. g án Z’= Z’∪((Z’∩ Q 2 )+ ∩ Q 2 ): Z’ = C∪(ABC∩BC)=BC
Z’thay đ ổ i ⇒ tính tiếp Z’b ắ t đầu t ừ lược đ ồ Q1
+ +
4. g án Z’= Z’∪((Z’∩ Q 1 )+ ∩ Q1 ): Z’ = BC∪(ABC∩AB)=ABC
do Z’=Q+ ⇒ Z’ s ẽ khôngbao g iờ thay đổi.
+
5. vậy C G=ABC ⇒ C→A∈(Π Q1(F) ∪ Π Q2(F))+ phép phân r ã b ảo toànphụ thuộchàm .

III TH IẾ TK Ế CSDL B Ằ N GC Á C HP H Â NRÃ


1 P hânr ã thànhdạng chuẩn BC (hay chuẩn3) b ả otoàn thôngtin
i C áchthôngthường
Thuậtto á np h â nr ã Q,F thànhdạng chu ẩnBC (hay chuẩn3) b ả oto à nthôngtin
B ước1:Tìm tấ tc ả khóac ủ aQ
B ước2:Tìm phụ thuộch à m X → Y ∈ F c ó X khônglà siêukh óav à Y khôngch ứ athuộctính khóa.
N ếutìm thấythì táchQ thànhQ1 v à Q2 theo quy tắ c sau:
Q1=Q[XY]; F1≡ Π Q1(F)tìm bao đ ó n gc ủ atấ tc ả tậ p con c ủ aXY đ ể suy ra Π Q1(F)⇒F1
Q2=Q[Q+ -Y] F2≡ Π Q2(F)tìm bao đóngc ủ atấ tc ả tậ p con c ủ aQ+-Y đ ể suy ra Π Q2(F)⇒F2
thực hiệnthuậttoánphân r ã (Q1,F1)
thực hiệnthuậttoánphânr ã (Q2,F2)
Ngược lại n ế ukhôngtìm thấythì c ó hai trườnghợp:
Trườnghợ p 1: mọi phụ thuộch à m trong Fi đ ều c ó v ếtrá ilà siêu khóathì Qi đạt chuẩnBC Trườnghợp 2: n ế u
c ó phụ thuộc h à mc ó v ế trá ikhônglà siêu khóav à v ế phảilà thuộctính
khóathì Qi đạt chuẩn3.
Ví dụ 16: cho Q(S,D,I,M) F={SI→D;SD→M} hã y phân rã Q thành c á c lược đ ồ con đạt chuẩn
BC bả o toànthôngtin
G iải:
B ước1: tìm tấ t c ả khóac ủ a Q
Xi TNXi (TNXi)+ S iêuk h ó a K hóa
∅ SI SDIM SI SI
D SID SDIM SID
Bước 2: phụ thuộchàm SD → M ∈ F c ó SD khônglà siêu khóa.

C h ú ý: đ ể tính được F1,F2,K1,K2 như hình trên, ta phải tính bao đóng c ủ a tấ t c ả tập con
c ủ a{SDM} v à {SDI} ⇒F1,F2 rồ i tìm tấ t c ả khóacủ a Q1 v à Q2.
+
S =S D+ =D M+ =M S+=S D+ =D I+ =I
+
SD

F1+=Π Q1(F)={SD→M,SD→SM,SD→DM,SD→SDM}≡ {SD→M}= F1


F2+=Π Q2(F)={SI→D,SI→SD,SI→DI,SI→SDI}≡ {SI→D}= F2
Q1 v à Q2 đều đạt dạng chuẩn BC vì trong Qi c h ỉ c ó phụ thuộc hàm c ó v ế trá i là khóa. F1 được tạo thành bằng cách
lấy cá c phụ thuộchàm củ a Π Q1(F)c ó v ế phảim ộ tthuộctính. Tương tự cho F2
Ví dụ 17: cho Q(CTHRSG), F={C→T;HR→C;HT→R;CS→G;HS→R} hã y phân r ã Q thành c á c
lược đ ồ con đạt chuẩnBC bả o toànthôngtin. (giảinhư ví dụ trên)
Tính ch ất: Theo th u ậtto á ntrên ,khi phânr ã Q thànhQ1(XY)v ớ iX→Y v à Q2 thì tậ p kh óaSQ c ủ aQ
lu ô nlu ônbằng v ớ itậ p kh óaSQ2 c ủ a Q2. Chứng
minh
Thật vậy, K là m ộ tkhóacủ a Q ⇒ K l à m ộ tsiêu khóacủ a Q2. G iả s ử c ó K’⊂ K v à K’ là khóacủ a
Q2 ⇒ K’→(Q+-Y) m à X→Y ⇒ K’→Q+. Điều n ày m âu thuẫn v ớ iK là khóac ủ a Q ⇒ K là khóa
c ủ a Q2. Ngược lại cũngđúng.
Dựa v ào tính chất trên, ta c ả i tiến thuật toán phân r ã nhằm giảm b ớ t khối lượng tính cá c phụ thuộchàm c ủ a tậ p F+
T huậtto á nphânr ã Q,F thànhdạng chuẩnBC (hay chuẩn3) b ả oto à nthôngtin
B ư ớ c1: Tìm tậ p tấ tc ả kh óaSK c ủ aQ
B ư ớ c2: Tìm phụ th u ộch à m X → Y ∈ F c ó X khônglà siê u kh óav à Y khôngch ứ ath u ộctính
khóa. N ế utìm th ấ ythì tá c hQ thànhQ1 v à Q2 theo quy tắ c sau:
Q1=Q[XY]; Tính F1 b ằ n g cách tính bao đ ó n g tấ t c ả tậ p con c ủ a XY
+
Q2=Q[Q -Y] SK cũ n glà tậ p kh óac ủ aQ2
thực h iệnb ư ớ c1 cho Q1
thực h iệnb ư ớ c2 cho Q2
Ngược lại nếu khôngtìm th ấ ythì c ó hai trườnghợp:
Trườnghợp 1: m ọi phụ th u ộch à m trong Fi đ ề uc ó v ếtrá ilà siê ukh óathì Qi đạt chuẩnBC
Trường hợp 2: n ế u c ó phụ th u ộc h à m c ó vế trá i không là siê u kh óa v à v ế p h ả i là th u ộctính k h ó athì Qi
đạt chuẩn3.
C h ú ý: Thuật toán n ày c h ỉ tiện trong trường hợp khối lượng tính toán trong việc tìm tấ t c ả khóa
c ủ a lược đ ồ quan h ệ Q khônglớ n .N ó icách khác tập trung gian TG c ó ít thuộctính. Ngược
lại ta phảidùngthuậttoán c ủ a phần tiếp theo.
Ví dụ 18: phân r ã lược đ ồ ở ví dụ trên thành c á c lược đ ồ con ở dạng chuẩnBC b ảo toànthôngtin.
Trong F c ó 4 phụ thuộc hàm C→T,HR→C,HT→R,CS→G làm Q không đạt dạng chuẩn 3 hay BC
v à phép phân r ã trên đ ã chọn ngẫu nhiên phụ thuộc hàm C→T đ ể phân r ã thành Q1 v à tập thuộc
tính củ a Q12 chính là tậ p thuộc tính củ a Q b ỏ thuộc tính T.T ập phụ thuộc hàm F12 s ẽ chứa c á c phụ thuộc hàm
c ủ a F b ỏ đi c á c phụ thuộc hàm c ó v ế trá i hay v ế phải chứa thuộc tính T. Như vậy tù ytheo cách chọn phụ thuộc
hàm đ ể phân r ã thành Q1 m à số lượng phụ thuộc hàm mang xuống Q12 khác nhau v à chất lượng phân r ã cũng
khácnhau. K ết q u ả củ a phép phân r ã trên chính l à Q1, Q2, Q3
c ủ a hình trên. Phép phân r ã b ảo toàn thông tin, v à c á c lược đ ồ con đạt chuẩn BC nhưng phép phân
rã khôngb ảo toànphụ thuộchàm vì G = F1 ∪ F2 ∪ F3 = {C→T; HR→C; CH→R; HS→RG}
không tương đương v ớ i F (HT→R ∉ G+ và CS→G ∉ G+). Ta h ãy xem phép phân r ã sau s ẽ
cho kết q uả tố t hơn.

Phép phân r ã cũngcho kết q u ả phép phân rã bả o toàn thông tin, c á c lược đ ồ con Q1,Q2,Q3,Q4 đạt
chuẩn BC v à phép phân r ã không b ảo toàn phụ thuộc hàm vì G = F1 ∪ F2 ∪ F3 ∪ F4
={CS→G;HR→C;CH→R;C→T;HS→C} không tương đương v ớ i F (HT→R ∉ G+).Phép phân r ã
n ày tố t hơn vì c h ỉ c ó m ộ tphụ thuộchàm HT→R khôngthuộcG+ trong khi phép phân r ã trên c ó tớ i 2
phụ thuộchàm HT→R v à CS→G không thuộcG+.S ở dĩ phép phân r ã th ứ 2 tốt hơn vì ở bướcchọn
phụ thuộchàm đ ể phân r ã thànhQ1 phép phân rã đ ã chọn phụ thuộchàm sao cho khi chiếu F xuống
Q12 s ố phụ thuộchàm mang xuốngcàngnhiều càngtố t.
Ví dụ 19: cho Q(A,B,C,D,E,G), F={AE→C;CG→A;BD→G;GA→E} h ãy phân rã Q thành
các lược đ ồ con đạt chuẩnBC b ảo toànthôngtin.

N ếu Q được phân r ã thành:


(Q1(BDG), Q2(A,B,C,D,E)) lược đ ồ cơ s ở d ữ liệu đạt chuẩn3
(Q1(BDG), Q2(A,C,E), Q3(A,B,D,E)) lược đ ồ cơ s ở d ữ liệu đạt chuẩnBC
ii B ổ đ ề:
N ếu Q khôngở dạng chuẩnBC thì c ó thuộctính A,B thuộcQ+ sao cho (Q+-AB)→A
Chứngminh:
Q không ở dạng chuẩn BC ⇒ c ó X→A sao cho X không l à siêu khóa ⇒ c ó thuộc tính B ∉ XA (vì nếu không
c ó B ∉ XA thì X phảil à siêu khóa)⇒ (Q+-AB) ⊇ X ⇒ (Q+-AB)→A
Nhận x é t:
+ M ộtlược đ ồ Q ở dạng chuẩnBC vẫn c ó thể c ó AB sao cho (Q+-AB)→A
+ M ộtlược đ ồ Q khôngc ó AB sao cho (Q+-AB)→A thì Q ở dạng chuẩnBC
iii T huậttoá n
Thuậttoánphân r ã sau khôngcần tìm tấ t c ả khóac ủ a lược đ ồ quan h ệ Q
T huậtT oá nph ânr ã Q, F thànhdạng chuẩnBC b ả otoànthôngtin
Bước 1: Z’ = Q+
B ư ớ c2: ph ân r ã Z’ theo thu ậtto á n chi tiế t đ ể được 2 lược đ ồ Z’-A v à XA trong đ ó XA ở dạng chuẩn
BC v à X → A
N ế uthu ậtto á nchi tiế tcho k ế tq u ảthì qua b ư ớ c3
Ngược lại k ế tth ú cth u ậtto á n
B ư ớ c3: nhậnXA là m ộ tlược đ ồ con c ủ ac á c lược đ ồ k ế tq u ả Q1,...,Qk
B ư ớ c4: thực h iệnphânr ã Z’-A,F

T huậtto á nchi tiế t


B ư ớ c1: n ế u Z’ khôngch ứ aAB sao cho (Z’-AB)→A. thì b á o
khôngph ânr ã được.
Ngược lại qua b ư ớ c2
B ư ớ c2: đ ặ tY’ = Z’
B ư ớ c3: n ế uY’ ch ứ aAB sao cho (Y’-AB)→A. thì g á nY’ = Y’–B thực h iệnlại bư ớ c2
B ư ớ c4: b ư ớ c3 cho k ế tq u ảY’ = XA v ớ iXA ở dạng chuẩnBC v à X → A. T rảv ề XA
Nhận x é t
Ở m ỗ i bướ c 2 củ a thuật toán phân r ã Q,F ta thu được 2 lược đ ồ Qi+=Z’-A,Q1+=XA v ớ i
Qi+∩Q1+ = (Z’-A)∩XA = X và X→Q1+ v à Q1 là lược đ ồ ở dạng chuẩn BC. Thuậttoán lại tiếp tục
phân r ã Qi theo đúng cách đ ã làm ⇒ thuật toán phân r ã b ảo toàn thông tin v à cá c lược đ ồ con Qi đạt
dạng chuẩnBC.
T huậtto á nchi tiế ttìm Ql đạt chuẩn BC sao cho Ql+ chứ anhiều thuộc tính nhất. Đ ể tìm được
Ql như vậy thu ậtto á n chi tiế t tìm hai thuộc tính AB∈Q+ sao cho (Q+-AB)→A. N ếu tìm thấy chứngt ỏ
Q chưa đạt chuẩnBC v à thuậttoán giảm B trong Q v ớ ihy vọng thu được lược đ ồ con
Ql đạt chuẩn BC v à thỏa phụ thuộc hàm (Q+-AB)→A. Thuật toán chi tiết tiếp tục tìm v à
giảm cho tớ i khi thu được lược đ ồ con không c ó hai thuộc tính AB sao cho (Q+-AB)→A ⇒
Ql là lược đ ồ con đạt chuẩnBC cần tìm.
Ví dụ 19: Cho quan h ệ Q(B,O,S,Q,I,D) v à tập phụ thuộchàm F
F = {S → D,
I → B
IS → Q
B → O}
H ãy phân r ã Q thànhcá c lược đ ồ con đạt dạng chuẩnBC v à bả o toànthôngtin. G iải
***Đặt Z’= Q+= BOSQID
Thực hiện thuật toán chi tiết
Y’= BOSQID
Chọn 2 thuộctính . Tìm bao đóngcủ a tập hợp thuộc tính c ò n lại. N ếu bao đóngchứa1 trong
2 thuộctính chọn chẳnghạn A, nghĩa là ta đ ã tìm được 2 thuộctính AB sao cho (Y’-AB)→A
Chọn BO:(SQID)+ ⊃ B
G iảm O trong Y’ ta được Y’= BSQID
Chọn BS:(QID)+ ⊃ B
G iảm S trong Y’ ta được Y’= BQID
Chọn BQ:(ID)+ ⊃ B
G iảm Q trong Y’ ta được Y’= BID
Chọn BD: I+ ⊃ B
G iảm D trong Y’ ta được Y’= BI ⇒ Q1=(BI) v à F1={I→B}
Đ ể tính F1 ta phảitính bao đóngc ủ a tấ t c ả tập con c ủ a {BI}⇒F1
***GiảmB trong Z’ ta được Z’= OSQID
Đ ặt Y’=OSQID
Chọn OD: (SQI)+ ⊃ D;
G iảm O trong Y’ ta được Y’= SQID
chọn QD: (SI)+ ⊃ D
giảm Q trong Y’ ta được Y’= SID
chọn ID: S+ ⊃ D;
giảm I trong Y’ ta được Y’= SD ⇒ Q2=(SD) v à F2={S→D}
Đ ể tính F2 ta phảitính bao đóngc ủ a tấ t c ả tập con c ủ a {SD} ⇒ F2
*** G iảm D trong Z’ ta được Z’= OSQI
Đ ặt Y’=OSQI
chọn OQ: (SI)+ ⊃ Q
giảm O trong Y’ ta được Y’= SQI ⇒ Q3=(SQI) v à F3={SI→Q}
Ở bướ ctrên khôngchọn AB đ ể bao đóngtập hợp thuộctính c ò nlại chứ aA hay B
Đ ể tính F3 ta phảitính bao đóngc ủ a tấ t c ả tập con c ủ a {SQI} ⇒ F3
*** G iảm Q trong Z’ ta được Z’= OSI
Đ ặt Y’=OSI
Chọn OS: I+=IBO ⊃ O
giảm S trong Y’ ta được Y’= OI ⇒ Q4=(OI) v à F4={I→O}

*** G iảm O trong Z’ ta được Z’= SI ⇒ Q5=(SI)v à F5={PTHHN}


Ta c ó thể hiểu Q3(SQI)l à tổ hợp củ a 2 lược đ ồ con Q5(SI) v à Q3(SQI)
V ậ yk ế tq u ả p h â nr ã là:
1:Q1(BI) F1={I→B}
2:Q2(SD) F2={S→D}
3:Q3(SQI) F3={SI→Q}
4:Q4(OI) F4={I→O}
iv C h úý
+ N ên tránhphân r ã nếu lược đ ồ đ ã ở dạng chuẩnmong m uốn.
+ N ên xem x é t tổ hợp các lược đ ồ quan h ệ con thành lược đ ồ lớ n hơn nếu lược đ ồ lớ n hơn vẫn đạt
dạng chuẩnmong m uốn.
+ M ột kết q uả phân r ã b ảo toàn phụ thuộc hàm s ẽ c ó g iá trị hơn kết qu ả phân r ã khôngb ảo toàn phụ thuộc
hàm .G iữahai kết quả phân r ã đều khôngbảo toàn phụ thuộchàm
thì kết q u ả phân r ã thỏanhiều phụ thuộchàm trong F s ẽ c ó g iá trị hơn .
+ Không c ó thuật toán phân rã lược đ ồ Q thành c á c lược đ ồ con ở dạng chuẩn BC vừ a b ảotoàn thông
tin v ừ ab ảo toànphụ thuộchàm .
+ V ẫn c ó lược đ ồ Q được phân r ã thành cá c lược đ ồ con ở dạng chuẩn BC v ừ a b ảo toànthông tin vưa
b ảo toànphụ thuộchàm .

Ví dụ 20: cho lược đ ồ Q(CSZ) c ó F={CS→Z,Z→C}. Q khôngthể phân r ã thành c á c lược đ ồ con ở dạng chuẩn
BC v ừ ab ảo toànthôngtin v ừ a bả o toànphụ thuộchàm .Thậtvậy:
TN={S} TG={CZ}
T ất c ả khóac ủ a Q là :
+
Xi TN∪Xi (TN∪Xi) siêu k h óa k h óa
∅ S S
Z SZ SZC SZ SZ
C SC SZC SC SC
ZC SZC SZC SZC
V ậy Q đạt dạng chuẩn 3 nhưng không ở dạng chuẩn BC vì c ó Z→C c ó v ế trái không là siêu khóa.
Nhưng nếu ta phân r ã Q thành c á c lược đ ồ con c ó ít hơn 3 thuộc tính thì phụ thuộcCS→Z
khôngsuy ra được t ừ c á c phụ thuộchình chiếu.
2 P hânr ã thànhdạng chuẩn 3 vừa b ả otoànthôngtin vừa b ả otoàn phụ thuộch àm
T huậtT oá nph ânr ã Q, F thànhdạng chuẩn3, b ả otoànthông tin, b ả otoànphụ thu ộch àm
D ữ liệu v à o: lược đ ồ quan h ệ Q v à tập phụ thuộchàm F.
D ữ liệu ra: m ộ t phân r ã sao cho m ỗ i lược đ ồ quan h ệ con đều đạt chuẩn 3 v ừ a b ảo toànthôngtin
v ừ ab ảo toànphụ thuộchàm .

Tìm p h ủtố ith iểuFtt c ủ aF

N ế uc ó m ộ tphụ th u ộch àm n à oc ủ aFtt m à liê n quan đ ế ntấ t c ả c á c thu ộctính c ủ aQ thì k ế tq u ảphânr ã chính là
Q ( Q khôngth ểphânr ã )

N ế u c ó nhữngth u ộctính c ủ a Q không nằm trong m ộ tphụ thu ộcn à o c ủ a Ftt - d ù ở v ế p h ả ihay v ế trá ic ủ aF
thì ch úngtạo th à n hm ộ tlược đ ồ cầ n tìm.

C ứ m ỗ iphụ thu ộch àm X → A ∈ Ftt thì XA là m ộ tlược đ ồ c ầ n tìm

N ế uc ó m ộ tlược đ ồ con ch ứ akh óaK c ủ aQ thì k ế tth ú cthu ậtto á n


Ngược lại tạo m ộ tlược đ ồ con K

Ví dụ 21: cho lược đ ồ Q(CTHRSG),F={C→T,HR→C,TH→R,CS→G,HS→R}.H ãy phân r ã Q


thànhc á c lược đ ồ con đạt dạng chuẩn3 v ừ abảo toànthôngtin v ừ abả o toànphụ thuộchàm .G ỉai:
+ F=Ftt={C→T,HR→C,TH→R,CS→G,HS→R} là p h ủtố i thiểu.
+ Á pdụng thuậttoántrên Q được phân rã thànhcá c lược đ ồ con
Q1(CT),Q2(HRC),Q3(THR),Q4(CSG),Q5(HSR)

siêu k h óa k h óa
∅ HS CTHRSG HS HS
C HSC CTHRSG HSC
T HST CTHRSG HST
CT HSCT CTHRSG HSCT
R HSR CTHRSG HSR
CR HSCR CTHRSG HSCR
TR HSTR CTHRSG HSTR
CTR HSCTR CTHRSG HSCTR
+ Q5 chứakhóac ủ a Q nên Q1,Q2,Q3,Q4,Q5 l à kết q u ảc ủ a phân rã .
Định lý: Thuậttoántrên tạo ra m ộtphân r ã ở dạng chuẩn 3 v ừ ab ảo toànthôngtin v ừ a bả o toànphụ thuộchàm
Chứngminh:
1. N ếu Ftt c ó phụ thuộchàm fi liên quan đến tấ t c ả thuộctính thì Q đạt chuẩn3. Thậtvậy:
fi∈Ftt ⇒ fi l à phụ thuộc hàm c ó v ế phải1 thuộc tính ⇒ fi c ó dạng K→A ⇒ K là siêu khóa.N ếu khóa c ủ a
Q l à K’⊂ K thì ta c ó K’→A ⇒ K→A l à phụ thuộc hàm c ó v ế trá i dư thừa điều
n ày m âu thuẫn v ớ i fi∈Ftt. V ậy K là khóa c ủ a Q ⇒ nếu Q c ó thuộc tính không khóa thì A là thuộc tính
khôngkhóaduy nhấtcủ a Q v à mọi phụ thuộchàm c ó v ế phảilà A phảic ó v ế trá ilà K
⇒ lược đ ồ quan h ệ Q khôngc ó phụ thuộchàm c ó v ế trá ikhôngl à siêu khóav à v ế phảikhônglà
thuộctính khóa⇒ Q đạt chuẩn3.
2. N ếu lược đ ồ Q’(W) gồm c á c thuộctính khôngxuấthiện trong Ftt thì Q đạt chuẩn3. Thậtvậy:
V l à tập con b ất k ỳ c ủ a W ta c ó V+=V ⇒ F’ củ a Q’ c hỉ gồm c á c phụ thuộc hàm hiển nhiên ⇒
trong F’ không c ó phụ thuộc hàm c ó v ế trá i không là siêu khóa v à v ế phải là thuộc tính không khóa⇒ Q’ đạt
chuẩn3.
3. Ta chứngminh m ỗilược đ ồ con ở dạng chuẩn3. Thậtvậy:
Theo thuật toán thì m ỗ i lược đ ồ con Qi c ó dạng YB v ớ i Y→B ⇒ Y là siêu khóa. G iả s ử trong
Qi c ó phụ thuộc hàm X→A c ó v ế trá i không là siêu khóa v à v ế phải không l à thuộc tính khóa.
Ta phân làm hai trườnghợp:
Trườnghợp 1: A=B ⇒ X→B ⇒ X ⊂ Y ⇒ Y→B là phụ thuộc c ó v ế trái dư thừa,điều n àytrá i v ớ iY→B
là phụ thuộchàm trong p h ủ tố i thiểu.
Trường hợp 2: A≠ B ⇒ A∈Y (1). Gọi K l à khóa c ủ a Qi ⇒ K ⊆ Y (2). A là thuộc tính
không khóa nên A ∉ K (3).(1)(2)(3)⇒ K ⊂ Y (4).K là khóa nên K→B ⇒ Y→B
là phụ thuộc hàm c ó v ế trá i dư thừa. Điều n ày trá i v ớ i điều phụ thuộc hàm Y→B là phụ thuộchàm củ a p h ủ tố i thiểu
Ftt
4. Ta chứngminh phép phân r ã b ảo toànphụ thuộchàm. Thậtvậy:
Hiển nhiên Ftt ⊆ G = ∪Π Qi(Ftt)⇒ Ftt+ ⊆ G+ (1)
Hơn nữ a Ftt+ ⊇ G = ∪Π Qi(Ftt)⇒ Ftt++ ⊇ G+ ⇒ Ftt+ ⊇ G+
(2) (1)v à (2) ⇒ Ftt+ = G+
5. Ta chứngminh phép phân r ã b ảo toànthôngtin. Thậtvậy:
L ập bảng kiểm tra b ảo toàn thông tin. Ta lần lượt đồng nhất cá c g iá trị c ủ a bảng trên theo c á c
+
phụ thuộc hàm được phát hiện ở m ỗ i bước củ a thuật toán tìm bao đ ó n gc ủ a tập thuộc tính Qi
v ớ i Qi+ chứa khóa K củ a lược đ ồ Q. Phụ thuộc hàm đầu tiên được phát hiện là Y→Aj∈Ftt sao
cho Qi+⊇Y v à Aj∉Qi+.Ở dòng c ủ a lược đ ồ Ql(YAj) c ó g iá trị aj ở c ộ t Aj nên khi làm bằng g iá
trị k ết q u ả l à ở c ộ t Aj của dòng c ó lược Qi c ó thêm g iá trị aj. Tiếp tục cho c á c phụ thuộc hàm pháthiện tiếp theo
ta sẽ c ó thêm c á c g iá trị a ở c á c cột khác củ a dòngQi. Do Qi chứakhóanên
c á c g iá trị a m ớ ithêm v ào củ a dòngQi s ẽ xuấthiện ở tấ t cả c á c thuộctính củ a lược đ ồ Q. Suy ra hàng củ a lược đ ồ
Qi s ẽ chứa toàn a l à điều phải chứngminh. Đ ể làm sáng t ỏ ý tưởng c ủ a phầnchứngminh n ày ta x ét trườnghợp
cụ th ể c ủ a ví dụ 21 :
B ước1: ta lập bảngkiểm tra b ảo toànthôngtin:
C T H R S G
Q1(CT) a1 a2
Q2(HRC) a1 a3 a4
Q3(THR) a2 a3 a4
Q4(CSG) a1 a5 a6
Q5(HSR) a3 a4 a5
B ước2:Ta chứngminh dòng Q5 củ a bảng trên s ẽ chứa toàn g iá trị a. Thật vậy: ta lần lượt đồngnhất cá c giá trị
c ủ a bảng trên theo c á c phụ thuộc hàm được phát hiện theo thuật toán tìm bao đóngc ủ a X={HSR} ⊇ K;
F={C→T,HR→C,TH→R,CS→G,HS→R}
X0=HSR
X1=HSRC do HR→C. Đồngnhất cá c g iá trị theo phụ thuộchàm này.Trên dòng
Q2 ở c ộ tC chứag iá trị a nên trên dòngQ5 s ẽ c ó thêm g iá trị a ở c ộ tC
X2=HSRCT do C→T. Đồngnhấtcá c g iá trị theo phụ thuộchàm này.
X3=HSRCTG do CS→G đồngnhấtc á c g iá trị theo phụ thuộchàm này.

C T H R S G
Q1(CT) a1 a2
Q2(HRC) a1 a2 a3 a4
Q3(THR) a1 a2 a3 a4
Q4(CSG) a1 a2 a5 a6
Q5(HSR) a1 a2 a3 a4 a5 a6
Do X+=Q+ nên dòngQ5 chứatoàng iá trị a
Ví dụ 22: Cho Q(ABCDEGH), F={AB→D; EH→G; G→C; D→C} h ãy phân r ã Q thànhcá c lược
đ ồ con ở dạng chuẩn3 v ừ a b ảo to à nthôngtin v ừ ab ảo toànphụ thuộc.G iải:
Tìm p h ủtố i thiểu Ftt củ a F
Ftt=F={AB→D; EH→G; G→C; D→C}
Á pdụng thuậttoán,Q được phân r ã thànhlược đ ồ CSDL sau:
Q1{ABD), Q2(EHG), Q3(GC), Q4(DC)
Tìm khóac ủ a Q
TN={ABEH} TG={GD}
Xi TN∪ Xi (TN∪ Xi)+ Siêu khóa K hóa
∅ ABEH ABCDEGH ABEH ABEH
G ABEHG ABCDEGH ABEHG
D ABEHD ABCDEGH ABEHD
GD ABEHGD ABCDEGH ABEHGD
Q1,Q2,Q3,Q4 không chứa khóa ⇒ đ ể b ảo toàn thông tin ta cần c ó Q5(A,B,E,H).V ậy kết q u ả c ủ a phân r ã l à
Q1,Q2,Q3,Q4,Q5
IV B À IT Ậ P
1/ Cho biết dạng chuẩncủ a cá c lược đ ồ quan h ệ sau:
a) Q(ABCDEG); F={A→BC, C→DE, E→G}
b) Q(ABCDEGH); F={C→AB, D→E, B→G}
c) Q(ABCDEGH) F={A  BC, D  E, H  G}
d) Q(ABCDEG); F={ABC, CB, ABDE, GA}
e) Q(ABCDEGHI); F={AC→B,BI→ACD,ABC→D,H→I,ACE→BCG,CG→AE}

2/ Kiểm tra sự b ảo toànthôngtin ?


Q(ABCDE) R1(AD);R2(AB);R3(BE); R4(CDE);R5(AE)
F={A → C; B → C;C → D;DE → C;CE → A}

3/ Cho lược đ ồ quan h ệ Q(A,B,C,D) v à tập phụ thuộc hàm F = {A→B;B→C;A→D;D→C}


V à m ộtlược đ ồ CSDL như sau: C ={Q1(AB);Q2(AC);Q3(BD)}
a) C có b ảo toànthôngtin đ ố iv ớ iF
b) C c ó b ảo toàn phụ thuộchàm ?

4/ Kiểm tra dạng chuẩnQ(C,S,Z) F={CS→Z;Z→C}

5/ Phân rã Q(G,H,A,B,C,D) F={GH→AD;AG→B;CD→GH; C→A; BH→C}

6/ Cho lược đ ồ CSDL


Kehoach(NGAY,GIO,PHONG,MONHOC,GIAOVIEN)
F={NGAY,GIO,PHONG→MONHOC
MONHOC,NGAY→GIAOVIEN
NGAY,GIO,PHONG→GIAOVIEN
MONHOC→GIAOVIEN}
a) X ácđịnh dạng chuẩncao nhấtc ủ a Kehoach
b) N ếu Kehoach chưa đạt dạng chuẩn 3, h ãy phân r ã Kehoach thànhlược đ ồ CSDL dạng chuẩn
3 v ừ abả o toànphụ thuộchàm vừ a b ảo toànthôngtin.
c) N ếu Kehoach chưa đạt dạng chuẩnBC, h ãy phân r ã KeHoach thànhlược đ ồ CSDL dạng BC

7/ Cho lược đ ồ quan h ệ Q(A,B,C,D) v à tập phụ thuộchàm F


F = {A→B;B→C; D→B} C = {Q1(A,C,D); Q2(B,D)}
a) X ácđịnh c á c Fi (nhữngphụ thuộchàm F được bao trong Qi)
b) Lược đ ồ CSDL C c ó đạt dạng chuẩn BC ? N ếu không c ó thể phân r ã tiếp cá c Qi c ủ a C đ ể biến C thànhdạng
chuẩnBC ?

8/ G iả s ử ta c ó lược đ ồ quan h ệ Q(C,D,E,G,H,K) v à tập phụ thuộchàm F như sau;


F = {CK→ H; C →D; E→C; E →G; CK →E}
a) T ừ tập F, h ãy chứngminh EK → DH
b) Tìm tấ t c ả cá c khóacủ a Q.
c) X ácđịnh dạng chuẩncủ a Q.
d) H ãy tìm cách phân r ã Q thành m ộ t lược đ ồ CSDL đạt dạng chuẩn BC (hoặc dạng chuẩn 3). tìm tậ p phụ
thuộchàm v à khóacho m ỗilược đ ồ quan h ệ con.

9/ Cho lược đ ồ quan h ệ Q(S,I,D,M)


F = {f1:SI → DM; f2:SD→ M; f3:D→ M}
a) Tính bao đóngD+, SD+, SI+
b) Tìm tấ t c ả cá c khóacủ a Q
c) Tìm p h ủ tố i thiểu củ a F
d) X ácđịnh dạng chuẩncao nhấtc ủ a Q
e) N ếu Q chưa đạt dạng chuẩn 3, h ãy phân rã Q thành lược đ ồ CSDL dạng chuẩn 3 v ừ a b ảotoàn phụ thuộc
hàm v ừ a bả o toànthôngtin.
f) N ếu Q chưa đạt dạng chuẩnBCNF, h ãy phân r ã Q thànhlược đ ồ CSDL dạng BCNF
g) Kiểm tra phép táchQ thànhcá c lược đ ồ con (SID,SIM) c ó b ảo toànthôngtin ?
h) Kiểm tra phép táchQ thànhcá c lược đ ồ con (SID,SIM) c ó b ảo toànphụ thuộchàm ?

10/ Cho lược đ ồ quan h ệ


R(W,A,Z,Y,Q,P)
R1(A,Z);
R2(W,Y,Q,P)
R3(Y,Q,P,A)
F = {W →AYQP, A →Z, YQP →A}
H ãy kiểm tra tính kết n ố ikhôngm ấtthôngtin.

11/ Cho lược đ ồ quan h ệ Q(Môn,GiảngViên,Giờ giảng,Phòng,SinhViên,Hạng) v ớ i


F ={M→GV; G,P→M; G,GV→P; M,SV→H; G,SV→P}
C = {Q1(M,G,P); Q2(M,GV);Q3( M,SV,H)}
Kiểm tra xem lược đ ồ cơ s ở d ữ liệu sau đây c ó b ảo toànthôngtin đ ố i v ớ iF ?

12/ Kiểm Tra Dang Chuẩn


a) Q(A,B,C,D) F={CA→D; A→B}
b) Q(S,D,I,M) F={SI→D;SD→M}
c) Q(N,G,P,M,GV) F={N,G,P→M;M→GV}
d) Q(S,N,D,T,X) F={S→N; S→D; S→T; S→X}

13/ Phân r ã lược đ ồ thànhdạng BCK


a) Q(S,D,I,M) F={S,I→D;S,D→M}
b) Q(A,B,C,D) F={A→B;B→C;D→B}
c) Q(C,S,Z) F={C,S→Z; Z→C}

14/ Phân r ã lược đ ồ thànhdạng 3NF v ừ ab ảo toànphụ thuộchàm v ừ ab ảo toànthôngtin


a) Q(A,B,C), F={A→B;A→C;B→A;C→A;B→C}
b) Q(MSCD,MSSV,CD,HG)
F={MSCD→CD;
CD→MSCD;
CD,MSSV→HG;
MSCD,HG→MSSV;
CD,HG→MSSV;
MSCD,MSSV→HG}
c) Q(A,B,C,D) F={ AB→C; C→B}

----oOo----
Đ Ề THI M Ẫ UM Ô NCƠ S Ở D ỮL IỆ U
(thờ igian 60 phút)
Đ ề1
B À I1: (6 điểm)
Đ ể quảnlý lịch dạy củ a cá c giáoviên v à lịch học củ a cá c lớp, m ộ ttrường tổ chứ cnhư sau:
M ỗigiáo viên c ó m ộ t m ã s ố giáo viên (MAGV) duy nhất, m ỗ i MAGV x ác định c á c thôngtin như: họ
v à tên giáo viên (HOTEN), s ố điện thoại (DTGV). M ỗi giáo viên c ó thể dạy nhiều m ôn cho nhiều khoa nhưng c h ỉ
thuộcsự quảnl ý hànhchánhc ủ a m ộ tkhoa n ào đ ó .
M ỗi m ôn học c ó m ộ t m ã số m ôn học (MAMH) duy nhất, m ỗ i m ôn học x ác định tên m ôn học
(TENMH). Ư ùngv ớ im ỗ ilớ p thì m ỗim ôn học c h ỉ được phân cho m ộ tgiáoviên.
M ỗi phòng học c ó m ộ t số phòng học (PHONG) duy nhất, m ỗ i phòng c ó m ột chứ c năng
(CHUCNANG); chẳng hạn như phòng lý thuyết, phòng thực hành m áy tính, phòng nghe nhìn, xưởngthực tậ p
cơ khí,…
M ỗi khoa c ó m ộ t m ã khoa (MAKHOA) duy nhất, m ỗ i khoa x á c định cá c thông tin như: tên khoa
(TENKHOA), điện thoại khoa(DTKHOA).
M ỗi lớ p c ó m ộ t m ã lớ p (MALOP) duy nhất, m ỗi lớ p c ó m ột tên lớ p (TENLOP), sĩ số lớ p (SISO). M ỗilớ p c ó th ể
học nhiều m ôn của nhiều khoa nhưng c h ỉ thuộcsự quảnl ý hànhchính củ a m ột khoa n ào đ ó .
H àngtuần, m ỗi giáo viên phảilập lịch b áo giảngcho biết giáo viên đ ó s ẽ dạy nhữnglớ p nào,ngày
n ào (NGAYDAY), m ôn gì, tại phòng nào, t ừ tiết (TUTIET) n ào đến tiết (DENTIET) nào, tựa đ ề
b à i dạy (BAIDAY), những ghi c h ú (GHICHU) v ề c á c tiết dạy này, đây l à g iờ dạy lý thuyết
(LYTHUYET) hay thực hành - giả s ử nếu LYTHUYET=1 thì đ ó là g iờ dạy thực hành v à nếu
LYTHUYET=2 thì đ ó l à g iờ l ý thuyết, m ộ t ngày c ó 16 tiết, sáng t ừ tiết 1 đến tiết 6, chiều t ừ tiết 7
đến tiết 12, tố i từ tiết 13 đến 16.Giảs ử ta c ó lược đ ồ cơ s ở d ữ liệu đ ể quảnlý b à itoántrên như sau:
Giaovien(MAGV,HOTEN,DTGV,MAKHOA)
Monhoc(MAMH,TENMH)
Phonghoc(PHONG,CHUCNANG)
Khoa(MAKHOA,TENKHOA,DTKHOA)
Lop(MALOP,TENLOP,SISO,MAKHOA)
Lichday(MAGV,MAMH,PHONG,MALOP,NGAYDAY,TUTIET,DENTIET,BAIDAY,LYTHUYET,GHICHU)

1.Hãyx ác định khóacho m ỗ ilược đ ồ quan h ệ trên.(2,0 đ)


2.Phátbiểu c á c ràngbuộctoànvẹn m iền g iá trị, ràng buộctoànvẹn liên thuộctính (1.0 đ)
3.Dựa v ào lược đ ồ CSDL trên, h ãy thực hiện c á c câu h ỏ isau bằng SQL (3,0 đ)
a.Xem lịch b áo giảng tuần t ừ ngày 16/09/2002 đến ngày 23/09/2002 củ a giáo viên c ó MAGV (m ã giáo
viên) l à TH3A040. Yêu cầu: MAGV,HOTEN,TENLOP,TENMH,PHONG, NGAYDAY, TUTIET,
DENTIET, BAIDAY, GHICHU)
b.Xem lịch b á o giảng ngày 23/09/2002 củ a cá c giáo viên c ó m ã khoa là CNTT. Yêu cầu:
MAGV,HOTEN,TENLOP,TENMH,PHONG, NGAYDAY, TUTIET, DENTIET,BAIDAY,
GHICHU
c.Cho biết s ố lượng giáo viên (SOLUONGGV) củ a m ỗ i khoa, kết q u ả cần sắp xếp tăng dần theo c ộ t tên
khoa. yêu cầu:TENKHOA ,SOLUONGGV ( SOLUONGGV l à thuộctính tự đặt)
B À I2: (4 điểm )
Cho lược đ ồ quan h ệ Q(A,B,C,D,E,G,H,K) v à tập phụ thuộchàm F như sau;
F = {C → AD; E→ BH; B→ K; CE→ G}
1. Kiểm tra xem c á c phụ thuộchàm E→ K; E→G c ó thuộctập F+ ? (1,0đ)
2. Tìm tấ t c ả c á c khóacủ a Q. (1,0đ)
3. X ácđịnh dạng chuẩnc ủ a Q. (1,0đ)
4. N ếu Q chưa đạt chuẩnBC. H ãy phân r ã Q thànhlược đ ồ CSDL đạt chuẩnBC (1,0đ)
ĐÁ PÁ N
BÀI 1:C âu 1:
Giaovien(MAGV,HOTEN,DTGV,MAKHOA)
Monhoc(MAMH,TENMH)
Phonghoc(PHONG,CHUCNANG)
Khoa(MAKHOA,TENKHOA,DTKHOA)
Lop(MALOP,TENLOP,SISO,MAKHOA)
Lichday(MAGV,MAMH,PHONG,MALOP,NGAYDAY,TUTIET,DENTIET,BAIDAY,LYTHUYET,GHICHU)
C âu 2:
∀ t ∈ rGiaovien
t.HOTEN ≠ NULL RBTV m iền g iá trị
cuối ∀
∀ t ∈ rMonhoc
t.TENMH ≠ NULL RBTV m iền g iá trị
cuối ∀
∀ t ∈ rKhoa
t.TENKHOA ≠ NULL RBTV m iền g iá trị
cuối ∀
∀ t ∈ rLOP
t.TENLOP ≠ NULL v à t.SISO > 0 RBTV m iền g iá trị
cuối ∀
∀ t ∈ rLichday
t.TUTIET < t.DENTIET v à RBTV liên thuộc tính
t.NGAYDAY ≠ NULL v à RBTV m iền g iá trị
t.BAIDAY ≠ NULL v à RBTV m iền g iá trị
(t.LYTHUYET =1 Or t.LYTHUYET=2) v à RBTV m iền g iá trị
(t.TUTIET >=1 v à t.TUTIET<=16) v à RBTV m iền g iá trị
(t.DENTIET >=1 v à t.DENTIET<=16) RBTV m iền g iá trị
cuối ∀
C âu 3:
a. SELECT giaovien.magv,hoten,tenlop,tenmh,phong,ngayday,tutiet ,đentiet,baiday,ghichu
FROM ((lichday INNER JOIN giaovien ON lichday.magv = giaovien.magv )
INNER JOIN lop ON Lichday.malop = lop.malop)
INNER JOIN monhoc ON lichday.mamh = monhoc.mamh
WHERE ngayday >=#16/09/2002# AND ngayday<=#23/09/2002# AND magv= “TH3A040”
b. SELECT giaovien.magv,hoten,tenlop,tenmh,phong,ngayday,tutiet ,đentiet,baiday,ghichu
FROM ((lichday INNER JOIN giaovien ON lichday.magv = giaovien.magv )
INNER JOIN lop ON Lichday.malop = lop.malop)
INNER JOIN monhoc on lichday.mamh = monhoc.mamh
WHERE ngayday = #23/09/2002# AND makh= “CNTT”
c. SELECT tenkhoa, COUNT(giaovien.makhoa) AS soluonggv
FROM giaovien INNER JOIN khoa ON giaovien.makhoa=khoa.makhoa
GROUP BY giaovien.makhoa,tenkhoa
B À I2.
1. E+ = E,B,H,K ⊇ K nên E → K ∈ F+
E+ = E,B,H,K ⊇ G nên E → G ∉ F+
2. TN={CE}; TG={B}
X TN  Xi (TN  Xi )+ Siêu khóa K hóa

i CE Q+ CE CE
+
B CEB Q CEB
vậy Q c ó khóaduy nhấtlà K={C,E}
3. C ⊂ K v à C+=CAD ⊇ thuộctính khôngkhóaA ⇒ Q khôngđạt chuẩn2 ⇒ Q đạt chuẩn1
F={C->AD; E->BH; B->K; CE->G}
Q(A,B,C,D,E,G,H,K)
K = CE

Tính F1, K1

F1={C->AD} F12={E->BH;B- >K;CE->G;...}


Q1(C,A,D) Q12(B,C,E,G,H,K)
K1 = C K12 = CE
Tính F22,K22

Tính F2,K2
F2={E->BH} F22={E->K;CE->G}
Q2(E,B,H) Q22(C,E,G,K)
K2=E K22 = CE

Tính F4,K4
Tính F3,K3
F3={E->K} F4={CE->G}
Q3(E,K) Q4(C,E,G)
K3 = E K4 = CE

4. Q(A,B,C,D,E,G,H,K); F={C→AD; E→BH; B→K; CE→G}


V ậy lược đ ồ quan h ệ Q được táchthànhlược đ ồ cơ s ở d ữ liệu đạt chuẩnBC sau:
Q1(C,A,D) F1={C→AD} đạt chuẩn BC
Q2(E,B,H) F2={E→BH} đạt chuẩn BC
Q3(E,K) F3={E→K} đạt chuẩn BC
Q4(C,E,G) F4={CE→G} đạt chuẩnBC
----oOo----
Đ ề2
Cho m ộ t lược đ ồ cơ s ở d ữ liệu C dùng đ ể quản lý hoạt động sử a chữa, b ảo trì xe c ủ a m ộ t gara xe hơi. Lược đ ồ cơ s ở
d ữ liệu C gồm cá c lược đ ồ quan h ệ như sau:

Q1: Tho(MATHO,TENTHO,NHOM,NHOM_TRUONG)
T ân từ: M ỗi ngườithợ đều c ó m ã s ố là MATHO đ ể nhận diện. M ỗi thợ c h ỉ có m ộ t tên (TENTHO)
v à c h ỉ thuộc m ộ t nhóm (NHOM). N hóm trưởng (NHOM_TRUONG)củ a m ỗ i nhóm là m ộttrong s ố những
ngườithợ c ủ a nhómđ ó .
MGT(MATHO)=MGT(NHOM_TRUONG)

Q2: Cong_viec(MACV,NOIDUNGCV)
T ân từ: Dịch vụ sử a chữa xe được chia n h ỏ thành nhiều công việc đ ể d ễ dàng tính toán chi phí v ớ ikhách hàng. M ỗi
công việc đều c ó m ã riêng (MACV) v à n ộ i dung củ a công việc được m ô
tả qua NOIDUNGCV.

Q3: Hop_dong(SOHD,NGAYHD,MAKH,TENKH,DCHI,SOXE,TRIGIAHD,
NG_GAIO_DK,NG_NGTHU)
T ân từ: M ỗihợp đồng sử a xe k ý kết v ớ ikháchhàng đều c ó m ã số (SOHD) đ ể phân biệt. NGAYHD
là ngày k ý hợp đồng. M ỗi khách hàng c ó m ộ t m ã s ố (MAKH), m ộ t tên (TENKH) v à m ột
địa c h ỉ (DCHI) đ ể theo d õ icôngnợ. SOXE là số đăng b ộ củ a xe đem đến sử a chữa,s ố n ày
do phòng CSGT đường b ộ cấp (nếu xe đ ổ i c h ủ thì xem như m ột xe khác). Khách hàng k ý hợp đồng
chính là c h ủ xe sử a chữa. M ột khách hàng c ó thể k ý nhiều hợp đồng sử a chữanhiều xe khác nhau hoặc
hợp đồng sử a chữa nhiều lần củ a cùng m ột xe nhưng trong cùngm ột ngày. Những công việc sử a chữa
cho m ộ tđầu xe c h ỉ k ý hợp đồng m ộ tlần. TRIGIAHD
là tổng trị g iá củ a hợp đồng. NG_GIAO_DK là ngày dự kiến phải giao trả xe cho khách.
NG_NGTHU l à ngàynghiệm thu thậtsự sau khi đ ã sử a chữaxong đ ể thanh lý hợp đồng.

Q4: Chitiet_HD(SOHD,MACV,TRIGIA_CV,MATHO,KHOANTHO)
T ân từ: M ỗi hợp đồng sử a xe c ó thể gồm nhiều công việc. MACV là m ã số c ủ a từ ng công việc.
TRIGIA_CV là chi phí v ề v ật tư, phụ tùng,thiết bị, công thợ ... đ ã tính toán v ớ i khách. M ỗicông việc củ a
hợp đồng s ẽ giao cho m ộ t ngườithợ phụ trách (MATHO) v à m ộ t ngườithợ
c ó th ể tham gia và o nhiều công việc củ a m ộ t hay nhiều hợp đồng khác nhau. KHOANTHO
là s ố tiền giao khóanlại cho ngườithợ sử a chữa.

Q5: Phieu_thu(SOPH,NGAYPH,SOHD,MAKH,HOTEN,SOTIENTHU)
T ân từ: Khách hàng (MAKH) c ó thể thanh toán tiền củ a m ột hợp đồng (SOHD) làm nhiều lầ n trước hoặc
sau khi nghiệm thu (trong cùng ngày hoặc khác ngày) . M ỗi lần thanh toán đều
c ó s ố phiếu đ ể phân biệt (SOPH), NGAYPH l à ngày phát hành phiếu v à SOTIENTHU là s ố tiền thanh
toán.HOTEN l à họ tên c ủ a ngườimang tiền đến thanh toán (c ó thể khác v ớ i tên củ a kháchhàngđứngra k ý
hợp đồng)

C âu h ỏ :i
1/ X ác định tập hợp F gồm tấ t c ả c á c phụ thuộc ham suy ra từ tân t ừ c ủ a cá c lược đ ồ quan h ệ (khôngcần liệt k ê c á c phụ
thuộchàm hiển nhiên).X ácđịnh khóacho từ nglược đ ồ quan hệ.
2/ M ô t ả tấ t c ả cá c ràng buộc toàn vẹn củ a lược đ ồ cơ s ở d ữ liệu C. L ập bảng tầm ản h hưởngtổng
hợp.
3/ D ùngngônn g ữ SQL đ ể thực hiện nhữngyêu cầu sau:
a) Cho biết danh sách những người thợ hiện không tham gia v ào m ộ t hợp đồng sử a chữ anào.
b) Cho biết danh sách những hợp đồng hiện đ ã thanh l ý (đ ã giao tra xe cho khách) nhưng chưa được
thanh toánđầy đ ủ .
c) G iả s ử hôm nay là ngày 21/12/95 cho biết danh sách những hợp đồng cần phải hoàn tấ t trước ngày
31/12/95.
d) Cho biết ngườithợ nà o thực hiện nhiều côngviệc nhất.
e) Cho biết ngườithợ n ào thực hiện tổng giá trị côngviệc (tổngs ố tiền) cao nhất.
4/ Lược đ ồ cơ s ở d ữ liệu C ở dạng chuẩn m ấy (cao nhất). H ãy dùngthuật toán phân r ã đ ể nâng cấp lược đ ồ cơ s ở d ữ liệu
trên.

Lưu ý : C ác thuộctính đều được xem như thuộctính đơn.

Đ á p á n:
C âu 1:
F1={MATHO→TENTHO,NHOM,NHOM_TRUONG}
Q1:Tho(MATHO,TENTHO,NHOM,NHOM_TRUONG)

F2={MACV→NOIDUNGCV}
Q2:Congviec(MACV,NOIDUNGCV)

F3={SOHD→NGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU;
MAKH→TENKH,DCHI}
Q3: Hopdong(SOHD,NGAYHD,MAKH,TENKH,DCHI,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU)

F4={SOHD,MACV→TRIGIA_CV,MATHO,KHOANTHO}
Q4:ChiTiet_hd(SOHD,MACV,TRIGIA_CV,MATHO,KHOANTHO)

F5={SOPH→NGAYPH,SOHD,HOTEN,SOTIENTHU;SOHD→MAKH}
Q5:Phieu_thu(SOPH,NGAYPH,SOHD,MAKH,HOTEN,SOTIENTHU)

C âu 2: m ô tả tấ t c ả c á c ràng buộctoàn vẹn:


R11 ∀ t1,t2 ∈ rTho RBTV khóachính
t1.MATHO ≠ t2.MATHO
cuối ∀
R12 rTho[NHOM_TRUONG] ⊆ rTho[MATHO] RBTV khóangoại
R13 ∀ t ∈ rTho
t.TENTHO ≠ NULL RBTV m iền g iá trị
t.NHOM ≠ NULL RBTV m iền g iá trị
cuối ∀

R21 ∀ t1,t2 ∈ rCongviec RBTV khóachính


t1.MACV ≠ t2.MACV
cuối ∀
R22 ∀ t ∈ rCongviec RBTV m iền g iá trị.
t.NOIDUNGCV ≠ NULL
cuối ∀

R31 ∀ t1,t2 ∈ rHopdong RBTV khóachính.


t1.SOHD ≠ t2.SOHD
cuối ∀
R32 ∀ t ∈ rHopdong
t.NGAYHD ≠ NULL RBTV m iền g iá trị.
t.MAKH ≠ NULL RBTV m iền g iá trị.
t.TENKH ≠ NULL RBTV m iền g iá trị.
t.SOXE ≠ NULL RBTV m iền g iá trị.
t.TRIGIAHD > 0 RBTV m iền g iá trị.
t.NGAYHD <= t.NG_NGTHU RBTV liên thuộctính.
t.NG_NGTHU <= t.NG_GIAO_DK RBTV liên thuộctính.
cuối ∀

R41 ∀ t1,t2 ∈ rChiTiet_hd RBTV khóachính.


t1.{SOHD,MACV} ≠ t2.{SOHD,MACV}
cuối ∀
R42 rChitiet_HD[MATHO] ⊆ rTho[MATHO] RBTV khóangoại
R43 rChitiet_HD[SOHD]  rHopdong[SOHD] RBTV khóangoại
R44 rChitiet_HD[MACV]  rCongviec[MACV] RBTV khóangoại
R45  t  rChiTiet_hd
t.TRIGIA_CV > t.KHOANTHO RBTV liên thuộctính.
t.KHOANTHO > 0 RBTV m iền g iá trị. cuối

R51 ∀ t1,t2 ∈ rPhieu_thu RBTV khóachính


t1 .SOPH ≠ t2 .SOPH
cuối ∀
R52 rPhieu_thu[SOHD] ⊆ rHopdong[SOHD] RBTV khóangoại
R53 ∀ t ∈ rPhieuthu
t.NGAYPH ≠ NULL RBTV m iền g iá trị
t.MAKH ≠ NULL RBTV m iền g iá trị
t.HOTEN ≠ NULL RBTV m iền g iá trị
t.SOTIENTHU > 0 RBTV m iền g iá trị
cuối ∀
R54 ∀t∈rPhieuthu ∃ t’∈rHopdong RBTV liên thuộctính liên quan h ệ.
t.SOHD = t’.SOHD v à
t.NGAYPH <= t’NGAYHD
cuối ∀
B ảngtầm ản h hưởngtổng hợp:
rTho rCongviec rHopdong rChiTiet_hd rPhieu_thu
T S X T S X T S X T S X T S X
R11 + + -
R12 + + +
R13 + + -
R21 + + -
R22 + + -
R31 + + -
R32 + + -
R41 + + -
R42 - + + + + -
R43 - + + + + -
R44 - + + + + -
R45 + + -
R51 + + -
R52 - + + + + -
R53 + + -
R54 - + + + + -
C âu 3:
a) SELECT matho,tentho
FROM tho
WHERE matho NOT IN
(SELECT matho
FROM hop_dong INNER JOIN chitiet_HD ON hop_dong.sohd = chitiet_HD.sohd
WHERE ng_ngthu > date() OR ISNULL(ng_ngthu))

b)SELECT
sohd,ngayhd,makh,tenkh,dchi,soxe,trigiahd,ng_giao_dk,ng_ngthu
FROM hop_dong
WHERE ng_giao_dk <= DATE() AND (TRIGIAHD >
(SELECT SUM(SOTIENTHU) FROM phieu_thu
WHERE phieu_thu.sohd = hop_dong.sohd) OR sohd Not In (Select sohd
From phieu_thu))

c)SELECT sohd,ngayhd,makh,tenkh,dchi,soxe,trigiahd,ng_giao_dk,ng_ngthu
FROM hop_dong
WHERE ng_giao_dk > #12/21/95# AND ng_giao_dk <= #12/31/95#

d)SELECT chitiet_hd.matho,tentho,COUNT(macv) AS soluongcv


FROM chiTiet_hd INNER JOIN tho ON chiTiet_hd.matho = tho.matho
GROUP BY chiTiet_hd.matho,tentho
HAVING COUNT(macv) >= ALL (SELECT COUNT(macv) FROM chiTiet_hd GROUP
BY matho)

e)SELECT chiTiet_hd.matho,tentho,SUM(trigia_cv) AS congtrigia_cv


FROM chiTiet_hd INNER JOIN tho ON chiTiet_hd.matho = tho.matho
GROUP BY chiTiet_hd.matho,tentho
HAVING SUM(trigia_cv) >= ALL (SELECT SUM(trigia_cv) FROM chiTiet_hd
GROUP BY matho)

C âu 4:
F1={MATHO→TENTHO,NHOM,NHOM_TRUONG}
Q1:Tho(MATHO,TENTHO,NHOM,NHOM_TRUONG)
K1 = MATHO
⇒ Q1 ở dạng chuẩnBC

F2={MACV→NOIDUNGCV}
Q2:Congviec(MACV,NOIDUNGCV)
K2 = MACV
⇒ Q2 ở dạng chuẩnBC

F3={SOHD→NGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU;
MAKH→TENKH,DCHI}
Q3: Hopdong(SOHD,NGAYHD,MAKH,TENKH,DCHI,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU)
K3 = SOHD
⇒ Q3 ở dạng chuẩn2

F4={SOHD,MACV→TRIGIA_CV,MATHO,KHOANTHO}
Q4:ChiTiet_hd(SOHD,MACV,TRIGIA_CV,MATHO,KHOANTHO)
K4 = {SOHD,MACV}
⇒ Q4 ở dạng chuẩnBC

F5={SOPH→NGAYPH,SOHD,HOTEN,SOTIENTHU;SOHD→MAKH}
Q5:Phieu_thu(SOPH,NGAYPH,SOHD,MAKH,HOTEN,SOTIENTHU)
K5 = SOPH
⇒ Q5 ở dạng chuẩn2
V ậy lược đ ồ cơ s ở d ữ liệu C đạt dạng chuẩn2.

Đ ể nâng cấp lược đ ồ cơ s ở d ữ liệu trên ta phảiphân r ã Q3 v à Q5 thành:

F31={SOHD→NGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU}
Q31: Hopdong(SOHD,NGAYHD,MAKH,SOXE,TRIGIAHD,NG_GIAO_DK,NG_NGTHU)
K31 = SOHD
⇒ Q31 đạt chuẩn BC
F32={MAKH→TENKH,DCHI}
Q32: Khachhang(MAKH,TENKH,DCHI)
K32 = MAKH
⇒ Q32 đạt chuẩnBC

F51={SOPH→NGAYPH,SOHD,HOTEN,SOTIENTHU}
Q51:Phieu_thu(SOPH,NGAYPH,SOHD,HOTEN,SOTIENTHU)
K51 = SOPH
⇒ Q51 đạt chuẩnBC

F52={SOHD→MAKH}
Q52:Hopdong(SOHD,MAKH)
K52 = SOHD ⇒ Q52 đạt chuẩnBC

Lược đ ồ Q52 l à lược đ ồ con c ủ a Q31 nên ta loại Q52 k hỏ ilược đ ồ cơ sở d ữ liệu C. V ậy lược đ ồ cơ s ở
d ữ liệu C được phân r ã thànhc á c lược đ ồ Q1,Q2,Q31,Q32,Q4,Q51
----oOo----
Đ ề3
Cho m ộ t lược sơ đ ồ cơ s ở d ữ liệu C dùng đ ể quản lý hoạt động kinh doanh kiều h ố i củ a m ột đơn vị. Lược đ ồ cơ s ở d ữ
liệu C gồm c á c lược đ ồ quan h ệ như sau :

Q1: Nguyen_te(LOAINT,NGAY,TIGIA,TILE_HH)
T ân từ : M ỗi nguyên tệ được nhận diện duy nhất qua LOAINT. C ác loại nguyên tệ c ó thể là : USD, FF, DM,
YEN, ...Thuộc tính TIGIA c h ỉ t ỉ g iá so v ớ i tiền đồng VN củ a m ỗ i nguyên tệ trong ngày ( do
Ngân hàng Ngoại thương quyết đ ịnh v ào đầu m ỗ i ngày v à c ố định trong ngày).Thuộc tính TILE_HH
là t ỉ lệ % huê hồng m à công ty được hưởng trên g iá trị chi trả củ a m ỗi nguyên tệ (tỉ lệ n ày c ố định trong
năm).
Lưu ý : Quan h ệ n ày c h ỉ chứa cá c nguyên tệ m à công ty c ó chi trả kiều hối. M ỗi khi cần chi trả m ô tloại nguyên tệ m ới,
côngty bắ t đầu lưu t ỉ g iá nguyêntệ m ớ ik ể t ừ ngàychi trả trở đi.

Q2: Don_vi(MADV,NUOC)
T ân từ : Công ty làm đại diện cho khoảng 50 đơn v ị của nướ cngoài đ ể chi trả kiều h ố i cho kháchhàng tại VN.
M ỗi đơn v ị c ó m ã riêng đ ể phân biệt (MADV)v à đ ặt trụ s ở chính tại 1 nước(NUOC).

Q3: Danh_sach(MADV,SODS,NGAYDS)
T ân từ : M ỗidanh sách liên quan đến 1 đơn vị, c ó m ộ t s ố th ứ tự (SODS) đ ể phân biệt v ớ i cá c danh sách khác củ a
cùng đơn vị. Thuộc tính NGAYDS l à ngày công ty nhận được danh sách,cũng l à ngày m à đơn
v ị tại nước ngoài g ở i danh sách cho công ty. Trong m ột ngày, m ộtđơn v ị tại nướcngoàic h ỉ g ở i tố i đa
m ộ tdanh sách.

Q4: Ctiet_ds(MADV,SODS,HOTENKH,DIACHI,LOAINT,TIENNT)
T ân từ : M ỗi danh sách chi trả c ủ a m ộ t đơn v ị có thể gồm nhiều kháchhàng.G iả s ử rằng thuộc tính HOTENKH c ó
th ể thêm m ộ t số thôngtin phụ đ ủ đ ể phân biệt v ớ i c á c khách hàng khác trong cùng danh sách. M ỗi khách
hàngc h ỉc ó m ộtđịa c h ỉ (DIACHI) v à nhiều kháchhàngc ó thể
c ó chung m ột địa chỉ. Trong m ộ t danh sách,m ỗ i khách hàng c hỉ nhận m ộ t loại nguyên tệ
v ớ isố tiền nguyêntệ là TIENNT

Q5: Giay_bao(SOGB,MADV,SODS,HOTENKH,NGAYGB,LAN)
T ân từ : Sau khi nhận danh sách c ủ a m ộ t đơn vị, công ty g ở i giấy báo cho cá c khách hàng tại VN.
M ỗigiấy b áo c ó s ố th ứ tự là SOGB (đánhs ố tăng dần) đ ể phân biệt v ớ ic á c giấy b áo khác
(của cùngđơn v ị hoặc khác đơn vị). N ếu sau 3 lần g ở igiấy b áo (m ỗilần cách nhau 1 tuần)
m à kháchhàngkhôngđến nhận tiền, côngty s ẽ g ở itrả cho đơn v ị tại nướcngoài).

Q6:Chi_tra(SOPCHI,MADV,SODS,HOTENKH,NGAYCTRA,SOTIENVN)
T ân từ : M ỗi khách hàng trong danh sach c ủ a 1 đơn vị, sau khi nhận giấy báo, s ẽ đến nhận tiền đồng VN 1
lần tại công ty v à m ỗi phiếu chi tiền cho khách s ẽ c ó s ố l à SOPCHI đ ể phân biệt v ớ i b ất k ỳ phiếu chi
khác. Thuộc tính SOTIENVN chỉ s ố tiền ĐVN mà khách hàng nhận được tương đương v ớ i
TIENNT ghi trong danh sách.T ỉ giá qui đ ổ i được tính v ào ngày
chi trả (NGAYCTRA). S ố tiền huê hồng m à công ty được hưởngs ẽ được tính toán dựa trên
s ố tiền thực chi (SOTIENVN) v à t ỉ lệ huê hồngcủ a nguyên tệ .
C âu h ỏ i:
1. X ác định tập F gồm tấ t c ả c á c phụ thuộc hàm suy ra từ tân từ c ủ a c á c lược đ ồ quan hệ. X ácđịnh khóacho từn g
lược đ ồ quan hệ.
2. M ô tả tấ t c ả cá c ràng buộctoànvẹn c ủ a lược đ ồ cơ s ở d ữ liệu. L ập bảngtầm ản h hưởngtổnghợp.
3. D ùngngônn g ữSQL đ ể thực hiện nhữngyêu cầu sau:
a) Cho biết t ỉ g iá củ a c á c nguyêntệ trong ngày21/12/95
b) Cho biết nhữngdanh sáchchi trả kiều h ố ic ủ a các đơn v ị c ó trụ s ở chính đ ặt tại nướcPháp.
c) Cho biết nhữngkháchhàngkhôngđến nhận tiền.
d) Cho tổng s ố tiền huê hồngm à côngty được trong khoảngth ờ igian t ừ ngàyd1 đến ngàyd2.
e) Cho biết đơn v ị nướcngoàic ó tổngs ố tiền chi trả (tính theo tiền đồngVN) cao nhất.
4. Lược đ ồ cơ s ở d ữ liệu C ở dạng chuẩn m ấy (cao nhất) ? H ãy dùng thuật toán phân rã đ ể nâng cấp cơ s ở d ữ
liệu trên.
Lưu ý : C ác thuộctính c ó m iền g iá trị l à ngàydương lịch xem như thuộctính đơn.
----oOo----
Đ ề4
Cho m ộtlược đ ồ cơ s ở d ữ liệu C dùngđ ể quảnlý việc thuê m ướnphòngtại m ộ tkháchsạn. Lược đ ồ
cơ s ở d ữ liệu C gồm c á c lược đ ồ quan h ệ nhu sau :

Q1: Phong(MAPH,SO_NGUOI,DACDIEM,GIA_PHONG)
T ân từ: C ác phòng củ a khách sạn được phân biệt v ớ i nhau qua MAPH. SO_NGUOI là kh ả năngchứa tố i đa
c ủ a phòng. DACDIEM m ô t ả số đặc điểm củ a phòng. GIA_PHONG là g iá c ả thuê phòngtrong 1 ngày.

Q2: Tien_nghi(LOAI_TN,TEN_TN)
T ân từ: Ngoàic á c vậ t dụng tố i thiểu, khách sạn c ó thể trang b ị thêm m ộ t s ố tiện nghi khác cho c á c phòng như :
điện thoại, tivi, t ủ lạnh, … LOAI_TN là m ã s ố đ ể phân biệt từ ng loại tiện nghi. TEN_TN là
tên gọi c ủ a loại tiện nghi.

Q3: Tai_san(LOAI_TN,STT,MAPH,NGAY_TB)
T ân từ : M ỗi loại tiện nghi, khách sạn c ó thể mua m ộ t s ố lượng lớ n v à STT dùng đ ể phân biệt c á c
v ật dụng trong cùng loại tiện nghi. M ột v ậ t dụng c ó thể được sắp xếp trang b ị cho nhiều phòng khác
nhau nhưng trong m ộ t ngày v ật dụng c hỉ trang b ị cho m ộ t phòng. MAPH l à phòngđược trang
b ị v à NGAY_TB là ngàyb ắt đầu trang bị.
Lưu ý : M ỗikhi m ộ tv ật dụng được thay đ ổ i phòngthì cập nhậtlại MAPH v à NGAY_TB củ a v ật dụng
đó.

Q4: Thue_phong(MAPH,HOTEN,NGAYBD,NGAYKT,NGAYTRA,LOAIDV,NGAYDV,TIENDV)
T ân từ : HOTEN là họ tên củ a khách thuê phòng MAPH. G iả s ử rằng h ô tên cá c khách thuê phòngtrong cùng m ộ t
phòng trong m ộ t ngày luôn luôn khác nhau. NGAYBD v à NGAYKT là ngày
b ắt đầu v à ngày kết thúc (dự kiến) thuê phòng. NGAYTRA l à ngày trả thật sự. G iả s ử rằng không c ó
trường hợp khách trả phòng v à thuê lại chính phòng đ ó trong cùng m ộ t ngày. S ố tiền thuê phòng được
chia đều cho s ố kháchthuê trong cùngphòng.
Kháchthuê phòngc ó thể s ử dụng thêm cá c dịch vụ (gọi điện thoại đườngdài,thuê xe, th ủ
tục hành chính, … ) LOAI_DV là m ã s ố củ a loại dịch vụ s ử dụng. NGAYDV ngày dịch vụ thực hiện.
TIENDV l à s ố tiền kháchthuê phảitrả cho dịch vụ.
N ếu trong cùng m ộ t ngày khách thuê phòng s ử dụng 1 dịch vụ nhiều lần thì tiền dịch vụ
được cộng dồn lại thành m ộ t lần v à tạo thành m ột b ộ (ví dụ trong ngày gọi điện thoại 3 cuộc v ớ i s ố
tiền phải trả lần lượt là : 5000ĐVN, 4500ĐVN, 2000ĐVN thì s ẽ được tính chung m ộ t lần là
11500ĐVN). C ác dịch vụ được tính riêng đ ố i v ớ itừ ngkhách.N ếu là dịch
vụ chung cho m ộts ố kháchthì s ẽ tính tiền cho m ộtđơn v ị kháchđại diện n ào đ ó .

C âu h ỏ i:
1. X ác định tập F gồm tấ t c ả cá c phụ thuộc hàm suy ra t ừ tân t ừ c ủ a cá c lược đ ồ quan hệ. X ácđịnh c á c khóa cho
từn glược đ ồ quan hệ.
2. M ô t ả tấ t cả c á c ràng buộc toàn vẹn củ a lược đ ồ cơ s ở d ữ liệu C. Lập bảng tầm ả nh hưởngtổnghợp c ủ a cá c ràng
buộctoànvẹn.
3. D ùngngônn g ữSQL đ ể thực hiện nhữngyêu cầu sau :
a) Cho biết cá c thôngtin c ủ a c á c phòngc ó k h ảnăng chứatrên 3 người.
b) Cho biết cá c thôngtin c ủ a c á cphòngc ó trang bị m áylạnh (LOAITN=’ML’)
c) Cho biết c á c thôngtin củ a c á c phònghiện nay (02/01/96) c ó trang b ị m áylạnh.
d) G iả s ử hôm nay l à ngày 02/01/96. Tính tổng số tiền phảitrả (tiền thuê phòngv à tiền dịch vụ) củ a từn gkhách
đ ã thuê phòngX t ừ ngày21/12/95 v à trả phòngv ào hôm nay .
e) Cho biết doanh s ố thu được c ủ a từn gphòng(khôngtính tiền dịch vụ)
1. Lược đ ồ cơ s ở d ữ liệu C ở dạng chuẩn m ấy (cao nhất) ?. H ãy dùng thuật toán phân rã đ ể nâng cấp lược đ ồ
cơ s ở d ữ liệu C.
Lưu ý : C ác thuộctính c ó m iền g iá trị là ngàydương lịch xem như thuộctính đơn.
----oOo----
Đ ề5
Cho m ộ tlược đ ồ cơ s ở d ữ liệu C dùngđ ể quản lý việc việc cho mượn sách tại m ột thư viện (xem tại ch ỗ hoặc mang v ề
nhà).Lược đ ồ cơ s ở d ữ liệu C gồm c á c lược đ ồ quan h ệ như sau :

Q1 : The_loai(MATL,TENTL)
T ân từ : S áchcủ a thư viện được phân chia theo thể loại đ ể bạn đọc d ễ dàngtra cứ u.MATL là m ã s ố c ủ a từ ngth ể loại v à
dùngđ ể phân biệt giữac á c thể loại. TENTL là tên gọi củ a thể loại.

Q2 : Sach(MASH,TENSH,NGUYEN_TAC,TAC_GIA,MATL)
T ân từ : MASH dùngđ ể phân biệt c á c quyển sách.TENSH l à tên (tựa) bằng tiếng V iệt củ a sáchv à
NGUYEN_TAC là tên nguyên tá c (tiếng V iệt hoặc tiếng nướcngoài).TAC_GIA l à tên tá c g iả (hay nhóm
c á c tá c giả)củ a sách.N ếu sáchc ó nhiều tập hay nhiều b ản thì cũngxem
như c á c đầu sáchkhácnhau v à c ó m ã s ố khácnhau. MATL là m ã thể loại củ a sách.

Q3 : phieu_muon(MADG,TENDG,DCHI,NGAYCAP,MASH,NGAYMUON,NGAYTRA,TAI_CHO)
T ân t ừ : M ỗi đ ộ c g iả c h ỉ c ó m ộ t phiếu mượn sách v ớ i m ã s ố là MADG đ ể phân biệt v ớ i c á c đ ộc g iả khác.C ác thuộc tính
TENDG, DCHI l à tên v à địa c h ỉ củ a đ ộ cgiả.NGAYCAP l à ngàycấp
th ẻ cho đ ộ c giả.MASH l à m ã s ố củ a sáchmượn. G iả s ử khôngc ó trườnghợp mượn rồ i trả
lại cùng1 quyển sáchtrong cùng1 ngày.N ếu sách mượn đọc tại ch ỗ thì thuộctính
TAI_CHO c ó g iá trị True v à NGAYMUON=NGAYTRA. N ếu sáchmượn v ề n h à thì thuộctính
TAI_CHO c ó g iá trị False v à NGAYTRA s ẽ c ó g iá trị trốngcho đến khi sáchđược mang trả
lại cho thư viện.M ỗiđ ộ cg iả c h ỉ được g iữ tại n h à tố i đa 3 quyển sáchv à m ỗiquyển sách
c h ỉđược g iữ tại n h à tố i đa 30 ngày(khôngcần lưu ý đến biện phápx ử lý nếu kháchvi phạm n ộ iqui)

Q4 : Le_phi(MADG,NAM,NGAY_NOP,SOTIEN)
T ân từ: Đ ộ cg iả phảiđónglệ phí hằng năm (NAM) đ ể gia hạn th ẻ m ớ iđược mượn sách.
NGAY_NOP,SOTIEN là ngàyv à số tiền nôp lệ phí cho NAM.

C âu h ỏ i:
1. X ác định tậ p F gồm tấ t c ả cá c phụ thuộc hàm suy ra t ừ tâ n t ừ củ a cá c lược đ ồ quan hệ. X ác định cá c khóa cho từ ng
lược đ ồ quan hệ.
2. M ô tả tấ t c á c ràng buộctoàn vẹn c ủ a lược đ ồ cơ s ở d ữ liệ C. L ập bảng tầm ả nh hưởngtổng hợp c ủ a cá c ràng buộctoàn
vẹn.
3. D ùngngônn g ữSQL đ ể thực hiện nhữngyêu cầu sau :
a) Cho biết danh sáchđ ộ cg iả v à nhữngquyểnsáchmượn q u á20 ngày(k ể t ừ ngày02/01/96).
b) Cho biết nhữngquyểnsáchc ó tên thể loại l à “Tin học” v à c ó sự tham gia biên soạn củ a tác g iả “X”.
c) Cho biết tổngs ố lần mượn củ a từ ngquyển sách.
d) Cho biết tổng s ố lần mượn c ủ a từn g thể loại sách.e) Cho
biết th ể loại sáchn ào được mượn nhiều nhất.
4. Lược đ ồ cơ s ở d ữ liệu C ở dạng chuẩn m ấy (cao nhất) ? H ãy dùngthuật toán phân r ã đ ể nâng cấp lược đ ồ cơ s ở d ữ liệu
C.
Lưu ý : C ác thuộctính c ó m iền g iá trị là ngàydương lịch xem như thuộctính đơn.
T À ILIỆU THAM KHẢO

[1].Nhậpm ôn cơ s ở d ữ liệu
ĐồngThị Bích T hủy- NguyễnAn T ế

[2].Cơ s ở d ữ liệu – l ý thuyếtv à thực hành


NguyễnB á Tường

[3].Cơ s ở d ữ liệu
Đ ỗ Trung Tuấn

[4].M ôhình d ữ liệu v à ngônn g ữtruy vấn


JEFFREY D. ULLMAN

[5].Lýthuyếtthiết k ế cơ s ở d ữ liệu
JEFFREY D. ULLMAN

[6].The Theory Of Relational Databases


DAVID MAIER
----oOo----

You might also like