1. ÔN THI
CƠ S D Li U
Ph n 1: MÔ HÌNH QUAN H
VÀ
NGÔN NG ð I S QUAN H
Giáo viên: T Thúc Nhu
Khoa CNTT trư ng ðH L c H ng
I- MÔ HÌNH QUAN H
• Do ti n sĩ Edgar Frank Codd ñ xu t trong tài li u:
“A Relation Model for Large Shared Data Banks”,
Communications of ACM, 6/1970
• Các khái ni m trong mô hình:
– Thu c tính (Attribute)
– Quan h (Relation)
– Lư c ñ quan h (Relation Schema)
– Khóa (Key)
– Cơ s d li u (Database)
– Lư c ñ cơ s d li u (Database Schema)
2 CSDL
2. 1- Thu c tính (Attribute | Field):
• Thu c tính là thông tin ñ c trưng
c n lưu tr c a các ñ i tư ng
trong th c t .
• M i thu c tính có các thành ph n :
– Tên thu c tính (Field Name):
– Ki u d li u (Data Type)
3 CSDL
2- Quan h (Relation) :
• Là t p h p các b giá tr lưu tr thông tin c a các ñ i
tư ng có cùng t p thu c tính.
• Th hi n c a quan h là m t b ng d li u, trong ñó:
– M i c t lưu tr thông tin c a m t thu c tính.
– M i dòng là m t b giá tr (Tuple) lưu tr thông tin m t ñ i tư ng.
Ví d : (03, Cơ s d li u, 4)
4 CSDL
3. Qui ư c ký hi u:
• Quan h : dùng các ký t in hoa Q, R, S.
• Quan h Q có t p thu c tính {A1,A2,..,An}: Q(A1,A2,..,An)
• T p thu c tính {A1,A2,..,An} c a quan h Q: Q+
• B giá tr (a1,a2,.., an): dùng các ký t thư ng t, u, v
• B t thu c quan h Q : t ∈ Q
• Giá tr thu c tính A trên b t : t.A
3- Lư c ñ quan h :(Relation Schema)
• Lư c ñ quan h là khái ni m dùng mô t c u trúc c a quan
h , cùng v i các qui ñ nh v d li u ñư c lưu tr .
• Lư c ñ quan h ñư c mô t v i hai thành ph n:
– Tên và t p thu c tính c a quan h :
Lư c ñ quan h Q v i t p thu c tính {A1,..., An} ñư c ký hi u:
Q(A1,..,An)
– Tân t : dùng mô t các thông tin c a lo i ñ i tư ng c n lưu tr ,
các qui ñ nh ràng bu c giá tr ñư c lưu tr .
6 CSDL
4. Ví d mô t lư c ñ quan h
1. KHOA(MaKhoa, TenKhoa)
Tân t : M i khoa có m t mã s (MaKhoa) phân bi t v i các
khoa khác và có tên khoa (TenKhoa) cũng phân bi t.
2. LOP(TenLop, MaKhoa, KhoaHoc)
Tân t : M i l p có tên l p (TenLop) phân bi t, thu c m t khoa
(MaKhoa) và khóa h c (KhoaHoc) b t ñ u t năm ñ n năm
7 CSDL
4- Khóa c a quan h
5. 4.1- Siêu khóa (Super Key):
• X ⊆ Q+ là Siêu khóa (Super Key) c a quan h Q n u giá tr
trên X phân bi t gi a các b .
∀t1, t2 ∈ Q, t1 ≠ t2 t1.X ≠ t2.X
9 CSDL
Ví d : Xác ñ nh các siêu khóa
MON_HOC(MãMôn, TênMôn, S TínCh )
Tân t : M i môn h c có m t mã s là m t s nguyên phân bi t
v i các môn h c khác (MãMôn), có tên môn h c cũng phân bi t
(TênMôn) và có m t s tín ch (S TínCh ) là s nguyên dương.
6. Ví d : Xác ñ nh các siêu khóa
KQHT(MaSV, MaMon, LanKT, Diem)
Tân t : M i môn h c (MaMon) sinh viên (MaSV) ñư c d thi nhi u
l n ñ c i thi n ñi m, m i l n (LanKT) có m t s th t phân
bi t v i các l n khác và có ñi m thi c a l n thi ñó (Diem).
4.2- Khóa ch ñ nh (Candidate Key):
• X là khóa ch ñ nh c a Q n u:
– X là siêu khóa
– X không ch a b t kỳ m t siêu khóa khác.
Ví d : Xác ñ nh khóa ch ñ nh c a lư c ñ MON_HOC t các
siêu khóa sau:
• X1 = { MaMon}
• X2 = { MaMon, TenMon}
• X3 = { MaMon, TenMon, SoTinChi }
• X4 = { TenMon }
• X5= {TenMon, SoTinChi}
12 CSDL
7. Qui ư c v Khóa ch ñ nh:
• Thu c tính tham gia vào m t b khóa ch ñ nh ñư c g i là
thu c tính khóa.
• Thu c tính khóa không ch a giá tr NULL
• Trong lư c ñ quan h , các thu c tính c a m i b khóa
ñư c g ch dư i n i li n nhau theo t ng b khóa.
Ví d
– MON_HOC(MaMon, TenMon, SoTinChi)
– KQHT(MaSV, MaMon, LanKT, Diem)
13 CSDL
4.3 Khái ni m khóa trên các h qu n tr CSDL:
1. Khóa chính (Primary Key): M i quan h ch ñư c khai báo
m t khóa chính. Các khóa ch ñ nh còn l i ñư c xem là các
khóa ph (Secondary key) hay khóa tương ñương.
8. 4.3 Khái ni m khóa trên các h qu n tr CSDL:
2. Khóa ngo i (Foreign Key): Cho hai quan h R và S. M t t p
thu c tính X c a quan h R ñư c g i là khóa ngo i c a quan h
R n u X là ch ch a giá tr khóa c a quan h S.
Tên thu c tính trên khóa ngo i và khóa chính có th khác nhau
5- Cơ s d li u - Database
• Là t p h p các quan h ch a thông tin c a các ñ i tư ng
c n qu n lý trong ng d ng.
16 CSDL
9. 6- Lư c ñ cơ s d li u (Database Schema)
• M t lư c ñ cơ s d li u c a m t ng d ng là 1 t p h p
các lư c ñ quan h ñư c s d ng cho ng d ng ñó.
{LDQHi }in=1
Ví d : Lư c ñ CSDL Qu n lý sinh viên có các lư c ñ quan
h sau:
– KHOA(MaKhoa, TenKhoa)
– LOP(TenLop, MaKhoa, Khoahoc)
– SINHVIEN(MSSV, TenLop, HoTen, NgaySinh, NoiSinh, Nu)
– MONHOC(MaMon, TenMon, SoTinChi)
– KQHT(MaSV, MaMon, LanKT, Diem)
17 CSDL
Qui ư c ký hi u
Thành ph n Ký hi u
Thu c tính A, B, C hay Ai, Bi, Ci
Giá tr thu c tính a, b, c hay ai, bi, ci
B d li u (a1, a2, .., an) t, u, v
Giá tr thu c tính A t i b t t.A hay t[A]
Quan h Q, R, S
Q có t p thu c tính {A1, A2,.., An} Q(A1, A2,.., An)
T p thu c tính {A1, A2,.., An} c a Q Q+
B t thu c quan h Q t∈Q
T p con X c a t p thu c tính Q+ X ⊂ Q+ hay X ⊆ Q+
Lư c ñ cơ s d li u C
18 CSDL
10. II- NGÔN NG ð IS QUAN H
• ð nh nghĩa các phép toán trên các quan h , nh m th hi n
cách th c rút trích, t ng h p d li u t các quan h .
• Ngôn ng này bao g m các nhóm phép toán:
– Các phép toán t p h p: H p, Giao, Hi u .
– Các phép toán K t h p các quan h : Tích ð -các, K t
– Các phép toán rút trích trên quan h : Ch n, Chi u
– M t s phép toán m r ng khác: Gom nhóm
19 CSDL
Ký hi u các phép toán ð i s quan h
• Trên t p h p
– H i ∪ (Union)
– Giao ∩ (Intersect)
– Tr − (Except)
• Rút trích 1 ph n c a quan h
– Ch n σ (Selection)
– Chi u π (Projection)
• K t h p các quan h
– Tích Cartesian × (Cartesian product)
– K t ( Join)
• Phép gom nhóm:
G
11. 1- PHÉP H P: (Union)
SINHVIEN_1 SINHVIEN_2
MãSV H -tên Ngày-Sinh Phái
∪
MãSV H -tên Ngày-Sinh Phái
100 Nguy n Văn H 15/08/82 Nam 210 Nguy n Th Cao 15/08/82 N
101 Hoàng Th Xuân 18/05/81 N 101 Hoàng Th Xuân 18/05/81 N
103 ð ng Ng c Chi n 19/06/82 N 221 ð H u Thu 19/06/82 Nam
105 Phan Kỳ Nam 20/06/81 Nam 233 Hoàng ðông 20/06/81 Nam
SINHVIEN_3
MãSV H -tên Ngày-Sinh Phái
SinhVien_1 ∪ SinhVien_2 100 Nguy n Văn H 15/08/82 Nam
101 Hoàng Th Xuân 18/05/81 N
=> 103
105
ð ng Ng c Chi n
Phan Kỳ Nam
19/06/82
20/06/81
N
Nam
210 Nguy n Th Cao 15/08/82 N
221 ð H u Thu 19/06/82 Nam
233 Hoàng ðông 20/06/81 Nam
21 CSDL
ð nh nghĩa phép H p:
• H p 2 quan h R, S có cùng t p thu c tính {A1,A2,..,An},
ký hi u R ∪ S, t o nên 1 quan h m i :
– Có cùng t p thu c tính {A1,A2,..,An}
– Ch a t t c các b c a 2 quan h R và S.
R ∪ S = { t : t ∈ R ∨ t ∈ S}
• Phép h p có tính giao hoán và tính k t h p
22 CSDL
12. 2- PHÉP GIAO:(Intersect)
Ví d : ch n ra các sinh viên xu t hi n trên c 2 quan h .
SINHVIEN_1 SINHVIEN_2
MãSV H -tên Ngày-Sinh Phái MãSV H -tên Ngày-Sinh Phái
∩
100 Nguy n Văn H 15/08/82 Nam 210 Nguy n Th Cao 15/08/82 N
101 Hoàng Th Xuân 18/05/81 N 101 Hoàng Th Xuân 18/05/81 N
103 ð ng Ng c Chi n 19/06/82 N 221 ð H u Thu 19/06/82 Nam
105 Phan Kỳ Nam 20/06/81 Nam 233 Hoàng ðông 20/06/81 Nam
SinhVien_1 ∩ SinhVien_2 SINHVIEN_3
=> MãSV H -tên
101
Ngày-Sinh Phái
Hoàng Th Xuân 18/05/81 N
23 CSDL
ð nh nghĩa phép Giao
• Giao 2 quan h R, S có cùng t p thu c tính {A1, A2,..,An},
ký hi u R ∩ S, t o nên 1 quan h m i :
– Có cùng t p thu c tính {A1, A2,..,An};
– Ch a các b v a thu c R v a thu c S.
R∩S= {t:t∈R∧t∈S}
• Phép giao có tính giao hoán và tính k t h p
24 CSDL
13. 3- PHÉP HI U: (Except)
SINHVIEN_1 SINHVIEN_2
MãSV H -tên Ngày-Sinh Phái MãSV H -tên Ngày-Sinh Phái
100 Nguy n Văn H 15/08/82 Nam 210 Nguy n Th Cao 15/08/82 N
101
103
Hoàng Th Xuân 18/05/81
ð ng Ng c Chi n 19/06/82
N
N
─ 101
221
Hoàng Th Xuân 18/05/81
ð H u Thu 19/06/82
N
Nam
105 Phan Kỳ Nam 20/06/81 Nam 233 Hoàng ðông 20/06/81 Nam
SinhVien_1 ─ SinhVien_2
SINHVIEN_3
MãSV H -tên Ngày-Sinh Phái
100 Nguy n Văn H 15/08/82 Nam
=> 103
105
ð ng Ng c Chi n 19/06/82
Phan Kỳ Nam 20/06/81
N
Nam
25 CSDL
ð nh nghĩa phép Hi u: (Minus)
• Hi u 2 quan h R, S có cùng t p thu c tính {A1, A2,..,An},
ký hi u R – S, t o nên quan h m i:
– Có cùng t p thu c tính {A1,A2,..,An}
– Ch a các b thu c R nhưng không thu c S
R–S= {t :t∈R∧t∈S}
• Phép hi u ch có tính k t h p, không có tính giao hoán
26 CSDL
14. 4- PHÉP TÍCH CARTESIAN:
(Cartesian Product)
X
=>
27 CSDL
ð nh nghĩa phép Tích Cartesian
• Tích Cartesian c a quan h R(A1, A2,..,An)
và quan h S(B1, B2,..,Bm), ký hi u R x S, hình thành 1 quan
h m i có:
– T p thu c tính là {A1, A2,..,An, B1, B2,..,Bm}
– Ch a các b t = (u, v) trong ñó b u ∈ R và b v ∈ S
R x S = { (u, v) : u ∈ R ∧ v ∈ S}
• Phép tích có tính k t h p và tính giao hoán
28 CSDL
15. 5- PHÉP K T (Join Operator)
• Dùng k t n i 2 b có liên quan trên 2 quan h thành m t b
29 CSDL
Phân lo i phép K t
1. Phép k t trong (Inner Join)
– Phép k t t nhiên (Natural Join)
2. Phép k t ngoài (Outer Join)
– Phép k t trái (Left Join)
– Phép k t ph i (Right Join)
– Phép k t ñ y ñ (Full Join)
30 CSDL
16. 5.1 PHÉP K T TRONG (Inner Join)
• K t 2 quan h R(A1,..,An) và S(B1,..,Bm) d a trên bi u th c
ñi u ki n E trên các thu c tính c a 2 quan h t o thành m t
quan h có:
– T p thu c tính {A1,..,An, B1,..,Bm}
– Ch a các b (u, v) sao cho E(u, v) = True (v i u ∈R, v∈S).
E
• Ký hi u: R S
31 CSDL
Bi u th c lu n lý E ñư c t o b i:
• Các phép toán so sánh có d ng:
<thu c tính> = <thu c tính>
.. ≠ ..
.. > ..
.. ≥ ..
.. < ..
.. ≤ ..
• Các phép toán logic:
∧ (and) ∨ (or) ¬ (not)
32 CSDL
17. Ví d : Li t kê khu v c và thông tin nhân viên
qu n lý khu v c
MaNVQL=MaNV
33 CSDL
PHÉP K T T NHIÊN
• Là phép k t trong th c hi n phép so sánh b ng trên hai
thu c tính trùng tên.
• Ký hi u: R S
34 CSDL
18. Tính ch t c a phép k t trong
• Tính giao hoán: R S=S R
• Tính k t h p: (R S) Q=R (S Q)
35 CSDL
5.2- PHÉP K T TRÁI (LEFT JOIN)
• Li t kê danh sách khu v c (KV) và thông tin nhân viên qu n
lý khu v c, k c nh ng khu v c có mã s nhân viên qu n
lý không có trong danh sách nhân viên
MaNVQL=MaNV
36 CSDL
19. 5.3- PHÉP K T PH I (RIGHT JOIN)
• Li t kê danh sách nhân viên, n u là nhân viên qu n lý thì
cho bi t thêm thông tin khu v c ph trách
MaNVQL=MaNV
37 CSDL
5.4- PHÉP K T ð Y ð (FULL JOIN)
MaNVQL=MaNV
38 CSDL
20. 6- PHÉP CH N: (Seclection )
Yêu c u: Li t kê sinh viên l p “09CD111”
39 CSDL
ð nh nghĩa phép Ch n:
• Phép ch n trên quan h Q theo ñi u ki n ch n E,
ký hi u σE(Q), s hình thành 1 quan h m i :
– Có cùng t p thu c tính v i Q
– và ch a các b thu c Q th a mãn ñi u ki n ch n E
σE(Q) = { t : t ∈ Q ∧ E( t ) }
40 CSDL
21. Bi u th c lu n lý E ñư c t o b i:
• Các phép toán so sánh có d ng:
<thu c tính> = <thu c tính> ho c <h ng>
.. ≠ ..
.. > ..
.. ≥ ..
.. < ..
.. ≤ ..
• Các phép toán logic:
∧ (and) ∨ (or) ¬ (not)
41 CSDL
Tìm sinh viên l p 09CD111 có nơi sinh t i
ð ng Nai
42 CSDL
22. Yêu c u: Li t kê danh sách các l p thu c
khóa CNTT có thêm c t tên khoa.
=>
43 CSDL
7- PHÉP CHI U (PROJECT)
ΠMASV, TenLop, HoTen(SINHVIEN) Π TenLop, NoiSinh (SINHVIEN)
44 CSDL
23. ð nh nghĩa phép Chi u
• Chi u quan h Q(A1, A2,..,An) lên t p thu c tính X ⊆ Q+ s t o
thành m t quan h m i b ng cách lo i b :
– Các c t trong quan h Q không có trong t p X
– Các b trùng nhau trong quan h Q.
• Ký hi u: ∏ A1, A2,..,AK(Q) hay Q[A1, A2,..,AK]
45 CSDL
Cho bi t mã s sinh viên và h tên sinh viên l p
09CD111 có nơi sinh t i ð ng Nai
46 CSDL
24. Yêu c u: Li t kê danh sách l p thu c khoa
CNTT g m các c t: tên khoa, tên l p, khóa h c
=>
47 CSDL
8- PHÉP GOM NHÓM (Aggregate Operator)
• Phân chia các b thành nhi u nhóm d a trên giá tr c a m t
t p thu c tính ñi u ki n gom nhóm, t ng h p d li u trên
t ng nhóm ñ ñư c m t quan h ch a các b t ng h p.
48 CSDL
25. HÀM K T H P
• AVG(bi u_th c) R A B SUM(B) = 10
• MIN(bi u_th c) 1 2 AVG(A) = 1.5
• MAX(bi u_th c) 3 4 MIN(A) = 1
1 2
• SUM(bi u_th c) MAX(B) = 4
1 2
• COUNT(bi u_th c) COUNT(A) = 4
49 CSDL
Khái ni m phép Gom nhóm:
• Ký hi u gom nhóm t t c m u tin
GF1, F2, …, Fn( R )
• Ký hi u gom nhóm theo t p thu c tính
A1, A2, …, AnGF1, F2, …, Fn( R)
– R là quan h
– A1, A2, …, An là các thu c tính gom nhóm
– F1, F2, …, Fn là các hàm k t h p
50 CSDL
26. Câu h i:
Cho bi t s s n ph m
trong t ng lo i s n
ph m, ñơn giá s n
ph m l n nh t, nh
nh t, ñơn giá trung
bình c a các s n ph m
trong m i lo i ?
51 CSDL
Câu h i:
Cho bi t s s n ph m
hi n có, ñơn giá s n
ph m l n nh t, nh
nh t, ñơn giá trung
bình c a các s n
ph m và t ng ñơn giá
c a các s n ph m?
52 CSDL