Giáo trình Cơ sở dữ liệu | Đại học Thủy Lợi

Tài liệu gồm 90 trang, có 7 chương chính, gồm các kiến thức liên quan đến: Những khái niệm và kiến trúc của cơ sở dữ liệu, mô hình cơ sở dữ liệu,...... giúp bạn ôn luyện và nắm vững kiến thức môn học. Mời bạn đọc đón xem!

MC LC
PHN I – CƠ S D LIU
1
C
C
Ơ
Ơ
S
S
D
D
L
L
I
I
U
U
GV. Phm Th Hoàng Nhung
B môn Công ngh phn mm
Đại hc Thy li
P
P
H
H
N
N
I
o Các khái nim cơ bn
o Kiến trúc h thng cơ s d liu
o Mô hình quan h thc th
o Mô hình quan h
o Chun hoá quan h
o Thiết kế cơ s d liu vt lý
MC LC
PHN I – CƠ S D LIU
2
MC LC
1 Chương 1. CÁC KHÁI NIM CƠ BN .............................................................5
1.1 Ti sao phi có mt cơ s d liu ..................................................................5
1.2 Định nghĩa mt cơ s d liu.........................................................................5
1.2.1 Khái nim..................................................................................................5
1.2.2 Ưu đim.....................................................................................................6
1.2.3 Vn đề cn gii quyết................................................................................6
1.3 H qun tr cơ s d liu (DataBase Management System_DBMS) .........7
1.3.1 Ví d..........................................................................................................7
1.3.2 Khái nim..................................................................................................7
1.4 H thng cơ s d liu (Database System)...................................................8
1.5 Các đối tượng s dng CSDL........................................................................8
1.5.1 Đối tượng trc tiếp....................................................................................8
1.5.2 Đối tượng gián tiếp ...................................................................................9
1.6 Li ích ca vic s dng HQTCSDL............................................................9
2
Chương 2. NHNG KHÁI NIM VÀ KIN TRÚC CA H THNG CƠ
S D LIU................................................................................................................11
2.1 Mô hình d liu, lược đồ và trường hp (Data Models, Schemas, Instances)
11
2.1.1 Phân loi mô hình d liu .......................................................................11
2.1.2 Lược đồ(Schema) , minh ho (instances), và trng thái (State)..............14
2.2 Lược đồ kiến trúc ca h qun tr cơ s d liu (DBMS Architecture) và s
độc lp d liu (Data Independence) .....................................................................15
2.2.1 Lược đồ kiến trúc 3 mc ca HQTCSDL...............................................16
2.2.2 Độc lp d liu........................................................................................17
2.3 Ngôn ng ca HQTCSDL............................................................................17
2.4 Các tính năng ca HQTCSDL ....................................................................17
2.5 Phân loi HQTCSDL ...................................................................................17
3
Chương 3. MÔ HÌNH QUAN H - THC TH (Entity –
Relationship Model) ....................................................................................................19
3.1 S dng mô hình d liu khái nim mc cao để thiết kế cơ s d liu...19
3.2 Mc đích ca mô hình khái nim ER(Entity – Relationship Model) ......20
MC LC
PHN I – CƠ S D LIU
3
3.3 Ví d v mt cơ s d liu ng dng ..........................................................20
3.4 Kiu thc th(Entity Type), Thuc tính (Attributes), Khoá (Keys) ........22
3.4.1 Thc th (Entities) và thuc tính (Attributes).........................................22
3.4.2 Kiu thc th, Khoá và tp giá tr ...........................................................25
3.5 Liên kết, Kiu liên kết và các Ràng buc liên kết......................................25
3.5.1 Định nghĩa liên kết và kiu liên kết ........................................................25
3.5.2 Bc ca kiu liên kết ...............................................................................26
3.5.3 Ràng buc liên kết...................................................................................27
3.6 Kiu thc th yếu(Weak Entity) .................................................................29
3.7 Tng quát hóa và chuyên bit hóa ..............................................................29
3.7.1 Thc th con và thc th chính...............................................................30
3.7.2 Các thc th con loi tr .........................................................................30
3.8 Các ký hiu và quy ước đặt tên trong mô hình ER...................................31
3.8.1 Các hiu..............................................................................................31
3.8.2 Quy tc đặt tên ........................................................................................31
3.9 Xây dng mt mô hình ER..........................................................................32
3.9.1 Các bước xây dng sơ đồ ER..................................................................32
3.9.2 Mô hình ER cho cơ s d liu COMPANY ...........................................33
3.9.3 Bài tp .....................................................................................................34
4
Chương 4. MÔ HÌNH CƠ S D LIU QUAN H.......................................37
4.1 Khái nim mô hình quan h ........................................................................37
4.2 Các thành phn cơ bn ca mô hình..........................................................37
4.2.1 Mt s khái nim ca mô hình quan h ..................................................37
4.2.2 Quan h: ..................................................................................................37
4.2.3 Các tính cht ca mt quan h ................................................................38
4.2.4 Các ràng buc toàn vn trên quan h ......................................................38
4.2.5 Các phép toán trên CSDL quan h..........................................................41
5
Chương 5. CHUYN T MÔ HÌNH ER SANG MÔ HÌNH QUAN H ......48
6 Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H.....................55
6.1 Mt s hướng dn khi thiết kế cơ s d liu quan h ...............................55
6.2 Ph thuc hàm(Functional Dependencies).................................................56
6.2.1 Định nghĩa ph thuc hàm......................................................................56
MC LC
PHN I – CƠ S D LIU
4
6.2.2 H tiên đề Armstrong..............................................................................57
6.2.3 Bao đóng ca tp ph thuc hàm............................................................57
6.2.4 Bao đóng ca tp thuc tính X trên F .....................................................57
6.2.5 Khoá ca quan h....................................................................................58
6.2.6 Tp ph thuc hàm tương đương............................................................59
6.2.7 Tp ph thuc hàm ti thiu ...................................................................59
6.3 Các dng chun ca quan h.......................................................................60
6.3.1 Định nghĩa các dng chun .....................................................................60
6.3.2 Phép phân rã các lược đồ quan h...........................................................66
6.4 Chun hoá quan h.......................................................................................70
6.4.1 Thut toán phân rã lược đồ quan h thành các lược đồ quan h con
BCNF 70
6.4.2 Thut toán phân rã mt lược đồ quan h thành các lược đồ con 3NF. 72
7
Chương 7. THIT K CƠ S D LIU VT LÝ (Tham kho)..................75
7.1 Ni dung thiết kế file vt lý và cơ s d liu vt lý....................................75
7.1.1 Quá trình thiết kế.....................................................................................75
7.1.2 Sn phm thiết kế....................................................................................76
7.2 Thiết kế các trường ......................................................................................77
7.2.1 Yêu cu thiết kế trường...........................................................................77
7.2.2 Chn kiu và cách biu din d liu.......................................................78
7.3 Thiết kế các bn ghi vt lý ...........................................................................80
7.3.1 Phi chun.................................................................................................80
7.3.2 Qun lý trường có độ dài c định............................................................81
7.3.3 Qun lý trường có độ dài biến đổi ..........................................................81
7.4 Thiết kế file vt lý .........................................................................................82
7.4.1 Các loi file .............................................................................................82
7.4.2 Các phương pháp truy cp ......................................................................82
7.4.3 T chc file .............................................................................................83
7.4.4 Ví d v thiết kế file................................................................................87
Chương 1. CÁC KHÁI NIM CƠ BN
PHN I – CƠ S D LIU
5
1 Chương 1. CÁC KHÁI NIM CƠ BN
Trong nhiu năm gn đây, thut ng Cơ s d liu - Database đã tr nên quen
thuc trong nhiu lĩnh vc. Các ng dng tin hc vào qun lý ngày càng nhiu và đa
dng, hu hết các lĩnh vc kinh tế, xã hi… đều đã ng dng các thành tu mi ca tin
hc vào phc v công tác chuyên môn ca mình. Chính vì l đó mà ngày càng nhiu
người quan tâm đến thiết kế, xây dng và ng dng cơ s d liu (CSDL).
Trong chương này, chúng ta s tìm hiu thế nào là cơ s d liu và các khái
nim liên quan đến nó. Trước hết, chúng ta s tìm hiu lý do ti sao cn phi qun lý
d liu bng CSDL?
1.1 Ti sao phi có mt cơ s d liu
H thng các tp tin c đin
Cho đến nay vn còn mt s đơn v kinh tế, hành chính s nghip… s dng
mô hình h thng các tp tin c đin: chúng được t chc riêng r, phc v cho mt
mc đích ca mt đơn v hay mt đơn v con trc thuc c th.
- Ưu đim:
Vic xây dng h thng các tp tin riêng ti tng đơn v qun lý ít tn thi gian
bi khi lượng thông tin cn qun lý và khai thác là nh, không đòi hi đầu tư vt cht
và cht xám nhiu, do đó trin khai ng dng nhanh.
Thông tin được khai thác ch phc v mc đích hp nên kh năng đáp ng
nhanh chóng, kp thi.
- Nhược đim:
Thông tin được t chc riêng r nhiu nơi nên vic cp nht d làm mt tính
nht quán d liu.
H thng thông tin được t chc thành các h thng file riêng l nên thiếu s
chia s thông tin gia các nơi.
Qua phân tích trên, chúng ta nhn thy vic t chc d liu theo h thng tp
tin hoàn toàn không phù hp vi nhng h thng thông tin ln. Vic xây dng mt h
thng thông tin đảm bo được tính nht quán d liu, đáp ng được nhu cu khai thác
đồng thi ca nhiu người là thc s cn thiết.
1.2 Định nghĩa mt cơ s d liu
1.2.1 Khái nim
CSDL và công ngh CSDL đã có nhng tác động to ln trong vic phát trin s
dng máy tính. Có th nói rng CSDL nh hưởng đến tt c các nơi có s dng máy
tính:
Kinh doanh (thông tin v sn phm, khách hàng, … )
Giáo dc (thông tin v sinh viên, đim, .. )
Thư vin (thông tin v tài liu, tác gi, độc gi…)
Y tế (thông tin v bnh nhân, thuc….)…
Chương 1. CÁC KHÁI NIM CƠ BN
PHN I – CƠ S D LIU
6
Như vy, cơ s d liu là gì?
CSDL là tp hp các d liu có cu trúc và 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.
Ví d:
Danh b đin thoi là mt ví d v CSDL.
- Là các thông tin có ý nghĩa
- Là tp hp các thông tin có cu trúc.
- Các thông tin này có liên quan vi nhau và có th h thng được.
Trong khái nim này, chúng ta cn nhn mnh, CSDL là tp hp các thông tin
có tính cht h thng, không phi là các thông tin ri rc, không có liên quan vi nhau.
Các thông tin này phi có cu trúc và tp hp các thông tin này phi có kh năng đáp
ng nhu cu khai thác ca nhiu người s dng mt cách đồng thi. Đó cũng chính là
đặc trưng ca CSDL.
1.2.2 Ưu đim
T khái nim trên, ta thy rõ ưu đim ni bt ca CSDL là:
Gim s trùng lp thông tin xung mc thp nht và do đó đảm bo được tính
nht quán và toàn vn d liu (Cu trúc ca cơ s d liu được định nghĩa mt ln.
Phn định nghĩa cu trúc này gi là meta-data, và được Catalog ca HQTCSDL lưu
tr).
Đảm bo s độc lp gia d liu và chương trình ng dng (Insulation between
programs and data): Cho phép thay đổi cu trúc, d liu trong cơ s d liu mà không
cn thay đổi chương trình ng dng.
Tru tượng hoá d liu (Data Abstraction): Mô hình d liu được s dng để
làm n lưu tr vt lý chi tiết ca d liu, ch biu din cho người s dng mc khái
nim ca cơ s d liu.
Nhiu khung nhìn (multi-view) cho các đối người dùng khác nhau: Đảm bo d
liu có th được truy xut theo nhiu cách khác nhau. Vì yêu cu ca mi đối tượng s
dng CSDL là khác nhau nên to ra nhiu khung nhìn vào d liu là cn thiết.
Đa người dùng (multi-user): Kh năng chia s thông tin cho nhiu người s
dng và nhiu ng dng khác nhau.
1.2.3 Vn đề cn gii quyết
Để đạt được các ưu đim trên, CSDL đặt ra nhng vn đề cn gii quyết. Đó là:
Tính ch quyn ca d liu: Do tính chia s ca CSDL nên ch quyn ca
CSDL d b xâm phm.
Tính bo mt và quyn khai thác thông tin ca người s dng: Do có nhiu
người được phép khai thác CSDL nên cn thiết phi có mt cơ chế bo mt và phân
quyn hn khai thác CSDL.
Tranh chp d liu: Nhiu người được phép cùng truy cp vào CSDL vi
nhng mc đích khác nhau: Xem, thêm, xóa hoc sa d liu. Cn phi có cơ chế ưu
Chương 1. CÁC KHÁI NIM CƠ BN
PHN I – CƠ S D LIU
7
tiên truy cp d liu hoc gii quyết tình trng xung đột trong quá trình khai thác cnh
tranh. Cơ chế ưu tiên có th được thc hin bng vic cp quyn (hay mc độ) ưu tiên
cho tng người khai thác.
Đảm bo d liu khi có s c: Vic qun lý d liu tp trung có th làm tăng
nguy cơ mt mát hoc sai lnh thông tin khi có s c mt đin đột xut hoc đĩa lưu
tr b hng. Mt s h điu hành mng có cung cp dch v sao lưu nh đĩ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, để đảm bo an toàn cho CSDL, nht
thiết phi có mt cơ chế khôi phc d liu khi có s c xy ra.
1.3 H qun tr cơ s d liu (DataBase Management
System_DBMS)
1.3.1 Ví d
Như chúng ta đã biết, kích thước và độ phc tp ca CSDL rt khác nhau.
Ví d:
Danh b đin thoi ca mt quc gia, mt thành ph.. cha ti hàng triu s
nhng thông tin cn thiết v khách hàng.
Trong trường đại hc có ti hàng ngàn sinh viên. Nhà trường phi qun lý tt c
nhng thông tin liên quan đến sinh viên như: tên, ngày sinh, quê quán, địa ch, kết qu
hc tp…
Xét mt Ví d v CSDL qun lý tài liu và độc gi trong thư vin quc gia. Gi
s rng có 100 triu cun sách, mi cun sách cn lưu 10 thông tin liên quan, mi
thông tin cha ti đa 400 kí t thì CSDL s phi có ti thiu 100 *10
6 *
400 *10 kí t
(bytes). Như vy, dung lượng b nh cn dùng là: 100 *10
6 *
400 *10= 400 GB.
Ta thy, b nh cũng là vn đề cn phi được gii quyết. Tuy nhiên, vn đề
quan trng hơn đây li là cách thc t chc d liu trong mt cơ s d liu để phc
v cho vic truy cp, tìm kiếm, cp nht,….nhanh chóng và an toàn hơn.
Vic t chc d liu như thế nào được thc hin thông qua H qun tr cơ s d
liu(HQTCSDL).
Vy h qun tr cơ s d liu (HQTCSDL) là gì?
1.3.2 Khái nim.
HQTCSDL là tp hp các phn mm cho phép định nghĩa các cu trúc để lưu
tr thông tin trên máy, nhp d liu, thao tác trên các d liu đảm bo s an tn
mt ca d liu.
Định nghĩa cu trúc: Định nghĩa cu trúc CSDL bao gm vic xác định kiu
d liu, cu trúc và nhng ràng buc cho d liu được lưu tr trong CSDL.
Nhp d liu: Là vic lưu tr d liu vào các thiết b lưu tr trung gian được
điu khin bng HQTCSDL.
Thao tác d liu: thao tác trên CSDL bao gm nhng chc năng như truy xut
cơ s d liu để tìm kiếm thông tin cn thiết, cp nht cơ s d liu và tng hp nhng
báo cáo t d liu.
Chương 1. CÁC KHÁI NIM CƠ BN
PHN I – CƠ S D LIU
8
1.4 H thng cơ s d liu (Database System)
Là phn mm HQTCSDL cùng vi d liu ca bn thân cơ s d liu đó.
Hình 1.1. Môi trường h thng cơ s d liu đơn gin
1.5 Các đối tượng s dng CSDL
Đối vi các cơ s d liu nh, mang tính cá nhân như lch làm vic, danh b
đin thoi cá nhân… thì ch cn mt người để to ra và thao tác trên nó. Tuy nhiên,
đối vi các CSDL ln như: qun lý tài chính ca ngân hàng nhà nước, điu hành các
chuyến bay cho các sân bay quc tế… cn phi có rt nhiu người tham gia thiết kế,
xây dng, bo trì CSDL và hàng trăm người s dng. Trong phn này, chúng ta tìm
hiu xem ai là người thao tác vi CSDL hàng ngày. Và trong phn sau, chúng ta xem
xét nhng người không trc tiếp tham gia mt CSDL c th, h là người duy trì môi
trường h thng CSDL.
1.5.1 Đối tượng trc tiếp
1.5.1.1 Qun tr cơ s d liu
Trong nhng t chc có nhiu người cùng s dng chung mt ngun d liu thì
nht thiết phi có mt người đứng đầu qun lý, chu trách nhim đối vi ngun d liu
này. Đó chính là người qun tr cơ s d liu (Database Administrators _ DBA ).
DBA có nhim v t chc ni dung ca cơ s d liu, to và phân quyn cho
người s dng, đưa ra yêu cu v phn cng và phn mm… nếu cn thiết. DAB chu
trách nhim bo v an toàn, Backup thông tin…khi có s c.
1.5.1.2 Thiết kế cơ s d liu
Người thiết kế CSDL chu trách nhim:
- Xác định nhng d liu nào cn lưu tr trong CSDL
- La chn nhng cu trúc thích hp để biu din và lưu tr nhng d liu
này.
Chương 1. CÁC KHÁI NIM CƠ BN
PHN I – CƠ S D LIU
9
- Phng vn tt c nhng người s dng CSDL sau này để hiu được nhng
yêu cu ca h đối vi CSDL
- Tiến hành phân tích thiết kế h thng sau khi thng nht được tt c các
yêu cu ca người s dng
1.5.1.3 Người s dng cui
Người s dng cui là nhng người truy cp CSDL để:
- Truy vn
- Cp nht
- Thng kê, báo cáo
1.5.1.4 Phân tích h thng và Lp trình ng dng
Phân tích h thng để định rõ nhng yêu cu ca người s dng cui cùng,
thng nht để đưa ra khung nhìn cho tng đối tượng người s dng, qun lý các giao
tác (transactions)…
Lp trình ng dng:
- Thc hin các yêu cu thông qua lp trình bng nhng ngôn ng phù hp
- Chy th chương trình (test)
- Cha li và g ri chương trình (debug)
- Viết tài liu, hướng dn s dng.
- Bo trì h thng
1.5.2 Đối tượng gián tiếp
Ngoài nhng đối tượng trc tiếp tham gia vào mt CSDL c th như đã nói
trên, còn có mt đội ngũ nhng người phân tích, phát trin, và thc hin to ra môi
trường h thng và phn mm ca h qun tr cơ s d liu. Nhng người này không
trc tiếp thao tác trên mt h qun tr CSDL nào c th. H là:
- Người phân tích và thc hin to ra h thng ca HQTCSDL
- Nhng nhà phát trin h công c (Tool developers)
- Người kim th và bo trì h thng
1.6 Li ích ca vic s dng HQTCSDL
- Hn chế dư tha d liu.
- Ngăn cn truy cp d liu bt hp pháp (bo mt và phân quyn s dng).
- Cung cp kh năng lưu tr lâu dài cho các đối tượng và cu trúc d liu.
- Cho phép suy dn d liu (t d liu này suy ra d liu khác) s dng
Rules.
- Cung cp giao din đa người dùng.
- Cho phép biu din mi quan h phc tp gia các d liu.
Chương 1. CÁC KHÁI NIM CƠ BN
PHN I – CƠ S D LIU
10
- Đảm bo ràng buc toàn vn d liu (Enforcing Integrity Constraints).
- Cung cp th tc sao lưu và phc hi (backup và recovery)
Chương 2. NHNG KHÁI NIM VÀ KIN TRÚC CA H THNG CƠ S D LIU
PHN I – CƠ S D LIU
11
2 Chương 2. NHNG KHÁI NIM VÀ KIN TRÚC CA
H THNG CƠ S D LIU
2.1
Mô hình d liu, lược đồ và trường hp (Data Models,
Schemas, Instances)
Mt trong nhng đặc đim cơ bn ca cơ s d liu là cung cp mt s mc độ
tru tượng hoá d liu bng cách làm n đi cách thc t chc d liu- cái mà hu hết
người dùng không cn biết đến.
Mô hình d liu (Data Model): Là mt tp nhng khái nim dùng để biu din
cu trúc ca cơ s d liu-cung cp nhng điu kin cn thiết để đạt được mc độ tru
tượng d liu. Cu trúc d liu bao gm kiu d liu (data types) và mi quan h gia
các d liu (relationships) và nhng ràng buc (constraints) mà cơ s d liu phi tuân
theo.
Hu hết mô hình d liu đều có mt tp hp các thao tác cơ bn (basic
operations) để truy vn và cp nht d liu.
- Thao tác chung (generic operations): Thêm (insert), Xoá (delete), Sa
(modify), Truy cp (retrieve)
- Thao tác do người dùng định nghĩa (user-defined operations)
2.1.1 Phân loi mô hình d liu
Có rt nhiu mô hình d liu đã được đưa ra, chúng ta có th phân loi chúng
theo nhng kiu khái nim mà h đã dùng để biu din cu trúc cơ s d liu. Mô hình
d liu được chia làm 3 loi sau:
a. Mô hình khái nim (Conceptual (high-level, semantic) data models):
Cung cp nhng khái nim gn gũi vi đa s người s dng, mô hình này ch ra
cái gì được đưa vào để qun lý. Mô hình này là phương tin để nhng người phân tích
thiết kế giao tiếp vi người s dng, nhm thu thp thông tin, xác định đúng đắn và
đầy đủ yêu cu ca h thng.
Mô hình này s dng cu trúc d liu là: thc th (entity), thuc tính (attribute)
và mi liên kết (relationship)
b. Mô hình d liu vt lý (Physical (low-level, internal) data models):
Cung cp nhng khái nim để biu din chi tiết cách thc d liu được lưu tr
trong máy tính. Mô hình này ch ra định dng bn ghi (record formats), th t sp xếp
các bn ghi (record ordering) và đường dn để truy cp d liu (access paths).
c. Mô hình d liu th hin (Implementation (record-oriented) data models):
Mô t các d liu bng cách s dng nhng ký pháp tương ng vi mô hình d
liu mà mt h qun tr cơ s d liu s dng.
Các loi mô hình cơ s d liu th hin:
c1. Mô hình phân cp
Chương 2. NHNG KHÁI NIM VÀ KIN TRÚC CA H THNG CƠ S D LIU
PHN I – CƠ S D LIU
12
Mô hình CSDL phân cp được biu din dưới dng cây và các đỉnh ca cây là
các bn ghi. Các bn ghi liên kết vi nhau theo mi quan h cha-con.
- Mt cha có nhiu con
- Mt con ch có mt cha
Ví d:
Hình 2.1. Minh ha mô hình cơ s d liu phân cp
Ưu đim:
- Th hin d dàng quan h 1-N.
- Vic phân chia d liu d th hin, đảm bo an toàn d liu
- Tính độc lp ca chương trình và các d liu được đảm bo
Nhược đim:
- Không th hin được mi quan h M-N
- Trong mt h thng phân cp, d liu được t chc như trên d đến khó
sa đổi d liu.
c2. Mô hình mng
Cu trúc cơ bn trong mô hình mng là nhng tp hp và mi tp hp có bn
ghi là bn ghi ch và mt s bn ghi thành viên. Mi thành viên có th thuc v nhiu
tp hp.
Ví d:
Hình 2.2. Minh ha mô hình cơ s d liu mng
PHÒNG
D ÁN NHÂN VIÊN
PH VIC K NĂNG
TRANGTHIT B
PHÒNG
D ÁN NHÂN VIÊN
PH VIC K NĂNG
TRANGTHIT B
PHÒNG
D ÁN NHÂN VIÊN
PH VIC K NĂNG
TRANGTHIT B
Chương 2. NHNG KHÁI NIM VÀ KIN TRÚC CA H THNG CƠ S D LIU
PHN I – CƠ S D LIU
13
Ưu đim:
- D th hin mi liên kết M-N
- Kiu truy cp d liu mm do hơn kiu phân cp
Nhược đim:
- Vic sa đổi s liu khó khăn.
- Vi nhng lp trình viên, vic thiết kế CSDL khó.
c3. Mô hình quan h
Trong mô hình quan h, các d liu được biu din dng các bng vi các
dòng và các ct.
Trong mô hình quan h không có mt cu trúc vt lý nào ca d liu mô t s
kết ni gia các bng. Thay vào đó, s kết ni gia các bng được mô t logic bng
các giá tr được lưu tr trong các dòng ca bng. Chng hn trong hình dưới đây,
thuc tính ProCode(Mã tnh) được lưu trong c 2 bng PROVINCE và bng
STUDENT, giá tr chung này cho phép người dùng liên kết được 2 bng.
PROVINCE
ProCode
ProName
04 Hà Ni
08 Tp H Chí Minh
STUDENT
StdNo StdName
StdBird ProCode
TD001 AA 9/16/1979 04
TD002 BB 6/19/1979 08
….
Hình 2.3. Minh ha mô hình cơ s d liu quan h
c4. Mô hình hướng đối tượng
Trong mô hình hướng đối tượng, các thuc tính d liu và các thao tác trên các
d liu này được bao gói trong mt cu trúc gi là đối tượng.
Chương 2. NHNG KHÁI NIM VÀ KIN TRÚC CA H THNG CƠ S D LIU
PHN I – CƠ S D LIU
14
Đối tượng có th cha các d liu phc hp như văn bn, hình nh, tiếng nói và
hình nh động. Mt đối tượng có th yêu cu hoc x lý d liu t mt đối tượng khác
bng vic gi đi mt thông báo đến đối tượng đó. Mô hình hướng đối tượng biu din
mt sơ đồ mi để lưu tr và thao tác d liu. T mt đối tượng có th sinh ra mt đối
tượng khác.
Hình 2.4. Minh ha mô hình cơ s d liu hướng đối tượng
2.1.2 Lược đồ(Schema) , minh ho (instances), và trng thái (State)
Lược đồ cơ s d liu (Database Schema): là biu din ca cơ s d liu, bao
gm cu trúc cơ s d liu và nhng ràng buc trên d liu.
Sơ đồ ca lược đồ cơ s d liu (Schema Diagram): Là lược đồ cơ s d liu
được biu din thông qua sơ đồ.
Ví d:
PHONG
N
HANVIEN
TRANG B
NHANVIE
N
PHONG
TRANGBI
PHONG
LUONGGIO
LUONGTH
schema construct
Chương 2. NHNG KHÁI NIM VÀ KIN TRÚC CA H THNG CƠ S D LIU
PHN I – CƠ S D LIU
15
Hình 2.5. Lược đồ cơ s d liu UNIVERSITY
Minh hc cơ s d liu (Database Instance): Là d liu thc s được lưu tr
trong cơ s d liu thi đim hin ti. Database Instance cũng được gi là trng thái
ca cơ s d liu (database state)
Ví d:
Hình 2.5. Cơ s d liu UNIVERSITY
Như vy, Database Schema rt hiếm khi thay đổi, còn Database State thay
đổi bt k khi nào có s cp nhp d liu.
2.2 Lược đồ kiến trúc ca h qun tr cơ s d liu (DBMS
Architecture) và s độc lp d liu (Data Independence)
Như chúng ta đã biết, các tính cht quan trng nht ca cơ s d liu là: (1)
Đảm bo s độc lp gia chương trình ng dng và d liu. (2) H tr nhiu khung
nhìn cho các đối tượng người dùng khác nhau. (3) S dng danh mc để lưu tr biu
din d liu (schema). Trong phn này, chúng ta s tìm hiu kiến trúc ca h qun tr
Chương 2. NHNG KHÁI NIM VÀ KIN TRÚC CA H THNG CƠ S D LIU
PHN I – CƠ S D LIU
16
cơ s d liu, gi là Lược đồ kiến trúc 3 mc mc(three –schema architecture). Sau
đó chúng ta s tìm hiu v khái nim độc lp d liu.
2.2.1 Lược đồ kiến trúc 3 mc ca HQTCSDL
Mc đích ca vic phân thành 3 mc trong kiến trúc ca mô hình HQTCSDL là
để tách bit các ng dng ca người s dng vi cơ s d liu vt lý. Trong kiến trúc
này, lược đồ có th được định nghĩa 3 mc sau:
Lược đồ mc trong (Internal schema) Mc trong (Internal level) để biu din
chi tiết cu trúc lưu tr d liu và cách thc truy cp d liu. Lược đồ mc trong s
dng mô hình d liu vt lý (physical data model).
Lược đồ khái nim (Conceptual schema) Mc khái nim (Conceptual level)
để biu din cu trúc và các ràng buc trong toàn b cơ s d liu phc v cho vic
giao tiếp vi người s dng. Lược đồ khái nim n đi cách thc t chc vt lý ca d
liu, ch tp trung vào vic biu din các thc th, các kiu d liu, mi quan h gia
các thc th, các thao tác ca người s dng và các ràng buc gia các d liu. Mô
hình d liu mc khái nim (Conceptual data model) hoc Mô hình d liu th hin
(Implementation data model) có th được s dng mc này.
Lược đồ mc ngoài (External Level) Mc ngoài (External level hoc View
level) để biu din hàng lot nhng khung nhìn ca người s dng (user views). Mô
hình d liu mc cao (High-level data model) hoc Mô hình d liu th hin
(Implementation data model) có th được s dng mc này.
Ánh x gia các mc này là cn thiết. Nhng chương trình làm vic vi d liu
mc ngoài và được HQTCSDL ánh x ti d liu vt lý mc trong để thc hin.
Hình 2.6. Lược đồ kiến trúc 3 mc ca HQTCSDL
Chương 2. NHNG KHÁI NIM VÀ KIN TRÚC CA H THNG CƠ S D LIU
PHN I – CƠ S D LIU
17
2.2.2 Độc lp d liu
Kiến trúc 3 mc ca HQTCSDL có th được s dng để gii thích khái nim v
độc lp d liu. Độc lp d liu là kh năng thay đổi lược đồ mt mc nào đó ca h
thng cơ s d liu mà không cn phi thay đổi lược đồ mc cao hơn. Chúng ta có
th định nghĩa 2 kiu ca độc lp d liu:
Độc lp d liu logic (Logical data independence): cho phép thay đổi lược đồ
khái nim mà không cn phi thay đổi lược đồ mc ngoài hoc nhng chương trình
ng dng. Chúng ta có th thay đổi lược đồ khái nim để m rng (thêm các trường d
liu, các bn ghi) hoc thu nh cơ s d liu (xóa các trường d liu, các bn ghi).
Độc lp d liu vt lý (Physical data independence): cho phép thay đổi lược đồ
mc trong mà không cn thay đổi lược đồ khái nim. Có khi chúng ta cn thay đổi
lược đồ mc trong vì các file vt lý đôi khi cn t chc li để tăng hiu qu thc hin.
Nếu kiu d liu không thay đổi thì chúng ta không cn thay đổi li lược đồ khái nim.
2.3 Ngôn ng ca HQTCSDL
Vì HQTCSDL phc v có nhiu đối tượng người s dng khác nhau nên nó
phi h tr ngôn ng để người s dng tương tác vi nó. Trong phn này chúng ta s
tìm hiu mt s nhng ngôn ng được HQTCSDL h tr.
Ngôn ng định nghĩa d liu (Data Definition Language - DDL): Là ngôn ng
được các nhà qun tr cơ s d liu (DBA) và các nhà thiết kế cơ s d liu (database
designers) dùng để xây dng lược đồ khái nim ca cơ s d liu. Trong nhiu
HQTCSDL, DDL cũng được s dng để định nghĩa lược đồ mc trong và mc ngoài
(các khung nhìn). Mt s HQTCSDL chia thành 2 ngôn ng: Ngôn ng định nghĩa lưu
tr (storage definition language – SDL) và Ngôn ng định nghĩa khung nhìn (view
definition language -VDL) được dùng để định nghĩa lược đồ mc trong và mc ngoài.
Ngôn ng thc hin d liu (Data Manipulation Language -DML): Là ngôn ng
được s dng để thao tác vi d liu bao gm vic truy cp đến bn ghi và cp nht d
liu cho bn ghi (thêm, sa, xoá). Các lnh DML có th được nhúng trong ngôn ng
lp trình hoc thc hin độc lp (ngôn ng truy vn).
2.4 Các tính năng ca HQTCSDL
- Np d liu đang lưu tr các tp tin vào cơ s d liu (Conversion
Tool).
- Cung cp các thao tác truy xut
- Đảm bo tính độc lp d liu
- Cung cp th tc sao lưu và phc hi (backup và recovery)
- Cung cp các th tc điu khin đồng thi (Do tính truy xut đồng
thi và cnh tranh)
- Cung cp các th tc kim soát bn quyn, kim tra tính đúng đắn
ca d liu (để đảm bo tính an toàn và toàn vn d liu)
2.5 Phân loi HQTCSDL
Người ta phân loi HQTCSDL da trên mt s tiêu chí:
Chương 2. NHNG KHÁI NIM VÀ KIN TRÚC CA H THNG CƠ S D LIU
PHN I – CƠ S D LIU
18
Da trên mô hình d liu được HQTCSDL s dng: Mô hình quan h
(Relational Data Model), Mô hình hướng đối tượng (Object Data Model), Mô hình
mng (Network Data Model), mô hình phân cp (Hierarchical Data Model), mô hình
quan h thc th (Entity – Relationship Data Model)...
Tiêu chí khác:
- S người s dng HQTCSDL: Đơn người dùng (Single-user), Đa
người dùng (multi-user). Hu hết các HQTCSDL hin nay đều là
HQTCSDL đa người dùng.
- V trí HQTCSDL: tp trung (s dng mt máy đơn) hay phân tán (s
dng nhiu máy tính).
- Giá ca HQTCSDL: 100$- 300$; 10000$- 100000$
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
19
3 Chương 3. MÔ HÌNH QUAN H - THC TH
(Entity – Relationship Model)
3.1 S dng mô hình d liu khái nim mc cao để thiết kế
cơ s d liu
Hình 3.1. Các giai đon thiết kế cơ s d liu
Hình trên ch ra tiến trình thiết kế cơ s d liu mt cách đơn gin. Bước đầu
tiên là tp hp và phân tích yêu cu h thng. Trong bước này, người thiết kế cơ s
d liu phi tiến hành thu thp yêu cu ca người s dng, sau đó viết tài liu nhng
yêu cu d liu. Kết qu ca bước này là viết ra được tp hp nhng yêu cu tt c các
đối tượng người dùng mt cách xúc tích. T đó, ta xác định được yêu cu chc năng
(Funtional Requirements) ca h thng.
Sau khi tt c các yêu cu đã được tp hp và phân tích, bước tiếp theo là xây
dng lược đồ khái nim(conceptual schema) cho cơ s d liu. Lược đồ khái nim là
nơi biu din xúc tích nhng yêu cu ca người s dng và biu din chi tiết nhng
kiu thc th (entity types),quan h (relationships) và nhng ràng buc (constraints)
ca d liu, phn này s dng nhng khái nim được cung cp trong mô hình d liu
mc cao (High level data model). Mô hình d liu mc cao là mô hình d liu được
dùng để giao tiếp vi người s dng bình thường vì thế nó rt d hiu, nó ch ra cái
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
20
cn được lưu trong cơ s d liu ch không ch ra c th d liu được thc hin như
thế nào.
Bước tiếp theo trong quá trình thiết kế là cài đặt cơ s d liu trên mt mô hình
d liu thc hin, s dng các H qun tr cơ s d liu nào đó (Hu hết các h qun
tr cơ s d liu hin nay s dng mô hình d liu quan hoc hướng đối tượng). Vì thế,
chúng ta cn thiết phi chuyn t mô hình d liu mc cao sang nhng mô hình d
liu thc hin. Bước này được gi là thiết kế logic (Logical design) hoc ánh x
hình d liu (Data model mapping) và kết qu ca bước này là lược đồ cơ s d liu
trong mô hình cơ s d liu thc hin.
Bước cui cùng là thiết kế vt lý cho cơ s d liu (physical design), bao gm
vic thiết kế nhng cu trúc lưu tr d liu bên trong, đường dn truy cp, t chc file
ca các file d liu.
Trong chương này, chúng ta s s dng mô hình khái nim ER cho thiết kế lược
đồ khái nim (Conceptual Schema).
3.2 Mc đích ca mô hình khái nim ER(Entity –
Relationship Model)
Qua bước xem xét tng quát trên, ta thy rng, mô hình E-R là mt mô t logic
chi tiết d liu ca mt t chc hay mt lĩnh vc nghip v. Nó giúp người thiết kế cơ
s d liu mô t thế gii thc gn gũi vi quan nim và cách nhn nhìn nhn bình
thường ca con người. Nó là công c để phân tích thông tin nghip v.
Mc đích ca mô hình E – R:
- Làm thng nht quan đim v d liu ca nhng người tham gia h
thng: Người qun lý, người dùng cui, người thiết kế h thng
- Xác định các x lý v d liu cũng như các ràng buc trên các d liu.
- Giúp đỡ vic th hin cơ s d liu v mt cu trúc: S dng thc th
và các mi liên kết gia các thc th. Biu din mô hình quan h thc
th bng mt sơ đồ.
3.3 Ví d v mt cơ s d liu ng dng
Trong phn này, chúng ta s tìm hiu mt ví d v cơ s d liu ng dng - gi
COMPANY để minh ho các khái nim trong mô hình ER và s dng nó trong khi
thiết kế lược đồ khái nim.
Cơ s d liu COMPANY cn lưu tr thông tin v nhân viên (employees),
phòng/ban (departments), và các d án (projects) trong công ty. Sau khi tp hp được
tt c các yêu cu ca h thng, người thiết kế cơ s d liu tiến hành mô t li
miniworld bng mô hình ER.
Sau đây là các quy tc nghip v ca h thng cơ s d liu COMPANY, chúng
ta s xây dng mô hình ER tng bước để gii thiu các khái nim ca mô hình ER.
1. Công ty (COMPANY) có nhiu phòng/ban (DEPARTMENTs). Mi
phòng/ban có tên (name), mã s (number) duy nht và có mt nhân viên (employee)
làm qun lý (manages) phòng/ban. Chúng ta lưu li ngày bt đầu (start date) làm qun
lý phòng/ban ca nhân viên đó.
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
21
2. Mi phòng/ban có th có nhiu địa đim khác nhau (locations).
3. Mi phòng/ban điu hành mt s d án (PROJECTs). Mi d án có tên
(name), mã s (number) duy nht và ch có mt địa đim (location).
4. Vi mi nhân viên, chúng ta lưu li nhng thông tin sau: tên (name), s bo
him xã hi (social security number), địa ch (address), lương (salary), gii tính (sex),
và ngày sinh (birth date).
5. Mi nhân viên làm vic mt phòng/ban, nhưng có th làm vic cho nhiu
d án. Chúng ta lưu li s gi làm vic (the number of hours per week) ca tng nhân
viên trong tng d án.
6. Chúng ta lưu li thông tin v người qun lý trc tiếp (direct supervisor), ca
mi nhân viên. Người qun lý trc tiếp cũng là mt nhân viên.
7. Mi nhân viên có nhng người ph thuc vào h (DEPENDENTs). Mi
người ph thuc ta lưu li thông tin v tên (name), gii tính (sex), ngày sinh (birth
date) và quan h (relationship).
Hình minh ho sau s ch ra sơ đồ ER ca cơ s d liu COMPANY da trên
nhng ký hiu đồ ho được quy định trong mô hình ER.
Hình 3.2. Sơ đồ ER ca cơ s d liu COMPANY
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
22
Lưu ý, trên đây ch là gii thiu sơ b v mô hình ER, các bn chưa cn phi
hiu được toàn b sơ đồ trên.
Phn tiếp theo chúng ta s gii thiu v mô hình ER. Các khái nim cơ bn
trong mô hình ER gm có Thc th (Entity), Thuc tính (Attributes), và Quan h
(Relationship).
3.4 Kiu thc th(Entity Type), Thuc tính (Attributes), Khoá
(Keys)
3.4.1 Thc th (Entities) và thuc tính (Attributes)
3.4.1.1 Thc th
- Các thc th vn tn ti trong thế gii thc. Mt thc th là mt khái
nim để ch mt lp các đối tượng c th hay các khái nim có cùng
nhng đặc tính chung mà ta quan tâm.
- Tên thc th: Là tên ca mt lp đối tượng. Trong 1 CSDL, tên thc
th không được trùng nhau.
- Ký hiu: Trong mô hình E-R, thc th được biu din bng mt hình
ch nht có tên bên trong.
- Ví d:
3.4.1.2 Thuc tính
- Thuc tính là các đặc trưng (properties) được s dng để biu din
thc th.
- Ví d: Thc th EMPLOYEE có các thuc tính: Name, SSN, Address,
Sex, BirthDate.
- Thuc tính được ký hiu bng hình oval, bên trong ghi tên ca thuc
tính. Thuc tính ca thc th nào thì s được gn vi thc th đó.
- Ví d:
Hình 3.3. Thc th EMPLOYEE và các thuc tính ca nó
EMPLOYEE DEPARTMENT
EMPLOYEE
Bdate
Salary
Address
Sex
Name
SSN
Lname
Minit
Fname
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
23
Hình 3.4. Thc th DEPARTMENT và các thuc tính ca nó
Hình 3.5. Mt s ký hiu ca thuc tính
Các kiu thuc tính trong mô hình ER
:
Thuc tính đơn (simple) đối lp vi thuc tính t hp (composite), thuc
tính đơn tr (single-value) đối lp vi thuc tính đa tr (multivalued), thuc tính lưu
tr (stored) đối lp vi thuc tính suy din (derived). Sau đây ta s tìm hiu chi tiết
v các loi thuc tính này:
Thuc tính đơn (simple) hay còn gi là thuc tính nguyên t (Atomic): Ch
mt giá tr trong mt thuc tính ca mt thc th. Ví d: Thuc tính Birthdate, Sex…
ca Employee là thuc tính nguyên t.
Thuc tính t hp (Composite): là thuc tính được kết hp ca mt s thành
phn. Ví d: Address(Apt#, House#, Street, City, State, ZipCode, County) hoc Name
(FirstName, MiddleName, LastName) là thuc tính t hp.
Thuc tính t hp có th được biu din phân cp như sau:
DEPARTMENT
Locations
N
umbe
r
Name
N
umbe
r
O
f
Employee
single
d
multiple-valued
key attribute
derived attribute
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
24
Hình 3.6. Biu din phân cp ca thuc tính t hp
Thuc tính đơn tr (single-value): Là thuc tính ch có mt giá tr duy nht
mt thi đim. Ví d: Sex, Birthdate,…
Thuc tính đa tr (multivalued): Là thuc tính có th có nhiu giá tr ti mt
thi đim. Ví d: PreviousDegrees…
Ký hiu: {PreviousDegrees}
Thuc tính t hp và thuc tính đa tr có th làm t nhiu mc, mc dù ít gp
trường hp này. Ví d: PreviousDegrees ca thc th STUDENT là loi thuc tính đó.
Ký hiu: {PreviousDegrees (College, Year, Degree, Field)}.
Thuc tính lưu tr (stored attribute) và thuc tính suy din (derived
attribute): Thuc tính lưu tr là thuc tính mà giá tr ca nó phi được lưu tr, còn
thuc tính suy din là thuc tính mà giá tr ca nó có th suy ra t giá tr ca nhng
thuc tính khác. Ví d: Age(derived attribute) được suy din t BirthDate (stored
attribute)
Giá tr rng ca thuc tính (Null Values): Trong mt vài trường hp, mt thc
th có th không có giá tr tương ng cho mt thuc tính, ví d thuc tính
NameDependent(Tên ca người ph thuc), nếu mt nhân viên nào đó trong thc th
EMPLOYEE chưa có người ph thuc thì thuc tính NameDependent tương ng vi
nhân viên đó s không có giá tr. Hoc trong trường hp thuc tính có giá tr nhưng
chưa được biết, ví d thuc tính PhoneNumber (S đin thoi). Trong trường hp này,
mt giá tr đặc bit được to ra, đó là giá tr Null.
Mi thuc tính trong thc th luôn có giá tr, ví d các thuc tính trong thc
th EMPLOYEE có các giá tr sau: Name=‘John Smith’, SSN=‘123456789’,
Address=‘731 Fondren, Houston, TX’, Sex=‘M’, BirthDate= ‘09-JAN-55’. Mt b giá
tr ca mt thc th được gi là mt bn ghi (record).
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
25
relationshi
p
Hình 3.7. Hai thc th và giá tr thuc tính ca nó
3.4.2 Kiu thc th, Khoá và tp giá tr
Kiu thc th: là tp hp nhng thc th có cùng các thuc tính cơ bn. Ví d,
kiu thc th EMPLOYEE, kiu thc th PROJECT.
Khoá: Mi mt kiu thc th phi có mt hoc mt tp các thuc tính mang giá
tr duy nht (unique value) để phân bit gia bn ghi này vi bn ghi khác. Thuc tính
đó gi là khoá ca kiu thc th (Key attribute).Ví d: thuc tính SSN ca kiu thc
th EMPLOYEE, hoc thuc tính NumberStudent(Mã sinh viên) ca kiu thc th
STUDENT. Chú ý là khoá có th gm mt hoc mt tp các thuc tính.
Tp giá tr hay còn gi là min xác định(Domain): là tp nhng giá tr
thuc tính có th nhn được. Ví d: Min xác định ca thuc tính Sex là {Male,
Female}, hoc ca Mark(Đim) là t 0..10.
Tp giá tr không được biu din trong lược đồ ER.
3.5 Liên kết, Kiu liên kết và các Ràng buc liên kết
3.5.1 Định nghĩa liên kết và kiu liên kết
Liên kết (Relationship) dùng để ch mi quan h gia hai hay nhiu thc th
khác nhau. Ví d: Nhân viên (A) làm vic cho d án (X), nhân viên B làm vic cho d
án (X)…
Nhng liên kết ca cùng mt kiu được nhóm li gi là kiu liên kết
(Relationship Type), ví d kiu liên kết WORK_ON (làm vic cho), kiu liên kết
MANAGES ( làm qun lý)…
Trong lược đồ ER, người ta s dng hình thoi và bên trong ghi tên kiu liên kết
để ký hiu kiu liên kết.
Ký hiu:
Lưu ý: Kiu liên kết cũng có th có thuc tính ca nó.
employee departmen
t
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
26
3.5.2 Bc ca kiu liên kết
Là s lượng các kiu thc th tham gia vào liên kết. Có các kiu liên kết sau:
- Kiu liên kết bc 1 (đệ quy) là mi quan h gia cùng 1 kiu thc th.
- Kiu liên kết bc 2 là mi liên kết gia hai kiu thc th
- Kiu liên kết bc 3 là mi liên kết gia 3 kiu thc th
3.5.2.1 Mi quan h bc 1
Mi quan h bc 1 (đệ quy) là mi quan h gia cùng 1 kiu thc th
Ví d:
Hình 3.8. Minh ha mi quan h bc 1
3.5.2.2 Mi quan h bc 2
Là mi quan h gia 2 kiu thc th khác nhau.
Ví d:
Hình 3.9. Minh ha mi quan h bc 2
Ví d: Mi liên kết gia hai kiu thc th DEPARTMENT và EMPLOYEE sau
đây là kiu liên kết bc 2 vì nó có s tham gia ca hai kiu thc th.
Hình minh ho trên còn cho ta thy, có th có nhiu hơn mt kiu liên kết gia
hai kiu thc th khác nhau.
3.5.2.3 Mi quan h bc 3
Là mi quan h gia 3 kiu thc th khác kiu.
EMPLOYEE
works fo
r
mana
g
es
1
N
1
1
PERSON
marr
y
EMPLOYEE
supervisor
1
1
1
N
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
27
Hình 3.10. Minh ha mi quan h bc 3
3.5.3 Ràng buc liên kết
Các kiu liên kết thường có mt s ràng buc nào đó v các thc th có th kết
hp vi nhau tham gia trong mt liên kết phù hp. Các ràng buc này xác định t tình
hung thc tế mà liên kết th hin.Có các loi ràng buc như sau:
3.5.3.1 T s lc lượng:
Trong các kiu liên kết bc 2, t s lc lượng ch rõ s thc th tham gia vào
liên kết. Các t s lc lượng có th là: 1:1, 1:N, N:1 và M:N.
T s 1:1: Mt thc th ca kiu A có liên kết vi mt thc th ca kiu B và
ngược li.
Ví d: Mt nhân viên (EMPLOYEE) qun lý mt phòng (DEPARTMENT) , và
mt phòng ch có mt nhân viên qun lý.
T s 1:N: Mt thc th ca kiu A có liên kết vi nhiu thc th ca kiu B.
Nhưng mt thc th ca kiu B li có liên kết duy nht vi thc th ca kiu A.
Ví d: Mt nhân viên (EMPLOYEE) làm vic cho mt phòng
(DEPARTMENT), và mt phòng có nhiu nhân viên làm vic.
B A
relationship
1 1
DEPARTMENT
EMPLOYEE
Manages
1
1
B A
relationship
1
N
teach
SUBJECT
TEACHER CLASS
Hours
M
N
M
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
28
T s M:N: Mt thc th ca kiu A có liên kết vi nhiu thc th ca kiu B
và ngược li.
Ví d:
3.5.3.2 Ràng buc v s tham gia liên kết (Participation constraint)
Ràng buc v s tham gia liên kết được xác định trên tng thc th trong tng kiu
liên kết mà thc th đó tham gia, bao gm: lc lượng tham gia toàn b (total
participation) và lc lượng tham gia b phn (partial participation).
Ví d: Trong kiu liên kết Manages gia hai kiu thc th EMPLOYEE và
DEPARTMENT, lc lượng tham gia ca kiu thc th DEPARTMENT là toàn b, vì
DEPARTMENT nào cũng có người qun lý, còn lc lượng tham gia ca kiu thc th
EMPLOYEE là b phn vì không phi EMPLOYEE nào cũng làm qun lý (manages)
ca DEPARTMENT.
Trong sơ đồ ER, kiu thc th có lc lượng tham gia liên kết toàn b được ni
vi kiu liên kết bng gch ni kép, còn kiu thc th có lc lượng tham gia b phn
được ni vi kiu liên kết bng gch ni đơn.
Ví d:
3.5.3.3 Lc lượng tham gia liên kết
Trong mi liên kết gia các thc th, ta cn quan tâm đến lc lượng tham gia
liên kết, đó là s bn ghi ln nht và nh nht ca thc th tham gia vào liên kết đó.
Ký hiu: Thêm (min,max) vào mi liên kết.
Trong đó:
- min là s bn ghi nh nht tham gia vào liên kết
DEPARTMENT
EMPLOYEE
Work_
for
N
1
PROJECT
EMPLOYEE
Work_
on
M
N
DEPARTMENT
EMPLOYEE
Manages
1
1
BA
M
N
relationship
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
29
- max là s bn ghi ln nht tham gia vào liên kết
- Mc định, min=0, max=n
- Chúng ta xác định lc lượng này t kho sát thc tế bài toán.
Ví d:
a. Ti mt thi đim, mt phòng có duy nht mt người qun lý-người
đó là nhân viên, mt nhân viên ch qun lý duy nht mt phòng. Vì
vy, (0,1) là lc lượng ca EMPLOYEE và (1,1) là lc lượng ca
DEPARTMENT tham gia trong liên kết Manages(qun lý).
b. Mt nhân viên ch có th làm vic cho mt phòng nhưng mt phòng
có th có bt k s lượng nhân viên nào. Vì thế, (1,1) là lc lượng ca
EMPLOYEE và (0,n) là lc lượng ca DEPARTMENT tham gia
trong liên kết Works_For(làm vic cho).
3.5.3.4 Thuc tính ca kiu liên kết
Kiu liên kết cũng có th có thuc tính. Ví d: S gi nhân viên làm vic cho
d án (Hours) là thuc tính ca mi liên kết gia hai kiu thc th EMPLOYEE và
PROJECT.
3.6 Kiu thc th yếu(Weak Entity)
Kiu thc th yếu là kiu thc th tn ti ph thuc vào thc th khác (thc th
làm ch hay còn gi là xác định nó). Kiu thc th yếu không có khoá.
Kiu thc th yếu được xác định bng:
- Mt hay mt tp các thuc tính xác định kiu thc th yếu
- Và thưc th làm ch (xác định) thc th yếu.
Kiu thc th yếu luôn có lc lượng tham gia liên kết toàn b.
3.7 Tng quát hóa và chuyên bit hóa
Tng quát hóa là khái nim cho phép ta xem mt vt th nào đó (các thc th)
là mt thc th con ca mt vt th khác tng quát hơn.
Ví d: SACH là mt loi con ca loi tng quát hơn là TAILIEU nói chung.
Chuyên bit hóa là khái nim ngược li vi tng quát hóa.
Ví d:
Ôtô, xeca, taxi gp li thành mt thc th tng quát hơn là Phuongtienvantai.
PROJECT
EMPLOYEE
Work_on
M
N
Hours
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
30
3.7.1 Thc th con và thc th chính
Trong mô hình d liu, cn phi mô t mt cách rõ ràng các thc th gn như
nhau: đó là các thc th có các thuc tính chung, nhưng cũng có mt s các thuc tính
khác nhau.
Ví d: Trong mt Đơn v có 3 loi nhân viên: SECRETARY, TECHNICIAN,
ENGINEER. Các thc th này có mt s thuc tính chung và mt s thuc tính riêng.
Trong trường hp này, có th có 3 hướng gii quyết sau:
- Cách đơn gin nht là gp tt c các loi nhân viên vào mt thc th
EMPLOYEE. Cách này dn đến dư tha thông tin, vì có nhng thuc
tính luôn rng đối vi mi loi nhân viên.
- Cách th hai, định nghĩa riêng r tng loi thc th: SECRETARY,
TECHNICIAN, ENGINEER. Cách này không khai thác được nhng
thuc tính chung ca nhân viên.
- Cách th ba, định nghĩa mt thc th chính gi là EMPLOYEE, vi 3
thc th con là: SECRETARY, TECHNICIAN, ENGINEER. Nhng
thuc tính chung nm trong thc th chính, còn thc th con s cha
thuc tính riêng ca nó. Hình sau đây minh ho cách gii quyết này:
Hình 3.11. Minh ha mi quan h gia thc th con và thc th chính
3.7.2 Các thc th con loi tr
Trong mô hình trên, các thc th con là loi tr ln nhau.
Thc th con loi tr gm 2 loi:
EMPLOYEE
SECRETARY TECHNICIAN ENGINEER
FName
Minit
LName
Name
Ssn
BirthDate
Address
Typing Speed
TGrade
EngType
d
JobType
Job Type
“Engineer”
“Secretary”
“Technician”
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
31
Thc th con đầy đủ: Là tt c các thc th con xác định mt thc th chính.
Trong ví d trên, tt c các thc th con là đầy đủ vì không th b sung thc th nào
vào thc th chính EMPLOYEE.
Thc th con không đầy đủ: Tp các thc th con không đầy đủ xác định thc th
chính. Ví d: Tp thc th ÔTÔ, XEMAY chưa xác định được thc th chính là
PHUONGTIEN.
3.8 Các ký hiu và quy ước đặt tên trong mô hình ER
3.8.1 Các ký hiu
Trong xây dng mô hình E-R, ta s dng các ký hiu trong hình 3.12:
Hình 3.12. Bng tng hp các ký hiu trong mô hình ER
3.8.2 Quy tc đặt tên
Thc th
Thc th yếu
Mi quan h
Mi quan h xác định
Thu
c tính
Thu
c tính khóa
Thu
c tính
đatr
Thu
c tính t hp
Thu
c tính suy din
E2 tham gia toàn b trong R
T s tham gia liên kết 1:N
L
cl
ư
ng ca E2 trong R
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
32
3.9 Xây dng mt mô hình ER.
3.9.1 Các bước xây dng sơ đồ ER
3.9.1.1 Lit kê, chính xác hóa và la chn thông tin cơ s
Xác định mt t đin bao gm tt c các thuc tính (không b sót bt c thông
tin nào).
Chính xác hóa các thuc tính đó. Thêm các t cn thiết để thuc tính đó mang
đầy đủ ý nghĩa, không gây lm ln, hiu nhm.
Chú ý: Để la chn các đặc trưng cn thiết , ta duyt t trên xung và ch gi
li nhng thuc tính đảm bo yêu cu sau:
Thuc tính cn phi đặc trưng cho mt lp các đối tượng được xét.
Chn mt thuc tính mt ln, nếu lp li thì b qua.
Mt thuc tính phi là sơ cp (Nếu giá tr ca nó có th suy ra t các thuc tính
khác thì b qua).
3.9.1.2 Xác định các thc th và các thuc tính ca nó, sau đó xác
định thuc tính định danh cho tng thc th.
Duyt danh sách các thuc tính t trên xung để tìm ra thuc tính tên gi. Mi
thuc tính tên gi s tương ng vi mt thc th.
Gán các thuc tính cho tng thc th.
Xác định thuc tính định danh cho tng thc th.
3.9.1.3 Xác định các mi quan h và các thuc tính riêng ca nó
Xét danh sách các thuc tính còn li, hãy tìm tt c các động t (ng vi thuc
tính đó). Vi mi động t, hãy tr li các câu hi: Ai? Cái gì? đâu? Khi nào? Bng
cách nào?
3.9.1.4 V sơ đồ mô hình thc th- mi quan h, xác định lc lượng
tham gia liên kết cho các thc th.
3.9.1.5 Chun hóa sơ đồ và thu gn sơ đồ
- V sơ đồ.
- Chun hóa sơ đồ, nếu trong đó còn có cha: các thuc tính lp, nhóm
lp và các thuc tính ph thuc thi gian sơ đồ ch còn các thc th
đơn và các thuc tính đơn.
Quy tc đặt tên:
entity types
attributes
relationship types
roles
Danh t
Động t
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
33
Thu gn sơ đồ: Nếu mt thc th có tt c các đặc trưng:
- Là thc th treo: là thc th ch tham gia vào mt mi quan h
và ch cha mt thuc tính duy nht thc s là ca nó (có th
thuc tính th 2 thêm vào làm định danh).
- Mi quan h là bc hai và không có thuc tính riêng.
- Mi quan h là 1: N hay 1:1.
Ví d:
Được thu gn thành sơ đồ sau:
3.9.2 Mô hình ER cho cơ s d liu COMPANY
a. Qua Bước 1 và Bước 2 ta xác định được danh sách các thc th và các thuc
tính ca tng thc th.
b. Qua bước 3 ta xác định được các kiu liên kết như sau:
1. MANAGES: là kiu liên kết 1:1 gia hai kiu thc th EMPLOYEE và
DEPARTMENT. Lc lượng tham gia kiên kết ca kiu thc th EMPLOYEE là b
phn, vì không phi nhân viên nào cũng tham gia qun lý. Còn lc lượng tham gia ca
DEPARTMENT là toàn b, vì ti bt k thi đim nào mt phòng cũng có mt nhân
viên làm qun lý. Thuc tính StartDate được gn vào kiu liên kết để ghi li thi đim
bt đầu làm qun lý ca nhân viên cho phòng đó.
2. WORKS_FOR: là kiu liên kết 1:N gia hai kiu thc th DEPARTMENT
và EMPLOYEE. C hai kiu thc th này đều có lc lượng tham gia toàn b vào liên
kết.
3. CONTROLS: là kiu liên kết 1:N gia hai kiu thc th DEPARTMENT và
PROJECT. Lc lượng tham gia ca PROJECT là toàn b, ca DEPARTMENT là b
phn.
STUDENT CLASS
have
StartDate
Name
STUDENT CLASS
FACULTY
have
have
N
ame
StartDate
N
1
N
1
N
1
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
34
4. SUPERVISOR: là kiu liên kết 1:N gia hai kiu thc th EMPLOYEE và
EMPLOYEE (Mi nhân viên có người qun lý cp trên ca mình, người đó cũng là
mt nhân viên). Trong quá trình phng vn các đối tượng người dùng, người thiết kế
được tr li rng: Không phi nhân viên nào cũng làm qun lý nhân viên khác, và
không phi nhân viên nào cũng có người qun lý trc tiếp mình. Vì vy, c hai kiu
thc th này có lc lượng tham gia b phn.
5. WORK_ON: là kiu liên kết M:N gia hai kiu thc th EMPLOYEE và
PROJECT, vì mt d án có nhiu nhân viên làm vic và mt nhân viên có th làm vic
cho nhiu d án. Thuc tính Hours là thuc tính ca kiu liên kết được dùng để ghi li
s gi mi nhân viên làm vic cho mt d án nào đó. C hai kiu thc th này có lc
lượng tham gia toàn b.
6. DEPENDENTS_OF: là kiu liên kết 1:N gia hai kiu thc th
EMPLOYEE và DEPENDENT. Kiu thc th DEPENDENT là kiu thc th yếu, vì
nó không tn ti nếu không có s tn ti ca kiu thc th EMPLOYEE. Lc lượng
tham gia ca EMPLOYEE là b phn, vì không phi nhân viên nào cũng có người ph
thuc. Lc lượng tham gia ca DEPENDENT là toàn b vì nó là kiu thc th yếu.
c. Qua bước 4 ta v được mô hình ER:
Hình 3.13. Mô hình ER ca bài toán COMPANY
3.9.3 Bài tp
Xây dng mô hình ER để qun lý các đơn v sau:
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
35
Bài tp 1: Qun lý hot động ca mt trung tâm đại hc
Qua quá trình kho sát, điu tra hot động ca mt trung tâm đại hc ta rút ra
các quy tc qun lý sau:
- Trung tâm được chia làm nhiu trường và mi trường có 1 hiu
trưởng để qun lý nhà trường.
- Mt trường chia làm nhiu khoa, mi khoa thuc v mt trường.
- Mi khoa cung cp nhiu môn hc. Mi môn hc thuc v 1 khoa
(thuc quyn qun lý ca 1 khoa).
- Mi khoa thuê nhiu giáo viên làm vic. Nhưng mi giáo viên ch
làm vic cho 1 khoa. Mi khoa có 1 ch nhim khoa, đó là mt giáo
viên.
- Mi giáo viên có th dy nhiu nht 4 môn hc và có th không dy
môn hc nào.
- Mi sinh viên có th hc nhiu môn hc, nhưng ít nht là môn. Mi
môn hc có th có nhiu sinh viên hc, có th không có sinh viên
nào.
- Mt khoa qun lý nhiu sinh viên ch thuc v mt khoa.
- Mi giáo viên có th được c làm ch nhim ca lp, lp đó có th
có nhiu nht 100 sinh viên.
Bài tp 2:
Cho các thuc tính, các quy tc qun lý ca mt đơn v.
1. Thuc tính:
- đơn v, Tên đơn v, S đin thoi đơn v, Địa ch đơn v.
- Mã nhân viên, Tên nhân viên, Gii tính nhân viên, Địa ch nhân viên,
S đin thoi ca nhân viên.
- Mã d án, Tên d án
- Mã khách hàng, tên khách hàng, Địa ch khách hàng, S đin thoi
ca khách hàng.
- Mã hàng, Tên hàng, S lượng trong kho.
- Lượng đặt hàng, Ngày đặt hàng
2. Các quy tc
- Mt đơn v thuê 1 hoc nhiu nhân viên
- Mt đơn v được qun lý bi 1 người qun lý. Đó là mt nhân viên.
- Mt nhân viên ch làm vic cho 1 đơn v
- Mt nhân viên có th làm vic cho 1 d án
- Mi d án có th thuê 1 hoc nhiu nhân viên
Chương 3. MÔ HÌNH QUAN H - THC TH
PHN I – CƠ S D LIU
36
- Mt nhân viên có th phc v cho 1 hoc nhiu khách hàng
- Mt khách hàng có th được 1 hoc nhiu nhân viên phc v
- Mt khách hàng có th đặt 1 hoc 1 vài hàng hóa (Khách hàng nào
cũng đặt hàng: 1 hoc nhiu mt hàng)
- Mi mt hàng đều có ít nht mt khách hàng đặt mua
- Mt đơn đặt hàng ch có 1 mt hàng.
Chương 4. MÔ HÌNH CƠ S D LIU QUAN H
PHN I – CƠ S D LIU
37
4 Chương 4. MÔ HÌNH CƠ S D LIU QUAN H
4.1 Khái nim mô hình quan h
Mô hình CSDL quan h ln đầu tiên được E.F.Codd và tiếp sau đó được công
ty IBM gii thiu vào năm 1970. Ngày nay, hu hết các t chc đã áp dng CSDL
quan h để qun lý d liu trong đơn v mình.
Mô hình cơ s d liu quan h là cách thc biu din d liu dưới dng bng hay
còn gi là quan h, mô hình được xây dng da trên cơ s lý thuyết đại s quan h.
Cu trúc d liu: d liu được t chc dưới dng quan h hay còn gi là bng.
Thao tác d liu: s dng nhng phép toán mnh (bng ngôn ng SQL).
4.2 Các thành phn cơ bn ca mô hình
4.2.1 Mt s khái nim ca mô hình quan h
Mô hình quan h là cách thc biu din d liu dưới dng các quan h (các
bng). Mt quan h là mt bng d liu 2 chiu (ct và dòng), mô t mt thc th. Mi
ct tương ng vi mt thuc tính ca thc th. Mi dòng cha các giá tr d liu ca
mt đối tượng c th thuc thc th
Mt s khái nim cơ bn:
Lược đồ quan h: R(A1,…,An), trong đó R là tên quan h, Ai là các thuc tính,
mi Ai có min giá tr tương ng dom(Ai).
Lược đồ quan h được s dng để t mt quan h, bao gm: Tên quan h,
các thuc tính và bc ca quan h (s lượng các thuc tính)
4.2.2 Quan h:
Mt quan h r ca R(A1,...,An), ký hiu r(R) là mt tp hp n-b r={ t1, ..., tm}
Trong đó:
Mi ti =<v1, ...,vn>, vi dom(Ai).
r(R) dom(A1) x .... x dom(An)
r = { (vi
1
,vi
2
,...,vin) / i=1,...,m}
v
11
v
12 V1n
v
21
v
22
v
2n
......
vm
1
vm
2
vmn
A
1
A
2
Am
Ta có Ai là các thuc tính và min giá tr ca Ai
là:
D1=dom(A
1
), D
2
=dom(A
2
),...., Dn=dom(An).
Chú ý: - Các tp (D1,D2,...,Dn) là tp các min tr ca R
- n được gi là bc ca quan h r.
- m được gi là lc lượng ca r.
- Quan h bc 1 là quan h nht nguyên, bc 2 là quan h nh nguyên, bc n
là quan h n nguyên.
Chương 4. MÔ HÌNH CƠ S D LIU QUAN H
PHN I – CƠ S D LIU
38
Ví d: Quan h EMPLOYEE trên tp các thuc tính R={SSN, Name, BDate,
Address, Salary} là mt quan h 5 ngôi.
SSN Name BDate Address Salary
001 Đỗ Hoàng Minh 1960 Hà ni 425 t1
002 Đỗ Như Mai 1970 Hi Phòng 390 t2
003 Đặng Hoàng Nam 1973 Hà ni 200 t3
t1(001, ‘Đỗ Hoàng Minh’, 1960, ‘Hà ni’ , 425) = t1(R) là mt b ca quan h
EMPLOYEE
4.2.3 Các tính cht ca mt quan h
- Giá tr đưa vào ct là đơn nht
- Các giá tr trong cùng mt ct phi thuc cùng mt min giá tr (cùng kiu)
- Th t dòng ct tu ý.
4.2.4 Các ràng buc toàn vn trên quan h
Ràng buc là nhng quy tc được áp đặt lên trên d liu đảm bo tính tin cy
độ chính xác ca d liu. Các lut toàn vn được thiết kế để gi cho d liu phù hp
đúng đắn.
Có 4 kiu ràng buc chính: Ràng buc min giá tr (Domain Constraints), Ràng
buc khoá (Key Constraints), Ràng buc thc th (Entity Integrity Constraints), và
Ràng buc toàn vn tham chiếu (Referential Integrity Constraints).
4.2.4.1 Ràng buc min giá tr
Là mt hp các kiu d liu và nhng giá tr gii hn mà thuc tính có th nhn
được. Thông thường vic xác định min giá tr ca các thuc tính bao gm mt s các
yêu cu sau: Tên thuc tính, Kiu d liu, Độ dài d liu, khuôn dng ca d liu,
các giá tr gii hn cho phép, ý nghĩa, có duy nht hay không, có cho phép giá tr
rng hay không.
4.2.4.2 Ràng buc khoá
4.2.4.2.1 Khóa chính (Primary Key)
Khóa chính là mt (hoc mt tp) các thuc tính đóng vai trò là ngun ca mt
ph thuc hàm mà đích ln lượt là các thuc tính còn li.
Ví d: R={SSN, Name, BDate, Address, Salary}
SSN Name, BDate, Address, Salary
(Ngun) (Đích)
Ta thy, t SSN ta có th suy ra toàn b các thuc tính ng. Vy SSN được gi
là khóa chính.
Mt s gi ý khi chn khóa:
- Khóa không nên là tp hp ca quá nhiu thuc tính. Trong trường hp khóa có
nhiu thuc tính, có th thêm mt thuc tính “nhân to” thay chúng làm khóa
chính cho quan h.
Chương 4. MÔ HÌNH CƠ S D LIU QUAN H
PHN I – CƠ S D LIU
39
- Nếu khóa chính được cu thành t mt s thuc tính, thì các thành phn nên
tránh s dng thuc tính có giá tr thay đổi theo thi gian: như tên địa danh,
phân loi.
4.2.4.2.2 Khóa d tuyn (Candidate Key)
Trong tp hp các thuc tính ca mt bng, có th có nhiu thuc tính có th
dùng được làm khóa chính. Các thuc tính đó được gi là khóa d tuyn.
Khóa d tuyn cn tha mãn 2 tính cht sau:
- Xác định duy nht.
- Không dư tha: Khi xóa đi bt k mt thuc tính nào ca khóa đều phá hy tính
xác định duy nht ca khóa.
4.2.4.2.3 Khóa ngoi (Foreign Key)
Trong nhiu trường hp, khóa chính ca mt bng được đưa sang làm thuc
tính bên bng khác, thuc tính đó gi là khóa ngoi. Khóa ngoi đóng vai trò th hin
liên kết gia 2 bng.
4.2.4.2.4 Khóa ph (Second Key)
Đóng vai trò khi ta mun sp xếp li d liu trong bng.
Ví d: Ta có bng SINHVIEN (MaSV, Hoten, GioiTinh, Diem).
Mun sp xếp li danh sách sinhviên theo th t a, b, c.. ca H tên. Khi đó
thuc tính Hoten được gi là khóa ph.
4.2.4.3 Ràng buc thc th
Mi mt lược đồ quan h R, chúng ta phi xác định khoá chính ca nó. Khoá
chính trong lược đồ quan h được gch chân phía dưới ca thuc tính.
Sau đây là danh sách các lược đồ quan h trong cơ s d liu COMPANY sau
khi xác định ràng buc thc th:
Hình 4.1. Lược đồ cơ s d liu COMPANY
Chương 4. MÔ HÌNH CƠ S D LIU QUAN H
PHN I – CƠ S D LIU
40
Hình 4.2. Mt th hin ca cơ s d liu COMPANY
Lưu ý: Ràng buc khoá và ràng buc thc th được xác định cho tng quan h.
Chương 4. MÔ HÌNH CƠ S D LIU QUAN H
PHN I – CƠ S D LIU
41
4.2.4.4 Ràng buc toàn vn tham chiếu
Mt b giá tr trong mt quan h tham chiếu ti mt b giá tr đã tn ti trong
mt quan h khác.
Ràng buc toàn vn tham chiếu phi xác định trên 2 quan h: quan h tham
chiếu (referencing relation) và quan h được tham chiếu (referenced relation).
Ràng buc toàn vn tham chiếu còn được gi là ràng buc khoá ngoi.
Ví d: Thuc tính DNo ca quan h EMPLOYEE tham chiếu ti thuc tính
DNumber ca quan h DEPARTMENT.
Hình 4.3. Các ràng buc tham chiếu trong cơ s d liu COMPANY
4.2.5 Các phép toán trên CSDL quan h
4.2.5.1 Phép toán cp nht
a. Phép chèn (INSERT): Là phép b xung thêm mt b vào quan h r cho
trước.
R1
FK
PK
R2
… …
referencing relation
referenced relation
Chương 4. MÔ HÌNH CƠ S D LIU QUAN H
PHN I – CƠ S D LIU
42
+ Biu din: INSERT(r; A
1
=d
1
,A
2
=d
2
,...,An=dn) vi Ai
là thuc tính, di thuc
dom(Ai), i=1,..,n.
Nếu th t các trường là c định, có th biu din phép chèn dưới dng không
tường minh INSERT(r; d
1
,d
2
,..., dn).
+ Ví d : Chèn thêm mt b t
4
=(‘004’, ‘Hoàng Thanh Vân’,1969, ‘Hà ni’,
235) vào quan h EMPLOYEE(SSN, Name, BDate, Address, Salary) ta có th viết:
INSERT(EMPLOYEE; SSN= ‘004’, Name= ‘Hoàng Thanh Vân’,
BDate=1969, Address= ‘Hà ni’, Salary=235).
+ Chú ý : Kết qu ca phép chèn có th gây ra mt s sai sót là :
- B mi được thêm không phù hp vi lược đồ quan h cho trước
- Mt s giá tr ca mt s thuc tính nm ngoài min giá tr ca thuc tính đó.
- Giá tr khoá ca b mi có th là giá tr đã có trong quan h đang lưu tr.
b. Phép loi b (DEL): Là phép xoá mt b ra khi mt quan h cho trước.
- Biu din : DEL(r; A
1
=d
1
,A
2
=d
2
,...,An=dn) hay DEL((r, d
1
,d
2
,..., dn).
Nếu K=(E
1
,E
2
,...,Em) là khoá thì có th viết DEL(r; E
1
=e
1
,E
2
=e
2
,...,Em=em)
- Ví d :
+ Để xoá b t1 ra khi quan h r:
DEL(EMPLOYEE; SSN= ‘004’, Name= ‘Hoàng Thanh Vân’, BDate=1969,
Address= ‘Hà ni’, Salary=235).
+ Cn loi b mt nhân viên trong quan h EMPLOYEE mà biết SSN đó là
‘004’ thì ch cn viết: DEL(EMPLOYEE; SSN= ‘004’)
c. Phép cp nht (UPDATE): Là phép tính dùng để sa đổi mt s giá tr nào
đó ti mt s thuc tính.
+ Biu din :
UPD (r; A
1
=d
1
,A
2
=d
2
,...,An=dn; B
1
=b
1
,B
2
=b
2
,...,Bk=bk)
Vi {B
1
,B
2
,...,Bk} là tp các thuc tính mà ti đó các giá tr ca b cn thay
đổi. {B
1
,B
2
,...,Bk} ng vi tp thuc tính {A
1
,A
2
,...,An}
Hay UPD(r; E
1
=e
1
,E
2
=e
2
,...,Em=e; B
1
=b
1
,B
2
=b
2
,...,Bk=bk) vi K=(E
1
,E
2
,...,Em)
là khoá.
+ Ví d : Để thay đổi tên nhân viên có SSN= ‘003’ trong quan h EMPLOYEE
thành Nguyn Thanh Mai ta có th viết :
CH (EMPLOYEE; SSN= ‘03’; Name= ‘Nguyn Thanh Mai’)
4.2.5.2 Phép toán đại s quan h
Đại s quan h gm mt tp các phép toán tác động trên các quan h và cho kết
qu là mt quan h.
Có 8 phép toán được chia làm 2 nhóm : Nhóm các phép toán tp hp (hp,
giao, tr, tích đề các), nhóm các phép toán quan h ( chn, chiếu, kết ni, chia).
Chương 4. MÔ HÌNH CƠ S D LIU QUAN H
PHN I – CƠ S D LIU
43
Định nghĩa : Hai quan h r và s được gi là kh hp nếu chúng được xác định
trên cùng mt tp các min giá tr (Có nghĩa là chúng được xác đinh trên cùng mt tp
các thuc tinh).
a. Phép hp:
- Phép hp ca hai quan h kh hp r U s = {t / t thuc r hoc t thuc s}
Ví d:
- Phép hp ca hai quan h là phép gp các b ca hai bng ca mt quan h
thành mt bng và b đi các b trùng.
Ví d: EMPLOYEE1 EMPLOYEE2
EMPLOYEE1 EMPLOYEE2 = EMPLOYEE3
Hình 4.4. Minh ha d liu phép hp 2 quan h
b. Phép giao
- Phép giao ca hai quan h kh hp r
s ={t / t thuc r và t thuc s}
Ví d :
- Phép giao ca hai quan h là ly ra các b cùng có mt c hai bng ca mt
quan h.
Ví d: EMPLOYEE1
EMPLOYEE2 = 002, Thin, P002
c. Phép tr
- Phép tr ca hai quan h kh hp r - s = {t / t thuc r và t không thuc s}
d :
r - s ( A, B , C )
a2 b2 c2
SSN Name DNo
001 Hoàng P001
002 Thin P002
003 Huy P001
004 Thin P003
r ( A, B , C ) s( A, B , C ) r U s ( A, B , C )
a1 b1 c1 a1 b1 c1 a1 b1 c1
a2 b2 c2 a1 b2 c2 a2 b2 c2
a1 b2 c2
SSN Name DNo
001 Hoàng P001
002 Thin P002
SSN Name DNo
003 Huy P001
002 Thin P002
004 Thin P003
r s ( A, B , C )
a1 b1 c1
Chương 4. MÔ HÌNH CƠ S D LIU QUAN H
PHN I – CƠ S D LIU
44
- Phép tr ca hai quan h A và B là ly các b có trong bng A mà không có
trong bng B.
Ví d: EMPLOYEE1
- EMPLOYEE2 = 001, Hoàng, P001
EMPLOYEE2
- EMPLOYEE1
d. Phép tích đề các :
- Cho quan h r(R), R={A
1
,A
2
,...,An} và quan h s(U), U={B
1
,B
2
,...,Bm}
- Tích đề các :
r x s ={t=(a
1
,a
2
,...,an, b
1
,b
2
,...,bm) /a
1
,a
2
,...,an Єr và b
1
,b
2
,...,bm
Єs}
Ví d :
- Chú ý: Bc k = bc r + bc s , lc lượng k = lc lượng r x lc lượng s
Phép tích đề các là phép toán đắt nht trong các phép toán ca đại s quan h.
e. Phép chn (ct ngang) - mt ngôi
- Là phép toán lc ra mt tp con các b ca quan h đã cho theo biu thc
chn F.
- Biu thc chn F là mt t hp logic các toán hng, mi toán hng là mt
phép so sánh đơn gin gia hai thuc tính hoc gia mt thuc tính và mt giá tr
hng.
- Phép toán logic: AND (và), OR (hoc), NOT (ph định).
- Phép toán so sánh : <, >, =, >=, <=, <>
- Phép chn trên quan h r vi biu thc chn F
σ
F
(r) = { t thuc r / F(t) đúng}
d :
r (A , B) ; F1 = (A=a1) OR (B=3) σ
F
1
(r) = r' (A ,B)
a1 1 a1 1
a2 2 a3 3
a3 3
SSN Name DNo
003 Huy P001
004 Thin P003
r (A , B ) ; s(C , D) ; r x s = k (A, B, C, D)
a1 1 1 d1 a1 1 1 d1
a2 2 2 d2 a1 1 2 d2
a3 3 a2 2 1 d1
a2 2 2 d2
a3 3 1 d1
a3 3 2 d2
Chương 4. MÔ HÌNH CƠ S D LIU QUAN H
PHN I – CƠ S D LIU
45
Bc r = bc r'; lc lượng ca r >= lc lượng ca r'
-Phép chn trên quan h là ly ra các dòng ca bng quan h tho mãn mt điu
kin nào đó trên tp các ct thuc tính.
Ví d : Chn trên quan h EMPLOYEE3 các nhân viên thuc phòng có
DNo=P001
f. Phép chiếu (ct dc ) - 1 ngôi
- Là phép toán loi b đi mt s thuc tính và ch gi li mt s thuc tính được
ch ra ca mt quan h.
- Cho quan h r(R), X là tp con ca tp thuc tính R. Phép chiếu ca quan h r
trên X :
ΠX(r) = { t[X]/ thuc r}; t[X] là b t ly trên tp thuc tính X.
Ví d : Cho r(A,B) như trên , X={A};
- Bc ca r > bc ca k. Lc lượng ca r > lc lượng ca k
- Phép chiếu trên quan h là ly mt s ct (thuc tính) nào đó ca bng quan
h.
Ví d : Ly danh sách mã NV ca quan h NHANVIEN
Π
SSN
(EMPLOYEE3) =
g. Phép kết ni - 2 ngôi
1. Phép kết ni
- Cho hai quan h r(R), R={A
1
,A
2
,...,An} và quan h s(U), U={B
1
,B
2
,...,Bm}.
- Phép xếp cnh nhau: cho hai b d = (d
1
,d
2
,...,dn) và e = (e
1
,e
2
,...,em) phép xếp
cnh nhau ca d và e là : (d^e) = (d
1
,d
2
,...,dn, e
1
,e
2
,...,em)
- Phép kết ni gia quan h r có thuc tính A và quan h s có thuc tính B vi
mt phép so sánh θ là :
r >< s = {a^b / a thuc r, b thuc s và a(A) θ b(B)}
SSN Name DNo
001 Hoàng P001
003 Huy P001
SSN
001
002
003
004
Π
X
(r) = u(A)
a1
a2
a3
Chương 4. MÔ HÌNH CƠ S D LIU QUAN H
PHN I – CƠ S D LIU
46
Ví d : Xét quan h r và s trong ví d phép tích đề các
- Lc lượng ca phép kết ni k' <= lc lượng ca phép tích đề các k.
- Chú ý :
+ Để phép kết ni có nghĩa, min tr dom(A) phi so sánh được qua phép so
sánh θ vi min tr dom(B)
+ Nếu phép so sánh θ là "=" thì phép kết ni gi là kết ni bng.
2. Phép kết ni t nhiên
Phép toán kết ni bng trên nhng thuc tính cùng tên ca hai quan h và sau
khi kết ni thì ct b đi mt thuc tính cùng tên bng phép chiếu ca đại s quan h
được gi là phép kết ni t nhiên ký hiu *.
-Ví d :
- Ví d : Cho hai quan h NHANVIEN và PHONG
Kết ni t nhiên ca hai quan h :
Hình 4.5. Minh ha d liu phép kết ni t nhiên 2 quan h
r(A, B, C) s(C, D, E) r*s (A, B, C, D, E)
a1 1 1 1 d1 e1 a1 1 1 d1 e1
a2 2 1 2 d2 e2 a2 2 1 d1 e1
a1 2 2 3 d3 e3 a1 2 2 d2 e2
r*s =
ΠABCDE( r >< s)
C=C
SSN Name DNo
001 Hoàng P001
002 Thin P002
003 Huy P001
004 Thin P003
DNo DName
P001 T chc
P002 Kinh doanh
P003 Nhân s
P004 Tiếp th
SSN Name DNo DName
001 Hoàng P001 T chc
002 Thin P002 Kinh doanh
003 Huy P001 T chc
004 Thi
n P003 Nhân s
k' = σ
B>=C
(k) r >< s = σ
F
(r x s)
F
r (A , B ) ; s(C , D) ; r x s = k (A, B, C, D)
a1 1 1 d1 (B>=C) a1 1 1 d1
a2 2 2 d2 a1 1 2 d2
a3 3 a2 2 2 d2
a3 3 1 d1
a3 3 2 d2
Chương 4. MÔ HÌNH CƠ S D LIU QUAN H
PHN I – CƠ S D LIU
47
h. Phép chia
- Cho r là mt quan h n- ngôi, s là quan h m- ngôi (n>m, s khác rng). Phép
chia quan h r cho quan h s là tp tt c các n-m b t sao cho vi mi b u thuc s thì
b (t^u) thuc r : r ÷ s = {t / vi mi u thuc s thì (t^u) thuc r}
d :
- Ví d vi hai quan h : PRODUCT và SUPPORT
Cung cp
Mt hàng =
Hình 4.6. Minh ha d liu phép chia 2 quan h
r(A, B, C, D) s(C, D) r ÷ s (A, B)
a b c d c d a b
a b e f e f e d
b c e f
e d c d
e d e f
a b d e
PNo PName
h1 Đài
h2 TV
h3 t lnh
SNo PNo PName
n1 h1 Đài
n1 h2 TV
n1 h3 T lnh
n2 h3 T lnh
n2 h1 Đài
n3 h1 Đài
n3 h2 TV
n3 h3 T lnh
n4 h1 Đài
SNo
n1
n3
Chương 5. CHUYN T MÔ HÌNH ER SANG MÔ HÌNH QUAN H
PHN I – CƠ S D LIU
48
5 Chương 5. CHUYN T MÔ HÌNH ER SANG
HÌNH QUAN H
Như chúng ta đã biết, mô hình ER là mô hình d liu mc khái nim. Sau quá
trình kho sát thiết kế, ta thu được mô hình này. T mô hình này ta có th s dng các
quy tc chuyn sang mô quan h để thc hin qun lý cơ s d liu trên máy tính.
Sau đây là 8 bước được s dng để chuyn t mô hình ER sang mô hình
quan h:
Bước 1: Mi kiu thc th bình thường
(không phi kiu thc th yếu) trong
mô hình ER tr thành mt quan h. Quan h đó bao gm tt c các thuc tính đơn gin
và thuc tính t hp
ca thc th. Thuc tính định danh ca thc th là khóa chính ca
quan h.
Ví d: Kiu thc th: EMPLOYEE, DEPARTMENT, PROJECT
==> quan h: EMPLOYEE, DEPARTMENT, PROJECT
Quan h: EMPLOYEE (Ssn, fname, minit, lname, bdate, sex, address, salary)
Quan h: DEPARTMENT ( Dnumber, Dname)
Lưu ý: Thuc tính Locations không có trong quan h vì nó là thuc tính đa tr.
Quan h: PROJECT (Pnumber, Pname, Plocation)
DEPARTMENT
N
ame
N
umbe
r
Locations
EMPLOYEE
Bdate
SSN
N
ame
Sex
Address
Salary
Fname
Min
t
Lname
PROJECT
Numbe
r
Name
Location
Chương 5. CHUYN T MÔ HÌNH ER SANG MÔ HÌNH QUAN H
PHN I – CƠ S D LIU
49
Bước 2: Cho mi thc th yếu (Weak Entity) trong mô hình ER, to thành mt
quan h R, tt c thuc tính đơn gin
ca thc th yếu tr thành thuc tính ca R.
Thêm vào đó, thuc tính định danh ca thc th ch tr thành khóa ngoi ca R.
Khoá chính ca R là s kết hp gia thuc tính định danh ca thc th ch
thuc tính định danh ca thc th yếu.
Ví d:
DEPENDENT (Essn, Dependent_name
, sex, bdate, relationship)
Bước 3: Cho mi mi liên kết 1-1 trong mô hình ER:
- Xác định mt quan h S_T. Kiu thc th có s tham gia toàn b
vào liên kết
tr thành quan h S, thc th còn li tr thành quan h T.
- Đưa khóa chính ca T sang làm khóa ngoi ca S.
- Thuc tính ca mi quan h S_T tr thành thuc tính ca S.
Ví d:
DEPARTMENT(…, MGRSSN
, MGRSTARTDATE)
EMPLOYEE
SSN
dependents_o
f
DEPENDENT
N
ame RelationshipBirthDateSex
1
N
EMPLOYEE DEPARTMENT
mana
g
es
SSN
StartDate
1 1
Chương 5. CHUYN T MÔ HÌNH ER SANG MÔ HÌNH QUAN H
PHN I – CƠ S D LIU
50
Bước 4: Cho mi mi liên kết 1_N trong mô hình ER. Chuyn khóa chính ca
quan h phía 1 sang làm khóa ngoi ca quan h phía N.
Ví d 1:
EMPLOYEE(…, DNO
)
Ví d 2:
EMPLOYEE(…, SuperSSN
)
Bước 5:Cho mi mi liên kết MN, sinh ra mt quan h mi R, chuyn khóa
chính ca hai quan h phía M và N thành khóa ngoi ca quan h R. Khóa chính ca R
là s kết hp ca hai khóa ngoi.
Ví d:
WORKS_ON( PNO, ESSN
, Hours)
Bước 6: Nếu gp thuc tính đa tr:
- Chuyn thuc tính đa tr thành quan h mi.
- Thuc tính định danh (hoc 1 phn thuc tính định danh) ca thc th
chính chuyn thành khóa ngoi ca quan h mi.
EMPLOYEE DEPARTMENT
works_for
SSN
N
1
DNO
Superviso
r
EMPLOYEE
SSN
1
N
EMPLOYEE PROJECT
works_o
n
SSN
Hours
M
N
N
umbe
r
Chương 5. CHUYN T MÔ HÌNH ER SANG MÔ HÌNH QUAN H
PHN I – CƠ S D LIU
51
- Khóa chính ca quan h mi là khóa chính ca bn thân quan h +
khóa ngoi do thc th chính chuyn sang.
Ví d:
DEPT_LOCATIONS ( DNumber, DLocation
)
Bước 7:
Cho mi mi liên kết có bc (>2), to ra quan h mi (R), khóa chính ca các
quan h tham gia liên kết được đưa làm khóa ngoi ca quan h R và các khóa ngoi
này đồng thi đóng vai trò là khóa chính ca R.
Ví d:
SUPPLY (SName, ProjName, PartNo, Quantity
)
Bước 8: X lý quan h gia lp cha/ lp con và chuyên bit hoá hoc tng quát
hoá.
Các la chn khác nhau cho vic chuyn đổi mt s lượng các lp con t cùng
mt chuyên bit (hoc tng quát hoá thành lp cha). Ngoài 7 bước đã trình bày trên
trong bước 8 dưới đây đưa ra mt la chn ph biến nht và các điu kin mà mi la
chn có th s dng. S dng ký hiu Attr(R) để biu th các thuc tính ca R và
PK(R) là khoá chính ca R.
Cách thc hin:
Chuyn đổi mi chuyên bit hoá có:
- m lp con { S
1
, S
2
, … , Sm} và lp cha C, thuc tính ca C là { k, a
1
, a
2
, …, an} và k là khoá chính thành nhng lược đồ quan h, chúng
ta có th s dng mt trong 4 la chn sau:
1. La chn 8A:
DEPARTMENT
N
ame
N
umbe
r
Locations
SUPPLIE
R
PROJECT
SUPPLY
sname
q
uantit
y
p
ro
j
name
PART
p
artno
Chương 5. CHUYN T MÔ HÌNH ER SANG MÔ HÌNH QUAN H
PHN I – CƠ S D LIU
52
- To quan h L cho lp cha C vi các thuc tính Attrs(L)={k, a1, …, an} và khoá
chính ca L là: PK(L)=k.
- To quan h Li cho mi lp con tương ng Si vi các thuc tính Attrs(Li)={k} U
{thuc tính ca Si}PK(Li)=k.
Ví d:
Chuyn chuyên bit hoá trên thành các quan h sau:
EMPLOYEE(SSN
, FName, Minit, LName, BirthDate, Address, Salary)
SECRETARY(SSN
, TypingSpeed)
TECHNICIAN(SSN
, TGrade)
ENGINEER(SSN
, EngType)
2. La chn 8B:
To mt quan h Li cho mi lp con Si
, vi các thuc tính Attr(Li) = {k, a
1
,
a
2
,…, am} U {thuc tính ca Si}PK(Li) = k.
Ví d:
EMPLOYEE
SECRETAR
TECHNICIAN ENGINEE
R
FName
Minit
LNam
e
Name
Ss
BirthDate
Address
Typing Speed
TGrade
EngType
d
Salar
y
Job Type
“Engineer”
“Secretary”
“Technician”
Chương 5. CHUYN T MÔ HÌNH ER SANG MÔ HÌNH QUAN H
PHN I – CƠ S D LIU
53
Chuyn chuyên bit hoá trên thành các quan h sau:
CAR(Vehicleld
, LicensePlateNo, Price, MaxSpeed, NoOfPassengers)
TRUCK(Vehicleld
, LicensePlateNo, Price, NoOfAxles, Tonnage)
3. La chn 8C:
To mt quan h L vi các thuc tính Attr(L) = {k, a
1
, a
2
, …, an } U {thuc
tính ca S
1
} U… U {thuc tính ca Sm} U {t}PK(L) = k. Trong đó, t là thuc tính
phân bit ch ra bn ghi thuc v lp con nào, vì thế min giá tr ca t ={1,2,…,m}.
Ví d: Đối vi chuyên bit hoá ca EMPLOYEE, ta ch to ra mt quan h L
như sau:
EMPLOYEE(SSN, FName, Minit, LName, BirthDate, Address, Salary,
TypingSpeed, Tgrad, EngType, JobType)
4. La chn 8D:
To mt quan h L vi các thuc tính Attr(L) = {k, a
1
, a
2
, …, an } U {thuc
tính ca S
1
} U… U {thuc tính ca Sm} U {t
1
, t
2
, …, tmj} và PK(L) = k. La chn
này cho chuyên bit hoá ca các lp con được np chng (nhưng cũng áp dng cho
mt chuyên bit tách ri), và vi mi ti, 1 i m, là thuc tính BOOLEAN ch ra b
theo lp con Si.
Ví d:
LicensePlateNO
Price
Vehiclel
d
N
oOfPassengers
MaxS
p
ee
d
N
oOfAxles
Tonna
g
e
VEHICLE
CAR TRUCK
d
Thu
ctínhphânbit
Chương 5. CHUYN T MÔ HÌNH ER SANG MÔ HÌNH QUAN H
PHN I – CƠ S D LIU
54
PART (ParNo
, Description, Mflag, DrawingNo, ManufactureDate, BatchNo,
PFlag, SupplierName, ListPrice)
PART
MANUFACTURED_PART PURCHASED_PART
PartNo Descri
p
tio
n
Drawin
g
No BatchNo ListPrice
o
ManufactureDate
Su
pp
lierName
Thu
c tính phân bit
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
55
6 Chương 6. PH THUC HÀM VÀ CHUN HOÁ
QUAN H
6.1 Mt s hướng dn khi thiết kế cơ s d liu quan h
Vic quan trng nht khi thiết kế cơ s d liu quan h là ta phi chn ra tp
các lược đồ quan h tt nht da trên mt s tiêu chí nào đó. Và đểđược la chn
tt, thì chúng ta cn đặc bit quan tâm đến mi ràng buc gia các d liu trong quan
h, đó chính là các ph thuc hàm.
Để hiu hơn v câu hi ti sao phi thiết kế mt cơ s d liu tt, chúng ta hãy
cùng tìm hiu ví d sau:
RESULT(StNo
, StName, SubNo,SubName, Credit, Mark)
Quan h RESULT( Kết qu hc tp) có các thuc tính: StNo(Mã sinh viên),
StName(Tên sinh viên), SubNo(Mã môn hc), SubName(Tên môn hc), Credit (S
đơn v hc trình) và Mark (đim thi ca sinh viên trong môn hc).
Sau đây là minh ho d liu ca quan h RESULT:
StNo StName SubNo SubName Credit Mark
St01 Mai Sub04 CSDL 3 9
St01 Mai Sub01 TRR 5 10
St01 Mai Sub02 PPS 4 8
St02 Vân Sub04 CSDL 3 10
St02 Vân Sub01 TRR 5 9
St03 Thanh Sub07 Tiếng Anh 4 8
Hình 6.1. Minh ha d liu ca quan h RESULT
Quan h trên thiết kế chưa tt vì:
1. Dư tha d liu (Redundancy):
Thông tin v sinh viên và môn hc b lp
li nhiu ln. Nếu sinh viên có mã St01 thi 10 môn hc thì thông tin v sinh
viên này b lp li 10 ln, tương t đối vi môn hc có mã Sub04, nếu có
1000 sinh viên thi thì thông tin v môn hc cũng lp li 1000 ln
2. Không nht quán (Inconsistency):
Là h qu ca dư tha d liu. Gi s
sa bn ghi th nht, tên sinh viên được cha thành Nga thì d liu này li
không nht quán vi bn ghi th 2 và 3 (vn có tên là Mai).
3. D thường khi thêm b (Insertion anomalies):
Nếu mun thêm thông tin
mt sinh viên mi nhp trường (chưa có đim môn hc nào) vào quan h thì
không được vì khoá chính ca quan h trên gm 2 thuc tính StNo và
SubNo.
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
56
4. D thường khi xoá b (Deletion anomalies): Gi s xoá đi bn ghi cui
cùng, thì thông tin v môn hc có mã môn hc là SubNo=Sub07 cũng mt.
Nhn xét: Qua phân tích trên, ta thy chúng ta nên tìm cách tách quan h trên
thành các quan h nh hơn.
Trong chương này chúng ta s nghiên cu v nhng khái nim và các thut toán
để có th thiết kế được nhng lược đồ quan h tt.
6.2 Ph thuc hàm(Functional Dependencies)
- Ph thuc hàm (FDs) được s dng làm thước đo để đánh giá mt
quan h tt.
- FDs khoá được s dng để định nghĩa các dng chun ca quan
h.
- FDs là nhng ràng buc d liu được suy ra t ý nghĩa và các mi
liên quan gia các thuc tính.
6.2.1 Định nghĩa ph thuc hàm
Cho r(U), vi r là quan h và U là tp thuc tính.
Cho A,B
U, ph thuc hàm X Y (đọc là X xác định Y) được định nghĩa là:
t, t’
r nếu t.X = t’.X thì t.Y = t’.Y
(Có nghĩa là: Nếu hai b có cùng tr X thì có cùng tr Y)
Ph thuc hàm được suy ra t nhng quy tc d liu khi ta kho sát yêu cu ca
bài toán.
Ví d:
T mã s bo him xã hi, ta có th suy ra được tên ca nhân viên (Ssn Ename).T
mã d án, ta có th suy ra tên và v trí ca d án (PNumber{PName, PLcation})
Hình 6.2. Biu din FDs ca 2 lược đồ quan h EMP_DEPT và EMP_PROJ
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
57
6.2.2 H tiên đề Armstrong
Cho lược đồ quan h r(U), U là tp thuc tính, F là tp các ph thuc hàm được
định nghĩa trên quan h r.
Ta có ph thuc hàm A B được suy din logic t F nếu quan h r trênU
tha các ph thuc hàm trong F thì cũng tha ph thuc hàm A B.
Ví d:
Tp ph thuc hàm: F = { A B, B C}
Ta có ph thuc hàm A C là ph thuc hàm được suy t F.
H tiên đề Armstrong được s dng để tìm ra các ph thuc hàm suy din t F.
H tiên đề Armstrong bao gm:
1. Phn x: Nếu Y X thì X Y
2. Tăng trưởng: Nếu Z U và X Y thì XZ YZ (Ký hiuXZ là XZ)
3. Bc cu: Nếu X Y và Y Z thì X Z
4. Gi bc cu: Nếu X Y và WY Z thì XW Z
5. Lut hp: Nếu X Y và X Z thì X YZ
6. Lut phân rã: Nếu X Y và Z Y thì X Z
Trong sáu lut trên thì a4, a5, a6 suy được t a1, a2, a3.
6.2.3 Bao đóng ca tp ph thuc hàm
- Ta gi f là mt ph thuc hàm được suy dn t F, ký hiu là F f nếu tn
ti mt chui ph thuc hàm: f1, f2,…., fn sao cho fn=f và mi fi là mt thành
viên ca F hay được suy dn t nhng ph thuc hàm j=1,…,i-1 trước đó nh
vào lut dn.
- Bao đóng ca F:
ký hiu là F+ là tp tt c các ph thuc hàm được suy t
F nh vào h tiên đề Armstrong. F+ được định nghĩa:
F
F
+
+
=
=
{
{
X
X
Y
Y
|
|
F
F
X
X
Y
Y
}
}
6.2.4 Bao đóng ca tp thuc tính X trên F
Bao đóng ca tp thuc tính X xác định trên tp ph thuc hàm F ký hiu là X
+
là tp hp tt c các thuc tính có th suy ra t X. Ký hiu:
X
X
+
+
=
=
{
{
Y
Y
|
|
F
F
X
X
Y
Y
}
}
X
+
có th được tính toán thông qua vic lp đi lp li cá quy tc 1, 2, 3 ca h
tiên đề Armstrong.
Thut toán xác định bao đóng ca tp thuc tính X+:
X
+
:= X;
repeat
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
58
oldX
+
:= X
+
;
for (mi ph thuc hàm Y Z trong F) do
if Y X
+
then X
+
Z
until (oldX
+
= X
+
);
Ví d: Cho tp ph thuc hàm:
F = { SSNENAME, PNUMBER{PNAME, PLOCATION}, {SSN, PNUMBER} HOURS}
Suy ra:
{
SSN}
+
= {SSN, ENAME}
{PNUMBER}
+
= {PNUMBER, PNAME, PLOCATION}
{SSN, PNUMBER}
+
= {SSN, PNUMBER, ENAME, PNAME, PLOCATION, HOURS}
Như vy, tp thuc tính {SSN, PNUMBER} là khoá ca quan h.
6.2.5 Khoá ca quan h
Cho quan h r(R), tp K
R được gi là khóa ca quan h r nếu: K+=R và nếu
bt mt phn t khi K thì bao đóng ca nó s khác R.
Như thế tp K
R là khoá ca quan h nếu K+=R và ( K \A )+
R ,
A
R.
Ví d: ChoR = { A, B, C, D, E, G } và tp ph thuc hàm:
F= { AB C , D EG , BE C , BC D , CG BD, ACD B, CE AG}
Ta s thy các tp thuc tính:
K1 = { A, B } , K2 = {B,E} , K3={C,G} , K4={C,E} , K5 = {C,D}, K6={B,C}
đều là khóa ca quan h.
Như vy, mt quan h có th có nhiu khóa.
Thut toán tìm khoá:
Ý tưởng: Bt đầu t tp U vì Closure(U+,F) = U. Sau đó ta bt dn các phn
t ca U để nhn được tp bé nht mà bao đóng ca nó vn bng U.
Thut toán:
Input: Lược đồ quan h r(U), tp ph thuc hàm F.
Output: Khoá K
Bước 1: Gán K = U
Buc 2: Lp li các bước sau:
Loi phn t A khi K mà Closure( K -A,F ) =U
Nhn xét:
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
59
- Thut toán trên ch tìm được mt khóa. Nếu cn tìm nhiu khóa, ta
thay đổi trt t loi b các phn t ca K
.
-
Chúng ta có th ci thin tc độ thc hin thut toán trên bng cách:
Trong bước 1 ta ch gán K=Left (là tp các phn t có bên tay trái
ca các ph thuc hàm)
Ví d:
Cho lược đồ quan h R = { A,B,C,D,E,G,H,I} và tp ph thuc hàm:
F= { AC B, BI ACD, ABC D , H I , ACE BCG , CG AE }
Tìm khoá K?
Ta có Left={A,B,C,H,E,G}
Bước 1: K=Left={A,B,C,H,E,G}
Bước 2:
Tp thuc tính A B C D E G H I Ghi chú
ABCHEG x x x x x x x x
BCHEG x x x x x x x x Loi A
CHEG x x x x x x x x Loi B
CHG x x x x x x x x Loi E
Như vy, {C,H,G} là mt khoá ca R.
Nếu mun tìm tt c các khoá ca R, ta cn thay đổi trt t loi b phn t ca
khoá K.
6.2.6 Tp ph thuc hàm tương đương
Hai tp ph thuc hàm F và G là tương đương nếu:
- Tt c các ph thuc hàm trong F có th được suy ra t G, và
- Tt c các ph thuc hàm trong G có th suy ra t F.
Vì thế, F và G là tương đương nếu F
+
= G
+
Nếu F và G là tương đương thì ta nói F ph G hay G ph F.
Vì thế, thut toán sau đây s kim tra s tương đương ca hai tp ph thuc
hàm:
-
F ph E: XY E, tính X
+
t F, sau đó kim tra xem Y X
+
- E ph F: XY F, tính X
+
t E, sau đó kim tra xem YX
+
6.2.7 Tp ph thuc hàm ti thiu
Tp ph thuc hàm là ti thiu nếu nó tho mãn các điu kin sau:
1. Ch có mt thuc tính nm phía bên tay trái ca tt c các ph thuc
hàm trong F.
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
60
2. Không th b đi bt k mt ph thuc hàm nào trong F mà vn có
được mt tp ph thuc hàm tương đương vi F (tc là, không có ph
thuc hàm dư tha).
3. Không th thay thế bt k ph thuc hàm XA nào trong F bng ph
thuc hàm YA, vi YX mà vn có được mt tp ph thuc hàm
tương đương vi F (tc là, không có thuc tính dư tha trong ph
thuc hàm)
Nhn xét:
- Tt c các tp ph thuc hàm đều có ph thuc hàm ti thiu tương
đương vi nó.
- Có th có nhiu ph thuc hàm ti thiu
Thut toán: Tìm tp ph thuc hàm ti thiu G ca F
1. Đặt G:F.
2. Thay thế tt c các ph thuc hàm X{A
1
,A
2
,…,A
n
} trong G bng n
ph thuc hàm: X A
1
, X A
2
,…, X A
n
.
3. Vi mi ph thuc hàm X A trong G, vi mi thuc tính B trong X
nếu ((G{X A}) {( X {B}) A} ) là tương đương vi G, thì thay thế
X A bng (X {B}) A trong G. (Loi b thuc tính dư tha trong ph
thuc hàm)
4. Vi mi ph thuc hàm X A trong G, nếu (G{X A}) tương
đương vi G, thì loi b ph thuc hàm X A ra khi G.(Loi b ph thuc
hàm dư tha)
6.3 Các dng chun ca quan h
6.3.1 Định nghĩa các dng chun
6.3.1.1 Dng chun 1(First Normal Form)
a. Định nghĩa
Mt quan h dng chun 1 nếu các giá tr ca tt c thuc tính trong quan h
nguyên t (tc là ch có 1 giá tr ti mt thi đim).
b. Ví d:
- Quan h sau đây không phi dng chun 1:
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
61
Hình 6.3. D liu ca quan h DEPARTMENT vi phm 1NF
- Chuyn quan h trên thành dng chun 1 (bng cách xác định tp
thuc tính {DNumber, DLocation} là khoá chính), ta có:
Hình 6.4. Dư tha d liu trong quan h dng chun 1
c. Nhn xét:
- Quan h dng chun 1 có tn ti s dư tha d liu, trong quan h
DEPARTMENT, nếu như mt phòng có nhiu địa đim khác nhau thì d liu
ca 3 thuc tính (DName, DNumber, DMgrSsn) b lp li nhiu ln.
- Chúng ta có th tách quan h DEPARTMENT thành 2 quan h:
Hình 6.5. Quan h DEPARTMENT được tách thành 2 quan h
Mô t d liu ca 2 quan h này:
DEPARTMENT:
DName DNumber
DMgrSsn
Research 5 333445555
Administration 4 987654321
Headquarters 1 888665555
Vi phm dng chun 1
Dư
tha
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
62
DEPT_LOCATIONS:
DNumber
DLocation
5 Bellaire
5 Sugarland
5 Houston
4 Stafford
1 Houston
Hình 6.6. Minh ha d liu ca DEPARTMENT và DEPT_LOCATIONS
6.3.1.2 Dng chun 2(Second Normal Form_2NF)
a. Định nghĩa:
Mt quan h dng chun 2 nếu:
- Quan h đó dng chun 1
- Tt c các thuc tính không phi là khóa ph thuc đầy đủ vào
khóa.
- Ph thuc đầy đủ: Ph thuc hàm Y Z là ph thuc hàm đầy đủ
nếu: AY, ( Y{A}) Z
b. Sơ đồ mô t:
R (A1, A2, A3, A4, A5, A6)
c. Ví d:
Ví d 1: Quan h EMP_PROJ không phi dng chun 2
vì tn ti 2 ph
thuc hàm FD2, FD3 là ph thuc hàm b phn (trái vi ph thuc hàm
đầy đủ)
Hình 6.7. Lược đồ quan h EMP_PROJ và các ph thuc hàm
Ví d 2: Quan h sau đây dng chun 2:
Vi phm chun 2
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
63
Hình 6.8. Quan h EMP_DEPT dng chun 2
Hình 6.9. Minh ho d liu ca quan h EMP_DEPT
Ví d 3: Quan h sau đây dng 2NF:
THESIS
(StudentNo, Subject, Teacher)
StudentNo Subject Teacher
SV01 1 Nguyn Văn Hiu
SV02 2 Ngô Lan Phương
SV03 1 Nguyn Văn Hiu
SV04 1 Nguyn Văn Hiu
Hình 6.10. Minh ho d liu ca quan h THESIS
d. Nhn xét:
- Quan h dng chun 2 có s dư tha thông tin.
DNumber không phi là thuôc tính
khoá Quan h không vi phm 2NF
Dư th
ad liu
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
64
- Dng chun 2 có th b vi phm khi quan h có khóa gm hơn mt
thuc tính.
6.3.1.3 Dng chun 3 (Third Normal Form)
a. Định nghĩa
Mt quan h dng chun 3 nếu:
- Quan h dng chun 2
- Và không có cha các ph thuc hàm ph thuc bc cu vào
khoá.
- Ph thuc hàm ph thuc bc cu: Ph thuc hàm YZ là ph
thuc hàm bc cu nếu tn ti hai ph thuc hàm:YX và X Z.
b. Biu din bng sơ đồ
R (A1, A2, A3, A4, A5, A6)
c. Ví d: Quan h EMP_DEPT không phi dng chun 3 vì còn tn ti ph
thuc hàm DNumberDName, DMgrSsn là ph thuc hàm ph thuc bc cu
vào khoá.
Hình 6.11. Quan h EMP_DEPT không phi dng chun 3
Tách quan h trên thành 2 quan h: EMPLOYEE và DEPARTMENT. 2 quan h
sau đều dng chun 3:
Hình 6.12. Tách quan h EMP_DEPT thành 2 quan h mi
Ph thuc hàm bc cu
Ph thuc hàm b phn
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
65
Hình 6.13. Mô t d liu ca quan h EMPLOYEE và DEPARTMET
d. Nhn xét:
- Trong mt cơ s d liu tt, các quan h nên được chuyn v dng chun 3.
-
Tuy nhiên, d liu vn có kh năng dư tha khi quan h có hai tp khóa d
tuyn gi ln nhau, hoc quan h có thuc tính không khóa xác định mt
thuc tính khóa .
6.3.1.4 Dng chun Boyce _Codd(Boyce-Codd Normal Form)
a. Định nghĩa
Quan h R dng chun BCNF khi tt c các ph thuc hàm X A trong R
đều phi có X là khoá ca R.
b. Ví d: Quan h sau dng 3NF nhưng không phi BCNF.
A, B: thuc tính khoá
C: không phi là thuc tính khoá
FD1
FD2
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
66
Hình 6.14. Minh ho d liu ca quan h TEACH vi phm chun Boyce -Codd
Để nhn được quan h BCNF, ta có th tách quan h trên:
Cách 1: R1(Student, Instructor)
và R2(Student, Course)
Cách 2: R1(Couse, Instructor
} và R2(Course, Student)
Cách 3: R1(Instructor
, Course} và R2(Instructor, Student)
Lưu ý: Vic tách quan h như trên s làm mt đi ph thuc hàm FD1.
6.3.2 Phép phân rã các lược đồ quan h
6.3.2.1 Định nghĩa
Phép phân rã các lược đồ quan h R={A1, A2, . . . , An}là vic thay thế lược đồ
quan h R thành các lược đồ con {R1, . . . , Rk}, trong đó RiR và R=R1 R2…Rk
Víd: Cho quan h R vi các ph thuc hàm như sau:
R(MaSV
, MaMH, TenMH, ĐVHT, TenSV, Lop)
Ta có th phân rã thành 3 lược đồ R1(MaSV
, TenSV, Lop) và
R2(MaMH
,TenMH, ĐVHT) và R3(MaSV, MaMH).
6.3.2.2 Phép phân rã không mt mát thông tin
Cho R là mt lược đồ quan h, phép rã ρ=(R1,R2, . . .,Rn) và D là tp các ph
thuc d liu. Phép phân rã ρ không mt mát thông tin nếu khi thc hin phép toán kết
ni t nhiên các quan h thành phn R1, R2,…,Rn ta vn nhn được kết qu ca quan
h ban đầu.
Ví d v mt phép phân rã có mt mát thông tin:
Cho quan h:
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
67
MaSV MaMH Điem
1 A 3
2 A 5
3 A 6
4 B 6
5 C 9
Nếu ta phân rã quan h trên thành 2 quan h: R1(MaSV, MaMH) và
R2(MaMH, Điem) như sau:
R1: R2:
MaSV MaMH
1 A
2 A
3 A
4 B
5 C
Thc hin phép kết ni t nhiên 2 quan h R1 và R2:
R1*R2=
MaSV MaMH Điem
1 A 3
1 A 5
1 A 6
2 A 3
2 A 5
2 A 6
3 A 3
3 A 5
3 A 6
4 B 6
5 C 9
Như vy, khi ni t nhiên 2 bng, ta nhn được quan h không ging quan h
ban đầu Phép phân rã trên là mt mát thông tin.
Vn đề đặt ra đối vi người thiết kế là phi tìm ra nhng phép phân rã không
làm mt mát thông tin (chi tiết s được trình bày phn sau). Bây gi chúng ta s tìm
hiu mt thut toán để kim tra mt phép phân rã có mt mát thông tin hay không.
6.3.2.3 Thut toán kim tra phép phân rã không mt mát thông tin
Input:
- Lược đồ quan h R={A1, A2, . . . , An}
- Tp các ph thuc hàm F
- Phép tách ρ(R1, R2, . . . , Rk)
MaMH Điem
A 3
A 5
A 6
B 6
C9
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
68
Output: Kết lun phép tách ρ không mt mát thông tin.
Các bước ca thut toán:
Bước 1:
- Thiết lp mt bng vi n ct (tương ng vi n thuc tính) và k dòng
(tương ng vi k quan h), trong đó ct th j ng vi thuc tính Aj,
dòng th i ng vi lược đồ Ri.
- Ti dòng i và ct j, ta đin ký hiu aj nếu thuc tinh AjRi.Ngược li
ta đin ký hiu bij.
Bước 2:
- Xét các ph thuc hàm trong F và áp dng cho bng trên.
- Gi s ta có ph thuc hàm XYF, xét các dòng có giá tr bng
nhau trên thuc tính X thì làm bng
các giá tr ca chúng trên Y.
Ngược li làm bng chúng bng ký hiu bij. Tiếp tc áp dng các pth
cho bng (k c vic lp li các ph thuc hàm đã áp dng) cho ti
khi không còn áp dng được na.
Bước 3:
Xem xét bng kết qu. Nếu xut hin mt dòng cha toàn giá tr a1, a2 ,…,an
thì kết lun phép tách ρ không mt mát thông tin.
Vi d: Cho quan h:
Hình 6.15. Minh ha d liu ca quan h EMP_DEPT
Tách quan h trên thành 2 quan h:
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
69
Hình 6.16. Quan h EMPLOYEE được phân rã (tách) thành 2 quan h
Tp ph thuc hàm F:
Kim tra phép tách trên là không mt mát thông tin:
Bước 1:
EName SSN BDate Address DNumber DName DMgrSsn
EMPLOYEE a1 a2 a3 a4 a5 b16 b17
DEPARTMENT b21 b22 b23 b24 a5 a6 a7
Bước 2: Xét ph thuc hàm DNumber DName, DMgrSsn. Ta nhn thy có
giá tr a5 dòng th 2, nên ta s làm bng giá tr a6, a7 cho dòng th 1.
Bước 3: Tn ti mt dòng cha giá tr a1, a2,..a7. Kết lun, phép phân rã trên
không mt mát thông tin.
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
70
EName SSN BDate Address DNumber DName DMgrSsn
EMPLOYEE a1 a2 a3 a4 a5 a6 a7
DEPARTMENT b21 b22 b23 b24 a5 a6 a7
Ghi chú: Sinh viên thc hin phép ni t nhiên 2 quan h EMPLOYEE và
DEPARTMENT trên để kim tra có bng quan h ban đầu EMP_DEPT
6.4 Chun hoá quan h
Chun hoá quan h là vic phân rã mt lược đồ quan h thành các lược đồ con
dng chun 3 hoc BCNF sao cho vn bo toàn ph thuc và không mt mát d liu.
6.4.1 Thut toán phân rã lược đồ quan h thành các lược đồ quan
h con BCNF
Input:
- Lược đồ quan h R
- Tp ph thuc hàm F
Output:
Phép phân rã ca R không mt thông tin và mi lược đồ quan h trong phép
tách đều dng BCNF đối vi phép chiếu ca F trên lược đồ đó.
Các bước ca thut toán:
- Ban đầu phép tách ρ ch bao gm R.
- Nếu S là mt lược đồ thuc ρ và S chưa dng BCNF thì chn ph
thuc hàm X A tha trong S, trong đó X không cha khóa ca S
và AX. {ph thuc hàm vi phm định nghĩa dng chun BCNF}.
Thay thế S trong ρ bi S1 và S2 như sau S1 = XA, S2 = S\A.
-
Quá trình trên tiếp tc cho đến khi tt c các lược đồ quan h đều
dng BCNF
Ví d:
Cho lược đồ quan h R(CTHRSG).
Trong đó:
- C: Course; T: Teacher; H: Hour; R: Room; S: Student; G:Group).
- Và tp các ph thuc hàm F:
o
C T: Mi khoá hc (course) có mt thy (teacher) duy nht.
o
HR C: Ti mt thi đim (Hour) ti phòng hc (room) ch
mt khoá hc duy nht.
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
71
o HT R: Ti mt thi đim và mt giáo viên ch mt phòng duy
nht
o
CSG: Mt sinh viên hc mt course thì ch mt lp duy nht.
o
HS R: Mt sinh viên, mt thi đim nht định ch trong
mt phòng duy nht.
Da vào thut toán tìm khoáKhóa ca R là HS.
Yêu cu: Tách lược đồ R thành các lược đồ con dng BCNF.
Hình 6.17. Biu din quá trình tách quan h R thành các quan h BCNF
Như vy, quan h R được tách thành 4 quan h R1, R21, R221, R222 đều
BCNF.
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
72
6.4.2 Thut toán phân rã mt lược đồ quan h thành các lược đồ
con 3NF.
Input:
- Lược đồ quan h R
- Tp các ph thuc hàm F, không làm mt tính tng quát gi s đó là
ph ti thiu.
Output:
Phép tách không mt mát thông tin trên R thành các lược đồ con dng chun
3 sao cho vn bo toàn các ph thuc hàm.
Các bước ca thut toán:
- Bước 1: Loi b các thuc tính ca R nếu thuc tính đó không liên
quan đến ph thuc hàm nào ca F.(không có mt c hai vế ca
ph thuc hàm).
- Bước 2: Nếu có mt ph thuc hàm ca F liên quan đến tt c các
thuc tính ca R thì kết qu chính là R.
- Bước 3: Ngoài ra, phép tách ρ đưa ra các lược đồ gm các thuc tính
XA ng vi ph thuc hàm XA F. Nếu tn ti các ph thuc hàm
XA1, XA2, …,XAn thuc F thì thay thế XAi (1<=i<= n) bng
XA1A2. . .An. Quá trình tiếp tc.
- Chú ý: Ti mi bước kim tra lược đồ R, nếu mi thuc tính không
khóa không ph thuc bc cu vào khóa chính, thì R đã dng
3NF, ngược li cn áp dng bước 3 để tách tiếp.
Ví d:
Cho lược đồ quan h R(C,T,H,R,S,G) vi tp ph thuc hàm ti thiu F:
CT, HRC, HTR, CSG, HS R.
Yêu cu: Phân rã lược đồ quan h trên thành các quan h con đều dng 3NF.
- S dng thut toán tìm khoá Khoá chính ca R là HS.
- Thc hin thut toán:
o Bước 1: Không có thuc tính b loi b
o Bước 2: Không có ph thuc hàm nào liên quan ti tt c các
thuc tính
o Bước 3:
Ph thuc hàm C T vi phm 3NF (ph thuc bc cu
vào khoá), vì vy tách R thành R1(C
,T) và R2(C,H,R,S,G).
Ph thuc hàm CSG vi phm 3NF(ph thuc b phn
vào khoá), tách R2 thành R21(C,S
,G) và R22(C,H,R,S).
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
73
Ph thuc hàm HRC vi phm 3NF, tách R22 thành
R221(H,R,
C) và R222(H,S,R)
Như vy, quan h R được tách thành các quan h sau: R1, R21, R221, R222
Lưu ý:
- Kết qu ca phép tách có th khác nhau ph thuc vào th t áp dng
các ph thuc hàm khi thc hin thut toán.
- Sinh viên t kim tra xem vic tách quan h như trên có mt mát
thông tin không.
Bài tp:
1. Cho mt quan h R ={A, B, C, D, E, F, G, H, I, J} và tp ph thuc hàm
F = { A,B C
A D, E
B F
F G, H
D I, J
}
Yêu cu:
- Tìm {A}+ ={D, E, I ,J }
- Tìm khóa ca quan h R.
- Tách quan h R thành BCNF.
- Kim tra xem vic tách trên có mt mát thông tin không?
2. Lp li yêu cu bài 1 vi tp ph thuc hàm sau:
G= {A,B C
B, D E, F
A, D G, H
A I
HJ}
3. Cho mt quan h R ={CourseNo, SecNo, OfferingDept, Credit_Hours,
CourseLevel, InstructorSSN, Semester, Year, Days_Hours, RoomNo, NoOfStudents}
và tp ph thuc hàm:
F ={ CourseNo OfferingDept, Credit_Hours, CourseLevel;
CourseNo, SecNo, Semester, Year Days_Hours, RoomNo,
NoOfStudents, InstructorSSN;
RoomNo, Days_Hours, Semester, Year InstructorSSN, CourseNo, SecNo }
Yêu cu:
Chương 6. PH THUC HÀM VÀ CHUN HOÁ QUAN H
PHN I – CƠ S D LIU
74
- Tìm khóa ca quan h R.
- Quan h trên thuc dng chun my?
- Tách quan h v dng 3NF.
- Kim tra xem vic tách trên có mt mát thông tin không?
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
75
7 Chương 7. THIT K CƠ S D LIU VT LÝ (Tham
kho)
Thiết kế cơ s d liu vt lý là quá trình chuyn các đặc t d liu lôgic thành
các đặc t k thut để lưu tr d liu. Gm 2 ni dung sau:
La chn công ngh lưu tr (H điu hành, HQTCSDL, các công c truy nhp
d liu).
Chuyn các quan h ca mô hình logic thành các thiết kế vt lý.
Trong chương này s trình bày nhng phn sau:
Thiết kế các trường, bn ghi vt lý
Thiết kế file vt lý
Thiết kế cơ s d liu vt lý
7.1 Ni dung thiết kế file vt lý và cơ s d liu vt lý
7.1.1 Quá trình thiết kế
Trong quá trình thiết kế h thng vt lý, vn đề đặt ra hàng đầu là phi làm thế
nào ti thiu hóa không gian lưu tr và thi gian người dùng tương tác vi h thng.
Tuy nhiên, do dung lượng các thiết b nh tăng nhanh, nên người ta tp trung
nhiu vào vic x lý các file và d liu sao cho hiu qu hơn đối vi người s dng.
Các thông tin cn thiết để thiết kế file vt lý:
Các quan h đã được chun hóa, k c ước lượng v s lượng d liu cn lưu
tr
Định nghĩa chi tiết các thuc tính
Các mô t cho biết đâu và khi nào d liu được s dng (xem, thêm, sa,
xóa).
Các yêu cu và mong đợi v s dng d liu và tích hp d liu, bao gm các
yêu cu v thi gian đáp ng, các mc độ an toàn, ghi tm, phc hi….
Các mô t v công ngh được s dng để trin khai file và CSDL (thiết b lưu
tr, h điu hành, HQTCSDL…)
Mt s các quyết định cơ bn có ý nghĩa đối vi s tích hp và hiu năng ca
h thng ng dng cn thc hin:
Chn định dng lưu tr (kiu d liu) cho mi thuc tính sao cho ti thiu hóa
dư tha thông tin và ti đa s tích hp d liu.
Nhóm gp các thuc tính t mô hình d liu lô gic vào bn ghi vt lý.
Sp xếp các bn ghi có quan h vi nhau vào b nh ngoài sao cho tng bn ghi
hay nhóm các bn ghi lưu tr, cp nht và ly ra nhanh chóng (gi là t chc file)
La chn phương tin và cu trúc để lưu tr d liu đảm bo truy nhp hiu qu
hơn.
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
76
7.1.2 Sn phm thiết kế
Sn phm thiết kế là mt tp các đặc t mà các nhà lp trình và các nhà phân
tích d liu s s dng để xác định định dng và cu trúc các file trong b nh th cp
ca máy tính (b nh ngoài).
Khi s dng các công c CASE, kho d liu ca CASE hay t đin d liu d
án là nơi lưu tr tt c các đặc t nêu ra trên.
Sau đây là các phn t tiêu biu ca thiết kế được lưu tr trong kho d
liu ca CASE khi thiết kế file và cơ s d liu vt lý:
BNG MÔ T CÁC TRƯỜNG
Loi đặc tt ni dung
Tên trường (field name) Theo quy định v cách đặt tên trường ca HQTCSDL.
Kiu trường (data type) Chn kiu d liu mà HQTCSDL đó h tr
Kích c (size) Là kích thước ti đa dùng để lưu tr d liu ca trường đó
Mã hóa (Coding) Cách viết tt giá tr ca trường. Ví d, mi nước được
biu din bng hai ký t
Các quy tc toàn vn d
liu (data integrity rules)
Các đặc t v các hn chế đặt lên giá tr ca trường
Các kim soát bo trì
(maintenance controls)
Ch ra nhng giá tr nào được phép thay đổi
Công thc (Formular) t công thc tính toán giá tr vi nhng trường s cn
tính toán.
Toàn vn tham chiếu
(references integrity)
Đặc t giá tr ca trường có liên quan đến giá tr ca
trường khác
S hu (Ownership) Ai là người s hu trường đó (có quyn đối vi d liu)
BNG CÁC ĐẶC T TIÊU BIU ĐỐI VI THIT K BN GHI
Các trường (fields) Danh sách các trường trong mt bn ghi
D liu có cu trúc
(Structure Data)
Định nghĩa cu trúc d liu dùng để lư tr bn ghi (Th
t các trường, khóa chính, khóa ngoi…)
S lưu tr li (retention) Đặc t nhng bn ghi nào đó được gi li trong file bao
lâu (d liu v sinh viên không được lưu tr quá 10 năm
sau khi ra trường).
BNG CÁC ĐẶC T TIÊU BIU ĐỐI VI THIT K FILE
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
77
Tên file và định v Tên file theo quy định ca HQTCSDL và thiết b lưu tr
nó.
Các bn ghi (record) Nhng bn ghi nào được lưu tr trong file.
Khóa chính
(Primary Key)
Là mt hay mt s trường được dùng để định danh duy
nht cho bn ghi.
Ch s hóa (index) Ch ra các trường được dùng để lp ch s
Yếu t khóa bn ghi
(Record blocking factor)
S các bn ghi theo mi trang hoc khóa ca bn ghi (Ví
d: 10 bn ghi ca ITEM được lưu tr trong mt trang b
nh ngoài)
Lưu gi li và sao lưu
(Retention and Backup)
File được lưu tr trong bao lâu và các th tc sao lưu, thi
gian địn k cn sao lưu (để đảm bo an toàn khi có s c).
T chc file
(file organization)
Phương pháp truy nhp d liu và sp xếp các bn ghi
trong file
Kim soát (controls) Đặc t v kim soát và phương pháp mã hóa
BNG CÁC ĐẶC T TIÊU BIU ĐỐI VI THIT K CSDL
Các file Các file trong CSDL và nơi định v
Kiến trúc (Architecture) Loi hình cu trúc (bao gm c mô hình) CSDL được
dùng để t chc file.
Các mi quan h Cơ chế để liên kết file vi nhau.
7.2 Thiết kế các trường
Mt thuc tính trong mô hình d liu logic được biu din bng mt s trường
(fields).
Ví d: HoTenSV được biu din thành 2 trường HodemSV và TenSV
7.2.1 Yêu cu thiết kế trường
Mi HQTCSDL s dng nhng kiu d liu nht định để lưu tr d liu.
Trong yêu cu thiết kế trường, quan trng nht là phi chn kiu d liu phù
hp, ta thường quan tâm đến các mc tiêu sau khi chn kiu d liu:
Tiết kim không gian lưu tr
Biu din được mi giá tr có th thuc min giá tr
Ci thin tính toàn vn (t chc vic nhp d liu, kim tra d liu đầu vào)
H tr thao tác d liu (Ví d: thao tác vi d liu s nhanh hơn vi ký t)
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
78
7.2.2 Chn kiu và cách biu din d liu
7.2.2.1 Kiu d liu
Các kiu d liu mà HQTCSDL SQL h tr và ý nghĩa ca nó
DECIMAL(m,n) S thp phân có độ dài là m ch s và n s thp phân
INTEGER S nguyên ln (độ dài ti đa là 11 ch s)
SMALLINT S nguyên nh (độ dài ti đa là 6 ch s)
FLOAT(m,n) S thc có độ dài là m ch s và n s thp phân
CHAR Xâu ký tđộ dài là m ký t
DATE Kiu d liu thi gian và có rt nhiu cách biu din
LOGICAL Giá tr logic (đúng/sai)
7.2.2.2 Các trường tính toán
Khi giá tr ca mt trường là giá tr nhn được t các giá tr ca trường khác thì
trường đó gi là trường tính toán.
Có các loi tính toán sau:
+ Tính toán s hc: Lương= H s lương * 210.
+ Tính toán lôgic: Tin tr cp = 50.000 đ nếu cán b là n.
0 nếu cán b là nam.
+ Tính toán hn hp:
Tin đin= S đin * 500đ nếu s đin < 100.
S đin *500 + (S đin -100)* 750 nếu s đin >100.
7.2.2.3 Các k thut mã hóa d liu và nén d liu
Mt s phương pháp mã hóa dùng để biu din d liu trong các trường lưu tr:
Mã hóa phân cp: để mô t các d liu phân cp người ta dùng nhiu nhóm,
mi nhóm đại din cho cp và các nhóm được sp xếp ln lượt t trái sang phi.
Ví d: H thng phân loi sách trong thư vin:
Các cp
1 2 3
Mã s Tên tài khon
500 500 Khoa hc t nhiên
1 5001 Toán hc
2 5002 Vt lý
1 1 50011 Toán gii tích
1 2 50012 Toán ri rc
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
79
Mã liên tiếp: Mã này được to ra theo quy tc mt dãy liên tc, như 1, 2, 3 …
A, B, C…. Mã loi này dùng cho nhng d liu là danh sách như danh sách sinh viên.
đơn gin, d t động hóa, không nhm ln. Tuy nhiên nó không gi nh v đối
tượng được mã hóa và không cho phép chèn thêm vào gia.
Mã gi nh: Căn c vào đối tượng được mã hóa để cu to mã. Ví d: VND
(Đồng Vit Nam), TL001 (Thy li 001)…Loi này giúp ta nhn ra đối tượng được
mã hóa, có th ni rng hoc thu hp s lượng mã. Tuy nhiên khó tng hp và phân
tích.
Mã thành phn ng nghĩa: Theo phương pháp này, mã được chia làm nhiu
thành phn, mi phn mô t mt đặc trưng nht định ca đối tượng như phân loi, địa
danh… Nhng phn này có th s dng các nhóm ký t khác nhau. Mã loi này rt
thông dng và được s dng nhiu trong công nghip cũng như giao tiếp quc tế.
Ví d: Địa ch min trên internet có dng:
<Tên t chc>.<Loi t chc>.<Tên nước>
Ví d : hwru.edu.vn: Đại hc Thy Li, T chc giáo dc, Tên nước
Mã loi này cng knh, và cn chn các thành phn sao cho n định, nếu không
vic s dng mã s gp nhiu khó khăn.
7.2.2.4 Kim tra tính toàn vn ca d liu
Để đảm bo tính đúng đắn ca d liu người ta đặt các ràng buc trên các d
liu đó.
Thường dùng các phương pháp sau để kim tra tính toàn vn:
Giá tr ngm định (default value): Là giá tr được gán sn cho mt trường nào
đó khi bn ghi mi được nhp vào. Ví d: Trong hóa đơn bán hàng, trường ngày bán
được mc định là ngày hin ti.
Kim tra khuôn dng (picture control): Là mu định dng bao gm độ rng, các
giá tr có th trong tng v tr. Ví d: TLA006, $999,999.99.
Kim tra gii hn (range control): Các trường có th đưa ra các gii hn đối vi
các giá tr ca nó. Ví d: Đim mn hc được gii hn là các sđược gii hn t
0..10.
Tính toàn vn tham chiếu (reference integrity): là giá tr ca thuc tính đã cho
có th b hn chế bi giá tr ca nhng thuc tính khác. Ví d: Trong mi quan h
1_N, nếu giá tr ca bng bên 1 chưa có thì s không được có bên N.
Kim tra giá tr rng (Null value control): Nếu đặt mt thuc tính nào đó là
khác rng thì bt buc ta phi thêm giá tr cho trường đó.
Qun lý d liu mt: Trong khi vn hành, nếu vì mt lý do nào đó mà d liu có
th b mt. Khi thiết kế file vt lý, các nhà thiết kế phi ch ra cách thc mà h thng
qun lý d liu b mt. Balad và Hofer đã đưa ra mt s phương pháp sau đây dùng để
qun lý d liu ca 1 trường b mt:
Cho quy trình để ước lượng giá tr b mt.
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
80
Theo dõi d liu b mt để báo cáo và s dng mt phn t h thng giúp con
người mau chóng thay thế giá tr b mt này.
Thc hin mt s kim tra để có th b qua d liu b mt hay phi phc hi nó
nếu nó thc s nh hưởng đến kết qu ca h thng.
7.3 Thiết kế các bn ghi vt lý
Mt bn ghi vt lý là mt nhóm các trường được lưu tr các v trí lin k nhau
được gi ra cùng nhau như mt đơn v thng nht.
Thiết kế bn ghi vt lý là chn mt nhóm các trường ca nó s lưu tr nhng
v trí lin k nhau nhm 2 mc tiêu: s dng hiu qu không gian lưu tr và tăng tc
độ truy nhp. H điu hành đọc hay ghi d liu vào b nh th cp theo mt đơn v
gi là trang. Mt trang này có dung lượng c th ph thuc vào h điu hành và máy
tính c th.
Vn đề đặt ra đây là phi thiết kế các bn ghi thế nào để tn dng được dung
lượng cha ca trang. Nếu dung lượng ca trang tn dng được càng nhiu thì s ln
đọc càng ít và tc độ truy cp càng nhanh.
Để làm được điu này người ta thường phi chun hóa mt s quan h nhn
được.
7.3.1 Phi chun
Vic phi chun hóa các quan h đã chun hóa trong nhiu trường hp là cn
thiết để tn dng dung lượng trang ca máy.
BENHNHAN(MaBN, TenBN, Diachi_BN, Ngay_nhap, Giuong_phong, Khoa,
Tinh_trang, Ngayra, ThanhToan)
Ta có th phân chia nó thành 2 quan h mi đểđộ dài gn vi dung lượng
trang:
BENHNH1(MaBN, TenBN, Diachi_BN, Khoa)
BENHNH2(MaBN, Ngay_nhap, Giuong_phong, Tinh_trang, Ngayra,
ThanhToan)
Có mt s dng phi chun hóa, nhưng không có mt quy tc cht ch nào.
Rodger đã tho lun đến mt s trường hp chung có th xét phi chun:
Hai thc th có quan h mt – mt.
Ví d: Có 2 quan h có mi liên kết 1_1 như sau:
SINHVIEN(MaSV, TenSV, MaThe
)
THEDOC(MaThe, DiaChi, NgayCap, MaSV
)
Phi chun hóa ta có quan h sau:
SINHVIEN(MaSV, TenSV, MaThe, DiaChi, NgayCap)
Và trong trường hp này MaThe, DiaChi, NgayCap có th b trng đối vi
nhng SV không có th.
Hai thc th có mi quan h M_N trong đó liên kết có thuc tính riêng.
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
81
Ví d: Có quan h như sau:
Sau khi chun hóa, ta nhn được 3 quan h sau:
SINHVIÊN(Ma_SV, Ten_SV, DiaChi)
SÁCH(Ma_Sach, Ten_Sach)
MƯỢN(Ma_SV, Ma_Sach, Ngay_muon)
Phi chun hóa ta được:
SINHVIÊN(Ma_SV, Ten_SV, DiaChi)
MƯỢN(Ma_SV, Ma_Sach, TenSach, NgayMuon)
D liu tham chiếu: Trong quan h 1_N nếu bng bên 1 không tham gia vào
mt quan h nào khác thì ta có th hp nht 2 thc th này thành 1.
Ví d:
KHO (Ma_Kho, Ten_Kho, Loai_Kho)
HANG(Ma_Hang, Ten_Hang)
Phi chun hóa ta được:
HANG(Ma_Hang, Ten_Hang, Ma_Kho, Ten_Kho, Loai_Kho)
7.3.2 Qun lý trường có độ dài c định
Vic thiết kế bn ghi s rt d dàng nếu trường có độ dài c định (vì tính ngay
được độ dài bn ghi).
Trong trường hp này vic xác định v trí ca mt trường ch bng phép toán:
V trí con tr hin thi + (độ dài bn ghi * s bn ghi)
7.3.3 Qun lý trường có độ dài biến đổi
Mt trường có độ dài thay đổi như trường Memo thì định v trí ca mt trường
hay mt bn ghi c th không đơn gin.
Mt cách chung để qun lý trường có độ dài thay đổi là đưa các bn ghi có độ
dài c định vào mt bn ghi vt lý có độ dài c định và đưa nhng bn ghi vt lý có độ
dài thay đổi vào mt bn ghi vt lý có độ dài thay đổi. Đó chính là k thut thiết kế
SINH VIÊN SÁCH
Mượn
Ma_SV
Ten_SV DiaChi
Ma_Sach
Ten_Sach
N
gaymuon
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
82
bn ghi vt lý t động được s dng trong hu hết các h qun tr CSDL cho máy tính
nh.
7.4 Thiết kế file vt lý
File vt lý là mt phn nh ca b nh th cp (đĩa cng, băng t…) lưu các
bn ghi vt lý mt cách độc lp. Vic lưu tr các bn ghi vt lý v trí nào đối vi
người dùng không quan trng nhưng li được các nhà thiết kế đặc bit quan tâm.
7.4.1 Các loi file
Mt h thng thông tin có th cn đến 6 loi file sau:
File d liu (Data file- master file): là file cha d liu liên quan vi mô hình
d liu vt lý và lôgic. File này luôn tn ti, nhưng ni dung thay đổi.
File ly t bng (look up table file): La danh sách các d liu tham chiếu ly t
mt hay mt s file khác theo mt yêu cu nào đó.
File giao dch (Transaction file): là file d liu tm thi phc v các hot động
hàng ngày ca mt t chc. File này thường được thiết kế để phc v các yêu cu x
lý nhanh.
File làm vic (Work file): Là file tm thi dùng để lưu kết qu trung gian, file
này s t động xóa đi mi khi không cn thiết.
File bo v (Protection file): là file được thiết kế để khc phc nhng sai sót
trong quá trình h thng hot động. Các file này cho hình nh ca file d liu trước và
sau nhng hot động nht định (cp nht, sa đổi, x lý…) ca h thng.
File lch s (History file): File này ghi li quá trình hot động ca h thng,
cũng có th là các d liu cũ hin không cn s dng.
Vic t chc các loi file khác nhau không ch liên quan đến vic t chc lưu
tr và khai thác d liu, mà còn liên quan đến các hot động x lý d liu trong quá
trình hot động ca h thng. V nguyên tc, vic s dng càng ít file càng tt. Tuy
nhiên, vic đưa vào các file là cn thiết cho vic đảm bo an toàn d liu (file bo v,
file lch s), tăng tc độ truy cp hay x lý (file giao dch, file ly t bng, file làm
vic) ….
7.4.2 Các phương pháp truy cp
Mi h điu hành tr giúp mt s k thut khác nhau để tìm kiếm và ly thông
tin ra gi là các phương pháp truy cp.
V cơ bn, có 2 loi phương pháp truy cp:
Phương pháp truy cp trc tiếp, s dng tính toán để xác định địa ch chính xác
ca mt bn ghi và truy nhp trc tiếp đến bn ghi đó.
Phương pháp gián tiếp, h tr vic tìm kiếm bn ghi th n xut phát t mt v
trí hin thi ca con tr hay đim bt đầu ca 1 file.
Mc dù có tn ti 2 phương pháp như vy, nhưng ít khi chúng ta s dng trc
tiếp mà thường thông qua các công c có sn mà phn mm h thng tr giúp.
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
83
7.4.3 T chc file
Cách t chc file là k thut sp xếp các bn ghi vt lý ca mt file trên mt
thiết b nh th cp. T chc mt file c th cn tính toán đến các yếu t sau:
Ly d liu nhanh.
Thông lượng các giao dch x lý ln
S dng hiu qu không gian nh.
Tránh được sai sót khi mt d liu
Ti ưu hóa nhu cu t chc file.
Đáp ng được nhu cu khi tăng d liu
Trước khi nghiên cu thiết kế t chc các CSDL cn xem xét sơ qua cách t
chc ca d liu trong b nh ngoài.
Mô hình t chc b nh ngoài.
B nh ngoài (hay còn gi là b nh th cp) là các thiết b lưu tr như đĩa t,
băng t
Đĩa t được phân thành các khi vt lý (t chc đống) có kích c như nhau:
khong 512 bytes đến 4K (4*1024=4096 bytes) và được đánh địa ch khi. Địa ch này
gi là địa ch tuyt đối trên đĩa.
Mi tp d liu trên đĩa t chiếm 1 hoc nhiu khi, mi khi cha 1 hoc
nhiu bn ghi. Vic thao tác vi tp thông qua tên tp thc cht là thông qua địa ch
tuyt đối ca các khi.
Mi bn ghi đều có địa ch và thường được xem là địa ch tuyt đối ca byte
đầu tiên ca bn ghi hoc là địa ch ca khi cha bn ghi đó.
Các phép toán đặc trưng trên tp d liu là:
Thêm mt bn ghi.
Xóa mt bn ghi
Sa mt bn ghi
Tìm mt bn ghi theo điu kin
7.4.3.1 T chc file tun t (Sequential file )
Trong t chc file tun t, các bn ghi được sp xếp tun t.
Gi s: Hin ti tp cơ 8 bn ghi. 1 khi cha 3 bn ghi. Con tr tp tr đến bn
ghi đầu tiên.
Bg1 Bg2 Bg3 Bg4 Bg5 Bg6 Bg7 Bg8 Nil
Thêm bn ghi: ln theo con tr đến kim tra khi cui cùng (khi 3) xem có đủ
b nh không. Nếu không đủ thì phi cp thêm khi mi.
Xóa bn ghi (có giá tr khóa =k):
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
84
- Tìm đến bn ghi đó
- Xóa :
- Xóa logic: ch đánh du xóa
- Xóa vt lý: Xóa hn bn ghi đó
Tìm kiếm bn ghi (có giá tr khóa =k): Tìm ln lượt t trên xung dưới cho
đến khi gp khóa k.
Sa đổi giá tr thuc tính:
- Tìm đến thuc tính cn sa
- Ghi đè giá tr mi lên giá tr cũ
7.4.3.2 T chc file băm (Hashed File)
- Khái nim hàm băm: Mi bn ghi đều có 1 khóa là giá tr s (gi s là k)
- Hàm băm H(k)=b. Trong đó, b là s cm (hàm băm s tác động lên giá tr
khóa và tr li 1 s nguyên là s cm)
Như vy, tư tưởng ca hàm băm là phân chia tp hp các bn ghi ca tp d
liu thành các cm (Buckets). Mi cm bao gm mt hoc nhiu khi, mi khi cha
mt s lượng c định các bn ghi.
Mi cm ng vi mt địa ch băm được đánh s t 0..b-1. mi đầu ca khi
đều cha con tr tr đến khi tiếp theo trong cm, khi cui cùng trong cm cha con
tr rng.
Có mt bng ch dn cm (bucket directory): cha k con tr, mi con tr cha
địa ch khi đầu tiên ca tng cm.
Ví d:
0
1
.
.
.
b-1
.
.
.
.
.
.
.
B1
.
B3
.
B4
Null
B2
.
B5
Null
B6
Hình 7.1. T chc file băm
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
85
Thêm bn ghi mi (vi giá tr khóa k):
Tính H(k): Nếu H(k)=b thì b sung vào nhóm b (Ln theo con tr, thêm vào
như t chc tun t).
Tìm kiếm bn ghi (vi giá tr khóa k):
Tính H(k): Nếu H(k)=b thì b chính là nhóm cha bn ghi có khóa là k. Sau đó
tìm kiếm tun t trên nhóm đó.
Xóa bn ghi (vi giá tr khóa k):
- Tìm đến bn ghi có khóa k bng cách tính H(k): Nếu H(k)= b thì tìm bn
ghi đó trong nhóm b.
- Xóa logic hoc xóa vt lý.
- Nếu bn ghi là duy nht trong khi thì khi xóa bn ghi s đồng thi gii
phóng khi khi cm cha khi.
Sa đổi thuc tính:
- Sa đổi thuc tính không phi là khóa: Ghi đè giá tr mi lên giá
tr cũ.
- Sa đổi thuc tính khóa: Xóa bn ghi cũ, thêm bn ghi mi vào.
- Tính H(k’).
Nếu h(k) =h(k’) Ghi đè lên
Nếu h(k) <> h(k’) Xóa bn ghi cũ, thêm bn ghi mi
vào.
7.4.3.3 T chc file ch s
Mt kiu t chc tp d liu truy nhp khóa rt thường dùng trong CSDL là tp
ch s.
K1
.
Ki
.
Kn
.
K1
Bg1 Bg2 Bg3
Ki
Bgi Bg(i+1) Bg(i+2)
Kn
Bgn Bg(n+1) Bg(n+2)
Hình 7.2. T chc file ch s
Trong đó:
K1: Giá tr khóa ca bn ghi đầu tiên ca khi th nht.
Tp ch dn có 2 trường: khóa và con tr
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
86
Tp chính có n khi, trong khi cha các bn ghi.
Mt minh ha v tp ch s:
Hình 7.3. Minh ha tp ch s
Thêm bn ghi (có giá tr khóa k):
- Tìm v trí khi cn thêm (H(k)=b).
- Nếu khi đó còn ch trng thì thêm bn ghi vào theo đúng th t sp
xếp và chú ý thay đổi khóa trong bng ch dn khi nếu có s thay
đổi.
Xóa bn ghi (có giá tr khóa k):
- Quá trình ging như thêm mt bn ghi. Tuy nhiên, nếu khi xóa to ra
khi rng, khi đó có th xóa b toàn b khi.
- Tìm kiếm bn ghi (có giá tr khóa k): Có th tìm kiếm tun t hoc
nh phân.
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
87
Sa đổi thuc tính:
- Thuc tính khóa: Xóa cũ, thêm mi.
- Thuc tính không khóa: Ghi đè lên thuc tính cũ.
Bng so sánh các cách t chc file khác nhau
Cách t chc file
Yếu t
Tun t Ch s Băm
Không gian lưu tr Không lãng phí Cn nhiu không
gian hơn vì phi lưu
file ch s
Cn nhiu không
gian khi thêm và
xóa bn ghi (phi
tính H(k))
Truy nhp tun t
theo khóa chính
Rt nhanh Trung bình Không thc tế
Truy nhp ngu
nhiên theo khóa
chính
Không thc tế Trung bình Rt nhanh
Xóa bn ghi To ra khong
trng và có th yêu
cu t chc li
Nếu không gian
nh được b trí
động thì d dàng,
nhưng yêu cu phi
bo trì các ch s.
Rt d dàng
Thêm bn ghi Yêu cu sp xếp li
file sau khi thêm
Nt Nt
Sa bn ghi Yêu cu sp xếp li
file sau khi sa
D dàng, nhưng yêu
cu phi bo trì các
ch s
Rt d dàng
7.4.4 Ví d v thiết kế file
Xét Ví d sau: Có 2 chng t
ĐƠN ĐẶT HÀNG
S hóa đơn: xxxxxx
Người đặt hàng: (30 ký t……………………………..)
Địa ch: (50 ký t………………………………………..)
Ngày đặt: dd/mm/yyyy
S tt Tên
hàng
Mô t
hàng
Đơn v
tính
S
lượng
Xx Char(15) Char(50) Char(10) xxxxx
…. …. …. ….
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
88
PHIU GIAO HÀNG
S phiếu: xxxxxx
Tên khách hàng: (30 ký t……………………………..)
Địa ch: (50 ký t………………………………………..)
Nơi giao hàng: (50 ký t………………………………..)
Ngày giao: dd/mm/yyyy
S tt Tên hàng Đơn v tính Đơn giá S lượng Thành tin
Xx Char(15) Char(10) Number Number Number
…. …. …. …. ….
Sau quá trình thiết kế logic ta được các quan h sau:
KHACH(Ma_Khach, Ten_kh, DiaChi_kh)
HANG(Ma_hang, Ten_hang, Mota_hang, Donvi)
DONHANG(So_Don, Ma_Khach
, NgayDon)
PHIEUGIAO(So_Phieu, Ma_Khach
, Noi_Giao, Ngay_Giao)
DONGDON(So_Don, Ma_Hang, So_luongD)
DONGPHIEUGIAO(So_Phieu, MaHang, So_luonggi, DonGia)
Khi tiến hành thiết kế vt lý, ta được các file sau:
1. KHACH
Tên thuc tính Kiu d liu Kích c Khuôn dng
Ma_khach
Ký t 6 Ch hoa +s
Ten_kh Ký t 30 Ch đầu viết hoa
Diachi_kh Ký t 30 Ch đầu viết hoa
2. HANG
Tên thuc tính Kiu d liu Kích c Khuôn dng
Ma_hang
Ký t 6 Ch hoa+s
Ten_hang Ký t 15 Ch đầu viết hoa
Mota_hang Ký t 30 Ch đầu viết hoa
Don_vi Ký t 10 Ch thường
3. DONHANG
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
89
Tên thuc tính Kiu d liu Kích c Khuôn dng
So_don
Ký t 6 Ch hoa +s
Ma_khacht 15 Ch hoa +s
Ngay_don Ngày 8 Dd/mm/yy
4. DONGDON
Tên thuc tính Kiu d liu Kích c Khuôn dng
So_don
Ký t 6 Ch hoa +s
Ma_hang
Ký t 6 Ch hoa +s
So_luongd S 7 S nguyên
5. PHIEUGIAO
Tên thuc tính Kiu d liu Kích c Khuôn dng
So_phieu
Ký t 6 Ch hoa +s
Ma_khacht 6 Ch hoa +s
Ngay_giao Ngày 30 Dd/mm/yy
Noi_giao Ký t 30
Tong_tien S 9 S thc
6. DONGPHIEU
Tên thuc tính Kiu d liu Kích c Khuôn dng
So_phieu
Ký t 6 Ch hoa+ s
Ma_hang
Ký t 6 Ch hoa + s
Don_gia S 6 S thc
So_luonggi S 7 S thc
TÀI LIU THAM KHO
PHN I – CƠ S D LIU
90
TÀI LIU THAM KHO
1. Elmasri & Navathe: Fundamentals of Database Systems, International Edition.
2. Nguyn Tiến Vương: Cơ s d liu quan h
3. Date, C.J., and Darwen, H.: A Guide to the SQL Standard, 3rd ed., Addison-
Wesley.
| 1/90

Preview text:

MỤC LỤC PHẦN CƠ SỞ I DỮ LIỆU
♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦ ♦
◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊ ◊
o Các khái niệm cơ bản
o Kiến trúc hệ thống cơ sở dữ liệu
o Mô hình quan hệ thực thể o Mô hình quan hệ
o Chuẩn hoá quan hệ
o Thiết kế cơ sở dữ liệu vật lý GV. Phạm Thị Hoàng Nhung
Bộ môn Công nghệ phần mềm Đại học Thủy lợi
PHẦN I – CƠ SỞ DỮ LIỆU 1 MỤC LỤC MỤC LỤC 1
Chương 1. CÁC KHÁI NIỆM CƠ BẢN .............................................................5 1.1
Tại sao phải có một cơ sở dữ liệu ..................................................................5 1.2
Định nghĩa một cơ sở dữ liệu.........................................................................5 1.2.1 Khái
niệm..................................................................................................5 1.2.2
Ưu điểm.....................................................................................................6
1.2.3 Vấn đề cần giải quyết................................................................................6 1.3
Hệ quản trị cơ sở dữ liệu (DataBase Management System_DBMS) .........7 1.3.1 Ví
dụ..........................................................................................................7 1.3.2 Khái
niệm..................................................................................................7 1.4
Hệ thống cơ sở dữ liệu (Database System) ...................................................8 1.5
Các đối tượng sử dụng CSDL........................................................................8 1.5.1
Đối tượng trực tiếp....................................................................................8 1.5.2
Đối tượng gián tiếp ...................................................................................9 1.6
Lợi ích của việc sử dụng HQTCSDL ............................................................9
2 Chương 2. NHỮNG KHÁI NIỆM VÀ KIẾN TRÚC CỦA HỆ THỐNG CƠ
SỞ DỮ LIỆU ................................................................................................................11
2.1
Mô hình dữ liệu, lược đồ và trường hợp (Data Models, Schemas, Instances) 11 2.1.1 Phân
loại mô hình dữ liệu .......................................................................11
2.1.2 Lược đồ(Schema) , minh hoạ (instances), và trạng thái (State)..............14 2.2
Lược đồ kiến trúc của hệ quản trị cơ sở dữ liệu (DBMS Architecture) và sự
độc lập dữ liệu (Data Independence) .....................................................................15
2.2.1 Lược đồ kiến trúc 3 mức của HQTCSDL...............................................16 2.2.2
Độc lập dữ liệu ........................................................................................17 2.3
Ngôn ngữ của HQTCSDL............................................................................17 2.4
Các tính năng của HQTCSDL ....................................................................17 2.5
Phân loại HQTCSDL ...................................................................................17 3
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ (Entity –
Relationship Model) ....................................................................................................19 3.1
Sử dụng mô hình dữ liệu khái niệm mức cao để thiết kế cơ sở dữ liệu...19 3.2
Mục đích của mô hình khái niệm ER(Entity – Relationship Model) ......20
PHẦN I – CƠ SỞ DỮ LIỆU 2 MỤC LỤC 3.3
Ví dụ về một cơ sở dữ liệu ứng dụng ..........................................................20 3.4
Kiểu thực thể(Entity Type), Thuộc tính (Attributes), Khoá (Keys) ........22
3.4.1 Thực thể (Entities) và thuộc tính (Attributes).........................................22
3.4.2 Kiểu thực thể, Khoá và tập giá trị ...........................................................25 3.5
Liên kết, Kiểu liên kết và các Ràng buộc liên kết......................................25 3.5.1
Định nghĩa liên kết và kiểu liên kết ........................................................25
3.5.2 Bậc của kiểu liên kết ...............................................................................26 3.5.3 Ràng
buộc liên kết...................................................................................27 3.6
Kiểu thực thể yếu(Weak Entity) .................................................................29 3.7
Tổng quát hóa và chuyên biệt hóa ..............................................................29
3.7.1 Thực thể con và thực thể chính ...............................................................30 3.7.2 Các
thực thể con loại trừ .........................................................................30 3.8
Các ký hiệu và quy ước đặt tên trong mô hình ER ...................................31 3.8.1 Các ký
hiệu..............................................................................................31 3.8.2 Quy
tắc đặt tên ........................................................................................31 3.9
Xây dựng một mô hình ER..........................................................................32 3.9.1 Các
bước xây dựng sơ đồ ER..................................................................32 3.9.2
Mô hình ER cho cơ sở dữ liệu COMPANY ...........................................33 3.9.3 Bài
tập .....................................................................................................34 4
Chương 4. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ.......................................37 4.1
Khái niệm mô hình quan hệ ........................................................................37 4.2
Các thành phần cơ bản của mô hình ..........................................................37
4.2.1 Một số khái niệm của mô hình quan hệ ..................................................37 4.2.2 Quan
hệ: ..................................................................................................37 4.2.3
Các tính chất của một quan hệ ................................................................38 4.2.4 Các ràng
buộc toàn vẹn trên quan hệ ......................................................38 4.2.5
Các phép toán trên CSDL quan hệ..........................................................41 5
Chương 5. CHUYỂN TỪ MÔ HÌNH ER SANG MÔ HÌNH QUAN HỆ ......48 6
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ .....................55 6.1
Một số hướng dẫn khi thiết kế cơ sở dữ liệu quan hệ ...............................55 6.2
Phụ thuộc hàm(Functional Dependencies).................................................56 6.2.1
Định nghĩa phụ thuộc hàm ......................................................................56
PHẦN I – CƠ SỞ DỮ LIỆU 3 MỤC LỤC
6.2.2 Hệ tiên đề Armstrong..............................................................................57 6.2.3 Bao
đóng của tập phụ thuộc hàm............................................................57 6.2.4 Bao
đóng của tập thuộc tính X trên F .....................................................57 6.2.5 Khoá
của quan hệ....................................................................................58
6.2.6 Tập phụ thuộc hàm tương đương............................................................59
6.2.7 Tập phụ thuộc hàm tối thiểu ...................................................................59 6.3
Các dạng chuẩn của quan hệ.......................................................................60 6.3.1
Định nghĩa các dạng chuẩn .....................................................................60 6.3.2
Phép phân rã các lược đồ quan hệ...........................................................66 6.4
Chuẩn hoá quan hệ.......................................................................................70
6.4.1 Thuật toán phân rã lược đồ quan hệ thành các lược đồ quan hệ con ở BCNF 70
6.4.2 Thuật toán phân rã một lược đồ quan hệ thành các lược đồ con ở 3NF. 72 7
Chương 7. THIẾT KẾ CƠ SỞ DỮ LIỆU VẬT LÝ (Tham khảo) ..................75 7.1
Nội dung thiết kế file vật lý và cơ sở dữ liệu vật lý....................................75 7.1.1
Quá trình thiết kế.....................................................................................75
7.1.2 Sản phẩm thiết kế....................................................................................76 7.2
Thiết kế các trường ......................................................................................77 7.2.1 Yêu
cầu thiết kế trường...........................................................................77
7.2.2 Chọn kiểu và cách biểu diễn dữ liệu .......................................................78
7.3 Thiết kế các bản ghi vật lý ...........................................................................80 7.3.1 Phi
chuẩn.................................................................................................80
7.3.2 Quản lý trường có độ dài cố định............................................................81
7.3.3 Quản lý trường có độ dài biến đổi ..........................................................81
7.4 Thiết kế file vật lý .........................................................................................82 7.4.1 Các
loại file .............................................................................................82 7.4.2 Các
phương pháp truy cập ......................................................................82
7.4.3 Tổ chức file .............................................................................................83 7.4.4 Ví
dụ về thiết kế file................................................................................87
PHẦN I – CƠ SỞ DỮ LIỆU 4
Chương 1. CÁC KHÁI NIỆM CƠ BẢN
1 Chương 1. CÁC KHÁI NIỆM CƠ BẢN
Trong nhiều năm gần đây, thuật ngữ Cơ sở dữ liệu - Database đã trở nên quen
thuộc trong nhiều lĩnh vực. Các ứng dụng tin học vào quản lý ngày càng nhiều và đa
dạng, hầu hết các lĩnh vực kinh tế, xã hội… đều đã ứng dụng các thành tựu mới của tin
học vào phục vụ công tác chuyên môn của mình. Chính vì lẽ đó mà ngày càng nhiều
người quan tâm đến thiết kế, xây dựng và ứng dụng cơ sở dữ liệu (CSDL).
Trong chương này, chúng ta sẽ tìm hiểu thế nào là cơ sở dữ liệu và các khái
niệm liên quan đến nó. Trước hết, chúng ta sẽ tìm hiểu lý do tại sao cần phải quản lý dữ liệu bằng CSDL?
1.1 Tại sao phải có một cơ sở dữ liệu
Hệ thống các tệp tin cổ điển
Cho đến nay vẫn còn một số đơn vị kinh tế, hành chính sự nghiệp… sử dụng
mô hình hệ thống các tệp tin cổ điển: chúng được tổ chức 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ể. - Ưu điểm:
Việc xây dựng hệ thống các tệp tin riêng tại từng đơn vị quản lý ít tốn thời gian
bởi khối lượng thông tin cần quản lý và khai thác là nhỏ, không đòi hỏi đầu tư vật chất
và chất xám nhiều, do đó triển khai ứng dụng nhanh.
Thông tin được khai thác chỉ phục vụ mục đích hẹp nên khả năng đáp ứng nhanh chóng, kịp thời. - Nhược điểm:
Thông tin được tổ chức riêng rẽ ở nhiều nơi nên việc cập nhật dễ làm mất tính nhất quán dữ liệu.
Hệ thống thông tin được tổ chức thành các hệ thống file riêng lẻ nên thiếu sự
chia sẻ thông tin giữa các nơi.
Qua phân tích trên, chúng ta nhận thấy việc tổ chức dữ liệu theo hệ thống tệp
tin hoàn toàn không phù hợp với những hệ thống thông tin lớn. Việc xây dựng một hệ
thống thông tin đảm bảo được tính nhất quán dữ liệu, đáp ứng được nhu cầu khai thác
đồng thời của nhiều người là thực sự cần thiết.
1.2 Định nghĩa một cơ sở dữ liệu 1.2.1 Khái niệm
CSDL và công nghệ CSDL đã có những tác động to lớn trong việc phát triển sử
dụng máy tính. Có thể nói rằng CSDL ảnh hưởng đến tất cả các nơi có sử dụng máy tính:
Kinh doanh (thông tin về sản phẩm, khách hàng, … )
Giáo dục (thông tin về sinh viên, điểm, .. )
Thư viện (thông tin về tài liệu, tác giả, độc giả…)
Y tế (thông tin về bệnh nhân, thuốc….)…
PHẦN I – CƠ SỞ DỮ LIỆU 5
Chương 1. CÁC KHÁI NIỆM CƠ BẢN
Như vậy, cơ sở dữ liệu là gì?
CSDL là tập hợp các dữ liệu có cấu trúc và 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. Ví dụ:
Danh bạ điện thoại là một ví dụ về CSDL.
- Là các thông tin có ý nghĩa - Là
tập hợp các thông tin có cấu trúc.
- Các thông tin này có liên quan với nhau và có thể hệ thống được.
Trong khái niệm này, chúng ta cần nhấn mạnh, CSDL là tập hợp các thông tin
có tính chất hệ thống, không phải là các thông tin rời rạc, không có liên quan với nhau.
Các thông tin này phải có cấu trúc và tập hợp các thông tin này phải có khả năng đáp
ứng nhu cầu khai thác của nhiều người sử dụng một cách đồng thời. Đó cũng chính là đặc trưng của CSDL. 1.2.2 Ưu điểm
Từ khái niệm trên, ta thấy rõ ưu điểm nổi bật của CSDL là:
Giảm sự trùng lặp thông tin xuống mức thấp nhất và do đó đảm bảo được tính
nhất quán và toàn vẹn dữ liệu (Cấu trúc của cơ sở dữ liệu được định nghĩa một lần.
Phần định nghĩa cấu trúc này gọi là meta-data, và được Catalog của HQTCSDL lưu trữ).
Đảm bảo sự độc lập giữa dữ liệu và chương trình ứng dụng (Insulation between
programs and data): Cho phép thay đổi cấu trúc, dữ liệu trong cơ sở dữ liệu mà không
cần thay đổi chương trình ứng dụng.
Trừu tượng hoá dữ liệu (Data Abstraction): Mô hình dữ liệu được sử dụng để
làm ẩn lưu trữ vật lý chi tiết của dữ liệu, chỉ biểu diễn cho người sử dụng mức khái
niệm của cơ sở dữ liệu.
Nhiều khung nhìn (multi-view) cho các đối người dùng khác nhau: Đảm bảo dữ
liệu có thể được truy xuất theo nhiều cách khác nhau. Vì yêu cầu của mỗi đối tượng sử
dụng CSDL là khác nhau nên tạo ra nhiều khung nhìn vào dữ liệu là cần thiết.
Đa người dùng (multi-user): Khả năng chia sẻ thông tin cho nhiều người sử
dụng và nhiều ứng dụng khác nhau.
1.2.3 Vấn đề cần giải quyết
Để đạt được các ư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 tính chia sẻ của CSDL nên chủ quyền của CSDL dễ bị xâm phạm.
Tính bảo mật và quyền khai thác thông tin của người sử dụng: Do có nhiều
người được phép khai thác CSDL nên cần thiết phải có một cơ chế bảo mật và phân
quyền hạn khai thác CSDL.
Tranh chấp dữ liệu: Nhiều người được phép cùng truy cập vào CSDL với
những mục đích khác nhau: Xem, thêm, xóa hoặc sửa dữ liệu. Cần phải có cơ chế ưu
PHẦN I – CƠ SỞ DỮ LIỆU 6
Chương 1. CÁC KHÁI NIỆM CƠ BẢN
tiên truy cập dữ liệu hoặc giải quyết tình trạng xung đột trong quá trình khai thác cạnh
tranh. Cơ chế ưu tiên có thể được thực hiện bằng việc cấp quyền (hay mức độ) ưu tiên
cho từng người khai thác.
Đảm bảo dữ liệu khi có sự cố: Việc quản lý dữ liệu tập trung có thể làm tăng
nguy cơ mất mát hoặc sai lệnh thông tin khi có sự cố mất điện đột xuất hoặc đĩa lưu
trữ bị hỏng. Một số hệ điều hành mạng có cung cấp dịch vụ sao lưu ảnh đĩ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 bảo an toàn cho CSDL, nhất
thiết phải có một cơ chế khôi phục dữ liệu khi có sự cố xảy ra.
1.3 Hệ quản trị cơ sở dữ liệu (DataBase Management System_DBMS) 1.3.1 Ví dụ
Như chúng ta đã biết, kích thước và độ phức tạp của CSDL rất khác nhau. Ví dụ:
Danh bạ điện thoại của một quốc gia, một thành phố.. chứa tới hàng triệu số và
những thông tin cần thiết về khách hàng.
Trong trường đại học có tới hàng ngàn sinh viên. Nhà trường phải quản lý tất cả
những thông tin liên quan đến sinh viên như: tên, ngày sinh, quê quán, địa chỉ, kết quả học tập…
Xét một Ví dụ về CSDL quản lý tài liệu và độc giả trong thư viện quốc gia. Giả
sử rằng có 100 triệu cuốn sách, mỗi cuốn sách cần lưu 10 thông tin liên quan, mỗi
thông tin chứa tối đa 400 kí tự thì CSDL sẽ phải có tối thiểu 100 *106 * 400 *10 kí tự
(bytes). Như vậy, dung lượng bộ nhớ cần dùng là: 100 *106 * 400 *10= 400 GB.
Ta thấy, bộ nhớ cũng là vấn đề cần phải được giải quyết. Tuy nhiên, vấn đề
quan trọng hơn ở đây lại là cách thức tổ chức dữ liệu trong một cơ sở dữ liệu để phục
vụ cho việc truy cập, tìm kiếm, cập nhật,….nhanh chóng và an toàn hơn.
Việc tổ chức dữ liệu như thế nào được thực hiện thông qua Hệ quản trị cơ sở dữ liệu(HQTCSDL).
Vậy hệ quản trị cơ sở dữ liệu (HQTCSDL) là gì? 1.3.2 Khái niệm.
HQTCSDL là tập hợp các phần mềm cho phép định nghĩa các cấu trúc để lưu
trữ thông tin trên máy, nhập dữ liệu, thao tác trên các dữ liệu đảm bảo sự an toàn và bí mật của dữ liệu.
Định nghĩa cấu trúc: Định nghĩa cấu trúc CSDL bao gồm việc xác định kiểu
dữ liệu, cấu trúc và những ràng buộc cho dữ liệu được lưu trữ trong CSDL.
Nhập dữ liệu: Là việc lưu trữ dữ liệu vào các thiết bị lưu trữ trung gian được
điều khiển bằng HQTCSDL.
Thao tác dữ liệu: thao tác trên CSDL bao gồm những chức năng như truy xuất
cơ sở dữ liệu để tìm kiếm thông tin cần thiết, cập nhật cơ sở dữ liệu và tổng hợp những báo cáo từ dữ liệu.
PHẦN I – CƠ SỞ DỮ LIỆU 7
Chương 1. CÁC KHÁI NIỆM CƠ BẢN
1.4 Hệ thống cơ sở dữ liệu (Database System)
Là phần mềm HQTCSDL cùng với dữ liệu của bản thân cơ sở dữ liệu đó.
Hình 1.1. Môi trường hệ thống cơ sở dữ liệu đơn giản 1.5 Các
đối tượng sử dụng CSDL
Đối với các cơ sở dữ liệu nhỏ, mang tính cá nhân như lịch làm việc, danh bạ
điện thoại cá nhân… thì chỉ cần một người để tạo ra và thao tác trên nó. Tuy nhiên,
đối với các CSDL lớn như: quản lý tài chính của ngân hàng nhà nước, điều hành các
chuyến bay cho các sân bay quốc tế… cần phải có rất nhiều người tham gia thiết kế,
xây dựng, bảo trì CSDL và hàng trăm người sử dụng. Trong phần này, chúng ta tìm
hiểu xem ai là người thao tác với CSDL hàng ngày. Và trong phần sau, chúng ta xem
xét những người không trực tiếp tham gia một CSDL cụ thể, họ là người duy trì môi trường hệ thống CSDL.
1.5.1 Đối tượng trực tiếp
1.5.1.1 Quản trị cơ sở dữ liệu
Trong những tổ chức có nhiều người cùng sử dụng chung một nguồn dữ liệu thì
nhất thiết phải có một người đứng đầu quản lý, chịu trách nhiệm đối với nguồn dữ liệu
này. Đó chính là người quản trị cơ sở dữ liệu (Database Administrators _ DBA ).
DBA có nhiệm vụ tổ chức nội dung của cơ sở dữ liệu, tạo và phân quyền cho
người sử dụng, đưa ra yêu cầu về phần cứng và phần mềm… nếu cần thiết. DAB chịu
trách nhiệm bảo vệ an toàn, Backup thông tin…khi có sự cố.
1.5.1.2 Thiết kế cơ sở dữ liệu
Người thiết kế CSDL chịu trách nhiệm: - Xác
định những dữ liệu nào cần lưu trữ trong CSDL
- Lựa chọn những cấu trúc thích hợp để biểu diễn và lưu trữ những dữ liệu này.
PHẦN I – CƠ SỞ DỮ LIỆU 8
Chương 1. CÁC KHÁI NIỆM CƠ BẢN
- Phỏng vấn tất cả những người sử dụng CSDL sau này để hiểu được những
yêu cầu của họ đối với CSDL
- Tiến hành phân tích thiết kế hệ thống sau khi thống nhất được tất cả các
yêu cầu của người sử dụng
1.5.1.3 Người sử dụng cuối
Người sử dụng cuối là những người truy cập CSDL để: - Truy vấn - Cập nhật - Thống kê, báo cáo
1.5.1.4 Phân tích hệ thống và Lập trình ứng dụng
Phân tích hệ thống để định rõ những yêu cầu của người sử dụng cuối cùng,
thống nhất để đưa ra khung nhìn cho từng đối tượng người sử dụng, quản lý các giao tác (transactions)… Lập trình ứng dụng:
- Thực hiện các yêu cầu thông qua lập trình bằng những ngôn ngữ phù hợp
- Chạy thử chương trình (test)
- Chữa lỗi và gỡ rối chương trình (debug)
- Viết tài liệu, hướng dẫn sử dụng. - Bảo trì hệ thống
1.5.2 Đối tượng gián tiếp
Ngoài những đối tượng trực tiếp tham gia vào một CSDL cụ thể như đã nói ở
trên, còn có một đội ngũ những người phân tích, phát triển, và thực hiện tạo ra môi
trường hệ thống và phần mềm của hệ quản trị cơ sở dữ liệu. Những người này không
trực tiếp thao tác trên một hệ quản trị CSDL nào cụ thể. Họ là:
- Người phân tích và thực hiện tạo ra hệ thống của HQTCSDL
- Những nhà phát triển hệ công cụ (Tool developers)
- Người kiểm thử và bảo trì hệ thống
1.6 Lợi ích của việc sử dụng HQTCSDL
- Hạn chế dư thừa dữ liệu.
- Ngăn cản truy cập dữ liệu bất hợp pháp (bảo mật và phân quyền sử dụng). - Cung
cấp khả năng lưu trữ lâu dài cho các đối tượng và cấu trúc dữ liệu.
- Cho phép suy dẫn dữ liệu (từ dữ liệu này suy ra dữ liệu khác) sử dụng Rules. - Cung
cấp giao diện đa người dùng.
- Cho phép biểu diễn mối quan hệ phức tạp giữa các dữ liệu.
PHẦN I – CƠ SỞ DỮ LIỆU 9
Chương 1. CÁC KHÁI NIỆM CƠ BẢN
- Đảm bảo ràng buộc toàn vẹn dữ liệu (Enforcing Integrity Constraints). - Cung
cấp thủ tục sao lưu và phục hồi (backup và recovery)
PHẦN I – CƠ SỞ DỮ LIỆU 10
Chương 2. NHỮNG KHÁI NIỆM VÀ KIẾN TRÚC CỦA HỆ THỐNG CƠ SỞ DỮ LIỆU
2 Chương 2. NHỮNG KHÁI NIỆM VÀ KIẾN TRÚC CỦA
HỆ THỐNG CƠ SỞ DỮ LIỆU
2.1 Mô hình dữ liệu, lược đồ và trường hợp (Data Models,
Schemas, Instances)
Một trong những đặc điểm cơ bản của cơ sở dữ liệu là cung cấp một số mức độ
trừu tượng hoá dữ liệu bằng cách làm ẩn đi cách thức tổ chức dữ liệu- cái mà hầu hết
người dùng không cần biết đến.
Mô hình dữ liệu (Data Model): Là một tập những khái niệm dùng để biểu diễn
cấu trúc của cơ sở dữ liệu-cung cấp những điều kiện cần thiết để đạt được mức độ trừu
tượng dữ liệu. Cấu trúc dữ liệu bao gồm kiểu dữ liệu (data types) và mối quan hệ giữa
các dữ liệu (relationships) và những ràng buộc (constraints) mà cơ sở dữ liệu phải tuân theo.
Hầu hết mô hình dữ liệu đều có một tập hợp các thao tác cơ bản (basic
operations) để truy vấn và cập nhật dữ liệu.
- Thao tác chung (generic operations): Thêm (insert), Xoá (delete), Sửa
(modify), Truy cập (retrieve)
- Thao tác do người dùng định nghĩa (user-defined operations)
2.1.1 Phân loại mô hình dữ liệu
Có rất nhiều mô hình dữ liệu đã được đưa ra, chúng ta có thể phân loại chúng
theo những kiểu khái niệm mà họ đã dùng để biểu diễn cấu trúc cơ sở dữ liệu. Mô hình
dữ liệu được chia làm 3 loại sau:
a. Mô hình khái niệm (Conceptual (high-level, semantic) data models):
Cung cấp những khái niệm gần gũi với đa số người sử dụng, mô hình này chỉ ra
cái gì được đưa vào để quản lý. Mô hình này là phương tiện để những người phân tích
thiết kế giao tiếp với người sử dụng, nhằm thu thập thông tin, xác định đúng đắn và
đầy đủ yêu cầu của hệ thống.
Mô hình này sử dụng cấu trúc dữ liệu là: thực thể (entity), thuộc tính (attribute)
và mối liên kết (relationship)
b. Mô hình dữ liệu vật lý (Physical (low-level, internal) data models):
Cung cấp những khái niệm để biểu diễn chi tiết cách thức dữ liệu được lưu trữ
trong máy tính. Mô hình này chỉ ra định dạng bản ghi (record formats), thứ tự sắp xếp
các bản ghi (record ordering) và đường dẫn để truy cập dữ liệu (access paths).
c. Mô hình dữ liệu thể hiện (Implementation (record-oriented) data models):
Mô tả các dữ liệu bằng cách sử dụng những ký pháp tương ứng với mô hình dữ
liệu mà một hệ quản trị cơ sở dữ liệu sử dụng.
Các loại mô hình cơ sở dữ liệu thể hiện:
c1. Mô hình phân cấp
PHẦN I – CƠ SỞ DỮ LIỆU 11
Chương 2. NHỮNG KHÁI NIỆM VÀ KIẾN TRÚC CỦA HỆ THỐNG CƠ SỞ DỮ LIỆU
Mô hình CSDL phân cấp được biểu diễn dưới dạng cây và các đỉnh của cây là
các bản ghi. Các bản ghi liên kết với nhau theo mối quan hệ cha-con. - Một cha có nhiều con
- Một con chỉ có một cha Ví dụ: PHÒNG NHÂN VIÊN DỰ ÁN Ự KỸ NĂNG PHỤ VIỆ VI C TRANGTHIẾ TRANGTHI T BỊ C Ị
Hình 2.1. Minh họa mô hình cơ sở dữ liệu phân cấp Ưu điểm:
- Thể hiện dễ dàng quan hệ 1-N.
- Việc phân chia dữ liệu dễ thể hiện, đảm bảo an toàn dữ liệu - Tính
độc lập của chương trình và các dữ liệu được đảm bảo Nhược điểm: - Không
thể hiện được mối quan hệ M-N - Trong
một hệ thống phân cấp, dữ liệu được tổ chức như trên dẫ đến khó sửa đổi dữ liệu. c2. Mô hình mạng
Cấu trúc cơ bản trong mô hình mạng là những tập hợp và mỗi tập hợp có bản
ghi là bản ghi chủ và một số bản ghi thành viên. Mỗi thành viên có thể thuộc về nhiều tập hợp. Ví dụ: PHÒNG NHÂN VIÊN DỰ ÁN TRANGTHIẾT BỊ KỸ NĂNG PHỤ VIỆC
Hình 2.2. Minh họa mô hình cơ sở dữ liệu mạng
PHẦN I – CƠ SỞ DỮ LIỆU 12
Chương 2. NHỮNG KHÁI NIỆM VÀ KIẾN TRÚC CỦA HỆ THỐNG CƠ SỞ DỮ LIỆU Ưu điểm:
- Dễ thể hiện mối liên kết M-N
- Kiểu truy cập dữ liệu mềm dẻo hơn kiểu phân cấp Nhược điểm:
- Việc sửa đổi số liệu khó khăn.
- Với những lập trình viên, việc thiết kế CSDL khó. c3. Mô hình quan hệ
Trong mô hình quan hệ, các dữ liệu được biểu diễn ở dạng các bảng với các dòng và các cột.
Trong mô hình quan hệ không có một cấu trúc vật lý nào của dữ liệu mô tả sự
kết nối giữa các bảng. Thay vào đó, sự kết nối giữa các bảng được mô tả logic bằng
các giá trị được lưu trữ trong các dòng của bảng. Chẳng hạn trong hình dưới đây,
thuộc tính ProCode(Mã tỉnh) được lưu trong cả 2 bảng PROVINCE và bảng
STUDENT, giá trị chung này cho phép người dùng liên kết được 2 bảng. PROVINCE ProCode ProName 04 Hà Nội 08 Tp Hồ Chí Minh … … STUDENT StdNo StdName StdBird ProCode TD001 AA 9/16/1979 04 TD002 BB 6/19/1979 08 … … … ….
Hình 2.3. Minh họa mô hình cơ sở dữ liệu quan hệ
c4. Mô hình hướng đối tượng

Trong mô hình hướng đối tượng, các thuộc tính dữ liệu và các thao tác trên các
dữ liệu này được bao gói trong một cấu trúc gọi là đối tượng.
PHẦN I – CƠ SỞ DỮ LIỆU 13
Chương 2. NHỮNG KHÁI NIỆM VÀ KIẾN TRÚC CỦA HỆ THỐNG CƠ SỞ DỮ LIỆU
Đối tượng có thể chứa các dữ liệu phức hợp như văn bản, hình ảnh, tiếng nói và
hình ảnh động. Một đối tượng có thể yêu cầu hoặc xử lý dữ liệu từ một đối tượng khác
bằng việc gửi đi một thông báo đến đối tượng đó. Mô hình hướng đối tượng biểu diễn
một sơ đồ mới để lưu trữ và thao tác dữ liệu. Từ một đối tượng có thể sinh ra một đối tượng khác. PHONG NHANVIEN NHANVIEN TRANG BỊ PHONG LUONGGIO LUONGTH TRANGBI PHONG
Hình 2.4. Minh họa mô hình cơ sở dữ liệu hướng đối tượng
2.1.2 Lược đồ(Schema) , minh hoạ (instances), và trạng thái (State)
Lược đồ cơ sở dữ liệu (Database Schema): là biểu diễn của cơ sở dữ liệu, bao
gồm cấu trúc cơ sở dữ liệu và những ràng buộc trên dữ liệu.
Sơ đồ của lược đồ cơ sở dữ liệu (Schema Diagram): Là lược đồ cơ sở dữ liệu
được biểu diễn thông qua sơ đồ. Ví dụ: schema construct
PHẦN I – CƠ SỞ DỮ LIỆU 14
Chương 2. NHỮNG KHÁI NIỆM VÀ KIẾN TRÚC CỦA HỆ THỐNG CƠ SỞ DỮ LIỆU
Hình 2.5. Lược đồ cơ sở dữ liệu UNIVERSITY
Minh học cơ sở dữ liệu (Database Instance): Là dữ liệu thực sự được lưu trữ
trong cơ sở dữ liệu ở thời điểm hiện tại. Database Instance cũng được gọi là trạng thái
của cơ sở dữ liệu (database state) Ví dụ:
Hình 2.5. Cơ sở dữ liệu UNIVERSITY
Như vậy, Database Schema rất hiếm khi thay đổi, còn Database State thay
đổi bất kỳ khi nào có sự cập nhập dữ liệu.
2.2 Lược đồ kiến trúc của hệ quản trị cơ sở dữ liệu (DBMS
Architecture) và sự độc lập dữ liệu (Data Independence)
Như chúng ta đã biết, các tính chất quan trọng nhất của cơ sở dữ liệu là: (1)
Đảm bảo sự độc lập giữa chương trình ứng dụng và dữ liệu. (2) Hỗ trợ nhiều khung
nhìn cho các đối tượng người dùng khác nhau. (3) Sử dụng danh mục để lưu trữ biểu
diễn dữ liệu (schema). Trong phần này, chúng ta sẽ tìm hiểu kiến trúc của hệ quản trị
PHẦN I – CƠ SỞ DỮ LIỆU 15
Chương 2. NHỮNG KHÁI NIỆM VÀ KIẾN TRÚC CỦA HỆ THỐNG CƠ SỞ DỮ LIỆU
cơ sở dữ liệu, gọi là Lược đồ kiến trúc 3 mức mức(three –schema architecture). Sau
đó chúng ta sẽ tìm hiểu về khái niệm độc lập dữ liệu.
2.2.1 Lược đồ kiến trúc 3 mức của HQTCSDL
Mục đích của việc phân thành 3 mức trong kiến trúc của mô hình HQTCSDL là
để tách biệt các ứng dụng của người sử dụng với cơ sở dữ liệu vật lý. Trong kiến trúc
này, lược đồ có thể được định nghĩa ở 3 mức sau:
Lược đồ mức trong (Internal schema) ở Mức trong (Internal level) để biểu diễn
chi tiết cấu trúc lưu trữ dữ liệu và cách thức truy cập dữ liệu. Lược đồ mức trong sử
dụng mô hình dữ liệu vật lý (physical data model).
Lược đồ khái niệm (Conceptual schema) ở Mức khái niệm (Conceptual level)
để biểu diễn cấu trúc và các ràng buộc trong toàn bộ cơ sở dữ liệu phục vụ cho việc
giao tiếp với người sử dụng. Lược đồ khái niệm ẩn đi cách thức tổ chức vật lý của dữ
liệu, chỉ tập trung vào việc biểu diễn các thực thể, các kiểu dữ liệu, mối quan hệ giữa
các thực thể, các thao tác của người sử dụng và các ràng buộc giữa các dữ liệu. Mô
hình dữ liệu mức khái niệm (Conceptual data model) hoặc Mô hình dữ liệu thể hiện
(Implementation data model) có thể được sử dụng ở mức này.
Lược đồ mức ngoài (External Level) ở Mức ngoài (External level hoặc View
level) để biểu diễn hàng loạt những khung nhìn của người sử dụng (user views). Mô
hình dữ liệu mức cao (High-level data model) hoặc Mô hình dữ liệu thể hiện
(Implementation data model) có thể được sử dụng ở mức này.
Ánh xạ giữa các mức này là cần thiết. Những chương trình làm việc với dữ liệu
ở mức ngoài và được HQTCSDL ánh xạ tới dữ liệu vật lý ở mức trong để thực hiện.
Hình 2.6. Lược đồ kiến trúc 3 mức của HQTCSDL
PHẦN I – CƠ SỞ DỮ LIỆU 16
Chương 2. NHỮNG KHÁI NIỆM VÀ KIẾN TRÚC CỦA HỆ THỐNG CƠ SỞ DỮ LIỆU
2.2.2 Độc lập dữ liệu
Kiến trúc 3 mức của HQTCSDL có thể được sử dụng để giải thích khái niệm về
độc lập dữ liệu. Độc lập dữ liệu là khả năng thay đổi lược đồ ở một mức nào đó của hệ
thống cơ sở dữ liệu mà không cần phải thay đổi lược đồ ở mức cao hơn. Chúng ta có
thể định nghĩa 2 kiểu của độc lập dữ liệu:
Độc lập dữ liệu logic (Logical data independence): cho phép thay đổi lược đồ
khái niệm mà không cần phải thay đổi lược đồ mức ngoài hoặc những chương trình
ứng dụng. Chúng ta có thể thay đổi lược đồ khái niệm để mở rộng (thêm các trường dữ
liệu, các bản ghi) hoặc thu nhỏ cơ sở dữ liệu (xóa các trường dữ liệu, các bản ghi).
Độc lập dữ liệu vật lý (Physical data independence): cho phép thay đổi lược đồ
mức trong mà không cần thay đổi lược đồ khái niệm. Có khi chúng ta cần thay đổi
lược đồ mức trong vì các file vật lý đôi khi cần tổ chức lại để tăng hiệu quả thực hiện.
Nếu kiểu dữ liệu không thay đổi thì chúng ta không cần thay đổi lại lược đồ khái niệm. 2.3 Ngôn
ngữ của HQTCSDL
Vì HQTCSDL phục vụ có nhiều đối tượng người sử dụng khác nhau nên nó
phải hỗ trợ ngôn ngữ để người sử dụng tương tác với nó. Trong phần này chúng ta sẽ
tìm hiểu một số những ngôn ngữ được HQTCSDL hỗ trợ.
Ngôn ngữ định nghĩa dữ liệu (Data Definition Language - DDL): Là ngôn ngữ
được các nhà quản trị cơ sở dữ liệu (DBA) và các nhà thiết kế cơ sở dữ liệu (database
designers) dùng để xây dựng lược đồ khái niệm của cơ sở dữ liệu. Trong nhiều
HQTCSDL, DDL cũng được sử dụng để định nghĩa lược đồ mức trong và mức ngoài
(các khung nhìn). Một số HQTCSDL chia thành 2 ngôn ngữ: Ngôn ngữ định nghĩa lưu
trữ (storage definition language – SDL) và Ngôn ngữ định nghĩa khung nhìn (view
definition language -VDL) được dùng để định nghĩa lược đồ mức trong và mức ngoài.
Ngôn ngữ thực hiện dữ liệu (Data Manipulation Language -DML): Là ngôn ngữ
được sử dụng để thao tác với dữ liệu bao gồm việc truy cập đến bản ghi và cập nhật dữ
liệu cho bản ghi (thêm, sửa, xoá). Các lệnh DML có thể được nhúng trong ngôn ngữ
lập trình hoặc thực hiện độc lập (ngôn ngữ truy vấn).
2.4 Các tính năng của HQTCSDL
- Nạp dữ liệu đang lưu trữ ở các tệp tin vào cơ sở dữ liệu (Conversion Tool). - Cung
cấp các thao tác truy xuất
- Đảm bảo tính độc lập dữ liệu - Cung
cấp thủ tục sao lưu và phục hồi (backup và recovery) - Cung
cấp các thủ tục điểu khiển đồng thời (Do tính truy xuất đồng thời và cạnh tranh) - Cung
cấp các thủ tục kiểm soát bản quyền, kiểm tra tính đúng đắn
của dữ liệu (để đảm bảo tính an toàn và toàn vẹn dữ liệu) 2.5 Phân loại HQTCSDL
Người ta phân loại HQTCSDL dựa trên một số tiêu chí:
PHẦN I – CƠ SỞ DỮ LIỆU 17
Chương 2. NHỮNG KHÁI NIỆM VÀ KIẾN TRÚC CỦA HỆ THỐNG CƠ SỞ DỮ LIỆU
Dựa trên mô hình dữ liệu được HQTCSDL sử dụng: Mô hình quan hệ
(Relational Data Model), Mô hình hướng đối tượng (Object Data Model), Mô hình
mạng (Network Data Model), mô hình phân cấp (Hierarchical Data Model), mô hình
quan hệ thực thể (Entity – Relationship Data Model)... Tiêu chí khác:
- Số người sử dụng HQTCSDL: Đơn người dùng (Single-user), Đa
người dùng (multi-user). Hầu hết các HQTCSDL hiện nay đều là HQTCSDL đa người dùng.
- Vị trí HQTCSDL: tập trung (sử dụng một máy đơn) hay phân tán (sử dụng nhiều máy tính). - Giá
của HQTCSDL: 100$- 300$; 10000$- 100000$
PHẦN I – CƠ SỞ DỮ LIỆU 18
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ
3 Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ
(Entity – Relationship Model)
3.1 Sử dụng mô hình dữ liệu khái niệm mức cao để thiết kế
cơ sở dữ liệu
Hình 3.1. Các giai đoạn thiết kế cơ sở dữ liệu
Hình trên chỉ ra tiến trình thiết kế cơ sở dữ liệu một cách đơn giản. Bước đầu
tiên là tập hợp và phân tích yêu cầu hệ thống. Trong bước này, người thiết kế cơ sở
dữ liệu phải tiến hành thu thập yêu cầu của người sử dụng, sau đó viết tài liệu những
yêu cầu dữ liệu.
Kết quả của bước này là viết ra được tập hợp những yêu cầu tất cả các
đối tượng người dùng một cách xúc tích. Từ đó, ta xác định được yêu cầu chức năng
(Funtional Requirements) của hệ thống.
Sau khi tất cả các yêu cầu đã được tập hợp và phân tích, bước tiếp theo là xây
dựng lược đồ khái niệm(conceptual schema) cho cơ sở dữ liệu. Lược đồ khái niệm là
nơi biểu diễn xúc tích những yêu cầu của người sử dụng và biểu diễn chi tiết những
kiểu thực thể (entity types),quan hệ (relationships) và những ràng buộc (constraints)
của dữ liệu, phần này sử dụng những khái niệm được cung cấp trong mô hình dữ liệu
mức cao (High level data model). Mô hình dữ liệu mức cao là mô hình dữ liệu được
dùng để giao tiếp với người sử dụng bình thường vì thế nó rất dễ hiểu, nó chỉ ra cái
PHẦN I – CƠ SỞ DỮ LIỆU 19
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ
cần được lưu trong cơ sở dữ liệu chứ không chỉ ra cụ thể dữ liệu được thực hiện như thế nào.
Bước tiếp theo trong quá trình thiết kế là cài đặt cơ sở dữ liệu trên một mô hình
dữ liệu thực hiện, sử dụng các Hệ quản trị cơ sở dữ liệu nào đó (Hầu hết các hệ quản
trị cơ sở dữ liệu hiện nay sử dụng mô hình dữ liệu quan hoặc hướng đối tượng). Vì thế,
chúng ta cần thiết phải chuyển từ mô hình dữ liệu mức cao sang những mô hình dữ
liệu thực hiện. Bước này được gọi là thiết kế logic (Logical design) hoặc ánh xạ mô
hình dữ liệu (Data model mapping) và kết quả của bước này là lược đồ cơ sở dữ liệu
trong mô hình cơ sở dữ liệu thực hiện.
Bước cuối cùng là thiết kế vật lý cho cơ sở dữ liệu (physical design), bao gồm
việc thiết kế những cấu trúc lưu trữ dữ liệu bên trong, đường dẫn truy cập, tổ chức file của các file dữ liệu.
Trong chương này, chúng ta sẽ sử dụng mô hình khái niệm ER cho thiết kế lược
đồ khái niệm (Conceptual Schema).
3.2 Mục đích của mô hình khái niệm ER(Entity –
Relationship Model)
Qua bước xem xét tổng quát trên, ta thấy rằng, mô hình E-R là một mô tả logic
chi tiết dữ liệu của một tổ chức hay một lĩnh vực nghiệp vụ. Nó giúp người thiết kế cơ
sở dữ liệu mô tả thế giới thực gần gũi với quan niệm và cách nhận nhìn nhận bình
thường của con người. Nó là công cụ để phân tích thông tin nghiệp vụ.
Mục đích của mô hình E – R: -
Làm thống nhất quan điểm về dữ liệu của những người tham gia hệ
thống: Người quản lý, người dùng cuối, người thiết kế hệ thống -
Xác định các xử lý về dữ liệu cũng như các ràng buộc trên các dữ liệu. -
Giúp đỡ việc thể hiện cơ sở dữ liệu về mặt cấu trúc: Sử dụng thực thể
và các mối liên kết giữa các thực thể. Biểu diễn mô hình quan hệ thực thể bằng một sơ đồ. 3.3 Ví
dụ về một cơ sở dữ liệu ứng dụng
Trong phần này, chúng ta sẽ tìm hiểu một ví dụ về cơ sở dữ liệu ứng dụng - gọi
COMPANY để minh hoạ các khái niệm trong mô hình ER và sử dụng nó trong khi
thiết kế lược đồ khái niệm.
Cơ sở dữ liệu COMPANY cần lưu trữ thông tin về nhân viên (employees),
phòng/ban (departments), và các dự án (projects) trong công ty. Sau khi tập hợp được
tất cả các yêu cầu của hệ thống, người thiết kế cơ sở dữ liệu tiến hành mô tả lại
miniworld bằng mô hình ER.
Sau đây là các quy tắc nghiệp vụ của hệ thống cơ sở dữ liệu COMPANY, chúng
ta sẽ xây dựng mô hình ER từng bước để giới thiệu các khái niệm của mô hình ER.
1. Công ty (COMPANY) có nhiều phòng/ban (DEPARTMENTs). Mỗi
phòng/ban có tên (name), mã số (number) duy nhất và có một nhân viên (employee)
làm quản lý (manages) phòng/ban. Chúng ta lưu lại ngày bắt đầu (start date) làm quản
lý phòng/ban của nhân viên đó.
PHẦN I – CƠ SỞ DỮ LIỆU 20
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ
2. Mỗi phòng/ban có thể có nhiều địa điểm khác nhau (locations).
3. Mỗi phòng/ban điều hành một số dự án (PROJECTs). Mỗi dự án có tên
(name), mã số (number) duy nhất và chỉ có một địa điểm (location).
4. Với mỗi nhân viên, chúng ta lưu lại những thông tin sau: tên (name), số bảo
hiểm xã hội (social security number), địa chỉ (address), lương (salary), giới tính (sex),
và ngày sinh (birth date).
5. Mỗi nhân viên làm việc ở một phòng/ban, nhưng có thể làm việc cho nhiều
dự án. Chúng ta lưu lại số giờ làm việc (the number of hours per week) của từng nhân viên trong từng dự án.
6. Chúng ta lưu lại thông tin về người quản lý trực tiếp (direct supervisor), của
mỗi nhân viên. Người quản lý trực tiếp cũng là một nhân viên.
7. Mỗi nhân viên có những người phụ thuộc vào họ (DEPENDENTs). Mỗi
người phụ thuộc ta lưu lại thông tin về tên (name), giới tính (sex), ngày sinh (birth
date)
và quan hệ (relationship).
Hình minh hoạ sau sẽ chỉ ra sơ đồ ER của cơ sở dữ liệu COMPANY dựa trên
những ký hiệu đồ hoạ được quy định trong mô hình ER.
Hình 3.2. Sơ đồ ER của cơ sở dữ liệu COMPANY
PHẦN I – CƠ SỞ DỮ LIỆU 21
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ
Lưu ý, trên đây chỉ là giới thiệu sơ bộ về mô hình ER, các bạn chưa cần phải
hiểu được toàn bộ sơ đồ trên.
Phần tiếp theo chúng ta sẽ giới thiệu về mô hình ER. Các khái niệm cơ bản
trong mô hình ER gồm có Thực thể (Entity), Thuộc tính (Attributes), và Quan hệ (Relationship).
3.4 Kiểu thực thể(Entity Type), Thuộc tính (Attributes), Khoá (Keys)
3.4.1 Thực thể (Entities) và thuộc tính (Attributes) 3.4.1.1 Thực thể -
Các thực thể vốn tồn tại trong thế giới thực. Một thực thể là một khái
niệm để chỉ một lớp các đối tượng cụ thể hay các khái niệm có cùng
những đặc tính chung mà ta quan tâm. -
Tên thực thể: Là tên của một lớp đối tượng. Trong 1 CSDL, tên thực
thể không được trùng nhau. -
Ký hiệu: Trong mô hình E-R, thực thể được biểu diễn bằng một hình
chữ nhật có tên bên trong. - Ví dụ: EMPLOYEE DEPARTMENT 3.4.1.2 Thuộc tính -
Thuộc tính là các đặc trưng (properties) được sử dụng để biểu diễn thực thể. -
Ví dụ: Thực thể EMPLOYEE có các thuộc tính: Name, SSN, Address, Sex, BirthDate. -
Thuộc tính được ký hiệu bằng hình oval, bên trong ghi tên của thuộc
tính. Thuộc tính của thực thể nào thì sẽ được gắn với thực thể đó. - Ví dụ: Minit Fname Lname Name Sex Address SSN Salary Bdate EMPLOYEE
Hình 3.3. Thực thể EMPLOYEE và các thuộc tính của nó
PHẦN I – CƠ SỞ DỮ LIỆU 22
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ Number Name Locations NumberOf Employee DEPARTMENT
Hình 3.4. Thực thể DEPARTMENT và các thuộc tính của nó singled multiple-valued key attribute derived attribute
Hình 3.5. Một số ký hiệu của thuộc tính
Các kiểu thuộc tính trong mô hình ER:
Thuộc tính đơn (simple) đối lập với thuộc tính tổ hợp (composite), thuộc
tính đơn trị (single-value) đối lập với thuộc tính đa trị (multivalued), thuộc tính lưu
trữ
(stored) đối lập với thuộc tính suy diễn (derived). Sau đây ta sẽ tìm hiểu chi tiết
về các loại thuộc tính này:
Thuộc tính đơn (simple) hay còn gọi là thuộc tính nguyên tử (Atomic): Chỉ có
một giá trị trong một thuộc tính của một thực thể. Ví dụ: Thuộc tính Birthdate, Sex…
của Employee
là thuộc tính nguyên tử.
Thuộc tính tổ hợp (Composite): là thuộc tính được kết hợp của một số thành
phần. Ví dụ: Address(Apt#, House#, Street, City, State, ZipCode, County) hoặc Name
(FirstName, MiddleName, LastName)
là thuộc tính tổ hợp.
Thuộc tính tổ hợp có thể được biểu diễn phân cấp như sau:
PHẦN I – CƠ SỞ DỮ LIỆU 23
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ
Hình 3.6. Biểu diễn phân cấp của thuộc tính tổ hợp
Thuộc tính đơn trị (single-value): Là thuộc tính chỉ có một giá trị duy nhất ở
một thời điểm. Ví dụ: Sex, Birthdate,…
Thuộc tính đa trị (multivalued): Là thuộc tính có thể có nhiều giá trị tại một
thời điểm. Ví dụ: PreviousDegrees… Ký hiệu: {PreviousDegrees}
Thuộc tính tổ hợp và thuộc tính đa trị có thể làm tổ ở nhiều mức, mặc dù ít gặp
trường hợp này. Ví dụ: PreviousDegrees của thực thể STUDENT là loại thuộc tính đó.
Ký hiệu: {PreviousDegrees (College, Year, Degree, Field)}.
Thuộc tính lưu trữ (stored attribute) và thuộc tính suy diễn (derived
attribute): Thuộc tính lưu trữ là thuộc tính mà giá trị của nó phải được lưu trữ, còn
thuộc tính suy diễn là thuộc tính mà giá trị của nó có thể suy ra từ giá trị của những
thuộc tính khác. Ví dụ: Age(derived attribute) được suy diễn từ BirthDate (stored attribute)
Giá trị rỗng của thuộc tính (Null Values): Trong một vài trường hợp, một thực
thể có thể không có giá trị tương ứng cho một thuộc tính, ví dụ thuộc tính
NameDependent(Tên của người phụ thuộc), nếu một nhân viên nào đó trong thực thể
EMPLOYEE chưa có người phụ thuộc thì thuộc tính NameDependent tương ứng với
nhân viên đó sẽ không có giá trị. Hoặc trong trường hợp thuộc tính có giá trị nhưng
chưa được biết, ví dụ thuộc tính PhoneNumber (Số điện thoại). Trong trường hợp này,
một giá trị đặc biệt được tạo ra, đó là giá trị Null.
Mỗi thuộc tính trong thực thể luôn có giá trị, ví dụ các thuộc tính trong thực
thể EMPLOYEE có các giá trị sau: Name=‘John Smith’, SSN=‘123456789’,
Address=‘731 Fondren, Houston, TX’, Sex=‘M’, BirthDate= ‘09-JAN-55’. Một bộ giá
trị của một thực thể được gọi là một bản ghi (record).
PHẦN I – CƠ SỞ DỮ LIỆU 24
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ employee department
Hình 3.7. Hai thực thể và giá trị thuộc tính của nó
3.4.2 Kiểu thực thể, Khoá và tập giá trị
Kiểu thực thể:
là tập hợp những thực thể có cùng các thuộc tính cơ bản. Ví dụ,
kiểu thực thể EMPLOYEE, kiểu thực thể PROJECT.
Khoá: Mỗi một kiểu thực thể phải có một hoặc một tập các thuộc tính mang giá
trị duy nhất (unique value) để phân biệt giữa bản ghi này với bản ghi khác. Thuộc tính
đó gọi là khoá của kiểu thực thể (Key attribute).Ví dụ: thuộc tính SSN của kiểu thực
thể EMPLOYEE, hoặc thuộc tính NumberStudent(Mã sinh viên) của kiểu thực thể
STUDENT. Chú ý là khoá có thể gồm một hoặc một tập các thuộc tính.
Tập giá trị hay còn gọi là miền xác định(Domain): là tập những giá trị mà
thuộc tính có thể nhận được. Ví dụ: Miền xác định của thuộc tính Sex là {Male,
Female}, hoặc của Mark(Điểm) là từ 0..10.
Tập giá trị không được biểu diễn trong lược đồ ER. 3.5 Liên
kết, Kiểu liên kết và các Ràng buộc liên kết
3.5.1 Định nghĩa liên kết và kiểu liên kết
Liên kết (Relationship) dùng để chỉ mối quan hệ giữa hai hay nhiều thực thể
khác nhau. Ví dụ: Nhân viên (A) làm việc cho dự án (X), nhân viên B làm việc cho dự án (X)…
Những liên kết của cùng một kiểu được nhóm lại gọi là kiểu liên kết
(Relationship Type), ví dụ kiểu liên kết WORK_ON (làm việc cho), kiểu liên kết MANAGES ( làm quản lý)…
Trong lược đồ ER, người ta sử dụng hình thoi và bên trong ghi tên kiểu liên kết
để ký hiệu kiểu liên kết. Ký hiệu: relationship
Lưu ý: Kiểu liên kết cũng có thể có thuộc tính của nó.
PHẦN I – CƠ SỞ DỮ LIỆU 25
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ
3.5.2 Bậc của kiểu liên kết
Là số lượng các kiểu thực thể tham gia vào liên kết. Có các kiểu liên kết sau: -
Kiểu liên kết bậc 1 (đệ quy) là mối quan hệ giữa cùng 1 kiểu thực thể. -
Kiểu liên kết bậc 2 là mối liên kết giữa hai kiểu thực thể -
Kiểu liên kết bậc 3 là mối liên kết giữa 3 kiểu thực thể
3.5.2.1 Mối quan hệ bậc 1
Mối quan hệ bậc 1 (đệ quy) là mối quan hệ giữa cùng 1 kiểu thực thể Ví dụ: 1 N PERSON marry EMPLOYEE supervisor 1 1
Hình 3.8. Minh họa mối quan hệ bậc 1
3.5.2.2 Mối quan hệ bậc 2
Là mối quan hệ giữa 2 kiểu thực thể khác nhau. Ví dụ: DEPARTMENT 1 1 works for manages N 1 EMPLOYEE
Hình 3.9. Minh họa mối quan hệ bậc 2
Ví dụ: Mối liên kết giữa hai kiểu thực thể DEPARTMENT và EMPLOYEE sau
đây là kiểu liên kết bậc 2 vì nó có sự tham gia của hai kiểu thực thể.
Hình minh hoạ trên còn cho ta thấy, có thể có nhiều hơn một kiểu liên kết giữa
hai kiểu thực thể khác nhau.
3.5.2.3 Mối quan hệ bậc 3
Là mối quan hệ giữa 3 kiểu thực thể khác kiểu.
PHẦN I – CƠ SỞ DỮ LIỆU 26
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ SUBJECT N teach M M TEACHER CLASS Hours
Hình 3.10. Minh họa mối quan hệ bậc 3
3.5.3 Ràng buộc liên kết
Các kiểu liên kết thường có một số ràng buộc nào đó về các thực thể có thể kết
hợp với nhau tham gia trong một liên kết phù hợp. Các ràng buộc này xác định từ tình
huống thực tế mà liên kết thể hiện.Có các loại ràng buộc như sau:
3.5.3.1 Tỷ số lực lượng:
Trong các kiểu liên kết bậc 2, tỷ số lực lượng chỉ rõ số thực thể tham gia vào
liên kết. Các tỷ số lực lượng có thể là: 1:1, 1:N, N:1 và M:N.
Tỷ số 1:1: Một thực thể của kiểu A có liên kết với một thực thể của kiểu B và ngược lại. 1 1 A relationship B
Ví dụ: Một nhân viên (EMPLOYEE) quản lý một phòng (DEPARTMENT) , và
một phòng chỉ có một nhân viên quản lý. 1 1 EMPLOYEE Manages DEPARTMENT
Tỷ số 1:N: Một thực thể của kiểu A có liên kết với nhiều thực thể của kiểu B.
Nhưng một thực thể của kiểu B lại có liên kết duy nhất với thực thể của kiểu A. 1 N A relationship B
Ví dụ: Một nhân viên (EMPLOYEE) làm việc cho một phòng
(DEPARTMENT), và một phòng có nhiều nhân viên làm việc.
PHẦN I – CƠ SỞ DỮ LIỆU 27
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ N 1 EMPLOYEE Work_ for DEPARTMENT
Tỷ số M:N: Một thực thể của kiểu A có liên kết với nhiều thực thể của kiểu B và ngược lại. M N A relationship B Ví dụ: M N EMPLOYEE Work_ on PROJECT
3.5.3.2 Ràng buộc về sự tham gia liên kết (Participation constraint)
Ràng buộc về sự tham gia liên kết được xác định trên từng thực thể trong từng kiểu
liên kết mà thực thể đó tham gia, bao gồm: lực lượng tham gia toàn bộ (total
participation
) và lực lượng tham gia bộ phận (partial participation).
Ví dụ: Trong kiểu liên kết Manages giữa hai kiểu thực thể EMPLOYEE và
DEPARTMENT, lực lượng tham gia của kiểu thực thể DEPARTMENT là toàn bộ, vì
DEPARTMENT nào cũng có người quản lý, còn lực lượng tham gia của kiểu thực thể
EMPLOYEE là bộ phận vì không phải EMPLOYEE nào cũng làm quản lý (manages) của DEPARTMENT.
Trong sơ đồ ER, kiểu thực thể có lực lượng tham gia liên kết toàn bộ được nối
với kiểu liên kết bằng gạch nối kép, còn kiểu thực thể có lực lượng tham gia bộ phận
được nối với kiểu liên kết bằng gạch nối đơn. Ví dụ: 1 1 EMPLOYEE Manages DEPARTMENT
3.5.3.3 Lực lượng tham gia liên kết
Trong mối liên kết giữa các thực thể, ta cần quan tâm đến lực lượng tham gia
liên kết, đó là số bản ghi lớn nhất và nhỏ nhất của thực thể tham gia vào liên kết đó.
Ký hiệu: Thêm (min,max) vào mối liên kết. Trong đó: -
min là số bản ghi nhỏ nhất tham gia vào liên kết
PHẦN I – CƠ SỞ DỮ LIỆU 28
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ -
max là số bản ghi lớn nhất tham gia vào liên kết - Mặc định, min=0, max=n -
Chúng ta xác định lực lượng này từ khảo sát thực tế bài toán. Ví dụ:
a. Tại một thời điểm, một phòng có duy nhất một người quản lý-người
đó là nhân viên, một nhân viên chỉ quản lý duy nhất một phòng. Vì
vậy, (0,1) là lực lượng của EMPLOYEE và (1,1) là lực lượng của
DEPARTMENT tham gia trong liên kết Manages(quản lý).
b. Một nhân viên chỉ có thể làm việc cho một phòng nhưng một phòng
có thể có bất kỳ số lượng nhân viên nào. Vì thế, (1,1) là lực lượng của
EMPLOYEE và (0,n) là lực lượng của DEPARTMENT tham gia
trong liên kết Works_For(làm việc cho).
3.5.3.4 Thuộc tính của kiểu liên kết
Kiểu liên kết cũng có thể có thuộc tính. Ví dụ: Số giờ nhân viên làm việc cho
dự án (Hours) là thuộc tính của mối liên kết giữa hai kiểu thực thể EMPLOYEE và PROJECT. M N EMPLOYEE Work_on PROJECT Hours
3.6 Kiểu thực thể yếu(Weak Entity)
Kiểu thực thể yếu là kiểu thực thể tồn tại phụ thuộc vào thực thể khác (thực thể
làm chủ hay còn gọi là xác định nó). Kiểu thực thể yếu không có khoá.
Kiểu thực thể yếu được xác định bằng: -
Một hay một tập các thuộc tính xác định kiểu thực thể yếu -
Và thưc thể làm chủ (xác định) thực thể yếu.
Kiểu thực thể yếu luôn có lực lượng tham gia liên kết toàn bộ.
3.7 Tổng quát hóa và chuyên biệt hóa
Tổng quát hóa là khái niệm cho phép ta xem một vật thể nào đó (các thực thể)
là một thực thể con của một vật thể khác tổng quát hơn.
Ví dụ: SACH là một loại con của loại tổng quát hơn là TAILIEU nói chung.
Chuyên biệt hóa là khái niệm ngược lại với tổng quát hóa. Ví dụ:
Ôtô, xeca, taxi gộp lại thành một thực thể tổng quát hơn là Phuongtienvantai.
PHẦN I – CƠ SỞ DỮ LIỆU 29
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ
3.7.1 Thực thể con và thực thể chính
Trong mô hình dữ liệu, cần phải mô tả một cách rõ ràng các thực thể gần như
nhau: đó là các thực thể có các thuộc tính chung, nhưng cũng có một số các thuộc tính khác nhau.
Ví dụ: Trong một Đơn vị có 3 loại nhân viên: SECRETARY, TECHNICIAN,
ENGINEER. Các thực thể này có một số thuộc tính chung và một số thuộc tính riêng.
Trong trường hợp này, có thể có 3 hướng giải quyết sau: -
Cách đơn giản nhất là gộp tất cả các loại nhân viên vào một thực thể
EMPLOYEE. Cách này dẫn đến dư thừa thông tin, vì có những thuộc
tính luôn rỗng đối với mỗi loại nhân viên. -
Cách thứ hai, định nghĩa riêng rẽ từng loại thực thể: SECRETARY,
TECHNICIAN, ENGINEER. Cách này không khai thác được những
thuộc tính chung của nhân viên. -
Cách thứ ba, định nghĩa một thực thể chính gọi là EMPLOYEE, với 3
thực thể con là: SECRETARY, TECHNICIAN, ENGINEER. Những
thuộc tính chung nằm trong thực thể chính, còn thực thể con sẽ chứa
thuộc tính riêng của nó. Hình sau đây minh hoạ cách giải quyết này: FName Minit LName Name Ssn BirthDate Address JobType EMPLOYEE Job Type d “Secretary” “Engineer” TypingSpeed TGrade EngType “Technician” SECRETARY TECHNICIAN ENGINEER
Hình 3.11. Minh họa mối quan hệ giữa thực thể con và thực thể chính
3.7.2 Các thực thể con loại trừ
Trong mô hình trên, các thực thể con là loại trừ lẫn nhau.
Thực thể con loại trừ gồm 2 loại:
PHẦN I – CƠ SỞ DỮ LIỆU 30
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ
Thực thể con đầy đủ: Là tất cả các thực thể con xác định một thực thể chính.
Trong ví dụ trên, tất cả các thực thể con là đầy đủ vì không thể bổ sung thực thể nào
vào thực thể chính EMPLOYEE.
Thực thể con không đầy đủ: Tập các thực thể con không đầy đủ xác định thực thể
chính. Ví dụ: Tập thực thể ÔTÔ, XEMAY chưa xác định được thực thể chính là PHUONGTIEN.
3.8 Các ký hiệu và quy ước đặt tên trong mô hình ER
3.8.1 Các ký hiệu
Trong xây dựng mô hình E-R, ta sử dụng các ký hiệu trong hình 3.12: Thực thể Thực thể yếu Mối quan hệ Mối quan hệ xác định Thuộc tính Thuộc tính khóa Thuộc tính đa trị Thuộc tính tổ hợp Thuộc tính suy diễn
E2 tham gia toàn bộ trong R
Tỷ số tham gia liên kết 1:N
Lực lượng của E2 trong R
Hình 3.12. Bảng tổng hợp các ký hiệu trong mô hình ER
3.8.2 Quy tắc đặt tên
PHẦN I – CƠ SỞ DỮ LIỆU 31
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ entity types Danh từ attributes Quy tắc đặt tên: relationship types roles Động từ 3.9 Xây
dựng một mô hình ER.
3.9.1 Các bước xây dựng sơ đồ ER
3.9.1.1 Liệt kê, chính xác hóa và lựa chọn thông tin cơ sở
Xác định một từ điển bao gồm tất cả các thuộc tính (không bỏ sót bất cứ thông tin nào).
Chính xác hóa các thuộc tính đó. Thêm các từ cần thiết để thuộc tính đó mang
đầy đủ ý nghĩa, không gây lầm lẫn, hiểu nhầm.
Chú ý: Để lựa chọn các đặc trưng cần thiết , ta duyệt từ trên xuống và chỉ giữ
lại những thuộc tính đảm bảo yêu cầu sau:
Thuộc tính cần phải đặc trưng cho một lớp các đối tượng được xét.
Chọn một thuộc tính một lần, nếu lặp lại thì bỏ qua.
Một thuộc tính phải là sơ cấp (Nếu giá trị của nó có thể suy ra từ các thuộc tính khác thì bỏ qua).
3.9.1.2 Xác định các thực thể và các thuộc tính của nó, sau đó xác
định thuộc tính định danh cho từng thực thể.
Duyệt danh sách các thuộc tính từ trên xuống để tìm ra thuộc tính tên gọi. Mỗi
thuộc tính tên gọi sẽ tương ứng với một thực thể.
Gán các thuộc tính cho từng thực thể.
Xác định thuộc tính định danh cho từng thực thể.
3.9.1.3 Xác định các mối quan hệ và các thuộc tính riêng của nó
Xét danh sách các thuộc tính còn lại, hãy tìm tất cả các động từ (ứng với thuộc
tính đó). Với mỗi động từ, hãy trả lời các câu hỏi: Ai? Cái gì? Ở đâu? Khi nào? Bằng cách nào?
3.9.1.4 Vẽ sơ đồ mô hình thực thể- mối quan hệ, xác định lực lượng
tham gia liên kết cho các thực thể.
3.9.1.5 Chuẩn hóa sơ đồ và thu gọn sơ đồ - Vẽ sơ đồ. -
Chuẩn hóa sơ đồ, nếu trong đó còn có chứa: các thuộc tính lặp, nhóm
lặp và các thuộc tính phụ thuộc thời gian sơ đồ chỉ còn các thực thể
đơn và các thuộc tính đơn.
PHẦN I – CƠ SỞ DỮ LIỆU 32
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ
Thu gọn sơ đồ: Nếu một thực thể có tất cả các đặc trưng: -
Là thực thể treo: là thực thể chỉ tham gia vào một mối quan hệ
và chỉ chứa một thuộc tính duy nhất thực sự là của nó (có thể có
thuộc tính thứ 2 thêm vào làm định danh). -
Mối quan hệ là bậc hai và không có thuộc tính riêng. -
Mối quan hệ là 1: N hay 1:1. Ví dụ: N 1 N 1 STUDENT have CLASS have FACULTY Name StartDate
Được thu gọn thành sơ đồ sau: N 1 have STUDENT CLASS StartDate Name
3.9.2 Mô hình ER cho cơ sở dữ liệu COMPANY a. Qua
Bước 1 và Bước 2 ta xác định được danh sách các thực thể và các thuộc
tính của từng thực thể. b. Qua
bước 3 ta xác định được các kiểu liên kết như sau:
1. MANAGES: là kiểu liên kết 1:1 giữa hai kiểu thực thể EMPLOYEE và
DEPARTMENT. Lực lượng tham gia kiên kết của kiểu thực thể EMPLOYEE là bộ
phận, vì không phải nhân viên nào cũng tham gia quản lý. Còn lực lượng tham gia của
DEPARTMENT là toàn bộ, vì tại bất kỳ thời điểm nào một phòng cũng có một nhân
viên làm quản lý. Thuộc tính StartDate được gắn vào kiểu liên kết để ghi lại thời điểm
bắt đầu làm quản lý của nhân viên cho phòng đó.
2. WORKS_FOR: là kiểu liên kết 1:N giữa hai kiểu thực thể DEPARTMENT
và EMPLOYEE. Cả hai kiểu thực thể này đều có lực lượng tham gia toàn bộ vào liên kết.
3. CONTROLS: là kiểu liên kết 1:N giữa hai kiểu thực thể DEPARTMENT và
PROJECT. Lực lượng tham gia của PROJECT là toàn bộ, của DEPARTMENT là bộ phận.
PHẦN I – CƠ SỞ DỮ LIỆU 33
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ
4. SUPERVISOR: là kiểu liên kết 1:N giữa hai kiểu thực thể EMPLOYEE và
EMPLOYEE (Mỗi nhân viên có người quản lý cấp trên của mình, người đó cũng là
một nhân viên). Trong quá trình phỏng vấn các đối tượng người dùng, người thiết kế
được trả lời rằng: Không phải nhân viên nào cũng làm quản lý nhân viên khác, và
không phải nhân viên nào cũng có người quản lý trực tiếp mình. Vì vậy, cả hai kiểu
thực thể này có lực lượng tham gia bộ phận.
5. WORK_ON: là kiểu liên kết M:N giữa hai kiểu thực thể EMPLOYEE và
PROJECT, vì một dự án có nhiều nhân viên làm việc và một nhân viên có thể làm việc
cho nhiều dự án. Thuộc tính Hours là thuộc tính của kiểu liên kết được dùng để ghi lại
số giờ mỗi nhân viên làm việc cho một dự án nào đó. Cả hai kiểu thực thể này có lực lượng tham gia toàn bộ.
6. DEPENDENTS_OF: là kiểu liên kết 1:N giữa hai kiểu thực thể
EMPLOYEE và DEPENDENT. Kiểu thực thể DEPENDENT là kiểu thực thể yếu, vì
nó không tồn tại nếu không có sự tồn tại của kiểu thực thể EMPLOYEE. Lực lượng
tham gia của EMPLOYEE là bộ phận, vì không phải nhân viên nào cũng có người phụ
thuộc. Lực lượng tham gia của DEPENDENT là toàn bộ vì nó là kiểu thực thể yếu. c. Qua
bước 4 ta vẽ được mô hình ER:
Hình 3.13. Mô hình ER của bài toán COMPANY 3.9.3 Bài tập
Xây dựng mô hình ER để quản lý các đơn vị sau:

PHẦN I – CƠ SỞ DỮ LIỆU 34
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ
Bài tập 1: Quản lý hoạt động của một trung tâm đại học
Qua quá trình khảo sát, điều tra hoạt động của một trung tâm đại học ta rút ra
các quy tắc quản lý sau:
- Trung tâm được chia làm nhiều trường và mỗi trường có 1 hiệu
trưởng để quản lý nhà trường.
- Một trường chia làm nhiều khoa, mỗi khoa thuộc về một trường.
- Mỗi khoa cung cấp nhiều môn học. Mỗi môn học thuộc về 1 khoa
(thuộc quyền quản lý của 1 khoa).
- Mỗi khoa thuê nhiều giáo viên làm việc. Nhưng mỗi giáo viên chỉ
làm việc cho 1 khoa. Mỗi khoa có 1 chủ nhiệm khoa, đó là một giáo viên.
- Mỗi giáo viên có thể dạy nhiều nhất 4 môn học và có thể không dạy môn học nào.
- Mỗi sinh viên có thể học nhiều môn học, nhưng ít nhất là môn. Mỗi
môn học có thể có nhiều sinh viên học, có thể không có sinh viên nào.
- Một khoa quản lý nhiều sinh viên chỉ thuộc về một khoa.
- Mỗi giáo viên có thể được cử làm chủ nhiệm của lớp, lớp đó có thể
có nhiều nhất 100 sinh viên. Bài tập 2:
Cho các thuộc tính, các quy tắc quản lý của một đơn vị. 1. Thuộc tính:
- Mã đơn vị, Tên đơn vị, Số điện thoại đơn vị, Địa chỉ đơn vị.
- Mã nhân viên, Tên nhân viên, Giới tính nhân viên, Địa chỉ nhân viên,
Số điện thoại của nhân viên. - Mã dự án, Tên dự án
- Mã khách hàng, tên khách hàng, Địa chỉ khách hàng, Số điện thoại của khách hàng.
- Mã hàng, Tên hàng, Số lượng trong kho.
- Lượng đặt hàng, Ngày đặt hàng 2. Các quy tắc
- Một đơn vị thuê 1 hoặc nhiều nhân viên
- Một đơn vị được quản lý bởi 1 người quản lý. Đó là một nhân viên.
- Một nhân viên chỉ làm việc cho 1 đơn vị
- Một nhân viên có thể làm việc cho 1 dự án
- Mỗi dự án có thể thuê 1 hoặc nhiều nhân viên
PHẦN I – CƠ SỞ DỮ LIỆU 35
Chương 3. MÔ HÌNH QUAN HỆ - THỰC THỂ
- Một nhân viên có thể phục vụ cho 1 hoặc nhiều khách hàng
- Một khách hàng có thể được 1 hoặc nhiều nhân viên phục vụ
- Một khách hàng có thể đặt 1 hoặc 1 vài hàng hóa (Khách hàng nào
cũng đặt hàng: 1 hoặc nhiều mặt hàng)
- Mọi mặt hàng đều có ít nhất một khách hàng đặt mua
- Một đơn đặt hàng chỉ có 1 mặt hàng.
PHẦN I – CƠ SỞ DỮ LIỆU 36
Chương 4. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
4 Chương 4. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ 4.1 Khái
niệm mô hình quan hệ
Mô hình CSDL quan hệ lần đầu tiên được E.F.Codd và tiếp sau đó được công
ty IBM giới thiệu vào năm 1970. Ngày nay, hầu hết các tổ chức đã áp dụng CSDL
quan hệ để quản lý dữ liệu trong đơn vị mình.
Mô hình cơ sở dữ liệu quan hệ là cách thức biểu diễn dữ liệu dưới dạng bảng hay
còn gọi là quan hệ, mô hình được xây dựng dựa trên cơ sở lý thuyết đại số quan hệ.

Cấu trúc dữ liệu: dữ liệu được tổ chức dưới dạng quan hệ hay còn gọi là bảng.
Thao tác dữ liệu: sử dụng những phép toán mạnh (bằng ngôn ngữ SQL).
4.2 Các thành phần cơ bản của mô hình
4.2.1 Một số khái niệm của mô hình quan hệ
Mô hình quan hệ là cách thức biểu diễn dữ liệu dưới dạng các quan hệ (các
bảng). Một quan hệ là một bảng dữ liệu 2 chiều (cột và dòng), mô tả một thực thể. Mỗi
cột tương ứng với một thuộc tính của thực thể. Mỗi dòng chứa các giá trị dữ liệu của
một đối tượng cụ thể thuộc thực thể
Một số khái niệm cơ bản:
Lược đồ quan hệ: R(A1,…,An), trong đó R là tên quan hệ, Ai là các thuộc tính,
mỗi Ai có miền giá trị tương ứng dom(Ai).
Lược đồ quan hệ được sử dụng để mô tả một quan hệ, bao gồm: Tên quan hệ,
các thuộc tính và bậc của quan hệ (số lượng các thuộc tính) 4.2.2 Quan hệ:
Một quan hệ r của R(A1,...,An), ký hiệu r(R) là một tập hợp n-bộ r={ t1, ..., tm} Trong đó: Mỗi ti =, vi ∈ dom(Ai).
r(R) ⊆ dom(A1) x .... x dom(An)
r = { (vi1,vi2,...,vin) / i=1,...,m} v11 v12 V1n v21 v22 v2n ...... vm1 vm2 vmn A1 A2 Am
Ta có Ai là các thuộc tính và miền giá trị của Ai là:
D1=dom(A1), D2=dom(A2),...., Dn=dom(An).
Chú ý: - Các tập (D1,D2,...,Dn) là tập các miền trị của R
- n được gọi là bậc của quan hệ r.
- m được gọi là lực lượng của r.
- Quan hệ bậc 1 là quan hệ nhất nguyên, bậc 2 là quan hệ nhị nguyên, bậc n là quan hệ n nguyên.
PHẦN I – CƠ SỞ DỮ LIỆU 37
Chương 4. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
Ví dụ: Quan hệ EMPLOYEE trên tập các thuộc tính R={SSN, Name, BDate,
Address, Salary} là một quan hệ 5 ngôi. SSN Name BDate Address Salary 001 Đỗ Hoàng Minh 1960 Hà nội 425 t1 002 Đỗ Như Mai 1970 Hải Phòng 390 t2 003 Đặng Hoàng Nam 1973 Hà nội 200 t3
t1(001, ‘Đỗ Hoàng Minh’, 1960, ‘Hà nội’ , 425) = t1(R) là một bộ của quan hệ EMPLOYEE
4.2.3 Các tính chất của một quan hệ
- Giá trị đưa vào cột là đơn nhất
- Các giá trị trong cùng một cột phải thuộc cùng một miền giá trị (cùng kiểu)
- Thứ tự dòng cột tuỳ ý.
4.2.4 Các ràng buộc toàn vẹn trên quan hệ
Ràng buộc là những quy tắc được áp đặt lên trên dữ liệu đảm bảo tính tin cậy
độ chính xác của dữ liệu. Các luật toàn vẹn được thiết kế để giữ cho dữ liệu phù hợp và đúng đắn.
Có 4 kiểu ràng buộc chính: Ràng buộc miền giá trị (Domain Constraints), Ràng
buộc khoá (Key Constraints), Ràng buộc thực thể (Entity Integrity Constraints), và
Ràng buộc toàn vẹn tham chiếu (Referential Integrity Constraints).
4.2.4.1 Ràng buộc miền giá trị
Là một hợp các kiểu dữ liệu và những giá trị giới hạn mà thuộc tính có thể nhận
được. Thông thường việc xác định miền giá trị của các thuộc tính bao gồm một số các
yêu cầu sau: Tên thuộc tính, Kiểu dữ liệu, Độ dài dữ liệu, khuôn dạng của dữ liệu,
các giá trị giới hạn cho phép, ý nghĩa, có duy nhất hay không, có cho phép giá trị rỗng hay không.

4.2.4.2 Ràng buộc khoá
4.2.4.2.1 Khóa chính (Primary Key)
Khóa chính là một (hoặc một tập) các thuộc tính đóng vai trò là nguồn của một
phụ thuộc hàm mà đích lần lượt là các thuộc tính còn lại.
Ví dụ: R={SSN, Name, BDate, Address, Salary}
SSN Name, BDate, Address, Salary (Nguồn) (Đích)
Ta thấy, từ SSN ta có thể suy ra toàn bộ các thuộc tính ứng. Vậy SSN được gọi là khóa chính.
Một số gợi ý khi chọn khóa:
- Khóa không nên là tập hợp của quá nhiều thuộc tính. Trong trường hợp khóa có
nhiều thuộc tính, có thể thêm một thuộc tính “nhân tạo” thay chúng làm khóa chính cho quan hệ.
PHẦN I – CƠ SỞ DỮ LIỆU 38
Chương 4. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
- Nếu khóa chính được cấu thành từ một số thuộc tính, thì các thành phần nên
tránh sử dụng thuộc tính có giá trị thay đổi theo thời gian: như tên địa danh, phân loại.
4.2.4.2.2 Khóa dự tuyển (Candidate Key)
Trong tập hợp các thuộc tính của một bảng, có thể có nhiều thuộc tính có thể
dùng được làm khóa chính. Các thuộc tính đó được gọi là khóa dự tuyển.
Khóa dự tuyển cần thỏa mãn 2 tính chất sau: - Xác định duy nhất. - Không
dư thừa: Khi xóa đi bất kỳ một thuộc tính nào của khóa đều phá hủy tính
xác định duy nhất của khóa.
4.2.4.2.3 Khóa ngoại (Foreign Key)
Trong nhiều trường hợp, khóa chính của một bảng được đưa sang làm thuộc
tính bên bảng khác, thuộc tính đó gọi là khóa ngoại. Khóa ngoại đóng vai trò thể hiện liên kết giữa 2 bảng.
4.2.4.2.4 Khóa phụ (Second Key)
Đóng vai trò khi ta muốn sắp xếp lại dữ liệu trong bảng.
Ví dụ: Ta có bảng SINHVIEN (MaSV, Hoten, GioiTinh, Diem).
Muốn sắp xếp lại danh sách sinhviên theo thứ tự a, b, c.. của Họ tên. Khi đó
thuộc tính Hoten được gọi là khóa phụ.
4.2.4.3 Ràng buộc thực thể
Mỗi một lược đồ quan hệ R, chúng ta phải xác định khoá chính của nó. Khoá
chính trong lược đồ quan hệ được gạch chân ở phía dưới của thuộc tính.
Sau đây là danh sách các lược đồ quan hệ trong cơ sở dữ liệu COMPANY sau
khi xác định ràng buộc thực thể:
Hình 4.1. Lược đồ cơ sở dữ liệu COMPANY
PHẦN I – CƠ SỞ DỮ LIỆU 39
Chương 4. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
Hình 4.2. Một thể hiện của cơ sở dữ liệu COMPANY
Lưu ý: Ràng buộc khoá và ràng buộc thực thể được xác định cho từng quan hệ.
PHẦN I – CƠ SỞ DỮ LIỆU 40
Chương 4. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
4.2.4.4 Ràng buộc toàn vẹn tham chiếu
Một bộ giá trị trong một quan hệ tham chiếu tới một bộ giá trị đã tồn tại trong một quan hệ khác.
Ràng buộc toàn vẹn tham chiếu phải xác định trên 2 quan hệ: quan hệ tham
chiếu (referencing relation) và quan hệ được tham chiếu (referenced relation). R1 FK … … referencing relation PK R2 referenced relation
Ràng buộc toàn vẹn tham chiếu còn được gọi là ràng buộc khoá ngoại.
Ví dụ: Thuộc tính DNo của quan hệ EMPLOYEE tham chiếu tới thuộc tính
DNumber của quan hệ DEPARTMENT.
Hình 4.3. Các ràng buộc tham chiếu trong cơ sở dữ liệu COMPANY
4.2.5 Các phép toán trên CSDL quan hệ
4.2.5.1 Phép toán cập nhật
a. Phép chèn (INSERT):
Là phép bổ xung thêm một bộ vào quan hệ r cho trước.
PHẦN I – CƠ SỞ DỮ LIỆU 41
Chương 4. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
+ Biểu diễn: INSERT(r; A1=d1,A2=d2,...,An=dn) với Ai là thuộc tính, di thuộc dom(Ai), i=1,..,n.
Nếu thứ tự các trường là cố định, có thể biểu diễn phép chèn dưới dạng không
tường minh INSERT(r; d1,d2,..., dn).
+ Ví dụ : Chèn thêm một bộ t4=(‘004’, ‘Hoàng Thanh Vân’,1969, ‘Hà nội’,
235) vào quan hệ EMPLOYEE(SSN, Name, BDate, Address, Salary) ta có thể viết:
INSERT(EMPLOYEE; SSN= ‘004’, Name= ‘Hoàng Thanh Vân’,
BDate=1969, Address= ‘Hà nội’, Salary=235).
+ Chú ý : Kết quả của phép chèn có thể gây ra một số sai sót là :
- Bộ mới được thêm không phù hợp với lược đồ quan hệ cho trước
- Một số giá trị của một số thuộc tính nằm ngoài miền giá trị của thuộc tính đó.
- Giá trị khoá của bộ mới có thể là giá trị đã có trong quan hệ đang lưu trữ.
b. Phép loại bỏ (DEL): Là phép xoá một bộ ra khỏi một quan hệ cho trước.
- Biểu diễn : DEL(r; A1=d1,A2=d2,...,An=dn) hay DEL((r, d1,d2,..., dn).
Nếu K=(E1,E2,...,Em) là khoá thì có thể viết DEL(r; E1=e1,E2=e2,...,Em=em) - Ví dụ :
+ Để xoá bộ t1 ra khỏi quan hệ r:
DEL(EMPLOYEE; SSN= ‘004’, Name= ‘Hoàng Thanh Vân’, BDate=1969,
Address= ‘Hà nội’, Salary=235).
+ Cần loại bỏ một nhân viên trong quan hệ EMPLOYEE mà biết SSN đó là
‘004’ thì chỉ cần viết: DEL(EMPLOYEE; SSN= ‘004’)
c. Phép cập nhật (UPDATE): Là phép tính dùng để sửa đổi một số giá trị nào
đó tại một số thuộc tính. + Biểu diễn :
UPD (r; A1=d1,A2=d2,...,An=dn; B1=b1,B2=b2,...,Bk=bk)
Với {B1,B2,...,Bk} là tập các thuộc tính mà tại đó các giá trị của bộ cần thay
đổi. {B1,B2,...,Bk} ứng với tập thuộc tính {A1,A2,...,An}
Hay UPD(r; E1=e1,E2=e2,...,Em=e; B1=b1,B2=b2,...,Bk=bk) với K=(E1,E2,...,Em) là khoá.
+ Ví dụ : Để thay đổi tên nhân viên có SSN= ‘003’ trong quan hệ EMPLOYEE
thành Nguyễn Thanh Mai ta có thể viết :
CH (EMPLOYEE; SSN= ‘03’; Name= ‘Nguyễn Thanh Mai’)
4.2.5.2 Phép toán đại số quan hệ
Đại số quan hệ gồm một tập các phép toán tác động trên các quan hệ và cho kết quả là một quan hệ.
Có 8 phép toán được chia làm 2 nhóm : Nhóm các phép toán tập hợp (hợp,
giao, trừ, tích đề các), nhóm các phép toán quan hệ ( chọn, chiếu, kết nối, chia).
PHẦN I – CƠ SỞ DỮ LIỆU 42
Chương 4. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
Định nghĩa : Hai quan hệ r và s được gọi là khả hợp nếu chúng được xác định
trên cùng một tập các miền giá trị (Có nghĩa là chúng được xác đinh trên cùng một tập các thuộc tinh). a. Phép hợp:
- Phép hợp của hai quan hệ khả hợp r U s = {t / t thuộc r hoặc t thuộc s} Ví dụ: r ( A, B , C ) s( A, B , C ) r U s ( A, B , C ) a1 b1 c1 a1 b1 c1 a1 b1 c1 a2 b2 c2 a1 b2 c2 a2 b2 c2 a1 b2 c2
- Phép hợp của hai quan hệ là phép gộp các bộ của hai bảng của một quan hệ
thành một bảng và bỏ đi các bộ trùng.
Ví dụ: EMPLOYEE1 EMPLOYEE2 SSN Name DNo SSN Name DNo 001 Hoàng P001 003 Huy P001 002 Thiện P002 002 Thiện P002 004 Thiện P003
EMPLOYEE1 ∪ EMPLOYEE2 = EMPLOYEE3 SSN Name DNo 001 Hoàng P001 002 Thiện P002 003 Huy P001 004 Thiện P003
Hình 4.4. Minh họa dữ liệu phép hợp 2 quan hệ b. Phép giao
- Phép giao của hai quan hệ khả hợp r ∩ s ={t / t thuộc r và t thuộc s} Ví dụ : r ∩ s ( A, B , C ) a1 b1 c1
- Phép giao của hai quan hệ là lấy ra các bộ cùng có mặt ở cả hai bảng của một quan hệ.
Ví dụ: EMPLOYEE1 ∩ EMPLOYEE2 = 002, Thiện, P002 c. Phép trừ
- Phép trừ của hai quan hệ khả hợp r - s = {t / t thuộc r và t không thuộc s} Ví dụ : r - s ( A, B , C ) a2 b2 c2
PHẦN I – CƠ SỞ DỮ LIỆU 43
Chương 4. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
- Phép trừ của hai quan hệ A và B là lấy các bộ có trong bảng A mà không có trong bảng B.
Ví dụ: EMPLOYEE1 - EMPLOYEE2 = 001, Hoàng, P001 EMPLOYEE2 - EMPLOYEE1 SSN Name DNo 003 Huy P001 004 Thiện P003
d. Phép tích đề các :
- Cho quan hệ r(R), R={A1,A2,...,An} và quan hệ s(U), U={B1,B2,...,Bm} - Tích đề các :
r x s ={t=(a1,a2,...,an, b1,b2,...,bm) /a1,a2,...,an Єr và b1,b2,...,bm Єs} Ví dụ : r (A , B ) ; s(C , D) ; r x s = k (A, B, C, D) a1 1 1 d1 a1 1 1 d1 a2 2 2 d2 a1 1 2 d2 a3 3 a2 2 1 d1 a2 2 2 d2 a3 3 1 d1 a3 3 2 d2
- Chú ý: Bậc k = bậc r + bậc s , lực lượng k = lực lượng r x lực lượng s
Phép tích đề các là phép toán đắt nhất trong các phép toán của đại số quan hệ.
e. Phép chọn (cắt ngang) - một ngôi
- Là phép toán lọc ra một tập con các bộ của quan hệ đã cho theo biểu thức chọn F.
- Biểu thức chọn F là một tổ hợp logic các toán hạng, mỗi toán hạng là một
phép so sánh đơn giản giữa hai thuộc tính hoặc giữa một thuộc tính và một giá trị hằng.
- Phép toán logic: AND (và), OR (hoặc), NOT (phủ định).
- Phép toán so sánh : <, >, =, >=, <=, <>
- Phép chọn trên quan hệ r với biểu thức chọn F
σF(r) = { t thuộc r / F(t) đúng} dụ :
r (A , B) ; F1 = (A=a1) OR (B=3) σF1(r) = r' (A ,B) a1 1 a1 1 a2 2 a3 3 a3 3
PHẦN I – CƠ SỞ DỮ LIỆU 44
Chương 4. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
Bậc r = bậc r'; lực lượng của r >= lực lượng của r'
-Phép chọn trên quan hệ là lấy ra các dòng của bảng quan hệ thoả mãn một điều
kiện nào đó trên tập các cột thuộc tính.
Ví dụ : Chọn trên quan hệ EMPLOYEE3 các nhân viên thuộc phòng có DNo=P001 SSN Name DNo 001 Hoàng P001 003 Huy P001
f. Phép chiếu (cắt dọc ) - 1 ngôi
- Là phép toán loại bỏ đi một số thuộc tính và chỉ giữ lại một số thuộc tính được
chỉ ra của một quan hệ.
- Cho quan hệ r(R), X là tập con của tập thuộc tính R. Phép chiếu của quan hệ r
trên X : ΠX(r) = { t[X]/ thuộc r}; t[X] là bộ t lấy trên tập thuộc tính X.
Ví dụ : Cho r(A,B) như trên , X={A}; ΠX(r) = u(A) a1 a2 a3
- Bậc của r > bậc của k. Lực lượng của r > lực lượng của k
- Phép chiếu trên quan hệ là lấy một số cột (thuộc tính) nào đó của bảng quan hệ.
Ví dụ : Lấy danh sách mã NV của quan hệ NHANVIEN Π SSN SSN (EMPLOYEE3) = 001 002 003 004
g. Phép kết nối - 2 ngôi 1. Phép kết nối
- Cho hai quan hệ r(R), R={A1,A2,...,An} và quan hệ s(U), U={B1,B2,...,Bm}.
- Phép xếp cạnh nhau: cho hai bộ d = (d1,d2,...,dn) và e = (e1,e2,...,em) phép xếp
cạnh nhau của d và e là : (d^e) = (d1,d2,...,dn, e1,e2,...,em)
- Phép kết nối giữa quan hệ r có thuộc tính A và quan hệ s có thuộc tính B với một phép so sánh θ là :
r >< s = {a^b / a thuộc r, b thuộc s và a(A) θ b(B)}
PHẦN I – CƠ SỞ DỮ LIỆU 45
Chương 4. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ
Ví dụ : Xét quan hệ r và s trong ví dụ phép tích đề các r (A , B ) ; s(C , D) ; r x s = k (A, B, C, D) a1 1 1 d1 (B>=C) a1 1 1 d1 a2 2 2 d2 a1 1 2 d2 a3 3 a2 2 2 d2 a3 3 1 d1 a3 3 2 d2
- Lực lượng của phép kết nối k' <= lực lượng của phép tích đề các k. k' = σ
(k) r >< s = σ (r x s) B>=C F F - Chú ý :
+ Để phép kết nối có nghĩa, miền trị dom(A) phải so sánh được qua phép so
sánh θ với miền trị dom(B)
+ Nếu phép so sánh θ là "=" thì phép kết nối gọi là kết nối bằng.
2. Phép kết nối tự nhiên
Phép toán kết nối bằng trên những thuộc tính cùng tên của hai quan hệ và sau
khi kết nối thì cắt bỏ đi một thuộc tính cùng tên bằng phép chiếu của đại số quan hệ
được gọi là phép kết nối tự nhiên ký hiệu *. -Ví dụ : r(A, B, C) s(C, D, E) r*s (A, B, C, D, E) a1 1 1 1 d1 e1 a1 1 1 d1 e1 a2 2 1 2 d2 e2 a2 2 1 d1 e1 a1 2 2 3 d3 e3 a1 2 2 d2 e2 r*s = ΠABCDE( r >< s) C=C
- Ví dụ : Cho hai quan hệ NHANVIEN và PHONG SSN Name DNo DNo DName 001 Hoàng P001 P001 Tổ chức 002 Thiện P002 P002 Kinh doanh 003 Huy P001 P003 Nhân sự 004 Thiện P003 P004 Tiếp thị
Kết nối tự nhiên của hai quan hệ : SSN Name DNo DName 001 Hoàng P001 Tổ chức 002 Thiện P002 Kinh doanh 003 Huy P001 Tổ chức 004 Thiện P003 Nhân sự
Hình 4.5. Minh họa dữ liệu phép kết nối tự nhiên 2 quan hệ
PHẦN I – CƠ SỞ DỮ LIỆU 46
Chương 4. MÔ HÌNH CƠ SỞ DỮ LIỆU QUAN HỆ h. Phép chia
- Cho r là một quan hệ n- ngôi, s là quan hệ m- ngôi (n>m, s khác rỗng). Phép
chia quan hệ r cho quan hệ s là tập tất cả các n-m bộ t sao cho với mọi bộ u thuộc s thì
bộ (t^u) thuộc r : r ÷ s = {t / với mọi u thuộc s thì (t^u) thuộc r} dụ : r(A, B, C, D) s(C, D) r ÷ s (A, B) a b c d c d a b a b e f e f e d b c e f e d c d e d e f a b d e - Ví
dụ với hai quan hệ : PRODUCT và SUPPORT PNo PName SNo PNo PName h1 Đài n1 h1 Đài h2 TV n1 h2 TV n1 h3 Tủ lạnh h3 tủ lạnh n2 h3 Tủ lạnh n2 h1 Đài n3 h1 Đài n3 h2 TV Cung cấp Mặt hàng = n3 h3 Tủ lạnh SNo n4 h1 Đài n1 n3
Hình 4.6. Minh họa dữ liệu phép chia 2 quan hệ
PHẦN I – CƠ SỞ DỮ LIỆU 47
Chương 5. CHUYỂN TỪ MÔ HÌNH ER SANG MÔ HÌNH QUAN HỆ
5 Chương 5. CHUYỂN TỪ MÔ HÌNH ER SANG MÔ HÌNH QUAN HỆ
Như chúng ta đã biết, mô hình ER là mô hình dữ liệu mức khái niệm. Sau quá
trình khảo sát thiết kế, ta thu được mô hình này. Từ mô hình này ta có thể sử dụng các
quy tắc chuyển sang mô quan hệ để thực hiện quản lý cơ sở dữ liệu trên máy tính.
Sau đây là 8 bước được sử dụng để chuyển từ mô hình ER sang mô hình quan hệ:
Bước 1: Mỗi kiểu thực thể bình thường (không phải kiểu thực thể yếu) trong
mô hình ER trở thành một quan hệ. Quan hệ đó bao gồm tất cả các thuộc tính đơn giản
và thuộc tính tổ hợp của thực thể. Thuộc tính định danh của thực thể là khóa chính của quan hệ.
Ví dụ: Kiểu thực thể: EMPLOYEE, DEPARTMENT, PROJECT
==> quan hệ: EMPLOYEE, DEPARTMENT, PROJECT Fname Mint Lname Sex Address Name SSN EMPLOYEE Salary Bdate
Quan hệ: EMPLOYEE (Ssn, fname, minit, lname, bdate, sex, address, salary) Number Locations Name DEPARTMENT
Quan hệ: DEPARTMENT ( Dnumber, Dname)
Lưu ý: Thuộc tính Locations không có trong quan hệ vì nó là thuộc tính đa trị. Number Name PROJECT Location
Quan hệ: PROJECT (Pnumber, Pname, Plocation)
PHẦN I – CƠ SỞ DỮ LIỆU 48
Chương 5. CHUYỂN TỪ MÔ HÌNH ER SANG MÔ HÌNH QUAN HỆ
Bước 2: Cho mỗi thực thể yếu (Weak Entity) trong mô hình ER, tạo thành một
quan hệ R, tất cả thuộc tính đơn giản của thực thể yếu trở thành thuộc tính của R.
Thêm vào đó, thuộc tính định danh của thực thể chủ trở thành khóa ngoại của R.
Khoá chính của R là sự kết hợp giữa thuộc tính định danh của thực thể chủ và
thuộc tính định danh của thực thể yếu. Ví dụ: SSN EMPLOYEE 1 dependents_of N DEPENDENT Name Sex BirthDate Relationship
DEPENDENT (Essn, Dependent_name, sex, bdate, relationship)
Bước 3: Cho mỗi mối liên kết 1-1 trong mô hình ER: - Xác
định một quan hệ S_T. Kiểu thực thể có sự tham gia toàn bộ vào liên kết
trở thành quan hệ S, thực thể còn lại trở thành quan hệ T.
- Đưa khóa chính của T sang làm khóa ngoại của S.
- Thuộc tính của mối quan hệ S_T trở thành thuộc tính của S. Ví dụ: SSN 1 1 EMPLOYEE manages DEPARTMENT StartDate
DEPARTMENT(…, MGRSSN, MGRSTARTDATE)
PHẦN I – CƠ SỞ DỮ LIỆU 49
Chương 5. CHUYỂN TỪ MÔ HÌNH ER SANG MÔ HÌNH QUAN HỆ
Bước 4: Cho mỗi mối liên kết 1_N trong mô hình ER. Chuyển khóa chính của
quan hệ phía 1 sang làm khóa ngoại của quan hệ phía N. Ví dụ 1: SSN DNO N 1 EMPLOYEE works_for DEPARTMENT EMPLOYEE(…, DNO) Ví dụ 2: SSN 1 N Supervisor EMPLOYEE
EMPLOYEE(…, SuperSSN)
Bước 5:Cho mỗi mối liên kết MN, sinh ra một quan hệ mới R, chuyển khóa
chính của hai quan hệ phía M và N thành khóa ngoại của quan hệ R. Khóa chính của R
là sự kết hợp của hai khóa ngoại. Ví dụ: SSN Number M N EMPLOYEE works_on PROJECT Hours
WORKS_ON( PNO, ESSN, Hours)
Bước 6: Nếu gặp thuộc tính đa trị:
- Chuyển thuộc tính đa trị thành quan hệ mới.
- Thuộc tính định danh (hoặc 1 phần thuộc tính định danh) của thực thể
chính chuyển thành khóa ngoại của quan hệ mới.
PHẦN I – CƠ SỞ DỮ LIỆU 50
Chương 5. CHUYỂN TỪ MÔ HÌNH ER SANG MÔ HÌNH QUAN HỆ
- Khóa chính của quan hệ mới là khóa chính của bản thân quan hệ +
khóa ngoại do thực thể chính chuyển sang. Ví dụ: Number Locations Name DEPARTMENT
DEPT_LOCATIONS ( DNumber, DLocation) Bước 7:
Cho mỗi mối liên kết có bậc (>2), tạo ra quan hệ mới (R), khóa chính của các
quan hệ tham gia liên kết được đưa làm khóa ngoại của quan hệ R và các khóa ngoại
này đồng thời đóng vai trò là khóa chính của R. Ví dụ: quantity projname sname SUPPLIER SUPPLY PROJECT PART partno
SUPPLY (SName, ProjName, PartNo, Quantity)
Bước 8: Xử lý quan hệ giữa lớp cha/ lớp con và chuyên biệt hoá hoặc tổng quát hoá.
Các lựa chọn khác nhau cho việc chuyển đổi một số lượng các lớp con từ cùng
một chuyên biệt (hoặc tổng quát hoá thành lớp cha). Ngoài 7 bước đã trình bày ở trên
trong bước 8 dưới đây đưa ra một lựa chọn phổ biến nhất và các điều kiện mà mỗi lựa
chọn có thể sử dụng. Sử dụng ký hiệu Attr(R) để biểu thị các thuộc tính của R và
PK(R) là khoá chính của R. Cách thực hiện:
Chuyển đổi mỗi chuyên biệt hoá có: - m
lớp con { S1, S2 , … , Sm} và lớp cha C, thuộc tính của C là { k, a1
, a2 , …, an} và k là khoá chính thành những lược đồ quan hệ, chúng
ta có thể sử dụng một trong 4 lựa chọn sau:
1. Lựa chọn 8A:
PHẦN I – CƠ SỞ DỮ LIỆU 51
Chương 5. CHUYỂN TỪ MÔ HÌNH ER SANG MÔ HÌNH QUAN HỆ
- Tạo quan hệ L cho lớp cha C với các thuộc tính Attrs(L)={k, a1, …, an} và khoá
chính của L là: PK(L)=k.
- Tạo quan hệ Li cho mỗi lớp con tương ứng Si với các thuộc tính Attrs(Li)={k} U
{thuộc tính của Si}
PK(Li)=k. Ví dụ: FName Minit LName Name Ss BirthDate Address Salary EMPLOYEE Job Type d “Secretary” “Engineer” Typing Speed “Technician” TGrade EngType SECRETAR TECHNICIAN ENGINEER
Chuyển chuyên biệt hoá trên thành các quan hệ sau:
EMPLOYEE(SSN, FName, Minit, LName, BirthDate, Address, Salary) SECRETARY(SSN, TypingSpeed) TECHNICIAN(SSN, TGrade) ENGINEER(SSN, EngType)
2. Lựa chọn 8B:

Tạo một quan hệ Li cho mỗi lớp con Si , với các thuộc tính Attr(Li) = {k, a1,
a2,…, am} U {thuộc tính của Si}PK(Li) = k. Ví dụ:
PHẦN I – CƠ SỞ DỮ LIỆU 52
Chương 5. CHUYỂN TỪ MÔ HÌNH ER SANG MÔ HÌNH QUAN HỆ LicensePlateNO Vehicleld Price VEHICLE d NoOfPassengers NoOfAxles MaxSpeed Tonnage CAR TRUCK
Chuyển chuyên biệt hoá trên thành các quan hệ sau:
CAR(Vehicleld, LicensePlateNo, Price, MaxSpeed, NoOfPassengers)
TRUCK(Vehicleld, LicensePlateNo, Price, NoOfAxles, Tonnage)

3. Lựa chọn 8C:
Tạo một quan hệ L với các thuộc tính Attr(L) = {k, a1 , a2 , …, an } U {thuộc
tính của S1} U… U {thuộc tính của Sm} U {t}PK(L) = k. Trong đó, t là thuộc tính
phân biệt chỉ ra bản ghi thuộc về lớp con nào, vì thế miền giá trị của t ={1,2,…,m}.
Ví dụ: Đối với chuyên biệt hoá của EMPLOYEE, ta chỉ tạo ra một quan hệ L như sau:
EMPLOYEE(SSN, FName, Minit, LName, BirthDate, Address, Salary,
TypingSpeed, Tgrad, EngType, JobType)

Thuộc tính phân biệt
4. Lựa chọn 8D:
Tạo một quan hệ L với các thuộc tính Attr(L) = {k, a1 , a2 , …, an } U {thuộc
tính của S1} U… U {thuộc tính của Sm} U {t1 , t2 , …, tmj} và PK(L) = k. Lựa chọn
này cho chuyên biệt hoá của các lớp con được nạp chồng (nhưng cũng áp dụng cho
một chuyên biệt tách rời), và với mỗi ti, 1≤ i ≤ m, là thuộc tính BOOLEAN chỉ ra bộ theo lớp con Si. Ví dụ:
PHẦN I – CƠ SỞ DỮ LIỆU 53
Chương 5. CHUYỂN TỪ MÔ HÌNH ER SANG MÔ HÌNH QUAN HỆ PartNo Description PART o ManufactureDate SupplierName DrawingNo BatchNo ListPrice MANUFACTURED_PART PURCHASED_PART
PART (ParNo, Description, Mflag, DrawingNo, ManufactureDate, BatchNo,
PFlag, SupplierName, ListPrice)
Thuộc tính phân biệt
PHẦN I – CƠ SỞ DỮ LIỆU 54
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ
6 Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ
6.1 Một số hướng dẫn khi thiết kế cơ sở dữ liệu quan hệ
Việc quan trọng nhất khi thiết kế cơ sở dữ liệu quan hệ là ta phải chọn ra tập
các lược đồ quan hệ tốt nhất dựa trên một số tiêu chí nào đó. Và để có được lựa chọn
tốt, thì chúng ta cần đặc biệt quan tâm đến mối ràng buộc giữa các dữ liệu trong quan
hệ, đó chính là các phụ thuộc hàm.
Để hiểu hơn về câu hỏi tại sao phải thiết kế một cơ sở dữ liệu tốt, chúng ta hãy
cùng tìm hiểu ví dụ sau:
RESULT(StNo, StName, SubNo,SubName, Credit, Mark)
Quan hệ RESULT( Kết quả học tập) có các thuộc tính: StNo(Mã sinh viên),
StName(Tên sinh viên), SubNo(Mã môn học), SubName(Tên môn học), Credit (Số
đơn vị học trình) và Mark (điểm thi của sinh viên trong môn học).
Sau đây là minh hoạ dữ liệu của quan hệ RESULT: StNo StName SubNo SubName Credit Mark St01 Mai Sub04 CSDL 3 9 St01 Mai Sub01 TRR 5 10 St01 Mai Sub02 PPS 4 8 St02 Vân Sub04 CSDL 3 10 St02 Vân Sub01 TRR 5 9 St03 Thanh Sub07 Tiếng Anh 4 8
Hình 6.1. Minh họa dữ liệu của quan hệ RESULT
Quan hệ trên thiết kế chưa tốt vì:
1. Dư thừa dữ liệu (Redundancy): Thông tin về sinh viên và môn học bị lặp
lại nhiều lần. Nếu sinh viên có mã St01 thi 10 môn học thì thông tin về sinh
viên này bị lặp lại 10 lần, tương tự đối với môn học có mã Sub04, nếu có
1000 sinh viên thi thì thông tin về môn học cũng lặp lại 1000 lần
2. Không nhất quán (Inconsistency): Là hệ quả của dư thừa dữ liệu. Giả sử
sửa bản ghi thứ nhất, tên sinh viên được chữa thành Nga thì dữ liệu này lại
không nhất quán với bản ghi thứ 2 và 3 (vẫn có tên là Mai).
3. Dị thường khi thêm bộ (Insertion anomalies): Nếu muốn thêm thông tin
một sinh viên mới nhập trường (chưa có điểm môn học nào) vào quan hệ thì
không được vì khoá chính của quan hệ trên gồm 2 thuộc tính StNo và SubNo.
PHẦN I – CƠ SỞ DỮ LIỆU 55
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ
4. Dị thường khi xoá bộ (Deletion anomalies): Giả sử xoá đi bản ghi cuối
cùng, thì thông tin về môn học có mã môn học là SubNo=Sub07 cũng mất.
Nhận xét: Qua phân tích trên, ta thấy chúng ta nên tìm cách tách quan hệ trên
thành các quan hệ nhỏ hơn.
Trong chương này chúng ta sẽ nghiên cứu về những khái niệm và các thuật toán
để có thể thiết kế được những lược đồ quan hệ tốt.
6.2 Phụ thuộc hàm(Functional Dependencies)
- Phụ thuộc hàm (FDs) được sử dụng làm thước đo để đánh giá một quan hệ tốt. - FDs và khoá
được sử dụng để định nghĩa các dạng chuẩn của quan hệ.
- FDs là những ràng buộc dữ liệu được suy ra từ ý nghĩa và các mối
liên quan giữa các thuộc tính.
6.2.1 Định nghĩa phụ thuộc hàm
Cho r(U), với r là quan hệ và U là tập thuộc tính.
Cho A,B U, phụ thuộc hàm X → Y (đọc là X xác định Y) được định nghĩa là:
t, t’ r nếu t.X = t’.X thì t.Y = t’.Y
(Có nghĩa là: Nếu hai bộ có cùng trị X thì có cùng trị Y)
Phụ thuộc hàm được suy ra từ những quy tắc dữ liệu khi ta khảo sát yêu cầu của bài toán. Ví dụ:
Từ mã số bảo hiểm xã hội, ta có thể suy ra được tên của nhân viên (Ssn→ Ename).Từ
mã dự án, ta có thể suy ra tên và vị trí của dự án (PNumber→{PName, PLcation})
Hình 6.2. Biểu diễn FDs của 2 lược đồ quan hệ EMP_DEPT và EMP_PROJ
PHẦN I – CƠ SỞ DỮ LIỆU 56
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ
6.2.2 Hệ tiên đề Armstrong
Cho lược đồ quan hệ r(U), U là tập thuộc tính, F là tập các phụ thuộc hàm được
định nghĩa trên quan hệ r.
Ta có phụ thuộc hàm A → B được suy diễn logic từ F nếu quan hệ r trênU
thỏa các phụ thuộc hàm trong F thì cũng thỏa phụ thuộc hàm A → B. Ví dụ:
Tập phụ thuộc hàm: F = { A → B, B → C}
Ta có phụ thuộc hàm A → C là phụ thuộc hàm được suy từ F.
Hệ tiên đề Armstrong được sử dụng để tìm ra các phụ thuộc hàm suy diễn từ F.
Hệ tiên đề Armstrong bao gồm:
1. Phản xạ: Nếu Y ⊂X thì X → Y
2. Tăng trưởng: Nếu Z ⊂U và X → Y thì XZ → YZ (Ký hiệuXZ là X∪Z)
3. Bắc cầu: Nếu X → Y và Y → Z thì X → Z
4. Giả bắc cầu: Nếu X → Y và WY → Z thì XW → Z
5. Luật hợp: Nếu X → Y và X → Z thì X →YZ
6. Luật phân rã: Nếu X → Y và Z ⊂Y thì X → Z
Trong sáu luật trên thì a4, a5, a6 suy được từ a1, a2, a3.
6.2.3 Bao đóng của tập phụ thuộc hàm - Ta
gọi f là một phụ thuộc hàm được suy dẫn từ F, ký hiệu là F ├ f nếu tồn
tại một chuỗi phụ thuộc hàm: f1, f2,…., fn sao cho fn=f và mỗi fi là một thành
viên của F hay được suy dẫn từ những phụ thuộc hàm j=1,…,i-1 trước đó nhờ vào luật dẫn.
- Bao đóng của F: ký hiệu là F+ là tập tất cả các phụ thuộc hàm được suy từ
F nhờ vào hệ tiên đề Armstrong. F+ được định nghĩa:
F + = { X →Y | Fㅑ X →Y }
6.2.4 Bao đóng của tập thuộc tính X trên F
Bao đóng của tập thuộc tính X xác định trên tập phụ thuộc hàm F ký hiệu là X+
là tập hợp tất cả các thuộc tính có thể suy ra từ X. Ký hiệu:
X + = { Y | Fㅑ X →Y }
X+ có thể được tính toán thông qua việc lặp đi lặp lại cá quy tắc 1, 2, 3 của hệ tiên đề Armstrong.
Thuật toán xác định bao đóng của tập thuộc tính X+: X+ := X; repeat
PHẦN I – CƠ SỞ DỮ LIỆU 57
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ oldX+ := X+;
for (mỗi phụ thuộc hàm Y →Z trong F) do if Y ⊆ X+ then X+ ∪ Z until (oldX+ = X+ );
Ví dụ: Cho tập phụ thuộc hàm:
F = { SSN→ENAME, PNUMBER→{PNAME, PLOCATION}, {SSN, PNUMBER} → HOURS} Suy ra: {SSN}+ = {SSN, ENAME}
{PNUMBER}+ = {PNUMBER, PNAME, PLOCATION}
{SSN, PNUMBER}+ = {SSN, PNUMBER, ENAME, PNAME, PLOCATION, HOURS}
Như vậy, tập thuộc tính {SSN, PNUMBER} là khoá của quan hệ.
6.2.5 Khoá của quan hệ
Cho quan hệ r(R), tập KR được gọi là khóa của quan hệ r nếu: K+=R và nếu
bớt một phần tử khỏi K thì bao đóng của nó sẽ khác R.
Như thế tập KR là khoá của quan hệ nếu K+=R và ( K \A )+ R , AR.
Ví dụ: ChoR = { A, B, C, D, E, G } và tập phụ thuộc hàm:
F= { AB → C , D → EG , BE → C , BC → D , CG → BD, ACD → B, CE → AG}
Ta sẽ thấy các tập thuộc tính:
K1 = { A, B } , K2 = {B,E} , K3={C,G} , K4={C,E} , K5 = {C,D}, K6={B,C}
đều là khóa của quan hệ.
Như vậy, một quan hệ có thể có nhiều khóa. Thuật toán tìm khoá:
Ý tưởng: Bắt đầu từ tập U vì Closure(U+,F) = U. Sau đó ta bớt dần các phần
tử của U để nhận được tập bé nhất mà bao đóng của nó vẫn bằng U. Thuật toán:
Input: Lược đồ quan hệ r(U), tập phụ thuộc hàm F. Output: Khoá K Bước 1: Gán K = U
Buớc 2: Lặp lại các bước sau:
Loại phần tử A khỏi K mà Closure( K -A,F ) =U Nhận xét:
PHẦN I – CƠ SỞ DỮ LIỆU 58
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ -
Thuật toán trên chỉ tìm được một khóa. Nếu cần tìm nhiều khóa, ta
thay đổi trật tự loại bỏ các phần tử của K. -
Chúng ta có thể cải thiện tốc độ thực hiện thuật toán trên bằng cách:
Trong bước 1 ta chỉ gán K=Left (là tập các phần tử có bên tay trái
của các phụ thuộc hàm) Ví dụ:
Cho lược đồ quan hệ R = { A,B,C,D,E,G,H,I} và tập phụ thuộc hàm:
F= { AC → B, BI → ACD, ABC → D , H → I , ACE → BCG , CG → AE } Tìm khoá K? Ta có Left={A,B,C,H,E,G}
Bước 1: K=Left={A,B,C,H,E,G} Bước 2: Tập thuộc tính A B C D E G H I Ghi chú ABCHEG x x x x x x x x BCHEG x x x x x x x x Loại A CHEG x x x x x x x x Loại B CHG x x x x x x x x Loại E
Như vậy, {C,H,G} là một khoá của R.
Nếu muốn tìm tất cả các khoá của R, ta cần thay đổi trật tự loại bỏ phần tử của khoá K.
6.2.6 Tập phụ thuộc hàm tương đương
Hai tập phụ thuộc hàm F và G là tương đương nếu:
- Tất cả các phụ thuộc hàm trong F có thể được suy ra từ G, và
- Tất cả các phụ thuộc hàm trong G có thể suy ra từ F.
Vì thế, F và G là tương đương nếu F+ = G+
Nếu F và G là tương đương thì ta nói F phủ G hay G phủ F.
Vì thế, thuật toán sau đây sẽ kiểm tra sự tương đương của hai tập phụ thuộc hàm:
- F phủ E: ∀ X Y ∈ E, tính X+ từ F, sau đó kiểm tra xem Y∈ X+ - E
phủ F: ∀ X Y ∈ F, tính X+ từ E, sau đó kiểm tra xem Y∈X+
6.2.7 Tập phụ thuộc hàm tối thiểu
Tập phụ thuộc hàm là tối thiểu nếu nó thoả mãn các điều kiện sau:
1. Chỉ có một thuộc tính nằm ở phía bên tay trái của tất cả các phụ thuộc hàm trong F.
PHẦN I – CƠ SỞ DỮ LIỆU 59
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ 2. Không
thể bỏ đi bất kỳ một phụ thuộc hàm nào trong F mà vẫn có
được một tập phụ thuộc hàm tương đương với F (tức là, không có phụ thuộc hàm dư thừa). 3. Không
thể thay thế bất kỳ phụ thuộc hàm X A nào trong F bằng phụ
thuộc hàm Y A, với Y⊂X mà vẫn có được một tập phụ thuộc hàm
tương đương với F (tức là, không có thuộc tính dư thừa trong phụ thuộc hàm) Nhận xét:
- Tất cả các tập phụ thuộc hàm đều có phụ thuộc hàm tối thiểu tương đương với nó. - Có
thể có nhiều phụ thuộc hàm tối thiểu
Thuật toán: Tìm tập phụ thuộc hàm tối thiểu G của F 1. Đặt G:﹦F.
2. Thay thế tất cả các phụ thuộc hàm X→{A1,A2,…,An} trong G bằng n
phụ thuộc hàm: X →A1, X →A2,…, X →An.
3. Với mỗi phụ thuộc hàm X → A trong G, với mỗi thuộc tính B trong X
nếu ((G-{X → A}) ∪ {( X -{B}) →A} ) là tương đương với G, thì thay thế
X→ A bằng (X - {B}) → A trong G. (Loại bỏ thuộc tính dư thừa trong phụ thuộc hàm)
4. Với mỗi phụ thuộc hàm X → A trong G, nếu (G-{X → A}) tương
đương với G, thì loại bỏ phụ thuộc hàm X → A ra khỏi G.(Loại bỏ phụ thuộc hàm dư thừa) 6.3 Các
dạng chuẩn của quan hệ
6.3.1 Định nghĩa các dạng chuẩn
6.3.1.1 Dạng chuẩn 1(First Normal Form)
a. Định nghĩa
Một quan hệ ở dạng chuẩn 1 nếu các giá trị của tất cả thuộc tính trong quan hệ
nguyên tử (tức là chỉ có 1 giá trị tại một thời điểm). b. Ví dụ:
- Quan hệ sau đây không phải ở dạng chuẩn 1:
PHẦN I – CƠ SỞ DỮ LIỆU 60
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ Vi phạm dạng chuẩn 1
Hình 6.3. Dữ liệu của quan hệ DEPARTMENT vi phạm 1NF
- Chuyển quan hệ trên thành dạng chuẩn 1 (bằng cách xác định tập
thuộc tính {DNumber, DLocation} là khoá chính), ta có: Dư thừa
Hình 6.4. Dư thừa dữ liệu trong quan hệ ở dạng chuẩn 1 c. Nhận xét: - Quan
hệ ở dạng chuẩn 1 có tồn tại sự dư thừa dữ liệu, trong quan hệ
DEPARTMENT, nếu như một phòng có nhiều địa điểm khác nhau thì dữ liệu
của 3 thuộc tính (DName, DNumber, DMgrSsn) bị lặp lại nhiều lần. -
Chúng ta có thể tách quan hệ DEPARTMENT thành 2 quan hệ:
Hình 6.5. Quan hệ DEPARTMENT được tách thành 2 quan hệ
Mô tả dữ liệu của 2 quan hệ này: DEPARTMENT: DName DNumber DMgrSsn Research 5 333445555 Administration 4 987654321 Headquarters 1 888665555
PHẦN I – CƠ SỞ DỮ LIỆU 61
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ DEPT_LOCATIONS: DNumber DLocation 5 Bellaire 5 Sugarland 5 Houston 4 Stafford 1 Houston
Hình 6.6. Minh họa dữ liệu của DEPARTMENT và DEPT_LOCATIONS
6.3.1.2 Dạng chuẩn 2(Second Normal Form_2NF) a. Định nghĩa:
Một quan hệ ở dạng chuẩn 2 nếu: - Quan
hệ đó ở dạng chuẩn 1
- Tất cả các thuộc tính không phải là khóa phụ thuộc đầy đủ vào khóa.
- Phụ thuộc đầy đủ: Phụ thuộc hàm Y →Z là phụ thuộc hàm đầy đủ
nếu: ∀ AY, ( Y{A}) Z b. Sơ đồ mô tả:
R (A1, A2, A3, A4, A5, A6) Vi phạm chuẩn 2 c. Ví dụ:
Ví dụ 1: Quan hệ EMP_PROJ không phải ở dạng chuẩn 2 vì tồn tại 2 phụ
thuộc hàm FD2, FD3 là phụ thuộc hàm bộ phận (trái với phụ thuộc hàm đầy đủ)
Hình 6.7. Lược đồ quan hệ EMP_PROJ và các phụ thuộc hàm
Ví dụ 2: Quan hệ sau đây ở dạng chuẩn 2:
PHẦN I – CƠ SỞ DỮ LIỆU 62
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ
DNumber không phải là thuôc tính
khoá Quan hệ không vi phạm 2NF
Hình 6.8. Quan hệ EMP_DEPT ở dạng chuẩn 2 Dư thừa dữ liệu
Hình 6.9. Minh hoạ dữ liệu của quan hệ EMP_DEPT
Ví dụ 3: Quan hệ sau đây ở dạng 2NF:
THESIS
(StudentNo, Subject, Teacher) StudentNo Subject Teacher SV01 1 Nguyễn Văn Hiệu SV02 2 Ngô Lan Phương SV03 1 Nguyễn Văn Hiệu SV04 1 Nguyễn Văn Hiệu
Hình 6.10. Minh hoạ dữ liệu của quan hệ THESIS d. Nhận xét: -
Quan hệ ở dạng chuẩn 2 có sự dư thừa thông tin.
PHẦN I – CƠ SỞ DỮ LIỆU 63
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ -
Dạng chuẩn 2 có thể bị vi phạm khi quan hệ có khóa gồm hơn một thuộc tính.
6.3.1.3 Dạng chuẩn 3 (Third Normal Form) a. Định nghĩa
Một quan hệ ở dạng chuẩn 3 nếu: - Quan hệ ở dạng chuẩn 2
- Và không có chứa các phụ thuộc hàm phụ thuộc bắc cầu vào khoá.
- Phụ thuộc hàm phụ thuộc bắc cầu: Phụ thuộc hàm Y→Z là phụ
thuộc hàm bắc cầu nếu tồn tại hai phụ thuộc hàm:Y→X và X →Z.
b. Biểu diễn bằng sơ đồ
R (A1, A2, A3, A4, A5, A6)
Phụ thuộc hàm bắc cầu
Phụ thuộc hàm bộ phận
c. Ví dụ: Quan hệ EMP_DEPT không phải ở dạng chuẩn 3 vì còn tồn tại phụ
thuộc hàm DNumber DName, DMgrSsn là phụ thuộc hàm phụ thuộc bắc cầu vào khoá.
Hình 6.11. Quan hệ EMP_DEPT không phải ở dạng chuẩn 3
Tách quan hệ trên thành 2 quan hệ: EMPLOYEE và DEPARTMENT. 2 quan hệ
sau đều ở dạng chuẩn 3:
Hình 6.12. Tách quan hệ EMP_DEPT thành 2 quan hệ mới
PHẦN I – CƠ SỞ DỮ LIỆU 64
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ
Hình 6.13. Mô tả dữ liệu của quan hệ EMPLOYEE và DEPARTMET d. Nhận xét:
- Trong một cơ sở dữ liệu tốt, các quan hệ nên được chuyển về dạng chuẩn 3.
- Tuy nhiên, dữ liệu vẫn có khả năng dư thừa khi quan hệ có hai tập khóa dự
tuyển gối lẫn nhau, hoặc quan hệ có thuộc tính không khóa xác định một thuộc tính khóa .
6.3.1.4 Dạng chuẩn Boyce _Codd(Boyce-Codd Normal Form) a. Định nghĩa
Quan hệ R ở dạng chuẩn BCNF khi tất cả các phụ thuộc hàm X →A trong R
đều phải có X là khoá của R.
b. Ví dụ: Quan hệ sau ở dạng 3NF nhưng không phải BCNF. A, B: thuộc tính khoá
C: không phải là thuộc tính khoá FD1 FD2
PHẦN I – CƠ SỞ DỮ LIỆU 65
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ
Hình 6.14. Minh hoạ dữ liệu của quan hệ TEACH vi phạm chuẩn Boyce -Codd
Để nhận được quan hệ ở BCNF, ta có thể tách quan hệ trên:
Cách 1: R1(Student, Instructor) và R2(Student, Course)
Cách 2: R1(Couse, Instructor} và R2(Course, Student)
Cách 3: R1(Instructor, Course} và R2(Instructor, Student)
Lưu ý: Việc tách quan hệ như trên sẽ làm mất đi phụ thuộc hàm FD1.
6.3.2 Phép phân rã các lược đồ quan hệ 6.3.2.1 Định nghĩa
Phép phân rã các lược đồ quan hệ R={A1, A2, . . . , An}là việc thay thế lược đồ
quan hệ R thành các lược đồ con {R1, . . . , Rk}, trong đó Ri⊆R và R=R1 ∪ R2…∪ Rk
Vídụ: Cho quan hệ R với các phụ thuộc hàm như sau:
R(MaSV, MaMH, TenMH, ĐVHT, TenSV, Lop)
Ta có thể phân rã thành 3 lược đồ R1(MaSV, TenSV, Lop) và
R2(MaMH,TenMH, ĐVHT) và R3(MaSV, MaMH).
6.3.2.2 Phép phân rã không mất mát thông tin
Cho R là một lược đồ quan hệ, phép rã ρ=(R1,R2, . . .,Rn) và D là tập các phụ
thuộc dữ liệu. Phép phân rã ρ không mất mát thông tin nếu khi thực hiện phép toán kết
nối tự nhiên các quan hệ thành phần R1, R2,…,Rn ta vẫn nhận được kết quả của quan hệ ban đầu.
Ví dụ về một phép phân rã có mất mát thông tin: Cho quan hệ:
PHẦN I – CƠ SỞ DỮ LIỆU 66
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ MaSV MaMH Điem 1 A 3 2 A 5 3 A 6 4 B 6 5 C 9
Nếu ta phân rã quan hệ trên thành 2 quan hệ: R1(MaSV, MaMH) và R2(MaMH, Điem) như sau: R1: R2: MaSV MaMH MaMH Điem 1 A A 3 2 A A 5 3 A A 6 4 B B 6 5 C C 9
Thực hiện phép kết nối tự nhiên 2 quan hệ R1 và R2: R1*R2= MaSV MaMH Điem 1 A 3 1 A 5 1 A 6 2 A 3 2 A 5 2 A 6 3 A 3 3 A 5 3 A 6 4 B 6 5 C 9
Như vậy, khi nối tự nhiên 2 bảng, ta nhận được quan hệ không giống quan hệ
ban đầu Phép phân rã trên là mất mát thông tin.
Vấn đề đặt ra đối với người thiết kế là phải tìm ra những phép phân rã không
làm mất mát thông tin (chi tiết sẽ được trình bày ở phần sau). Bây giờ chúng ta sẽ tìm
hiểu một thuật toán để kiểm tra một phép phân rã có mất mát thông tin hay không.
6.3.2.3 Thuật toán kiểm tra phép phân rã không mất mát thông tin Input:
- Lược đồ quan hệ R={A1, A2, . . . , An}
- Tập các phụ thuộc hàm F - Phép tách ρ(R1, R2, . . . , Rk)
PHẦN I – CƠ SỞ DỮ LIỆU 67
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ
Output: Kết luận phép tách ρ không mất mát thông tin.
Các bước của thuật toán: Bước 1:
- Thiết lập một bảng với n cột (tương ứng với n thuộc tính) và k dòng
(tương ứng với k quan hệ), trong đó cột thứ j ứng với thuộc tính Aj,
dòng thứ i ứng với lược đồ Ri.
- Tại dòng i và cột j, ta điền ký hiệu aj nếu thuộc tinh Aj∈Ri.Ngược lại ta điền ký hiệu bij. Bước 2:
- Xét các phụ thuộc hàm trong F và áp dụng cho bảng trên.
- Giả sử ta có phụ thuộc hàm X→Y∈F, xét các dòng có giá trị bằng
nhau trên thuộc tính X thì làm bằng các giá trị của chúng trên Y.
Ngược lại làm bằng chúng bằng ký hiệu bij. Tiếp tục áp dụng các pth
cho bảng (kể cả việc lặp lại các phụ thuộc hàm đã áp dụng) cho tới
khi không còn áp dụng được nữa. Bước 3:
Xem xét bảng kết quả. Nếu xuất hiện một dòng chứa toàn giá trị a1, a2 ,…,an
thì kết luận phép tách ρ không mất mát thông tin. Vi dụ: Cho quan hệ:
Hình 6.15. Minh họa dữ liệu của quan hệ EMP_DEPT
Tách quan hệ trên thành 2 quan hệ:
PHẦN I – CƠ SỞ DỮ LIỆU 68
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ
Hình 6.16. Quan hệ EMPLOYEE được phân rã (tách) thành 2 quan hệ Tập phụ thuộc hàm F:
Kiểm tra phép tách trên là không mất mát thông tin: Bước 1: EName SSN BDate Address DNumber DName DMgrSsn EMPLOYEE a1 a2 a3 a4 a5 b16 b17 DEPARTMENT b21 b22 b23 b24 a5 a6 a7
Bước 2: Xét phụ thuộc hàm DNumber DName, DMgrSsn. Ta nhận thấy có
giá trị a5 ở dòng thứ 2, nên ta sẽ làm bằng giá trị a6, a7 cho dòng thứ 1.
Bước 3: Tồn tại một dòng chứa giá trị a1, a2,..a7. Kết luận, phép phân rã trên không mất mát thông tin.
PHẦN I – CƠ SỞ DỮ LIỆU 69
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ EName SSN BDate Address DNumber DName DMgrSsn EMPLOYEE a1 a2 a3 a4 a5 a6 a7 DEPARTMENT b21 b22 b23 b24 a5 a6 a7
Ghi chú: Sinh viên thực hiện phép nối tự nhiên 2 quan hệ EMPLOYEE và
DEPARTMENT trên để kiểm tra có bằng quan hệ ban đầu EMP_DEPT
6.4 Chuẩn hoá quan hệ
Chuẩn hoá quan hệ là việc phân rã một lược đồ quan hệ thành các lược đồ con ở
dạng chuẩn 3 hoặc ở BCNF sao cho vẫn bảo toàn phụ thuộc và không mất mát dữ liệu.
6.4.1 Thuật toán phân rã lược đồ quan hệ thành các lược đồ quan hệ con ở BCNF Input: - Lược đồ quan hệ R - Tập phụ thuộc hàm F Output:
Phép phân rã của R không mất thông tin và mỗi lược đồ quan hệ trong phép
tách đều ở dạng BCNF đối với phép chiếu của F trên lược đồ đó.
Các bước của thuật toán: - Ban
đầu phép tách ρ chỉ bao gồm R. -
Nếu S là một lược đồ thuộc ρ và S chưa ở dạng BCNF thì chọn phụ
thuộc hàm X → A thỏa trong S, trong đó X không chứa khóa của S
và A∉X. {phụ thuộc hàm vi phạm định nghĩa dạng chuẩn BCNF}.
Thay thế S trong ρ bởi S1 và S2 như sau S1 = XA, S2 = S\A. -
Quá trình trên tiếp tục cho đến khi tất cả các lược đồ quan hệ đều ở dạng BCNF Ví dụ:
Cho lược đồ quan hệ R(CTHRSG). Trong đó:
- C: Course; T: Teacher; H: Hour; R: Room; S: Student; G:Group). -
Và tập các phụ thuộc hàm F:
o C → T: Mỗi khoá học (course) có một thầy (teacher) duy nhất.
o HR →C: Tại một thời điểm (Hour) ở tại phòng học (room) chỉ có một khoá học duy nhất.
PHẦN I – CƠ SỞ DỮ LIỆU 70
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ
o HT→ R: Tại một thời điểm và một giáo viên chỉ ở một phòng duy nhất
o CS→G: Một sinh viên học một course thì chỉ ở một lớp duy nhất.
o HS → R: Một sinh viên, ở một thời điểm nhất định chỉ ở trong một phòng duy nhất.
Dựa vào thuật toán tìm khoá Khóa của R là HS.
Yêu cầu: Tách lược đồ R thành các lược đồ con ở dạng BCNF.
Hình 6.17. Biểu diễn quá trình tách quan hệ R thành các quan hệ ở BCNF
Như vậy, quan hệ R được tách thành 4 quan hệ R1, R21, R221, R222 đều ở BCNF.
PHẦN I – CƠ SỞ DỮ LIỆU 71
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ
6.4.2 Thuật toán phân rã một lược đồ quan hệ thành các lược đồ con ở 3NF. Input: - Lược đồ quan hệ R
- Tập các phụ thuộc hàm F, không làm mất tính tổng quát giả sử đó là phủ tối thiểu. Output:
Phép tách không mất mát thông tin trên R thành các lược đồ con ở dạng chuẩn
3 sao cho vẫn bảo toàn các phụ thuộc hàm.
Các bước của thuật toán:
- Bước 1: Loại bỏ các thuộc tính của R nếu thuộc tính đó không liên
quan đến phụ thuộc hàm nào của F.(không có mặt ở cả hai vế của phụ thuộc hàm).
- Bước 2: Nếu có một phụ thuộc hàm của F liên quan đến tất cả các
thuộc tính của R thì kết quả chính là R. -
Bước 3: Ngoài ra, phép tách ρ đưa ra các lược đồ gồm các thuộc tính
XA ứng với phụ thuộc hàm X→A ∈F. Nếu tồn tại các phụ thuộc hàm
X A1, X A2, …,X An thuộc F thì thay thế XAi (1<=i<= n) bằng
XA1A2. . .An. Quá trình tiếp tục.
- Chú ý: Tại mỗi bước kiểm tra lược đồ R, nếu mỗi thuộc tính không
khóa không phụ thuộc bắc cầu vào khóa chính, thì R đã ở dạng
3NF, ngược lại cần áp dụng bước 3 để tách tiếp. Ví dụ:
Cho lược đồ quan hệ R(C,T,H,R,S,G) với tập phụ thuộc hàm tối thiểu F: C T, HR C, HT R, CS G, HS R.
Yêu cầu: Phân rã lược đồ quan hệ trên thành các quan hệ con đều ở dạng 3NF.
- Sử dụng thuật toán tìm khoá Khoá chính của R là HS.
- Thực hiện thuật toán:
o Bước 1: Không có thuộc tính bị loại bỏ
o Bước 2: Không có phụ thuộc hàm nào liên quan tới tất cả các thuộc tính o Bước 3:
Phụ thuộc hàm C T vi phạm 3NF (phụ thuộc bắc cầu
vào khoá), vì vậy tách R thành R1(C,T) và R2(C,H,R,S,G).
Phụ thuộc hàm CS G vi phạm 3NF(phụ thuộc bộ phận
vào khoá), tách R2 thành R21(C,S,G) và R22(C,H,R,S).
PHẦN I – CƠ SỞ DỮ LIỆU 72
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ
Phụ thuộc hàm HR C vi phạm 3NF, tách R22 thành R221(H,R,C) và R222(H,S,R)
Như vậy, quan hệ R được tách thành các quan hệ sau: R1, R21, R221, R222 Lưu ý:
- Kết quả của phép tách có thể khác nhau phụ thuộc vào thứ tự áp dụng
các phụ thuộc hàm khi thực hiện thuật toán.
- Sinh viên tự kiểm tra xem việc tách quan hệ như trên có mất mát thông tin không. Bài tập:
1. Cho một quan hệ R ={A, B, C, D, E, F, G, H, I, J} và tập phụ thuộc hàm F = { A,B C A D, E B F F G, H D I, J } Yêu cầu:
- Tìm {A}+ ={D, E, I ,J }
- Tìm khóa của quan hệ R.
- Tách quan hệ R thành BCNF.
- Kiểm tra xem việc tách trên có mất mát thông tin không?
2. Lặp lại yêu cầu ở bài 1 với tập phụ thuộc hàm sau: G= {A,B C B, D E, F A, D G, H A I H J}
3. Cho một quan hệ R ={CourseNo, SecNo, OfferingDept, Credit_Hours,
CourseLevel, InstructorSSN, Semester, Year, Days_Hours, RoomNo, NoOfStudents} và tập phụ thuộc hàm:
F ={ CourseNo OfferingDept, Credit_Hours, CourseLevel; CourseNo, SecNo, Semester, Year Days_Hours, RoomNo, NoOfStudents, InstructorSSN;
RoomNo, Days_Hours, Semester, Year InstructorSSN, CourseNo, SecNo } Yêu cầu:
PHẦN I – CƠ SỞ DỮ LIỆU 73
Chương 6. PHỤ THUỘC HÀM VÀ CHUẨN HOÁ QUAN HỆ
- Tìm khóa của quan hệ R. - Quan
hệ trên thuộc dạng chuẩn mấy?
- Tách quan hệ về dạng 3NF.
- Kiểm tra xem việc tách trên có mất mát thông tin không?
PHẦN I – CƠ SỞ DỮ LIỆU 74
TÀI LIỆU THAM KHẢO
7 Chương 7. THIẾT KẾ CƠ SỞ DỮ LIỆU VẬT LÝ (Tham khảo)
Thiết kế cơ sở dữ liệu vật lý là quá trình chuyển các đặc tả dữ liệu lôgic thành
các đặc tả kỹ thuật để lưu trữ dữ liệu. Gồm 2 nội dung sau:
Lựa chọn công nghệ lưu trữ (Hệ điều hành, HQTCSDL, các công cụ truy nhập dữ liệu).
Chuyển các quan hệ của mô hình logic thành các thiết kế vật lý.
Trong chương này sẽ trình bày những phần sau:
Thiết kế các trường, bản ghi vật lý Thiết kế file vật lý
Thiết kế cơ sở dữ liệu vật lý
7.1 Nội dung thiết kế file vật lý và cơ sở dữ liệu vật lý
7.1.1 Quá trình thiết kế
Trong quá trình thiết kế hệ thống vật lý, vấn đề đặt ra hàng đầu là phải làm thế
nào tối thiểu hóa không gian lưu trữ và thời gian người dùng tương tác với hệ thống.
Tuy nhiên, do dung lượng các thiết bị nhớ tăng nhanh, nên người ta tập trung
nhiều vào việc xử lý các file và dữ liệu sao cho hiệu quả hơn đối với người sử dụng.
Các thông tin cần thiết để thiết kế file vật lý:
Các quan hệ đã được chuẩn hóa, kể cả ước lượng về số lượng dữ liệu cần lưu trữ
Định nghĩa chi tiết các thuộc tính
Các mô tả cho biết ở đâu và khi nào dữ liệu được sử dụng (xem, thêm, sửa, xóa).
Các yêu cầu và mong đợi về sử dụng dữ liệu và tích hợp dữ liệu, bao gồm các
yêu cầu về thời gian đáp ứng, các mức độ an toàn, ghi tạm, phục hồi….
Các mô tả về công nghệ được sử dụng để triển khai file và CSDL (thiết bị lưu
trữ, hệ điều hành, HQTCSDL…)
Một số các quyết định cơ bản có ý nghĩa đối với sự tích hợp và hiệu năng của
hệ thống ứng dụng cần thực hiện:
Chọn định dạng lưu trữ (kiểu dữ liệu) cho mỗi thuộc tính sao cho tối thiểu hóa
dư thừa thông tin và tối đa sự tích hợp dữ liệu.
Nhóm gộp các thuộc tính từ mô hình dữ liệu lô gic vào bản ghi vật lý.
Sắp xếp các bản ghi có quan hệ với nhau vào bộ nhớ ngoài sao cho từng bản ghi
hay nhóm các bản ghi lưu trữ, cập nhật và lấy ra nhanh chóng (gọi là tổ chức file)
Lựa chọn phương tiện và cấu trúc để lưu trữ dữ liệu đảm bảo truy nhập hiệu quả hơn.
PHẦN I – CƠ SỞ DỮ LIỆU 75
TÀI LIỆU THAM KHẢO
7.1.2 Sản phẩm thiết kế
Sản phẩm thiết kế là một tập các đặc tả mà các nhà lập trình và các nhà phân
tích dữ liệu sẽ sử dụng để xác định định dạng và cấu trúc các file trong bộ nhớ thứ cấp
của máy tính (bộ nhớ ngoài).
Khi sử dụng các công cụ CASE, kho dữ liệu của CASE hay từ điển dữ liệu dự
án là nơi lưu trữ tất cả các đặc tả nêu ra ở trên.
Sau đây là các phần tử tiêu biểu của thiết kế được lưu trữ trong kho dữ
liệu của CASE khi thiết kế file và cơ sở dữ liệu vật lý:
BẢNG MÔ TẢ CÁC TRƯỜNG Loại đặc tả Mô tả nội dung Tên trường (field name)
Theo quy định về cách đặt tên trường của HQTCSDL. Kiểu trường (data type)
Chọn kiểu dữ liệu mà HQTCSDL đó hỗ trợ Kích cỡ (size)
Là kích thước tối đa dùng để lưu trữ dữ liệu của trường đó Mã hóa (Coding)
Cách viết tắt giá trị của trường. Ví dụ, mỗi nước được
biểu diễn bằng hai ký tự
Các quy tắc toàn vẹn dữ Các đặc tả về các hạn chế đặt lên giá trị của trường liệu (data integrity rules) Các kiểm soát bảo trì
Chỉ ra những giá trị nào được phép thay đổi (maintenance controls) Công thức (Formular)
Mô tả công thức tính toán giá trị với những trường số cần tính toán.
Toàn vẹn tham chiếu Đặc tả giá trị của trường có liên quan đến giá trị của (references integrity) trường khác Sở hữu (Ownership)
Ai là người sở hữu trường đó (có quyền đối với dữ liệu)
BẢNG CÁC ĐẶC TẢ TIÊU BIỂU ĐỐI VỚI THIẾT KẾ BẢN GHI Các trường (fields)
Danh sách các trường trong một bản ghi
Dữ liệu có cấu trúc Định nghĩa cấu trúc dữ liệu dùng để lư trữ bản ghi (Thứ (Structure Data)
tự các trường, khóa chính, khóa ngoại…)
Sự lưu trữ lại (retention)
Đặc tả những bản ghi nào đó được giữ lại trong file bao
lâu (dữ liệu về sinh viên không được lưu trữ quá 10 năm sau khi ra trường).
BẢNG CÁC ĐẶC TẢ TIÊU BIỂU ĐỐI VỚI THIẾT KẾ FILE
PHẦN I – CƠ SỞ DỮ LIỆU 76
TÀI LIỆU THAM KHẢO Tên file và định vị
Tên file theo quy định của HQTCSDL và thiết bị lưu trữ nó. Các bản ghi (record)
Những bản ghi nào được lưu trữ trong file. Khóa chính
Là một hay một số trường được dùng để định danh duy (Primary Key) nhất cho bản ghi. Chỉ số hóa (index)
Chỉ ra các trường được dùng để lập chỉ số Yếu tố khóa bản ghi
Số các bản ghi theo mỗi trang hoặc khóa của bản ghi (Ví (Record blocking factor)
dụ: 10 bản ghi của ITEM được lưu trữ trong một trang bộ nhớ ngoài)
Lưu giữ lại và sao lưu File được lưu trữ trong bao lâu và các thủ tục sao lưu, thời (Retention and Backup)
gian địn kỳ cần sao lưu (để đảm bảo an toàn khi có sự cố). Tổ chức file
Phương pháp truy nhập dữ liệu và sắp xếp các bản ghi (file organization) trong file Kiểm soát (controls)
Đặc tả về kiểm soát và phương pháp mã hóa
BẢNG CÁC ĐẶC TẢ TIÊU BIỂU ĐỐI VỚI THIẾT KẾ CSDL Các file
Các file trong CSDL và nơi định vị nó Kiến trúc (Architecture)
Loại hình cấu trúc (bao gồm cả mô hình) CSDL được dùng để tổ chức file. Các mối quan hệ
Cơ chế để liên kết file với nhau.
7.2 Thiết kế các trường
Một thuộc tính trong mô hình dữ liệu logic được biểu diễn bằng một số trường (fields).
Ví dụ: HoTenSV được biểu diễn thành 2 trường HodemSV và TenSV
7.2.1 Yêu cầu thiết kế trường
Mỗi HQTCSDL sử dụng những kiểu dữ liệu nhất định để lưu trữ dữ liệu.
Trong yêu cầu thiết kế trường, quan trọng nhất là phải chọn kiểu dữ liệu phù
hợp, ta thường quan tâm đến các mục tiêu sau khi chọn kiểu dữ liệu:
Tiết kiệm không gian lưu trữ
Biểu diễn được mọi giá trị có thể thuộc miền giá trị
Cải thiện tính toàn vẹn (tổ chức việc nhập dữ liệu, kiểm tra dữ liệu đầu vào)
Hỗ trợ thao tác dữ liệu (Ví dụ: thao tác với dữ liệu số nhanh hơn với ký tự)
PHẦN I – CƠ SỞ DỮ LIỆU 77
TÀI LIỆU THAM KHẢO
7.2.2 Chọn kiểu và cách biểu diễn dữ liệu 7.2.2.1 Kiểu dữ liệu
Các kiểu dữ liệu mà HQTCSDL SQL hỗ trợ và ý nghĩa của nó
DECIMAL(m,n) Số thập phân có độ dài là m chữ số và n số thập phân
INTEGER Số nguyên lớn (độ dài tối đa là 11 chữ số)
SMALLINT Số nguyên nhỏ (độ dài tối đa là 6 chữ số)
FLOAT(m,n) Số thực có độ dài là m chữ số và n số thập phân CHAR
Xâu ký tự có độ dài là m ký tự
DATE Kiểu dữ liệu thời gian và có rất nhiều cách biểu diễn LOGICAL Giá trị logic (đúng/sai)
7.2.2.2 Các trường tính toán
Khi giá trị của một trường là giá trị nhận được từ các giá trị của trường khác thì
trường đó gọi là trường tính toán.
Có các loại tính toán sau:
+ Tính toán số học: Lương= Hệ số lương * 210.
+ Tính toán lôgic: Tiền trợ cấp = 50.000 đ nếu cán bộ là nữ. 0 nếu cán bộ là nam. + Tính toán hỗn hợp:
Tiền điện= S ố điện * 500đ nếu số điện < 100.
Số điện *500 + (Số điện -100)* 750 nếu số điện >100.
7.2.2.3 Các kỹ thuật mã hóa dữ liệu và nén dữ liệu
Một số phương pháp mã hóa dùng để biểu diễn dữ liệu trong các trường lưu trữ:
Mã hóa phân cấp: để mô tả các dữ liệu phân cấp người ta dùng nhiều nhóm,
mỗi nhóm đại diện cho cấp và các nhóm được sắp xếp lần lượt từ trái sang phải.
Ví dụ: Hệ thống phân loại sách trong thư viện: Các cấp Mã số Tên tài khoản 1 2 3 500 500 Khoa học tự nhiên 1 5001 Toán học 2 5002 Vật lý 1 1 50011 Toán giải tích 1 2 50012 Toán rời rạc
PHẦN I – CƠ SỞ DỮ LIỆU 78
TÀI LIỆU THAM KHẢO
Mã liên tiếp: Mã này được tạo ra theo quy tắc một dãy liên tục, như 1, 2, 3 …
A, B, C…. Mã loại này dùng cho những dữ liệu là danh sách như danh sách sinh viên.
Nó đơn giản, dễ tự động hóa, không nhầm lẫn. Tuy nhiên nó không gợi nhớ về đối
tượng được mã hóa và không cho phép chèn thêm vào giữa.
Mã gợi nhớ: Căn cứ vào đối tượng được mã hóa để cấu tạo mã. Ví dụ: VND
(Đồng Việt Nam), TL001 (Thủy lợi 001)…Loại này giúp ta nhận ra đối tượng được
mã hóa, có thể nới rộng hoặc thu hẹp số lượng mã. Tuy nhiên khó tổng hợp và phân tích.
Mã thành phần ngữ nghĩa: Theo phương pháp này, mã được chia làm nhiều
thành phần, mỗi phần mô tả một đặc trưng nhất định của đối tượng như phân loại, địa
danh… Những phần này có thể sử dụng các nhóm ký tự khác nhau. Mã loại này rất
thông dụng và được sử dụng nhiều trong công nghiệp cũng như giao tiếp quốc tế.
Ví dụ: Địa chỉ miền trên internet có dạng: ..
Ví dụ : hwru.edu.vn: Đại học Thủy Lợi, Tổ chức giáo dục, Tên nước
Mã loại này cồng kềnh, và cần chọn các thành phần sao cho ổn định, nếu không
việc sử dụng mã sẽ gặp nhiều khó khăn.
7.2.2.4 Kiểm tra tính toàn vẹn của dữ liệu
Để đảm bảo tính đúng đắn của dữ liệu người ta đặt các ràng buộc trên các dữ liệu đó.
Thường dùng các phương pháp sau để kiểm tra tính toàn vẹn:
Giá trị ngầm định (default value): Là giá trị được gán sẵn cho một trường nào
đó khi bản ghi mới được nhập vào. Ví dụ: Trong hóa đơn bán hàng, trường ngày bán
được mặc định là ngày hiện tại.
Kiểm tra khuôn dạng (picture control): Là mẫu định dạng bao gồm độ rộng, các
giá trị có thể trong từng vị trị. Ví dụ: TLA006, $999,999.99.
Kiểm tra giới hạn (range control): Các trường có thể đưa ra các giới hạn đối với
các giá trị của nó. Ví dụ: Điểm mộn học được giới hạn là các số và được giới hạn từ 0..10.
Tính toàn vẹn tham chiếu (reference integrity): là giá trị của thuộc tính đã cho
có thể bị hạn chế bởi giá trị của những thuộc tính khác. Ví dụ: Trong mối quan hệ
1_N, nếu giá trị của bảng bên 1 chưa có thì sẽ không được có bên N.
Kiểm tra giá trị rỗng (Null value control): Nếu đặt một thuộc tính nào đó là
khác rỗng thì bắt buộc ta phải thêm giá trị cho trường đó.
Quản lý dữ liệu mất: Trong khi vận hành, nếu vì một lý do nào đó mà dữ liệu có
thể bị mất. Khi thiết kế file vật lý, các nhà thiết kế phải chỉ ra cách thức mà hệ thống
quản lý dữ liệu bị mất. Balad và Hofer đã đưa ra một số phương pháp sau đây dùng để
quản lý dữ liệu của 1 trường bị mất:
Cho quy trình để ước lượng giá trị bị mất.
PHẦN I – CƠ SỞ DỮ LIỆU 79
TÀI LIỆU THAM KHẢO
Theo dõi dữ liệu bị mất để báo cáo và sử dụng một phần tử hệ thống giúp con
người mau chóng thay thế giá trị bị mất này.
Thực hiện một số kiểm tra để có thể bỏ qua dữ liệu bị mất hay phải phục hồi nó
nếu nó thực sự ảnh hưởng đến kết quả của hệ thống.
7.3 Thiết kế các bản ghi vật lý
Một bản ghi vật lý là một nhóm các trường được lưu trữ ở các vị trí liền kề nhau
và được gọi ra cùng nhau như một đơn vị thống nhất.
Thiết kế bản ghi vật lý là chọn một nhóm các trường của nó sẽ lưu trữ ở những
vị trí liền kề nhau nhằm 2 mục tiêu: sử dụng hiệu quả không gian lưu trữ và tăng tốc
độ truy nhập. Hệ điều hành đọc hay ghi dữ liệu vào bộ nhớ thứ cấp theo một đơn vị
gọi là trang. Một trang này có dung lượng cụ thể phụ thuộc vào hệ điều hành và máy tính cụ thể.
Vấn đề đặt ra ở đây là phải thiết kế các bản ghi thế nào để tận dụng được dung
lượng chứa của trang. Nếu dung lượng của trang tận dụng được càng nhiều thì số lần
đọc càng ít và tốc độ truy cập càng nhanh.
Để làm được điều này người ta thường phi chuẩn hóa một số quan hệ nhận được. 7.3.1 Phi chuẩn
Việc phi chuẩn hóa các quan hệ đã chuẩn hóa trong nhiều trường hợp là cần
thiết để tận dụng dung lượng trang của máy.
BENHNHAN(MaBN, TenBN, Diachi_BN, Ngay_nhap, Giuong_phong, Khoa,
Tinh_trang, Ngayra, ThanhToan)
Ta có thể phân chia nó thành 2 quan hệ mới để có độ dài gần với dung lượng trang:
BENHNH1(MaBN, TenBN, Diachi_BN, Khoa)
BENHNH2(MaBN, Ngay_nhap, Giuong_phong, Tinh_trang, Ngayra, ThanhToan)
Có một số dạng phi chuẩn hóa, nhưng không có một quy tắc chặt chẽ nào.
Rodger đã thảo luận đến một số trường hợp chung có thể xét phi chuẩn:
Hai thực thể có quan hệ một – một.
Ví dụ: Có 2 quan hệ có mối liên kết 1_1 như sau: SINHVIEN(MaSV, TenSV, MaThe)
THEDOC(MaThe, DiaChi, NgayCap, MaSV)
Phi chuẩn hóa ta có quan hệ sau:
SINHVIEN(MaSV, TenSV, MaThe, DiaChi, NgayCap)
Và trong trường hợp này MaThe, DiaChi, NgayCap có thể bỏ trống đối với những SV không có thẻ.
Hai thực thể có mối quan hệ M_N trong đó liên kết có thuộc tính riêng.
PHẦN I – CƠ SỞ DỮ LIỆU 80
TÀI LIỆU THAM KHẢO
Ví dụ: Có quan hệ như sau: Ngaymuon Ma_Sach Ma_SV SINH VIÊN Mượn SÁCH Ten_Sach Ten_SV DiaChi
Sau khi chuẩn hóa, ta nhận được 3 quan hệ sau:
SINHVIÊN(Ma_SV, Ten_SV, DiaChi) SÁCH(Ma_Sach, Ten_Sach)
MƯỢN(Ma_SV, Ma_Sach, Ngay_muon) Phi chuẩn hóa ta được:
SINHVIÊN(Ma_SV, Ten_SV, DiaChi)
MƯỢN(Ma_SV, Ma_Sach, TenSach, NgayMuon)
Dữ liệu tham chiếu: Trong quan hệ 1_N nếu bảng ở bên 1 không tham gia vào
một quan hệ nào khác thì ta có thể hợp nhất 2 thực thể này thành 1. Ví dụ:
KHO (Ma_Kho, Ten_Kho, Loai_Kho) HANG(Ma_Hang, Ten_Hang) Phi chuẩn hóa ta được:
HANG(Ma_Hang, Ten_Hang, Ma_Kho, Ten_Kho, Loai_Kho)
7.3.2 Quản lý trường có độ dài cố định
Việc thiết kế bản ghi sẽ rất dễ dàng nếu trường có độ dài cố định (vì tính ngay
được độ dài bản ghi).
Trong trường hợp này việc xác định vị trí của một trường chỉ bằng phép toán:
Vị trí con trỏ hiện thời + (độ dài bản ghi * số bản ghi)
7.3.3 Quản lý trường có độ dài biến đổi
Một trường có độ dài thay đổi như trường Memo thì định vị trí của một trường
hay một bản ghi cụ thể không đơn giản.
Một cách chung để quản lý trường có độ dài thay đổi là đưa các bản ghi có độ
dài cố định vào một bản ghi vật lý có độ dài cố định và đưa những bản ghi vật lý có độ
dài thay đổi vào một bản ghi vật lý có độ dài thay đổi. Đó chính là kỹ thuật thiết kế
PHẦN I – CƠ SỞ DỮ LIỆU 81
TÀI LIỆU THAM KHẢO
bản ghi vật lý tự động được sử dụng trong hầu hết các hệ quản trị CSDL cho máy tính nhỏ.
7.4 Thiết kế file vật lý
File vật lý là một phần nhỏ của bộ nhớ thứ cấp (đĩa cứng, băng từ…) lưu các
bản ghi vật lý một cách độc lập. Việc lưu trữ các bản ghi vật lý ở vị trí nào đối với
người dùng không quan trọng nhưng lại được các nhà thiết kế đặc biệt quan tâm. 7.4.1 Các loại file
Một hệ thống thông tin có thể cần đến 6 loại file sau:
File dữ liệu (Data file- master file): là file chứa dữ liệu liên quan với mô hình
dữ liệu vật lý và lôgic. File này luôn tồn tại, nhưng nội dung thay đổi.
File lấy từ bảng (look up table file): La danh sách các dữ liệu tham chiếu lấy từ
một hay một số file khác theo một yêu cầu nào đó.
File giao dịch (Transaction file): là file dữ liệu tạm thời phục vụ các hoạt động
hàng ngày của một tổ chức. File này thường được thiết kế để phục vụ các yêu cầu xử lý nhanh.
File làm việc (Work file): Là file tạm thời dùng để lưu kết quả trung gian, file
này sẽ tự động xóa đi mỗi khi không cần thiết.
File bảo vệ (Protection file): là file được thiết kế để khắc phục những sai sót
trong quá trình hệ thống hoạt động. Các file này cho hình ảnh của file dữ liệu trước và
sau những hoạt động nhất định (cập nhật, sửa đổi, xử lý…) của hệ thống.
File lịch sử (History file): File này ghi lại quá trình hoạt động của hệ thống,
cũng có thể là các dữ liệu cũ hiện không cần sử dụng.
Việc tổ chức các loại file khác nhau không chỉ liên quan đến việc tổ chức lưu
trữ và khai thác dữ liệu, mà còn liên quan đến các hoạt động xử lý dữ liệu trong quá
trình hoạt động của hệ thống. Về nguyên tắc, việc sử dụng càng ít file càng tốt. Tuy
nhiên, việc đưa vào các file là cần thiết cho việc đảm bảo an toàn dữ liệu (file bảo vệ,
file lịch sử), tăng tốc độ truy cập hay xử lý (file giao dịch, file lấy từ bảng, file làm việc) ….
7.4.2 Các phương pháp truy cập
Mỗi hệ điều hành trợ giúp một số kỹ thuật khác nhau để tìm kiếm và lấy thông
tin ra gọi là các phương pháp truy cập.
Về cơ bản, có 2 loại phương pháp truy cập:
Phương pháp truy cập trực tiếp, sử dụng tính toán để xác định địa chỉ chính xác
của một bản ghi và truy nhập trực tiếp đến bản ghi đó.
Phương pháp gián tiếp, hỗ trợ việc tìm kiếm bản ghi thứ n xuất phát từ một vị
trí hiện thời của con trỏ hay điểm bắt đầu của 1 file.
Mặc dù có tồn tại 2 phương pháp như vậy, nhưng ít khi chúng ta sử dụng trực
tiếp mà thường thông qua các công cụ có sẵn mà phần mềm hệ thống trợ giúp.
PHẦN I – CƠ SỞ DỮ LIỆU 82
TÀI LIỆU THAM KHẢO 7.4.3 Tổ chức file
Cách tổ chức file là kỹ thuật sắp xếp các bản ghi vật lý của một file trên một
thiết bị nhớ thứ cấp. Tổ chức một file cụ thể cần tính toán đến các yếu tố sau: Lấy dữ liệu nhanh.
Thông lượng các giao dịch xử lý lớn
Sử dụng hiệu quả không gian nhớ.
Tránh được sai sót khi mất dữ liệu
Tối ưu hóa nhu cầu tổ chức file.
Đáp ứng được nhu cầu khi tăng dữ liệu
Trước khi nghiên cứu thiết kế tổ chức các CSDL cần xem xét sơ qua cách tổ
chức của dữ liệu trong bộ nhớ ngoài.
Mô hình tổ chức bộ nhớ ngoài.
Bộ nhớ ngoài (hay còn gọi là bộ nhớ thứ cấp) là các thiết bị lưu trữ như đĩa từ, băng từ…
Đĩa từ được phân thành các khối vật lý (tổ chức đống) có kích cỡ như nhau:
khoảng 512 bytes đến 4K (4*1024=4096 bytes) và được đánh địa chỉ khối. Địa chỉ này
gọi là địa chỉ tuyệt đối trên đĩa.
Mỗi tệp dữ liệu trên đĩa từ chiếm 1 hoặc nhiều khối, mỗi khối chứa 1 hoặc
nhiều bản ghi. Việc thao tác với tệp thông qua tên tệp thực chất là thông qua địa chỉ
tuyệt đối của các khối.
Mỗi bản ghi đều có địa chỉ và thường được xem là địa chỉ tuyệt đối của byte
đầu tiên của bản ghi hoặc là địa chỉ của khối chứa bản ghi đó.
Các phép toán đặc trưng trên tệp dữ liệu là: Thêm một bản ghi. Xóa một bản ghi Sửa một bản ghi
Tìm một bản ghi theo điều kiện
7.4.3.1 Tổ chức file tuần tự (Sequential file )
Trong tổ chức file tuần tự, các bản ghi được sắp xếp tuần tự.
Giả sử: Hiện tại tệp cơ 8 bản ghi. 1 khối chứa 3 bản ghi. Con trỏ tệp trỏ đến bản ghi đầu tiên.
Bg1 Bg2 Bg3 Bg4 Bg5 Bg6 Bg7 Bg8 Nil
Thêm bản ghi: lần theo con trỏ đến kiểm tra khối cuối cùng (khối 3) xem có đủ
bộ nhớ không. Nếu không đủ thì phải cấp thêm khối mới.
Xóa bản ghi (có giá trị khóa =k):
PHẦN I – CƠ SỞ DỮ LIỆU 83
TÀI LIỆU THAM KHẢO - Tìm đến bản ghi đó - Xóa :
- Xóa logic: chỉ đánh dấu xóa - Xóa
vật lý: Xóa hẳn bản ghi đó
Tìm kiếm bản ghi (có giá trị khóa =k): Tìm lần lượt từ trên xuống dưới cho đến khi gặp khóa k.
Sửa đổi giá trị thuộc tính: - Tìm
đến thuộc tính cần sửa - Ghi
đè giá trị mới lên giá trị cũ
7.4.3.2 Tổ chức file băm (Hashed File) - Khái
niệm hàm băm: Mỗi bản ghi đều có 1 khóa là giá trị số (giả sử là k) - Hàm
băm H(k)=b. Trong đó, b là số cụm (hàm băm sẽ tác động lên giá trị
khóa và trả lại 1 số nguyên là số cụm)
Như vậy, tư tưởng của hàm băm là phân chia tập hợp các bản ghi của tệp dữ
liệu thành các cụm (Buckets). Mỗi cụm bao gồm một hoặc nhiều khối, mỗi khối chứa
một số lượng cố định các bản ghi.
Mỗi cụm ứng với một địa chỉ băm được đánh số từ 0..b-1. Ở mỗi đầu của khối
đều chứa con trỏ trỏ đến khối tiếp theo trong cụm, khối cuối cùng trong cụm chứa con trỏ rỗng.
Có một bảng chỉ dẫn cụm (bucket directory): chứa k con trỏ, mỗi con trỏ chứa
địa chỉ khối đầu tiên của từng cụm. Ví dụ: 0 . . Null 1 . B1 B2 . . . . . . B3 . . b-1 Null . . B4 B6 B5
Hình 7.1. Tổ chức file băm
PHẦN I – CƠ SỞ DỮ LIỆU 84
TÀI LIỆU THAM KHẢO
Thêm bản ghi mới (với giá trị khóa k):
Tính H(k): Nếu H(k)=b thì bổ sung vào nhóm b (Lần theo con trỏ, thêm vào
như tổ chức tuần tự).
Tìm kiếm bản ghi (với giá trị khóa k):
Tính H(k): Nếu H(k)=b thì b chính là nhóm chứa bản ghi có khóa là k. Sau đó
tìm kiếm tuần tự trên nhóm đó.
Xóa bản ghi (với giá trị khóa k): - Tìm
đến bản ghi có khóa k bằng cách tính H(k): Nếu H(k)= b thì tìm bản ghi đó trong nhóm b.
- Xóa logic hoặc xóa vật lý.
- Nếu bản ghi là duy nhất trong khối thì khi xóa bản ghi sẽ đồng thời giải
phóng khối khỏi cụm chứa khối.
Sửa đổi thuộc tính:
- Sửa đổi thuộc tính không phải là khóa: Ghi đè giá trị mới lên giá trị cũ.
- Sửa đổi thuộc tính khóa: Xóa bản ghi cũ, thêm bản ghi mới vào. - Tính H(k’).
Nếu h(k) =h(k’) Ghi đè lên
Nếu h(k) <> h(k’) Xóa bản ghi cũ, thêm bản ghi mới vào.
7.4.3.3 Tổ chức file chỉ số
Một kiểu tổ chức tệp dữ liệu truy nhập khóa rất thường dùng trong CSDL là tệp chỉ số. K1 . K1 Bg1 Bg2 Bg3 Ki . Ki Bgi Bg(i+1) Bg(i+2) Kn . Kn Bgn Bg(n+1) Bg(n+2)
Hình 7.2. Tổ chức file chỉ số Trong đó:
K1: Giá trị khóa của bản ghi đầu tiên của khối thứ nhất.
Tệp chỉ dẫn có 2 trường: khóa và con trỏ
PHẦN I – CƠ SỞ DỮ LIỆU 85
TÀI LIỆU THAM KHẢO
Tệp chính có n khối, trong khối chứa các bản ghi.
Một minh họa về tệp chỉ số:
Hình 7.3. Minh họa tệp chỉ số
Thêm bản ghi (có giá trị khóa k): - Tìm
vị trí khối cần thêm (H(k)=b).
- Nếu khối đó còn chỗ trống thì thêm bản ghi vào theo đúng thứ tự sắp
xếp và chú ý thay đổi khóa trong bảng chỉ dẫn khối nếu có sự thay đổi.
Xóa bản ghi (có giá trị khóa k):
- Quá trình giống như thêm một bản ghi. Tuy nhiên, nếu khi xóa tạo ra
khối rỗng, khi đó có thể xóa bỏ toàn bộ khối. - Tìm
kiếm bản ghi (có giá trị khóa k): Có thể tìm kiếm tuần tự hoặc nhị phân.
PHẦN I – CƠ SỞ DỮ LIỆU 86
TÀI LIỆU THAM KHẢO
Sửa đổi thuộc tính:
- Thuộc tính khóa: Xóa cũ, thêm mới.
- Thuộc tính không khóa: Ghi đè lên thuộc tính cũ.
Bảng so sánh các cách tổ chức file khác nhau Yếu tố Cách tổ chức file Tuần tự Chỉ số Băm
Không gian lưu trữ Không lãng phí
Cần nhiều không Cần nhiều không
gian hơn vì phải lưu gian khi thêm và file chỉ số xóa bản ghi (phải tính H(k))
Truy nhập tuần tự Rất nhanh Trung bình Không thực tế theo khóa chính
Truy nhập ngẫu Không thực tế Trung bình Rất nhanh nhiên theo khóa chính Xóa bản ghi
Tạo ra khoảng Nếu không gian Rất dễ dàng
trống và có thể yêu nhớ được bố trí cầu tổ chức lại động thì dễ dàng, nhưng yêu cầu phải bảo trì các chỉ số. Thêm bản ghi
Yêu cầu sắp xếp lại Nt Nt file sau khi thêm Sửa bản ghi
Yêu cầu sắp xếp lại Dễ dàng, nhưng yêu Rất dễ dàng file sau khi sửa cầu phải bảo trì các chỉ số
7.4.4 Ví dụ về thiết kế file
Xét Ví dụ sau: Có 2 chứng từ ĐƠN ĐẶT HÀNG Số hóa đơn: xxxxxx
Người đặt hàng: (30 ký tự……………………………..)
Địa chỉ: (50 ký tự………………………………………..) Ngày đặt: dd/mm/yyyy Số tt Tên Mô tả Đơn vị Số hàng hàng tính lượng Xx Char(15) Char(50) Char(10) xxxxx … …. …. …. ….
PHẦN I – CƠ SỞ DỮ LIỆU 87
TÀI LIỆU THAM KHẢO PHIẾU GIAO HÀNG Số phiếu: xxxxxx
Tên khách hàng: (30 ký tự……………………………..)
Địa chỉ: (50 ký tự………………………………………..)
Nơi giao hàng: (50 ký tự………………………………..) Ngày giao: dd/mm/yyyy Số tt Tên hàng Đơn vị tính Đơn giá Số lượng Thành tiền Xx Char(15) Char(10) Number Number Number … …. …. …. …. ….
Sau quá trình thiết kế logic ta được các quan hệ sau:
KHACH(Ma_Khach, Ten_kh, DiaChi_kh)
HANG(Ma_hang, Ten_hang, Mota_hang, Donvi)
DONHANG(So_Don, Ma_Khach, NgayDon)
PHIEUGIAO(So_Phieu, Ma_Khach , Noi_Giao, Ngay_Giao)
DONGDON(So_Don, Ma_Hang, So_luongD)
DONGPHIEUGIAO(So_Phieu, MaHang, So_luonggi, DonGia)
Khi tiến hành thiết kế vật lý, ta được các file sau: 1. KHACH Tên thuộc tính
Kiểu dữ liệu Kích cỡ Khuôn dạng Ma_khach Ký tự 6 Chữ hoa +số Ten_kh Ký tự 30 Chữ đầu viết hoa Diachi_kh Ký tự 30 Chữ đầu viết hoa 2. HANG Tên thuộc tính
Kiểu dữ liệu Kích cỡ Khuôn dạng Ma_hang Ký tự 6 Chữ hoa+số Ten_hang Ký tự 15 Chữ đầu viết hoa Mota_hang Ký tự 30 Chữ đầu viết hoa Don_vi Ký tự 10 Chữ thường 3. DONHANG
PHẦN I – CƠ SỞ DỮ LIỆU 88
TÀI LIỆU THAM KHẢO Tên thuộc tính
Kiểu dữ liệu Kích cỡ Khuôn dạng So_don Ký tự 6 Chữ hoa +số Ma_khach Ký tự 15 Chữ hoa +số Ngay_don Ngày 8 Dd/mm/yy 4. DONGDON Tên thuộc tính
Kiểu dữ liệu Kích cỡ Khuôn dạng So_don Ký tự 6 Chữ hoa +số Ma_hang Ký tự 6 Chữ hoa +số So_luongd Số 7 Số nguyên 5. PHIEUGIAO Tên thuộc tính
Kiểu dữ liệu Kích cỡ Khuôn dạng So_phieu Ký tự 6 Chữ hoa +số Ma_khach Ký tự 6 Chữ hoa +số Ngay_giao Ngày 30 Dd/mm/yy Noi_giao Ký tự 30 Tong_tien Số 9 Số thực 6. DONGPHIEU Tên thuộc tính
Kiểu dữ liệu Kích cỡ Khuôn dạng So_phieu Ký tự 6 Chữ hoa+ số Ma_hang Ký tự 6 Chữ hoa + số Don_gia Số 6 Số thực So_luonggi Số 7 Số thực
PHẦN I – CƠ SỞ DỮ LIỆU 89
TÀI LIỆU THAM KHẢO
TÀI LIỆU THAM KHẢO
1. Elmasri & Navathe: Fundamentals of Database Systems, International Edition.
2. Nguyễn Tiến Vương: Cơ sở dữ liệu quan hệ
3. Date, C.J., and Darwen, H.: A Guide to the SQL Standard, 3rd ed., Addison- Wesley.
PHẦN I – CƠ SỞ DỮ LIỆU 90