Trang 1/109
TRNG ĐI HC ĐÀ LT
KHOA CÔNG NGH THÔNG TIN
CAO TH NHN
NGUYN TH THANH BÌNH
GIÁO TRÌNH
C S D LIU
Dành cho sinh viên ngành Công ngh Thông tin
Đà Lt 2010
Trang 2/109
LI M ĐU
Để đáp ng nhu cu hc tp ca sinh viên chuyên ngành Công ngh Thông tin, bài ging
C s d liu được biên son theo chưng trình h thng tín ch ca Trưng Đại hc Đà
Lt, cung cp các kiến thc c bn v lý thuyết c s d liu.
Giáo trình gm 8 chưng sau:
Chng 1: gii thiu chung
Chng 2: trình bày mô hình thc th kết hp E_R (Entity Relationship) để mô hình hóa
các hot động trong thế gii thc, nhìn thế gii thc như là mt tp các đối tượng căn bn
được gi là các thc th, và các mi quan h gia các đối tượng này. Mô hình được
phát trin để làm thun tin cho vic thiết kế c s d liu bng cách đc t mt t chc.
Chng 3: trình bày mô hình d liu quan h, các quy tc chuyn đổi c s d liu biu din
dng lược đồ E_R sang mô hình d liu quan.
Chng 4, 5 và 6: trình bày các ngôn ng truy vn trên c s d liu. Trong chưng 4 trình bày
ngôn ng đại s quan h, chưng 5 trình bày ngôn ng tân t và chưng 6 trình bày ngôn ng
truy vn SQL.
Chng 7: trình bày các khái nim liên quan đến ph thuc hàm, khóa, các thut toán tìm ph ti
thiu ca tp ph thuc hàm, tìm khóa và cui chưng trình bày v ràng buc toàn vn d liu.
Chng 8: Chưng này gii thiu các dng chun, phân rã bo toàn thông tin, bo toàn
ph thuc hàm, qua đó cũng trình bày cách phân rã bo toàn bo toàn thông tin và bo
toàn ph thuc.
Mc dù đã rt c gng trong quá trình biên son bài ging nhưng chc chn bài ging s
còn nhiu thiếu sót và hn chế. Rt mong nhn được s đóng góp ý kiến quý báu ca sinh
viên và các bn đc để giáo trình ngày mt hoàn thin hn.
Trang 3/109
MC LC
Li m đầu....................................................................................................... 2
Mc lc............................................................................................................ 3
Chng 1: Gii thiu chung......................................................................... 8
1. Gii thiu chung....................................................................................... 8
1.1. Gii thiu ........................................................................................... 8
1.2. Đnh nghĩa CSDL.............................................................................. 10
1.3. Các đối tượng s dng CSDL. .......................................................... 11
1.4. H qun tr CSDL.............................................................................. 12
1.5. Các mc biu din mt CSDL........................................................... 12
1.6. S đồ tng quát mt h qun tr CSDL ............................................. 14
1.7. Tính độc lp gia d liu và chưng trình. ....................................... 15
2. Các cách tiếp cn ca mt CSDL............................................................. 15
2.1. Cách tiếp cn theo mô hình d liu mng ......................................... 16
2.2. Mô hình d liu phân cp.................................................................. 17
2.3. Mô hình d liu quan h thc th
...................................................... 18
2.4. Mô hình d liu quan h.................................................................... 18
2.5. Mô hình d liu hướng đối tượng ..................................................... 19
3. Bài tp....................................................................................................... 19
Chng 2: Mô hình thc th kết hp.......................................................... 21
1. Mô hình thc th kết hp. ........................................................................ 21
1.1. Thc th - tp thc th....................................................................... 21
1.2. Thuc tính.......................................................................................... 21
1.3. Mi kết hp........................................................................................ 22
1.4. Bn s ................................................................................................ 23
1.5. Khoá................................................................................................... 24
Trang 4/109
1.6. S chiu ca mi kết hp................................................................... 25
1.7. Tng quát hóa và chuyên bit hóa..................................................... 25
1.8. Tp thc th yếu ................................................................................ 26
2. Ví d......................................................................................................... 27
3. Bài tp....................................................................................................... 29
Chng 3: Mô hình d liu quan h........................................................... 30
1. Các khái nim c bn ............................................................................... 30
1.1. Thuc tính.......................................................................................... 30
1.2. Quan h n ngôi................................................................................... 31
1.3. B....................................................................................................... 31
1.4. Lược đồ quan h ................................................................................ 32
1.5. Khóa ca mt quan h ....................................................................... 33
1.6. Ràng buc toàn vn ........................................................................... 35
2. Các thao tác c bn trên quan h.............................................................. 35
2.1. Phép thêm .......................................................................................... 35
2.2. Phép xóa ............................................................................................ 36
2.3. Phép sa............................................................................................. 36
3. Các bước chuyn đổi t
mô hình thc th kết hp
sang mô hình quan h................................................................................. 37
3.1. Biến các tp thc th chuyên bit hóa v dng bình thưng............. 37
3.2. Chuyn tt c các tp thc th thành quan h ................................... 38
3.3. Mi kết hp........................................................................................ 39
3.4. Nhp tt c các quan h có cùng khóa............................................... 39
Chng 4: Ngôn ng đi s quan h ......................................................... 40
Trang 5/109
1. Các phép toán c s ................................................................................. 40
1.1. Các phép toán tp hp ....................................................................... 40
1.2. Các phép toán quan h....................................................................... 41
2. Các phép toán khác .................................................................................. 46
2.1. Phép kết hai quan h.......................................................................... 46
2.2. Phép kết ni ni ................................................................................. 47
2.3. Phép kết ni trái................................................................................. 48
2.4. Phép kết ni phi ............................................................................... 49
2.5. Hàm kết hp và gom nhóm ............................................................... 49
2.6. Các phép toán cp nht trên quan h
................................................. 50
3. Bài tp....................................................................................................... 52
Chng 5: Ngôn ng tân t ....................................................................... 55
1. Ngôn ng tân t có biến là b.................................................................. 55
1.1. Mt s khái nim ............................................................................... 55
1.2. Đnh nghĩa hình thc ca phép tính b ............................................ 55
1.3. Lượng t tn ti
và vi mi
..................................................... 57
2. Ngôn ng tân t có biến là min giá tr.................................................... 58
3. Bài tp....................................................................................................... 59
Chng 6: Ngôn ng truy vn SQL .......................................................... 61
1. Các lnh hi.............................................................................................. 61
1.1. Cú pháp lnh truy vn........................................................................ 61
1.2. Phép chiếu.......................................................................................... 62
1.3. Phép chn .......................................................................................... 62
1.4. Phép kết ............................................................................................. 63
Trang 6/109
1.5. Mt s lưu ý....................................................................................... 63
2. Truy vn lng ........................................................................................... 65
3. Hàm kết hp và gom nhóm...................................................................... 68
4. Các lnh khai báo cu trúc CSDL............................................................ 69
5. Các thao tác cp nht d liu.................................................................... 72
6. Bài tp....................................................................................................... 73
Chng 7: Ph thuc hàm, khóa, ràng buc toàn vn ........................... 74
1. Ph thuc hàm.......................................................................................... 74
1.1. Khái nim ph thu
c hàm.................................................................. 74
1.2. H lut dn Amstrong........................................................................ 75
1.3. Thut toán tìm bao đóng ca tp thuc tính ...................................... 77
1.4. Bài toán thành viên............................................................................ 78
1.5. Ph ti thiu ca mt tp ph thuc hàm .......................................... 78
2. Khóa ......................................................................................................... 82
2.1. Đnh nghĩa ......................................................................................... 82
2.2. Thut toán tìm khóa........................................................................... 82
3. Ràng buc toàn vn.................................................................................. 85
3.1. Đ
nh nghĩa – các yếu t ca ràng buc toàn vn............................... 85
3.2. Các loi ràng buc toàn vn .............................................................. 87
4. Bài tp....................................................................................................... 93
Chng 8: Dng chun và chun hóa CSDL ............................................ 96
1. Dng chun ca lược đồ quan h ............................................................. 96
1.1. Dng chun 1 ....................................................................................... 96
1.2. Dng chun 2 ....................................................................................... 97
1.3. Dng chun 3 ....................................................................................... 100
Trang 7/109
1.4. Dng chun BC.................................................................................... 101
1.5. Kim tra dng chun ............................................................................ 101
2. Phép phân rã............................................................................................. 102
2.1. Phân rã bo toàn thông tin ................................................................... 102
2.2. Phân rã bo toàn ph thuc hàm.......................................................... 103
3. Thiết kế CSDL bng cách phân rã ........................................................... 104
3.1. Phân rã thành dng chun BC (hoc dng chun 3)
bo toàn thông tin................................................................................. 104
3.2. Phân rã thành dng chun 3 va bo toàn thông tin
va bo toàn ph thuc hàm ................................................................ 108
4. Bài tp....................................................................................................... 108
Tài liu tham kho ........................................................................................... 109
Trang 8/109
Chương 1
Gii Thiu Chung
Chưng 1 gii thiu cho hc viên các khái nim c bn v c s d liu (CSDL) và h
qun tr CSDL.
1. Gii thiu chung
1.1. Gii thiu
Xét mt h thng các tp tin c đin: được t chc mt cách riêng r, phc v cho mt
mc đích ca mt đn v hay mt đn v con trc thuc c
th. ng dng là mt h qun
lý nhân s ca mt công ty.
Ti mt công ty đã được trang b máy vi tính cho tt c các phòng ban. Trong đó:
Phòng T chc lưu gi nhng thông tin v lý lch ca nhân viên như h tên, bí
danh, gii tính, ngày sinh, ngày vào đoàn, ngày vào đảng, ngày tuyn dng, h s
lưng, h s ph cp, hoàn cnh gia đình … Phn mm được s dng để
qun lý là
Microsoft Access.
Phòng Tài v lưu gi nhng thông tin v h tên, h s lưng, h s ph cp, đn v
để tính toán lưng và ph cp da trên danh sách do phòng t chc gi sang.
Các bng tính này được làm bi Microsoft Excel.
B phn Văn thư s dng Microsoft word để tho các văn bn báo cáo v tình hình
ca đn v trong đó có nêu tng s công nhân viên và trình độ chuyên môn
được
đào to.
Trong khi đó ti tng công ty các phòng ban cũng được trang b máy vi tính và
cũng qun lý nhng thông tin ca các cán b ch cht ca công ty con là giám đốc,
phó giám đốc, trưng phó phòng.
Vic phát trin ca h thng qun lý như sau:
Nhng chưng trình ng dng mi phi được viết khi mt nhu cu ny sinh.
Các tp tin thưng trc mi được to ra theo yêu cu.
Trong mt thi gian dài các tp tin có th các dng thc khác nhau.
Nhng chưng trình ng dng có th viết bi các ngôn ng khác nhau.
Trang 9/109
u đim:
Vic xây dng nhng h thng tp tin riêng l ti tng đn v qun lý ít tn thi
gian bi lượng thông tin cn qun lý và khai thác là nh, không đòi hi đầu tư
nhiu nên trin khai nhanh.
Thông tin được khai thác ch phc v cho mc đích hp nên kh năng đáp ng
nhanh chóng, kp thi.
Hn chế:
Do thông tin được t chc mi phòng ban mi khác (thông tin và công c trin khai)
nên rõ ràng s phi hp v mt t chc và khai thác các phòng ban rt khó khăn. Thông
tin phòng ban này không được s dng cho phòng ban khác, ti công ty con vi tng
công ty. Hn na cùng mt thông tin được cp nht vào máy ti nhiu ni khác nhau. Do
đó có nhng hn chế sau:
D liu d tha và không nht quán
9 Nhng thông tin ging nhau có th b trùng lp mt s ni.
9 Tt c nhng bn sao d liu có th không được cp nht đúng.
Khó khăn trong vic truy xut d liu
9 Có th phi viết mt trình ng dng mi tha yêu cu mi đt ra.
9 Có th to ra d liu này mt cách th công nhưng mt thi gian.
Khó khăn khi viết chng trình ng dng đòi hi thông tin liên quan đến
nhiu đn v
9 D liu nhng tp tin khác nhau.
9 D liu các dng thc khác nhau.
Ngoài ra còn mt s vn đề chưa được gii quyết như:
Nhiu ngi s dng
9 Mun thi gian tr li nhanh hn cho các tác v đồng thi.
9 Cn s b
o v đối vi nhng cp nht đồng thi.
Các vn đề bo mt
9 Mi ngưi s dng h thng ch có th truy xut nhng d liu mà h được
phép thy.
Trang 10/109
9 Chng hn như nhng ngưi tính lưng và ph cp ch gii quyết các mu tin
nhân viên, và không th thy được thông tin v lý lch nhân viên; nhng th qu
ch truy xut nhng d liu v các khon chi…
9 Khó khăn để ràng buc điu này trong nhng chưng trình ng dng.
Các vn đề toàn vn.
9 D liu có th được yêu cu tha mãn nhng ràng buc.
9 Chng hn như nhân viên đang hưng chế độ nào đó phòng t chc thì s
không được hưng chế độ tr cp cao nht ca phòng công đoàn.
9 Vi cách tiếp cn x lý-tp tin, khó khăn để thc hin hoc thay đổi nhng ràng
buc như vy.
Khó khăn khi nâng cp h thng.
9 Do h thng được t chc thành các tp tin riêng l nên thiếu s chia x thông
tin gia các phòng ban. Bên cnh đó vic kết ni các h thng này vi nhau hay
nâng cp ng dng s gp rt nhiu khó khăn.
Nhng nhược đim này đã dn ti vic phát trin các h thng qun tr c s d liu.
1.2. Đnh nghĩa c s d
liu
C s d liu (database) là mt h thng các thông tin có cu trúc được lưu tr trên các
thiết b lưu tr th cp (băng t, đĩa t…) nhm tho mãn yêu cu khai thác thông tin
đồng thi ca nhiu ngưi s dng hay nhiu chưng trình ng dng vi nhiu mc đích
khác nhau.
u đim ca CSDL:
Gim s trùng lp thông tin xung mc thp nht và do đó bo đảm được tính nht
quán và toàn vn d liu
D liu có th được truy xut theo nhiu cách khác nhau
Kh năng chia x thông tin cho nhiu ngưi s dng và nhiu ng dng khác nhau
Để đạt được nhng ưu đim trên CSDL đt ra nhng vn đề cn gii quyết, đó là:
Tính ch quyn c
a d liu. Do s chia x ca CSDL nên tính ch quyn ca d
liu có th b lu mi và làm m nht tinh thn trách nhim, được th hin trên vn
đề an toàn d liu, kh năng biu din các mi liên h ng nghĩa ca d liu và
tính chính xác ca d liu. Nghĩa là ngưi khai thác CSDL phi có nghĩa v cp
nht các thông tin mi nht ca CSDL.
Trang 11/109
Tính bo mt và quyn khai thác thông tin ca ngi s dng (NSD). Do có
nhiu ngưi cùng khai thác CSDL mt cách đồng nên cn phi có mt c chế bo
mt và phân quyn khai thác CSDL.
Tranh chp d liu. Nhiu ngưi được phép truy cp vào cùng mt tài nguyên d
liu (data source) ca CSDL vi nhng mc đích khác nhau như xem, thêm, xóa,
sa d liu. Như vy cn phi có c chế ư
u tiên truy nhp d liu cũng như c chế
gii quyết tình trnh khoá chết (DeadLock) trong quá trình khai thác cnh tranh.
C chế ưu tiên có th được thc hin da trên:
9 Cp quyn ưu tiên cho ngưi khai thác CSDL, ngưi nào có quyn ưu tiên cao
hn thì được ưu tiên cp quyn truy nhp d liu trước.
9 Thi đim truy nhp, ai có yêu cu truy xut trước thì có quyn truy nhp d
liu trước.
9 Hoc da trên c chế lp lch truy xut hay c chế khoá.
9
Đm bo d liu khi có s c. Vic qun lý tp trung có th làm tăng kh năng
mt mát hoc sai lch thông tin khi có s c như mt đin đột xut, mt phn hay
toàn b đĩa lưu tr d liu b h
ư… Mt s h điu hành mng có cung cp dch v
sao lưu đĩa cng (c chế s dng đĩa cng d phòng - RAID), t động kim tra và
khc phc li khi có s c. Tuy nhiên bên cnh dch v ca h điu hành, mt
CSDL nht thiết phi có mt c chế khôi phc d liu khi các s c bt ng xy ra
để đảm bo CSDL luôn n đnh.
1.3. Các đối tng s dng CSDL
Nhng ngưi s dng không chuyên v lĩnh vc tin hc và CSDL, do đó CSDL
cn có các công c để giúp cho ngưi s dng không chuyên có th khai thác hiu
qu CSDL
Các chuyên viên tin hc biết khai thác CSD, đây là nhng ngưi có th xây dng
các ng dng khác nhau phc v cho nhng yêu cu khác nhau trên CSDL.
Nhng ngưi qun tr CSDL, là nhng ngưi hiu biết v tin hc, các h qun tr
CSDL và h thng máy tính. H là ngưi t chc CSDL (khai báo cu trúc CSDL,
ghi nhn các yêu cu bo mt cho các d liu cn bo v…), do đó h cn phi
nm rõ các vn đề v k thut để th phc hi d liu khi có s c. H là nhng
ngưi cp quyn hn khai thác CSDL nên h có th gii quyết các vn đề tranh
chp d liu.
Trang 12/109
1.4. H qun tr CSDL
Để gii quyết tt nhng vn đề đt ra cho mt CSDL như đã trình bày trong 1.2 thì cn có
mt h thng các phn mm chuyên dng. H thng này được gi là h qun tr CSDL
(Database Management System - DBMS), là công c h tr tích cc cho các nhà phân
tích, thiết kế và khai thác CSDL. Hin nay có nhiu h qun tr CSDL trên th trưng như:
Visual Foxpro, SQL server, DB2, Microsoft Access, Oracle
Mt h qun tr CSDL phi có:
Ngôn ng giao tiếp gia NSD và CSDL:
9 Ngôn ng mô t d liu (Data Definition Language - DDL) để cho phép khai
báo cu trúc ca CSDL, khai báo các mi liên h ca d liu (Data
Relationship) và các quy tc (Rules, Constraint) qun lý áp đt trên d liu.
9 Ngôn ng thao tác d liu (Data Manipulaton Language - DML) cho phép NSD
có th thêm, xoá, d liu trong CSDL.
9 Ngôn ng truy vn d liu (Structured Query Language - SQL) cho phép NSD
truy vn các thông tin cn thiết.
9 Ngôn ng qun lý d liu (Data Control Language - DCL) cho phép nhng
ngưi qun tr
h thng thay đổi cu trúc ca các bng d liu, khai báo bo mt
thông tin và cp quyn khai thác CSDL cho NSD.
T đin d liu (Data dictionary) dùng để mô t các ánh x liên kết, ghi nhn các
thành phn cu trúc ca CSDL, các chưng trình ng dng, mt mã, quyn s
dng…
Có bin pháp bo mt tt.
Có c chế gii quyết tranh chp d liu.
Có c chế sao lưu và phc hi d liu khi có s c xy ra.
Có giao din tt, d s dng.
Bo đảm tính độc lp gia d liu và chưng trình: khi có s thay đổi d liu (như
sa đổi cu trúc lưu tr các bng d liu, thêm các ch mc,…) thì các chưng
trình ng dng đang chy trên CSDL vn không cn ph
i viết li hay cũng không
nh hưng đến NSD khác.
1.5. Các mc biu din mt CSDL
Để h thng có th dùng được thì phi tìm d liu mt cách hiu qu. Điu này dn đến
vic cn phi thiết kế nhng cu trúc d liu phc tp đối vi vic biu din d liu trong
Trang 13/109
c s d liu. Vì nhiu ngưi s dng các h thng c s d liu không phi là ngưi
hiu biết nhiu v máy tính nên nhng ngưi phát trin h thng phi che du đi s phc
tp khi ngưi s dng thông qua mt s mc tru tượng, nhm làm đn gin hóa s
tưng tác ca ngưi s d
ng đối vi h thng.
Có 3 mc biu din d liu, c th như sau:
Mc trong (mc vt lý - Physical level)
Nói đến cách thc d liu được lưu tr thc s. Tr li câu hi d liu gì và lưu
tr chúng như thế nào? Cn các ch mc gì?
Ví d như ch mc, B-cây, băm.
Nhng ngưi thao tác ti mc này là ngưi qun tr CSDL và nhng NSD chuyên
môn.
Mc quan nim hay mc logic (conception level, logical level)
Tr li câu hi cn phi lưu tr bao nhiêu loi d liu? Đó là nhng d liu gì?
Mi quan h gia chúng như thế nào?
Như vy CSDL mc vt lý là s cài đt c th ca CSDL mc quan nim.
Mc ngoài hay mc nhìn (view level)
Là mc ca NSD và các chưng trình
ng dng.
Làm vic ti mc này là các nhà chuyên môn, k sư tin hc, NSD không chuyên.
Mi NSD hay mi chưng trình ng dng có th được nhìn CSDL theo mt góc
độ khác nhau. Tu thuc vào vai trò ca NSD mà có th thy tt c hoc mt phn
ca CSDL. NSD hay chưng trình ng dng có th không được biết v cu trúc t
chc lưu tr thông tin trong CSDL. H ch có th làm vic trên mt phn CSDL
theo cách nhìn do ngư
i qun tr hay chưng trình ng dng quy đnh, gi là
khung nhìn.
Trang 14/109
1.6. S đồ tng quát mt h qun tr CSDL
Hình 1.2. S đồ tng quát ca mt h qun tr CSDL
Hình 1.2 minh ha s đồ tng quát ca mt h qun tr CSDL. Có 3 mc: mc chưng
trình khai báo cu trúc và chưng trình ng dng; mc mô t CSDL, thao tác CSDL và
các t đin d liu; mc CSDL.
Trang 15/109
Mi h qun tr CSDL có mt ngôn ng khai báo hay mô t (Data Definition Language -
DDL) cu trúc CSDL riêng. Nhng ngưi thiết kế và qun tr CSDL thc hin các công
vic khai báo cu trúc CSDL.
Các chưng trình khai báo cu trúc CSDL được viết bng ngôn ng mà h qun tr CSDL
cho phép. Hai công vic khai báo cu trúc logic (là vic khai báo các loi d liu và các
mi liên h gia các loi d liu đó, cùng các ràng buc toàn vn d liu) và khai báo vt
lý (d liu
được lưu tr theo dng nào, có bao nhiêu ch mc)
Các chưng trình ng dng được viết bng ngôn ng thao tác CSDL (Data Manipulation
Langage - DML) vi mc đích:
Truy xut d liu
Cp nht d liu (thêm, xóa, sa)
Khai thác d liu
Ngôn ng thao tác CSDL còn được s dng cho nhng ngưi s dng thao tác
trc tiếp vi CSDL.
T đin d liu (Data Dictionary - DD) là m
t CSDL ca h qun tr CSDL s dng để
lưu tr cu trúc CSDL, các thông tin bo mt, bo đảm an toàn d liu và các cu trúc
ngoài. T đin d liu còn được gi là siêu CSDL (Meta-Database)
1.7. Tính độc lp gia d liu và chng trình
Độc lp d liu vt lý
9 Kh năng cp nht lược đồ vt lý không làm cho các chưng trình ng d
ng
phi b viết li.
9 Vic cp nht mc này thưng cn thiết để ci tiến hiu sut.
Độc lp d liu logic
9 Kh năng cp nht lược đồ logic mà không làm cho các chưng trình ng dng
phi b viết li.
9 Nhng cp nht thưng được thc hin khi cu trúc logic ca c s d liu thay
đổi.
2. Các cách tiếp cn ca mt CSDL
Nn tng ca cu trúc c s d liu là mô hình d liu. Mô hình d liu được đnh nghĩa
là mt sưu tp các công c khái nim dùng cho vic mô t d liu, các mi quan h d
liu, các ng nghĩa d liu và các ràng buc d liu.
Trang 16/109
2.1. Cách tiếp cn theo mô hình d liu mng
Mô hình d liu mng (Network Data Model) hay gi tt là mô hình mng (Network
Model) là mô hình được biu din bi mt đồ th có hướng. Mô hình này được xây dng
bi Honeywell vào năm 1964-1965. Trong mô hình này, có 3 khái nim được s dng:
mu tin hay bn ghi (record), loi mu tin (record type) và loi liên h (set type).
Loi mu tin: đc trưng cho mt loi đối tượng riêng bit. Chng hn như trong qun lý
nhân s ti mt đn v thì đối tượng cn phn nh ca thế gii thc có th là Phòng, nhân
viên, công vic, lý lch… do đó có các loi mu tin đc trưng cho tng đối tượng này.
Trong mô hình mng, mi loi mu tin được th hin bng mt hình ch nht, mt th
hin (instance) ca mt loi mu tin được gi là bn ghi (record) . ví d trên loi mu
tin Phòng có các mu tin là các phòng ban trong công ty, loi mu tin Nhân viên có các
mu tin là các nhân viên đang làm vic ti các phòng ban ca công ty…
Loi liên h: là s liên kết gia mt loi mu tin ch vi mt mu tin thành viên. Trong
mô hình mng, mt loi liên h được th hin bng hình bu dc và s liên kết gia hai
loi mu tin được th hin bng các cung có hướng đi t loi mu tin ch đến loi liên h
và t loi liên h đến loi mu tin thành viên.
Trong loi liên kết ngưi ta còn ch ra s lượng các mu tin tham gia vào trong mi kết
hp. Có mt s loi sau:
1÷ 1 (One to One): Mi mu tin ca loi mu tin ch kết hp vi đúng 1 mu tin
ca loi mu tin thành viên. Ví d, mi nhân viên có duy nht mt lý lch cá nhân.
1÷ n (One to Many): Mi mu tin ca loi mu tin ch
kết hp vi 1 hay nhiu
mu tin ca loi mu tin thành viên. Ví d, mi phòng ban có th có mt hoc
nhiu nhân viên.
n ÷ 1 (Many to One): Nhiu mu tin ca loi mu tin ch kết hp vi đúng 1 mu
tin ca loi mu tin thành viên. Ví d, nhiu nhân viên cùng làm mt công vic.
Đệ quy (Recursive): Mt loi mu tin ch cũng có th đồng thi là mu tin thành
viên vi chính nó. Ví d, trưng phòng cũng là mt nhân viên thuc phòng trong
công ty.
Hình 1.4 minh ho mt mô hình d liu mng.
Trang 17/109
Hình 1.4. Mô hình d liu mng
u đim: đn gin, d s dng.
Hn chế: không thích hp trong vic biu din CSDL ln do hn chế v kh năng din
đạt ng nghĩa ca d liu, đc bit là các d liu và mi liên h phc tp ca d liu
trong thc thế là rt hn chế.
2.2. Mô hình d
liu phân cp
Mô hình d liu phân cp (Hieracical Data Model), còn gi là mô hình phân cp
(Hieracical Model), được thc hin thông qua s kết hp gia IBM và North American
Rockwell vào khong năm 1965. Mô hình là mt cây, trong đó mi nút ca cây biu din
mt thc th, gia nút con vi nút cha được liên h vi nhau theo mt mi quan h xác
đnh.
Loi mu tin: ging trong mô hình d liu mng
Loi mi liên h: kiu liên h là phân cp:
Mu tin thành viên ch đóng vai trò thành viên ca mt mi liên h duy nht, tc là nó
thuc mt ch duy nht. Như vy, mi liên h t mu tin ch ti các mu tin thành viên
là 1 ÷ n và t mu tin thành viên vi mu tin ch là 1 ÷ 1
Trang 18/109
Gia hai loi mu tin ch tn ti mt mi quan h duy nht.
Hình 1.5 minh ho mô hình d liu phân cp mt CSDL v điu tra dân s.
Hình 1.5. Mô hình d liu phân cp
2.3. Mô hình d liu quan h
Mô hình d liu quan h (Relational Data Model) còn được gi là mô hình quan h
(Relational Model) do E.F.Codd đề xut năm 1970. Nn tng c bn là khái nim lý
thuyết tp hp trên các quan h, tc là tp ca các b giá tr (value tuples). Trong mô
hình d liu này nhng khái nim được s dng là thuc tính (attribute), quan h
(relation), lược đồ quan h (relation schema), b (tuple), khóa (key).
Mô hình quan h là mô hình được nghiên cu nhiu nht, và có c s lý thuyết vng chc
nht. Mô hình quan h cùng vi mô hình d liu thc th kết hp đang được s dng
rng rãi nht hin nay trong vic phân tích và thiết kế CSDL. Chúng ta s nghiên cu chi
tiết v mô hình này trong chưng sau.
2.4. Mô hình d liu thc th - kết hp
Mô hình d liu thc th - kết hp (Entity – Relationship Model) do Peter Pin_Shan Chen
đề xut năm 1976. Mô hình quan h-thc th được da trên s nhn thc thế gii gm có
Trang 19/109
mt sưu tp các đối tượng căn bn, được gi là các tp thc th, và các mi quan h
gia các đối tượng này.Trong mô hình này các khái nim được s dng là tp thc th
(entity set), thc th (entity), thuc tính ca loi thc th (entity attribute), khóa ca loi
thc th (entity key), loi mi kết hp (entity relationship), s ngôi ca mi kết hp
(relationship degree), thuc tính ca mi kết hp (relationship attribute), bn s ca mi
kết hp (relationship cardinal).
Chi tiết ca mô hình này s được nghiên cu trong chưng sau.
2.5. Mô hình d liu hng đối tng
Mô hình d liu hướng đối tượng (Object Oriented Data Model) ra đi vào cui nhng
năm 80 và đầu nhng năm 90. Đây là loi mô hình tiên tiến nht hin nay da trên cách
tiếp cn hướng đối tượng. Mô hình này s dng các khái nim như lp (class), s kế tha
(inheritance), kế tha bi (multi - inheritance). Đc trưng c bn ca cách tiếp cn này là
tính đóng gói (encapsulation), tính đa hình (polymorphism) và tính tái s dng
(reusability).
3. Bài tp
Bài 1:
Da vào nhng khái nim đã hc, hãy biu din CSDL có các loi mu tin Phòng, Nhân
viên, Công vic, lý lch đã trình bày trong mô hình mng theo cách tiếp cn phân
cp.Biết:
Loi liên h là phân cp.
Phòng có nhiu nhân viên, mi nhân viên ch thuc mt phòng duy nht
Công vic có nhiu nhân viên cùng làm; mi nhân viên ch làm mt công vic duy
nht
Mi nhân viên có mt lý lch, mi lý lch ch thuc duy nht mt nhân viên.
Bài 2:
Da vào nhng khái nim đã hc, hãy biu din CSDL v tng điu tra dân s toàn quc
có các loi mu tin tnh – thành ph, qun huyn, phưng xã, đa bàn, h điu tra và nhân
khu đã trình bày trong mô hình phân cp theo cách tiếp cn mng. Biết:
Nhân khu thuc mt h điu tra
H điu tra thuc mt đa bàn
Đa bàn điu tra thuc mt phưng xã
Trang 20/109
Phưng xã thuc mt qun huyn
Qun huyn thuc mt tnh, thành ph

Preview text:

TR NG Đ I H C ĐÀ L T
KHOA CÔNG NGH THÔNG TIN CAO TH NH N NGUY N TH THANH BÌNH GIÁO TRÌNH C S D LI U
Dành cho sinh viên ngành Công ngh Thông tin Đà L t 2010 Trang 1/109 L I M Đ U
Để đáp ng nhu cầu h c tập c a sinh viên chuyên ngành Công nghệ Thông tin, bài giảng
C s dữ liệu được biên soạn theo chư ng trình hệ thống tín chỉ c a Trư ng Đại h c Đà
Lạt, cung cấp các kiến th c c bản về lý thuyết c s dữ liệu.
Giáo trình gồm 8 chư ng sau: Ch
ng 1: giới thiệu chung Ch
ng 2: trình bày mô hình thực thể kết hợp E_R (Entity Relationship) để mô hình hóa
các hoạt động trong thế giới thực, nhìn thế giới thực như là một tập các đối tượng căn bản
được g i là các thực thể, và các mối quan hệ giữa các đối tượng này. Mô hình được
phát triển để làm thuận tiện cho việc thiết kế c s dữ liệu bằng cách đ c tả một tổ ch c. Ch
ng 3: trình bày mô hình dữ liệu quan hệ, các quy tắc chuyển đổi c s dữ liệu biểu diễn
dạng lược đồ E_R sang mô hình dữ liệu quan. Ch
ng 4, 5 và 6: trình bày các ngôn ngữ truy vấn trên c s dữ liệu. Trong chư ng 4 trình bày
ngôn ngữ đại số quan hệ, chư ng 5 trình bày ngôn ngữ tân từ và chư ng 6 trình bày ngôn ngữ truy vấn SQL. Ch
ng 7: trình bày các khái niệm liên quan đến phụ thuộc hàm, khóa, các thuật toán tìm ph tối
thiểu c a tập phụ thuộc hàm, tìm khóa và cuối chư ng trình bày về ràng buộc toàn vẹn dữ liệu. Ch
ng 8: Chư ng này giới thiệu các dạng chuẩn, phân rã bảo toàn thông tin, bảo toàn
phụ thuộc hàm, qua đó cũng trình bày cách phân rã bảo toàn bảo toàn thông tin và bảo toàn phụ thuộc.
M c dù đã rất cố gắng trong quá trình biên soạn bài giảng nhưng chắc chắn bài giảng sẽ
còn nhiều thiếu sót và hạn chế. Rất mong nhận được sự đóng góp ý kiến quý báu c a sinh
viên và các bạn đ c để giáo trình ngày một hoàn thiện h n. Trang 2/109 M C L C
Lời mở đầu....................................................................................................... 2
Mục lục ............................................................................................................ 3 Ch
ng 1: Gi i thi u chung......................................................................... 8
1. Giới thiệu chung ....................................................................................... 8
1.1. Giới thiệu ........................................................................................... 8
1.2. Đ nh nghĩa CSDL. ............................................................................. 10
1.3. Các đối tượng sử dụng CSDL. .......................................................... 11
1.4. Hệ quản tr CSDL. ............................................................................. 12
1.5. Các m c biểu diễn một CSDL........................................................... 12
1.6. S đồ tổng quát một hệ quản tr CSDL ............................................. 14
1.7. Tính độc lập giữa dữ liệu và chư ng trình. ....................................... 15
2. Các cách tiếp cận c a một CSDL............................................................. 15
2.1. Cách tiếp cận theo mô hình dữ liệu mạng ......................................... 16
2.2. Mô hình dữ liệu phân cấp .................................................................. 17
2.3. Mô hình dữ liệu quan hệ thực thể...................................................... 18
2.4. Mô hình dữ liệu quan hệ.................................................................... 18
2.5. Mô hình dữ liệu hướng đối tượng ..................................................... 19
3. Bài tập....................................................................................................... 19 Ch
ng 2: Mô hình thực th kết h p.......................................................... 21
1. Mô hình thực thể kết hợp. ........................................................................ 21
1.1. Thực thể - tập thực thể....................................................................... 21
1.2. Thuộc tính.......................................................................................... 21
1.3. Mối kết hợp........................................................................................ 22
1.4. Bản số ................................................................................................ 23
1.5. Khoá................................................................................................... 24 Trang 3/109
1.6. Số chiều c a mối kết hợp................................................................... 25
1.7. Tổng quát hóa và chuyên biệt hóa..................................................... 25
1.8. Tập thực thể yếu ................................................................................ 26
2. Ví dụ ......................................................................................................... 27
3. Bài tập....................................................................................................... 29 Ch
ng 3: Mô hình d li u quan h ........................................................... 30
1. Các khái niệm c bản ............................................................................... 30
1.1. Thuộc tính.......................................................................................... 30
1.2. Quan hệ n ngôi................................................................................... 31
1.3. Bộ....................................................................................................... 31
1.4. Lược đồ quan hệ ................................................................................ 32
1.5. Khóa c a một quan hệ ....................................................................... 33
1.6. Ràng buộc toàn vẹn ........................................................................... 35
2. Các thao tác c bản trên quan hệ.............................................................. 35
2.1. Phép thêm .......................................................................................... 35
2.2. Phép xóa ............................................................................................ 36
2.3. Phép sửa............................................................................................. 36
3. Các bước chuyển đổi từ mô hình thực thể kết hợp
sang mô hình quan hệ ................................................................................. 37
3.1. Biến các tập thực thể chuyên biệt hóa về dạng bình thư ng............. 37
3.2. Chuyển tất cả các tập thực thể thành quan hệ ................................... 38
3.3. Mối kết hợp........................................................................................ 39
3.4. Nhập tất cả các quan hệ có cùng khóa............................................... 39 Ch
ng 4: Ngôn ng đ i số quan h ......................................................... 40 Trang 4/109
1. Các phép toán c s ................................................................................. 40
1.1. Các phép toán tập hợp ....................................................................... 40
1.2. Các phép toán quan hệ....................................................................... 41
2. Các phép toán khác .................................................................................. 46
2.1. Phép kết hai quan hệ.......................................................................... 46
2.2. Phép kết nối nội ................................................................................. 47
2.3. Phép kết nối trái ................................................................................. 48
2.4. Phép kết nối phải ............................................................................... 49
2.5. Hàm kết hợp và gom nhóm ............................................................... 49
2.6. Các phép toán cập nhật trên quan hệ ................................................. 50
3. Bài tập....................................................................................................... 52 Ch
ng 5: Ngôn ng tân từ ....................................................................... 55
1. Ngôn ngữ tân từ có biến là bộ .................................................................. 55
1.1. Một số khái niệm ............................................................................... 55
1.2. Đ nh nghĩa hình th c c a phép tính bộ ............................................ 55
1.3. Lượng từ tồn tại ∃ và với m i ∀ ..................................................... 57
2. Ngôn ngữ tân từ có biến là miền giá tr .................................................... 58
3. Bài tập....................................................................................................... 59 Ch
ng 6: Ngôn ng truy v n SQL .......................................................... 61
1. Các lệnh hỏi.............................................................................................. 61
1.1. Cú pháp lệnh truy vấn........................................................................ 61
1.2. Phép chiếu.......................................................................................... 62
1.3. Phép ch n .......................................................................................... 62
1.4. Phép kết ............................................................................................. 63 Trang 5/109
1.5. Một số lưu ý....................................................................................... 63
2. Truy vấn lồng ........................................................................................... 65
3. Hàm kết hợp và gom nhóm ...................................................................... 68
4. Các lệnh khai báo cấu trúc CSDL ............................................................ 69
5. Các thao tác cập nhật dữ liệu.................................................................... 72
6. Bài tập....................................................................................................... 73 Ch
ng 7: Ph thuộc hàm, khóa, ràng buộc toàn vẹn ........................... 74
1. Phụ thuộc hàm .......................................................................................... 74
1.1. Khái niệm phụ thuộc hàm.................................................................. 74
1.2. Hệ luật dẫn Amstrong........................................................................ 75
1.3. Thuật toán tìm bao đóng c a tập thuộc tính ...................................... 77
1.4. Bài toán thành viên ............................................................................ 78
1.5. Ph tối thiểu c a một tập phụ thuộc hàm .......................................... 78
2. Khóa ......................................................................................................... 82
2.1. Đ nh nghĩa ......................................................................................... 82
2.2. Thuật toán tìm khóa........................................................................... 82
3. Ràng buộc toàn vẹn .................................................................................. 85
3.1. Đ nh nghĩa – các yếu tố c a ràng buộc toàn vẹn............................... 85
3.2. Các loại ràng buộc toàn vẹn .............................................................. 87
4. Bài tập....................................................................................................... 93 Ch
ng 8: D ng chuẩn và chuẩn hóa CSDL ............................................ 96
1. Dạng chuẩn c a lược đồ quan hệ ............................................................. 96 1.1.
Dạng chuẩn 1 ....................................................................................... 96 1.2.
Dạng chuẩn 2 ....................................................................................... 97 1.3.
Dạng chuẩn 3 ....................................................................................... 100 Trang 6/109 1.4.
Dạng chuẩn BC .................................................................................... 101 1.5.
Kiểm tra dạng chuẩn ............................................................................ 101
2. Phép phân rã ............................................................................................. 102 2.1.
Phân rã bảo toàn thông tin ................................................................... 102 2.2.
Phân rã bảo toàn phụ thuộc hàm.......................................................... 103
3. Thiết kế CSDL bằng cách phân rã ........................................................... 104 3.1.
Phân rã thành dạng chuẩn BC (ho c dạng chuẩn 3)
bảo toàn thông tin................................................................................. 104 3.2.
Phân rã thành dạng chuẩn 3 vừa bảo toàn thông tin
vừa bảo toàn phụ thuộc hàm ................................................................ 108
4. Bài tập....................................................................................................... 108
Tài liệu tham khảo ........................................................................................... 109 Trang 7/109 Chương 1
Giới Thiệu Chung
Chư ng 1 giới thiệu cho h c viên các khái niệm c bản về c s dữ liệu (CSDL) và hệ quản tr CSDL. 1. Gi i thi u chung 1.1. Gi i thi u
Xét một hệ thống các tập tin cổ điển: được tổ ch c một cách riêng rẽ, phục vụ cho một
mục đích c a một đ n v hay một đ n v con trực thuộc cụ thể. ng dụng là một hệ quản
lý nhân sự c a một công ty.
Tại một công ty đã được trang b máy vi tính cho tất cả các phòng ban. Trong đó:
• Phòng Tổ ch c lưu giữ những thông tin về lý l ch c a nhân viên như h tên, bí
danh, giới tính, ngày sinh, ngày vào đoàn, ngày vào đảng, ngày tuyển dụng, hệ số
lư ng, hệ số phụ cấp, hoàn cảnh gia đình … Phần mềm được sử dụng để quản lý là Microsoft Access.
• Phòng Tài vụ lưu giữ những thông tin về h tên, hệ số lư ng, hệ số phụ cấp, đ n v
… để tính toán lư ng và phụ cấp dựa trên danh sách do phòng tổ ch c g i sang.
Các bảng tính này được làm b i Microsoft Excel.
• Bộ phận Văn thư sử dụng Microsoft word để thảo các văn bản báo cáo về tình hình
c a đ n v trong đó có nêu tổng số công nhân viên và trình độ chuyên môn được đào tạo.
• Trong khi đó tại tổng công ty các phòng ban cũng được trang b máy vi tính và
cũng quản lý những thông tin c a các cán bộ ch chốt c a công ty con là giám đốc,
phó giám đốc, trư ng phó phòng.
Việc phát triển c a hệ thống quản lý như sau:
• Những chư ng trình ng dụng mới phải được viết khi một nhu cầu nảy sinh.
• Các tập tin thư ng trực mới được tạo ra theo yêu cầu.
• Trong một th i gian dài các tập tin có thể các dạng th c khác nhau.
• Những chư ng trình ng dụng có thể viết b i các ngôn ngữ khác nhau. Trang 8/109 u đi m:
• Việc xây dựng những hệ thống tập tin riêng lẽ tại từng đ n v quản lý ít tốn th i
gian b i lượng thông tin cần quản lý và khai thác là nhỏ, không đòi hỏi đầu tư
nhiều nên triển khai nhanh.
• Thông tin được khai thác chỉ phục vụ cho mục đích hẹp nên khả năng đáp ng nhanh chóng, k p th i. H n chế:
Do thông tin được tổ ch c mỗi phòng ban mỗi khác (thông tin và công cụ triển khai)
nên rõ ràng sự phối hợp về m t tổ ch c và khai thác các phòng ban rất khó khăn. Thông
tin phòng ban này không được sử dụng cho phòng ban khác, tại công ty con với tổng
công ty. H n nữa cùng một thông tin được cập nhật vào máy tại nhiều n i khác nhau. Do
đó có những hạn chế sau:
D li u d thừa và không nh t quán
9 Những thông tin giống nhau có thể b trùng lắp một số n i.
9 Tất cả những bản sao dữ liệu có thể không được cập nhật đúng.
Khó khăn trong vi c truy xu t d li u
9 Có thể phải viết một trình ng dụng mới thỏa yêu cầu mới đ t ra.
9 Có thể tạo ra dữ liệu này một cách th công nhưng mất th i gian.
Khó khăn khi viết ch ng trình ứng d ng đòi hỏi thông tin liên quan đến nhiều đ n v
9 Dữ liệu những tập tin khác nhau.
9 Dữ liệu các dạng th c khác nhau.
Ngoài ra còn một số vấn đề chưa được giải quyết như:
Nhiều ng i s d ng
9 Muốn th i gian trả l i nhanh h n cho các tác vụ đồng th i.
9 Cần sự bảo vệ đối với những cập nhật đồng th i.
Các v n đề b o mật
9 Mỗi ngư i sử dụng hệ thống chỉ có thể truy xuất những dữ liệu mà h được phép thấy. Trang 9/109
9 Chẳng hạn như những ngư i tính lư ng và phụ cấp chỉ giải quyết các mẫu tin
nhân viên, và không thể thấy được thông tin về lý l ch nhân viên; những th quỹ
chỉ truy xuất những dữ liệu về các khoản chi…
9 Khó khăn để ràng buộc điều này trong những chư ng trình ng dụng.
Các v n đề toàn vẹn.
9 Dữ liệu có thể được yêu cầu thỏa mãn những ràng buộc.
9 Chẳng hạn như nhân viên đang hư ng chế độ nào đó phòng tổ ch c thì sẽ
không được hư ng chế độ trợ cấp cao nhất c a phòng công đoàn.
9 Với cách tiếp cận xử lý-tập tin, khó khăn để thực hiện ho c thay đổi những ràng buộc như vậy.
Khó khăn khi nâng c p h thống.
9 Do hệ thống được tổ ch c thành các tập tin riêng lẽ nên thiếu sự chia xẻ thông
tin giữa các phòng ban. Bên cạnh đó việc kết nối các hệ thống này với nhau hay
nâng cấp ng dụng sẽ g p rất nhiều khó khăn.
Những nhược điểm này đã dẫn tới việc phát triển các hệ thống quản tr c s dữ liệu. 1.2.
Đ nh nghĩa c s d li u
C s dữ liệu (database) là một hệ thống các thông tin có cấu trúc được lưu trữ trên các
thiết b lưu trữ th cấp (băng từ, đĩa từ…) nhằm thoả mãn yêu cầu khai thác thông tin
đồng th i c a nhiều ngư i sử dụng hay nhiều chư ng trình ng dụng với nhiều mục đích khác nhau. u đi m của CSDL:
• Giảm sự trùng lắp thông tin xuống m c thấp nhất và do đó bảo đảm được tính nhất
quán và toàn vẹn dữ liệu
• Dữ liệu có thể được truy xuất theo nhiều cách khác nhau
• Khả năng chia xẻ thông tin cho nhiều ngư i sử dụng và nhiều ng dụng khác nhau
Để đạt được những ưu điểm trên CSDL đ t ra những vấn đề cần giải quyết, đó là:
Tính chủ quyền của d li u. Do sự chia xẻ c a CSDL nên tính ch quyền c a dữ
liệu có thể b lu m i và làm m nhạt tinh thần trách nhiệm, được thể hiện trên vấn
đề an toàn dữ liệu, khả năng biểu diễn các mối liên hệ ngữ nghĩa c a dữ liệu và
tính chính xác c a dữ liệu. Nghĩa là ngư i khai thác CSDL phải có nghĩa vụ cập
nhật các thông tin mới nhất c a CSDL. Trang 10/109
Tính b o mật và quyền khai thác thông tin của ng i s d ng (NSD). Do có
nhiều ngư i cùng khai thác CSDL một cách đồng nên cần phải có một c chế bảo
mật và phân quyền khai thác CSDL.
Tranh ch p d li u. Nhiều ngư i được phép truy cập vào cùng một tài nguyên dữ
liệu (data source) c a CSDL với những mục đích khác nhau như xem, thêm, xóa,
sửa dữ liệu. Như vậy cần phải có c chế ưu tiên truy nhập dữ liệu cũng như c chế
giải quyết tình trạnh khoá chết (DeadLock) trong quá trình khai thác cạnh tranh.
C chế ưu tiên có thể được thực hiện dựa trên:
9 Cấp quyền ưu tiên cho ngư i khai thác CSDL, ngư i nào có quyền ưu tiên cao
h n thì được ưu tiên cấp quyền truy nhập dữ liệu trước.
9 Th i điểm truy nhập, ai có yêu cầu truy xuất trước thì có quyền truy nhập dữ liệu trước.
9 Ho c dựa trên c chế lập l ch truy xuất hay c chế khoá. 9 …
Đ m b o d li u khi có sự cố. Việc quản lý tập trung có thể làm tăng khả năng
mất mát ho c sai lệch thông tin khi có sự cố như mất điện đột xuất, một phần hay
toàn bộ đĩa lưu trữ dữ liệu b hư… Một số hệ điều hành mạng có cung cấp d ch vụ
sao lưu đĩa c ng (c chế sử dụng đĩa c ng dự phòng - RAID), tự động kiểm tra và
khắc phục lỗi khi có sự cố. Tuy nhiên bên cạnh d ch vụ c a hệ điều hành, một
CSDL nhất thiết phải có một c chế khôi phục dữ liệu khi các sự cố bất ng xảy ra
để đảm bảo CSDL luôn ổn đ nh. 1.3. Các đối t ng s d ng CSDL
• Những ngư i sử dụng không chuyên về lĩnh vực tin h c và CSDL, do đó CSDL
cần có các công cụ để giúp cho ngư i sử dụng không chuyên có thể khai thác hiệu quả CSDL
• Các chuyên viên tin h c biết khai thác CSD, đây là những ngư i có thể xây dựng
các ng dụng khác nhau phục vụ cho những yêu cầu khác nhau trên CSDL.
• Những ngư i quản tr CSDL, là những ngư i hiểu biết về tin h c, các hệ quản tr
CSDL và hệ thống máy tính. H là ngư i tổ ch c CSDL (khai báo cấu trúc CSDL,
ghi nhận các yêu cầu bảo mật cho các dữ liệu cần bảo vệ…), do đó h cần phải
nắm rõ các vấn đề về kỹ thuật để có thể phục hồi dữ liệu khi có sự cố. H là những
ngư i cấp quyền hạn khai thác CSDL nên h có thể giải quyết các vấn đề tranh chấp dữ liệu. Trang 11/109 1.4. H qu n tr CSDL
Để giải quyết tốt những vấn đề đ t ra cho một CSDL như đã trình bày trong 1.2 thì cần có
một hệ thống các phần mềm chuyên dụng. Hệ thống này được g i là hệ quản tr CSDL
(Database Management System - DBMS), là công cụ hỗ trợ tích cực cho các nhà phân
tích, thiết kế và khai thác CSDL. Hiện nay có nhiều hệ quản tr CSDL trên th trư ng như:
Visual Foxpro, SQL server, DB2, Microsoft Access, Oracle…
Một hệ quản tr CSDL phải có:
• Ngôn ngữ giao tiếp giữa NSD và CSDL:
9 Ngôn ngữ mô tả dữ liệu (Data Definition Language - DDL) để cho phép khai
báo cấu trúc c a CSDL, khai báo các mối liên hệ c a dữ liệu (Data
Relationship) và các quy tắc (Rules, Constraint) quản lý áp đ t trên dữ liệu.
9 Ngôn ngữ thao tác dữ liệu (Data Manipulaton Language - DML) cho phép NSD
có thể thêm, xoá, dữ liệu trong CSDL.
9 Ngôn ngữ truy vấn dữ liệu (Structured Query Language - SQL) cho phép NSD
truy vấn các thông tin cần thiết.
9 Ngôn ngữ quản lý dữ liệu (Data Control Language - DCL) cho phép những
ngư i quản tr hệ thống thay đổi cấu trúc c a các bảng dữ liệu, khai báo bảo mật
thông tin và cấp quyền khai thác CSDL cho NSD.
• Tự điển dữ liệu (Data dictionary) dùng để mô tả các ánh xạ liên kết, ghi nhận các
thành phần cấu trúc c a CSDL, các chư ng trình ng dụng, mật mã, quyền sử dụng…
• Có biện pháp bảo mật tốt.
• Có c chế giải quyết tranh chấp dữ liệu.
• Có c chế sao lưu và phục hồi dữ liệu khi có sự cố xảy ra.
• Có giao diện tốt, dễ sử dụng.
• Bảo đảm tính độc lập giữa dữ liệu và chư ng trình: khi có sự thay đổi dữ liệu (như
sửa đổi cấu trúc lưu trữ các bảng dữ liệu, thêm các chỉ mục,…) thì các chư ng
trình ng dụng đang chạy trên CSDL vẫn không cần phải viết lại hay cũng không
ảnh hư ng đến NSD khác. 1.5.
Các mức bi u di n một CSDL
Để hệ thống có thể dùng được thì phải tìm dữ liệu một cách hiệu quả. Điều này dẫn đến
việc cần phải thiết kế những cấu trúc dữ liệu ph c tạp đối với việc biểu diễn dữ liệu trong Trang 12/109
c s dữ liệu. Vì nhiều ngư i sử dụng các hệ thống c s dữ liệu không phải là ngư i
hiểu biết nhiều về máy tính nên những ngư i phát triển hệ thống phải che dấu đi sự ph c
tạp khỏi ngư i sử dụng thông qua một số m c trừu tượng, nhằm làm đ n giản hóa sự
tư ng tác c a ngư i sử dụng đối với hệ thống.
Có 3 m c biểu diễn dữ liệu, cụ thể như sau:
Mức trong (mức vật lý - Physical level)
• Nói đến cách th c dữ liệu được lưu trữ thực sự. Trả l i câu hỏi dữ liệu gì và lưu
trữ chúng như thế nào? Cần các chỉ mục gì?
• Ví dụ như chỉ mục, B-cây, băm.
• Những ngư i thao tác tại m c này là ngư i quản tr CSDL và những NSD chuyên môn.
Mức quan ni m hay mức logic (conception level, logical level)
• Trả l i câu hỏi cần phải lưu trữ bao nhiêu loại dữ liệu? Đó là những dữ liệu gì?
Mối quan hệ giữa chúng như thế nào?
• Như vậy CSDL m c vật lý là sự cài đ t cụ thể c a CSDL m c quan niệm.
Mức ngoài hay mức nhìn (view level)
• Là m c c a NSD và các chư ng trình ng dụng.
• Làm việc tại m c này là các nhà chuyên môn, kỹ sư tin h c, NSD không chuyên.
• Mỗi NSD hay mỗi chư ng trình ng dụng có thể được nhìn CSDL theo một góc
độ khác nhau. Tuỳ thuộc vào vai trò c a NSD mà có thể thấy tất cả ho c một phần
c a CSDL. NSD hay chư ng trình ng dụng có thể không được biết về cấu trúc tổ
ch c lưu trữ thông tin trong CSDL. H chỉ có thể làm việc trên một phần CSDL
theo cách nhìn do ngư i quản tr hay chư ng trình ng dụng quy đ nh, g i là khung nhìn. Trang 13/109 1.6.
S đồ tổng quát một h qu n tr CSDL
Hình 1.2. S đồ tổng quát của một h qu n tr CSDL
Hình 1.2 minh h a s đồ tổng quát c a một hệ quản tr CSDL. Có 3 m c: m c chư ng
trình khai báo cấu trúc và chư ng trình ng dụng; m c mô tả CSDL, thao tác CSDL và
các tự điển dữ liệu; m c CSDL. Trang 14/109
Mỗi hệ quản tr CSDL có một ngôn ngữ khai báo hay mô tả (Data Definition Language -
DDL) cấu trúc CSDL riêng. Những ngư i thiết kế và quản tr CSDL thực hiện các công
việc khai báo cấu trúc CSDL.
Các chư ng trình khai báo cấu trúc CSDL được viết bằng ngôn ngữ mà hệ quản tr CSDL
cho phép. Hai công việc khai báo cấu trúc logic (là việc khai báo các loại dữ liệu và các
mối liên hệ giữa các loại dữ liệu đó, cùng các ràng buộc toàn vẹn dữ liệu) và khai báo vật
lý (dữ liệu được lưu trữ theo dạng nào, có bao nhiêu chỉ mục)
Các chư ng trình ng dụng được viết bằng ngôn ngữ thao tác CSDL (Data Manipulation
Langage - DML) với mục đích: • Truy xuất dữ liệu
• Cập nhật dữ liệu (thêm, xóa, sửa) • Khai thác dữ liệu
• Ngôn ngữ thao tác CSDL còn được sử dụng cho những ngư i sử dụng thao tác trực tiếp với CSDL.
Tự điển dữ liệu (Data Dictionary - DD) là một CSDL c a hệ quản tr CSDL sử dụng để
lưu trữ cấu trúc CSDL, các thông tin bảo mật, bảo đảm an toàn dữ liệu và các cấu trúc
ngoài. Tự điển dữ liệu còn được g i là siêu CSDL (Meta-Database) 1.7.
Tính độc lập gi a d li u và ch ng trình
Độc lập d li u vật lý
9 Khả năng cập nhật lược đồ vật lý không làm cho các chư ng trình ng dụng phải b viết lại.
9 Việc cập nhật m c này thư ng cần thiết để cải tiến hiệu suất.
Độc lập d li u logic
9 Khả năng cập nhật lược đồ logic mà không làm cho các chư ng trình ng dụng phải b viết lại.
9 Những cập nhật thư ng được thực hiện khi cấu trúc logic c a c s dữ liệu thay đổi.
2. Các cách tiếp cận của một CSDL
Nền tảng c a cấu trúc c s dữ liệu là mô hình dữ liệu. Mô hình dữ liệu được đ nh nghĩa
là một sưu tập các công cụ khái niệm dùng cho việc mô tả dữ liệu, các mối quan hệ dữ
liệu, các ngữ nghĩa dữ liệu và các ràng buộc dữ liệu. Trang 15/109 2.1.
Cách tiếp cận theo mô hình d li u m ng
Mô hình dữ liệu mạng (Network Data Model) hay g i tắt là mô hình mạng (Network
Model) là mô hình được biểu diễn b i một đồ th có hướng. Mô hình này được xây dựng
b i Honeywell vào năm 1964-1965. Trong mô hình này, có 3 khái niệm được sử dụng:
mẫu tin hay bản ghi (record), loại mẫu tin (record type) và loại liên hệ (set type).
Lo i mẫu tin: đ c trưng cho một loại đối tượng riêng biệt. Chẳng hạn như trong quản lý
nhân sự tại một đ n v thì đối tượng cần phản ảnh c a thế giới thực có thể là Phòng, nhân
viên, công việc, lý l ch… do đó có các loại mẫu tin đ c trưng cho từng đối tượng này.
Trong mô hình mạng, mỗi loại mẫu tin được thể hiện bằng một hình chữ nhật, một thể
hiện (instance) c a một loại mẫu tin được g i là bản ghi (record) . ví dụ trên loại mẫu
tin Phòng có các mẫu tin là các phòng ban trong công ty, loại mẫu tin Nhân viên có các
mẫu tin là các nhân viên đang làm việc tại các phòng ban c a công ty…
Lo i liên h : là sự liên kết giữa một loại mẫu tin ch với một mẫu tin thành viên. Trong
mô hình mạng, một loại liên hệ được thể hiện bằng hình bầu dục và sự liên kết giữa hai
loại mẫu tin được thể hiện bằng các cung có hướng đi từ loại mẫu tin ch đến loại liên hệ
và từ loại liên hệ đến loại mẫu tin thành viên.
Trong loại liên kết ngư i ta còn chỉ ra số lượng các mẫu tin tham gia vào trong mối kết
hợp. Có một số loại sau:
• 1÷ 1 (One to One): Mỗi mẫu tin c a loại mẫu tin ch kết hợp với đúng 1 mẫu tin
c a loại mẫu tin thành viên. Ví dụ, mỗi nhân viên có duy nhất một lý l ch cá nhân.
• 1÷ n (One to Many): Mỗi mẫu tin c a loại mẫu tin ch kết hợp với 1 hay nhiều
mẫu tin c a loại mẫu tin thành viên. Ví dụ, mỗi phòng ban có thể có một ho c nhiều nhân viên.
• n ÷ 1 (Many to One): Nhiều mẫu tin c a loại mẫu tin ch kết hợp với đúng 1 mẫu
tin c a loại mẫu tin thành viên. Ví dụ, nhiều nhân viên cùng làm một công việc.
• Đệ quy (Recursive): Một loại mẫu tin ch cũng có thể đồng th i là mẫu tin thành
viên với chính nó. Ví dụ, trư ng phòng cũng là một nhân viên thuộc phòng trong công ty.
Hình 1.4 minh hoạ một mô hình dữ liệu mạng. Trang 16/109
Hình 1.4. Mô hình d li u m ng
u đi m: đ n giản, dễ sử dụng.
H n chế: không thích hợp trong việc biểu diễn CSDL lớn do hạn chế về khả năng diễn
đạt ngữ nghĩa c a dữ liệu, đ c biệt là các dữ liệu và mối liên hệ ph c tạp c a dữ liệu
trong thực thế là rất hạn chế. 2.2.
Mô hình d li u phân c p
Mô hình dữ liệu phân cấp (Hieracical Data Model), còn g i là mô hình phân cấp
(Hieracical Model), được thực hiện thông qua sự kết hợp giữa IBM và North American
Rockwell vào khoảng năm 1965. Mô hình là một cây, trong đó mỗi nút c a cây biểu diễn
một thực thể, giữa nút con với nút cha được liên hệ với nhau theo một mối quan hệ xác đ nh.
Lo i mẫu tin: giống trong mô hình dữ liệu mạng
Lo i mối liên h : kiểu liên hệ là phân cấp:
Mẫu tin thành viên chỉ đóng vai trò thành viên c a một mối liên hệ duy nhất, t c là nó
thuộc một ch duy nhất. Như vậy, mối liên hệ từ mẫu tin ch tới các mẫu tin thành viên
là 1 ÷ n và từ mẫu tin thành viên với mẫu tin ch là 1 ÷ 1 Trang 17/109
Giữa hai loại mẫu tin chỉ tồn tại một mối quan hệ duy nhất.
Hình 1.5 minh hoạ mô hình dữ liệu phân cấp một CSDL về điều tra dân số.
Hình 1.5. Mô hình d li u phân c p 2.3.
Mô hình d li u quan h
Mô hình dữ liệu quan hệ (Relational Data Model) còn được g i là mô hình quan hệ
(Relational Model) do E.F.Codd đề xuất năm 1970. Nền tảng c bản là khái niệm lý
thuyết tập hợp trên các quan hệ, t c là tập c a các bộ giá tr (value tuples). Trong mô
hình dữ liệu này những khái niệm được sử dụng là thuộc tính (attribute), quan hệ
(relation), lược đồ quan hệ (relation schema), bộ (tuple), khóa (key).
Mô hình quan hệ là mô hình được nghiên c u nhiều nhất, và có c s lý thuyết vững chắc
nhất. Mô hình quan hệ cùng với mô hình dữ liệu thực thể kết hợp đang được sử dụng
rộng rãi nhất hiện nay trong việc phân tích và thiết kế CSDL. Chúng ta sẽ nghiên c u chi
tiết về mô hình này trong chư ng sau. 2.4.
Mô hình d li u thực th - kết h p
Mô hình dữ liệu thực thể - kết hợp (Entity – Relationship Model) do Peter Pin_Shan Chen
đề xuất năm 1976. Mô hình quan hệ-thực thể được dựa trên sự nhận th c thế giới gồm có Trang 18/109
một sưu tập các đối tượng căn bản, được g i là các tập thực thể, và các mối quan hệ
giữa các đối tượng này.Trong mô hình này các khái niệm được sử dụng là tập thực thể
(entity set), thực thể (entity), thuộc tính c a loại thực thể (entity attribute), khóa c a loại
thực thể (entity key), loại mối kết hợp (entity relationship), số ngôi c a mối kết hợp
(relationship degree), thuộc tính c a mối kết hợp (relationship attribute), bản số c a mối
kết hợp (relationship cardinal).
Chi tiết c a mô hình này sẽ được nghiên c u trong chư ng sau. 2.5. Mô hình d li u h ng đối t ng
Mô hình dữ liệu hướng đối tượng (Object Oriented Data Model) ra đ i vào cuối những
năm 80 và đầu những năm 90. Đây là loại mô hình tiên tiến nhất hiện nay dựa trên cách
tiếp cận hướng đối tượng. Mô hình này sử dụng các khái niệm như lớp (class), sự kế thừa
(inheritance), kế thừa bội (multi - inheritance). Đ c trưng c bản c a cách tiếp cận này là
tính đóng gói (encapsulation), tính đa hình (polymorphism) và tính tái sử dụng (reusability). 3. Bài tập Bài 1:
Dựa vào những khái niệm đã h c, hãy biểu diễn CSDL có các loại mẫu tin Phòng, Nhân
viên, Công việc, lý l ch đã trình bày trong mô hình mạng theo cách tiếp cận phân cấp.Biết:
• Loại liên hệ là phân cấp.
• Phòng có nhiều nhân viên, mỗi nhân viên chỉ thuộc một phòng duy nhất
• Công việc có nhiều nhân viên cùng làm; mỗi nhân viên chỉ làm một công việc duy nhất
• Mỗi nhân viên có một lý l ch, mỗi lý l ch chỉ thuộc duy nhất một nhân viên. Bài 2:
Dựa vào những khái niệm đã h c, hãy biểu diễn CSDL về tổng điều tra dân số toàn quốc
có các loại mẫu tin tỉnh – thành phố, quận huyện, phư ng xã, đ a bàn, hộ điều tra và nhân
khẩu đã trình bày trong mô hình phân cấp theo cách tiếp cận mạng. Biết:
• Nhân khẩu thuộc một hộ điều tra
• Hộ điều tra thuộc một đ a bàn
• Đ a bàn điều tra thuộc một phư ng xã Trang 19/109
• Phư ng xã thuộc một quận huyện
• Quận huyện thuộc một tỉnh, thành phố Trang 20/109