ươ
Ch
ng 4
Ệ
MÔ HÌNH QUAN H RELATIONAL MODEL
ầ
Bài 4
Tr n Thi Kim Chi
1
ộ
N i dung
ị
ữ ệ
ệ
ầ
Bài 4
Tr n Thi Kim Chi
2
ị ơ ở ữ ệ ả ệ ơ ả 3.1. Các đ nh nghĩa c b n ậ ả 3.2. Các quy lu t b o toàn d li u ữ 3.3. Các ngôn ng quan h 3.4. Khung nhìn ệ 3.5. H qu n tr c s d li u quan h
ộ
N i dung
n Các đ nh nghĩa c b n c a mô hình d li u quan h
ệ ữ ệ ơ ả ủ
ệ
ệ
ẹ
ầ
Bài 4
Tr n Thi Kim Chi
3
ể ế ợ ể ệ ị n Quan hệ ượ ồ n L c đ quan h ệ ọ n Quan h toán h c ệ ượ ồ c đ quan h và quan h n L n Khóa quan hệ ộ n Ràng bu c toàn v n ự n Chuy n mô hình th c th k t h p sang mô hình quan h
ệ ữ ệ Mô hình d li u quan h (Relational data model) ấ ở
n Đ c đ xu t b i E.F. Codd năm 1970. n Mô hình này bao g m:ồ
ệ
ữ ệ ướ ạ
n Các khái ni m liên quan đ n c u trúc d li u d
ệ ộ
ư
ế ấ ộ ơ ở ủ
ộ ượ
ậ
ợ
i d ng dòng ạ và c t nh quan h , b , thu c tính, khóa chính, khóa ngo i, ... n Đ c xây d ng trên c s c a phép toán t p h p và phép
ự toán quan h .ệ
ẹ
ộ
ệ n Ràng bu c toàn v n quan h .
ượ ề
n Các HQTCSDLQH đ
ượ ự ự ế c xây d ng d a theo lý thuy t mô
hình quan hệ
n Nh ng hi n nay DBMS b t đ u theo h
ầ
Bài 4
Tr n Thi Kim Chi
4
ắ ầ ư ệ ướ ố ượ ng đ i t ng
ị ): là m t b ng giá tr
ệ ữ ệ Mô hình d li u quan h (Relational data model) ệ n Quan h (Relation ầ
ộ ả ệ c đ quan h
ượ ồ ể ệ ủ
ồ g m hai thành ph n: l ệ (relation schema) và th hi n c a quan h (relation instance)
MaNV
HoTenNV
Tuoi
ế ễ NV01 Nguy n Trung Ti n
25
ầ
NV02
ị ế Tr n Th Y n
35
ễ
NV03 Nguy n Văn An
40
5
ầ
Bài 4
Tr n Thi Kim Chi
5
n L
ượ ồ ủ ị
ữ ệ ủ ệ ộ
ệ
ộ
ủ
ệ ữ ệ Mô hình d li u quan h (Relational data model) ệ (relation schema): xác đ nh tên c a c đ quan h ủ ể quan h , tên và ki u d li u c a thu c tính c a quan ệ h . Ký hi u: R(A1, A2, …, An). n A1, A2, …, An: danh sách các thu c tính. ệ n R là tên c a quan h
MaNV
HoTenNV
Tuoi
ế ễ NV01 Nguy n Trung Ti n
25
ầ
NV02
ị ế Tr n Th Y n
35
ễ
NV03 Nguy n Văn An
40
ầ
Bài 4
Tr n Thi Kim Chi
6
ệ ữ ệ Mô hình d li u quan h (Relational data model)
n Th hi n c a quan h
ộ ả ệ (relation instance): là m t b ng
ệ ể ệ ủ ị ồ Ví d : l ộ giá tr g m các dòng và các c t c ụ ượ đồ quan h Student
ầ
Bài 4
Tr n Thi Kim Chi
7
Students(sid: string, name: string, login: string, age: integer , gpa: real)
ự
ề
ệ
Tr c quan v Quan h
ữ
ư
ế
ả
ụ
ể
ả
n Ví d : Đ qu n lý đi m sv, n u ta l u tr theo b ng sau thì không đúng
ệ
ớ
ể v i mô hình quan h vì
ộ Thu c tính
ĐIEM
MASV
TEN MALOP MAMH TENMH
Bộ
ọ
TCTH01
S nơ
TCTHA
THVP
Tin H c Văn Phòng
6.0
TCTH01
S nơ
TCTHA
CSDL
ơ ở ữ ệ C S D Li u
5.0
TCTH02 Lan
TCTHA
CSDL
ơ ở ữ ệ C S D Li u
3.0
ữ ộ
ư
ể
ớ
ả ử ấ ả
ầ ử
ế
ể ư • Ta không th l u tr m t SV m i khi SV này ch a có đi m thi. ổ • Khi c n s a đ i ten thì ph i s a t
t c các dòng có liên quan đ n SV
này.
ể
ầ
ả
ộ
ọ
• Khi có nhu c u xóa đi m thi m t SV kéo theo kh năng xóa luôn h tên
Sv đó.
ể ư
ữ
ữ
ả
ư • Đ l u tr đúng mô hình quan h , ta có th l u tr thành các b ng nh
ầ
ệ Tr n Thi Kim Chi
8
ể ư Bài 4 sau
ụ ề
ệ
Ví d v mô hình quan h
SVIEN
LOP
MASV
TEN
MALOP
MALOP TENLOP
TCTH01
S nơ
TCTHA
TCTHA TCTH32A
SIS O 80
TCTH02
B oả
TCTHB
TCTHB
TCTH32B
65
TCTHC
TCTH32C
82
TCTH03
Trang
TCTHA
KQUA
MONHOC
MASV MAMH DIEM
MAMH TENMH
TINCHI KHOA
TCTH01 THVP
8
ậ
THVP
4
CNTT
Nh p môn TH
TCTH01 CSDL
6
TCTH01 CTDL
7
CSDL
4
CNTT
TCTH02 THVP
9
CTDL
3
TOAN
TCTH02 CSDL
8
ấ C u trúc ữ ệ d li u Toán r i ờ r c ạ
TCTH03 THVP
10
ầ
Bài 4
Tr n Thi Kim Chi
9
ệ ữ ệ Mô hình d li u quan h (Relational data model)
n Bộ
n B là t p m i giá tr liên quan c a t
ủ ấ ả ộ t c các thu c tính
ệ
t t c vùng tin.
ộ ủ c a m t l ể ứ ự ủ
MA SV
HOTEN
PHAI
NGAY SINH
MA LOP
HOC BONG
TINH
9900 1
15-03- 1977
T GIANG
TRAN AN
TRUE
CÑTH2B
120000
Bài 4
Tr n Thi Kim Chi
10
9900 2
NGUYEN HA TRUE
25-04- ầ 1986
TCTH29C
10 TPHCM 120000
ị ở ấ ả ọ c a các b và c t là không quan tr ng. ộ ệ ị ỗ ậ ộ ượ ồ c đ quan h . ộ n không th có hai b có cùng các giá tr ộ ộ n Th t ụ n Ví d quan h sau có 2 b
ượ ồ
ệ
L
c đ quan h (Relation schema)
ợ ị
n Domain : là 1 t p h p các giá tr cho phép c a 1 hay nhi u ả ể ng là 1 t p con cu ki u d li u. Ký hi u
ủ ữ ệ ề ệ ậ ộ
n Ví d :ụ ộ
ậ ườ ề ị ủ ộ thu c tính, th dom(A) mi n tr c a thu c tính A
n Thu c tính Address c a quan h STUDENT có domain là
ủ ệ
ỗ ậ t p h p các chu i.
n Thu c tính đi m có domain là các s th c trong ph m vi
ố ự ể ạ
11
ầ
Bài 4
Tr n Thi Kim Chi
11
ừ ợ ộ ế 0 đ n 10. t
ượ ồ
ệ
L
c đ quan h (relation schema)
ề
ộ
ộ n Cho A1, A2, .., An là tên các thu c tính thu c các mi n D1, D2,..,
Dn
ượ ồ
ệ
ộ
ớ
n L
c đ quan h R v i 1 t p thu c tính {A1, A2, .., An}
ậ R(A1, A2, .., An) ậ
ủ ượ
ộ
ọ
ồ
n G i U={A1, A2,.., An} là t p các thu c tính c a l
ệ c đ quan h
ỗ ượ ồ
ệ
ộ
ủ
c đ quan h luôn kèm m t tân t
ừ ể ễ ả đ di n t
ý nghĩa c a
R n M i l nó. ể
ễ
ượ ồ
n Bi u di n 1 l
ệ c đ quan h :
ệ
ộ
Ví d : l
ầ
Tr n Thi Kim Chi
12
Bài 4
ừ
ể
ậ
ộ
ỗ
TÊN_QUAN_HỆ( thuộc tính 1, thuộc tính 2,…) ụ ượ ồ c đ quan h NHANVIEN có 4 thu c tính NHANVIEN(MANV, Ten, MaPb, Luong) ấ Tân t
: M i nhân viên có m t MaNV duy nh t dùng đ nh n
ệ
ươ
di n TenNV, MaPB và L
ng.
ệ
Quan h (Relation)
ọ
Dn
ệ
ệ
ộ ệ
ề
ể ệ
ủ
ệ
D2 (cid:0) …(cid:0) n G i D = D1 ồ ượ ượ ệ c đ quan h R đ c ký hi u r(R) là m t n Quan h r trên l ạ ớ ừ ữ ậ ạ t p h u h n các ánh x {t1,t2,..,tp} t R vào D v i đi u ki n r thì t[Ai](cid:0) ạ (cid:0) ọ Di, 1 ≤ i ≤ n m i ánh x t ệ n Quan h r là m t th hi n quan h (relation instance) c a R ộ
ộ ể
ạ t
ờ ạ ủ
ệ
ượ
c ký
(cid:0)
i 1 m t th i đi m ỗ ệ
ệ n M i ánh x c a quan h là 1 b c a quan h và đ Di, 1 ≤ i ≤ n
ượ
t[Ai] ho c ặ t.Ai
ộ ủ ớ hi u (A1:d1, A2: d2,…,An:dn) v i di ệ ủ ộ c ký hi u là ộ
ầ n Thành ph n Ai c a b t đ ậ
ộ
ệ
ệ
Quan h NHANVIEN trên t p các thu c tính R={Manv, HoTenNV, Tuoi) là m t quan h 3 ngôi. MaNV
HoTenNV
Tuoi
ễ
13
25
t1
ầ
13
Tr n Thi Kim Chi
ế t1(NV01, ‘Nguy n Trung Ti n’, 25) = ệ ộ ộ ủ t1(R) là m t b c a quan h NHANVIEN
ế ễ NV01 Nguy n Trung Ti n Bài 4 ầ
ị ế Tr n Th Y n
NV02
35
t2
(cid:0)
Quan hệ
n B c (degree):
ố
ộ
ậ ủ
ệ
B c c a quan h
ệ
S thu c tính 1 2
ệ ệ
3 n
ấ quan h nh t phân (unary relation) ị phân (binary relation) quan h nhệ quan h tam phân (ternary relation) quan h n phân (ternary relation)
ậ ố ượ ủ ệ ộ là s l ng các thu c tính c a quan h .
n L
ố ố ượ ộ ủ
ầ
14
ố ẽ ệ ng các b c a quan h . ng s s thay đ i khi thêm hay xoá các tuple (hàng). ượ ng s (cardinality): s l ượ L Bài 4 ổ Tr n Thi Kim Chi
ệ
Quan h (Relation)
ộ
ộ
ề ả ộ ộ ệ ấ ủ Các tính ch t c a m t quan h ấ ơ n Giá tr đ a vào c t là đ n nh t ộ ộ n 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)
n Th t
MaNV
HoTenNV
Tuoi
ế ễ NV01 Nguy n Trung Ti n
25
t1
ầ
NV02
ị ế Tr n Th Y n
35
t2
15
ầ
Bài 4
Tr n Thi Kim Chi
15
ị ứ ự ỳ ể ộ dòng c t tu ý.
ượ ồ
ệ c đ quan h L (Relation schema)
v L
c đ c s d li u
ộ ượ ồ ơ ở ữ ệ ượ ượ ồ ơ ở ữ ệ Trong m t l c đ c s d li u, các tên l ồ c đ
ấ quan h là duy nh t.
ượ ồ ơ ở ữ ệ ệ c đ c s d li u: L
Emp (Empnum, Name, Sal, Tax, Mgrnum, Deptnum)
Dept (Deptnum, Name, Area, Mgrnum)
Supplier (Snum, Name, City)
ầ
Bài 4
Tr n Thi Kim Chi
16
Supply (Snum, Pnum, Deptnum, Quan)
ệ ơ ở ữ ệ C s d li u quan h (Relational database)
n C s d li u quan h (relational database):
ệ
ệ ậ
ữ ệ ượ ư
c l u tr trong các quan h (b ng) ố ề ả ơ ở ữ ệ ợ ữ ạ n Là 1 t p h p h u h n các quan h (relations) ệ ả ữ n D li u đ ệ ữ n Có nhi u m i quan h gi a các b ng
SVIEN
LOP
MASV
TEN
MALOP
MALOP TENLOP
TCTH01
S nơ
TCTHA
TCTHA TCTH32A
SIS O 80
TCTH02
B oả
TCTHB
TCTHB
TCTH32B
65
TCTHC
TCTH32C
82
TCTH03
Trang
TCTHA
ầ
Bài 4
Tr n Thi Kim Chi
17
n
1
ẹ ộ Các ràng bu c toàn v n (Integrity constraints) ượ
n Ràng bu c là nh ng quy t c đ
ữ ặ
ữ ệ ậ
ả tính tin c y ậ và đ chính xác ẹ ượ ợ ắ ộ ế ế ể ữ t k đ gi c áp đ t lên trên d li u ủ ữ ệ c a d li u. Các lu t ữ ệ cho d li u phù h p và c thi
ộ ả đ m b o toàn v n đ đúng đ n.ắ
ể
ự
n Các ki u ràng bu c chính: ộ ộ ộ ộ
ể ẹ
ế
ị n Ràng bu c mi n giá tr (Domain Constraints), n Ràng bu c khoá (Key Constraints), n Ràng bu c th c th (Entity Integrity Constraints), n Ràng bu c toàn v n tham chi u (Referential Integrity
Constraints).
18
ộ ộ
ị
ẹ n Ràng bu c toàn v n Referential integrity ườ Bài 4 n Ràng bu c do ng
ầ Tr n Thi Kim Chi i dùng đ nh nghĩa Userdefined integrity
ộ ề
ự
ự ấ ủ
ể ả B o toàn th c th (Entity Integrity) ể ả ể dùng đ b o đ m
ả tính duy nh t c a
ể ả ể ả n B o toàn th c th ả . ỗ m i hàng trong b ng ỗ ự n Đ b o toàn th c th thì m i quan h có 1 khóa chính và
ị ủ
n “Trong m t quan h c s , m i thu c tính khóa chính
ệ ợ ệ . giá tr c a khóa chính ph i luôn h p l ộ
không đ
n Đ c th hi n trong SQL server thông qua các ràng bu c
ộ ả ọ ộ ệ ơ ở ượ ị ỗ c có giá tr r ng (null)” ể ệ
ượ sau:
19
Tr n Thi Kim Chi
Bài 4
19
ộ ộ ấ
n Ràng bu c khóa chính (primary key) n Ràng bu c duy nh t (unique) n Ch m c (index) ầ n Thu c tính identity
ỉ ụ ộ
ả
ề B o toàn mi n (Domain Integrity) ề
ể ả
ợ ệ ủ ữ ệ
ả
ả
ộ
n B o toàn mi n đ b o đ m tính h p l
c a d li u trong m t
thu c tính. ị
ộ ệ
ị ủ
ồ
ữ ệ
ầ
ộ
ộ
ủ
ộ ộ ố ề n Vi c xác đ nh mi n giá tr c a các thu c tính bao g m m t s ể ữ ệ Tên thu c tính, Ki u d li u, Đ dài d li u, ị ớ ạ ữ ệ i h n cho phép, ý nghĩa, ị ỗ
ấ
các yêu c u sau: ạ khuôn d ng c a d li u, các giá tr gi có duy nh t hay không, có cho phép giá tr r ng hay không.
ủ
ộ
ộ
ộ
ệ n “T t c giá tr xu t hi n trong m t thu c tính c a m t quan h
ấ ề
ệ ị ị ộ ph i cùng m t mi n tr ”
ấ ả ả n Ví d : ụ
ộ ố
ằ
n Trong quan h KQUATHI, DiemThi là m t s nguyên n m trong
ừ
ả kho ng t
ệ ế 0 đ n 10. ệ
ặ
n Trong quan h KQUATHI, LanThi là 1 ho c 2. ầ
Tr n Thi Kim Chi
Bài 4
20
ả
ề B o toàn mi n (Domain Integrity)
n Đ c th hi n trong SQL server thông qua các ràng bu c
ộ ể ệ
ượ sau: ể ữ ệ n Ki u d li u (Data types) ộ n Ràng bu c CHECK n Đ nh nghĩa RULE, DEFAULT, NOT NULL.
ị ị
ị
ầ
Bài 4
Tr n Thi Kim Chi
21
ể ỉ n Giá tr Null dùng đ ch : ộ ế ủ ị ư t c a thu c tính n Giá tr ch a bi ế ư ế ị t nh ng đang b thi u n Giá tr đã bi ỗ ỗ ố ị n Giá tr null khác s 0 hay chu i r ng “”
ộ ộ ậ
ể
ộ
ỏ
ị
Ràng bu c khóa (Key Constraints) n Khóa quan hệ là m t t p nh nh t các thu c tính dùng đ xác đ nh ấ
ộ
ấ duy nh t m t hàng. ườ
ượ ử ụ
ủ ả
ữ ệ
ch m c
ng đ
c s d ng làm
ỉ ụ (index) c a b ng d li u ấ
đ làm tăng t c đ x lý c a truy v n.
n Khóa th ể ộ
ố ộ ử ả
ủ ấ
ệ
ề
ể
ộ
ộ
thu c tính khóa
ộ ộ
ệ ượ ọ
ạ
ộ c đ quan h đ
(prime c g i là
ộ n M t quan h ph i có ít nh t m t khóa và có th có nhi u khóa. n Các thu c tính thu c m t khóa đ attribute), các thu c tính còn l các thu c tính không khóa
ướ
ộ ộ ộ
ọ ượ c g i là ượ ồ i trong l (nonprime attribute). i. c g ch d ượ
ị ỗ
ượ ạ n Các thu c tính khóa đ n Các thu c tính khóa không đ
c có giá tr r ng (
null value). ể ự
ạ n Có 3 lo i khóa:
Siêu khóa (Super key), Khóa d tuy n
ầ
Tr n Thi Kim Chi
Bài 4
22
(Candidate key), Khóa chính (Primary key)
ộ
Ràng bu c khóa (Key Constraints)
ộ ộ ậ
ộ ể ệ ấ
ặ ộ ộ ủ ộ ứ thu c tính không
ể ộ ầ c n thi
ị ể ế đ xác đ nh duy nh t m t b ậ ấ ả ủ ể ộ n Siêu khoá (superkey) là m t thu c tính ho c m t t p các thu c tính dùng đ xác đ nh duy nh t m t b c a quan h n M t siêu khoá có th ch a thêm các ộ ộ ị ộ t c các thu c tính c a t n Siêu khoá hi n nhiên ấ là t p t
ộ ấ ỳ
Cho hai b b t k t1 và t2 trong r(R) thì ta có
t1[SK] (cid:0)
t2[SK].
ầ
Bài 4
Tr n Thi Kim Chi
23
quan hệ
ệ
Khoá quan h (Relational Keys)
n Ví d : V i quan h LOPHOC (MaLop, TenLop, SoSV,
ệ ớ
ể
ụ MaKhoa) n Siêu khoá :
n K1 = {MaLop, TenLop} n K2 = {MaLop, SoSV} n K3= {MaLop, TenLop, MaKhoa} n K4= {MaLop, SoSV, MaKhoa} n K5= {Malop, TenLop, SoSV, MaKhoa} Khóa hi n nhiên c đô quan hê
n Bài t p: Xe t 1 l
̀ ́ ượ ậ ̣
STUDENT (StudentID, FirstName, LastName, BirthDate,
Tr n Thi Kim Chi
24
Major, SSN, ClassID)
ầ Bài 4 n Xa c đinh ca c siêu kho a co thê co cua R???
́ ́ ́ ́ ́ ̣ ̉ ̉
ộ
Ràng bu c khóa (Key Constraints)
ể ự
(cid:0) ộ ậ ộ
ộ ủ
n Khoá d tuy n (candidate key): ự ự ấ ỳ m t t p con th c s b t k K’ ấ n Tính duy nh t (uniqueness):
duy nh tấ
ố
ự
ậ không có t p con th c
ộ là m t siêu khoá K mà không có ạ K l ị ủ i là m t siêu khoá các giá tr c a K trong các b c a r là
ấ
n Tính t ự s K’
ả i gi n (irreducibility hay minimality) K l
(cid:0)
i có tính duy nh t. ỏ
n Khóa d tuy n c n th a mãn 2 tính ch t sau:
ạ ể ầ ấ
ấ
ủ
ộ
n Xác đ nh duy nh t. n 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.
́
́
ự
ự ị
n Vi du: tìm kho a d tuyên cua quan hê NHANVIEN(Manv, HoTen,
CMND, BSXe, Phai, NgaySinh, NgayVaoLam)
ầ
Tr n Thi Kim Chi
Bài 4
25
̣ ̉ ̉ ̣
ộ
Ràng bu c khóa (Key Constraints)
n Khoá d tuy n (candidate key):
ầ
Bài 4
Tr n Thi Kim Chi
26
ự ể
ộ
Ràng bu c khóa (Key Constraints)
n Khóa chính (primary key): là m t khóa d tuy n đ
ượ ể ộ
ọ ộ ộ ủ ự ệ ấ ị
ứ ợ ộ
ể ể ỉ ụ c ch n đ xác đ nh duy nh t m t b c a quan h . Khóa chính có th ch có 1 thu c tính hay khóa ph c h p. n Ví d : R={SSN, Name, BDate, Address, Salary}
Name, BDate, Address, Salary
n Ta th y, t
SSN (Ngu n)ồ (Đích) ừ ấ ộ ể SSN ta có th suy ra toàn b các thu c tính
ầ
Bài 4
Tr n Thi Kim Chi
27
ứ ậ ượ ọ ng. V y SSN đ ộ c g i là khóa chính.
ệ
ạ
Các lo i khoá quan h (Relational Keys)
ọ ộ ố ợ
ề ậ
ủ ề ộ ể ợ ộ
ạ ộ
M t s g i ý khi ch n khóa: ợ n 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 .ệ
n 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 ́ n Vi du: kho a chi nh cua quan hê SINHVIEN???
ầ
Bài 4
Tr n Thi Kim Chi
28
SINHVIEN(Masv, Tensv, Ngaysinh, Phai, Malop)
ộ
Ràng bu c khóa (Key constraints)
ị ọ ệ
ớ ủ ộ ậ
ố
ừ ế ỏ
(cid:0) t2 thì t[K1] (cid:0)
(cid:0) Đ nh nghĩa khóa theo quan h toán h c: n Khóa (key) c a R(U) v i U={A1, A2,. . ,Am} là m t t p ớ con K= {Aj1, Aj2,…, Ajn} v i j1, j2,..jn là các s nguyên ả ả 1 đ n m, ph i th a mãn t n m trong kho ng t phân bi ề ệ ồ đ ng th i 2 đi u ki n sau: t1, t2(cid:0) n (cid:0) r, n u t1ế ồ ạ t[K2] ề ệ ệ ằ ờ r(R), (cid:0) n Không t n t ỏ K sao cho K’ th a mãn đi u ki n i K’
29
ầ
Bài 4
Tr n Thi Kim Chi
29
(1)
ệ
ạ
Các lo i khoá quan h (Relational Keys)
ườ
ề
ợ
ộ
ạ n Khóa ngo i (foreign key): ả
Trong nhi u tr ộ
ư
ạ
ộ ệ
ế
ả
ng h p, khóa chính ả ượ ủ c đ a sang làm thu c tính bên b ng khác, c a m t b ng đ ể ạ ọ 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.
30
ầ
Bài 4
Tr n Thi Kim Chi
30
ệ
ạ
Các lo i khoá quan h (Relational Keys)
ạ
n Khóa ngo i (foreign key):
31
ầ
Bài 4
Tr n Thi Kim Chi
31
ệ
ạ
Các lo i khoá quan h (Relational Keys)
ự
ể
n Khóa khác (alternate key): Là các khóa d tuy n (candidate
key) còn l
ọ i sau khi ch n khóa chính.
ứ
ự
ạ ượ
ể là 1 khóa d tuy n có ch a khóa
n Khóa m n (borrowed key):
ngo iạ
ơ
ộ
ộ là khóa có m t thu c tính.
ợ
ề
ơ
ộ
là khóa có nhi u h n m t
n Khóa đ n (simple key): ứ n Khóa ph c h p (composite key): ộ thu c tính
ầ
Bài 4
Tr n Thi Kim Chi
32
ệ
ạ
Các lo i khoá quan h (Relational Keys)
ố ắ
ế ạ
Đóng vai trò khi ta mu n s p x p l
i
n Khóa ph (Second Key):
ụ ữ ệ d li u trong b ng.
ủ
ả ả ế ạ
n Ví dụ: Ta có b ng SINHVIEN (MaSV, Hoten, GioiTinh, Diem). ố ắ n Mu n s p x p l
a, b, c.. c a
i danh sách sinhviên theo th t ộ
ượ ọ
ọ
ứ ự ụ c g i là khóa ph .
H tên. Khi đó thu c tính Hoten đ
́ ượ ồ
n Xét ca c l
c đ quan h sau:
ệ Employee(Emp_ID, Name, Dept_Name, Salary)
Training(Emp_ID, Course, Date_Completed)
Department(Dept_Name, Location,Fax)
́
́
́
́ Xa c đinh kho a chi nh, kho a ngoai ??
ầ
Bài 4
Tr n Thi Kim Chi
33
̣ ̣
ệ ữ ệ Mô hình d li u quan h (Relational data model) ủ ượ ồ
ệ
ạ
ị
ụ
c đ quan h sau:
Ví d : Xác đ nh các lo i khóa c a l
n Xe(SODANGBO,QUICACH,
HINHDANG,MAUSAC,SOSUON,SOMAY,MAXE,QUOCGIA)
n Siêu khóa: (SOSUON,QUICACH),...
ị
n Khóa ch đ nh: (SODANGBO,QUOCGIA), (SOSUON), (SOMAY),
ỉ (MAXE)
n Khóa chính: MAXE
ộ
n Thu c tính khóa: SODANGBO,QUOCGIA, SOSUON, SOMAY, MAXE
ộ
n Thu c tính không khóa: QUICACH, HINHDANG, MAUSAC
ủ
ủ
ủ
ộ
ủ n Khóa c a Sv là (MASV), Khoá c a Mh là (MAMH), khoá c a Kh là ủ (MAKHOA), khóa c a Kq là (MASV,MAMH) khóa c a Lop là ạ MALOP, trong Lop thu c tính MAKHOA là khóa ngo i
ầ
Bài 4
Tr n Thi Kim Chi
34
ệ ữ ệ Mô hình d li u quan h (Relational data model)
n KHOA (MaKhoa, TenKhoa, NgayThanhLap) n LOPHOC (MaLop, TenLop, NienKhoa, SoHocvien, MaKhoa) n MONHOC (MaMon, TenMon, SoTC) n HOCVIEN (MaHV, HoHV, TenHV, NgaySinh, QueQuan, MaLop) n GIAOVIEN (MaGV, HoGV, TenGV, NgaySinh, HocVi,
ChuyenNganh)
n KQUATHI (MaHV, MaMon, LanThi, NgayThi, DiemThi, GhiChu) n DAY (MaGV, MaLop, MaMon)
ầ
Bài 4
Tr n Thi Kim Chi
35
ộ ượ ồ ủ ư ậ ị Bài t p: Xác đ nh các khóa c a m t l c đ CSDL nh sau:
ệ ữ ệ Mô hình d li u quan h (Relational data model)
n KHOA (MaKhoa, TenKhoa, NgayThanhLap) n LOPHOC (MaLop, TenLop, NienKhoa, SoHocvien, MaKhoa) n MONHOC (MaMon, TenMon, SoTC) n HOCVIEN (MaHV, HoHV, TenHV, NgaySinh, QueQuan, MaLop) n GIAOVIEN (MaGV, HoGV, TenGV, NgaySinh, HocVi,
ChuyenNganh)
n KQUATHI (MaHV, MaMon, LanThi, NgayThi, DiemThi, GhiChu) n DAY (MaGV, MaLop, MaMon)
ầ
Bài 4
Tr n Thi Kim Chi
36
ộ ượ ồ ư ủ ậ ị Bài t p: Xác đ nh các khóa c a m t l c đ CSDL nh sau:
ẹ
ệ ữ
ẹ
ế
ả
ị
ế Toàn v n tham chi u Referential integrity ể n Toàn v n tham chi u dùng đ xác đ nh m i quan h gi a các b ng
ử
ả
ố khi thêm, s a hay xóa các hàng trong b ng.
ộ ủ
ữ
ấ
duy trì tính nh t quán (consistency) gi a các b c a 2
ụ n M c đích: quan h .ệ
ự
ẹ
ố
ữ
ạ
ế ả ả
ứ ứ
ệ
ả
ọ
ệ n Trong SQL server, thì toàn v n tham chi u d a vào m i quan h ủ ượ ọ c g i là b ng chính (primary table) ượ c g i là b ng quan h (related
gi a khóa ngo i và khóa chính c a các b ng. đ n B ng ch a khóa chính: ạ đ n B ng ch a khóa ngo i:
ị
ả
ấ
ố
ả ả table) ả
ả ế
ị
ồ ạ ị
ế
ữ n Nó b o đ m giá tr khóa ph i th ng nh t (consistent) gi a các ề i và n u giá ế t c tham chi u đ n giá tr khóa này cũng Tr n Thi Kim Chi
37
Bài 4 ả ồ
ạ
ể ế ả b ng. Không th tham chi u đ n 1 giá tr không t n t ấ ả ổ ị tr khóa thay đ i thì t ầ ổ ph i đ ng lo t thay đ i theo.
ẹ
ể ệ
ắ
c th hi n thông qua 3 quy t c sau:
ả
ệ ế
ả
n Không th thêm các b n ghi vào b ng quan h n u không có b n
ế Toàn v n tham chi u Referential integrity ế ượ ẹ n Tính toàn v n tham chi u đ ả ả
ghi t
ng ng trong b ng chính. ổ
ị
ế
ả
n Không th thay đ i giá tr trong b ng chính n u làm cho các b n
ghi t
ế ng ng trong b ng quan h b m t tham chi u ế
ượ
ả ệ ị ấ ả
ể ươ ứ ể ươ ứ ể
n Không th xóa các b n ghi trong b ng chính n u nó đ
c tham
SVIEN
ố ả
ế
ả
ở
ả ả ệ chi u b i 1 s b n ghi trong b ng quan h
LOP
MASV
TEN
MALOP
MALOP TENLOP
S nơ
TCTHA
TCTH01
TCTHA TCTH32A
SIS O 80
B oả
TCTHB
TCTH02
TCTHB
TCTH32B
65
TCTHC
82
Trang
TCTHA
ầ
Tr n Thi Kim Chi
TCTH32C 38 38
TCTH03 Bài 4 Bài 4
n
1
ẹ
ữ
ế Toàn v n tham chi u (Reference Integrity) ộ ấ duy trì tính nh t quán (consistency) gi a các b ệ
ụ n M c đích: ủ c a 2 quan h
n Chú ý: “ N u t n t
ệ ạ ỗ
ị ứ ớ
ị ệ ặ ộ
ầ
Bài 4
Tr n Thi Kim Chi
39
ị ỗ ạ ả ị ế ồ ạ i 1 khóa ngo i trong 1 quan h , thì m i ạ ả ươ ng ng v i 1 giá tr khóa chính giá tr khóa ngo i ph i t ặ ệ trong m t quan h khác (ho c trong cùng quan h này) ho c giá tr khóa ngo i ph i là giá tr r ng”
ụ ề
ệ
Ví d v mô hình quan h
SVIEN
LOP
MASV
TEN
MALOP
MALOP TENLOP
TCTH01
S nơ
TCTHA
TCTHA TCTH32A
SIS O 80
TCTH02
B oả
TCTHB
TCTHB
TCTH32B
65
TCTHC
TCTH32C
82
TCTH03
Trang
TCTHA
1
N
KQUA
MONHOC
MASV MAMH DIEM
MAMH TENMH
TINCHI KHOA
TCTH01 THVP
8
ậ
THVP
4
CNTT
Nh p môn TH
TCTH01 CSDL
6
TCTH01 CTDL
7
CSDL
4
CNTT
TCTH02 THVP
9
CTDL
3
TOAN
TCTH02 CSDL
8
ấ C u trúc ữ ệ d li u Toán r i ờ r c ạ
TCTH03 THVP
10
ầ
1
Bài 4
Tr n Thi Kim Chi
40
N
ụ ề
ạ Ví d v khóa ngo i
ầ
Bài 4
Tr n Thi Kim Chi
41
41
ẹ
ườ
ị
Tính toàn v n do ng
i dùng xác đ nh
(Userdefined integrity)
ị ị ẹ
n Tính toàn v n do ng ắ các quy t c nghi p v c a t lo i toàn v n khác.
ườ ụ ủ ổ ứ ộ ệ i dùng xác đ nh cho phép xác đ nh ch c mà không thu c vào các
n M c đ h tr cho các toàn v n do ng
ẹ ườ ị i dùng xác đ nh
ỗ ph thu c vào m i DBMS.
n Đ c th hi n trong SQL server thông qua:
ẹ ộ ỗ ợ ộ ể ệ
ứ ả
n Ví d : “ M i văn phòng chi nhánh ch có t
ầ
Tr n Thi Kim Chi
ỗ ỉ ố
i đa 20 nhân 42 ạ ứ ụ ượ ộ n Các ràng bu c m c b ng n Stored procedure n Trigger ụ viên”Bài 4
ệ
ấ
ố t Quan h có c u trúc t (Wellstructured relation)
n Là m t quan h có d th a d li u là t
ệ ố
ể ộ ủ
ầ
Bài 4
Tr n Thi Kim Chi
43
ư ừ ữ ệ ộ i thi u và cho phép ệ ổ ử i s d ng thêm, xóa hay s a đ i các b c a quan h ẫ ữ ệ ườ ử ụ ị ng mà không b sai hay mâu thu n d li u (data inconsistency)
ườ
ự ấ ả ỗ
ữ ệ ấ ng d li u B t th (Data anomaly) i sai hay s không nh t quán x y ra khi
ng là 1 l
ng:
ầ
Bài 4
Tr n Thi Kim Chi
44
ườ ườ ườ ấ ườ n B t th ư ừ ữ ệ d th a d li u ườ ạ ấ n Ba lo i b t th ấ n B t th ấ n B t th ấ n B t th ng khi thêm vào ỏ ng khi xóa b ử ổ ng khi s a đ i
ườ
ụ ề ấ Ví d v b t th
ữ ệ ng d li u
n Xét quan h :ệ Employee(Emp_ID, Name, Dept_Name, Salary, Course,
Date_Completed)
Khi thêm 1 nhân viên m i mà nhân viên này không tham gia
ớ
ọ ấ ỳ b t k khóa h c nào
ề ề Khi 1 nhân viên tham gia nhi u khóa h c, xu t hi n nhi u
ấ c tăng l
ọ ượ ệ ế ầ l n trong quan h , n u nhân viên này đ ọ ỉ ế ệ ươ ng ọ ỉ N u 1 nhân viên ch tham gia 1 khóa h c và khóa h c này ch
ế ấ có duy nh t 1 nhân viên, n u nhân viên này b xóa
ầ
Bài 4
45
ả ệ ấ ử ạ i t??? ị ố S a l
Employee có ph i là quan h c u trúc t Employee(Emp_ID, Name, Dept_Name, Salary, CourseID) Tr n Thi Kim Chi Course (CourseID, Date_Completed)
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ớ ự ươ ứ
ươ ự ể
S t n M i quan h (b ng) t ố ng ng v i mô hình ER ứ ả ế ể
ệ ộ ươ ể ộ ng ng v i m t ki u th c th ề ự ứ ể ặ ộ ớ
ho c v i m t ki u m i liên k t nhi u nhi u. ớ ế ớ ề ể ệ ng ng v i m t th hi n th c th ho c v i ề ề m t th hi n m i liên k t nhi u nhi u.
ỗ ặ ớ ỗ n M i hàng t ố ể ệ ộ ỗ ộ ươ ứ ớ ộ ộ ng ng v i m t thu c tính.
ơ ở ữ ệ ệ
n M i c t t n T ừ quan hệ (relation) trong c s d li u quan h không ệ (relationship) trong mô
ố ớ ừ m i quan h
ầ
Bài 4
Tr n Thi Kim Chi
46
có cùng nghĩa v i t hình ER
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ệ ướ c chuy n t
ể ự ườ ể ừ ổ ể ERD sang mô hình quan h ể ng (regular
ể ế ự
ế
ự
ầ
Bài 4
Tr n Thi Kim Chi
47
Các b ướ v B c 1: chuy n đ i ki u th c th thông th entity) ướ ướ ướ ướ ướ ướ ể ể ể ể ể ể ể ố ể ố ố ố ế ế ế ể ể ổ v B c 2: Chuy n đ i ki u th c th y u (weak entity) ổ v B c 3: Chuy n đ i m i liên k t 2 ngôi ể ế ợ ổ v B c 4: Chuy n đ i ki u th c th k t h p ổ v B c 5: chuy n đ i m i liên k t 1 ngôi ổ v B c 6: chuy n đ i m i liên k t 3 ngôi ổ v B c 7: chuy n đ i m i liên k t siêu ki u / ki u con
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ườ
ể
ể
ả
ự n M i ki u th c th thông th ể
ệ ả
ể ế ự ể ự ể
ự ủ ủ
ủ ả
ộ
ộ ủ ả
ổ ể ể ể ự ườ ng (regular
ướ B c 1: chuy n đ i ki u th c th thông th entity) ỗ ể ng (không ph i ki u th c th y u) ượ c chuy n thành 1 quan h (b ng). Khoá chính c a ki u th c đ ể ở th tr thành khoá chính c a b ng. Các thu c tính c a ki u th c ể ở th tr thành các c t c a b ng
Customer_Name
CUSTOMER
Customer_ID
Customer_Address
48
ầ
Bài 4
48
Tr n Thi Kim Chi CUSTOMER(Customer_ID, Customer_Name, Customer_Address)
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ ướ B c 1: chuy n đ i ki u th c th thông th entity)
ự ể ể ể ổ ườ ng (regular
n V i thu c tính ph c h p:
ớ ộ ợ ẽ ượ ầ các thành ph n s đ c
ể
n V i thu c tính đa tr :
ệ chuy n thành các thu c tính trong quan h ể ẽ ượ ớ ộ ự ể ứ ộ ị th c th s đ c chuy n thành 2
quan hệ
n M t quan h ch a m i thu c tính tr thu c tính đa
ệ ứ ừ ộ ộ ọ ộ
trị
n M t quan h có 2 thu c tính: 1 khoá và 1 thu c tính ộ
ộ ệ ộ ộ
49
ầ
Bài 4
Tr n Thi Kim Chi
49
ị đa tr , khóa chính là 2 thu c tính đó
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ứ ợ ụ ề ộ Ví d v thu c tính ph c h p
Customer_Name
City
Street
State
CUSTOMER
Customer_ID
Customer_Address
CUSTOMER(Customer_ID, Customer_Name,Street, City, State)
ầ
Bài 4
Tr n Thi Kim Chi
50
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ụ ề ị ộ Ví d v thu c tính đa tr
Employee_Name
Employee_Address
Employee_ID
EMPLOYEE
EMPLOYEE(employee_ID, employee_Name, employee_Address)
EMPLOYEE_SKILL(Employee_ID, Skill)
ầ
Tr n Thi Kim Chi
Bài 4
51
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ ướ
ể ế ự ể ể ổ B c 2: Chuy n đ i ki u th c th y u (weak entity)
ỗ ể ệ ộ
n M i th c th y u chuy n thành 1 quan h . Thu c tính xác ư c đ a vào nh là 1 thu c
ể ủ ượ ư ộ
ự ủ ủ
ủ ộ ả
ị ự ủ ủ ộ ể ị
ầ
Bài 4
Tr n Thi Kim Chi
52
ể ế ự ể ị đ nh c a ki u th c th ch đ ệ tính c a quan h . ệ n Khóa chính cu quan h = thu c tính xác đ nh c a ể ự th c th ch + thu c tính xác đ nh c a th c th y uế
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
Date_Of_Birth
ụ ề ự ể ế Ví d v th c th y u
Employee_ID
Employee_Name
Dependent_Name
Gender
Has
EMPLOYEE
DEPENDENT
EMPLOYEE(Employee_ID, Employee_Name) DEPENDENT( Dependent_Name, Employee_ID,
53
ầ
Bài 4
Tr n Thi Kim Chi
Date_Of_Birth, Gender) 53
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ướ ể ế ố ổ B c 3: Chuy n đ i m i liên k t 2 ngôi
ố ủ ể
ị ạ ủ ớ ể ự ể ự ộ ế n V i m i liên k t 1M: thu c tính xác đ nh c a ki u th c ể ượ ư c đ a vào làm khoá ngo i c a ki u th c th
ầ
Bài 4
Tr n Thi Kim Chi
54
th phía 1 đ phía M.
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ụ ề ệ Ví d v quan h 1M
Customer_ID
Order_Date
Customer_Name
Order_ID
ORDERS
Submits
CUSTOMER
CUSTOMER(Customer_ID, Customer_Name) ORDER( Order_ID, Order_Date, Customer_ID)
ầ
Tr n Thi Kim Chi
Bài 4
55
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ụ ề ệ Ví d v quan h 1M
MAKH
NGAYLAP
TENKH
MAHD
HOADON
MUA
KHACHHANG
ầ
CUSTOMER(Customer_ID, Customer_Name) ORDER( Order_ID, Order_Date, Customer_ID) Bài 4
Tr n Thi Kim Chi
56
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ ướ
ể ế ố ổ B c 3: Chuy n đ i m i liên k t 2 ngôi
n V i m i liên k t MN
ố ớ ế ớ ượ ạ
ệ ồ
ộ : m t quan h m i đ ệ ớ ể ệ ươ ứ ự ể ố ớ
57
ầ
Bài 4
Tr n Thi Kim Chi
57
c t o ra. ủ ủ Khoá chính c a quan h m i bao g m khóa chính c a 2 ng ng v i ki u th c th tham gia vào m i quan h t liên k t.ế
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ụ ề ệ Ví d v quan h MN
MASP
TENNCC
TENSP
DONGIA
MANCC
NHACUNGCAP
SANPHAM
CUNGCAP
SANPHAM(MASP, TENSP) CUNGCAP(MASP, MANCC, DONGIA) NHACUNGCAP( MANCC, TENNCC)
ầ
Tr n Thi Kim Chi
Bài 4
58
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ướ ể ế ố ổ B c 3: Chuy n đ i m i liên k t 2 ngôi
n V i m i liên k t 11
ế ớ ố ườ ợ : là 1 tr
̀ ặ ng h p đ c bi ệ ẽ ượ ệ ủ ư t c a 1M. c đ a vào la m
ệ ủ Khoá chính c a 1 trong 2 quan h s đ ạ ủ khoá ngo i c a quan h kia.
ế ệ
ư ạ ố ự ộ
59
ầ
Bài 4
Tr n Thi Kim Chi
59
ệ ươ ứ ự ể ệ ớ ế n N u 1 trong 2 đ u m i liên k t là nhi m ý, thì nên đ a ể ắ ủ khoá chính c a ki u th c th b t bu c vào làm khoá ngo i ể ủ c a quan h t ầ ể ng ng v i ki u th c th nhi m ý
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
Moâ hình ER
sôû höõu
BAÈNG LAÙI
NGÖÔØI LAÙI XE
maõ baèng laùi loaïi baèng laùi ngaøy heát haïn
ñöôïc sôû höõu bôûi
maõ ngöôøi laùi xe teân ñòa chæ ngaøy sinh Löôïc ñoà CSDL
NGÖÔØI LAÙI XE (maõ ngöôøi laùi xe, teân, ñòa chæ, ngaøy sinh)
BAÈNG LAÙI(maõ baèng laùi , loaïi baèng laùi, ngaøy heát haïn, maõ ngöôøi laùi xe) hay
NGÖÔØI LAÙI XE (maõ ngöôøi laùi xe, teân, ñòa chæ, ngaøy sinh, maõ baèng laùi )
BAÈNG LAÙI(maõ baèng laùi , loaïi baèng laùi, ngaøy heát haïn )
ầ
Bài 4
Tr n Thi Kim Chi
60
60
Hình 1.4.6 - Moâ hình ER vaø moâ hình quan heä cuûa vaán ñeà Ngöôøi laùi xe vaø baèng laùi
ụ ề ệ Ví d v quan h 11
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ầ
Bài 4
Tr n Thi Kim Chi
61
Biến đổi mối liên kết hai ngôi có lượng số một - một
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ướ ự ể ể ổ ể ế ợ B c 4: Chuy n đ i ki u th c th k t h p
n M t quan h m i đ
ệ ớ ượ ạ ể ễ ả ự ể c t o ra đ di n t ể cho ki u th c th
ộ ế ợ k t h p
n N u ki u th c th k t h p không có thu c tính xác đ nh
ể ế ợ ự ể ế ộ ị
ệ ớ ủ ồ riêng, khoá chính c a quan h m i bao g m khoá chính
ệ ươ ự ứ ể ể ớ ủ c a 2 quan h t ng ng v i 2 ki u th c th có liên
quan
n N u ki u th c th k t h p có thu c tính xác đ nh riêng
ể ế ợ ự ể ế ộ ị
Tr n Thi Kim Chi
62
Bài 4
ộ ượ thì thu c tính này đ ầ c dùng làm khoá chính cho quan
ệ ớ h m i.
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ Ví d v ki u th c th k t h p
Vendor_ID
ụ ề ể ể ế ợ ự
Customer_ID
Date
Customer_Name
Address
Shipment_No
VENDOR
CUSTOMER
Shipment
63
ầ
Bài 4
63
CUSTOMER(Customer_ID, Customer_Name,..) SHIPMENT(Shipment_No, Customer_ID, Vendor_ID,Date,…) Tr n Thi Kim Chi VENDOR( Vendor_ID, Address,…)
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ướ ế ể ố ổ B c 5: chuy n đ i m i liên k t 1 ngôi
ế ạ
ế ể ế ế
ị ủ ả ệ ạ
ầ
Bài 4
Tr n Thi Kim Chi
64
ạ ệ ệ ớ n V i liên k t 1 ngôi 1M: Thêm 1 khoá ngo i vào quan h ố ủ c a m i liên k t này đ tham chi u đ n các tr c a khoá ủ chính c a quan h (khoá ngo i và khoá chính ph i cùng ị ề mi n tr ). Đ c g i là ượ ọ khoá ngo i đ quy
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ Ví dụ
Ten
MaNV
NgaySinh
NHANVIEN
QuanLy
Employee(Employee_ID, Name, BirthDate, Manager_ID) ầ
Tr n Thi Kim Chi
Bài 4
65
ERD thành các quan
ể ế
ể ổ ừ Chuy n đ i t hệ ổ ướ ố B c 5: chuy n đ i m i liên k t 1 ngôi
ế ể ế ớ ợ ố n V i liên k t 1 ngôi MN:m i liên k t đu c chuy n thành 2
quan h :ệ
n M t quan h di n t
ệ ễ ả ể ộ ể ự ki u th c th
n M t quan h di n t
ệ ễ ả ộ ế ớ ố chính m i liên k t v i khoá chính
ấ ừ ồ ộ ủ bao g m 2 thu c tính l y t ệ khoá chính c a quan h
ầ
Bài 4
Tr n Thi Kim Chi
66
ươ ứ t ng ng
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ụ ố ế Ví d m i liên k t 1 ngôi MN
Name
Item_ID
Unit_Cost
ITEM
Contains
Quantity
67
ầ
ITEM(Item_No, Name, Unit_Cost) CONTAINS(Item_No, Component_No, Quantity) Bài 4
Tr n Thi Kim Chi
67
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ướ ế ể ố ổ B c 6: chuy n đ i m i liên k t 3 ngôi
ể ự
ự ể ệ ế ể ể n M i liên k t 3 ngôi và các ki u th c th có liên quan c chuy n thành 4 quan h : 3 quan h cho 3 ki u th c
ệ ố
ườ ợ ng h p :
ầ
Bài 4
Tr n Thi Kim Chi
68
ố ượ ệ đ ế ể th liên quan và 1 quan h cho m i liên k t ố n B n tr n 1:1:1 n 1:1:N n 1:N:M n N:M:L
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ướ ể ế ố ổ B c 6: chuy n đ i m i liên k t 3 ngôi
ng h p 1:1:1:
ỗ
ỹ ư
ợ ườ n Tr ỗ ỹ ư “M i k s dùng 1 case book khác nhau cho m i project mà ọ h tham gia. Các k s không dùng chung case book khi làm cùng 1 project” ể ể
ụ ộ ự 3 ki u th c th : Engineer, Project, CaseBook Các ph thu c hàm:
Tr n Thi Kim Chi
Bài 4
69
Eng_No, Proj_No Book_No Book_No, Proj_No Eng_No Eng_No, Book_No Proj_No ầ
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ụ ề ệ Ví d v quan h 3 ngôi 1:1:1
ENGINEER
Use_Casebook
CASEBOOK
PROJECT
70
ầ
Tr n Thi Kim Chi
Bài 4
70
ENGINEER(Eng_No,…) PROJECT(Proj_No,…) CASEBOOK(Book_No,…) USE_CASEBOOK(Eng_No, Proj_No, Book_No,…)
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
n Ba khoá candidate:
n Eng_No, Proj_No n Book_No, Proj_No n Eng_No, Book_No
ụ ề ệ Ví d v quan h 3 ngôi 1:1:1
71
ầ
Bài 4
Tr n Thi Kim Chi
71
ể ọ ấ ỳ Có th ch n b t k khoá candidate nào làm khoá chính
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ ổ ướ B c 6: chuy n đ i m i liên k t 3 ngôi
ể ế ố
ợ ườ ng h p 1:1:N:
n Tr ề “Sinh viên làm đ tài theo s h ướ
ự ướ ư ủ
ề ẫ ơ
ề ề ơ ớ
ẫ ng d n c a giáo s . Không ề ư giáo s nào h ng d n cùng 1 sinh viên làm nhi u h n 1 đ tài. Không sinh viên nào làm 1 đ tài v i nhi u h n 1 giáo s ”ư
ể ể
n Stud_No, Tea_No Proj_No n Stud_No, Proj_No Tea_No
Tr n Thi Kim Chi
Bài 4
72
ầ ể ọ
ụ ộ ự 3 ki u th c th : Teacher, Student, Project Các ph thu c hàm:
2 khoá candidate, có th ch n 1 trong 2 khoá làm khoá chính
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ụ ề
ệ
Ví d v quan h 3 ngôi 1:1:N
STUDENT
Supervises
PROJECT
TEACHER
73
ầ
Bài 4
Tr n Thi Kim Chi
73
STUDENT(Stud_No,…) PROJECT(Proj_No,…) TEACHER(Tea_No,…) SUPERVISES(Tea_No, Stud_No, Proj_No,…)
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
ướ ế ể ể ể ố ổ B c 7: chuy n đ i m i liên k t siêu ki u/ ki u con
ự ể chuy n đ i:
n T o 1 quan h cho siêu ki u và 1 quan h cho m i
ổ ệ ể ệ ỗ
ki u con
ữ ể ệ ộ
ể ỗ
n Trình t ạ ể ư n Đ a vào quan h cho siêu ki u nh ng thu c tính chung ư n Đ a vào m i quan h cho m i ki u con khoá chính ộ ủ c a siêu ki u cùng v i thu c tính riêng c a t ng ki u con
ủ ừ ỗ ể ệ ớ ể
n Thêm th ôc tính phân bi
ầ
Bài 4
Tr n Thi Kim Chi
74
ụ ệ ể ể t ki u con vào siêu ki u
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
Employee_Name
Address
Employee_Type
Employee_No
Date_Hired
EMPLOYEE
Employee_Type=
“H”
Contract_No
d
“S”
“C”
CONSULTANT
HOURLY EMPLOYEE
SALARIEDE MPLOYEE
Billing_Rate 75
Annual_Salary
Stock_Options
ầ
Hourly_Rate Bài 4
Tr n Thi Kim Chi
75
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
n EMPLOYEE(Employee_No, Employee_Name, Address,
Ví dụ
n HOURLY_EMPLOYEE(H_Employee_No, Hourly_Rate) n SALARIES_EMPLOYEE(S_Employee_No,
Employee_Type, Date_Hired)
n CONSULTANT(C_Employee_No, Contract_No, BillingRate)
ầ
Bài 4
Tr n Thi Kim Chi
76
Annual_Salary,Stock_Options)
ể ổ ừ
ERD thành các quan
Chuy n đ i t hệ
DIACHI
HOTEN
LOAINV
MANV
NGAYLAM
NHANVIEN
“H”
d
“C”
NV_HANHCHANH
NV_SANXUAT
MACV
SONC
SOLUONG 77
ầ
Bài 4
Tr n Thi Kim Chi
77
Bài t pậ
n Chuy n các s đ ERD trong bài 3 sang l
ầ
Bài 4
Tr n Thi Kim Chi
78
ơ ồ ể ượ ồ ệ c đ quan h