U BAN NHÂN DÂN THÀNH PH HÀ NI
S BƯU CHÍNH VIN THÔNG THÀNH PH
GIÁO TRÌNH
CƠ S D LIU
(Mã s giáo trình: 2CD3)
HÀ NI 2005
1
Li m đầu
Ngày nay, cơ s d liu đã có nhiu ng dng trong mi hot động ca xã
hi. Mun thiết kế và s dng cơ s d liu chúng ta phi nm được các k thut
cơ bn ca cơ s d liu. Giáo trình này nhm trình bày các k thut cơ s ca cơ
s d liu truyn thng, đó là mô hình liên kết thc th, mô hình cơ s d liu quan
h. Giáo trình cũng trình bày cách thiết kế mt cơ s d liu quan h, cách s dng
các phép toán đại s quan h để to, cp nht và truy vn cơ s d liu và khái
nim ph thuc hàm ng dng trong l
í thuyết thiết kế và chun hóa cơ s d liu
quan h.
Giáo trình cn thiết cho tt c các đối tượng mun tìm hiu và thiết kế các cơ
s d liu quan h ng dng trong công tác qun lý.
2
- Tên môn hc: Cơ s d liu.
- Mã s môn hc: 2CD3.
- Thi gian: Lý thuyết + Bài tp 45 tiết.
- Mc tiêu: Trang b các kiến thc cơ bn v Cơ s d liu truyn thng.
- Nhng kiến thc cn phi được trang b trước khi hc: không.
- Ni dung:
Chương I: CÁC KHÁI NIM CƠ BN V CƠ S D LIU
Chương II: MÔ HÌNH LIÊN KT THC TH
Chương III: MÔ HÌNH QUAN H, CÁC RÀNG BUC QUAN
HĐẠI S QUAN H
Chương IV: PH THUC HÀM VÀ CHUN HÓA CSDL
QUAN H, CÁC THUT TOÁN THIT K CSDL
QUAN H
3
MC LC
LI M ĐẦU...................................................... ERROR! BOOKMARK NOT DEFINED.
CHƯƠNG I- CÁC KHÁI NIM CƠ BN V H CƠ S D LIU .......................... 7
I- Cơ s d liu ........................................................................................................... 7
I.1- Định nghĩa cơ s d liu ..................................................................................... 7
I.2- Các tính cht ca mt cơ s d liu.................................................................... 8
II- H qun tr cơ s d liu ....................................................................................... 9
II.1- Định nghĩa h qun tr cơ s d liu .............................................................. 9
II.2- Các chc năng ca mt h qun tr cơ s d liu .......................................... 9
II.3- Các đặc trưng ca gii pháp cơ s d liu................................................... 11
II.4- Ví d v mt cơ s d liu............................................................................. 13
III- Mô hình cơ s d liu........................................................................................... 15
III.1- Các loi mô hình cơ s d liu..................................................................... 15
III.2- Lược đồ và trng thái cơ s d liu.............................................................. 17
IV- Con người trong h cơ s d liu........................................................................ 18
IV.1- Người qun tr h cơ s d liu (Database Administrator – DBA).............. 18
IV.2- Người thiết kế cơ s d liu (Database Designer) ....................................... 18
IV.3- Nhng người s dng (End User)................................................................. 18
IV.4- Người phân tích h thng và lp trình ng dng.......................................... 19
IV.5- Người thiết kế và cài đặt h qun tr d liu ................................................ 19
IV.6- Nhng người phát trin công c................................................................... 19
IV.7- Các thao tác viên và nhng người bo trì .................................................... 19
V- Ngôn ng cơ s d liu và giao din................................................................... 20
V.1- Các ngôn ng h qun tr cơ s d liu........................................................ 20
V.2- Các loi giao din h qun tr cơ s d liu ................................................ 21
VI- Câu hi ôn tp....................................................................................................... 21
CHƯƠNG II- MÔ HÌNH THC TH - LIÊN KT .................................................. 23
I- S dng mô hình quan nim bc cao cho vic thiết kế cơ s d liu .............. 23
II- Các thành phn cơ bn ca mô hình ER ........................................................... 25
II.1- Thc th và thuc tính................................................................................... 25
II.2- Kiu thc th, tp thc th, khóa và tp giá tr ............................................ 27
II.3- Kiu liên kết, tp liên kết và các th hin ..................................................... 30
II.4- Cp liên kết, tên vai trò và kiu liên kết đệ quy............................................ 31
II.5- Các ràng buc trên các kiu liên kết ........................................................... 32
4
II.6- Thuc tính ca các kiu liên kết.................................................................... 33
II.7- Các kiu thc th yếu.................................................................................... 34
III- Ví d v thiết kế mô hình ER .............................................................................. 35
III.1- Xác định các kiu thc th, các thuc tính và các kiu liên kết.................... 35
IV- Mô hình thc th liên kết m rng (mô hình EER) .......................................... 39
IV.1- Lp cha, lp con và s tha kế..................................................................... 39
IV.2- Chuyên bit hóa, tng quát hóa.................................................................... 40
IV.2.1- Chuyên bit hóa........................................................................................ 40
IV.2.2- Tng quát hóa........................................................................................... 42
IV.2.3- Phân cp chuyên bit và lưới chuyên bit................................................ 43
IV.2.4- Các ràng buc và các đặc trung ca chuyên bit hóa, tng quát hóa....... 43
IV.3- Sơ đồ mô hình EER....................................................................................... 44
V- Tng kết chương và câu hi ôn tp..................................................................... 45
V.1- Tng kết chương............................................................................................ 45
V.2- Câu hi ôn tp............................................................................................... 45
V.3- Bài tp........................................................................................................... 46
CHƯƠNG III- MÔ HÌNH QUAN H, CÁC RÀNG BUC QUAN HĐẠI S
QUAN H 48
I- Các khái nim ca mô hình quan h .................................................................. 48
I.1- Min, thuc tính, b và quan h ........................................................................ 48
I.2- Các đặc trưng ca các quan h......................................................................... 50
I.2.1- Th t ca các b trong mt quan h....................................................... 50
I.2.2- Th t ca các giá tr bên trong mt b ................................................... 51
I.2.3- Các giá tr trong mt b ........................................................................... 51
I.2.4- Th hin ca mt quan h ........................................................................ 52
II- Các ràng buc quan h, lược đồ cơ s d liu quan h .................................... 52
II.1- Các ràng buc min...................................................................................... 52
II.2- Ràng buc khoá và ràng buc trên các giá tr không xác định (null) .......... 53
II.3- Cơ s d liu quan h và lược đồ cơ s d liu quan h ............................. 54
II.4- Toàn vn thc th, toàn vn tham chiếu và khoá ngoài................................ 58
III- Các phép toán trên mô hình quan h ................................................................. 60
III.1- Các phép toán cp nht ................................................................................ 60
III.1.1- Phép chèn (Insert) .................................................................................... 60
III.1.2- Phép xoá (Delete)..................................................................................... 61
III.1.3- Phép sa đổi (Update).............................................................................. 62
III.2- Các phép toán đại s quan h....................................................................... 62
III.2.1- Phép chn (SELECT)............................................................................... 63
5
III.2.2- Phép chiếu (PROJECT)............................................................................ 65
III.2.3- Phép đặt li tên (RENAME) .................................................................... 66
III.2.4- Các phép toán lý thuyết tp hp............................................................... 67
III.2.5- Phép ni (JOIN) ....................................................................................... 70
III.2.6- Tp hp đầy đủ các phép toán quan h .................................................... 72
III.2.7- Phép chia .................................................................................................. 73
III.3- Các phép toán quan h b sung.................................................................... 74
III.3.1- Các hàm nhóm và các phép nhóm............................................................ 74
III.3.2- Các phép toán khép kín đệ quy ................................................................ 75
III.3.3- Các phép toán ni ngoài (outer join), hp ngoài (outer union)................ 75
III.4- Mt s ví d v truy vn trong đại s quan h.............................................. 76
IV- Chuyn đổi mô hình ER thành mô hình quan h.............................................. 77
IV.1- Các quy tc chuyn đổi................................................................................. 77
IV.2- Chuyn đổi mô hình c th............................................................................ 81
V- Tng kết chương và câu hi ôn tp..................................................................... 81
V.1- Tng kết chương............................................................................................ 81
V.2- Câu hi ôn tp............................................................................................... 82
V.3- Bài tp........................................................................................................... 83
CHƯƠNG IV- PH THUC HÀM VÀ CHUN HÓA CƠ S D LIU QUAN H,
CÁC THUT TOÁN THIT K CƠ S D LIU QUAN H............................................ 86
I- Các nguyên tc thiết kế lược đồ quan h ........................................................... 86
I.1- Ng nghĩa ca các thuc tính quan h.............................................................. 86
I.2- Thông tin dư tha trong các b và s d thường cp nht ................................ 87
I.3- Các giá tr không xác định trong các b ........................................................... 89
I.4- Sinh ra các b gi.............................................................................................. 89
II- Các ph thuc hàm .............................................................................................. 90
II.1- Định nghĩa ph thuc hàm............................................................................ 90
II.2- Các quy tc suy din đối vi các ph thuc hàm.......................................... 93
II.3- S tương đương ca các tp ph thuc hàm ................................................ 97
II.4- Các tp ph thuc hàm ti thiu................................................................... 98
III- Các dng chun da trên khóa chính................................................................. 99
III.1- Nhp môn v chun hoá................................................................................ 99
III.2- Dng chun 1.............................................................................................. 101
III.3- Dng chun 2.............................................................................................. 102
III.4- Dng chun 3.............................................................................................. 104
III.5- Dng chun Boyce-Codd............................................................................ 104
IV- Các thut toán thiết kế cơ s d liu quan h và các dng chun cao hơn... 106
6
IV.1- Định nghĩa tng quát các dng chun........................................................ 107
IV.2- Các thut toán thiết kế lược đồ cơ s d liu quan h ............................... 108
IV.2.1- Tách quan h và tính không đầy đủ ca các dng chun ....................... 108
IV.2.2- Phép tách và s bo toàn ph thuc ....................................................... 109
IV.2.3- Phép tách và kết ni không mt mát ...................................................... 111
IV.3- Các ph thuc hàm đa tr và dng chun 4................................................ 118
IV.3.1- Định nghĩa ph thuc đa tr.................................................................... 118
IV.3.2- Các quy tc suy din đối vi các ph thuc hàm và ph thuc đa tr.... 120
IV.3.3- Dng chun 4.......................................................................................... 121
IV.3.4- Tách có tính cht ni không mt mát thành các quan h 4NF .............. 121
IV.4- Các ph thuc ni và dng chun 5 ........................................................... 122
V- Tng kết chương và câu hi ôn tp................................................................... 124
V.1- Tng kết chương.......................................................................................... 124
V.2- Câu hi ôn tp............................................................................................. 125
V.3- Bài tp......................................................................................................... 126
7
Chương I- CÁC KHÁI NIM CƠ BN V H CƠ S
D LIU
Các cơ s d liu và các h cơ s d liu đã tr thành mt thành phn ch yếu
trong cuc sng hàng ngày ca xã hi hin đại. Trong vòng mt ngày con người có
th có nhiu hot động cn có s giao tiếp vi cơ s d liu như: đến ngân hàng để
rút tin và gi tin, đăng ký ch trên máy bay hoc khách sn, truy cp vào thư vin
đã tin hc hoá để tìm sách báo, đặt mua tp chí mt nhà xut bn… Ti các ngân
hàng, các ca hàng, người ta cũng cp nht t động vic qun lý tin bc, hàng hoá.
Tt c các giao tiếp như trên được gi là các ng dng ca cơ s d liu
truyn thng. Trong các cơ s d liu truyn thng, hu hết các thông tin được lưu
gi và truy cp là văn bn hoc s. Nhng năm gn đây, nhng tiến b v k thut
đã đưa đến nhng ng dng mi ca cơ s d liu. Các cơ s d liu đa phương
tin bây gi có th lưu tr hình nh, phim và tiếng nói. Các h thng thông tin địa
lý có th lưu tr và phân tích các bn đồ, các d liu v thi tiết và các nh v tinh.
Kho d liu và các h thng phân tích trc tuyến được s dng trong nhiu công ty
để ly ra và phân tích nhng thông tin có li t các cơ s d liu rt ln nhm đưa
ra các quyết định. Các k thut cơ s d liu động và thi gian thc được s dng
trong vic kim tra các tiến trình công nghip và sn xut. Các k thut tìm kiếm cơ
s d liu đang được áp dng cho World Wide Web để cung cp vic tìm kiếm các
thông tin cn thiết cho người s dng bng cách duyt qua Internet.
Để hiu được các cơ s k thut ca cơ s d liu chúng ta phi bt đầu t các
cơ s k thut ca cơ s d liu truyn thng. Mc đích ca giáo trình này là
nghiên cu các cơ s k thut đó. Trong chương này chúng ta s định nghĩa cơ s
d liu, h qun tr cơ s d liu, mô hình cơ s d liu và các thut ng cơ bn
khác.
I- Cơ s d liu
I.1- Định nghĩa cơ s d liu
Cơ s d liu và k thut cơ s d liu đã có nh hưởng rt ln đến vic s
dng máy tính. Có th nói rng cơ s d liu đóng vai trò quan trng trong mi
8
lĩnh vc có s dng máy tính như giáo dc, thương mi, k ngh, khoa hc, thư
vin,…. Thut ng cơ s d liu tr thành mt thut ng ph dng.
Mt cơ s d liu là mt tp hp các d liu có liên quan vi nhau, được lưu
tr trên máy tính, có nhiu người s dng và được t chc theo mt mô hình. D
liu là nhng s kin có th ghi li được và có ý nghĩa.
Ví d, để qun lý vic hc tp trong mt môi trường đại hc, các d liu là các
thông tin v sinh viên, v các môn hc, đim thi….Chúng ta t chc các d liu đó
thành các bng và lưu gi chúng vào s sách hoc s dng mt phn mm máy tính
để lưu gi chúng trên máy tính. Ta có mt tp các d liu có liên quan đến nhau và
mang nhiu ý nghĩa, đó là mt cơ s d liu.
I.2- Các tính cht ca mt cơ s d liu
Mt cơ s d liu có các tính cht sau:
1. Mt cơ s d liu biu th mt khía cnh nào đó ca thế gii thc như hot
động ca mt công ty, mt nhà trường, mt ngân hàng… Nhng thay đổi ca thế
gii thc phi được phn ánh mt cách trung thc vào trong cơ s d liu. Nhng
thông tin được đưa vào trong cơ s d liu to thành mt không gian cơ s d liu
hoc là mt “thế gii nh” (miniworld) .
2. Mt cơ s d liu là mt tp hp d liu liên kết vi nhau mt cách logic
và mang mt ý nghĩa c hu nào đó. Mt cơ s d liu không phi là mt tp hp
tu tin.
3. Mt cơ s d liu được thiết kếđược ph biến cho mt mc đích riêng.
Nó có mt nhóm người s dng có ch định và có mt s ng dng được xác định
phù hp vi mi quan tâm ca người s dng. Nói cách khác, mt cơ s d liu có
mt ngun cung cp d liu, mt mc độ tương tác vi các s kin trong thế gii
thc và mt nhóm người quan tâm tích cc đến các ni dung ca nó.
Mt cơ s d liu có th có c tu ý và có độ phc tp thay đổi. Có nhng cơ
s d liu ch gm vài trăm bn ghi (như cơ s d liu phc v vic qun lý lương
mt cơ quan nh), và có nhng cơ s d liu có dung lượng rt ln (như các cơ
s d liu phc v cho vic tính cước đin thoi, qun lý nhân s trên mt phm vi
ln). Các cơ s d liu phi được t chc qun lý sao cho nhng người s dng có
th tìm kiếm d liu, cp nht d liu và ly d liu ra khi cn thiết. Mt cơ s d
liu có th được to ra và duy trì mt cách th công và cũng có th được tin hc
9
hoá. Mt cơ s d liu tin hc hoá được to ra và duy trì bng bng mt nhóm
chương trình ng dng hoc bng mt h qun tr cơ s d liu.
II- H qun tr cơ s d liu
II.1- Định nghĩa h qun tr cơ s d liu
Mt h qun tr cơ s d liu là mt tp hp chương trình giúp cho người s
dng to ra, duy trì và khai thác mt cơ s d liu. Nó là mt h thng phn mm
ph dng, làm d quá trình định nghĩa, xây dng và thao tác cơ s d liu cho các
ng dng khác nhau.
Định nghĩa mt cơ s d liu bao gm vic đặc t các kiu d liu, các cu
trúc và các ràng buc cho các d liu s được lưu tr trong cơ s.
Xây dng mt cơ s d liu là quá trình lưu tr các d liu trên các phương
tin lưu tr được h qun tr cơ s d liu kim soát.
Thao tác mt cơ s d liu bao gm các chc năng như truy vn cơ s d liu
để ly ra các d liu c th, cp nht cơ s d liu để phn ánh các thay đổi trong
thế gii nh và to ra các báo cáo t các d liu.
Các h qun tr cơ s d liu dùng để th hin mt cơ s d liu tin hc hoá có
th là ph dng (là mt phn mm đóng gói) hoc có th là chuyên dng (là mt
tp các phn mm được to ra vi mt mc đích riêng).
Người ta gi cơ s d liu và h qun tr cơ s d liu bng mt thut ng
chung là h cơ s d liu. Môi trường ca mt h cơ s d liu được mô t bng
hình v dưới đây (hình I-1).
II.2- Các chc năng ca mt h qun tr cơ s d liu
Mt h qun tr cơ s d liu hin nay có các chc năng sau :
1. Lưu tr các định nghĩa, các mi liên kết d liu (gi là siêu d liu) vào
mt t đin d liu. Các chương trình truy cp đến cơ s d liu làm vic thông
qua h qun tr cơ s d liu. H qun tr cơ s d liu s dng d liu trong t
đin d liu để tìm kiếm các cu trúc thành phn d liu và các mi liên kết được
yêu cu. Mi s thay đổi trong các tp cơ s d liu s được t động ghi li vào t
đin d liu. Như vy, h qun tr cơ s d liu gii phóng người s dng khi vic
lp trình cho các mi liên kết phc tp trong mi chương trình, vic sa đổi các
10
tr cơ s d liu loi b s ph thuc gia d liu và cu trúc ra khi h thng.
ình I-1. Môi trường h cơ s d liu
2. To ra các cu tr d liu. Nó giúp
ác d liu được nhp vào để phù hp vi các cu trúc d liu
chương trình truy cp đến tp cơ s d liu đã b sa đổi. Nói cách khác, h qun
Người s dng / Người lp trình
Chương trình ng dng / Truy vn
Phn mm x
Truy vn / Chương trình
Phn mm truy cp đến các
d liu được lưu tr
Định nghĩa cơ s d
liu (Siêu d liu )
Cơ s d liu
trúc phc tp theo yêu cu để lưu
người s dng làm nhim v khó khăn là định nghĩa và lp trình cho các đặc trưng
vt lý ca d liu.
3. Biến đổi c
đim 2. Như vy, h qun tr cơ s d liu giúp người s dng phân bit dng logic
và dng vt lý ca d liu. Bng vic duy trì s độc lp d liu, h qun tr cơ s d
liu chuyn các yêu cu logic thành các lnh định v mt cách vt lý và ly ra các
d liu yêu cu. Điu đó cũng có nghĩa là h qun tr cơ s d liu to khuôn dng
11
o ra mt h thng bo mt và áp đặt tính bo mt và riêng tư trong cơ s
o ra các cu trúc phc tp cho phép nhiu người s dng truy cp đến
Cung cp các th tc sao lưu và phc hi d liu để đảm bo s an toàn và
à áp đặt các quy tc an toàn để loi b vn đề toàn vn d liu.
p vic truy cp d liu thông qua mt ngôn ng truy vn. Mt
II.3- Các đặc trưng ca gii pháp cơ s d liu
p (file) là mt phương
pháp
đim. Th nht,
đó là
cho các d liu được ly ra để làm cho nó phù hp vi mong mun logic ca người
s dng.
4. T
d liu.
5. T
d liu
6.
toàn vn d liu.
7. Xúc tiến v
Điu đó cho phép ta làm ti thiu s dư tha d liu và làm ti đa tính nht quán
d liu.
8. Cung c
ngôn ng truy vn là mt ngôn ng phi th tc cho phép người s dng ch ra cái gì
cn phi làm mà không cn phi ch ra nó được làm như thế nào. Các h qun tr
cơ s d liu cũng cung cp vic truy cp d liu cho nhng người lp trình thông
qua các ngôn ng th tc.
Trước khi khái nim cơ s d liu ra đời, h thng t
được áp dng trong vic qun lý. Mt tp có th được xem là mt cp h sơ
lưu tr các thông tin liên quan đến tng công vic riêng bit. Ví d, trong mt cơ
quan, b phn tài v s có mt cp h sơ liên quan đến lương ca các nhân viên, b
phn t chc có cp h sơ liên quan đến vn đề nhân s… Vic xđể ly ra các
thông tin như là các thng kê v lương, v quá trình công tác… lúc đầu được thc
hin mt cách th công. Dn dn, khi lượng thông tin ngày càng ln, vic x
thông tin ngày càng phc tp, người ta s dng máy tính vào vic qun lý. Các cp
h sơ được chuyn thành các tp trên máy tính và vic x lý thông tin được thc
hin bng cách lp trình (trong mt ngôn ng lp trình thế h 3).
Vic qun lý theo gii pháp h thng tp có rt nhiu nhược
s dư tha thông tin: cùng mt thông tin được lưu tr nhiu ln (chng hn,
danh sách nhân viên có mt trong tp lương và cũng có mt c trong tp nhân s).
Điu đó gây ra vic lãng phí b nh và d gây sai sót trong khi cp nht d liu, d
sinh ra các d liu không đúng đắn. Th hai, đó là vic ph thuc gia chương
12
ii quyết được nhng nhược đim đó. C
th, g
d liu là h thng cơ s d liu
khôn
s d liu được nhúng vào trong
các c
t người có th đòi hi mt
phi
dng phi cho phép nhiu người
s d
trình ng dng và d liu. Mi khi có s thay đổi cu trúc tp và các d liu trong
tp, chương trình ng dng khai thác thông tin trên tp đó cũng thay đổi theo. Điu
đó gây ra khó khăn ln cho vic bo trì.
Gii pháp cơ s d liu ra đời đã g
ii pháp cơ s d liu có nhng đặc trưng sau:
1. Bn cht t mô t ca h cơ s d liu.
Mt đặc trưng cơ bn ca gii pháp cơ s
g ch gm có bn thân cơ s d liu mà còn có c định nghĩa hoc mô t đầy
đủ v cu trúc cơ s d liu và các ràng buc. Định nghĩa này được lưu tr trong t
đin h thng, nó cha các thông tin như là cu trúc ca mi tp, kiu và dng lưu
tr ca tng mc d liu. Các thông tin được lưu gi trong t đin gi là siêu d
liu (meta-data) và chúng mô t cu trúc ca d liu nguyên thu (hình I-1). Phn
mm h qun tr cơ s d liu và nhng người s dng cơ s d liu s dng t
đin để ly thông tin v cu trúc ca cơ s d liu.
2. S độc lp gia chương trình và d liu.
Trong h thng tp, cu trúc ca các tp cơ
hương trình truy cp, vì vy bt k mt thay đổi nào v cu trúc ca mt tp
cũng đòi hi phi thay đổi tt c các chương trình truy cp đến tp đó. Ngược li,
các chương trình truy cp ca h qun tr cơ s d liu không đòi hi vic thay đổi
như thế. Cu trúc ca các tp d liu được lưu tr trong t đin tách ri vi các
chương trình truy cp. Tính cht này gi là s độc lp d liu – chương trình.
3. H tr các khung nhìn d liu nhiu thành phn.
Mt cơ s d liu có nhiu người s dng, mi m
cnh hoc mt khung nhìn (view) khác nhau. Mt khung nhìn có th là mt
tp con ca cơ s d liu hoc nó có th cha các d liu o, đó là các d liu được
trích ra t các tp cơ s d liu khác nhau nhưng không được lưu tr mt cách rõ
ràng. Mt h qun tr cơ s d liu nhiu người s dng phi cung cp nhiu công
c để định nghĩa các khung nhìn nhiu thành phn.
4. Chia s d liu và nhiu người s dng.
Mt h qun tr cơ s d liu nhiu người s
ng truy cp đồng thi đến cơ s d liu. H qun tr cơ s d liu phi có
phn mm kim tra cnh tranh để đảm bo rng các người s dng cp nht đến
13
II.4- Ví d v mt cơ s d liu
d liu mà nhiu người đã quen biết: cơ s
d li
cùng mt cơ s d liu phi được thc hin theo cách được kim tra để cho kết qu
ca các cp nht là đúng đắn.
Chúng ta hãy xem xét mt cơ s
u TRƯỜNG. Cơ s d liu này lưu gi các thông tin liên quan đến sinh viên,
các môn hc, đim… trong mt môi trường đại hc. Cơ s d liu được t chc
thành 5 bng, mi bng lưu tr các bn ghi d liu cùng mt kiu. Bng
SINHVIÊN lưu gi d liu v các sinh viên, bng MÔNHC lưu gi các d liu
v các môn hc, bng HCPHN lưu gi các d liu v các hc phn ca các môn
hc, bng ĐIM lưu gi đim ca tng hc phn ca các sinh viên và bng
BITTRƯỚC lưu gi thông tin v các môn hc cn biết trước ca các môn hc.
Cu trúc ca cơ s d liu và mt vài mu d liu ví d được trình bày hình I-2.
SINHVIÊN MãsSV HtênSV Lp Chuyênngành
17 Nguyn Nam K45T Tinhc
8 Bc K45C CôngnghTT
MÔNHC MãsMH TênMH Sốđvht Khoa
101 Tinhc cơ s 8 Công ngh
102 Cu trúc DL và GT 5 Công ngh
103 Toán ri rc 5 Công ngh
104 Cơ s d liu 3 Công ngh
HCPHN MãsHP MãsMH Hck Năm Têngiáoviên
1011 101 1 2001 Vân
1012 101 2 2002 Vân
1031 103 1 2001 Hoàng
1032 103 2 2002 Hoàng
1020 102 3 2002 Lân
1040 104 4 2002 Huy
14
ĐI MãsSV MãsHP Đim M
17 1031 8
17 1020 6
8 1031 9
8 1011 10
8 1020 7
8 1040 9
BI TRƯỚC Mã sMH MãsMHbiếttrước T
104 102
104 103
102 101
Hình I-2. Cơ s u TRƯỜNG
Để định nghĩa cơ s u trúc ca các bn ghi
ca m
dng cơ s d liu TRƯỜNG, chúng ta lưu giũ các d liu để biu
din
d li
d liu này, chúng ta phi ch ra c
i tp (bng) bng cách đặc t các kiu khác nhau ca các phn t d liu s
được lưu tr trong mi bn ghi. Theo hình I-2 , mi bn ghi SINHVIÊN bao gm
các d liu để biu din Mã s sinh viên, H tên sinh viên, Lp, Chuyên ngành.
Mi bn ghi MÔNHC bao gm các d liu để biu din Tên môn hc, Mã s
môn hc, S đơn v hc trình, Khoa,… Chúng ta phi ch ra mt kiu d liu cho
mi phn t d liu bên trong các bn ghi. Ví d, ta có th đặc t H tên sinh viên
là mt dãy ký tđộ dài nh hơn hoc bng 30, Mã s sinh viên là mt s
nguyên,….
Để xây
mi sinh viên, mi môn hc,… vào các tp thích hp. Để ý rng các bn ghi
trong các tp khác nhau có th có mi quan h vi nhau. Ví d, bn ghi đối vi
Nguyn Nam trong tp SINHVIÊN có liên quan đến hai bn ghi trong tp ĐIM.
Các bn ghi này ch ra đim ca Nguyn Nam trong hai hc phn. Tương t như
vy, các bn ghi trong tp có mi quan h vi các bn ghi trong tp MÔNHC…
Thông thường mt cơ s d liu cha nhiu kiu bn ghi và cha nhiu mi quan
h gia các tp.
15
Thao tác cơ s d liu bao gm vic truy vn và cp nht cơ s d liu. Truy
vn cơ s d liu là đưa ra các yêu cu đối vi cơ s d liu để ly ra các thông tin
cn thiết. Ví d, chúng ta có th có các truy vn như: “Lit kê các môn hc và đim
thi ca sinh viên Nguyn Nam”, “ Đưa ra danh sách các sinh viên thi trượt môn cơ
s d liu”. Cp nht cơ s d liu bao gm vic thêm vào cơ s d liu bn ghi,
xoá b các bn ghi hoc sa đổi các giá tr trong các bn ghi. Các truy vn và các
cp nht phi được đặc t trong ngôn ng h cơ s d liu mt cách chính xác
trước khi chúng được x lý.
III- Mô hình cơ s d liu
Các loi cu trúc cơ s d liu và mi liên h gia chúng đóng vai trò rt ln
trong vic xác định tính hiu qu ca h qun tr cơ s d liu. Vì vy, thiết kế cơ
s d liu tr thành hot động chính trong môi trường cơ s d liu.
Vic thiết kế cơ s d liu được thc hin đơn gin hơn nhiu khi ta s dng
các mô hình. Các mô hình là s tru tượng đơn gin ca các s kin trong thế gii
thc. Các tru tượng như vy cho phép ta kho sát các đặc đim ca các thc th
các mi liên h được to ra gia các thc th đó. Vic thiết kế các mô hình tt s
đưa ra các cơ s d liu tt và trên cơ s đó s có các ng dng tt. Ngược li, mô
hình không tt s đưa đến thiết kế cơ s d liu ti và dn đến các ng dng không
đúng.
Mt mô hình cơ s d liu là mt tp hp các khái nim dùng để biu din
các cu trúc ca cơ s d liu. Cu trúc ca mt cơ s d liu là các kiu d liu,
các mi liên kết và các ràng buc phi tuân theo trên các d liu. Nhiu mô hình
còn có thêm mt tp hp các phép toán cơ bn để đặc t các thao tác trên cơ s d
liu.
III.1- Các loi mô hình cơ s d liu
Có rt nhiu mô hình d liu đã được đề ngh. Chúng ta có th phân loi các
mô hình d liu da trên các khái nim mà chúng s dng để mô t các cu trúc cơ
s d liu.
Các mô hình d liu bc cao hoc mô hình d liu mc quan nim cung cp
các khái nim gn lin vi cách cm nhn d liu ca nhiu người s dng. Các mô
hình này tp trung vào bn cht logic ca biu din d liu, nó quan tâm đến cái
được biu din trong cơ s d liu ch không phi cách biu din d liu.
16
Các mô hình d liu bc thp hoc các mô hình d liu vt lý cung cp các
khái nim mô t chi tiết v vic các d liu được lưu tr trong máy tính như thế
nào. Các khái nim do mô hình d liu vt lý cung cp nói chung có ý nghĩa đối
vi các chuyên gia máy tính ch không có ý nghĩa my đối vi người s dng
thông thường. gia hai loi mô hình này là mt lp các mô hình d liu th hin,
chúng cung cp nhng khái nim mà người s dng có th hiu được và không xa
vi cách t chc d liu bên trong máy tính. Người ta còn gi loi mô hình d liu
này là loi mô hình d liu mc logic. Các mô hình d liu th hin che giu mt s
chi tiết v vic lưu tr d liu nhưng có th được cài đặt trc tiếp trên h thng máy
tính.
Trong chương II, chúng ta s nghiên cu mt mô hình d liu mc quan nim,
mô hình thc th - liên kết, gi tt là mô hình ER (Entity – Relationship Model).
Mô hình này s dng các khái nim thc th, thuc tính, mi liên kết, để din đạt
các đối tượng ca thế gii thc. Mt thc th din đạt mt đối tượng hoc mt khái
nim ca thế gii thc. Ví d, mt thc th là mt nhân viên hoc mt d án được
mô t trong cơ s d liu. Mt thuc tính din đạt mt đặc trưng nào đó ca thc
th. Chng hn, h tên, lương… là các thuc tính ca thc th nhân viên. Mt mi
liên kết gia hai hay nhiu thc th din đạt mt mi quan h qua li gia các thc
th. Ví d, gia thc th nhân viên và thc th d án có mi liên kết mt nhân viên
làm vic trên mt d án. Mô hình d liu hướng đối tượng cũng là mt mô hình d
liu bc cao. Nó s dng các khái nim như lp, phương thc, thông đip… Bn
đọc có th tìm hiu v mô hình này trong các tài liu [1], [2].
Các mô hình d liu th hin là các mô hình được s dng thường xuyên nht
trong các h cơ s d liu thương mi. Ba mô hình ni tiếng thuc loi này là mô
hình quan h, mô hình mng và mô hình phân cp. Các mô hình mng và phân cp
ra đời trước và được s dng rng rãi trong quá kh (trước 1970). Vào đầu nhng
năm 70, mô hình quan h ra đời. Do tính ưu vit ca nó, mô hình quan h dn dn
thay thế các mô hình mng và phân cp. Chúng ta s nghiên cu v mô hình quan
h trong chương III.
Các mô hình d liu vt lý mô t cách lưu tr d liu trong máy tính gii thiu
các thông tin như khuôn dng bn ghi, sp xếp bn ghi, đường truy cp…
17
III.2- Lược đồ và trng thái cơ s d liu
Trong mt mô hình d liu cn phi phân bit rõ gia mô t ca cơ s d liu
bn thân cơ s d liu. Mô t ca mt cơ s d liu được gi là lược đồ cơ s
d liu, nó được xác định rõ trong quá trình thiết kế cơ s d liu và không b thay
đổi thường xuyên. Đa s các mô hình d liu có các quy ước hin th các lược đồ.
Hin th ca mt lược đồ được gi là biu đồ ca lược đồ đó. Mt biu đồ lược đồ
ch th hin mt vài khía cnh ca lược đồ như là các kiu bn ghi, các mc d liu
và mt s kiu ràng buc. Các khía cnh khác không được th hin trong biu đồ
lược đồ.
Các d liu trong mt cơ s d liu có th thay đổi mt cách thường xuyên.
Các d liu trong mt cơ s d liu ti mt thi đim c th được gi là mt trng
thái cơ s d liu hoc là nh (snapshot) ca cơ s d liu. Nhiu trng thái quan
h có th được xây dng để làm tương ng vi mt lược đồ cơ s d liu c th.
Mi khi chúng ta chèn vào hoc loi b mt bn ghi, sa đổi giá tr ca mt mc d
liu trong mt bn ghi, chúng ta đã làm thay đổi trng thái ca cơ s d liu sang
mt trng thái khác.
Vic phân bit gia lược đồ cơ s d liu và trng thái cơ s d liu là rt
quan trng. Khi chúng ta định nghĩa mt cơ s d liu mi, ta ch đặc t lược đồ cơ
s d liu cho h qun tr cơ s d liu. Ti thi đim này, trng thái ca cơ s d
liu là mt trng thái rng, không có d liu. Chúng ta nhn được trng thái ban
đầu ca cơ s d liu khi ta nhp d liu ln đầu tiên. T đó tr đi, mi khi mt
phép toán cp nht được thc hin đối vi cơ s d liu, chúng ta nhn được mt
trng thái cơ s d liu khác. Ti mi thi đim, cơ s d liu có mt trng thái
hin ti. H qun tr cơ s d liu có trách nhim đảm bo rng mi trng thái cơ s
d liu là mt trng thái vng chc, nghĩa là mt trng thái tho mãn cu trúc và
các ràng buc được đặc t trong lược đồ. Vì vy, vic đặc t mt lược đồ đúng đắn
cho h qun tr cơ s d liu là mt vic làm cc k quan trng và lược đồ phi
được thiết kế mt cách cn thn. H qun tr cơ s d liu lưu tr các mô t ca các
cu trúc lược đồ và các ràng buc – còn gi là siêu d liu – vào trong t đin
(catalog) ca h qun tr sao cho phn mm h qun tr cơ s d liu có th tham
kho đến lược đồ khi nó cn. Đôi khi người ta còn gi lược đồ là mc tiêu
(intension) và trng thái cơ s d liu là m rng (extension) ca lược đồ.
18
IV- Con người trong h cơ s d liu
Vi mt cơ s d liu ln, rt nhiu người tham gia vào vic thiết kế, s dng
và duy trì cơ s d liu. Nhng người liên quan đến h cơ s d liu được chia
thành hai nhóm chính. Nhóm th nht gm nhng người mà công vic ca h liên
quan hàng ngày đến cơ s d liu, đó là nhng người qun tr cơ s d liu, thiết kế
cơ s d liu, s dng cơ s d liu, phân tích h thng và lp trình ng dng.
Nhóm th hai gm nhng người làm vic để duy trì môi trường h cơ s d liu
nhưng không quan tâm đến bn thân cơ s d liu, đó là nhng người thiết kế
cài đặt h qun tr cơ s d liu, phát trin công c, thao tác viên và bo trì.
IV.1- Người qun tr h cơ s d liu (Database Administrator – DBA)
Trong mt t chc có nhiu người cùng s dng các tài nguyên, cn phi có
mt người giám sát và qun lý. Trong môi trường h cơ s d liu, các tài nguyên
là cơ s d liu, h qun tr cơ s d liu và các phn mm liên quan. Người qun
tr h cơ s d liu là người chu trách nhim qun lý các tài nguyên đó. Người này
chu trách nhim v vic cho phép truy cp cơ s d liu, t chc và hướng dn
vic s dng cơ s d liu, cp các phn mm và phn cng theo yêu cu.
IV.2- Người thiết kế cơ s d liu (Database Designer)
Người này chu trách nhim xác định các d liu s được lưu gi trong cơ s,
chn các cu trúc thích hp để biu din và lưu gi các d liu đó. Nhng nhim
v này được thc hin trước khi cơ s d liu được cài đặt và ph biến. Người thiết
kế có trách nhim giao thip vi nhng người s dng tương lai để hiu được các
đòi hi ca hđưa ra mt thiết kế tho mãn các yêu cu đó. Anh ta cũng có
nhim v giao thip vi các nhóm người s dng và có kh năng h tr các yêu cu
ca các nhóm.
IV.3- Nhng người s dng (End User)
Nhng người s dng là nhng người mà công vic ca h đòi hi truy cp
đến cơ s d liu để truy vn, cp nht và sinh ra các thông tin. Có th chia nhng
người s dng thành hai nhóm chính: nhng người s dng th động (tc là nhng
người s dng không có nhiu kiến thc v h cơ s d liu) và nhng người s
dng ch động (là nhng người có hiu biết tt v h cơ s d liu).
19
Chc năng công vic ca nhng người s dng th động (chiếm phn ln
nhng người s dng) gn lin vi vic truy vn và cp nht thường xuyên cơ s
d liu bng cách s dng các câu hi và các cp nht chun (gi là các giao tác
định sn) đã được lp trình và kim tra cn thn. Nhng người này ch cn hc mt
ít v các phương tin do h qun tr cơ s d liu cung cp và hiu các kiu giao tác
chun đã được thiết kế và cài đặt là đủ.
Nhng người s dng ch động có hiu biết tt v h cơ s d liu, h có th
t cài đặt các ng dng riêng ca mình để làm tho mãn các yêu cu phc tp ca
h.
IV.4- Người phân tích h thng và lp trình ng dng
Người phân tích h thng xác định các yêu cu ca nhng người s dng (ch
yếu là nhng người s dng th động) để đặc t các chương trình phù hp vi yêu
cu ca h.
Người viết chương trình ng dng th hin các đặc t ca nhng người phân
tích thành chương trình, sau đó kim th, sa li làm tài liu và bo trì các giao tác
định sn.
IV.5- Người thiết kế và cài đặt h qun tr d liu
Đó là nhng người thiết kế, cài đặt các mô đun, giao din ca h qun tr cơ s
d liu thành các phn mm đóng gói. Mt h qun tr cơ s d liu là mt h
thng phn mm phc tp bao gm nhiu thành phn (mô đun). Đó là các mô đun
cài đặt t đin d liu, ngôn ng truy vn, b x lý giao din, truy cp d liu,
kim tra cnh tranh, phc hi và an toàn. H qun tr cơ s d liu phi giao tiếp
vi các h thng phn mm khác như h điu hành và các chương trình dch cho
nhiu ngôn ng khác nhau.
IV.6- Nhng người phát trin công c
Là nhng người thiết kế và cài đặt các công c (tool), đó là các phn mm
đóng gói làm d vic thiết kế và s dng cơ s d liu.
IV.7- Các thao tác viên và nhng người bo trì
Là nhng người chu trách nhim v vic chy và bo trì phn cng và phn
mm ca h thng.

Preview text:


UỶ BAN NHÂN DÂN THÀNH PHỐ HÀ NỘI
SỞ BƯU CHÍNH VIỄN THÔNG THÀNH PHỐ GIÁO TRÌNH CƠ SỞ DỮ LIỆU
(Mã số giáo trình: 2CD3) HÀ NỘI 2005
Lời mở đầu
Ngày nay, cơ sở dữ liệu đã có nhiều ứng dụng trong mọi hoạt động của xã
hội. Muốn thiết kế và sử dụng cơ sở dữ liệu chúng ta phải nắm được các kỹ thuật
cơ bản của cơ sở dữ liệu. Giáo trình này nhằm trình bày các kỹ thuật cơ sở của cơ
sở dữ liệu truyền thống, đó là mô hình liên kết thực thể, mô hình cơ sở dữ liệu quan
hệ. Giáo trình cũng trình bày cách thiết kế một cơ sở dữ liệu quan hệ, cách sử dụng
các phép toán đại số quan hệ để tạo, cập nhật và truy vấn cơ sở dữ liệu và khái
niệm phụ thuộc hàm ứng dụng trong l
í thuyết thiết kế và chuẩn hóa cơ sở dữ liệu quan hệ.
Giáo trình cần thiết cho tất cả các đối tượng muốn tìm hiểu và thiết kế các cơ
sở dữ liệu quan hệ ứng dụng trong công tác quản lý. 1
- Tên môn học: Cơ sở dữ liệu. - Mã số môn học: 2CD3.
- Thời gian: Lý thuyết + Bài tập 45 tiết.
- Mục tiêu: Trang bị các kiến thức cơ bản về Cơ sở dữ liệu truyền thống.
- Những kiến thức cần phải được trang bị trước khi học: không. - Nội dung:
Chương I: CÁC KHÁI NIỆM CƠ BẢN VỀ CƠ SỞ DỮ LIỆU
Chương II: MÔ HÌNH LIÊN KẾT THỰC THỂ
Chương III: MÔ HÌNH QUAN HỆ, CÁC RÀNG BUỘC QUAN
HỆ VÀ ĐẠI SỐ QUAN HỆ
Chương IV: PHỤ THUỘC HÀM VÀ CHUẨN HÓA CSDL
QUAN HỆ, CÁC THUẬT TOÁN THIẾT KẾ CSDL QUAN HỆ 2 MỤC LỤC
LỜI MỞ ĐẦU...................................................... ERROR! BOOKMARK NOT DEFINED.
CHƯƠNG I- CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ CƠ SỞ DỮ LIỆU .......................... 7
I- Cơ sở dữ liệu ........................................................................................................... 7
I.1- Định nghĩa cơ sở dữ liệu ..................................................................................... 7
I.2- Các tính chất của một cơ sở dữ liệu .................................................................... 8
II- Hệ quản trị cơ sở dữ liệu ....................................................................................... 9 II.1-
Định nghĩa hệ quản trị cơ sở dữ liệu .............................................................. 9 II.2-
Các chức năng của một hệ quản trị cơ sở dữ liệu .......................................... 9 II.3-
Các đặc trưng của giải pháp cơ sở dữ liệu................................................... 11 II.4-
Ví dụ về một cơ sở dữ liệu............................................................................. 13
III- Mô hình cơ sở dữ liệu........................................................................................... 15 III.1-
Các loại mô hình cơ sở dữ liệu ..................................................................... 15 III.2-
Lược đồ và trạng thái cơ sở dữ liệu.............................................................. 17 IV- Con
người trong hệ cơ sở dữ liệu........................................................................ 18 IV.1-
Người quản trị hệ cơ sở dữ liệu (Database Administrator – DBA).............. 18 IV.2-
Người thiết kế cơ sở dữ liệu (Database Designer) ....................................... 18 IV.3-
Những người sử dụng (End User)................................................................. 18 IV.4-
Người phân tích hệ thống và lập trình ứng dụng.......................................... 19 IV.5-
Người thiết kế và cài đặt hệ quản trị dữ liệu ................................................ 19 IV.6-
Những người phát triển công cụ ................................................................... 19 IV.7-
Các thao tác viên và những người bảo trì .................................................... 19 V- Ngôn
ngữ cơ sở dữ liệu và giao diện ................................................................... 20 V.1-
Các ngôn ngữ hệ quản trị cơ sở dữ liệu........................................................ 20 V.2-
Các loại giao diện hệ quản trị cơ sở dữ liệu ................................................ 21 VI- Câu
hỏi ôn tập....................................................................................................... 21
CHƯƠNG II- MÔ HÌNH THỰC THỂ - LIÊN KẾT .................................................. 23
I- Sử dụng mô hình quan niệm bậc cao cho việc thiết kế cơ sở dữ liệu .............. 23
II- Các thành phần cơ bản của mô hình ER ........................................................... 25
II.1-
Thực thể và thuộc tính................................................................................... 25 II.2-
Kiểu thực thể, tập thực thể, khóa và tập giá trị ............................................ 27 II.3-
Kiểu liên kết, tập liên kết và các thể hiện ..................................................... 30 II.4-
Cấp liên kết, tên vai trò và kiểu liên kết đệ quy ............................................ 31 II.5-
Các ràng buộc trên các kiểu liên kết ........................................................... 32 3 II.6-
Thuộc tính của các kiểu liên kết.................................................................... 33 II.7-
Các kiểu thực thể yếu.................................................................................... 34 III- Ví
dụ về thiết kế mô hình ER .............................................................................. 35 III.1-
Xác định các kiểu thực thể, các thuộc tính và các kiểu liên kết.................... 35
IV- Mô hình thực thể liên kết mở rộng (mô hình EER) .......................................... 39 IV.1-
Lớp cha, lớp con và sự thừa kế ..................................................................... 39 IV.2-
Chuyên biệt hóa, tổng quát hóa .................................................................... 40
IV.2.1- Chuyên biệt hóa........................................................................................ 40
IV.2.2- Tổng quát hóa........................................................................................... 42
IV.2.3- Phân cấp chuyên biệt và lưới chuyên biệt................................................ 43
IV.2.4- Các ràng buộc và các đặc trung của chuyên biệt hóa, tổng quát hóa ....... 43 IV.3-
Sơ đồ mô hình EER ....................................................................................... 44
V- Tổng kết chương và câu hỏi ôn tập..................................................................... 45 V.1-
Tổng kết chương............................................................................................ 45 V.2-
Câu hỏi ôn tập............................................................................................... 45 V.3-
Bài tập........................................................................................................... 46
CHƯƠNG III- MÔ HÌNH QUAN HỆ, CÁC RÀNG BUỘC QUAN HỆ VÀ ĐẠI SỐ QUAN HỆ 48 I-
Các khái niệm của mô hình quan hệ .................................................................. 48
I.1- Miền, thuộc tính, bộ và quan hệ ........................................................................ 48
I.2- Các đặc trưng của các quan hệ ......................................................................... 50
I.2.1- Thứ tự của các bộ trong một quan hệ....................................................... 50
I.2.2- Thứ tự của các giá trị bên trong một bộ ................................................... 51
I.2.3- Các giá trị trong một bộ ........................................................................... 51
I.2.4- Thể hiện của một quan hệ ........................................................................ 52
II- Các ràng buộc quan hệ, lược đồ cơ sở dữ liệu quan hệ .................................... 52 II.1-
Các ràng buộc miền...................................................................................... 52 II.2-
Ràng buộc khoá và ràng buộc trên các giá trị không xác định (null) .......... 53 II.3-
Cơ sở dữ liệu quan hệ và lược đồ cơ sở dữ liệu quan hệ ............................. 54 II.4-
Toàn vẹn thực thể, toàn vẹn tham chiếu và khoá ngoài................................ 58
III- Các phép toán trên mô hình quan hệ ................................................................. 60 III.1-
Các phép toán cập nhật ................................................................................ 60
III.1.1- Phép chèn (Insert) .................................................................................... 60
III.1.2- Phép xoá (Delete)..................................................................................... 61
III.1.3- Phép sửa đổi (Update) .............................................................................. 62 III.2-
Các phép toán đại số quan hệ....................................................................... 62
III.2.1- Phép chọn (SELECT)............................................................................... 63 4
III.2.2- Phép chiếu (PROJECT)............................................................................ 65
III.2.3- Phép đặt lại tên (RENAME) .................................................................... 66
III.2.4- Các phép toán lý thuyết tập hợp............................................................... 67
III.2.5- Phép nối (JOIN) ....................................................................................... 70
III.2.6- Tập hợp đầy đủ các phép toán quan hệ .................................................... 72
III.2.7- Phép chia .................................................................................................. 73 III.3-
Các phép toán quan hệ bổ sung.................................................................... 74
III.3.1- Các hàm nhóm và các phép nhóm............................................................ 74
III.3.2- Các phép toán khép kín đệ quy ................................................................ 75
III.3.3- Các phép toán nối ngoài (outer join), hợp ngoài (outer union)................ 75 III.4-
Một số ví dụ về truy vấn trong đại số quan hệ.............................................. 76
IV- Chuyển đổi mô hình ER thành mô hình quan hệ.............................................. 77 IV.1-
Các quy tắc chuyển đổi................................................................................. 77 IV.2-
Chuyển đổi mô hình cụ thể............................................................................ 81
V- Tổng kết chương và câu hỏi ôn tập..................................................................... 81 V.1-
Tổng kết chương............................................................................................ 81 V.2-
Câu hỏi ôn tập............................................................................................... 82 V.3-
Bài tập........................................................................................................... 83
CHƯƠNG IV- PHỤ THUỘC HÀM VÀ CHUẨN HÓA CƠ SỞ DỮ LIỆU QUAN HỆ,
CÁC THUẬT TOÁN THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ............................................ 86 I-
Các nguyên tắc thiết kế lược đồ quan hệ ........................................................... 86
I.1- Ngữ nghĩa của các thuộc tính quan hệ .............................................................. 86
I.2- Thông tin dư thừa trong các bộ và sự dị thường cập nhật ................................ 87
I.3- Các giá trị không xác định trong các bộ ........................................................... 89
I.4- Sinh ra các bộ giả.............................................................................................. 89 II- Các
phụ thuộc hàm .............................................................................................. 90 II.1-
Định nghĩa phụ thuộc hàm............................................................................ 90 II.2-
Các quy tắc suy diễn đối với các phụ thuộc hàm.......................................... 93 II.3-
Sự tương đương của các tập phụ thuộc hàm ................................................ 97 II.4-
Các tập phụ thuộc hàm tối thiểu................................................................... 98 III- Các
dạng chuẩn dựa trên khóa chính................................................................. 99 III.1-
Nhập môn về chuẩn hoá................................................................................ 99 III.2-
Dạng chuẩn 1.............................................................................................. 101 III.3-
Dạng chuẩn 2.............................................................................................. 102 III.4-
Dạng chuẩn 3.............................................................................................. 104 III.5-
Dạng chuẩn Boyce-Codd ............................................................................ 104 IV- Các
thuật toán thiết kế cơ sở dữ liệu quan hệ và các dạng chuẩn cao hơn... 106 5 IV.1-
Định nghĩa tổng quát các dạng chuẩn........................................................ 107 IV.2-
Các thuật toán thiết kế lược đồ cơ sở dữ liệu quan hệ ............................... 108
IV.2.1- Tách quan hệ và tính không đầy đủ của các dạng chuẩn ....................... 108
IV.2.2- Phép tách và sự bảo toàn phụ thuộc ....................................................... 109
IV.2.3- Phép tách và kết nối không mất mát ...................................................... 111 IV.3-
Các phụ thuộc hàm đa trị và dạng chuẩn 4................................................ 118
IV.3.1- Định nghĩa phụ thuộc đa trị.................................................................... 118
IV.3.2- Các quy tắc suy diễn đối với các phụ thuộc hàm và phụ thuộc đa trị .... 120
IV.3.3- Dạng chuẩn 4.......................................................................................... 121
IV.3.4- Tách có tính chất nối không mất mát thành các quan hệ 4NF .............. 121 IV.4-
Các phụ thuộc nối và dạng chuẩn 5 ........................................................... 122
V- Tổng kết chương và câu hỏi ôn tập................................................................... 124 V.1-
Tổng kết chương.......................................................................................... 124 V.2-
Câu hỏi ôn tập............................................................................................. 125 V.3-
Bài tập......................................................................................................... 126 6 Chương I-
CÁC KHÁI NIỆM CƠ BẢN VỀ HỆ CƠ SỞ DỮ LIỆU
Các cơ sở dữ liệu và các hệ cơ sở dữ liệu đã trở thành một thành phần chủ yếu
trong cuộc sống hàng ngày của xã hội hiện đại. Trong vòng một ngày con người có
thể có nhiều hoạt động cần có sự giao tiếp với cơ sở dữ liệu như: đến ngân hàng để
rút tiền và gửi tiền, đăng ký chỗ trên máy bay hoặc khách sạn, truy cập vào thư viện
đã tin học hoá để tìm sách báo, đặt mua tạp chí ở một nhà xuất bản… Tại các ngân
hàng, các cửa hàng, người ta cũng cập nhật tự động việc quản lý tiền bạc, hàng hoá.
Tất cả các giao tiếp như trên được gọi là các ứng dụng của cơ sở dữ liệu
truyền thống. Trong các cơ sở dữ liệu truyền thống, hầu hết các thông tin được lưu
giữ và truy cập là văn bản hoặc số. Những năm gần đây, những tiến bộ về kỹ thuật
đã đưa đến những ứng dụng mới của cơ sở dữ liệu. Các cơ sở dữ liệu đa phương
tiện bây giờ có thể lưu trữ hình ảnh, phim và tiếng nói. Các hệ thống thông tin địa
lý có thể lưu trữ và phân tích các bản đồ, các dữ liệu về thời tiết và các ảnh vệ tinh.
Kho dữ liệu và các hệ thống phân tích trực tuyến được sử dụng trong nhiều công ty
để lấy ra và phân tích những thông tin có lợi từ các cơ sở dữ liệu rất lớn nhằm đưa
ra các quyết định. Các kỹ thuật cơ sở dữ liệu động và thời gian thực được sử dụng
trong việc kiểm tra các tiến trình công nghiệp và sản xuất. Các kỹ thuật tìm kiếm cơ
sở dữ liệu đang được áp dụng cho World Wide Web để cung cấp việc tìm kiếm các
thông tin cần thiết cho người sử dụng bằng cách duyệt qua Internet.
Để hiểu được các cơ sở kỹ thuật của cơ sở dữ liệu chúng ta phải bắt đầu từ các
cơ sở kỹ thuật của cơ sở dữ liệu truyền thống. Mục đích của giáo trình này là
nghiên cứu các cơ sở kỹ thuật đó. Trong chương này chúng ta sẽ định nghĩa cơ sở
dữ liệu, hệ quản trị cơ sở dữ liệu, mô hình cơ sở dữ liệu và các thuật ngữ cơ bản khác. I- Cơ sở dữ liệu
I.1- Định nghĩa cơ sở dữ liệu
Cơ sở dữ liệu và kỹ thuật cơ sở dữ liệu đã có ảnh hưởng rất lớn đến việc sử
dụng máy tính. Có thể nói rằng cơ sở dữ liệu đóng vai trò quan trọng trong mọi 7
lĩnh vực có sử dụng máy tính như giáo dục, thương mại, kỹ nghệ, khoa học, thư
viện,…. Thuật ngữ cơ sở dữ liệu trở thành một thuật ngữ phổ dụng.
Một cơ sở dữ liệu là một tập hợp các dữ liệu có liên quan với nhau, được lưu
trữ trên máy tính, có nhiều người sử dụng và được tổ chức theo một mô hình. Dữ
liệu
là những sự kiện có thể ghi lại được và có ý nghĩa.
Ví dụ, để quản lý việc học tập trong một môi trường đại học, các dữ liệu là các
thông tin về sinh viên, về các môn học, điểm thi….Chúng ta tổ chức các dữ liệu đó
thành các bảng và lưu giữ chúng vào sổ sách hoặc sử dụng một phần mềm máy tính
để lưu giữ chúng trên máy tính. Ta có một tập các dữ liệu có liên quan đến nhau và
mang nhiều ý nghĩa, đó là một cơ sở dữ liệu.
I.2- Các tính chất của một cơ sở dữ liệu
Một cơ sở dữ liệu có các tính chất sau:
1. Một cơ sở dữ liệu biểu thị một khía cạnh nào đó của thế giới thực như hoạt
động của một công ty, một nhà trường, một ngân hàng… Những thay đổi của thế
giới thực phải được phản ánh một cách trung thực vào trong cơ sở dữ liệu. Những
thông tin được đưa vào trong cơ sở dữ liệu tạo thành một không gian cơ sở dữ liệu
hoặc là một “thế giới nhỏ” (miniworld) .
2. Một cơ sở dữ liệu là một tập hợp dữ liệu liên kết với nhau một cách logic
và mang một ý nghĩa cố hữu nào đó. Một cơ sở dữ liệu không phải là một tập hợp tuỳ tiện.
3. Một cơ sở dữ liệu được thiết kế và được phổ biến cho một mục đích riêng.
Nó có một nhóm người sử dụng có chủ định và có một số ứng dụng được xác định
phù hợp với mối quan tâm của người sử dụng. Nói cách khác, một cơ sở dữ liệu có
một nguồn cung cấp dữ liệu, một mức độ tương tác với các sự kiện trong thế giới
thực và một nhóm người quan tâm tích cực đến các nội dung của nó.
Một cơ sở dữ liệu có thể có cỡ tuỳ ý và có độ phức tạp thay đổi. Có những cơ
sở dữ liệu chỉ gồm vài trăm bản ghi (như cơ sở dữ liệu phục vụ việc quản lý lương
ở một cơ quan nhỏ), và có những cơ sở dữ liệu có dung lượng rất lớn (như các cơ
sở dữ liệu phục vụ cho việc tính cước điện thoại, quản lý nhân sự trên một phạm vi
lớn). Các cơ sở dữ liệu phải được tổ chức quản lý sao cho những người sử dụng có
thể tìm kiếm dữ liệu, cập nhật dữ liệu và lấy dữ liệu ra khi cần thiết. Một cơ sở dữ
liệu có thể được tạo ra và duy trì một cách thủ công và cũng có thể được tin học 8
hoá. Một cơ sở dữ liệu tin học hoá được tạo ra và duy trì bằng bằng một nhóm
chương trình ứng dụng hoặc bằng một hệ quản trị cơ sở dữ liệu. II-
Hệ quản trị cơ sở dữ liệu
II.1- Định nghĩa hệ quản trị cơ sở dữ liệu
Một hệ quản trị cơ sở dữ liệu là một tập hợp chương trình giúp cho người sử
dụng tạo ra, duy trì và khai thác một cơ sở dữ liệu. Nó là một hệ thống phần mềm
phổ dụng, làm dễ quá trình định nghĩa, xây dựng và thao tác cơ sở dữ liệu cho các ứng dụng khác nhau.
Định nghĩa một cơ sở dữ liệu bao gồm việc đặc tả các kiểu dữ liệu, các cấu
trúc và các ràng buộc cho các dữ liệu sẽ được lưu trữ trong cơ sở.
Xây dựng một cơ sở dữ liệu là quá trình lưu trữ các dữ liệu trên các phương
tiện lưu trữ được hệ quản trị cơ sở dữ liệu kiểm soát.
Thao tác một cơ sở dữ liệu bao gồm các chức năng như truy vấn cơ sở dữ liệu
để lấy ra các dữ liệu cụ thể, cập nhật cơ sở dữ liệu để phản ánh các thay đổi trong
thế giới nhỏ và tạo ra các báo cáo từ các dữ liệu.
Các hệ quản trị cơ sở dữ liệu dùng để thể hiện một cơ sở dữ liệu tin học hoá có
thể là phổ dụng (là một phần mềm đóng gói) hoặc có thể là chuyên dụng (là một
tập các phần mềm được tạo ra với một mục đích riêng).
Người ta gọi cơ sở dữ liệu và hệ quản trị cơ sở dữ liệu bằng một thuật ngữ
chung là hệ cơ sở dữ liệu. Môi trường của một hệ cơ sở dữ liệu được mô tả bằng
hình vẽ dưới đây (hình I-1).
II.2- Các chức năng của một hệ quản trị cơ sở dữ liệu
Một hệ quản trị cơ sở dữ liệu hiện nay có các chức năng sau :
1. Lưu trữ các định nghĩa, các mối liên kết dữ liệu (gọi là siêu dữ liệu) vào
một từ điển dữ liệu. Các chương trình truy cập đến cơ sở dữ liệu làm việc thông
qua hệ quản trị cơ sở dữ liệu. Hệ quản trị cơ sở dữ liệu sử dụng dữ liệu trong từ
điển dữ liệu để tìm kiếm các cấu trúc thành phần dữ liệu và các mối liên kết được
yêu cầu. Mọi sự thay đổi trong các tệp cơ sở dữ liệu sẽ được tự động ghi lại vào từ
điển dữ liệu. Như vậy, hệ quản trị cơ sở dữ liệu giải phóng người sử dụng khỏi việc
lập trình cho các mối liên kết phức tạp trong mỗi chương trình, việc sửa đổi các 9
chương trình truy cập đến tệp cơ sở dữ liệu đã bị sửa đổi. Nói cách khác, hệ quản
trị cơ sở dữ liệu loại bỏ sự phụ thuộc giữa dữ liệu và cấu trúc ra khỏi hệ thống.
Người sử dụng / Người lập trình
Chương trình ứng dụng / Truy vấn Phần mềm xử lý Truy vấn / Chương trình
Phần mềm truy cập đến các
dữ liệu được lưu trữ Định nghĩa cơ sở dữ Cơ sở dữ liệu liệu (Siêu dữ liệu )
ình I-1. Môi trường hệ cơ sở dữ liệu
2. Tạo ra các cấu trúc phức tạp theo yêu cầu để lư tr u ữ dữ liệu. Nó giúp
người sử dụng làm nhiệm vụ khó khăn là định nghĩa và lập trình cho các đặc trưng vật lý của dữ liệu. 3. Biến đổ ác d i c
ữ liệu được nhập vào để phù hợp với các cấu trúc dữ liệu ở
điểm 2. Như vậy, hệ quản trị cơ sở dữ liệu giúp người sử dụng phân biệt dạng logic
và dạng vật lý của dữ liệu. Bằng việc duy trì sự độc lập dữ liệu, hệ quản trị cơ sở dữ
liệu chuyển các yêu cầu logic thành các lệnh định vị một cách vật lý và lấy ra các
dữ liệu yêu cầu. Điều đó cũng có nghĩa là hệ quản trị cơ sở dữ liệu tạo khuôn dạng 10
cho các dữ liệu được lấy ra để làm cho nó phù hợp với mong muốn logic của người sử dụng.
4. Tạo ra một hệ thống bảo mật và áp đặt tính bảo mật và riêng tư trong cơ sở dữ liệu.
5. Tạo ra các cấu trúc phức tạp cho phép nhiều người sử dụng truy cập đến dữ liệu
6. Cung cấp các thủ tục sao lưu và phục hồi dữ liệu để đảm bảo sự an toàn và toàn vẹn dữ liệu.
7. Xúc tiến và áp đặt các quy tắc an toàn để loại bỏ vấn đề toàn vẹn dữ liệu.
Điều đó cho phép ta làm tối thiểu sự dư thừa dữ liệu và làm tối đa tính nhất quán dữ liệu.
8. Cung cấp việc truy cập dữ liệu thông qua một ngôn ngữ truy vấn. Một
ngôn ngữ truy vấn là một ngôn ngữ phi thủ tục cho phép người sử dụng chỉ ra cái gì
cần phải làm mà không cần phải chỉ ra nó được làm như thế nào. Các hệ quản trị
cơ sở dữ liệu cũng cung cấp việc truy cập dữ liệu cho những người lập trình thông
qua các ngôn ngữ thủ tục.
II.3- Các đặc trưng của giải pháp cơ sở dữ liệu
Trước khi khái niệm cơ sở dữ liệu ra đời, hệ thống tệp (file) là một phương
pháp được áp dụng trong việc quản lý. Một tệp có thể được xem là một cặp hồ sơ
lưu trữ các thông tin liên quan đến từng công việc riêng biệt. Ví dụ, trong một cơ
quan, bộ phận tài vụ sẽ có một cặp hồ sơ liên quan đến lương của các nhân viên, bộ
phận tổ chức có cặp hồ sơ liên quan đến vấn đề nhân sự… Việc xử lý để lấy ra các
thông tin như là các thống kê về lương, về quá trình công tác… lúc đầu được thực
hiện một cách thủ công. Dần dần, khối lượng thông tin ngày càng lớn, việc xử lý
thông tin ngày càng phức tạp, người ta sử dụng máy tính vào việc quản lý. Các cặp
hồ sơ được chuyển thành các tệp trên máy tính và việc xử lý thông tin được thực
hiện bằng cách lập trình (trong một ngôn ngữ lập trình thế hệ 3).
Việc quản lý theo giải pháp hệ thống tệp có rất nhiều nhược điểm. Thứ nhất,
đó là sự dư thừa thông tin: cùng một thông tin được lưu trữ nhiều lần (chẳng hạn,
danh sách nhân viên có mặt trong tệp lương và cũng có mặt cả trong tệp nhân sự).
Điều đó gây ra việc lãng phí bộ nhớ và dễ gây sai sót trong khi cập nhật dữ liệu, dễ
sinh ra các dữ liệu không đúng đắn. Thứ hai, đó là việc phụ thuộc giữa chương 11
trình ứng dụng và dữ liệu. Mỗi khi có sự thay đổi cấu trúc tệp và các dữ liệu trong
tệp, chương trình ứng dụng khai thác thông tin trên tệp đó cũng thay đổi theo. Điều
đó gây ra khó khăn lớn cho việc bảo trì.
Giải pháp cơ sở dữ liệu ra đời đã giải quyết được những nhược điểm đó. Cụ
thể, giải pháp cơ sở dữ liệu có những đặc trưng sau:
1. Bản chất tự mô tả của hệ cơ sở dữ liệu.
Một đặc trưng cơ bản của giải pháp cơ ở
s dữ liệu là hệ thống cơ sở dữ liệu
không chỉ gồm có bản thân cơ sở dữ liệu mà còn có cả định nghĩa hoặc mô tả đầy
đủ về cấu trúc cơ sở dữ liệu và các ràng buộc. Định nghĩa này được lưu trữ trong từ
điển hệ thống, nó chứa các thông tin như là cấu trúc của mỗi tệp, kiểu và dạng lưu
trữ của từng mục dữ liệu. Các thông tin được lưu giữ trong từ điển gọi là siêu dữ
liệu (meta-data) và chúng mô tả cấu trúc của dữ liệu nguyên thuỷ (hình I-1). Phần
mềm hệ quản trị cơ sở dữ liệu và những người sử dụng cơ sở dữ liệu sử dụng từ
điển để lấy thông tin về cấu trúc của cơ sở dữ liệu.
2. Sự độc lập giữa chương trình và dữ liệu.
Trong hệ thống tệp, cấu trúc của các tệp cơ sở dữ liệu được nhúng vào trong
các chương trình truy cập, vì vậy bất kỳ một thay đổi nào về cấu trúc của một tệp
cũng đòi hỏi phải thay đổi tất cả các chương trình truy cập đến tệp đó. Ngược lại,
các chương trình truy cập của hệ quản trị cơ sở dữ liệu không đòi hỏi việc thay đổi
như thế. Cấu trúc của các tệp dữ liệu được lưu trữ trong từ điển tách rời với các
chương trình truy cập. Tính chất này gọi là sự độc lập dữ liệu – chương trình.
3. Hỗ trợ các khung nhìn dữ liệu nhiều thành phần.
Một cơ sở dữ liệu có nhiều người sử dụng, mỗi một người có thể đòi hỏi một
phối cảnh hoặc một khung nhìn (view) khác nhau. Một khung nhìn có thể là một
tập con của cơ sở dữ liệu hoặc nó có thể chứa các dữ liệu ảo, đó là các dữ liệu được
trích ra từ các tệp cơ sở dữ liệu khác nhau nhưng không được lưu trữ một cách rõ
ràng. Một hệ quản trị cơ sở dữ liệu nhiều người sử dụng phải cung cấp nhiều công
cụ để định nghĩa các khung nhìn nhiều thành phần.
4. Chia sẻ dữ liệu và nhiều người sử dụng.
Một hệ quản trị cơ sở dữ liệu nhiều người sử dụng phải cho phép nhiều người
sử dụng truy cập đồng thời đến cơ sở dữ liệu. Hệ quản trị cơ sở dữ liệu phải có
phần mềm kiểm tra cạnh tranh để đảm bảo rằng các người sử dụng cập nhật đến 12
cùng một cơ sở dữ liệu phải được thực hiện theo cách được kiểm tra để cho kết quả
của các cập nhật là đúng đắn.
II.4- Ví dụ về một cơ sở dữ liệu
Chúng ta hãy xem xét một cơ sở dữ liệu mà nhiều người đã quen biết: cơ sở
dữ liệu TRƯỜNG. Cơ sở dữ liệu này lưu giữ các thông tin liên quan đến sinh viên,
các môn học, điểm… trong một môi trường đại học. Cơ sở dữ liệu được tổ chức
thành 5 bảng, mỗi bảng lưu trữ các bản ghi dữ liệu cùng một kiểu. Bảng
SINHVIÊN lưu giữ dữ liệu về các sinh viên, bảng MÔNHỌC lưu giữ các dữ liệu
về các môn học, bảng HỌCPHẦN lưu giữ các dữ liệu về các học phần của các môn
học, bảng ĐIỂM lưu giữ điểm của từng học phần của các sinh viên và bảng
BIẾTTRƯỚC lưu giữ thông tin về các môn học cần biết trước của các môn học.
Cấu trúc của cơ sở dữ liệu và một vài mẫu dữ liệu ví dụ được trình bày ở hình I-2. SINHVIÊN
MãsốSV HọtênSV Lớp Chuyênngành 17 Nguyễn Nam K45T Tinhọc 8 Lê Bắc K45C CôngnghệTT MÔNHỌC MãsốMH TênMH Sốđvht Khoa 101 Tinhọc cơ sở 8 ệ Công ngh 102 Cấu trúc DL và GT 5 Công nghệ 103 Toán rời rạc 5 Công nghệ 104 Cơ sở dữ liệu 3 Công nghệ
HỌCPHẦN MãsốHP MãsốMH Họckỳ Năm Têngiáoviên 1011 101 1 2001 Vân 1012 101 2 2002 Vân 1031 103 1 2001 Hoàng 1032 103 2 2002 Hoàng 1020 102 3 2002 Lân 1040 104 4 2002 Huy 13 ĐIỂ Mãs M ốSV MãsốHP Điểm 17 1031 8 17 1020 6 8 1031 9 8 1011 10 8 1020 7 8 1040 9 BIẾT TRƯỚC Mã
sốMH MãsốMHbiếttrước 104 102 104 103 102 101
Hình I-2. Cơ sở dữ ệ li u TRƯỜNG
Để định nghĩa cơ sở dữ liệu này, chúng ta phải chỉ ra cấu trúc của các bản ghi
của mỗi tệp (bảng) bằng cách đặc tả các kiểu khác nhau của các phần tử dữ liệu sẽ
được lưu trữ trong mỗi bản ghi. Theo hình I-2 , mỗi bản ghi SINHVIÊN bao gồm
các dữ liệu để biểu diễn Mã số sinh viên, Họ tên sinh viên, Lớp, Chuyên ngành.
Mỗi bản ghi MÔNHỌC bao gồm các dữ liệu để biểu diễn Tên môn học, Mã số
môn học, Số đơn vị học trình, Khoa,… Chúng ta phải chỉ ra một kiểu dữ liệu cho
mỗi phần tử dữ liệu bên trong các bản ghi. Ví dụ, ta có thể đặc tả Họ tên sinh viên
là một dãy ký tự có độ dài nhỏ hơn hoặc bằng 30, Mã số sinh viên là một số nguyên,…. Để d
xây ựng cơ sở dữ liệu TRƯỜNG, chúng ta lưu giũ các dữ liệu để biểu
diễn mỗi sinh viên, mỗi môn học,… vào các tệp thích hợp. Để ý rằng các bản ghi
trong các tệp khác nhau có thể có mối quan hệ với nhau. Ví dụ, bản ghi đối với
Nguyễn Nam trong tệp SINHVIÊN có liên quan đến hai bản ghi trong tệp ĐIỂM.
Các bản ghi này chỉ ra điểm của Nguyễn Nam trong hai học phần. Tương tự như
vậy, các bản ghi trong tệp có mối quan hệ với các bản ghi trong tệp MÔNHỌC…
Thông thường một cơ sở dữ liệu chứa nhiều kiểu bản ghi và chứa nhiều mối quan hệ giữa các tệp. 14
Thao tác cơ sở dữ liệu bao gồm việc truy vấn và cập nhật cơ sở dữ liệu. Truy
vấn cơ sở dữ liệu là đưa ra các yêu cầu đối với cơ sở dữ liệu để lấy ra các thông tin
cần thiết. Ví dụ, chúng ta có thể có các truy vấn như: “Liệt kê các môn học và điểm
thi của sinh viên Nguyễn Nam”, “ Đưa ra danh sách các sinh viên thi trượt môn cơ
sở dữ liệu”. Cập nhật cơ sở dữ liệu bao gồm việc thêm vào cơ sở dữ liệu bản ghi,
xoá bỏ các bản ghi hoặc sửa đổi các giá trị trong các bản ghi. Các truy vấn và các
cập nhật phải được đặc tả trong ngôn ngữ hệ cơ sở dữ liệu một cách chính xác
trước khi chúng được xử lý.
III- Mô hình cơ sở dữ liệu
Các loại cấu trúc cơ sở dữ liệu và mối liên hệ giữa chúng đóng vai trò rất lớn
trong việc xác định tính hiệu quả của hệ quản trị cơ sở dữ liệu. Vì vậy, thiết kế cơ
sở dữ liệu trở thành hoạt động chính trong môi trường cơ sở dữ liệu.
Việc thiết kế cơ sở dữ liệu được thực hiện đơn giản hơn nhiều khi ta sử dụng
các mô hình. Các mô hình là sự trừu tượng đơn giản của các sự kiện trong thế giới
thực. Các trừu tượng như vậy cho phép ta khảo sát các đặc điểm của các thực thể và
các mối liên hệ được tạo ra giữa các thực thể đó. Việc thiết kế các mô hình tốt sẽ
đưa ra các cơ sở dữ liệu tốt và trên cơ sở đó sẽ có các ứng dụng tốt. Ngược lại, mô
hình không tốt sẽ đưa đến thiết kế cơ sở dữ liệu tồi và dẫn đến các ứng dụng không đúng.
Một mô hình cơ sở dữ liệu là một tập hợp các khái niệm dùng để biểu diễn
các cấu trúc của cơ sở dữ liệu. Cấu trúc của một cơ sở dữ liệu là các kiểu dữ liệu,
các mối liên kết và các ràng buộc phải tuân theo trên các dữ liệu. Nhiều mô hình
còn có thêm một tập hợp các phép toán cơ bản để đặc tả các thao tác trên cơ sở dữ liệu.
III.1- Các loại mô hình cơ sở dữ liệu
Có rất nhiều mô hình dữ liệu đã được đề nghị. Chúng ta có thể phân loại các
mô hình dữ liệu dựa trên các khái niệm mà chúng sử dụng để mô tả các cấu trúc cơ sở dữ liệu.
Các mô hình dữ liệu bậc cao hoặc mô hình dữ liệu mức quan niệm cung cấp
các khái niệm gắn liền với cách cảm nhận dữ liệu của nhiều người sử dụng. Các mô
hình này tập trung vào bản chất logic của biểu diễn dữ liệu, nó quan tâm đến cái
được biểu diễn trong cơ sở dữ liệu chứ không phải cách biểu diễn dữ liệu. 15
Các mô hình dữ liệu bậc thấp hoặc các mô hình dữ liệu vật lý cung cấp các
khái niệm mô tả chi tiết về việc các dữ liệu được lưu trữ trong máy tính như thế
nào. Các khái niệm do mô hình dữ liệu vật lý cung cấp nói chung có ý nghĩa đối
với các chuyên gia máy tính chứ không có ý nghĩa mấy đối với người sử dụng
thông thường. Ở giữa hai loại mô hình này là một lớp các mô hình dữ liệu thể hiện,
chúng cung cấp những khái niệm mà người sử dụng có thể hiểu được và không xa
với cách tổ chức dữ liệu bên trong máy tính. Người ta còn gọi loại mô hình dữ liệu
này là loại mô hình dữ liệu mức logic. Các mô hình dữ liệu thể hiện che giấu một số
chi tiết về việc lưu trữ dữ liệu nhưng có thể được cài đặt trực tiếp trên hệ thống máy tính.
Trong chương II, chúng ta sẽ nghiên cứu một mô hình dữ liệu mức quan niệm,
mô hình thực thể - liên kết, gọi tắt là mô hình ER (Entity – Relationship Model).
Mô hình này sử dụng các khái niệm thực thể, thuộc tính, mối liên kết, để diễn đạt
các đối tượng của thế giới thực. Một thực thể diễn đạt một đối tượng hoặc một khái
niệm của thế giới thực. Ví dụ, một thực thể là một nhân viên hoặc một dự án được
mô tả trong cơ sở dữ liệu. Một thuộc tính diễn đạt một đặc trưng nào đó của thực
thể. Chẳng hạn, họ tên, lương… là các thuộc tính của thực thể nhân viên. Một mối
liên kết giữa hai hay nhiều thực thể diễn đạt một mối quan hệ qua lại giữa các thực
thể. Ví dụ, giữa thực thể nhân viên và thực thể dự án có mối liên kết một nhân viên
làm việc trên một dự án. Mô hình dữ liệu hướng đối tượng cũng là một mô hình dữ
liệu bậc cao. Nó sử dụng các khái niệm như lớp, phương thức, thông điệp… Bạn
đọc có thể tìm hiểu về mô hình này trong các tài liệu [1], [2].
Các mô hình dữ liệu thể hiện là các mô hình được sử dụng thường xuyên nhất
trong các hệ cơ sở dữ liệu thương mại. Ba mô hình nổi tiếng thuộc loại này là mô
hình quan hệ, mô hình mạng và mô hình phân cấp. Các mô hình mạng và phân cấp
ra đời trước và được sử dụng rộng rãi trong quá khứ (trước 1970). Vào đầu những
năm 70, mô hình quan hệ ra đời. Do tính ưu việt của nó, mô hình quan hệ dần dần
thay thế các mô hình mạng và phân cấp. Chúng ta sẽ nghiên cứu về mô hình quan hệ trong chương III.
Các mô hình dữ liệu vật lý mô tả cách lưu trữ dữ liệu trong máy tính giới thiệu
các thông tin như khuôn dạng bản ghi, sắp xếp bản ghi, đường truy cập… 16
III.2- Lược đồ và trạng thái cơ sở dữ liệu
Trong một mô hình dữ liệu cần phải phân biệt rõ giữa mô tả của cơ sở dữ liệu
bản thân cơ sở dữ liệu. Mô tả của một cơ sở dữ liệu được gọi là lược đồ cơ sở
dữ liệu
, nó được xác định rõ trong quá trình thiết kế cơ sở dữ liệu và không bị thay
đổi thường xuyên. Đa số các mô hình dữ liệu có các quy ước hiển thị các lược đồ.
Hiển thị của một lược đồ được gọi là biểu đồ của lược đồ đó. Một biểu đồ lược đồ
chỉ thể hiện một vài khía cạnh của lược đồ như là các kiểu bản ghi, các mục dữ liệu
và một số kiểu ràng buộc. Các khía cạnh khác không được thể hiện trong biểu đồ lược đồ.
Các dữ liệu trong một cơ sở dữ liệu có thể thay đổi một cách thường xuyên.
Các dữ liệu trong một cơ sở dữ liệu tại một thời điểm cụ thể được gọi là một trạng
thái cơ sở dữ liệu
hoặc là ảnh (snapshot) của cơ sở dữ liệu. Nhiều trạng thái quan
hệ có thể được xây dựng để làm tương ứng với một lược đồ cơ sở dữ liệu cụ thể.
Mỗi khi chúng ta chèn vào hoặc loại bỏ một bản ghi, sửa đổi giá trị của một mục dữ
liệu trong một bản ghi, chúng ta đã làm thay đổi trạng thái của cơ sở dữ liệu sang một trạng thái khác.
Việc phân biệt giữa lược đồ cơ sở dữ liệu và trạng thái cơ sở dữ liệu là rất
quan trọng. Khi chúng ta định nghĩa một cơ sở dữ liệu mới, ta chỉ đặc tả lược đồ cơ
sở dữ liệu cho hệ quản trị cơ sở dữ liệu. Tại thời điểm này, trạng thái của cơ sở dữ
liệu là một trạng thái rỗng, không có dữ liệu. Chúng ta nhận được trạng thái ban
đầu của cơ sở dữ liệu khi ta nhập dữ liệu lần đầu tiên. Từ đó trở đi, mỗi khi một
phép toán cập nhật được thực hiện đối với cơ sở dữ liệu, chúng ta nhận được một
trạng thái cơ sở dữ liệu khác. Tại mọi thời điểm, cơ sở dữ liệu có một trạng thái
hiện tại. Hệ quản trị cơ sở dữ liệu có trách nhiệm đảm bảo rằng mỗi trạng thái cơ sở
dữ liệu là một trạng thái vững chắc, nghĩa là một trạng thái thoả mãn cấu trúc và
các ràng buộc được đặc tả trong lược đồ. Vì vậy, việc đặc tả một lược đồ đúng đắn
cho hệ quản trị cơ sở dữ liệu là một việc làm cực kỳ quan trọng và lược đồ phải
được thiết kế một cách cẩn thận. Hệ quản trị cơ sở dữ liệu lưu trữ các mô tả của các
cấu trúc lược đồ và các ràng buộc – còn gọi là siêu dữ liệu – vào trong từ điển
(catalog) của hệ quản trị sao cho phần mềm hệ quản trị cơ sở dữ liệu có thể tham
khảo đến lược đồ khi nó cần. Đôi khi người ta còn gọi lược đồ là mục tiêu
(intension) và trạng thái cơ sở dữ liệu là mở rộng (extension) của lược đồ. 17
IV- Con người trong hệ cơ sở dữ liệu
Với một cơ sở dữ liệu lớn, rất nhiều người tham gia vào việc thiết kế, sử dụng
và duy trì cơ sở dữ liệu. Những người liên quan đến hệ cơ sở dữ liệu được chia
thành hai nhóm chính. Nhóm thứ nhất gồm những người mà công việc của họ liên
quan hàng ngày đến cơ sở dữ liệu, đó là những người quản trị cơ sở dữ liệu, thiết kế
cơ sở dữ liệu, sử dụng cơ sở dữ liệu, phân tích hệ thống và lập trình ứng dụng.
Nhóm thứ hai gồm những người làm việc để duy trì môi trường hệ cơ sở dữ liệu
nhưng không quan tâm đến bản thân cơ sở dữ liệu, đó là những người thiết kế và
cài đặt hệ quản trị cơ sở dữ liệu, phát triển công cụ, thao tác viên và bảo trì.
IV.1- Người quản trị hệ cơ sở dữ liệu (Database Administrator – DBA)
Trong một tổ chức có nhiều người cùng sử dụng các tài nguyên, cần phải có
một người giám sát và quản lý. Trong môi trường hệ cơ sở dữ liệu, các tài nguyên
là cơ sở dữ liệu, hệ quản trị cơ sở dữ liệu và các phần mềm liên quan. Người quản
trị hệ cơ sở dữ liệu là người chịu trách nhiệm quản lý các tài nguyên đó. Người này
chịu trách nhiệm về việc cho phép truy cập cơ sở dữ liệu, tổ chức và hướng dẫn
việc sử dụng cơ sở dữ liệu, cấp các phần mềm và phần cứng theo yêu cầu.
IV.2- Người thiết kế cơ sở dữ liệu (Database Designer)
Người này chịu trách nhiệm xác định các dữ liệu sẽ được lưu giữ trong cơ sở,
chọn các cấu trúc thích hợp để biểu diễn và lưu giữ các dữ liệu đó. Những nhiệm
vụ này được thực hiện trước khi cơ sở dữ liệu được cài đặt và phổ biến. Người thiết
kế có trách nhiệm giao thiệp với những người sử dụng tương lai để hiểu được các
đòi hỏi của họ và đưa ra một thiết kế thoả mãn các yêu cầu đó. Anh ta cũng có
nhiệm vụ giao thiệp với các nhóm người sử dụng và có khả năng hỗ trợ các yêu cầu của các nhóm.
IV.3- Những người sử dụng (End User)
Những người sử dụng là những người mà công việc của họ đòi hỏi truy cập
đến cơ sở dữ liệu để truy vấn, cập nhật và sinh ra các thông tin. Có thể chia những
người sử dụng thành hai nhóm chính: những người sử dụng thụ động (tức là những
người sử dụng không có nhiều kiến thức về hệ cơ sở dữ liệu) và những người sử
dụng chủ động
(là những người có hiểu biết tốt về hệ cơ sở dữ liệu). 18
Chức năng công việc của những người sử dụng thụ động (chiếm phần lớn
những người sử dụng) gắn liền với việc truy vấn và cập nhật thường xuyên cơ sở
dữ liệu bằng cách sử dụng các câu hỏi và các cập nhật chuẩn (gọi là các giao tác
định sẵn) đã được lập trình và kiểm tra cẩn thận. Những người này chỉ cần học một
ít về các phương tiện do hệ quản trị cơ sở dữ liệu cung cấp và hiểu các kiểu giao tác
chuẩn đã được thiết kế và cài đặt là đủ.
Những người sử dụng chủ động có hiểu biết tốt về hệ cơ sở dữ liệu, họ có thể
tự cài đặt các ứng dụng riêng của mình để làm thoả mãn các yêu cầu phức tạp của họ.
IV.4- Người phân tích hệ thống và lập trình ứng dụng
Người phân tích hệ thống xác định các yêu cầu của những người sử dụng (chủ
yếu là những người sử dụng thụ động) để đặc tả các chương trình phù hợp với yêu cầu của họ.
Người viết chương trình ứng dụng thể hiện các đặc tả của những người phân
tích thành chương trình, sau đó kiểm thử, sửa lỗi làm tài liệu và bảo trì các giao tác định sẵn.
IV.5- Người thiết kế và cài đặt hệ quản trị dữ liệu
Đó là những người thiết kế, cài đặt các mô đun, giao diện của hệ quản trị cơ sở
dữ liệu thành các phần mềm đóng gói. Một hệ quản trị cơ sở dữ liệu là một hệ
thống phần mềm phức tạp bao gồm nhiều thành phần (mô đun). Đó là các mô đun
cài đặt từ điển dữ liệu, ngôn ngữ truy vấn, bộ xử lý giao diện, truy cập dữ liệu,
kiểm tra cạnh tranh, phục hồi và an toàn. Hệ quản trị cơ sở dữ liệu phải giao tiếp
với các hệ thống phần mềm khác như hệ điều hành và các chương trình dịch cho
nhiều ngôn ngữ khác nhau.
IV.6- Những người phát triển công cụ
Là những người thiết kế và cài đặt các công cụ (tool), đó là các phần mềm
đóng gói làm dễ việc thiết kế và sử dụng cơ sở dữ liệu.
IV.7- Các thao tác viên và những người bảo trì
Là những người chịu trách nhiệm về việc chạy và bảo trì phần cứng và phần mềm của hệ thống. 19