Tài liệu Giáo trình Cơ sở dữ liệu - Chương 1: Tổng quan về cơ sở dữ liệu
57 trang |
Chia sẻ: Khủng Long | Lượt xem: 1054 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Giáo trình Cơ sở dữ liệu - Chương 1: Tổng quan về cơ sở dữ liệu, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc
Trang 1
Chæång 1: TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
1 Chæïc Nàng Cuía Mäüt Hãû Quaín Trë Cå Såí Dæî Liãûu
1.1. Caïc Khaïi Niãûm Vãö Cå Såí Dæî Liãûu
Âãø dãù daìng cho viãûc giaíi thiïch caïc khaïi niãûm vãö Cå Såí Dæî Liãûu, træåïc hãút ta
xem xeït hãû thäúng baïn veï may bay bàòng maïy tênh. Dæî liãûu læu træî trong maïy tênh
bao gäöm caïc thäng tin vãö haình khaïch, chuyãún bay, âæåìng bay ... Moüi thäng tin vãö
mäúi quan hãû naìy âæåüc biãøu diãùn trong maïy tênh thäng qua viãûc âàût chäø cuía khaïch
haìng. Váûy laìm thãú naìo âãø biãøu diãùn âæåüc dæî liãûu âoï vaì âãø âaím baío cho khaïch
haìng âi âuïng chuyãún bay.
Táûp håüp dæî liãûu trãn âæåüc læu træî trong maïy tênh theo mäüt quy âënh naìo âoï
vaì âæåüc goüi laì Cå Såí Dæî Liãûu( Database - CSDL)
1.2. Hãû quaín trë Cå Såí Dæî Liãûu
1.2.1. Âënh nghéa: Pháön Chæång trçnh coï thãø xæí lyï, thay âäøi dæî liãûu goüi laì hãû quaín
trë Cå Såí Dæî Liãûu (Database management System - viãút tàõt DBMS)
1.2.2 Nhæîng khaí nàng cuía Hãû quaín trë Cå Såí Dæî Liãûu
Coï hai âàûc tênh âãø phán biãût DBMS våïi caïc hãû thäúng láûp trçnh khaïc, âoï laì:
1. Khaí nàng quaín lyï nhæîng dæî liãûu cäú âënh
2. Khaí nàng truy xuáút coï hiãûu quaí mäüt khäúi læåüng dæî liãûu låïn
Âiãøm (1) khàón âënh ràòng coï mäüt CSDL täön taûi thæåìng xuyãn ; näüi dung cuía Cå
Såí Dæî Liãûu naìy laì nhæîng dæî liãûu âæåüc DBMS truy xuáút vaì quaín lyï. Âiãøm (2) phán
biãût mäüt DBMS våïi mäüt hãû thäúng táûp tin cuîng quaín lyï dæî liãûu nhæng noïi chung
khäng cho pheïp truy xuáút nhanh choïng caïc thaình pháön tuìy yï cuía dæî liãûu . Nhæîng
khaí nàng cuía mäüt DBMS seî ráút cáön thiãút khi säú læåüng dæî liãûu ráút låïn.
Hai âàûc tênh trãn laì hai âàûc tênh cå baín cuía mäüt DBMS, ngoaìi ra mäüt
DBMS thæåìng coï caïc khaí nàng sau:
- Häù tråü êt nháút mäüt mä hçnh dæî liãûu (Data model) nhåì âoï ngæåìi sæí duûng coï thãø
xem âæåüc dæî liãûu.
- Häù tråü mäüt säú ngän ngæî báûc cao cho pheïp ngæåìi sæí duûng âënh nghéa caïc cáúu truïc
dæî liãûu, truy xuáút vaì thao taïc dæî liãûu .
- Quaín lyï giao dëch, nghéa laì cho pheïp nhiãöu ngæåìi sæí duûng truy xuáút âäöng thåìi vaì
chênh xaïc âãún mäüt Cå Såí Dæî Liãûu .
- Âiãöu khiãøn caïc quaï trçnh truy xuáút, laì khaí nàng giåïi haûn caïc quaï trçnh truy xuáút
dæî liãûu cuía nhæîng ngæåìi khäng âæåüc pheïp , vaì khaí nàng kiãøm tra âäü tin cáûy cuía
dæî liãûu
Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc
Trang 2
- Caïc âàûc tênh tæû thêch æïng, laì khaí nàng tæû phuûc häöi laûi dæî liãûu do sæû cäú cuía hãû
thäúng maì khäng laìm máút dæî liãûu
1.3 Caïc mä hçnh dæî liãûu
Mäüt DBMS cáön phaíi cung cáúp êt nháút mäüt mä hçnh træìu tæåüng qua âoï ngæåìi
sæí duûng coï thãø tháúy âæåüc dæî liãûu khäng phaíi bàòng caïc bit “thä” maì bàòng caïc daûng
dãù hiãøu, dãù nháûn biãút hån.
Trong thæûc tãú caïc Cå Såí Dæî Liãûu coï thãø coï mäüt vaìi mæïc træìu tæåüng , trong
âoï mæïc tháúp nháút laì táûp håüp caïc file dæî liãûu ( Mæïc váût lyï)
Vê duû: Xeït mäüt täøng cäng ty coï nhiãöu cäng ty con vaì häö så vãö caïc nhán viãn cuía
täøng cäng ty coï thãø âæåüc læu træî trong mäüt file dæî liãûu gäöm caïc træåìng MNV( maî
nhán viãn), HOTEN, LUONG_NV, ÂIACHI... âãø âån giaín ta giaí thiãút cáúu truïc
baín ghi gäöm 2 træåìng sau:
TEN_NV: hoü tãn nhán viãn
NGUOI_QL: Hoü tãn giaïm âäúc cäng ty nåi nhán viãn laìm viãûc.
Khi âoï cáúu truïc baín ghi nhæ sau:
Record
TEN_NV: char[30];
NGUOI_QL: char[30];
end;
Khi âoï file dæî liãûu laì táûp caïc baín ghi vaì mäùi baín ghi chæïa thäng tin vãö mäüt nhán
viãn cuía cäng ty.
Trong nhiãöu mä hçnh Cå Såí Dæî Liãûu ngæåìi ta sæí duûng caïc quan hãû thay cho caïc file
Quan hãû : NHAN_VIEN(TEN_NV,NGUOI_QL)
Ta cáön phán biãût giæîa file vaì quan hãû
Trong file caïc baín ghi khäng nháút thiãút phaíi phán biãût
Trong quan hãû, caïc baín ghi(bäü) cáön phaíi phán biãût nhau.
1.4 Hiãûu quaí truy cáûp dæî liãûu
Caïc hãû âiãöu haình âãöu coï khaí nàng täø chæïc vaì læu træî caïc táûp tin vç váûy viãûc læu træî
caïc táûp tin dæî liãûu âäúi våïi DBMS laì khäng âaïng chuï yï. Hiãûu quaí cuía caïc DBMS trong
viãûc xæí lyï trãn caïc táûp tin laì täø chæïc caïc táûp tin phuû hoàûc caïc cäng cuû häù tråü âãø truy cáûp
dæî liãûu nhanh choïng, këp thåìi . Chàón haûn caïc file INDEX, hoàûc caïc haìm HASH.
1.5 Quaín lyï giao dëch
Ngaìy nay do sæû phaït triãøn cuía maûng maïy tênh maì caïc Cå Såí Dæî Liãûu låïn coï thãø
âæåüc sæí duûng båíi nhiãöu ngæåìi trãn caïc maïy tênh khaïc nhau vç váûy caïc DBMS cáön phaíi
cung cáúp mäüt khaí nàng quaín lyï sæû truy cáûp dæî liãûu cuía nhiãöu ngæåìi sæí duûng. Chàón haûn
caïc dæî liãûu vãö taìi khoaín cuïa ngán haìng âæåüc sæí duûng båíi haìng vaûn khaïch haìng trãn caïc
maïy tênh khaïc nhau hoàûc trãn caïc maïy âäøi tiãön tæû âäüng; Cå Såí Dæî Liãûu phuûc vuû cho viãûc
âàût chäø cho mäüt haîng haìng khäng âæåüc sæí duûng båíi haìng ngaìn âaûi lyï cuía haîng haìng
khäng âoï trãn khàõp thãú giåïi. Viãûc truy cáûp âäöng thåìi thæåìng xaíy ra hiãûn tæåüng xung âäüt
Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc
Trang 3
giao dëch giæîa caïc khaïch haìng trãn cuìng mäüt haûng muûc dæî liãûu , vç váûy DBMS cáön phaíi
cung cáúp mäüt khaí nàng khoïa dæî liãûu (clock data) khi coï ngæåìi sæí duûng truy cáûp âãún haûng
muûc dæî liãûu âoï.
1.6 An toaìn dæî liãûu
Mäüt DBMS cáön phaíi coï khaí nàng phuûc häöi laûi dæî liãûu khi coï sæû hoíng hoïc xaíy ra,
âäöng thåìi vaì ráút quan troüng laì baío vãû sæû truy cáûp cuía caïc ngæåìi sæí duûng khäng âæåüc pheïp
. Âãø thæûc hiãûn cäng viãûc naìy caïc DBMS cho pheïp taûo ra caïc khung nhçn (View) maì ngæåìi
sæí duûng chè âæåüc pheïp quan saït dæî liãûu trãn caïc view. Chàón haûn chuïng ta coï mäüt file dæî
liãûu laì NHAN_VIEN gäöm caïc træåìng
TEN ( Hoü tãn nhán viãn)
DIA_CHI(âëa chè nhán viãn)
TEN_CTY( tãn cäng ty)
LUONG(læång nhán viãn)
nãúu sæí duûng mä hçnh Quan hãû ta coï Quan hãû sau:
NHAN_VIEN(TEN, DIA_CHI, TEN_CTY,LUONG)
Âãø moüi ngæåìi coï thãø truy cáûp vaìo file dæî liãûu naìy nhæng khäng âæåüc biãút læång cuía nhán
viãn. Trong ngän ngæî SQL khung nhçn âæåüc taûo ra nhæ sau:
CREAT VIEW L_NHAN_VIEN
SELECT TEN, DIA_CHI,TEN_CTY
FROM NHAN_VIEN;
Khi âoï khung nhçn âæåüc taûo ra nhæ mäüt quan hãû våïi tãn L_NHAN_VIEN(TEN,
DIA_CHI, TEN_CTY). Khung nhçn naìy khäng täön taûi váût lyï nhæ táûp tin , nhæng coï thãø
váún tin noï giäúng nhæ táûp tin.
2. Kiãún truïc mäüt Hãû quaín trë Cå Såí Dæî Liãûu
Mäüt Hãû quaín trë Cå Såí Dæî Liãûu âæåüc mä taí båíi 3 mæïc træìu tæåüng sau
Âæåüc viãút bàòng ngän
ngæî âënh nghéa dæî liãûu
Cå Såí Dæî Liãûu
khaïi niãûm CSDL váût
lyï
Khung nhçn 1
Khung nhçn 2
Khung nhçn n
.
.
.
Nhoïm UESR 1
Nhoïm UESR 2
Nhoïm UESR n
.
.
.
Âæåüc viãút bàòng
ngän ngæî âënh
nghéa dæî liãûu
læåüc âäö con
Âæåüc caìi âàût trãn
thiãút bë váût lyï
Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc
Trang 4
2.1 Mæïc Cå Såí Dæî Liãûu váût lyï( physical level)
Laì mäüt táûp caïc táûp tin (file) vaì caïc file chè muûc (Index) hoàûc caïc cáúu truïc læu træî
khaïc duìng âãø truy xuáút chuïng mäüt caïch coï hiãûu quaí , goüi laì Cå Såí Dæî Liãûu váût lyï. Cå Såí
Dæî Liãûu váût lyï täön taûi thæåìng xuyãn trong thiãút bë læu træî nhæ âéa tæì.
2.2 Mæïc Cå Såí Dæî Liãûu khaïi niãûm (Concept level )
Cå Såí Dæî Liãûu khaïi niãûm laì sæû træìu tæåüng hoïa cuía thãú giåïi thæûc khi noï dæåüc gàõn
våïi ngæåìi sæí duûng Cå Såí Dæî Liãûu. Caïc DBMS cung cáúp ngän ngæî âëng nghéa dæî liãûu
(data definition language DDL), âãø mä taí læåüc âäö khaïi niãûm (conceptual scheme)vaì noï
seî âæåüc caìi âàût bàòng læåüc âäö váût lyï (physical scheme). DDL cho chuïng ta mä taí Cå Såí Dæî
Liãûu khaïi niãûm nhåì caïc thuáût ngæî cuía “Mä hçnh dæî liãûu “ , chàón haûn nhæ trong mä hçnh
quan hãû dæî liãûu âæåüc trçnh baìy qua caïc baíng våïi caïc cäüt laì caïc thuäüc tênh caïc haìng laì caïc
“bäü” tæång tæû nhæ caïc máùu tin.
2.3 Khung nhçn(VIEW)
Khung nhçn(view) hay læåüc âäö con (Subscheme)laì mäüt pháön cuía Cå Såí Dæî Liãûu
khaïi niãûm hoàûc laì sæû træìu tæåüng hoïa mäüt pháön Cå Såí Dæî Liãûu khaïi niãûm . háöu hãút caïc
DBMS âãöu cung cáúp phæång tiãûn âãø khai baïo khung nhçn , âæåüc goüi laì ngän ngæî âënh
nghéa dæî liãûu læåüc âäö con( subscheme data definition language) vaì caïc phæång tiãûn âãø
thao taïc vaì váún tin trãn khung nhçn goüi laì ngän ngæî thao taïc dæî liãûu læåüc âäö con
(subscheme data manipulation language)
Thê duû1
Chuïng ta thæí phán têch caïc khaïc biãût giæîa caïc mæïc váût lyï, khêa niãûm, khung nhçn
nhåì vaìo tênh tæång tæû cuía chuïng våïi caïc ngän ngæî láûp trçnh. Cuû thãø ta seî noïi vãö maíng:
- ÅÍ mæïc khaïi niãûm maíng coï thãø khia baïo nhæ sau:
Integer array A[1..n,1..m]
Coìn åí mæïc váût lyï, maíng A âæåüc læu træî trong mäüt vuìng liãn tuûc bàõt âáöu tæì âëa chè a0 theo
thæï tæû hãút cäüt âãún doìng. Pháön tæí A[i,j] seî åí vë trê a0 +4(m(i-j)+j-1)
ÅÍ mæïc khung nhçn, ta coï thãø taûo ra nhiãöu khung nhçn tuìy yï. Chàón haûn
f(i)=å
=
m
1j
]j,i[A cho biãút täøng caïc pháön tæí trãn doìng thæï i.
Læåüc âäö vaì thãø hiãûn
Ngoaìi viãûc phán chia mæïc træìu tæåüng nhæ trong pháön (2) chuïng ta coìn coï mäüt
caïch hiãøu khaïc vãö Cå Såí Dæî Liãûu . Khi thiãút kãú chuïng ta quan tám âãún nhæîng hoaûch âënh
(plan) trãn Cå Såí Dæî Liãûu ; nhæng khi sæí duûng chuïng ta laûi quan tám âãún nhæîng dæî liãûu
thæûc sæû täön taûi trong Cå Såí Dæî Liãûu . Cáön phaíi hiãøu ràòng dæî liãûu trong Cå Såí Dæî Liãûu
thæoìng xuyãn thay âäøi , trong khi caïc plan váùn nhæ cuî.
Näüi dung hiãûn thåìi cuía Cå Såí Dæî Liãûu goüi laì thãø hiãûn (instance) cuía Cå Såí Dæî
Liãûu .Thuáût ngæî Læåüc âäö (Scheme) âæåüc duìng âãø noïi âãún caïc hoaûch âënh naìy vç váûy khi
noïi âãún læåüc âäö khaïi niãûm laì noïi vãö hoaûch âënh cho Cå Såí Dæî Liãûu khaïi niãûm , vaì chuïng
ta goüi hoaûch âënh Cå Såí Dæî Liãûu váût lyï laì læåüc âäö váût lyï.
Thê duû 2
Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc
Trang 5
Chuïng ta tiãúp tuûc våïi maíng trong vê duû 1. Mä taí maíng vaì haìm âæåüc âæa ra trong
thê duû âoï thæûc sæû laì thäng tin kiãøu læåüc âäö.
1. Læåüc âäö váût lyï laì mãûnh âãö: Pháön tæí A[i,j] seî åí vë trê a0 +4(m(i-j)+j-1), khàón âënh ràòng
maíng A âæåüc læu taûi vë trê bàõt âáöu laì a0 vaì pháön tæí a[i,j] âæåüc læu åí vë trê a0 +4(m(i-j)+j-1)
2. Læåüc âäö khaïi niãûm laì khai baïo Integer array A[1..n,1..m]; A laì mäüt maíng säú nguyãn
våïi n haìng vaì m cäüt.
3. Læåüc âäö con laì âënh nghéa cuía haìm f, nghéa laì
f(i)=å
=
m
1j
]j,i[A
Âãø âæa ra mäüt thê duû vãö mäüt thãø hiãûn cuía læåüc âäö khaïi niãûm naìy , chuïng ta coï thãø
cho n=m=3 khi âoï A laì mäüt ma phæång:
8 1 6
3 5 7
4 9 2
Khi âoï thãø hiãûn váût lyï (Physical instance)seî laì 9 word khåíi âáöu tæì vë trê a0 theo thæï
tæû chæïa 8 1 6 3 5 7 4 9 2. Cuäúi cuìng thãø hiãûn khung nhçn view laì haìm
f(1)=f(2)=f(3)=15
Tênh Âäüc láûp dæî liãûu .
Så âäö vãö caïc mæïc træìu tæåüng trong pháön (2) chè roî âi tæì khung nhçn qua Cå Såí Dæî
Liãûu khaïi niãûm âãún Cå Såí Dæî Liãûu váût lyï âæa ra hai mæïc âäüc láûp dæî liãûu (data
independence).
- Âäüc láûp dæî liãûu váût lyï (physcal data independence) : Chuïng ta coï thãø thay âäøi
læåüc âäö váût lyï maì khäng laìm aính hæåíng âãún læåüc âäö khaïi niãûm hay phaíi âënh
nghéa laûi caïc læåüc âäö con. Noï khàón âënh ràòng viãûc sæía âäøi vãö täø chæïc vãö Cå Såí Dæî
Liãûu váût lyï coï thãø aính hæåíng âãún tênh hiãûu cuía caïc chæång trçnh æïng duûng , nhæng
khäng bao giåì phaíi viãút laûi nhæîng chæång trçnh naìy.
- Âäüc láûp dæî liãûu logic (logical data independence) âæåüc âæa ra båíi mäúi quan hãû
giæîa khung nhçn vaì Cå Såí Dæî Liãûu khaïi niãûm. Khi sæí duûng Cå Såí Dæî Liãûu cuîng
coï thãø cáön phaíi sæía âäøi læåüc âäö khaïi niãûm, coï nhiãöu sæía âäøi læåüc âäö khaïi niãûm
khäng laìm aính hæåíng âãún caïc læåüc âäö con hiãûn coï, vaì cuîng coï mäüt säú sæía âäøi
khaïc seî cáön phaíi âënh nghéa laûi caïc aïnh xaû tæì læåüc âäö con âãún læåüc âäö khaïi niãûm .
træåìng håüp naìy khäng cáön thay âäøi chæång trçnh æïng duûng . Mäüt laoüi thay âäøi duy
nháút trong læåüc âäö khaïi niãûm buäüc phaíi thay âäøi læåüc âäö con laìviãûc xoïa caïc thäng
Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc
Trang 6
tin tæång æïng våïi caïc thäng tin âang täön taûi trong læåüc âäö con . Nhæîng thay âäøi
naìy âoìi hoíi phaíi thay âäøi chæång trçnh æïng duûng.
3. Caïc ngän ngæî cuía Cå Såí Dæî Liãûu
Trong caïc ngän ngæî láûp trçnh caïc chè thë mä taí vaì caïc chè thë thæûc hiãûn laì 2 bäü
pháûn cuía mäüt ngän ngæî, trong caïc Hãû quaín trë Cå Såí Dæî Liãûu hai chæïc nàng mä taí
vaì xæí lyï noïi chung âæåüc chia thaình 2 ngän ngæî khaïc nhau.
1. Ngän ngæî âënh nghéa dæî liãûu(data definition language - DDL)
Âáy khäng phaíi laì ngän ngæî thuí tuûc maì chè laì mäüt hãû thäúng kyï hiãûu âãø mä taí caïc
loaûi âäúi tæåüng vaì quan hãû giæîa chuïng .
Vê duû 3
Chuïng ta coï thãø âënh nghéa mäüt quan hãû mä taí mäüt chuyãún bay thæûc hiãûn båíi mäüt
haîng haìng khäng våïi âënh nghéa dæî liãûu nhæ sau:
CREAT TABLE FLIGHT(NUMBER: INT, DATE CHAR(6), SEAT:INT, FROM
: CHAR(3), TO : CHAR(3))
Âoaûn maî trãn laì mäüt thê duû vãö ngän ngæî âënh nghéa dæî liãûu SQL , noï mä taí quan hãû vaì
caïc thuäüc tênh cuìng våïi viãûc caìi âàût váût lyï cuía chuïng laì caïc säú nguyãn vaì chuäøi coï âäü daìi
cäú âënh.
2. Ngän ngæî thao taïc dæî liãûu
Caïc thao taïc trãn Cå Såí Dæî Liãûu âäöi hoíi phaíi coï mäüt ngän ngæî âàûc biãût goüi laì ngän ngæî
thao taïc dæî liãûu (data manipulation language- DML) hay coìn goüi laì ngän ngæî váún tin
(Query language).
Vê duû 4
Våïi Cå Såí Dæî Liãûu caïc chuyãún bay FLIGHT âæåüc âënh nghéa bàòng ngän ngæî SQL trong
vê duû 3, trong ngän ngæî SQL ta coï thãø thæûc hiãûn caïc thao taïc sau:
a. Giaím 4 chäø ngäöi coìn träúng trãn chuyãún bay 123 ngaìy 31 thaïng taïm
UPDATE FLIGHT
SET SEAT=SEAT-4
WHERE NUMBER=123 AND DATE=’AUG 31’
b. nháûp vaìo chuyãún bay 456 våïi 100 chäø ngäöi tæì haì näüi âi âaì nà ông ngaìy 21 thaïng taïm
INSERT INTO FLIGHT
VALUE(456, ‘AUG 21’, ‘HANOI’, ‘DANANG’)
c. Tçm xem trong Cå Såí Dæî Liãûu coï bao nhiãu chäø ngäöi coìn träúng trong chuyãún bay säú
999 ngaìy 24 thaïng 7
SELECT SEAT
FROM FLIGHT
WHERE NUMBER=999AND DATE=’JUL 24’
Chæång 1. TÄØNG QUAN VÃÖ CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn män Cå såí dæî liãûu Nguyãùn Vàn Chæïc
Trang 7
3. Ngän ngæî chuí
Caïc chè thë cuía caïc ngän ngæî thao taïc dæî liãûu thæåìng laì âån giaín hay noïi caïch khaïc laì
thæûc hiãûn nhæîng pheïp xæí lyï âån giaín, nhæng trong trong quaï trçnh thæûc hiãûn cäng viãûc
trãn Cå Såí Dæî Liãûu coï thãø phaíi xæí lyï caïc cäng viãûc phæïc taûp hån nhæ soaûn thaío vàn baín
baïo caïo , in áún ... vç váûy caïc Hãû quaín trë Cå Såí Dæî Liãûu cáön phaíi coï sæû häø tråü cuía caïc
ngän ngæî thuáûn tiãûn cho viãûc láûp trçnh nhæ C hay COBOL ... goüi laì caïc ngän ngæî chuí(
host language). Caïc lãûnh cuía DMLb âæåüc nhuïng vaìo ngän ngæî chuí theo hai caïch
a. Caïc lãûnh cuía DML âæåüc kêch hoaût bàòng viãûc goüi caïc thuí tuûc âæåüc cung cáúp båíi Hãû
quaín trë Cå Såí Dæî Liãûu
b. Caïc lãûnh naìy laì caïc chè thë trong ngän ngæî chuí âæåüc måí räüng
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 1
CHÆÅNG 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ CÅ SÅÍ DÆÎ LIÃÛU
2.1 MÄ HÇNH DÆÎ LIÃÛU
Âënh nghéa:
Mä hçnh dæî liãûu laì mäüt hãû hçnh thæïc toaïn hoüc gäöm hai pháön:
1. Mäüt hãû thäúng kyï hiãûu âãø mä taí dæî liãûu .
2. Táûp håüp caïc pheïp toaïn thao taïc trãn dæî liãûu âo.ï
Trong chæång naìy ta seî tçm hiãøu caïc mä hçnh âæåüc sæí duûng räüng raîi hiãûn nay laì Mä hçnh
THÆÛC THÃØ - QUAN HÃÛ ,mä hçnh QUAN HÃ, mä hçnh MAÛNG vaì mä hçnh PHÁN CÁÚP
2.2 MÄ HÇNH THÆÛC THÃØ -QUAN HÃÛ
Muûc âêch cuía mä hçnh thæûc thãø -quan hãû (Entity - relationship model) laì cho pheïp
mä taí læåüc âäö khaïi niãûm cuía thãú giåïi thæûc(xê nghiãûp, cå quan...) maì khäng cáön chuï yï âãún
tênh hiãûu quaí hoàûc thiãút kãú Cå Såí Dæî Liãûu váût lyï. Âáy laì mä hçnh trung gian âãø chuyãøn
âäøi qua caïc mä hçnh dæî liãûu khaïc nhæ mä hçnh quan hãû , mä hçnh maûng, mä hçnh phán
cáúp...
Sau âáy laì caïc khaïi niãûm sæí duûng trong mä hçnh naìy:
2.2.1THÆÛC THÃØ
Thuáût ngæî “thæûc thãø ”(entity)khäng âæåüc âënh nghéa mäüt caïch hçnh thæïc , cuîng
giäúng nhæ caïc thuáût ngæî “Âiãøm” vaì “âæåìng” trong hçnh hoüc, Chuïng ta coï thãø hiãøu ràòng
thæûc thãø laì mäüt sæû váût hay mäüt caïi gç âoï täön taûi vaì phán biãût âæåüc. Thê duû mäùi con ngæåìi
laì mäüt thæûc thãø , mäùi chiãúc xe maïy cuîng laì mäüt thæûc thãø , chuïng ta cuîng coï thãø noïi mäùi
con kiãún laì mäüt thæûc thãø nãúu chuïng ta coï caïch phán biãût âæåüc con naìy våïi con khaïc( chàón
haûn ta âaïnh mäüt säú cæûc nhoí trãn mäùi con kiãún).
Khaïi niãûm vãö “tênh phán biãût âæåüc” âäöng nháút våïi khaïi niãûm “ nháûn daûng âäúi
tæåüng” , vç lyï do naìy maì mä hçnh thæûc thãø -quan hãû thæåìng âæåüc xem nhæ laì mäüt mä hçnh
hæåïng âäúi tæåüng.
2.2.2TÁÛP THÆÛC THÃØ
Mäüt nhoïm bao gäöm caïc thæûc thãø “tæång tæû” taûo ra mäüt táûp thæûc thãø (entity set)
vê duû
1. Táút caí moüi ngæåìi laì mäüt táûp thæûc thãø
2. Táút caí caïc Giaïo viãn thuäüc ÂHKT&QTKD laì mäüt táûp thæûc thãø
3. táút caí caïc sinh viãn khoa TC_THÄÚNG KÃ cuîng laì mäüt táûp thæûc thãø
Âãø xaïc âënh táûp thæûc thãø cáön phaíi xaïc âënh mäüt táûp hæîu haûn caïc tênh cháút khaïc
nhau cuía caïc thæûc thãø trong táûp thæûc thãø âoï.
Mäüt trong nhæîng bæåïc then chäút trong viãûc læûa choün caïc mä hçnh Cå Såí Dæî Liãûu
chæïa thäng tin phaín aïnh vãö mäüt hãû thäúng naìo âoï laì viãûc choün caïc táûp thæûc thãø trong hãû
thäúng âoï.
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 2
2.2.3 THUÄÜC TÊNH vaì KHOÏA
Mäüt táûp thæûc thãø coï mäüt táûp caïc tênh cháút âàûc træng goüi laì táûp thuäüc tênh(atribute),
mäùi thæûc thãø âæåüc xaïc dënh båíi mäüt bäü dæî liãûu cuía caïc thuäüc tênh thãø hiãûn thäng tin vãö
thuäüc tênh âoï. ÆÏng våïi mäùi thuäüc tênh coï mäüt táûp giaï trë maì thuäüc tênh âoï coï thãø nháûn goüi
laì miãön(domain) giaï trë cuía thuäüc tênh âoï.
Vê duû miãön giaï trë cuía thuäüc tênh Tuäøi laì (0,120), cuía thuäüc tênh Tãn laì caïc chuäøi
kyï tæû coï âäü daìi täúi âa 30 kyï tæû , hay domain cuía thuäüc tênh Giåïi tênh laì { Nam, Næî},...
Viãûc choün caïc thuäüc tênh laì bæåïc quan troüng trong thiãút kãú så âäö Cå Såí Dæî Liãûu.
Mäüt thuäüc tênh hay 1 táûp täúi thiãøu caïc thuäüc tênh maì giaï trë cuía noï nháûn daûng 1 thæûc thãø
mäüt caïch duy nháút trong táûp thæûc thãø goüi laì khoïa (key) cuía táûp thæûc thãø .
vê duû 5
Xeït táûp thæûc thãø Sinh viãn cuía khoa TC_THÄÚNG KÃ våïi caïc thuäüc tênh Htãn,
ngaìy sinh, Låïp, Âchè
ta coï thãø choün Htãn laìm khoïa nãúu xaïc âënh âæåüc ràòng trong khoa khäng coï 2 ngæåìi naìo
truìng hoü vaì tãn nhau, ngæåüc laûi ta coï thãø choü thãm caïc thuäüc tênh khaïc âãø phán biãût nhæ
ngaìy sinh âãø laìm khaïo cho táûp thæûc thãø sinh viãn .
2.2.4.CAÏC MÄÚI QUAN HÃÛ
Cho caïc táûp thæûc thãø E1, E2,..., Ek. Mäüt mäúi quan hãû R giæîa caïc táûp thæûc thãø laì mäüt
danh saïch coï thæï tæû giæîa caïc táûp thæûc thãø âoï, Danh saïch caïc táûp thæûc thãø khäng nháút thiãút
phaíi phán biãût. Coï nghéa laì mäüt táûp thæûc thãø coï thãø xuáút hiãûn nhiãöu hån mäüt láön trong
Quan hãû.
R=
trong âoï Fi Î{ E1, E2,..., Ek}. Mäùi hiãûn haình cuía mäúi quan hãû R laì mäüt táûp caïc bäü <e1,
e2,...,en> trong âoï ei ÎFi goüi laì n_bäü.
Cho 2 táûp thæûc thãø E1 ,E2, R laì mäúi quan hãû giæîa E1 vaì E2 . ta coï caïc âënh nghéa
sau:
1.Quan hãû ISA (is a)
Nãúu mäùi thæûc thãø cuía E1 cuîng laì thæûc thãø cuía E2 thç quan hãû R goüi laì mäúi quan hãû
ISA
E1 ISA E2 âoüc laì E1laì “mäüt” E2.
vê duû:
E2 laì táûp thæûc thãø caïc sinh viãn khoa THÄÚNG KÃ-TIN HOÜC
E1 laì táûp thæûc thãø caïc sinh viãn khoa THÄÚNG KÃ-TIN HOÜC coï hoüc bäøng nàm hoüc 98-99
khi âoï ta coï E1 ISA E2.
Muûc âêch cuía mäúi quan hãû naìy laì caïc thæûc thãø cuía táûp thæûc thãø E1 thæìa hæåíng caïc thuäüc
tênh cuía E2 ngoaìi ra E1 coìn coï nhæîng thuäüc tênh riãng cuía mçnh. Vê duû trong cäng ty coï
táûp thæûc thãø NHÁN_VIÃN( MAÎNV, TÃNNV, TUÄØI, ÂËA_CHÈ,LÆÅNG). Nãúu cäng ty
thaình láûp mäüt âäüi boïng chuyãön thç täút nháút nãn thiãút kãú mäüt táûp thæûc thãø PLAY(NÀM_
táûp thæûc thãø PLAY coï mäúi quan hãû ISA våïi táûp thæûc thãø NHÁN_VIÃN. Nhæ váûy mäùi thæûc
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 3
thãø trong THI_ÂÁÚU, CHIÃÖU_CAO) vaì táûp thæûc thãø PLAY cuîng coï táút caí caïc thuäüc tênh
cuía táûp thæûc thãø NHÁN_VIÃN nhæng chè coï nhæîng thæûc thãø trong táûp thæûc thãø PLAY måïi
coï caïc thuäüc tênh nhæ NÀM_THI_ÂÁÚU, CHIÃÖU_CAO.
2. Mäúi quan hãû mäüt_mäüt(one_one relationship)
Nãúu mäùi thæûc thãø cuía E1 coï quan hãû våïi âuïng 1 thæûc thãø cuía E2 vaì ngæåüc laûi, thç
mäúi quan hãû naìy goüi laì mäúi quan hãû mäüt_mäüt giæîa E1 vaì E2.
Vê duû Mäúi quan hãû QUAÍN_LY Ï giæîa hai táûp thæûc thã LAÎNH_ÂAÛO vaì táûp thæûc thãø
PHOÌNG_BAN laì mäúi quan hãû Mäüt_mäüt nãúu giaí thiãút ràòng mäüt laînh âaûo chè quaín lyï mäüt
phoìng vaì mäüt phoìng chè coï mäüt ngæåìi quaín lyï.
3. Mäúi quan hãû nhiãöu_mäüt(many-one relationship)
Nãúu mäùi thæûc thãø trong E1 coï quan hãû våïi nhiãöu nháút 1 thæûc thãø trong E2, vaì mäùi
thæûc thãø trong E2 coï thãø khäng coï quan hãû våïi thæûc thãø naìo hoàûc coï quan hãû våïi 1 hoàûc
nhiãöu thæûc thãø trong E1. Mäúi quan hãû naìy âæåüc goüi laì mäúi quan hãû nhiãöu_mäüt tæì E1 vaìo
E2.
Vê duû: mäúi quan hãû giæîa hai táûp thæûc thãø NHÁN_VIÃN vaì PHOÌNG_BAN laì mäúi
quan hãû nhiãöu_mäüt tæì NHÁN_VIÃN vaìo PHONG_BAN, coï nghéa laì mäùi nhán viãn chè
laìm viãûc trong mäüt phoìng vaì mäùi phoìng coï thãø coï nhiãöu nhán viãn laìm viãûc, cuîng coï
træåìng håüp mäüt vaìi nhán viãn khäng thuäüc mäüt phoìng naìo caí nhæ giaïm âäúc.
Khaïi niãûm mäúi quan hãû nhiãöu_mäüt âæåüc täøng quaït hoïa cho ba táûp thæûc thãø tråí lãn
nhæ sau:
Nãúu coï mäüt mäúi quan hãû R giæîa caïc táûp thæûc thãø E1,E2,...,Ek vaì våïi caïc thæûc thãø
trong táút caí caïc táûp thæûc thãø træì Ei chè coï nhiãöu nháút mäüt thæûc thãø cuía Ei quan hãû våïi
chuïng , thç ta goüi R laì mäúi quan hãû nhiãöu_mäüt tæì E1,...,Ei-1 ,...,Ek vaìo Ei.
4. mäúi quan hãû nhiãöu_nhiãöu( many_many relationship)
Trong mäúi quan hãû naìy khäng coï mäüt haûn chãú trãn táûp caïc k_bäü cuía caïc thæûc thãø
khi xuáút hiãûn trong caïc quan hãû . thê duû mäúi quan hãû CHA_MEÛ_CUÍA cuía táûp thæûc thãø
NGÆÅÌI laì mäúi quan hãû nhiãöu nhiãöu, vç mäùi âæïa treí coï thãø tçm âæåüc cha meû cho chuïng vaì
mäüt ngæåìi coï thãø coï säú læåüng con tuìy yï.
vê duû:
E1: táûp caïc sinh viãn cuía khoa TC_THÄÚNG KÃ
E2 táûp håüp caïc män thãø thao
R laì quan hãû thêch thãø thao laì mäúi quan hãû nhiãöu_nhiãöu
Trong thæûc tãú caïc hãû quaín trë cå såí dæî liãûu khäng häù tråü mäúi quan hãû naìy, âãø biãøu diãùn
mäúi quan hãû naìy trong thiãút kã thäng thæåìng ngæåìi ta taïch thaình caïc mäúi quan hãû nhiãöu
_mäüt
2.2.5 Så âäö mäúi quan-hãû thæûc thãø
Âãø mä taí thäng tin vãö caïc táûp thæûc thãø vaì caïc mäúi quan hãû giæîa chuïng ngæåìi ta sæí
duûng så âäö goüi laì så âäö mäúi quan hãû thæûc thãø. Trong så âäö naìy:
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 4
1. Hçnh chæî nháût biãøu diãùn táûp thæûc thãø coï ghi tãn bãn trong
2. hçnh Oval biãøu diãùn thuäüc tênh, ghi tãn thuoüc tênh bãn trong
3. Hçnh thoi biãøu diãùn mäúi quan hãû giæîa caïc táûp thæûc thãø ghi tãn mäúi quan hãû bãn trong.
4. Nãúu R laì mäúi quan hãû mäüt_mäüt giæîa 2 táûp thæûc thãø E1 vaì E2 thç veî caïc caûnh âënh hæåïng
tæì hçnh Oval nhaîn R âãún caïc hçnh chæî nháût nhaî E1 vaì E2.
5. Nãúu R laì mäúi quan hãû nhiãöu_mäüt tæì vaìo Ek thç veî caïc caûnh khäng âënh
hæåïng tæì hçnh thoi nhaîn R âãún caïc HCN coï nhaîn E1,E2,..,Ek-1 vaì veî caûnh âënh hæåïng tæì
hçnh thoi coï nhaîn R vaìo HCN nhaîn Ek.
6 Nãúu R laì mäúi quan hãû nhiãöu_nhiãöu giæîa E1 vaì E2 thç veî caïc caûnh khäng âënh hæåïng tæì
hçnh thoi nhaîn R âãún hçnh chæî nháût nhaîn E1 vaì E2.
Vê duû: så âäö sau trçnh baìy mäüt så âäö âån giaín, gäöm 3 táûp EMPS, DETPS vaì
MANAGERS
Hai táûp EMPS vaì DEPTS liãn kãút nhåì mäúi quan hãû WORK IN , âáy laì mäúi quan hãû
nhiãöu_mäüt tæì EMPS vaìo DEPTS.
Táûp thæûc thãø DEPTS vaì MANAGERS liãn kãút våïi nhau qua mäúi quan hãû MANAGES.
Âáy laì mäúi quan hãû mäüt mäüt, Mäüt xuáút hiãûn cuía mäúi quan hãû naìy laì mäüt bäü(d,p) noïi ràòng
vàn phoìng p âæåüc quaín lyï båíi nhán viãn d.
Hoàûc så âäö quan hãû _thuûc thãø sau:
Giæîa táûp thæûc thãø PERSONS vaì PERSONS våïi mäúi quan hãû PARENT_OF. Caûnh thæï nháút
biãøu diãùn con coìn táûp thæï hai biãøu diãùn cha. Giaï trë hiãûn haình cuía mäúi quan hãû
PARENT_OF laì táûp caïc càûp (p1,p2) noïi ràòng p2 laì cha cuía p1
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 5
Vê duû: Sau dáy laì mäüt vê duû tæång âäúi âáöy âuí, så âäö mäúi quan hãû thæûc thãø sau âáy täø chæïc
hãû thäúng thäng tin cáön thiãút âãø chè huy hoaût âäüng cuía siãu thë YVCB. Trong så âäö coï caïc
táûp thæûc thãø vaì caïc mäúi quan hãû sau:
1.NHAN_VIEN: táûp thæûc thãø bao gäöm caïc nhán viãn laìm viãûc trong siãu thë , caïc thuäüc
tênh :
TENNV
MANV
LUONG
2. NGUOI_QL Ngæåìi quaín lyï goìm caïc træåíng phoìng trong siãu thë
3. GIAN_HANG: táûp thæûc thãø caïc gian haìng trong siãu thë goìm caïc thuäüc tênh
TEN_GH
MA_GH
4. MAT_HANG: táûp thæûc thãø caïc màût haìng baïn trong siãu thë, caïc thuäüc tênh
TEN_MH
MA_MH
5. NGUOI_CC: táûp thæûc thãø caïc ngæåìi cung cáúp caïc màût haìng cho siãu thë, caïc thuäüc tênh
TEN_NCC
DIA_CHI_NCC
6. DON_DATH: táûp thæûc thãø gäöm caïc âån dàût haìng cuía khaïch haìng, gäöm caïc thuäüc tênh
SO_HOA_DON
NGAY_DAT_HANG
7.KHACH_HANG: táûp thæûc thãø caïc khaïch haìng cuía siãu thi, gäöm caïc thuäüc tênh
TEN_KH
DIA_CHIKH
TAI_K_KH
Caïc mäúi quan hãû
8. LAM_VIEC: quan hãû laìm viãûc giæîa táûp thæûc thãø NHAN_VIEN vaì táûp thæûc thãø
GIAN_HANG ta noïi: “nhán viãn x laìm viãûc åí gian haìng y”
9. QUAN_LY “: mäúi quan hãû quaín lyï giæîa táûp thæûc thãø GIAN_HANG vaì NGUOI_QL, ta
noïi : “ gian haìng x âæåüc quaín lyï båíi ngæåìi quaín lyï y”
10. CHUA: quan hãû chæïa giæîa MAT_HANG våïi GIAN_HANG: ta noïi” màût haîng coï
trong gian haìng y”
11. CUNG_CAP: quan hãû cung cáúp giæîa NGUOI_CC våïi MAT_HANG ta noïi” màût
haìng x âæåüc cung cáúp båíi ngæåìi cung cáúp y”.
12. DAT_HANG: quan hãû âàût haìng giæîa KHACH_HANG våïi DON_DATH, ta noïi “ âån
âàût haìng x âæåüc âàût båíi khaïch haìng y”
13. BAO_GOM: quan hãû bao gäöm giæuîa DON_DATH våïi MAT_HANG , ta noïi “ âån
âàût haìng x âàût màût haìng y våïi säú læåüng z”
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 6
Så âäö mäúi quan hãû -thæûc thãø cuía YVCB nhæ sau
(Hçnh veî)
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 7
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 8
2.3 MÄ HÇNH DÆÎ LIÃÛU QUAN HÃÛ
Nhæ âaî noïi, mä hçnh quan hãû-thæûc thãø khäng phaíi laì mä hçnh xæí lyï, noï mä hçnh
hoïa thãú giåïi thæûc åí mæïc khaïi niãûm. Âãø læu træî thäng tin trãn maïy vaì duìng caïc hãû quaín
trë Cå Såí Dæî Liãûu thao taïc trãn chuïng thç dæî liãûu phaíi âæåüc biãøu diãùn dæåïi daûng khaïc.
Hiãûn nay mä hçnh dæî liãûu âæåüc sæí duûng räüng raîi nháút laì mä hçnh dæî liãûu quan hãû(
Database Relationship Model) âæåüc E.F Code âãö xuáút nàm 1970 vaì ngaìy caìng coï nhiãöu
hãû quían trë Cå Såí Dæî Liãûu cho mä hçnh naìy goüi laì caïc hãû quaín trë Cå Såí Dæî Liãûu quan
hãû . Mä hçnh dæî liãûu quan hãû coï æu âiãøm laì tênh âäüc láûp dæî liãûu cao vaì mä hçnh âæåüc xáy
dæûng dæûa trãn lyï thuyãút táûp håüp nãn dãù hiãøu vaì dãù biãøu diãùn bàòng toaïn hoüc.
2.3.1 Âënh nghéa quan hãû
Quan hãû âæåüc âënh nghéa dæûa trãn lyï thuyãút táûp håüp vaì têch Âãö_caïc cuía caïc miãön.
Miãön( Domain) laì táûp caïc giaï trë hæîu haûn hoàûc vä haûn.
Vê duû: Táûp caïc säú nguyãn laì mäüt miãön, táûp caïc xáu kyï tæû coï âäü daìi 20 laì mäüt miãön, hoàûc
táûp{0,1} laì mäüt miãön...
Cho k miãön D1,D2,...,Dk. Khi âoï têch Âãö_caïc cuía k miãön D1,D2,...,Dk kyï hiãûu laì
D1xD2x...xDk laì táûp caïc bäü coï daûng (v1,v2,...,vk) trong âoï vi thuäüc Di, mäùi bäü coï k thaình
pháön goüi laì k_bäü(k_tupe)
vê duû: Våïi k=2, D1={0,1},D2={a,b,c}
Khi âoï D1xD2={(0,a),(0,b),(0,c),(1,a),(1,b),(1,c)}
tæì âoï quan hãû âæåüc âënh nghéa nhæ sau:
Mäüt quan hãû (Relation)laì mäüt táûp håüp con báút kyì cuía têch Âãö_caïc cuía mäüt hoàûc
nhiãöu miãön. Nhæ váûy mäüt quan hãû coï thãø laì vä haûn nhæng åí âáy luän giaí thiãút ràòng quan
hãû laì hæîu haûn.
vê duû Våïi D1 vaì D2 trong vê duû trãn thç táûp {(0,a),(0,c),(1,b)} laì mäüt quan hãû , mäüt táûp
con cuía têch Âãö_caïc 2 miãön D1 vaì D2
Thaình pháön cuía quan hãû goüi laì bäü (tupe), quan hãû laì táûp con cuía têch Âãö_caïc k
miãön goüi laì quan hãû k_ngäi(k_Arity). Mäùi bäü cuía quan hãû k_ngäi gäöm k thaình pháön goüi
laì k_bäü coï daûng (v1,v2,...,vk) trong âoï vi thuäüc Di.
Trong mä hçnh dæî liãûu quan hãû , mäùi quan hãû n_ngäi âæåüc biãøu diãùn båíi mäüt baíng
n cäüt. Trong baíng mäùi cäüt tæång æïng våïi mäüt thaình pháön cuía quan hãû goüi laì thuäüc tênh vaì
coï tãn laì tãn cuía thaình pháön tæång æïng trong quan hãû. Mäùi bäü trong quan hãû tæång æïng
våïi 1 doìng cuía baíng.
Tãn quan hãû cuìng våïi danh saïch caïc thuäüc tênh goüi laì læåüc âäö quan hãû (Relational
Scheme). Nãúu quan hãû coï tãn laì REL vaì coï caïc thuäüc tênh laì A1,A2,...,Ak thç læåüc âäö
quan hãû tæång æïng laì REL(A1,A2,...,Ak).
Vê duû: Thäng tin vãö caïc thaình phäú âæåüc læu træî trong læåüc âäö quan hãû coï tãn laì
CITY_INFO gäöm caïc thuäüc tênh nhæ TÃN_TP, SÄÚ_TRÆOÌNG_ÂH, SÄÚ_DÁN. Ta tháúy
ràòng âáy laì læåüc âäö quan hãû 3_ngäi(Gäöm 3 thuäüc tênh )khi âoï læåüc âäö quan hãû tæång æïng
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 9
laì : CITY_INFO(TÃN_TP, SÄÚ_TRÆO ÌNG_ÂH, SÄÚ_DÁN) vaì (HUÃÚ, 6,2.000.000) laì
mäüt bäü cuía læåüc âäö quan hãû . Vaì khi âoï
TÃN_TP SÄÚ_TRÆOÌNG_ÂH SÄÚ_DÁN
HUÃÚ 6 2.000.000
HAÌ NÄÜI 12 5.000.000
ÂAÌ NÀÔNG 5 3.000.000
Laì mäüt quan hãû cuía læåüc âäö quan hãû CITY_INFO, laì táûp con cuía têch âãö caïc 3
miãön TÃN_TP, SÄÚ_TRÆOÌNG_ÂH, SÄÚ_DÁN. ÆÏng våïi mäùi læåüc âäö quan hãû coï nhiãöu
quan hãû goüi laì caïc hiãûn haình(Current Instance) cuía læåüc âäö quan hãû âoï.
2.3.2 Biãøu diãùn så âäöì Quan Hãû - Thæûc Thãø trong mä hçnh Quan Hãû
Táûp caïc læåüc âäö quan hãû duìng âãø biãøu diãùn thäng tin cuía mäüt hãû thäúng âæåüc goüi laì
læåüc âäö Cå Såí Dæî Liãûu quan hãû . (Relational Database Scheme)vaì nhæîng giaï trë hiãûn haình
cuía caïc quan hãû tæång æïng taûo ra Cå Såí Dæî Liãûu quan hãû.
Giaí sæí caïc thäng tin cuía hãû thäúng âæåüc biãøu diãùn båíi 1 så âäö vãö mäúi quan hãû thæûc
thãø thç ta coï thãø thiãút láûp læåüc âäö Cå Såí Dæî Liãûu quan hãû cho hãû thäúng tæì så âäö mäúi
quan hãû thæûc thãø dæûa trãn caïc nguyãn tàõt sau:
1. Mäüt táûp thæûc thãø E trong så âäö quan hãû -thæûc thãø âæåüc biãøu diãùn båíi mäüt læåüc âäö quan
hãû coï tãn laì E vaì coï caïc thuäüc tênh laì táûp táút caí caïc thuäüc tênh cuía táûp thæûc thãø E.Mäùi
thæûc thãø trong táûp thæûc thãø tæång æïng våïi mäüt bäü trong læåüc âäö quan hãû tæång æïng.
Nãúu E laì mäüt táûp thæûc thãø maì caïc thæûc thãø cuía noï âæåüc âënh nghéa thäng qua mäüt
mäúi quan hãû våïi mäüt táûp thæûc thãø F khaïc thç læåüc âäö quan hãû tæång æïng coï tãn laì E vaì coï
thuäüc tênh laì caïc thuäüc tênh cuía F duìng laìm khoïa cho E
2.Mäüt mäúi quan hãû R giæîa caïc táûp thæûc thãø E1,E2,...,Ek âæåüc biãøu diãùn bàòng mäüt læåüc âäö
quan hãû coï tãn laì R vaì coï caïc thuäüc tênh laì caïc thuäüc tênh khoïa cuía E1,E2,...,Ek. ÅÍ âáy coï
thãø coï sæû âàût tãn laûi caïc thuäüc tênh nãúu coï hai hoàûc nhiãöu táûp thæûc thãø coï caïc thuäüc tênh
truìng tãn âãø âaím baío ràòng giæîa caïc táûp thæûc thãø khäng coï caïc thuäüc tênh truìng tãn.
Mäùi bäü t trong quan hãû naìy tæång æïng våïi mäüt danh saïch caïc thæûc thãø (e1,e2,...,ek) trong
âoï ei thuäücEi.
Âãø minh hoüa, thê duû sau âáy seî chuyãøn så âäö thæûc quan hãû -thæûc thãø cuía siãu thë
YVCB sang læåüc âäö Cå Såí Dæî Liãûu quan hãû:
Læåüc âäö cho caïc táûp thæûc thãø
1. EMPS(ENAME, SALARY)
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 10
2. MANAGERS(ENAME)
3. DEPTS(DNAME, DEPT#)
4. SUPPLIERS(SNAME, SADDR)
5. ITEMS(INAME, ITEM#)
6. ORDERS(O#, DATE)
7. CUSTUMERS(CNAME, CADDR, BALANCE)
Læåüc âäö cho caïc mäúi quan hãû
8. WORK_IN(ENAME, DNAME)
9. MANAGES(ENAME, DNAME)
10. CARRIES(INAME, DNAME)
11. SUPPLIES(SNAME, INAME, PRICE)
12. INCLUDES(O#, INAME, QUANLITY)
13. PLACED_BY(O#, CNAME)
2.3.3 Khoïa cuía quan hãû (Keys of relation)
Cuîng giäúng nhæ caïc táûp thæûc thãø , quan hãû cuîng coï khoïa âãø phán biãût caïc bäü trong
quan hãû .
Táûp con S caïc thuäüc tênh cuía quan hãû R goüi laì khoïa cuía R nãúu thoía maîn hai têch
cháút sau:
1. Khäng coï hiãûn haình naìo cuía R coï hai bäü truìng nhau trãn táút caí caïc thuäüc tênh cuía S
nhæng khäng phaíi laì mäüt bäü.
2. Khäng coï táûp con tháût sæû naìo cuía S coï têch cháút (1).
Coï nghéa laì nãúu S laì khoïa cuía quan hãû R thç trong thiãút kãú Cå Såí Dæî Liãûu åí mæïc váût lyï
khäng cho pheïp læu træî hai bäü maì caïc giaï trë cuía chuïng giäúng nhau trãn S.
Vê duû:
Trong læåüc âäö quan hãû SUPPLIES(SNAME, INAME,PRICE) coï khoïa gäöm hai
thuäüc tênh SNAME vaì INAME. Nãúu trong mäüt hiãûn haình naìo âoï cuía læåüc âäö quan hãû
SUPPLIES täön taûi hai bäü (s,i,p1) vaì (s,i,p2) coï nghéa laì ngæåìi cung cáúp s cung cáúp màût
haìng i våïi hai giaï laì p1 vaì p2 nhæ váûy dæî liãûu bë läùi trong træåìng håüp naìy vç khäng thoía
maîn tênh cháút khoïa.
Mäüt âiãöu quan troüng cáön phaíi nhåï laì tênh cháút khoïa chè phuû thuäüc vaìo læåüc âäö maì
khäng phuû thuäüc vaìo mäüt hiãûn haình naìo cuía læåüc âäö âoï.
Vãö nguyãn tàõt âãø phán biãût caïc bäü trong quan hãû thç mäùi quan hãû phaíi coï êt nháút
mäüt khoïa, nhæ váûy mäüt læåüc âäö coï thãú coï nhiãöu khoïa. Nãúu læåüc âäö quan hãû coï nhiãöu khoïa
thç ta choün mäüt khoïa laìm khoïa chênh(Primary) vaì caïc khoïa coìn laûi âæåüc goüi laì khoïa æïng
cæí(indicate).
Nguyãn tàõt thaình láûp khoïa
1. Nãúu læåüc âäö quan hãû âæåüc thaình láûp tæì mäüt táûp thæûc thãø thç khoïa cuía táûp thæûc thãø âoï
âæåüc láúy laìm khoïa cho læåüc âäö quan hãû.
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 11
2. Nãúu læåüc âäö quan hãû âæåüc thaình láûp tæì mäúi quan hãû nhiãöu_nhiãöu giæîa caïc táûp thæûc thãø
E1 vaì E2 thç táûp táút caí caïc thuäüc tênh khoïa cuía E1 vaì E2 âæåüc duìng laìm khoïa cho læåüc
âäö quan hãû .
3. Nãúu læåüc âäö quan hãû âæåüc thaình láûp tæì mäúi quan hãû mäüt_mäüt giæîa caïc táûp thæûc thãø E1
vaì E2 thç táûp táút caí caïc thuäüc tênh khoïa cuía E1 hoàûc khoïa E2 coï thãø láúy laìm khoïa cho
læåüc âäö quan hãû .
4. Nãúu læåüc âäö quan hãû âæåüc thaình láûp tæì mäúi quan hãû nhiãöu_mäüt tæì E1,E2,...,Ek-1 vaìo
Ek thç táûp táút caí thuäüc tênh khoïa cuía E1,E2,...,Ek-1 âæåüc duìng laìm khoïa cho læåüc âäö quan
hãû .
Báy giåì aïp duûng caïc nguyãn tàõt trãn âãø xaïc âënh khoïa cho 13 læåüc âäö quan hãû
âæåüc thiãút láûp åí trãn. Khoïa chênh in âáûm, khoïa æïng cæí in nghiãn.
1. EMPS(ENAME, SALARY)
2. MANAGERS(ENAME)
3. DEPTS(DNAME, DEPT#)
4. SUPPLIERS(SNAME, SADDR)
5. ITEMS(INAME, ITEM#)
6. ORDERS(O#, DATE)
7. CUSTUMERS(CNAME, CADDR, BALANCE)
Læåüc âäö cho caïc mäúi quan hãû
8. WORK_IN(ENAME, DNAME)
9. MANAGES(ENAME, DNAME)
10. CARRIES(INAME, DNAME)
11. SUPPLIES(SNAME, INAME, PRICE)
12. INCLUDES(O#, INAME, QUANLITY)
13. PLACED_BY(O#, CNAME)
2.3.3 Caïc pheïp toaïn trãn mä hçnh dæî liãûu quan hãû
Coï hai loüai pheïp toaïn :
1. Âaûi säú quan hãû (relatinal algebra)
2. Pheïp tênh logic
Trong pháön naìy chuïng ta chè tçm hiãøu caïc pheïp toaïn âaûi säú quan hãû
Pheïp toaïn âaûi säú quan hãû coï caïc toaïn haûng laì caïc hàòng quan hãû , biãún quan hãû
Coï 5 pheïp toaïn cå baín laì pheïp håüp(Union), Træì(difference), Têch Descarstes, Pheïp
chiãúu(Projection), Pheïp choün(Selection) vaì mäüt säú pheïp toaïn måí räüng tæì 5 pheïp toaïn cå
baín trãn. Sau âáy chuïng ta tçm hiãøu cuû thãø tæìng pheïp toaïn.
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 12
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 13
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 14
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 15
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 16
Mäüt säú vê duû æïng duûng caïc pheïp toaïn Âaûi säú quan hãû
Giaí sæí trong caïc læåüc âäö quan hãû trong mä hçnh CSDL quan hãû YVCB, gheïp mäüt säú
quan hãû thêch håüp âãø âæåüc âãø âæåüc caïc læåüc âäö quan hãû sau:
NHAN_VIEN(TENNV,LUONG)
GIAMH(SOGH, TENGH,NGUOIQL)
MATH(MAMH, TENMH, TENGH)
DONDH(SOHD, NGAYHD, TENKH)
KHACHH(TENKH, DCHI,TAIK)
CUNGCAP(TENCC,TENH,GIA)
CHITIET(SOHD,TENH,SOLUONG)
Chuïng ta coï thãø sæí duûng caïc pheïp toaïn âaûi säú quan hãû âãø traí låìi caïc cáu hoíi sau:
1.tçm ngæåìi cung cáúp cung cáúp saïch cå såí dæî liãûu (CSDL)
PTENCC(sTENH=’saïch CSDL’ (CUNGCAP))
2.Tçm xem nhaì cung cáúp A, cung cáúp nhæîng màût haìng naìo giaï tháúp hån 1000
PTENH(sTENCC=’A’ AND GIA <1000 (CUNGCAP))
3. Xaïc âënh xem khaïch haìng naìo coï âàût mua quáng JEAN
PTENKH(sTENH=’ JEAN’ (DONDH ¥ CHITIET))
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 17
2.4 Mä hçnh dæî liãûu maûng
Mä hçnh dæî liãûu maûng ( network model) laì mä hçnh quan hãû thæcû thãø. Trong âoï chè coï caïc
mäúi quan hãû hai ngäi nhiãöu_mäüt. Trong mä hçnh dæî liãûu maûng ngæåìi ta thæåìng duìng caïc
âäúi tæåüng sau:
- Kiãøu baíng ghi thay cho táûp thæûc thãø
- Format baín ghi thay cho táûp caïc thuäüc tênh
- Mäùi baín ghi thay cho mäüt bäü giaï trë caíu caïc thuäüc tênh
Nãúu so saïnh våïi mä hçnh quan hãû ta tháúy tæång æïng nhæ sau
Mä liãûu maûng Mä hçnh quan hãû
Kiãøu baíng ghi Tãn quan hãû
Format baín ghi Læåüc âäö quan hãû
Baín ghi Bäü cuía quan hãû
2.4.1 Caïc mäúi näúi ( Link) : Âãø biãøu diãùn caïc mäúi quan hãû hai ngäi nhiãöu _ mäüt giæîa hai
âäúi tæåüng ngæåìi ta sæí duûng caïc mäúi näúi(link). Hay noïi caïch khaïc, thay cho 1 quan hãû hai
ngäi R nhiãöu _1 tæì kiãøu baín ghi T1 âãún T2, ngæåìi ta veî mäüt caûnh âënh hæåïng coï nhaîn R
tæì T1 âãún T2 trong md quan hãû thæûc thãø
Trong mä hçnh maûng ngæåìi ta biãøu diãùn nhæ sau:
2.4.2Chuyãøn âäøi Så âäö quan hãû _thæûc thãø thaình Mä hçnh maûng
Âãø xáy dæûng mä hçnh maûng tæì mä hçnh quan hãû _thæûc thãø ta aïp duûng caïc quy æåïc sau:
1. Mäùi táûp thæûc thãø âæåüc thay bàòng mäüt kiãøu baín ghi
2. Caïc thuäüc tênh cuía táûp thæûc thãø tråí thaình Format baín ghi
3. Caïc mäúi quan hãû nhiãöu_mäüt R âæåüc biãøu diãùn bàòng caïc link nhaîn R
4. Âäúi våïi caïc quan hãû nhiãöu ngäi giæîa E1,E2,..., En ngæåìi ta thãm kiãøu baín ghi ligic T
våïi Format cuía noï khäng quan troüng, âäöng thåìi veî caïc caïc cung âënh hæåïng tæì T âãún
E1, E2, ..., En
T1 T2
T1 T2
R
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 18
Chuyãøn sang mä hçnh maûng
Trong træåìng håüp R laì mäúi quan hãû nhiãöu _mäüt tæì E1,E2,..., En-1 vaìo En thç sæí duûng En
thay cho T
Chuyãøn thaình
E1 E2
E3
E4
T
E1
E3 E2
E4
E1 E2
E3
E4
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 19
Vê duû chuïng ta aïp duûng nhæîng quy tàõt trãn âãø chuyãøn så âäö quan hãû thæûc thãø cuía siãu thë
YVCB thaình mä haình maûng nhæ sau.
LV QL
Chæïa N-CC
Chuï yï Format baín ghi T âæåüc âæa vaìo coï thãø räùng, tuy nhiãn ngæåìi ta thæåìng âæa vaìo caïc
træåìng trong format âãø chæïa caïc thäng tin cáön thiãút.
Vê duû: Cho hai táûp thæûc thãø sinh viãn bao gäöm caïc sinh viãn cuía khoa thäúng kã tin hoc
våïi caïc thuäüc tênh Tãn, tuäøi, âëa chè.
Vaì táûp thæûc thãø ngoaûi ngæî bao gäöm caïc låïp hoüc ngoaûi ngæî ban âãm do trung tám ngoaûi
ngæî täø chæïc coï caïc thuäüc tênh låïp, sè säú, thåìi gian
Giæîa haii thæûc thãø SINH VIEN vaì NGOAINGU coï mäúi quan hãû âàng kyï hoüc chè ra sinh
viãn naìo âàng kyï hoüc låïp ngoaûi ngæî naìo, âáy laì mäúi quan hãû nhiãöu_nhiãöu
Mä hçnh maûng nhæ sau:
T
E1
E3 E2
E4
NHAN_VIEN
GIANH MATH
NGUOI_CC
NMG
DONDH
N-CC
MDS
B-D
B-M
KHACH_H
DATH
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 20
Theo nguyãn tàõt thç format cuía T coï thãø räùng, nhæng åí âáy âãø mä ta âáöy âuí thäng tin thç
ta coï thãø thãm vaìo caïc træåìng, ta thãm vaìo 2 træåìng nhæ sau:
Træåìng SOTIET cho biãút säú tiãút trong tuáön hoüc
Træåìng MUCDO cho biãút trçnh âäü cuía hoüc viãn (A,B,C..)
Vaì cáúu truïc váût lyï cuía mä hçnh maûng nhæ sau:
T
2.5 Mä hçnh phán cáúp
Mä hçnh phán cáúp laì mä hçnh maûng coï cáúu truïc âàûc biãût nhæ laì mäüt ræìng (táûp håüp caïc
cáy). Trong mäùi cáy, mäüt link chè theo hæåïng tæì nuït con âãún caïc nuït bäú meû, trong mä
hçnh phán cáúp chuïng ta cuîng sæí duûng caïc âäúi tæåüng nhæ trong mä hçnh maûng( kiãøu baín
ghi, format baín ghi, baín ghi). Chuïng ta coï thãø thiãút kãú mä hçnh phán cáúp tæì mä hçnh
maûng bàòng caïch taïch dáön caïc cáy bàõt âáöu tæì nuït coï link âi âãún nhiãöu nháút maì khäng coï
link âi ra laìm gäú c cuía cáy, gàõn caïc nuït coï link âi âãún nuït væìa choün laìm gäúc cho cáy con
cuía noï. Vaì tiãúp tuûc gaïn caïc con chaïu cuía noï cho âãún khi khäng gaïn âæåüc næîa . Tiãúp theo
choün cac nuït coìn laûi chæa âæåüc gaïn khäng coï link âi ra tæì noï laìm nuït gäúc cuía cáy måïi .
Quaï trçnh tiãúp tuûc cho âãún khi khäng coìn nuït naìo cuía maûng chæa âæåüc gaïn vaìo mäüt cáy
naìo âoï.
Vê duû: Chuyãøn âäøi sang mä hçnh phán cáúp tæì mä hçnh maûng trong vê duû trong mä hçnh
maûng vãö siãu thë YVCB
SINHVIEN
T
NGOAINGU
ANH PHAP NGA
2 A 4 C 3 B 1 A
Hæng Lan Nguyãût
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 21
Chæång 3 LYÏ THUYÃÚT THIÃÚT KÃÚ CÅ SÅÍ DÆÎ LIÃÛU
GIANH
NHANVIEN NGUOIQL MATH
DMS NMG
NGUOICC
NMG
KHACHH
DONDH
MDS
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 22
Âàût váún âãö
Cho læåüc âäö quan hãû R(A1,A2,...,An), æïng våïi mäüt táûp thæûc thãø hoàûc mäüt mäúi
quan hãû trong så âäö mäúi quan hãû thæûc thãø . Mäùi hiãûn haình cuía R chæïa caïc dæî liãûu phaín
aïnh thäng tin vãö mäüt âäúi tæåüng hoàûc mäúi quan hãû giæîa caïc âäúi tæåüng trong thãú giåïi thæûc.
Tuy nhiãn, khäng phaíi táûp caïc bäü tuìy yï caïc giaï trë cuía thuäüc tênh âãöu laì hiãûn haình cuía 1
læåüc âäö quan hãû naìo âoï.
Vê duû: xeït læåüc âäö quan hãû SINH_VIÃN(TÃN,TUÄØI) thç quan hãû sau
TÃN TUÄØI
Nguyãùn vàn A 21
Tráön thë B 100
Lã vàn C 24
âáy khäng phaíi laì mäüt hiãûn haình cuía quan hãû SINH_VIÃN, vç ràòng khäng coï sinh viãn
naìo coï tuäøi 100.
Hoàûc læåüc âäö quan hãû NGÆÅÌICC(TÃNCC,TÃNMH,GIAÏ), xeït quan hãû sau
TÃNCC TÃNMH GIAÏ
Nguyãùn vàn A Caì chua 2000â
Tráön thë B Caíi 1500â
Nguyãùn vàn A Caì chua 2500â
Âáy cuîng khäng phaíi laì mäüt hiãûn haình cuía âäö quan hãû NGÆÅÌICC vç ràòng khäng
thãø coï mäüt ngæåìi cung cáúp cuìng mäüt màût haìng våïi 2 giaï khaïc nhau.
Nhæ váûytrong caïc hiãûn haình cuía caïc læåüc âäö quan hãû coï mäüt säú raìng buäüc vãö dæî
liãûu
1. Raìng buäüc vãö ngæî nghéa miãön
Raìng buäüc naìy phuû thuäüc vaìo khaí nàng hiãøu biãút vãö giaï trë cuía caïc thuäüc tênh (caïc
thaình pháön cuía quan hãû ). Chàón haûn nãúu thuäüc tênh Ai laì tuäøi thç ta coï thãø haûn chãú miãön
giaï trë Di cuía noï trong khoaín [0,200]
2. Raìng buäüc liãn quan âãún giaï trë cuía mäüt vaìi thuäüc tênh trong læåüc âäö quan hãû
Chàón haûn sæû bàòng nhau giaï trë cuía caïc thuäüc tênh naìy dáùn âãún sæû bàòng nhau vãö giaï trë
cuía caïc thuäüc tênh khaïc ta goüi laì phuû thuäüc haìm.
2.3.4.1 Âënh nghéa:
Cho læåüc âäö quan hãû R(A1,A2,...,An), X,YÍ{ A1,A2,...,An}. Ta noïi ràòng X xaïc
âënh Y hay Y phuû thuäüc haìm vaìo X nãúu trong moüi hiãûn haình r cuía R coï 2 bäü bàòng nhau
trãn táûp thuäüc tênh X thç phaíi bàòng nhau trãn táûp thuäüc tênh Y. kyï hiãûu X®Y
hay noïi caïch khaïc våïi 2 bäü h,jÎr; h(X)=j(X) Þ h(Y)=j(Y)
vê duû trong læåüc âäö quan hãû NGÆÅÌICC(TÃNCC,TÃNMH,GIAÏ) ta coï phuû thuäüc haìm sau
{TÃNCC,TÃNMH®GIAÏ}
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 23
Nhæ váûy moüi hiãûn haình cuía læåüc âäö quan hãû NGÆÅÌICC phaíi thoía maîn phuû thuäüc
haìm {TÃNCC,TÃNMH®GIAÏ}
Âãø thuáûn tiãûn cho viãûc mä taí mäüt säú váún âãö vãö phuû thuäüc haìm ta sæí duûng caïc kyï
hiãûu sau:
1. caïc chæî caïi låïn âáöu daîy alpha kyï hiãûu caïc thuäüc tênh A,B,C,...
2. caïc chæî caïi låïn åí cuäúi daîy alpha kyï hiãûu caïc táûp thuäüc tênh V,Q,U,...
3. Mäüt táûp hæîu haûn caïc thuäüc tênh coï thãø thay cho læåüc âäö quan hãû . chàón haûn ta viãút
(A1,A2,...,An) thay cho R(A1,A2,...,An)
4. Táûp caïc thuäüc tênh coï thãø thay bàòng daîy thuäüc tênh âoï vê duû ABCD thay cho
{A,B,C,D}
5. pheïp gheïp 2 xáu kyï tæû thay cho pheïp håüp 2 táûp thuäüc tênh vê duû ABCÈDE=ABCDE
2.3.4.2 Cå såí lyï luáûn cuía phuû thuäüc haìm
1. Bao âoïng cuía táûp phuû thuäüc haìm
Cho læåüc âäö quan hãû R, X,Y ÍR, r laì mäüt quan hãû cuía R . Ta noïi ràòng r thoía maîn
phuû thuäüc haìm X®Y nãúu våïi 2 bäü báút kyì h,j,Îr sao cho h(X)=j(X) thç h(Y)=j(Y).
-Nãúu X®Y laì mäüt phuû thuäüc haìm cuía R thç moüi hiãûn haình r cuía R phaíi thoía maîn phuû
thuäüc haìm X®Y
- Giaí sæí F laì mäüt táûp caïc phuû thuäüc haìm cuía R .Nãúu moüi quan hãû r cuía R laìm thoía maîn
táút caí caïc phuû thuäüc haìm cuía F âãöu phaíi thoía maîn phuû thuäüc haìm X®Y ta noïi ràòng F
keïo theo logic X®Y(hay F suy ra logic X®Y)
Kyï hiãûu FÞX®Y
Vê duû:
Cho R=ABC
F={A®B,B®C}
roî raìng FÞA®C vç ràòng våïi 2 bäü báút kyì h,j ta coï
A®B: h(A)=j(A)Þ h(B)=j(B)
B®C: h(B)=j(B)Þh(C)=j(C)
Suy ra h(A)=j(A)Þ h(C)=j(C)
Tæïc A®C.
Cho læåüc âäö quan hãû R vaì táûp phuû thuäüc haìm F. Bao âoïng cuía F laì mäüt táûp phuû
thuäüc haìm gäöm caïc phuû thuäüc haìm âæåüc suy ra logic tæì F kyï hiãûu F+ âæåüc xaïc âënh nhæ
sau:
F+= {X®Y,X,YÍR|FÞX®Y}
Vê duû cho R=ABC; F={A®B,B®C}
F+= {A®A,A®B,A®C,...}
Khi noïi vãö caïc læåüc âäö quan hãû chuïng ta âaî thæìa nháûn sæû täön taûimäüt táûp thuäüc tênh
âàût biãût goüi laì khoïa cho læåüc âäö quan hãû. Táûp caïc giaï trë cuía caïc thuäüc tênh khoï a cuía
læåüc âäö quan hãû xaïc âënh duy nháút mäüt bäü cuía quan hã.
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 24
Cho læåüc âäö quan hãû R vaì táûp phuû thuäüc haìm F , khoïa cuía læåüc âäö quan hãû R
âæåüc xaïc âënh nhæ sau:
1. X âæåüc goüi laì khoïa cuía R ={A1,A2,...,An} nãúu X®A1A2...An âæåüc suy ra logic tæì F
tæïc laì X®A1A2...AnÎ F+
2. khäng coï mäüt táûp con thæûc sæû Y naìo cuía X maì Y®A1A2...AnÎ F+
Trong mäüt læåüc âäö quan hãû coï thãø coï nhiãöu khoïa, ngæåìi ta thæåìng choün mäüt khoïa laìm
khoïa chênh (Primary key) caïc khoïa coìn laûi goüi laì khoïa phuû(cadidate key).
Nãúu X laì khoïa , Y laì táûp chæïa X ( XÍY) thç Y dæåüc goüi laì siãu khoïa(Supper key).
2. Caïc tiãn âãö vãö phuû thuäüc haìm
Âãø xaïc âënh khoïa cho quan hãû ngæåìi ta caìnn tçm F+ cuía táûp phuû thuäüc haìm F. Ta
khäng thãø sæí duûng âënh nghéa vãö F+ âãø laìm âiãöu naìy (Vç quaï nhiãöu laìm khäng hiãûu quaí)
Goüi U laì táûp táút caí caïc thuäüc tênh cuía læåüc âäö quan hãû , F laì táûp caïc phuû thuäüc haìm
trãn U. Armstrong âaî âæa ra 3 quy tàõc suy dáùn goüi laì tiãn âãö Armstrong .
T1.Tiãn âãö phaín xaû
Nãúu YÍXÍU thç F suy dáùn ra X®Y.
T2. Tiãn âãö Tàng træåíng
Nãúu x®Y âæåüc suy ra tæì F vaì ZÍU thç XZ®YZ
T3. Tiãn âãö bàõt cáöu
Nãúu X®Y, Y®Z âæåüc suy ra tæì F thç X®Z cuîng âæåüc suy ra tæì F
Vê duû:
Cho læåüc âäö quan hãû U= ABCD
vaì táûp phuû thuäüc haìm F={A®C,B®D}
vaì giaí sæí tiãn âãö Armstrong âuïng våïi suy dáùn logic thç ta coï thãø xaïc âënh khoïa cuía læåüc
âäö quan hãû U nhæ sau:
1. A®C Cho træåïc
2. AB®ABC:Luáût tàng træåíng håüp 2 vãú våïi AB
3. B®D : cho træåïc
4.ABC®ABCD: tàng træåíng, håüp 2 vãú våïi ABC
5. AB®ABCD: Bàõt cáöu
AB laì khoïa vç A ®ABCD vaì B®ABCD.
3. Tênh âuïng cuía caïc tiãn âãö Armstrong
Bäø âãö 1:
caïc tiãn âãö Armstrong laì âuïng . Coï nghéa laì nãúu X®Y âæåüc suy ra tæì F bàòng caïc tiãn âãö
Armstrong thç X®Y cuîng âæåüc suy ra tæì F bàòng logic
Chæïng minh:
Cho læåüc âäö quan hãû U vaì táûp phuû thuäüc haìm F trãn U ta cáön cm caïc tiãn âãö
Armstrong laì âuïng.
T1. YÍXÍU ta cáön cm X®Y âuïng (âæåüc suy ra tæì F)
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 25
Våïi moin quan hãû r thoía maîn F , láúy 2 bäü báút kyì h,jÎr
nãúu h(X)=j(X)Ûh(A)=j(A) moüi aÎX
Suy ra h(Y)=j(Y)(Vç YÍX)
do âoï F Þ X®Y.
T2. Moüi quan hãû r thoía maîn F , láúy 2 bäü h,jÎr.Vç X®Y âuïng nãn h(X)=j(X)Þh(Y)=j
(Y)
giaí thiãút h(XZ)=j(XZ) cáön cm h(YZ)=j(YZ)
Ta coï h(XZ)=j(XZ) Þ h(X)=j(X)Þ h(Y)=j(Y)Þ h(YZ)=j(YZ)
h(Z)=j(Z) h(Z)=j(Z)
Váûy XZ®YZ âuïng
T3. Moüi quan hãû r thoía maîn F , láúy 2 bäü h,jÎr.
Vç X®Y Ûh(X)=j(X)Þh(Y)=j(Y)
vaì Y®Z Û h(Y)=j(Y)Þh(Z)=j(Z)
tæì âoï ta coï h(X)=j(X)Þh(Z)=j(Z) tæïc X®Z âuïng
4. Caïc quy tàõc dáùn suáút
Tæì caïc tiãn âãö Armstrong ngæåìi ta âæa ra mäüt loaût caïc quy tàõt suy dáùn tiãûn låüi cho viãûc sæí
duûng bàòng bäø âãö sau:
Bäø âãö 2:
1. {X®Y,X®Z} thç X®Z (luáût håüp)
2. {X®Y,WY®Z} thç WX®Z( luáût tæûa bàõt cáöu)
3. Nãúu X®Y vaì ZÍY thç X®Z(luáût taïch)
Chæïng minh
1. X®YÞX®XY(T2)
X®ZÞXY®YZ(T2)
X®YZ(T3)
2. X®YÞXW®YW(T2)
YW®Z
XW®Z
3. vç ZÍY nãn Y®Z(T1)
X®Y(gt) nãn X®Z(T3)
tæì caïc quy tàõt trãn suy ra hãû quaí quan troüng
Hãû quaí: Nãúu Y=A1,A2,...,An thç
X®Y ÛX®Ai("i =1,n)
khi âoï X®Y=A1A2...AnÞX®Ai"i =1,n (Luáût taïch)
X®Ai"i =1,n Þ X® A1A2...An (luáût håüp)
5. Bao âoïng cuía táûp thuäüc tênh
Giaí sæí F laì táûp phuû thuäüc haìm trãn læåüc âäö quan hãû U, YÍU. Bao âoïng cuía táûp
thuäüc tênh X kyï hiãûu laì X+ âæåüc xaïc âënh nhæ sau:
X+= { AÎU: $X,YÍUAÍY, X®Y âæåüc suy ra tæì F bàòng Armstrong }
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 26
Bäø âãö 3
X®Y âæåüc suy ra tæì F bàòng Armstrong khi vaì chè khi YÍ X+ (âäúi våïi táûp phuû thuäüc haìm
F)
C/m giaí sæí Y=A1A2...An (AiÎU)
Nãúu X®Y âæåüc suy ra tæì F bàòng Armstrong thç theo Armstrong X®Ai"i =1,n (luáût
taïch) Þ Ai Î X+ "i =1,n ( âënh nghéa X+)
Þ A1A2...AnÎ X+ hay YÎ X+
Ngæåüc laûi nãúu YÎ X+ Þ Ai Î X+ "i =1,nÞ X®Ai "i =1,n hay X®Y (luáût håüp)
6. tênh âuí cuía tiãn âãö Armstrong
Ta seí C/m ràòng nãúu 1 phuû thuäüc haìm âæåüc suy dáùn logic tæì Armstrong tæì mäüt táûp
phuû thuäüc haìm naìo âoï thç noï cuîng phaíi âæåüc suy dáùn bàòng caïc tiãn âãö Armstrong .
Nãúu F(L)ÞX®Y thç F(A) ÞX®Y.
Âënh lyï
Hãû tiãn âãö Armstrong laì âuïng vaì âuí.
C/m
1 tênh âuïng laì bäø âãö 1 âaî C/m
2/ Tênh âuí
Giaí sæí F laì táûp phuû thuäüc haìm trãn U vaì X®Y khäng âæåüc suy ra tæì F bàòng
Armstrong ta seî C/m X®Y cuîng khäng âæåüc suy ra tæì F bàòng logic.
Âãø C/m X®Y khäng âæåüc suy ra logic tæì F ta tçm mäüt quan hãû r thoía maîn F maì khäng
thoía maîn X®Y
Láúy quan hãû r nhæ sau
1 1 . . .1 1 1 . . . 1 h
1 1 . . .1 0 0 . . . 0 j
ta seî cm r thoía maîn F nhæng khäng thoía maîn X®Y
a. r thoía maîn F
Giaí sæí r khäng thoía maîn F thç täön taûi mäüt phuû thuäüc haìm W sao cho W®V ÎF sao cho r
khäng thoía maîn W®V
suy ra WÍ X+ vaì V Ë X+
Vç WÍ X+ nãn X®W âæåüc suy ra bàòng Armstrong theo luáût bàõt cáöu ta coï X®V âæåüc
suy ra tæì F bàòng Armstrong . Âiãöu naìy máu thuáøn våïi V Ë X+.
váûy r thoía maîn F
b. r khäng thoía maîn X®Y
Giaí thiãút r thoía maîn X®Y
Vç XÍ X+ nãn YÍ X+
theo bäø âãö 3 X®Y âæåüc suy ra tæì Armstrong âiãöu naìy máu thuáøn våïi giaí thiãút X®Y
khäng âæåüc suy ra tæì Armstrong do âoï r khäng thoía maîn X®Y.
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 27
Váûy : X®Y khäng âæåüc suy ra logic tæì F
Kãút luáûn:Suy dáùn bàòng Armstrong vaì suy dáùn logic laì tæång âæång nhau.
7. Tênh bao âoïng cuía táûp phuû thuäüc haìm
Cho táûp phuû thuäüc haìm F , Âãø tçm caïc phuû thuäüc haìm âæåüc suy ra tæì F ta phaíi tçm F+.
Cäng viãûc naìy khaï phæïc taûp vaì máút nhiãöu thåìi gian. Chàón haûn Nãúu F={ A®B1,A®
B2,...,A®Bn} Armstrong,Bi ÍU thç säú phuû thuäüc haìm daûng A®Y ,YÍB1B2,...Bn âaî laì
2n vç váûy viãûc tênh F+ laì khäng hiãûn thæûc vfa âäi khi khäng cáön thiãút . Baìi toaïn thææoìng
âàût ra laì cho phuû thuäüc haìm X®Y xaïc âënh xem FÞX®Y hay khäng.
Âãø laìm viãûc naìy ta chè cáön tênh X+ ( Âäúi våïi táûp phuû thuäüc haìm F) vaì xem YÍ X+ hay
khäng:
Nãúu YÍ X+ thç X®Y âæåüc suy ra tæì F
Nãúu YÏ X+ thç X®Y khäng dæåüc suy ra tæì F
Thuáût toïan Tênh X+ khaï âån giaín
Thuáût toïan tênh bao âoïng cuat táûp phuû thuäüc haìm
InPut:
- Læåüc âäö quan hãû U
- Táûp phuû thuäüc haìm F trãn U
- XÍU
Output:
- X+ Bao âoïng cuía X âäúi våïi táûp phuû thuäüc haìm F
Phæång Phaïp:
Tênh daîy X(0),X(1),...,X(n) theo caïc bæåïc sau:
1. X(0)=X
2. X(i+1) = X(i) È{A: Y®ZÎF,AÍZ,YÍ X(i)}
3. Làûp laûi bæåïc 2 cho âãún khi X(i)= X(i+1)
Roî raìng X(0)ÍX(1)Í...ÍX(n) Daîy X(i) (i=0,1,2,...) laì daîy âån âiãûu tàng vaì bë chàûn thç häüi tuû
do âoï thuáût toaïn dæìng.
Vê duû:
Cho Læåüc âäö quan hãû U=ABCDGE
F={AB®C,C®A, BC®D, D®EG,BE®C,CG®BD,CE®AC}
X=BD
Tçm X+
1. X(0)=X=BD
2. X(1)= X(0) È{EG}=BDEG
X(2) = BDEGÈ{C}=BCDEG
X(3)= BDEGCÈ{A}=ABCDEG
X(4)= X(3)=ABCDEG
váûy X+= ABCDEG
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 28
Âiãöu naìy noïi lãn ràòng X laì khoïa cuía læåüc âäö quan hãû U ( Caìn C/m thãm ràòng B+ ¹ X+ vaì
D+¹ X+).
8. Sæû tæång âæång giæîa caïc táûp phuû thuäüc haìm
cho hai táûp phuû thuäüc haìm F vaì G trãn cuìng mäüt læåüc âäö quan hãû U. Ta noïi ràòngF tæång
âæång våïi G nãúu vaì chè nãúu F+ = G+
Âãø xaïc âënh xem hai táûp phuû thuäüc haìm F vaì G coï tæång âæång våïi nhau hay khäng
chuïng ta laìm nhæ sau:
i. xaïc âënh xem mäùi phuû thuäüc haìm X ®Y Ï F coï thuäüc G+ hay khäng.
Nãúu táút caí caïc phuû thuäüc haìm trong F âãöu Î G+ thç F+ Í G+
Ngæåüc laûi Y Í X+ thç X®Y Ï G+
Âãø xaïc âënh xem phuû thuäüc haìm X®Y coï thuäüc G+ hay khäng ta tênh X+ âäúi våïi G nãúu
YÍX+ thç X®Y G+
ii. tæång tæû ta cáön xaïc âënh xem moüi phuû thuäüc haìm coï trong G coï thuäüc F+ hay khäng.
Nãúu moüi phuû thuäüc haìm trong G âãöu Î F+ thç G+ Í F+
iii. Nãúu F+ Í G+ vaì G+ Í F+ thç F+ = G+ ta noïi hai táûp phuû thuäüc haìm F vaì G tæång
âæång nhau.
9. Phuí cæûc tiãøu
Âäúi våïi moüi táûp phuû thuäüc haìm âaî cho ta coï thãø tçm táûp phuû thuäüc haìm tæång âæång våïi
noï coï caïc thuäüc tênh âàût biãth thuáûn tiãûn cho viãûc thiãút kãú CSDL . mäüt trong caïc tênh cháút
âån giaín nhæng quan troüng âoï laì táûp phuû thuäüc haìm chè coï mäüt thuäüc tênh åí veï phaíi.
Bäø âãö: Âäúi våïi moüi táûp phuû thuäüc haìm F âãöu täön taûi mäüt táûp phuû thuäüc haìm tæång âæång
våïi noï trong âoï chè coï mäüt thuäüc tênh åí vãú phaíi
Chæïng minh:
Ta xáy dæûng táûp phuû thuäüc haìm G tæì F nhæ sau:
G= {X®A |X®Y ÎF, AÎY}
Ta seî cm F+ = G+
X®A ÎG suy ra täön taûi X®Y ÎFvaì AÎY
Theo luáût taïch ta coï X®A Î F+
Ngæåüc laûi X ®Y ÎF âàût Y=A1A2...An
Vç X®Y ÎF nãn theo luáût taïch X®Ai G moüi I=1,n
Suy ra X®Y Î G+ (luáût håüp)
Mäüt taûp phuû thuäüc haìm F dæåüc goüi laì phuí cæûc tiãøu nãúu noï thoía manc caïc âiãöu kiãûn sau:
1. caïc phuû thuäüc haìm trong F âãöu chè coï mäüt thuäüc tênh åí vãú phaíi
2. khäng täön taûi phuû thuäüc haìm X®A ÎF (AÎU) sao cho F+ = (F\X®A)+
3. khäng täön taûi phuû thuäüc haìm X®A ÎF sao cho täön taûi B ÎX thoía
F+ = ((F È {X’ ®A}\ {X®A})+
Trong âoï X’= X\ {B}
Nãúu G laì phuû thuäüc haìm cæûc tiãøu tæång âæång våïi F thç G âæåüc goüi lag phuí cæûc tiãøu cuía F
Âënh lyï:
Chæång 2 CAÏC MÄ HÇNH DÆÎ LIÃÛU CHO CAÏC HÃÛ QUAÍN TRË CÅ SÅÍ DÆÎ LIÃÛU
Baìi soaûn Cå såí dæî liãûu Trang 29
Moüi táûp phuû thuäüc haìm âãöu coï phuí cæûc tiãøu
Chæïng minh:
1. Cho táûp phuû thuäüc haìm F, theo bäø âãö trãn ta coï thãø xáy dæûng F1 tæång dæång våïi F thoía
maîn âiãöu kiãûn (1) cuía phuí cæûc tiãøu (bàòng luáût taïch). F1+ = F+
2. láön læåüt láúy caïc phuû thuäüc haìm X®A ÎF1 vaì thæí
F+ = (F1\X®A)+ hay khäng . nãúu bàòng thç loaûi X®A ra khoíi F1
Sau khi thæí táút caí caïc phuû thuäüc haìm trong F1 ta âæåüc táûp phuû thuäüc haìm F2 thoía maîn
âiãöu kiãûn (1) vaì (2) cuía phuí cæûc tiãøu
3. láön læåüt láúy caïc phuû thuäüc haìm X®A Î F2, våïi mäùi X= B1B2...Bn láön læåüt thæí xem
(F2\{ B1B2...Bn }) È ({ B1B2...Bi-1Bi+1...Bn ®A })+ = F2+
nãúu bàòng thç thay X®A båíi B1B2...Bi-1Bi+1...Bn ®A cho âãún khi khäng thãø thay âæåüc
næîa ta âæåüc táûp phuû thuäüc haìm G tæång âæång våïi F2 thoía maîn táút caí caïc âiãöu kiãûn cuía
phuí cæûc tiãøu.
Vê duû
Cho táûp phuû thuäüc haìm F= {AB®C, C®A, BC®D, ACD®B, D®GE, BE®C,
CE®AG, CG®BD}
Tçm phuí cæûc tiãøu tæång âæång våïi F
Træåïc tiãn ta coï
F1= {AB®C, C®A, BC®D, ACD®B, D®G, D®E,BE®C,CE®A,CE®G,
CG®B,CG®D}
Nãúu thæí våïi caïc phuû thuäüc haìm trong F1 ta coï CE ®A,CG®B laì thæìa
( Thæí CE®A
tênh CE+ âäúi våïi F1 ta coï CE+ = ABCDEG
ta coï A Î CE+ nãn CE®AÎ F1+ nãn roî raìng phuû thuäüc haìm CE®A thæìa trong F1
ta loaûi phuû thuäüc haìm CE®A ra khoíi F1
tæång tæû ta coï B Î CG+ nãn phuû thuäüc haìm CG®B thæìa, loaûi phuû thuäüc haìm CG®B ra
khoíi F1
tiãúp tuûc thæí ta tháúy phuû thuäüc haìm ACD ®B cuîng thæìa trong F1
Ngän ngæî SQL
Chæång 3: CAÏC NGÄN NGÆÎ THAO TAÏC DÆÎ LIÃÛU
3.1 Ngän ngæî truy váún dæî liãûu SQL
Trong muûc naìy trçnh baìy ngän ngæî dæî liãûu (Structered Query Language), SQL laì ngän
ngæî con dæî liãûu âæoüc xaïc nháûn laì ráút maûnh , phäø duûng vaì laûi dãù sæí duûng . SQL laì ngän ngæî
phi thuí tuûc, chuáøn mæûc vaì âiãøn hçnh. Do váûy hiãûn nay ráút nhiãöu saín pháøm pháön mãöm âãöu
âæåüc caìi âàût SQL nhæ : Oracle, DB2,...
Trong pháön naìy seî trçnh baìy caïc khaí nàng cuía ngän ngæî SQL. Pheïp toaïn cå baín
trong SQL laì pheïp aïnh xaû âæåüc miãu taí bàòng khäúi lãûnh SELECT - FROM - WHERE. Caïc
mãûnh âãö cuía ngän ngæî SQL seî âæåüc trçnh baìy chi tiãút bàòng vê duû.
Caïc thuáût ngæî trong Cå Såí Dæî Liãûu quan hãû nhæ quan hãû , thuäüc tênh , bäü,.... âæåüc
thay thãú bàòng caïc thuáût ngæî nhæ : Baíng( Table), cäüt(colum), baín ghi(Record) hoàûc
haìng(Row) trong SQL.
Chuïng ta seî xem caïc chæïc nàng cå baín cuía mäüt hãû quaín trë Cå Såí Dæî Liãûu nhæ
cung cáúp ngän ngæî âënh nghéa dæî liãûu (DDM), Ngän ngæî thao taïc dæî liãûu(DML) , tçm kiãúm
vaì baío vãû dæî liãûu âæåüc thãø hiãûn trong ngän ngæî SQL nhæ thãú naìo.
1. Âënh nghéa dæî liãûu
Trong SQL cho pheïp ngæåìi sæí duûng taûo caïc dæî liãûu nhæ Baíng(table), Khung nhçn(View),
vaì caïc táûp chè säú(Index)
* Lãûnh taûo baíng
Cuï phaïp: CREAT TABLE Ten_Bang(Atr1 Type [NOT NULL], Atr2 Type [NOT
NULL],...)
Trong âoï Ten_Bang: tãn cuía table taûo ra; tãn baíng laì xáu kyï tæû báút kyì khäng coï kyï hiãûu
träúng vaì khäng truìng våïi tæì khoïa
Atr1, Atr2 : Tãn caïc thuäüc tênh (Caïc cäüt cuía baíng)
Type: Kiãøu dæî liãûu cho thuäüc tênh. Mäüt säú loaûi dæî liãûu thæåìng duìng nhæ:
integer: säú nguyãn tæì -2 174 483 648 âãún 2 174 483 648
Smallinteger: säú nguyãn tæì - 32 768 âãún 32 767
decimal(n,p) säú tháûp phán våïi âäü daìi täúi âa n kãø caí p chæî säú tháûp phán ( khäng tênh dáúu
cháúm tháûp phán). Tæì khoïa number trong SQL âæoüc duìng trong daûng dæî liãûu naìy.
float: säú dáúu pháøy âäüng
char(n): xáu kyï tæû coï âäü daìi cäú âënh n, n£ 255
varchar(n) xáu kyï tæû coï âäü daìi biãún âäøi, âäü daìi xáu coï thãø tæì 0 âãún n vaì âæåüc xaïc âënh taûi
thåìi âiãøm âæa dæî liãûu vaìo læu træî
date: dæî liãûu daûng ngaìy thaïng
chè thë NOT NULL âãø baïo ràòng giaï trë cuía thuäüc tênh âoï khäng âæåüc thiãúu trong caïc bäü
cuía quan hãû
Ngän ngæî SQL
Vê Duû:
Taûo Cå Såí Dæî Liãûu gäöm 3 baíng S(nhaì cung cáúp SUPPLIERS), P ( Saín pháøm PRODUCTS)
vaì baíng SP (Cung cáúp) nhæ sau:
- Taûo baíng S:
CREATE TABLE S
( S# INTEGER NOT NULL,SNAME VARCHAR(8) NOT NULL,AGES INTEGER NOT
NULL, CITY VARCHAR(30) NOT NULL)
Chuï yï: NULL laì giaï trë ngáöm âënh
- Taûo baíng P:(Baíng saín pháøm)
CREATE TABLE P
(P# INTEGER NOT NULL, PNAME VARCHAR(10) NOT NULL, WEIGHT INTEGER
NOT NULL, COLOR VARCHAR(10) NOT NULL, CITY VARCHAR(30) NOTNULL)
- Taûo baíng SP:
CREATE TABLE SP
(S# INTEGER NOT NULL, P# INTEGER NOT NULL, QTY INTEGER,SDATE DATE
NOT NULL, PRICE DECIMAL(8,2)).
Vaìo dæî liãûu :
Coï ba caïch âãø vaìo dæî liãûu cho baíng nhæ sau
INSERT INTO S(S#,SNAME,AGES,CITY)
VALUE(1,’Thanh Huong’, 30,’ TP Ho Chi Minh’)
Nãúu vë trê cuía caïc cäüt trong baíng cäú âënh, ta coï thãø viãút
INSERT INTO S
VALUE(1,’Thanh Huong’, 30,’ TP Ho Chi Minh’)
Ngæåìi vaìo dæî liãûu coï thãø quãn vë trê caïc cäüt, khi âoï ta coï thãø biãøu diãùn nhæ sau:
INSERT INTO S(S#,AGES,CITY, SNAME)
VALUE(1, 30, ’ TP Ho Chi Minh’, ’Thanh Huong’)
2. Tçm Kiãúm dæî liãûu Trong SQL
Âáy laì chæïc nàng cå baín nháút cuía SQL, cho pheïp ngæåìi sæí duûng tçm kiãúm caïc thäng tin
trãn Cå Såí Dæî Liãûu våïi Cáu lãûnh SELECT.....FROM....WHERE
Cuï phaïp:
SELECT [*| DISTINCT] Danh saïch caïc cäüt âæa ra
FROM Tãn_Baíng/Tãn_View
[WHERE biãøu thæïc âiãöu kiãûn]
[GROUP BY Danh saïch caïc cäüt]
[HAVING biãøu thæïc âiãöu kiãûn]
[ORDER BY Tãn_cäüt [ASC/DESC]
Giaíi thêch caïc tham säú bàòng caïc vê duû
Ngän ngæî SQL
2.1 Tçm kiãúm theo cáu hoíi âån giaín
Tçm kiãúm khäng âiãöu kiãûn:
i. Cho biãút danh saïch caïc nhaì cung cáúp:
SELECT *
FROM S
Dáúu ‘*’ coï nghéa laì choün toaìn bäü caïc cäüt trong baíng.
Âãø baíng kãút quaí sau khi thæûc hiãûn mäüt mãûnh âãö SQL âuïng laì mäüt quan hãû (Coï nghéa laì
khäng coï caïc bäü truìng nhau) thç phaíi coï tæì khoïa DISTINCT.
SELECT DISTINCT PNAME
FROM SP
Tçm kiãúm våïi âiãöu kiãûn âån giaín
Tçm maî säú cuía nhæîng nhaì cung cáúp âaî cung cáúp màût haìng P2
SELECT S#
FROM SP
WHERE P#=’P2’
Tçm kiãúm coï xæí lyï xáu kyï tæû
Xæí lyï xáu kyï tæû gáön âuïng coìn goüi laì pheïp tênh “thäng minh” trong træåìng håüp ngæåìi sæí
duûng khäng nhåï roî tãn ngæåìi hoàûc âëa danh ... vê duû laì Hoa hay Hoan khi âoï ta coï thãø viãút
SELECT *
FROM S
WHERE SNAME LIKE ‘HOA%”
Trong SQL sæí duûng kyï hiãûu ‘%’ laì thay thãú cho mäüt xáu con báút kyì, dáúu phán caïch ‘_’ âãø
thay thãú cho mäüt kyï tæû.
A%B : Xáu kyï tæû bàõt âáöu bàòng chæî A vaì kãút thuïc bàòng chæî B
%A Xáu kyï tæû báút kyì kãút thuïc bàòng chæî A
A_B : Xáu bao gäöm 3 kyï tæû , kyï tæû thæï 2 laì báút kyì
A_ : Xáu coï hai kyï tæû, kyï tæû âáöu laì A
Xæí lyï ngaìy thaïng
Tçm nhæîng màût haìng baïn træåïc ngaìy 94-04-24 10 ngaìy
SELECT P#
FROM SP
WHERE ‘94-04-24’ - SDATE =10
Tçm kiãúm sæí duûng IN vaì BETWEEN
Tçm nhæîng màût haìng âaî cung cáúp coï giaï tæì 1000 âãún 2000
SELECT P#
FROM SP
WHERE PRICE BETWEEN 1000 AND 2000
Tçm maî säú nhæîng nhaì cung cáúp âaî cung cáúp êt nháút mäüt trong caïc màût haìng P1,P2,P3
Ngän ngæî SQL
SELECT S#
FROM SP
WHERE P# IN (‘P1’,’P2’,’P3’)
CAÏC HAÌM THÆ VIÃÛN
Cuîng giäúng nhæ caïc ngän ngæî Cå Såí Dæî Liãûu khaïc, Trong SQL coï caïc haìm máùu gäöm
COUNT, MAX, MIN, SUM, AVG. Riãng haìm COUNT khi coï âäúi säú laì ‘*’ coï nghéa laì
âãúm säú baíng ghi thoía maîn yãu cáöu tçm kiãúm maì khäng quan tám âãún báút kyì cäüt naìo.
Vê du
Cho biãút säú láön màût haìng P2 âaî âæåüc cung cáúp
SELECT COUNT(*)
FROM SP
WHERE P#=’P2’
Tçm hiãûu säú màût haìng P1 baïn mäüt láön nhiãöu nháút vaì mäüt láön êt nháút cuía haîng S1
SELECT MAX(QTY) - MIN(QTY)
FROM SP
WHERE S#=’S1’ AND P#=’P1’
Tçm kiãúm nhåì mãûnh âãö GROUPE BY
Tçm maî säú nhæîng màût haìng maì mäùi nhaì cung cáúp âaî cung cáúp cho khaïch haìng.
SELECT S#,P#
FROM SP
GROUPE BY S#
trong mãûnh âãö naìy baíng dæî liãûu SP âæåüc láúy ra, sau âoï phán thaình nhoïm theo maî säú cuía
ngæåìi cung cáúp (S#). Coï nghéa laì caïc bäü coï cuìng giaï trë S# seî âæåüc xãúp liãn tiãúp nhau, hãút
nhoïm naìy âãún nhoïm khaïc.
Tçm kiãúm nhåì mãûnh âãö HAVING
Mãûnh âãö HAVING thæåìng âæåüc sæí duûng cuìng mãûnh âãö GROUP BY. Sau HAVING la biãøu
thæïc âiãöu kiãûn. Biãøu thæïc âiãöu kiãûn naìy khäng taïc âäüng vaìo toaìn baíng âæåüc chè ra åí mãûnh
âãö FROM maì chè taïc âäünáönnnn læåüt âãún tæìng nhoïm caïc baín ghi âaî chè ra taûi mãûnh âãö
GOUP BY.
Vê duû: Tçm maî säú nhæîng nhaì cung cáúp âaî cung cáúp êt nháút hån hai màût haìng
SELECT S#
FROM SP
GROUP BY S#
HAVING CUONT (DISTINCT P#)>2
Tçm kiãúm coï sàõp xãúp
Tçm tãn caïc màût haìng maìu âoí vaì sàõp xãúp theo thæï tæû cuía maî säú màût haìng
SELECT PNAME,P#
Ngän ngæî SQL
FROM P
WHERE COLOUR = ‘RED’
ORDER BY P# ASC
Mãûnh âãö ORDER BY cho pheïp ta sàõp xãúp caïc cäüt theo thæï tæû tàng dáön (ASC) hoàûc giaím
dáön (DESC), ngáöm âënh laì ASC
Mãûnh âãö ORDER BY coï thãø sàõp xãúp theo nhiãöu cäüt. Nãúu noï âæïng sau mãûnh âãö GROUP
BY thç miãön taïc âäüng laì tæìng nhoïm cuía cäüt âæåüc chè ra trong mãûnh âãö GROUP BY. Nãúu
cäüt sàõp xãúp coï màût åí mãûnh âãö SELECT thç trong mãûnh âãö ORDER BY coï thãø chè cáön chè
ra säú thæï tæû cuía cäüt âoï trong danh saïch tham chiãúu laì âuí.
trong vê duû trãn ta coï thãø viãút
SELECT PNAME,P#
FROM P
WHERE COLOUR = ‘RED’
ORDER BY 2 ASC
Tçm kiãúm våïi cáu hoíi phæïc taûp
Trong pháön naìy seî trçnh baìy viãûc tçm kiãúm dæî liãûu trãn nhiãöu baíng thäng qua pheïp kãút näúi
hoàûc viãûc sæí duûng caïc aïnh xaû läöng.
Khaí nàng kãút näúi dæî liãûu
Trong pheïp kãút näúi, caïc cäüt tham gia kãút näúi phaíi coï miãön trë laì so saïnh âæåüc våïi nhau. Tãn
cäüt cuía caïc baíng khaïc nhau coï thãø viãút tæåìng minh qua tãn baíng.
Vê Duû:
Våïi mäùi màût haìng âæåüc cung cáúp , haîy cho biãút maî säú cuía màût haìng vaì âëa chè cuía haîng
âaî cung cáúp màût haìng âoï.
SELECT DISTINCT P#, CITY
FROM SP, S
WHERE SP.S# =S.S#
Aïnh xaû läöng
Ta coï thãø sæí duûng nhæîng mãûnh âãö SELECT läöng nhau
Vê duû:
Tçm tãn nhæîng haîng âaî cung cáúp màût haìng P2
SELECT SNAME
FROM S
WHERE S# IN( SELECT S#
FROM SP
WHERE P#=’P2’)
Ngän ngæî SQL
Pheïp läöng nhau coï thãø läöng nhiãöu mæïc hoàûc sæí duûng sæû dáùn troí giæîa caïc khäúi mäùi khi
hæåïng tåïi mäüt baíng khaïc nhau
Vê duû: Tçm tãn caïc haîng khäng cung æïng màût haìng P1
SELECT SNAME
FROM S
WHERE ‘P1’ NOT IN
SELECT P#
FROM SP
WHERE S#= S.S#
Trong SQL coìn cho pheïp tçm kiãúm trãn nhiãöu baíng nhåì mãûnh âeì EXISTS (täön taûi)
Vê duû:
Tçm kiãúm nhæîng nhaì cung cáúp âaî cung cáúp êt nháút mäüt màût haìng naìo âoï
SELECT *
FROM S
WHERE EXISTS
(SELECT *
FROM SP
WHERE SP.S#=S.S#)
Hoàûc coï thãø biãøu diãùn bàòng caïch khaïc
SELECT *
FROM S
WHERE 0<
(SELECT COUNT(*)
FROM SP
WHERE SP.S#=S.S#)
Tçm kiãúm coï sæí duûng læåüng tæì ANY vaì ALL
Tçm tãn nhæîng màût haìng coï maî säú màût haìng laì màût haìng naìo âoï maì haîng S1 âaî cung cáúp
SELECT PNAME
FROM P
WHERE P#= ANY
SELECT P#
FROM SP
WHERE S#=’S1’
Tçm tãn nhæîng nhaì cung cáúp cung cáúp êt nháút mäüt màût haìng maìu âoí
SELECT SNAME
Ngän ngæî SQL
FROM S
WHERE S#= ANY
SELECT S#
FROM SP,S,P
WHERE S.S#=SP.S# AND P.P#=SP.P# AND COLOUR=’RED’
Tçm maî säú nhæîng nhaì cung cáúp säú læåüng mäyt láön mäüt màût haìng naìo âoï låïn hån hoàûc bàòng
säú læåüng mäùi láön cung æïng cuía haîng
SELECT S#
FROM SP
WHERE QTY >= ALL
SELECT QTY
FROM SP
Mãûnh âãö trãn hoaìn toaìn tæång âæång våïi
SELECT S#
FROM SP
WHERE QTY = (SELECT MAX( QTY)
FROM SP)
Tçm nhæîng haîng chæa hoaût âäüng
SELECT *
FROM S
WHERE NOT EXISTS
SELECT *
FROM SP
WHERE SP.S# = S.S#
Chuï yï mãûnh âãö NOT EXISTS coï giaï trë âuïng (True) nãúu kãút quaí cuía cáu hoíi sau noï laì mäüt
táûp räùng.
Tçm kiãúm coï chæïa pheïp tênh táûp håüp
Tçm maî säú nhæîng haîng hiãûn thåìi chæa cung cáúp mäüt màût haìng naìo caí
SELECT S#
FROM S
MINUS
SELECT S#
FROM SP
Tçm tãn caïc haîng cung cáúp, cung cáúp táút caí caïc màût haìng
SELECT SNAME
FROM S
WHERE ( SELECT P#
Ngän ngæî SQL
FRPM SP
WHERE S#=S.S#) = (SELECT P#
FRPM P)
3. Caïc lãûnh cáûp nháût dæî liãûu
Thãm mäüt bäü vaìo trong quan hãû
Cuï phaïp: INSERT INTO Tãn_Baíng(Danh saïch tãn cäüt)
VALUES(Danh saïch caïc trë)
[cáu hoíi con]
Vê duû: coï thãø bäø sung mäüt táûp caïc baín ghi laì kãút quaí xæí lyï cuía mäüt cáu hoíi naìo âoï, chàón
haûn:
Giaí sæí ta coï baíng W coï cuìng læåüc âäö nhæ baíng P. khi âoï mãûnh âãö sau âáy seî bäø sung vaìo
baíng P táút caí næîng bäü tæì baíng W nhæîng màût haìng coï máöu âoí
INSERT INTO P
SELECT *
FROM W
WHERE COLOUR =’RED’
+ Xoïa caïc bäü
Cuï phaïp DELETE FROM tãn_baíng
[WHERE btâk]
Vê duû:
Loaûi boí haîng S1 ra khoíi baíng S
DELETE
FROM S
WHERE S#=’S1’
Loüai boí caïcmàût haìng âæåüc cung cáúp sau ngaìy 20 -5- 1994
DELETE
FROM SP
WHERE SDATE >’1994-5-20’
Loaûi boí caïc haîng chæa cung cáúp màût haìng naìo
DELETE
FROM S
WHERE S# NOT IN (SELECT S# FROM SP)
+ Sæía âäøi dæî liãûu
Ngän ngæî SQL
Cuï phaïp: UPDATE [Tãn_baíng]
SET [Tãn_cäüt=Biãøu thæïc,...]
[FROM Tãn_Baíng]
[WHERE btâk]
Vê duû:
Âäøi maìu caïc màût haìng P2 thaình maìu vaìng
UPDATE P
SET COLOUR =’ YELLOW’
WHERE P#= ‘ P2’
+ Thãm mäüt cäüt vaìo baíng
Cuï phaïp: ALTER TABLE Tãn_Baíng
[ADD/MODIFY][(Tãn_cäüt Kiãøu dæî liãûu ]
ADD: Thãm cäüt måïi vaìo
MODIFY : Sæía cäüt daî coï trong quan hãû
Vê duû: thãm cäüt DONGIA ( âån giaï) cho baíng SP våïi kiãøu dæî liãûu daûng säú tháûp phán
ALTER TABLE SP ADD DONGIA DECIMAL(8.2)
+ Xoïa baíng:
cuï phaïp: DROP TABLE Tãn_baíng
Xoïa VIEW
Cuï phaïp DROP VIEW Tãn_view
Taûo tãûp chè säú
Trong SQL khäng coï cå chãú tæû âäüng taûo tãûp chè säú cho caïc cäüt cuía baíng. Viãûc taûo tãûp chè
säú do ngæåìi duìng thuûc hiãûn.
Cuï phaïp nhæ sau: CREATE [UNIQUE] INDEX tãn_tãûp_chè_säú ON tãn_baíng (tãn_cäüt
[ASC|DESC])
Huíy boí chè säú thç sæí duûng mãûnh âãö
DROP INDEX tãn_tãûp_chè_säú
Vê duû:taûo tãûp chè säú 13 theo cäüt City tàng dáön cuía baíng S
CREATE INDEX 13 ON S(CITY ASC)
Trong SQL coï thãø täø chæïc âa chè säú, tæïc laì täø chæïc mäüt tãûp chè säú cho nhiãöu cäüt, mäùi cäüt
coï thãø coï chiãöu tàng giaím khaïc nhau, thæï tæû âæåüc tênh tæì traïi qua phaíi
Vê duû taûo tãûp chè säú 14 cho baíng SP theo cäüt S# tàng dáön vaì theo cäüt P# giaím dáön
CREATE INDEX 14 ON SP(S# ASC, P# DESC)
4. Caïc mãûnh âãö an toaìn dæî liãûu
Âáy laì yãúu täú khäng thãø thiãúu âæåüc âäúi våïi mäüt hãû quaín trë Cå Såí Dæî Liãûu âãø baío vãû dæî
liãûu vaì ngàn chàûn nhæîng ngæåìi khäng âæåüc pheïp truy cáûp. Caïc quyãön truy cáûp vaìo Cå Såí
Ngän ngæî SQL
Dæî Liãûu gäöm: Read(âoüc), Write(ghi), Insert(bäø sung), Update(Sæía
âäøi),Select(choün),Delete(xoïa)Run(chaûy).
Viãûc phán phaït quyãön truy cáûp vaìo Cå Såí Dæî Liãûu do ngæåìi quaín trë Cå Såí Dæî Liãûu do
ngæåìi quaín trë Cå Såí Dæî Liãûu (database administrator -DBA) thæûc hiãûn båíi lãûnh sau:
Giaïn quyãön truy cáûp cho ngæåìi sæí duûng: Lãûnh GRANT
cuï phaïp: GRANT Quyãön truy cáûp ON Tãn_baíng/view TO Tãn_User [ with GRANT
option]
Tæì khoïa with GRANT option âãø cho ngæåìi âæåüc cáúp quyãön coï thãø tiãúp tuûc trao quyãön cho
ngæåìi khaïc. Nãúu tãn_User laì Public hoàûc Word thç coï nghéa laì cho moüi ngæåìi sæí duûng.
Vê duû: trao quyãön sæí duûng baíng S cho cä Häöng
GRANT READ ON S TO HONG with GRANT option
Lãûnh naìy cä Häöng coï thãø trao quyãön âoüc baíng S cho ngæåìi duìng khaïc
Huíy boí quyãön truy cáûp:
REVOKE Tãn_quyãön ON tãn_baíng FROM Tãn_User
vê duû:Ruït laûi quyãön âoüc baíng S cuía User Häöng
REVOKE READ ON S FROM HONG
Xæí lyï thäng tin trong CSDL
Trang 1
Chæång4: TAÏCH KHÄNG MÁÚT THÄNG TIN
Cho læåüc âäö quang hãû R=(A1,A2,...,An), taïch læåüc âäö quang hãû R laì thay noï båíi mäüt
bäü caïc læåüc âäö P=(R1,R2,...,Rk) sao cho R1ÈR2È...ÈRk =R
Vê duû: xeït 2 læåüc âäö quang hãû NGUOI_CCKTNT(TEN,DCHI,TENMH,GIA),
Khi âoï våïi læåüc âäö quang hãû NGUOI_CCKTNT coï táûpphuû thuäüc haìm sau:
F=(TEN®DCHI;TEN,MATH®GIA)
khi âoï ta coï thãø taïch læåüc âäö quang hãû NGUOI_CCKTNT thaình 2 læåüc âäö quang hãû
sau:
R1(TEN,DCHI), R2=(TEN,MATH,GIA)
khi âoï moüi hiãûn haình r cuía R âæåüc taïch ra thaình 2 quang hãû r1=PR1(r), r2= PR2(r).
Âãø phuûc häöi laûi R tæì R1 vaì R2 ta cáön näúi pheïp näúi R1¥ R2. (r = r1 ¥ r2)
Váún âãö âàût ra laì khi naìo r = r1 ¥ r2.
4.1 Pheïp näúi khäng máút thäng tin
Cho læåüc âäö quang hãû R vaì táûp phuû thuäüc haìm F trãn R, pheïp taïch P=(R1,R2,...,Rk)
âæåüc goüi laì taïch coï näúi khäng máút thäng tin (hay goüi tàõt laì taïch khäng máút thäng tin )
nãúu våïi moüi quang hãû r cuía Rthoía maîn F thç
r= PR1(r) ¥PR2(r) ¥ ...¥ PRk(r)
Âàût Mp(r)= PR1(r) ¥PR2(r) ¥ ...¥ PRk(r)
khi âoï âiãöu kiãûn näúi khäng máút thäng tin laì : Våïi moüi quang hãû r thuäüc R thoîaman F
thç Mp(r)= r
Bäø Âãö
Cho læåüc âäö quang hãû R vaì mäüt pheïp taïch P=(R1,R2,...,Rk), goüi r laì quang hãû cuía R.
Âàût ri = PRi(r) ta coï:
1. r Í Mp(r)
2. nãúu s = Mp(r) thç PRi(s)=ri
3. Mp(r)=Mp(Mp(r))
chæïng minh
1. r Í Mp(r)
Chuï yï r laì quang hãû (táûp håüp), mäùi pháön tæí cuía r laì mäüt bäü (xãúp theo ma tráûn laì mäüt
haìng). Láúy mäüt bäü tÎr; âàût ti=t(Ri)
(t=(a1,a2,...,an)
Trong âoï t(Ri) laì nhæîng thaình pháön æïng våïi caïc thuäüc tênh cuía Ri
Vê duû
A B C D
1 4 5 2
t=3 2 7 6
3 3 7 4
R1=BC khi âoï PR1(r) = B C
4 5
Xæí lyï thäng tin trong CSDL
Trang 2
2 7
3 7
Khi âoï t(r1) = 2 7
Ti = t(Ri) Î PRi(r)
t= t1 ¥ t2 ¥...¥ tk Í PR1(r) ¥ PR2(r)¥...¥ PRk(r)
t Í Mp(r)
2. nãúu s = Mp(r) thç PRi(s)=ri
tæì (1) ta coï r Í Mp(r) Þ PRi(r)ÍPRi(Mp(r))
Þ riÍPRi(s)
Chæïng minh ngæåüc laûi PRi(s) Í ri
Láúy ti Î PRi(s) (i=1..k)
Âàût t= t1¥ t2¥...¥ tk ÎMp(Mp(r)) =Mp(s)
(vç PR1(s) ¥ PR2(s) ¥ ... ¥PRk(s) = Mp(s)= Mp(Mp(r)))
ti ÎPR1(r) ¥ PR2(r) ¥ ... ¥PRk(r) =PRi(PRi(r)) = PRi(r) = ri (dpcm)
3. Mp(r)=Mp(Mp(r))
tæì (2) tacoï ri= PRi(s) Þ r1 ¥ r2 ¥...¥rk= PR1(s) ¥ PR2(s) ¥ ... ¥PRk(s)
= Mp(s)= Mp(Mp(r).
4.2 Thuáût toaïn xaïc âënh pheïp taïch coï máút thäng tin hay khäng
Thuáût toaïn:
Dæî liãûu vaìo:
- Læåüc âäö quang hãû R
- Táûp phuû thuäüc haìm F
Pheïp taïch P(R1,R2,...,Rk)
Ra: Xaïc âënh liãûu pheïp taïch P coï máút thäng tin hay khäng.
Phæång phaïp:
R=(A1,A2,...An)
Ta xáy dæûng mäüt baíng k doìng, n cäüt. Caïc doìng cuía baíng âæåüc âaïnh dáúu båíi caïc thuäüc
tênh R1, R2,...,Rk, caïc cäüt âæåüc âaïnh dáu båíi caïc thuäüc tênh A1,A2,...,An.
Trong baíng âiãön caïc kyï hiãûu nhæ sau:
- Vë trê æïng våïi cäüt AÛ vaì doìng Ri thç ghi aj nãúu AjÎRi hoàûc ghi bij nãúu Aj ÏRi
- Biãún âäøi caïc kyï hiãûu trong baíng theo quy tàõt sau:
1. ÆÏng våïi mäùi phuû thuäüc haìm X ® Y Î F tçm caïc càûp doìng (2 dong mäüt) maì giaï trë
cuía noï truìng nhau trãn caïc vë trê tæång æïng caïc cäüt trong X thç laìm bàòng caïc kyï hiãûu
tæång æïng våïi caïc vë trê trong Y, nguyãn tàõt laìm bàòng nhæ sau:
- nãúu mäüt trong hai kyï hiãûu æïng våïi thuäüc tênh Aj laì aj thç thay giaï trë kia bàòng aj. Nãúu
caí hai kyï hiãûu æïng våïi thuäüc tênh Aj laì blj vaì bij thç thay chuïng bàòng blj hoàûc bij âãø
cho chuïng giäúng nhau.
2. Làûp laûi quaï trçnh 1 cho âãún khi khäng coìn coï sæû thay âäøi naìo trãn baíng.
3. Nãúu trong baíng kãút quaí coï êt nháút mäüt doìng toaìn kyï hiãûu a(a1,a2,...an) thç pheïp taïch
laì khäng máút thäng tin , ngæåüc laûi thç phpe taïch máút thäng tin.
Vê duû1
Xæí lyï thäng tin trong CSDL
Trang 3
Cho læåüc âäö quang hãû R=ABCDE
Taïch R thaình caïc læåüc âäö sau:
R1 = AD, R2=AB, R3= BE, R4= CDE, R5= AE
táûp phuû thuäüc haìm F=(A®C,B®C,C®D,DE®C,CE®A)
Xaïc âënh pheïp taïch trãn coï máút thäng tin hay khäng
láûp baíng:
A B C D E
AD a1 b12 b13 a4 b15
AB a1 a2 b23(b13) b24(a4) b25
BE b31(a1) a2 b33(b13)(a3) b34(a4) a5
CDE b41 b42 a3 a4 a5
AE a1 b52 b53(b13)(a3) b54(a4) a5
Pheïp taïch trãn khäng máút thäng tin vç coï doìng BE toaìn kyï hiãûu a
Vê duû 2:
Xeït quan hãû ngæåìi cung cáúp nhæ sau:
S(PRO, PRICE, ADD, PRO, PRICE)
Âæåüc taïch thaình 2 læåüc âäö quan hãû sau
S1(SNAME, ADD)
S2(SNAME, PRO, PRICE)
Våïi caïc phuû thuäüc haìm nhæ sau:
SNAME ® ADD
SNAME,PRO ®PRICE
Ban âáöu ta thiãút láûp baíng nhæ sau:
SNAME ADD PRO PRICE
S1 a1 a2 b13 b14
S2 a1 b22 (a2) a3 a4
Xæí lyï thäng tin trong CSDL
Trang 4
AÏp duûng phuû thuäüc haìm SNAME®ADD cho hai haìng cuía baíng. Hai baíng bàòng nhau
trãn cäüt SNAME ( âãöu bàòng a1) nãn åí cäüt ADD chuïng âæåüc laìm bàòng vaì laìm bàòng a2
Baíng kãút quaí laì
SNAME ADD PRO PRICE
S1 a1 a2 b13 b14
S2 a1 a2 a3 a4
Baíng kãút quaí coï doìng thæï hai giaï trë toaìn laì a , do âoï kãút quaí näúi laì khäng máút thäng
tin
4.2 Chuáøn hoïa læåüc âäö quang hãû
Do viãûc cáûp nháút dæî liãûu (qua caïc pheïp tênha cheìn, loaûi boí, sæía âäøi) gáy nãn nhæîng dë
thæåìng cho nãn caïc quan hãû cáön thiãút phaíi âæåüc biãún âäøi thaình nhæîng daûng phuì håüp.
Quaï trçnh âoï âæåüc xem laì quaï trçnh chuáøn hoïa. Quan hãû âæåüc chuáøn hoïa laì quan hãû
trong âoï mäùi miãön cuía mäüt thuäüc tênh chê chæïa nhæîng giaï trë nguyãn täú tæïc laì khäng
phán nhoí âæåüc næîa.
Quan hãû coï chæïa caïc miãön trë khäng nguyãn täú goüi laì quan hãû khäng chuáøn hoïa . Mäüt
quan hãû âæåüc chuáøn hoïa coï thãø thaình mäüt hoàûc nhiãöu quan hãû chuáøn hoïa khaïc vaì
khäng laìm máút thäng tin.
Vê duû
S# PRO S# P# QTY
P# QTY
100 1 1 100 1
200 2 1 200 2
1
300 1 1 300 1
100 4 2 100 4 2
200 2 2 200 2
400 5 3 400 5 3
500 1
Khäng chuáøn hoïa
Chuáøn hoïa
3 500 1
4.2.1Caïc daûng chuáøn
Trong lyï thuyãút ban âáöu Codd âæa ra 3 daûng chuáøn cuía quan hãû sau:
Daûng ban âáöu(Khäng chuáøn hoïa)
Daûng chuáøn thæï nháút (1NF - first normal form)
Xæí lyï thäng tin trong CSDL
Trang 5
Daûng chuáøn thæï 2 (2NF)
Daûng chuáøn thæï 3 (3NF)
1. Daûng chuáøn 1 (1NF - first normal form)
Mäüt læåüc âäö quan hãû R âæåüc goüi laì åí daûng chuáøn mäüt (1NF) nãúu vaìchè nãúu táút caí miãön
giaï trë cuía caïc thuäüc tênh cuía R âãöu nguyãn täú (khäng thãø phán chia âæåüc)
Chuï yï: Tênh khäng thãø phán chia âwoüc coï tênh cháút tæång âäúi.
Âënh nghéa naìy cho tháúy ngay ràòng báút kyì quan hãû chuáøn hoïa naìo cuîng åí 1NF.
2. Daûng chuáøn 2 ( 2NF- Second normal form)
træåïc khi nghiãn cæïu daûng áønnnn thæ 2 , ta xeït Vê duû sau âáy:
Xeït CSDL gäöm 2 læåüc âäö quan hãû THI(MONTHI,GIAOVIEN) vaì
SINHVIEN(MONTHI, MSSV, TEN, TUOI, DCHI, DIEM) phaín aïnh thäng tin vãö kãút
quaí thi cuía mäüt âån vë naìo âoï.
Trong quan hãû THI thç MONTHI laì khoïa vaì trong quan hãû SINHVIEN thç MOMTHI
vaì MSSV laì khoïa.
ÅÍ quan hãû thæï hai dãù nháûn tháúy ràòng MONTHI, MSSV,DIEM xaïc âënh kãút quaí thi cuía
sinh viãn coìn MSSV,TEN,TUOI,DCHI xaïc âënh âäúi tæåüng dæû thi
Xeït caïc hiãûn haình cuía 2 læåüc âäö quan hãû THI vaì SINHVIEN nhæ sau:
THI
MO ÜNTHI GIAOVIEN
Toaïn T.ÂINH
Lyï T.THAÛNH
Hoïa T.DU ÎNG
SINHVIEN
MONTHI MSSV TEN TUOI DCHI DIEM
Toaïn 11 Lan 20 30_LTT 8.0
Toaïn 12 Hue 21 24_PÂP 7.5
Hoïa 11 Lan 20 30_LTT 7.0
Hoïa 12 Hue 21 24_PÂP 6.0
Lyï 11 Lan 20 30_LTT 5.0
Lyï 13 An 22 12_HV 4.0
Våïi 2 hiãûn haình trãn xuáút hiãûn mäüt säú váún âãö nhæ sau:
Xæí lyï thäng tin trong CSDL
Trang 6
1 ÅÍ quan hãû SINHVIEN , viãûc læu træî thäng tin vê duû nhæ sinh viãn coï maî sinh viãn
11 phaíi làûp laûi 3 láön âëa chè, 3 láön tuäøi. Roî raìng laì quaï dæ thæìa
2. Khi cáön thay âäøi thäng tin âäúi våïi mäüt mäüt sinh viãn phaíi thay âäøi táút caí caïc bäü
æïng våïi sinh viãn âoï. Vê duû nhæ âäúi våïi sinh viãn tãn laì Lan thç phaíi thay âäøi åí caí 3 bäü,
roî raìng laì täún keïm thåìi gian.Hån næîa khi sæîa âäøi thäng tin vãö sinh viãn thç khäng liãn
quan gç âãún thäng tin vãö thi cæí.
3. khäng thãø bäø sung mäüt sinh viãn måïi vaìo quan hãû SINHVIEN nãúu sinh viãn naìy
chæa thi män naìovç trong quan hãû SINHVIEN chè chæïa thäng tin vãö nhæîng sinh viãn âaî
thi.
4. Giaí sæí vç mäüt lyï do naìo âoï cáön phaíi huíy boí män thi Lyï maì danh saïch sinh viãn váùn
giæî nguyãn . Khi âoï trong quan hãû THI ta xoïa bäü (Lyï, T.THANH), coìn åí quan hãû
SINHVÈN nãúu xoïa män thi Lyï thç thäng tin vãö sinh viãn An seî máút.
Âãø khàõc phuûc caïc báút låüi trãn ta coï thãø taïch Læåüc âäö quan hãû SINHVIEN thaình 2 læåüc
âäö quan hãû sau:
SINHVIEÛN(MSSV,TEN,TUOI,DCHI) vaì THIXONG(MSSV,MONTHI,DIEM)
Nhæ váûy luïc naìy CSDL thaình 3 quan hãû âaî âæåüc chuáøn hoïa vaì åí daûng chuáøn thæï hai.
Âënh nghéa
Læåüc âäö quan hãû U âæåüc goüi laì daûng chuáøn 2 , kyï hiãûu laì 2NF nãúu noï åí daûng chuáøn 1
vaì moüi khoïa cuía U phuû thuäüc haìm âáöy âuí vaìo khoïa chênh.
(Chuï yï: X®Y laì phuû thuäüc haìm âáöy âuí nãúu khäng täön taûi mäüt ZÌX maì Z®Y laì
âuïng.)
4. Daûng chuáøn 3
cho læåüc âäö quan hãû U vaì táûp phuû thuäüc haìm F. nãúu thuäüc tênh A cuía U âæåüc goüi laì
thuäüc tênh khoïa nãúu A laì thaình pháön cuía 1 khoïa naìo âoï. Ngæåüc laì A âæåüc goüi laì thuäüc
tênh khäng khoïa nãúu noï khäng phaíi laì thaình pháön cuía mäüt khoïa naìo caí trong U
Vê duû: U= ABCD
F=(AB®C, B®D, BC®A)
Dãù daìng kiãøm tra AB vaì BC laì caïc khoïa cuía U , tæì âoï suy ra A,B,C laì caïc thuäüc tênh
khoïa
D khäng phaíi laì thuäüc tênh khoïa
Khaïi niãûm vãö phuû thuäüc bàõt cáöu
Cho mäüt læåüc âäö quan hãû R(U); X laì táûp con caíu caïc thuäüc tênh X ÍU, A laì mäüt thuäüc
tênh thuäüc U.A âæåüc goüi laì phuû thuäüc bàõt cáöu vaìo X trãn R nãúu täön taûi mäüt táûp con Y
cuía U sao cho X ®Y, Y®A nhæng Y ®X (Khäng xaïc âënh haìm X) våïi A ÏXY
Tênh bàõt cáöu thãø hiãûn qua så âäö sau:
X
Xæí lyï thäng tin trong CSDL
Trang 7
Y
A
Qua så âäö ta tháúy ràòng A coï thãø xaïc âënh haìm Y. trong træåìng håüp A khäng xaïc âënh
haìm Y goüi laì tênh bàõt cáöu chàût.
Tênh bàõt cáöu seî âæåüc sæí duûng trong 3NF. Âiãöu kiãûn A ÏXY laì cáön thiãút vç ràòng nãúu A
ÍYÍX thç theo luáût phaín xaû ta luän coï X ® Y® A. âiãöu kiãûn Y ® X âãø loaûi boí
nhiãöu khoïa khoíi daûng chuáøn 3NF. Cuîng nhæ åí 2NF viãûc loaûi boí phuû thuäüc batæï cáöu
âãø âi âãún 3NF nhàòm loëa boí nhæîng dë thæåìng gáy ra do quaï trçnh cáûp nháût dæî liãûu vaìp
quan hãû . tæì doï ta coï âënh nghéa sau:
Âënh nghéa
Læåüc âäö quan hãû R âæåüc goüi laì åí daûng chuáøn 3NF nãúu R åí daûng chuáøn 2NF vaì mäùi
thuäüc tênh khäng khoïa cuía R laì khäng phuû thuuoüc haìm bàõt cáöu vaìo khoïa chênh.
Vê duû:
Cho læåüc âäö quan hãû R=( SAIP)
Våïi caïc phuû thuäüc haìm nhæ sau:
SI ®P vaì S ®A
Ta tháúy ràòng R khängåí daûng chuáøn 3NF. Giaí sæí X = SI, Y= S. A laì thuäüc tênh khäng
khoïa ( åí âáy khoïa laì SI). Vç X ® Y vaì Y ® A vaì X ® Y ( S khäng suy ra SI) chæïng
toí ràòng A phuû thuäüc bàõt cáöu vaìo khoïa chênh.
Hoàûc
Cho læåüc âäö quan hãû R=(CSZ) våïi caïc phuû thuäüc haìm nhæ sau:
CS®Z, Z® C
Trong læåüc âäö quan hãû naìy moüi thuäüc tênh âãöu laì thuäüc tênh khoïa . do âoï R åí daûng
chuáøn 3NF
3 Daûng chuáøn Boyce Codd
Cho læåüc âäö quan hãû R vaì táûp phuû thuäüc haìm F, R âæåüc goüi lag daûng chuáøn Boyce
Codd , kyï hiãûu BCNF nãúu X®A âuïng trong R vaì AÏX thç X phaíi laì mäüt khoïa cuía R.
Vê duû: R= CZS nhæ trãn
F=(CS®Z, Z®C)
Ta tháúy Z®C âuïng trong F, CÏZ vaì Z khäng phaíi laì mäüt khoïa cuía R( khoïa cuía R laì
CS hoàûc CZ) suy ra R åí 3NF nhæng khäng phaíi laì chuáøn BCNF
Tæì vê duû naìy ta tháúy mäüt læåüc âäö quan hãû coï thãø åí chuáøn 3NF nhæng khäng åí BCNF.
Xæí lyï thäng tin trong CSDL
Trang 8
4.2.3 Taïch khäng máút thäng tin thaình caïc daûng chuáøn BCBF
Cho læåüc âäö quan hãû U, táûp phuû thuäüc haìm F, R ÍU. Chiãúu cuía F lãn R laì táûp phuû
thuäüc haìm Kyï hiãûu PR(F) âæåüc xaïc âënh nhæ sau:
PR(F) = (X®Y sao cho X,Y ÍR, F suy ra logic X®Y)
Bäø âãö:1
Giaí sæí R laì læåüc âäö quan hãû ,F laì táûp phuû thuäüc haìm trãn R, P={R1,R2,..,Rn} laì pheïp
taïch khäng máút thäng tin âäúi våïi R.Nãúu Q=(S1,S2) laì pheïp taïch khäng máút thäng tin
cuía R1 âäúi våïi táûp phuû thuäüc haìm F1= PR1(F)
Thç pheïp taïch P’= {S1,S2,R2,..,Rn} cuîng khäng máút thäng tin.
Chæïng minh:
Láúy 1 quan hãû r thoía maîn F
do P laì pheïp taïch khäng máút thäng tin nãn r= PR1(r) ¥ PR2(r) ¥ ... ¥ PRn(r)
Âàût r1 = PR1(r), do âoï r1 thoía maîn F1= PR1(F), màût khaïc do pheïp taïch Q=(S1,S2)
cuía R1 laì khäng máút thäng tin nãn
r1=PS1(r1) ¥ PS2(r1)
= PS1(PR1(r)) ¥ PS2(PR1(r))
= PS1(r) ¥ PS2(r)
Váûy ta coï: r= PR1(r) ¥ PR2(r) ¥ ... ¥ PRn(r)
= PS1(r) ¥ PS2(r) ¥ PR2(r) ¥ ... ¥ PRn(r)
âiãöu naìy chæïng toí pheïp taïch P’= {S1,S2,R2,..,Rn} cuîng khäng máút thäng tin.
Tæì bäø âãö naìy ta suy ra phæång phaïp taïch mäüt læåüc âäö quan hãû thaình caïc læåüc âäö åí daûng
chuáøn BCNF
Cho læåüc âäö quan hãû R vaì táûp phuû thuäüc haìm F.Nãúu R khäng åí daûng chuáøn BCNF thç
tçm âæåüc êt nháút laì mäüt phuû thuäüc haìm X®A, AÏX vaì X khäng phaíi laì siãu khoïa( X
khäng suy ra R). Khi âoï taïch R thaình 2 læåüc âäö quan hãû sau:
R-A vaì XA
Khi âoï ta coï R-A ÇXA = X
X®A=(XA-(R-A))
Do âoï pheïp taïch laì khäng máút thäng tin.
Nãúu læåüc âäö R1 åí daûng chuáøn BCNF âäúi våïi PR1(F) thç âæa R1 vaìo pheïp taïch. Ngæåüc
laûi thç R1 chæa åí daûng chuáøn BCNF âäúi våïi PR1(F) thç tiãúp tuûc quaï trçnh trãn .
ÅÍ âáy R1= R-a hoàûc R1=XA
Bäø âãö:2
1. Moüi læåüc âäö quan hãû chè coï 2 thuäüc tênh âãöu åí daûng chuáøn BCNF
2. Nãúu læåüc âäö quan hãû R khäng åí daûng chuáøn BCNF thç coï thãø tçm ra âæåüc hai thuäüc
tênh A vaì B sao cho (R-AB ) ® A âuïng trong R
Chæïng minh.
1 Moüi læåüc âäö quan hãû chè coï 2 thuäüc tênh âãöu åí daûng chuáøn BCNF
Xæí lyï thäng tin trong CSDL
Trang 9
Nãúu R = AB thç táûp phuû thuäüc haìm trãn R coï thãø laì F1= {A®B}, F2 = { B®A},
F3= { A®B, B®A}.
Âäúi våïi F1 ta coï A®B, BÏA , A laì khoïa msuy ra R åí daûng BCNF
Âäúi våïi F2 ta coï B®A, AÏB, B laì khoïa suy ra R åí daûng BCNF
Âäúi våïi F3 ta coï hoàûc A hoàûc B laì khoïa suy ra R åí daûng chuáøn BCNF
2. Nãúu læåüc âäö quan hãû R khäng åí daûng chuáøn BCNF thç coï thãø tçm ra âæåüc hai thuäüc
tênh A vaì B sao cho (R-AB ) ® A âuïng trong R
Nãúu R khäng åí daûng chuáøn BCNF thç täön taûi mäüt phuû thuäüc haìm X®A, AÏX vaì X
khäng phaíi laì khoïa (X khäng suy ra R), thç trong R phaíi täön taûi êt nháút mäüt thuäüc tênh
B khäng thuäüc XA( nãúu khäng thç XA=R vaì X®R). Nhæ váûy (R-AB)®A lad âuïng
trong R
(Vç X Í R_AB do AÏX vaì BÏX)
Thuáût toaïn taïch khäng máút thäng tin thaình caïc læåüc âäö åí daûng BCNF
Âáöu vaìo:
Læåüc âäö quan hãû R
Táûp phuû thuäüc haìm F trãn R
Âáöu ra:
Pheïp taïch P = { R1, R2,...,Rn } cuía R khäng máút thäng tin
Coï nghéa laì Mp(r)= r våïi moüi r thoía maîn F
Phæång phaïp:
Chæång trçnh chênh:
Z:=R { Bàõt âáöu pheïp taïch gaïn Z= R}
Repeat
Taïch {Thuí tuûc taïch} Z thaình Z-A vaì XA åí âáy Xa åí daûng chuáøn BCNF vaì X®A
Âæa XA vaìo pheïp taïch
Z:=Z-A
Until Z khäng thãø taïch âæåüc båíi bäü âãö âaî nãu
Âæa Z vaìo pheïp taïch
Thuí tuûc Taïch
If Z khäng chæïa A,B sao cho AÎ(Z-AB)+ then Return
Else
Begin
Láúy càûp A,B thoía maîn AÎ(Z-AB)+
Y:=Z-B
While Y coìn chæïa A,b sao cho AÎ(Z-AB)+ do
Y:= Y-B
Z:=Y
Return
Vê duû:
Xeït læåüc âäö quan hãû U= CTHRSG
Åí âáy:
Xæí lyï thäng tin trong CSDL
Trang 10
C: män hoüc (ngoaûi ngæî)
T: Giaïo viãn
H: Giåì hoüc
R: phoìng hoüc
G: trçnh âäü
S: Sinh viãn
Ta coï táûp phuû thuäüc haìm F={ C®T, RH®C, HT®R, CS®G, HS®R } trong âoï caïc
phuû thuäüc haìm âæåüc giaíi thêch nhæ sau:
C®T: mäùi män hoüc chè coï mäüt giaïo viãn
RH®C: Taûi mäüt phoìng hoüc ,åí mäüt giåì nháút âënh thç chè hoüc mäüt män hoüc
HT®R: Mäùi giaïo viãn , taûi mäüt giåì nháút âënh chè åí mäüt phoìng nháút âënh
CS®G: Mäùi sinh viãn hoüc män ngoaûi ngæî naìo âoï chè åí mäüt trçnh âäü nháút âënh
HS®R: Mäùi sinh viãn taûi mäüt giåì hoüc taûi mäüt phoìng nháút âënh
Yãu cáöu:
Duìng thuáût toaïn âaî trçnh baìy , taïch læåüc âäö quan hãû U trãn thaình caïc læåüc âäö quan hãû åí
daûng BCNF vaì pheïp taïch khäng máút thäng tin.
Ta coï U= CTHRSG
Xeït càûp C,T
Ta coï (HRSG)+ = U= CTHRSG chæïa C vaì T
Âàût A=C,B=T
Y=CHRSG { Loaûi B ra khoíi læåüc âäö quan hãû }
Xeït càûp C,H , ta coï (RSG)+ khäng chæïa C vaì H
Xeït càûp C,R ta coï (HSG)+ chæïa R
Âàût A= R, B=C
Âàût Y= HRSG { loaûi B ra khoíi Y }
Xeït càûp R,G ta coï (HS)+ chæïa R
Âàût A=R, B=G
Y= HRS { loaûi B ra khoíi Y }
Tiãúp tuûc ta tháúy khäng coï càûp naìo bë loaûi khoíi Y nãn Y= HRS åí daûng chuáøn BCNF
Khi âoï ta coï thãø taïch U= CTHRSG thaình
1. HRS : âoïng vai troì laì XA våïi X=HS , A=R
2. Z:= CTHRSG-A = CTHSG
Tiãúp tuûc taïch pháön coìn laûi Z= CTHSG nhæ âaî laìm åí trãn
Danh saïch caïc càûp A,B láön læåüt nhæ sau:
1. trong CTHSG A= T, B= H Þ Y= CTSG
2. trong CTSG A= T, B=S ÞY= CTG
2. trong CTG A= T, B=G ÞY= CT
Y= CT åí daûng chuáøn BCNF, trong âoï C®T, âæa CT vaìo pheïp taïch våïi XA
=CT,X=C,A=T
Z= CHSG ( chæa åí daûng BCNF) tiãúp tuûc taïch
Trong CHSG A= G, B=H ÞY= CSG
Xæí lyï thäng tin trong CSDL
Trang 11
Ta coï phuû thuäüc haìm CS®G ÎF nãn Y= CSG åí daûng chuáøn BCNF, âæa BCNF vaìo
pheïp taïch
XA=CSG, X=CS, A=G
Pháön coìn laûi Z= CHSG-A = CHS åí daûng chuáøn BCNF
Váûy cuäúi cung ta coï pheïp taïch P khäng máút thäng tin vaì caïc pheïp taïch åí daûng BCNF
nhæ sau
P= { HRS, CT, CSG, CHS }
Các file đính kèm theo tài liệu này:
- tailieu.pdf