ng 4 ng 4

ươCh ươ Ch

MÔ HÌNH QUAN H - RELATIONAL MODEL

ộN i dung N i dung

 Các đ nh nghĩa c b n c a mô hình d li u quan h

ệ ữ ệ ơ ả ủ

2

ị  Quan hệ  L c đ quan h ượ ồ  Quan h toán h c ệ ọ c đ quan h và quan h  L ệ ượ ồ  Khóa quan hệ  Ràng bu c toàn v 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 ệ ữ ệ Mô hình d li u quan h ệ ữ ệ (Relational data model) (Relational data model)

 Đ c đ xu t b i E.F. Codd năm 1970. ượ ề ấ ở  Mô hình này bao g m:ồ

 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, ...  Đ c xây d ng trên c s c a phép toán t p h p và phép toán

ế ấ ộ ơ ở ủ

 Ràng bu c toàn v n quan h . ệ

ộ ượ quan h .ệ ộ

ẹ  Các HQTCSDLQH đ

c xây d ng d a theo lý thuy t mô ượ ự ự ế

 Nh ng hi n nay DBMS b t đ u theo h

hình quan hệ

3

ng đ i t ng ắ ầ ư ệ ướ ố ượ

Mô hình d li u quan h ệ ữ ệ Mô hình d li u quan h ệ ữ ệ (Relational data model) (Relational data model)

ộ ả

ữ ệ ộ

ả ứ

ộ ủ

ng c th thu c th c th

ự ụ ể

ặ ể ộ

ỗ ự

 Quan h ệ (relation) là m t b ng d li u hai chi u g m nhi u hàng (m u tin hay b n ghi) và nhi u c t (thu c tính ho c vùng tin). ề ẫ ng ng v i m t thu c tính c a th c th . M i dòng M i c t t ộ ỗ ộ ươ ch a các giá tr d li u c a m t đ i t ộ ố ượ ứ  M i hàng là duy nh t: không th có hai hàng có cùng các giá ể

ị ữ ệ ủ ấ

t c vùng tin. c a các hàng và c t là không quan tr ng.

ỗ t tr ị ở ấ ả  Th t ứ ự ủ

MaNV

HoTenNV

Tuoi

25

NV01 Nguy n Trung Ti n ễ

ế

NV02

Tr n Th Y n

35

ị ế

NV03 Nguy n Văn An

40

4

Tr c quan v Quan h

 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 ộ

MASV

TEN MALOP MAMH TENMH

ĐIEM

Bộ

TCTH01

TCTHA

THVP

Tin H c Văn Phòng

6.0

S nơ

TCTH01

TCTHA

CSDL

5.0

S nơ

C S D Li u ơ ở ữ ệ

TCTH02 Lan

TCTHA

CSDL

3.0

C S D Li u ơ ở ữ ệ

ữ ộ

ư

t c các dòng có liên quan đ n SV

• 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 ả ử ấ ả

ể ư ầ ử ổ

ế

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 ọ ộ

ể ư

• Đ l u tr đúng mô hình quan h , ta có th l u tr thành các b ng ệ TH107

5

tên Sv đó. ể ư Bài 4 nh sauư

Ví d v mô hình quan h

ụ ề

SVIEN

LOP

MASV

TEN

MALOP

MALOP TENLOP

SISO

TCTHA TCTH32A

80

TCTH01

TCTHA

S nơ

TCTHB

TCTH32B

65

TCTH02

TCTHB

B oả

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

CSDL

4

CNTT

TCTH01 CTDL

7

C u trúc d ữ ấ li uệ

TCTH02 THVP

9

CTDL

3

TOAN

TCTH02 CSDL

8

Toán r i ờ r c ạ

TCTH03 THVP

10

Mô hình d li u quan h ệ ữ ệ Mô hình d li u quan h ệ ữ ệ (Relational data model) (Relational data model)

 Bộ

 B là t p m i giá tr liên quan c a t

t c các thu c tính ủ ấ ả ộ

HOTEN

PHAI

TINH

MA SV

MA LOP

HOC BONG

NGAY SINH

TRAN AN

TRUE

CÑTH2B

T GIANG 120000

9900 1

15-03- 1977

NGUYEN HA TRUE

TCTH29C

TPHCM 120000

9900 2

25-04- 1986

7

ị ỗ ậ c đ quan h . ệ ộ ượ ồ  Ví d quan h sau có 2 b ộ ệ ộ c a m t l ủ ụ

Mô hình d li u quan h ệ ữ ệ Mô hình d li u quan h ệ ữ ệ (Relational data model) (Relational data model)

 Khóa - key

 Khóa quan hệ là m t t p nh nh t các thu c tính dùng đ xác

ườ

ỉ ụ (index) c a b ng d ữ

ủ ả

ch m c ấ

ộ c s d ng làm ượ ử ụ li u đ làm tăng t c đ x lý c a truy v n. ố ộ ử ủ ả

 M t quan h ph i có ít nh t m t khóa và có th có nhi u ấ

ộ ậ đ nh duy nh t m t hàng. ấ ị ng đ  Khóa th ệ ể ộ khóa.

 Các thu c tính thu c m t khóa đ

ộ ộ

thu c tính khóa ộ c đ quan h ệ ượ ồ

ướ

8

c có giá tr r ng (

null value).

c g i là ượ ọ i trong l (prime attribute), các thu c tính còn l ạ thu c tính không khóa (nonprime attribute). đ ượ ọ i. ộ ộ

c g ch d ượ

ị ỗ

c g i là các ộ  Các thu c tính khóa đ ượ ạ  Các thu c tính khóa không đ

L L

c đ quan h (Relation schema) c đ quan h (Relation schema)

ượ ồ ượ ồ

ệ ệ

 L

c đ quan h bao g m: ệ

ng ng.

ươ ứ

ế

ượ ồ  Tên quan h . ệ  Tên các thu c tính cùng v i tên domain t ộ  Các ràng bu c b o toàn ( integrity constraint): là các h n ch trên ộ ả các quan h c a l

c đ này.

ng là 1 t p con cu ki u d li u. Ký hi u dom(A)

 Domain : là 1 t p h p các giá tr cho phép c a 1 hay nhi u thu c ộ ị  ả ể

ữ ệ

ệ ủ ượ ồ ợ ậ

ườ ị ủ

 Thu c tính Address c a quan h STUDENT có domain là t p h p các

tính, th mi n tr c a thu c tính A ề  Ví d :ụ ộ chu i.ỗ ộ

ố ự

0 đ n 10. ế 9

 Thu c tính đi m có domain là các s th c trong ph m vi t

L L

c đ quan h (relation schema) c đ quan h (relation schema)

ượ ồ ượ ồ

ệ ệ

1, D2,.., Dn

c đ quan h R v i 1 t p thu c tính {A

ượ ồ

 Cho A1, A2, .., An là tên các thu c tính thu c các mi n D 1, A2, .., An}  L ậ

ớ R(A1, A2, .., An)

 G i U={A

c đ quan h R

ủ ượ ồ

1, A2,.., An} là t p các thu c tính c a l

c đ quan h luôn kèm m t tân t

ý nghĩa c a

ỗ ượ ồ

đ di n t ừ ể ễ ả

 Bi u di n 1 l

 M i l nó. ể

TÊN_QUAN_H ( thu c tính 1, thu c tính 2,…)

Ví d : l

c đ quan h Employee có 3 thu c tính

ụ ượ ồ

: M i nhân viên có m t MaNV duy nh t dùng đ nh n di n

10

c đ quan h : ệ ượ ồ ộ Ệ ệ NHANVIEN(MANV, Ten, MaPb, Luong) Tân t ấ ỗ TenNV, MaPB và L

ng.

ươ

c ký hi u r(R) là m t t p ượ R vào D v i đi u ki n m i ề

ộ ậ ọ

ệ ớ

¨

Quan h (Relation) ệ Quan h (Relation) ệ D2 ¨ …¨  G i D = D1 Dn ọ  Quan h r trên l c đ quan h R đ ệ ượ ồ h u h n các ánh x {t1,t2,..,tp} t ừ ạ ữ ạ r thì t[Ai]˛ ánh x t ạ ˛ Di, 1 ≤ i ≤ n  Quan h r là m t th hi n quan h (relation instance) c a R ộ ệ ể ệ ể ộ

t ạ

c ký

 M i ánh x c a quan h là 1 b c a quan h và đ ệ

ượ

ờ ạ ủ

˛

Di, 1 ≤ i ≤ n

i 1 m t th i đi m ỗ ệ

ượ

t[Ai] ho c ặ t.Ai

ộ ủ hi u (A1:d1, A2: d2,…,An:dn) v i di ớ c ký hi u là ệ ủ ộ ộ

 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

11

25

t1

NV01 Nguy n Trung Ti n ễ

ế

t1(NV01, ‘Nguy n Trung Ti n’, 25) = ế ễ t1(R) là m t b c a quan h ệ ộ ộ ủ NHANVIEN

NV02

35

t2

Tr n Th Y n ị ế

c đ quan h L ệ ượ ồ c đ quan h L ượ ồ ệ (Relation schema) (Relation schema)

 L

c đ c s d li u

c đ c s d li u, các tên l c đ quan ượ ồ ơ ở ữ ệ  Trong m t l ộ ượ ồ ơ ở ữ ệ ượ ồ

h là duy nh t. ấ ệ c đ c s d li u: ượ ồ ơ ở ữ ệ

12

L Emp (Empnum, Name, Sal, Tax, Mgrnum, Deptnum) Dept (Deptnum, Name, Area, Mgrnum) Supplier (Snum, Name, City) Supply (Snum, Pnum, Deptnum, Quan)

C s d li u quan h ệ ơ ở ữ ệ C s d li u quan h ệ ơ ở ữ ệ (Relational database) (Relational database)

 C s d li u quan h (relational database): ệ

ệ ậ

ữ ệ ượ ư

ơ ở ữ ệ  Là 1 t p h p h u h n các quan h (relations) ợ ữ ạ  D li u đ ệ ả ữ  Có nhi u m i quan h gi a các b ng ệ ữ c l u tr trong các quan h (b ng) ố ề ả

SVIEN

LOP

MASV

TEN

MALOP

MALOP TENLOP

SISO

TCTHA TCTH32A

80

TCTH01

TCTHA

S nơ

TCTHB

TCTH32B

65

TCTH02

TCTHB

B oả

TCTHC

TCTH32C

82

TCTH03

Trang

TCTHA

13

n

1

C u trúc d li u quan h (tt) C u trúc d li u quan h (tt)

ữ ệ ữ ệ

ệ ệ

ấ ấ

 B c (degree): là s l

B c c a quan h B c c a quan h

ậ ủ ậ ủ

ệ ệ

ộ ộ

S thu c ố S thu c ố tínhtính 11

quan h nh t phân (unary relation) quan h nh t phân (unary relation)

ệ ệ

ấ ấ

22

quan h nhệ quan h nhệ

ịị phân (binary relation) phân (binary relation)

33

quan h tam phân (ternary relation) quan h tam phân (ternary relation)

ệ ệ

quan h n phân (ternary relation) quan h n phân (ternary relation)

ệ ệ

ng các thu c tính c a quan h . ố ượ ậ ủ ệ ộ

 L L

nn ng s (cardinality): s l ố ượ ng s s thay đ i khi thêm hay xoá các tuple (hàng).

ng các b c a quan h . ộ ủ ệ

14

ố ố ẽ ổ ượ ượ

Khoá quan h (Relational Keys) Khoá quan h (Relational Keys)

ệ ệ

ặ ộ

ộ ể ệ ấ

 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  M t siêu khoá có th ch a thêm các ộ tế đ xác đ nh duy nh t m t b thi

ộ ộ ủ thu c tính không c n ộ ầ

 Siêu khoá hi n nhiên

ị ể ứ ấ ể

là t p t t c các thu c tính c a ộ ủ ị ể ộ ộ ậ ấ ả

c đô quan hê quan hệ  Ví d : Xet 1 l ụ ượ ́ ̀ ̣

15

STUDENT (StudentID, FirstName, LastName, BirthDate, Major, SSN, ClassID)  Xac đinh cac siêu khoa co thê co cua R??? ́ ̣ ́ ́ ́ ̉ ́ ̉

Các lo i khoá quan h (Relational Keys) Các lo i khoá quan h (Relational Keys)

ệ ệ

ạ ạ

ự ộ

 Khoá d tuy n (candidate key): là m t siêu khoá K mà i là m t ự ự ấ

(cid:204) K l ể ộ ậ ạ ộ

không có m t t p con th c s b t kỳ K’ siêu khoá  Tính duy nh t (uniqueness): ấ các giá tr c a K trong các b ộ ị ủ

c a r là duy nh t ấ ủ  Tính t i gi n (irreducibility hay minimality) không có t p ậ

(cid:204) i có tính duy nh t. ạ ấ

16

K l  Vi du: khoa d tuyên cua quan hê STUDENT??? ố ả con th c s K’ ự ự ́ ự ́ ̣ ̉ ̉ ̣

Các lo i khoá quan h (Relational Keys) Các lo i khoá quan h (Relational Keys)

ệ ệ

ạ ạ

ơ ộ

là khóa có nhi u h n m t

 Khóa đ n (simple key):  Khóa ph c h p (composite key): ứ ợ

là khóa có m t thu c tính. ộ ề ộ ơ

 Khóa chính (primary key): là m t khóa d tuy n đ

thu c tính ộ

ượ ể ộ

ọ ộ ộ ủ ự ệ ấ ị

ể ể ỉ ứ ợ ộ

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.  Vi du: khoa chinh cua quan hê SINHVIEN??? ́ ̣ ́ ́ ̉ ̣

17

SINHVIEN(Masv, Tensv, Ngaysinh, Phai, Malop)

Các lo i khoá quan h (Relational Keys) Các lo i khoá quan h (Relational Keys)

ệ ệ

ạ ạ

 Đ nh nghĩa khóa theo quan h toán h c:  Khóa (key) c a R(U) v i U={A ủ

ị ệ ọ

1, A2,. . ,Am} là m t t p con t ệ ố 1 đ n m, ph i th a mãn đ ng th i 2 ỏ

ớ ộ ậ

ừ ế ả ả ồ

˛ „ K= {Aj1, Aj2,…, Ajn} v i jớ 1, j2,..jn là các s nguyên phân bi n m trong kho ng t ằ ờ đi u ki n sau: ệ ề r(R), "  " r, n u tế 1 t[K2]

 Không t n t

18

(cid:204) i K’ K sao cho K’ th a mãn đi u ki n (1) ệ ề t2 thì t[K1] „ ỏ t1, t2 ồ ạ

Các lo i khoá quan h (Relational Keys) Các lo i khoá quan h (Relational Keys)

ệ ệ

ạ ạ

 Các khóa d tuy n (candidate key) còn l

i sau khi ch n khóa ạ ọ

 Khóa ngo i (foreign key):

chính đ khóa khác (alternate key)

ự ể c g i là ượ ọ ạ ộ ộ

ậ ể ủ ự

 Khóa m n (borrowed key):

là 1 thu c tính hay 1 t p thu c tính c a 1 quan h tham chi u đ n khóa d tuy n c a 1 ế ệ ế quan h khác hay c a cùng 1 quan h . ệ ủ ủ ệ

là 1 khóa d tuy n có ch a ứ ự ể

 Xét cac l

c đ quan h sau:

́ ượ ồ

Employee(Emp_ID, Name, Dept_Name, Salary) Training(Emp_ID, Course, Date_Completed) Department(Dept_Name, Location,Fax)

19

Xac đinh khoa chinh, khoa ngoai ??

ượ khóa ngo iạ

́ ̣ ́ ́ ́ ̣

Mô hình d li u quan h ệ ữ ệ Mô hình d li u quan h ệ ữ ệ (Relational data model) (Relational data model)

c đ quan h sau:

ượ ồ

Ví d : Ta hãy xem l  Xe(SODANGBO,QUICACH,

HINHDANG,MAUSAC,SOSUON,SOMAY,MAXE,QUOCGIA)

 Siêu khóa: (SOSUON,QUICACH),...  Khóa ch đ nh: (SODANGBO,QUOCGIA), (SOSUON), (SOMAY),

ỉ (MAXE)

 Khóa chính: MAXE  Thu c tính khóa: SODANGBO,QUOCGIA, SOSUON, SOMAY, MAXE  Thu c tính không khóa: QUICACH, HINHDANG, MAUSAC

ộ ộ ủ

 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 ạ

20

Các ràng bu c toàn v n ẹ ộ Các ràng bu c toàn v n ẹ ộ (Integrity constraints) (Integrity constraints)

quy t c nghi p v

ụ. Các ràng bu c ộ ắ ng n m trong ph n requirement Document c a ng

ườ

 M t s ràng bu c d a vào các ộ ự ằ

ủ ứ

ươ

ơ

ộ ố này th d ng.ụ  Nhân viên không th có l  Sinh viên ph i th a mãn các đi u ki n tiên quy t m i đ

c

ng cao h n giám đ c ố ệ

ớ ượ

ế

t k b i nhà thi

ườ t k và đ ế ế

ng là ràng bu c type và domain, xu t ấ ộ t k c thi ế ế ế ế ở

ượ

ể ỏ đăng ký môn h c đóọ  Các ràng bu c khác th ộ hi n trong s đ thi ơ ồ ệ CSDL.

 Ngay khi các ràng bu c đã đ

c xác đ nh trong l

ượ

ượ ả ả

ượ

21

ệ ạ

c đ thì trách nhi m c a các DBMS là ph i b o đ m sao cho chúng không b vi ph m khi có b t kỳ giao d ch (transaction) nào đ c th c thi trong CSDL đó.

Toàn v n d li u ẹ ữ ệ Toàn v n d li u ẹ ữ ệ (Data integrity) (Data integrity)

ộ ủ ụ ể

 M c đích c a ràng bu c (constraint): đ duy trì tính chính xác (accurary) và toàn v n d li u (data integrity) trong CSDL. ạ

ữ ệ ẹ

ự ề ị

 Các lo i toàn v n d li u : ẹ ữ ệ  Ràng bu c th c th - Entity integrity ộ ể  Ràng bu c mi n giá tr - Domain integrity ộ  Ràng bu c toàn v n - Referential integrity ẹ ộ  Ràng bu c do ng ộ

i dùng đ nh nghĩa - User-defined ườ ị

22

integrity

ự ự

B o toàn th c th ể ả B o toàn th c th ể ả (Entity Integrity) (Entity Integrity)

 B o toàn th c th dùng đ b o đ m ể hàng trong b ngả .  Đ b o toàn th c th thì m i quan h có 1 khóa chính và ỗ ể ả

ả ự ả tính duy nh t c a m i ấ ủ ể ả ỗ

ự ể

 “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 ị ủ

 Đ c th hi n trong SQL server thông qua các ràng bu c

không đ

ệ . ợ ệ ả ộ ọ ộ ệ ơ ở c có giá tr r ng (null)” ượ ị ỗ ể ệ ộ

ượ sau:

23

 Ràng bu c khóa chính (primary key)  Ràng bu c duy nh t (unique)  Ch m c (index)  Thu c tính identity

ộ ộ ấ

ỉ ụ ộ

ả ả

B o toàn mi n ề B o toàn mi n ề (Domain Integrity) (Domain Integrity)

 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. ộ

ị ệ

 Vi c xác đ nh mi n giá tr c a các thu c tính bao g m m t ồ ộ ộ ị ủ ề Tên thu c tính, Ki u d li u, Đ dài d s các yêu c u sau: ố ữ ộ ể ữ ệ ộ i h n cho phép, li u, khuôn d ng c a d li u, các giá tr gi ủ ữ ệ ệ ý nghĩa, có duy nh t hay không, có cho phép giá tr r ng hay ị ỗ ấ không.

ị ớ ạ ầ ạ

ấ ả

 “T t c giá tr xu t hi n trong ệ ị m tộ mi n tr ” m tộ quan h ph i cùng ị ề ệ ả

24

m tộ thu c tính c a

ả ả

B o toàn mi n ề B o toàn mi n ề (Domain Integrity) (Domain Integrity)

 Đ c th hi n trong SQL server thông qua các ràng bu c

ộ ể ệ

 Giá tr Null dùng đ ch : ể ỉ

ượ sau:  Ki u d li u (Data types) ể ữ ệ  Ràng bu c CHECK ộ  Đ nh nghĩa RULE, DEFAULT, NOT NULL. ị

 Giá tr ch a bi

 Giá tr đã bi

t c a thu c tính ị ư ế ủ ộ

 Giá tr null khác s 0 hay chu i r ng “” ố

t nh ng đang b thi u ị ế ư ế ị

25

ỗ ỗ ị

ẹ ẹ

Toàn v n tham chi u ế Toàn v n tham chi u ế Referential integrity Referential integrity

 Toàn v n tham chi u dùng đ xác đ nh m i quan h gi a các ể

ệ ữ

ế

ị ả

 M c đích: duy trì tính nh t quán (consistency) gi a các b c a 2

b ng khi thêm hay xóa các hàng trong b ng. ả ụ

ộ ủ

quan h .ệ

ế ả ả

gi a khóa ngo i và khóa chính c a các b ng. ạ ữ  B ng ch a khóa chính: đ  B ng ch a khóa ngo i: đ

c g i là b ng quan h (related

 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) ượ ọ ượ

ứ ứ

ả ả table) ả

26

ấ ị ế

 Nó b o đ m giá tr khóa ph i th ng nh t (consistent) gi a các i và n u b ng. Không th tham chi u đ n 1 giá tr không t n t ồ ạ ế ế ả t c tham chi u đ n giá tr khóa này giá tr khóa thay đ i thì t ị ế ấ ả cũng ph i đ ng lo t thay đ i theo. ổ

ả ồ

ổ ạ

ẹ ẹ

Toàn v n tham chi u ế Toàn v n tham chi u ế Referential integrity Referential integrity

 Tính toàn v n tham chi u đ ẹ

c th hi n thông qua 3 quy t c ế ượ ể ệ ắ

ệ ế ả ả

ể có b n ghi t ả ể ươ ứ ổ ả

sau:  Không th thêm các b n ghi vào b ng quan h n u không ng ng trong b ng chính.  Không th thay đ i giá tr trong b ng chính n u làm cho ị ng ng trong b ng quan h b m t tham ế ệ ị ấ ươ ứ ả

các b n ghi t ả chi uế

 Không th xóa các b n ghi trong b ng chính n u nó đ ế tham chi u b i 1 s b n ghi trong b ng quan h ệ

c ả ượ

27

ể ế ở ả ố ả ả

ẹ ẹ

Toàn v n tham chi u ế Toàn v n tham chi u ế (Reference Integrity) (Reference Integrity)

 M c đích: duy trì tính nh t quán (consistency) gi a các b ộ

ấ ữ

ệ ạ ỗ

ị ệ ệ ặ ị

28

ụ c a 2 quan h ệ ủ i 1 khóa ngo i trong 1 quan h , thì m i giá tr  “ N u t n t ị ế ồ ạ khóa ngo i ph i t ng ng v i 1 giá tr khóa chính 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

SISO

TCTHA TCTH32A

80

TCTH01

TCTHA

S nơ

TCTHB

TCTH32B

65

TCTH02

TCTHB

B oả

TCTHC

TCTH32C

82

TCTH03

Trang

TCTHA

1

N

KQUA

MONHOC

MASV MAMH DIEM

MAMH TENMH

TINCHI KHOA

TCTH01 THVP

8

4

CNTT

THVP

Nh p môn TH

TCTH01 CSDL

6

4

CNTT

CSDL

TCTH01 CTDL

7

C u trúc d ữ ấ li uệ

TCTH02 THVP

9

3

TOAN

CTDL

TCTH02 CSDL

8

Toán r i ờ r c ạ

TCTH03 THVP

10

1

N

Ví d v khóa ngo i ạ Ví d v khóa ngo i ạ

ụ ề ụ ề

30

Tính toàn v n do ng Tính toàn v n do ng

i dùng xác đ nh i dùng xác đ nh

ẹ ẹ

ườ ườ

ị ị

(User-defined integrity) (User-defined integrity)

 Tính toàn v n do ng

ị ị

 M c đ h tr cho các toàn v n do ng

i dùng xác đ nh cho phép xác đ nh các ch c mà không thu c vào các lo i ạ ộ

 Đ c th hi n trong SQL server thông qua:

ẹ ườ i dùng xác đ nh ph ụ ị

thu c vào m i DBMS. ỗ ể ệ

 Ví d : “ M i văn phòng chi nhánh ch có t

ứ ả

31

i đa 20 nhân viên” ườ ẹ quy t c nghi p v c a t ệ ụ ủ ổ ứ ắ toàn v n khác. ẹ ứ ộ ỗ ợ ộ ượ  Các ràng bu c m c b ng ộ  Stored procedure  Trigger ụ ỗ ỉ ố

ệ ệ

ấ ấ

t Quan h có c u trúc t ố Quan h có c u trúc t t ố (Well-structured relation) (Well-structured relation)

 Là m t quan h có d th a d li u là t

ệ ư ừ ữ ệ ố

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 mà ử ổ ể ộ ủ ệ

32

ng không b sai hay mâu thu n d li u (data inconsistency) ườ ử ụ ị ẫ ữ ệ

ườ ườ

ng d li u B t th ữ ệ ấ ng d li u B t th ữ ệ ấ (Data anomaly) (Data anomaly)

ng là 1 l ỗ i sai hay s không nh t quán x y ra khi d ư ấ ự ả

 B t th ấ ườ th a d li u ừ ữ ệ  Ba lo i b t th ạ ấ  B t th ấ  B t th ấ  B t th ấ

ng:

33

ườ ườ ườ ườ ng khi thêm vào ng khi xóa b ỏ ng khi s a đ i ử ổ

Ví d v b t th ụ ề ấ Ví d v b t th ụ ề ấ

ườ ườ

ng d li u ữ ệ ng d li u ữ ệ

 Xét quan h :ệ Employee(Emp_ID, Name, Dept_Name, Salary, Course,

- Khi thêm 1 nhân viên m i mà nhân viên này không tham gia

Date_Completed)

- Khi 1 nhân viên tham gia nhi u khóa h c, xu t hi n nhi u l n

b t kỳ khóa h c nào ấ ọ

ề ầ ề

- N u 1 nhân viên ch tham gia 1 khóa h c và khóa h c này ch ỉ

trong quan h , n u nhân viên này đ ệ ng ệ ế ượ

ế ọ ỉ ấ ọ c tăng l ươ ọ

có duy nh t 1 nhân viên, n u nhân viên này b xóa ế ấ

34

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) Course (CourseID, Date_Completed)

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

ự ươ ứ

S t  M i quan h (b ng) t ớ ng ng v i m t ki u th c th ho c ể ng ng v i mô hình ER ứ ự ể ặ

ứ ự ể ặ ớ

ươ ế ớ ế ề ộ ề

ộ ớ

ớ ệ ả ộ ỗ 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 i hàng t ỗ ể ệ ươ m t th hi n m i liên k t nhi u - nhi u. ề ố ể ệ ộ ng ng v i m t thu c tính.  M i c t t ộ ỗ ộ ươ ứ  T ừ quan hệ (relation) trong c s d li u quan h không có ơ ở ữ ệ ệ (relationship) trong mô hình ớ ừ m i quan h ố

35

cùng nghĩa v i t ER

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

c chuy n t ệ ướ

ng (regular ng (regular ể ể ự ự ườ ườ ể ừ ổ ể ổ ể ERD sang mô hình quan h ể ể

ể ế ể ế ự ự

ế ế

ự ự

36

Các b B c 1: chuy n đ i ki u th c th thông th ướ  B c 1: chuy n đ i ki u th c th thông th ướ entity) entity) B c 2: Chuy n đ i ki u th c th y u (weak entity) ổ ướ  B c 2: Chuy n đ i ki u th c th y u (weak entity) ướ ổ B c 3: Chuy n đ i m i liên k t 2 ngôi ổ ướ  B c 3: Chuy n đ i m i liên k t 2 ngôi ổ ướ B c 4: Chuy n đ i ki u th c th k t h p ể ế ợ ổ ướ  B c 4: Chuy n đ i ki u th c th k t h p ể ế ợ ổ ướ B c 5: chuy n đ i m i liên k t 1 ngôi ổ ướ  B c 5: chuy n đ i m i liên k t 1 ngôi ướ ổ B c 6: chuy n đ i m i liên k t 3 ngôi ổ ướ  B c 6: chuy n đ i m i liên k t 3 ngôi ổ ướ B c 7: chuy n đ i m i liên k t siêu ki u / ki u con ổ ướ  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ệ

ườ

ể ế ự ể ự ể

ệ ả ả

ự ủ ủ

ng (regular ng (regular ổ ổ ể ể ể ể ể ể ự ự ườ ườ

ủ ộ ủ ả

B c 1: chuy n đ i ki u th c th thông th ướ B c 1: chuy n đ i ki u th c th thông th ướ entity) entity)  M i ki u th c th thông th 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

37

CUSTOMER(Customer_ID, Customer_Name, Customer_Address)

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

ng (regular ng (regular ể ể ự ự ể ể ể ể ổ ổ ườ ườ

c chuy n B c 1: chuy n đ i ki u th c th thông th ướ B c 1: chuy n đ i ki u th c th thông th ướ entity) entity)  V i thu c tính ph c h p: các thành ph n s đ ớ ứ ợ ộ ầ ẽ ượ ể

 V i thu c tính đa tr : th c th s đ

thành các thu c tính trong quan h ộ ệ

c chuy n thành 2 ể ẽ ượ ự ớ ộ ị ể

 M t quan h ch a m i thu c tính tr thu c tính đa

quan hệ

ệ ứ ừ ọ ộ ộ ộ

 M t quan h có 2 thu c tính: 1 khoá và 1 thu c tính

trị

ệ ộ ộ

38

ộ đa trị

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

Ví d v thu c tính ph c h p ứ ợ Ví d v thu c tính ph c h p ứ ợ ụ ề ụ ề ộ ộ

Customer_Name

City

Street

State

Customer_ID

Customer_Address

CUSTOMER

CUSTOMER(Customer_ID, Customer_Name,Street, City, State)

39

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

Ví d v thu c tính đa tr ị ộ Ví d v thu c tính đa tr ị ộ ụ ề ụ ề

Employee_Name

Employee_Address

Employee_ID

EMPLOYEE

EMPLOYEE(employee_ID, employee_Name, employee_Address)

40

EMPLOYEE_SKILL(Employee_ID, Skill)

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) B c 2: Chuy n đ i ki u th c th y u (weak entity)  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 ư

ự ủ ủ

ệ ủ ự

41

ể ủ ị ể ế ộ ủ ự

ổ ể ể ổ ể ế đ nh c a ki u th c th ch đ ự ể ị tính c a quan h . ệ  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 ể ế 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,

Date_Of_Birth, Gender) 42

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 ế ổ B c 3: Chuy n đ i m i liên k t 2 ngôi ế ổ  V i m i liên k t 1-M: thu c tính xác đ nh c a ki u th c th ể ị c đ a vào làm khoá ngo i c a ki u th c th phía ạ ủ ế ượ ư ể ự ự ể ủ ể

43

ố phía 1 đ M.

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

Ví d v quan h 1-M Ví d v quan h 1-M ụ ề ụ ề ệ ệ

Customer_ID

Order_Date

Customer_Name

Order_ID

ORDERS

Submits

CUSTOMER

44

CUSTOMER(Customer_ID, Customer_Name) ORDER( Order_ID, Order_Date, Customer_ID)

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 ổ B c 3: Chuy n đ i m i liên k t 2 ngôi ổ ướ ướ ể ể ế ế ố ố

 V i m i liên k t M-N ệ ớ ự ể

: m t quan h m i đ ớ ế ệ ớ ượ ạ ộ

45

c t o ra. Khoá ố chính c a quan h m i bao g m khóa chính c a 2 quan h ệ ủ ồ ủ ng ng v i ki u th c th tham gia vào m i liên k t. t ươ ứ ể ế ớ ố

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

Ví d v quan h M-N Ví d v quan h M-N ụ ề ụ ề ệ ệ

Material_ID

Vendor_Name

Cost

Unit_Price

Vendor_ID

VENDORS

Submits

MATERIALS

46

MATERIAL(Material_ID, Cost) SUPPLIES(Material_ID, Vendor_ID, Unit_Price) VENDOR( Vendor_ID, Vendor_Name)

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

 V i m i liên k t 1-1

B c 3: Chuy n đ i m i liên k t 2 ngôi ổ B c 3: Chuy n đ i m i liên k t 2 ngôi ổ ướ ướ ể ể ế ế ố ố

: là 1 tr ố ớ ế ườ

t c a 1-M. ệ ủ ặ c đ a vào lam khoá ủ ̀

ng h p đ c bi ợ Khoá chính c a 1 trong 2 quan h s đ ệ ẽ ượ ư ngo i c a quan h kia. ạ ủ ệ

ầ ế ệ ố

ư ạ ủ ự ộ

 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 ự ệ ươ ứ

47

ể 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, m aõ ngöôøi laùi xe) hay

NGÖÔØI LAÙI XE (maõ ngöôøi laùi xe, teân, ñòa chæ, ngaøy sinh, m aõ 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 )

48

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 1-1 ụ ề ệ

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

49

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ệ

 M t quan h m i đ

B c 4: Chuy n đ i ki u th c th k t h p ể ế ợ B c 4: Chuy n đ i ki u th c th k t h p ể ế ợ ướ ướ ự ự ể ể ể ể ổ ổ

c t o ra đ di n t ệ ớ ượ ạ ể ễ ả cho ki u th c th ể ự ể

 N u ki u th c th k t h p không có thu c tính xác đ nh

ộ k t h p ế ợ

ể ế ợ ự ế ể ộ ị

riêng, khoá chính c a quan h m i bao g m khoá chính ệ ớ ủ ồ

ng ng v i 2 ki u th c th có liên c a 2 quan h t ủ ệ ươ ứ ự ể ể ớ

 N u ki u th c th k t h p có thu c tính xác đ nh riêng

quan

50

ể ế ợ ự ế ể ộ ị

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ệ

Vendor_ID

Ví d v ki u th c th k t h p ể ế ợ Ví d v ki u th c th k t h p ể ế ợ ụ ề ể ụ ề ể ự ự

Customer_ID

Date

Customer_Name

Address

Shipment_No

VENDOR

Shipment

CUSTOMER

51

CUSTOMER(Customer_ID, Customer_Name,..) SHIPMENT(Shipment_No, Customer_ID, Vendor_ID,Date,…) 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 c 5: chuy n đ i m i liên k t 1 ngôi ổ ướ ướ ể ể ế ế ố ố

ế ạ

ế ể ế ế

ị ủ ả ệ ạ

 V i liên k t 1 ngôi 1-M: 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à ượ ọ

52

khoá ngo i đ quy ạ ệ

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

Ví dụVí dụ

Name

Employee_ID

Birthdate

EMPLOYEE

Manages

53

Employee(Employee_ID, Name, BirthDate, Manager_ID)

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

 V i liên k t 1 ngôi M-N:m i liên k t đu c chuy n thành 2 ố

B c 5: chuy n đ i m i liên k t 1 ngôi ổ B c 5: chuy n đ i m i liên k t 1 ngôi ổ ướ ướ ể ể ế ế ố ố

ể ế ế ớ ợ

 M t quan h di n t

quan h :ệ

 M t quan h di n t

ệ ễ ả ể ki u th c th ể ự ộ

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 ệ ủ

54

ng ng t ươ ứ

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

Ví d m i liên k t 1 ngôi M-N Ví d m i liên k t 1 ngôi M-N ụ ố ụ ố ế ế

Name

Item_ID

Unit_Cost

ITEM

Contains

Quantity

55

ITEM(Item_No, Name, Unit_Cost) CONTAINS(Item_No, Component_No, Quantity)

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

 M i liên k t 3 ngôi và các ki u th c th có liên quan đ

B c 6: chuy n đ i m i liên k t 3 ngôi ổ B c 6: chuy n đ i m i liên k t 3 ngôi ổ ướ ướ ế ế ể ể ố ố

ố ế ự ể

ự ệ ệ ể ể

c ượ ể chuy n thành 4 quan h : 3 quan h cho 3 ki u th c th ể liên quan và 1 quan h cho m i liên k t ế ố ệ

 B n tr ố  1:1:1  1:1:N  1:N:M  N:M:L

56

ng h p : ợ ườ

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 ổ B c 6: chuy n đ i m i liên k t 3 ngôi ổ ướ ướ ể ể ế ế ố ố

ng h p 1:1:1: ợ

 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:

ụ ộ

57

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 Ví d v quan h 3 ngôi 1:1:1 ụ ề ụ ề ệ ệ

ENGINEER

Use_Casebook

CASEBOOK

PROJECT

58

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ệ

 Ba khoá candidate:

 Eng_No, Proj_No  Book_No, Proj_No  Eng_No, Book_No

Ví d v quan h 3 ngôi 1:1:1 Ví d v quan h 3 ngôi 1:1:1 ụ ề ụ ề ệ ệ

59

 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 ổ ể ướ B c 6: chuy n đ i m i liên k t 3 ngôi ướ ổ ể ng h p 1:1: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 ” ư ớ ề ề ơ ề

 3 ki u th c th : Teacher, Student, Project ự  Các ph thu c hàm:

ể ể

 Stud_No, Tea_No Proj_No  Stud_No, Proj_No

ụ ộ

 Tea_No

60

 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 Ví d v quan h 3 ngôi 1:1:N

ụ ề ụ ề

ệ ệ

STUDENT

Supervises

PROJECT

TEACHER

61

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 B c 7: chuy n đ i m i liên k t siêu ki u/ ki u con ướ ướ ể ể ế ế ể ể ể ể ố ố ổ ổ

ự chuy n đ i: ể

 T o 1 quan h cho siêu ki u và 1 quan h cho m i ki u ể

ổ ệ ể ệ ỗ

ệ ể ộ

 Trình t ạ con ư ư

 Đ a vào quan h cho siêu ki u nh ng thu c tính chung  Đ 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

ữ ể ủ ỗ ỗ

ủ ừ ể ớ

62

ệ ộ  Thêm th ôc tính phân bi 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

Hourly_Rate

Billing_Rate 63

Annual_Salary

Stock_Options

ERD thành các quan

ể ổ ừ

Chuy n đ i t hệ

Ví dụVí dụ

 EMPLOYEE(Employee_No, Employee_Type, Date_Hired)

 HOURLY_EMPLOYEE(H_Employee_No, Hourly_Rate)  SALARIES_EMPLOYEE(S_Employee_No,

Employee_Name, Address,

 CONSULTANT(C_Employee_No, Contract_No, BillingRate)

64

Annual_Salary,Stock_Options)