Lý thuyết Đại số quan hệ | Đại học Kinh Tế Quốc Dân

Lý thuyết Đại số quan hệ | Đại học Kinh Tế Quốc Dân. Tài liệu gồm 19 trang giúp bạn tham khảo, củng cố kiến thức và ôn tập đạt kết quả cao trong kỳ thi sắp tới. Mời bạn đọc đón xem!

Đại s Quan h
TH107 -Cơ s D liu
Bài 3
TH1072Bài 3
Dàn bài
} Ngôn ng Truy vn trong Mô hình Quan h
} Các Phép toán Đại s Quan h
} Các Thao tác Cp nht
TH1073Bài 3
Thế nào là Truy vn CSDL?
} Cho mt CSDL, đưa ra các câu hi, nhn được các
câu tr li.
} Vd.,
} Cho biết tt c sinh vn có đim trung bình > 8 đim
thuc các khoa TOAN, CNTT
} Cho biết các khoa có hơn 50 ging viên
} Trong s các khoa, chn sinh vn đạt đim trung bình
cao nht trong năm hc trước
TH1074Bài 3
Ngôn ng Truy vn
Query language (QL)
}
Ngôn ng truy vn là mt ngôn ng cho phép
người dùng cp nht và rút trích d liu được lưu
trong mt hình d liu.
} Ngôn ng truy vn ¹ Ngôn ng lp trình
} QL không nhm mc đích dùng cho các ng dng
phc tp
} QL h tr truy xut d ng ti các tp hp d liu ln
© Bui MT Diem, 2007 1
Ngôn ng Truy vn Quan h
Bài 3TH1075
} Hai ngôn ng truy vn (toán hc) là cơ s ca các ngôn
ng "thc s" thc hin (vd., SQL)
} Đại s Quan h (Relational Algebra): mang tính thao c
(operational), rt ưu thế trong vic biu din kế hoch thi hành
truy vn.
} Phép tính Quan h (Relation Calculus): khai o (declarative),
không th tc (non-procedural), da trên ngôn ng logic. Cho
phép người dùng mô t cái h mun hơn là cách x lý nó.
Bình thường, ta không s dng ĐSQH trc tiếpkhông thy sn phm nào
s dng ĐSQH được s dng rng rãi.
Nhưng nó được dùng bên trong các HQTCSDL vì ng nghĩa ràng, chun,
có cú pháp ràng.
Hiu được đại s quan h và phép tính quan h chìa khóa để hiu cách x
lý và ti ưu hóa câu truy vn.
TH1076Bài 3
Tng quát
} Truy vn được áp dng cho các quan h, và nhn
v kết qu là mt quan h
} Lược đồ ca các quan h đầu vào đối vi mt truy vn
là c định
} Lược đồ ca kết qu ng vi mt truy vn cũng c định.
Nó được xác định bi các định nghĩa ca cu trúc ngôn
ng truy vn.
Đại s >< Đại s Quan h
Bài 3TH1077
Algebra
}
Đại s là h thng toán
hc bao gm
} operands: biến hay giá tr
trong đó các giá tr mi
th được to ra
} operators: ký hiu để ch các
th tc to ra các giá tr mi
t các giá tr cho trước
Relational Algebra
}
Đại s Quan h là mt tp
hp các phép toán quan
h để rút trích d liu.
} Ging như đại s vi các
con s, ĐSQHcó
} các operands là các quan h
hay các biến đại din cho
quan h.
} các operators để thc hin
các ng vic trên mt quan
h trong CSDL.
Đại s Quan h
Bài 3TH1078
} Mi phép toán quan h nhn đầu vào là mt hay
nhiu quan h và to ra kết qu là mt quan h.
} closure property: input là quan h, output là quan h
} unary operators: thao tác trên mt quan h (= phép
toán mt ngôi)
} binary operators: ly hai quan h làm input (= phép
toán hai ngôi)
} Mt chui các phép toán ĐSQH được gi là mt
biu thc ĐSQH (relational algebra expression).
© Bui MT Diem, 2007 2
TH1079Bài 3
Dàn bài
} Ngôn ng Truy vn trong Mô hình Quan h
} Các Phép toán Đại s Quan h
} Các Thao tác Cp nht
TH10710Bài 3
Các phép toán quan h
} Phép chn s
} Phép chiếu p
} Phép toán được hình thành t
lý thuyết tp hp toán hc:
} phép hi È
} phép giao Ç
} phép tr -
} phép tích Cartesian ´
} Phép kết
} Phép chia ¸
} Phép đổi tên r
} Đại s m rng
} Phép chiếu m rng
} OUTER JOIN
} AGGREGATE FUNCTIONS và
GROUPING
TH10711Bài 3
Phép chn
Selection Operation
}
Phép chn là phép toán mt ngôi. Nó ly mt quan
h là input và tr v mt quan h mi là output cha
mt tp con các b t quan h input.
} Nghĩa , quan h output có cùng lược đồ quan h (cùng s
lượng thuc tính) như quan h input, nhưng có th có ít b
hơn.
} Để xác định các b nào có trong output, phép chn
có mt điu kin c th, được gi là mt
predicate -
điu kin chnP, mà các b được trích chn phi
tho mãn.
} Predicate tương đương vi mt điu kin trong mnh đề .
TH10712Bài 3
Định nghĩa Hình thc Phép chn
} Phép chn tên quan h R vi predicate P được ký
hiu là s
P
(R)
} Định nghĩa: s
P
(R) = {t | t Î R Ù P(t)}
trong đó
} R là mt quan h, t là mt biến b
} P là mt công thc (predicate) bao gm
} các operands là các hng s hoc thuc tính
} các phép so sánh: =, , <, , >,
} các phép toán logic: Ù (AND), Ú (OR), Ø (NOT)
} Phép chn có tính giao hoán:
s
P1
(s
P2
(R)) = s
P2
(s
P1
(R)) = s
(P1 Ù P2)
(R)
© Bui MT Diem, 2007 3
TH10713Bài 3
Ví d Phép chn
Nvien
ms_nv
ten_nv cvu luong
N1 T. Vu KS 30000
N2 N. Thanh TK 40000
N3 V. Minh PT 50000
N4 T.Tram KS 30000
N5 P. Thao KT 45000
N6 M. Tuan KS 50000
N7 T. Tam LT 60000
N8 T. Thanh LT 55000
s
cvu=KS’
(Nvien)
Nvien
ms_nv
ten_nv cvu luong
N1 T. Vu KS 30000
N4 T.Tram KS 30000
N6 M. Tuan KS 50000
s
luong > 45000 Ú cv=TK
(Nvien)
Nvien
ms_nv
ten_nv cvu luong
N2 N. Thanh TK 40000
N3 V. Minh PT 50000
N6 M. Tuan KS 50000
N7 T. Tam LT 60000
N8 T. Thanh LT 55000
Câu hi Phép chn
Bài 1TH10714
1. Lit kê tt c các nhân vn tham
gia d án D2.
2. Lit kê các nhân vn tham gia
vi tư cách qun d án.
3. Lit kê các nhân vn tham gia
d án có người qun làm vic
hơn 40 tháng.
Cho biết kết qu trong mi trường
hp.
Tgia ms_nv ms_da nvu tgian
N1 D1 Quan ly 12
N2 D1 Phan tich 24
N2 D2 Thiet ke 6
N3 D3 Phan tich 10
N3 D4 Tu van 48
N4 D2 Thiet ke 18
N5 D2 Phan tich 24
N6 D4 Quan ly 48
N7 D3 Lap trinh 36
N7 D5 Thiet ke 23
N8 D3 Quan ly 40
TH10715Bài 3
Phép Chiếu
Project Operation
} Phép chiếu là phép toán mt ngôi. Nó ly mt
quan h là input và tr v mt quan h mi là
output cha mt tp con các thuc tính ca quan
h input và tt c các b không trùng.
} Quan h output có cùng s lượng các b như quan h
input nếu không loi b các thuc tính làm cho trùng
} Câu hi: Khi nào ta bo đảm được không bao g có giá
tr trùng khi thc hin mt phép chiếu?
} Ngoài quan h, phép chiếu ly t input tên các
thuc tính làm tên các thuc tính trong quan h
output.
TH10716Bài 3
Định nghĩa Hình thc Phép Chiếu
} Phép chiếu trên quan h R vi các thuc tính
output là A
1
, …, A
k
được ký hiu là p
A
1
, , A
k
(R)
} Định nghĩa: p
A
1
, , A
k
(R) = {t[A
1
, …, A
k
] | t Î R}
trong đó
} R là mt quan h, t là mt biến b
} {A
1
, , A
k
} là mt tp con các thuc tính ca R mà trên
đó phép chiếu được thc hin
} Th t ca A
1
, , A
k
là quan trng trong kết qu
} S b (cardinality) ca p
A
1
, , A
k
(R) không nht thiết bng
vi R vì các b trùng b loi b
} Ta có:
} p
A
1
, , A
k
(p
A
1
, , A
l
(R)) = p
A
1
, , A
k
(R), vi k £ l
} Phép chiếu không có tính giao hoán
© Bui MT Diem, 2007 4
TH10717Bài 3
Phép Chn >< Phép Chiếu
A
1
A
2
A
3
A
n
...
i
A
1
A
2
A
3
A
n
...
j, i ³ j
s
A
1
A
2
A
3
A
n
...
i
A
1
A
2
A
k
...
j, n ³ k
i
³ j
p
n
k
Phép chn
Phép chiếu
TH10718Bài 3
Ví d Phép chiếu
Nvien
ms_nv
ten_nv cvu luong
N1 T. Vu KS 30000
N2 N. Thanh TK 40000
N3 V. Minh PT 50000
N4 T.Tram KS 30000
N5 P. Thao KT 45000
N6 M. Tuan KS 50000
N7 T. Tam LT 60000
N8 T. Thanh LT 55000
s
cvu=KS
(Nvien)
Nvien cvu
KS
TK
PT
KT
LT
p
cvu
(Nvien)
Câu hi Phép chn
Bài 3TH10719
1. Ch tr v các thuc tính
nvu và tgian.
2. Ch tr v thuc tính ms_nv.
3. Ch tr v thuc tính ms_da.
Cho biết kết qu vi mi trường
hp.
Tgia ms_nv ms_da nvu tgian
N1 D1 Quan ly 12
N2 D1 Phan tich 24
N2 D2 Thiet ke 6
N3 D3 Phan tich 10
N3 D4 Tu van 48
N4 D2 Thiet ke 18
N5 D2 Phan tich 24
N6 D4 Quan ly 48
N7 D3 Lap trinh 36
N7 D5 Thiet ke 23
N8 D3 Quan ly 40
Kết hp Phép Chn và Phép Chiếu
Bài 1TH10720
Kết hp các phép toán cho ra mt
biu thc quan h.
p
ten_nv
(s
luong<50000
Nvien)
s
luong<50000
(p
ten_nv, luong
Nvien))
p
ten_nv
(s
luong<50000
(p
ten_nv, luong
Nvien))
Cho biết các truy vn nào tương
đương trong s các truy vn trên.
Hai truy vn được gi là tương
đương nếu chúng bo đảm tr v
ng mt kết qu truy vn vi bt
k th hin CSDL nào.
Nvien
ms_nv
ten_nv cvu luong
N1 T. Vu KS 30000
N2 N. Thanh TK 40000
N3 V. Minh PT 50000
N4 T.Tram KS 30000
N5 P. Thao KT 45000
N6 M. Tuan KS 50000
N7 T. Tam LT 60000
N8 T. Thanh LT 55000
© Bui MT Diem, 2007
5
TH10721Bài 3
Các Phép toán Tp hp
} Các phép toán chun trên tp hp cũng được áp
dng trên quan h
} Phép toán tp hp là phép toán hai ngôi ly hai
quan h R và S làm input và to ra mt quan h
output.
} R(A
1
, A
2
,…, A
n
), S(B
1
, B
2
,, B
n
) phi kh hp (union
compatible)
, nghĩa là:
} R và S cùng cp (cùng s lượng thuc tính)
} Vi mi i, dom(A
i
) = dom(B
i
)
} Các ct trong R và S phi có th t sao cho th t ca
các thuc tính ging nhau tương ng c hai quan h
Các Phép toán Tp hp
Bài 3TH10722
} Các phép toán trên tp hp hi (union), giao (intersection) và tr
(difference) trên các quan h kh hp R và S ý nghĩa như sau:
} Phép hi: tt c các b (loi b b trùng) trong R, trong S hoc c hai
} R È S = {t | t Î R Ú t Î S}
} Phép giao: tt c các b va có trong R va có trong S
} R Ç S = {t | t Î R Ù t Î S}
} Phép tr: tt c các b có trong R nhưng không có trong S
} R S = {t | t Î R Ù t Ï S}
trong đó R và S là các quan h, t là mt biến b
Lưu ý:
R S ¹ S R
R Ç S = R –(R S) = S –(S R)
R S
TH10723Bài 3
Ví d
Sinhvien Giaovien
HT DC
Dinh Ba Tien 731 Tran Hung Dao, Q1, TP HCM
Le Quynh Nhu 291 Ho Van Hue, QPN, TP HCM
Ten Dchi
Dinh Ba Tien 731 Tran Hung Dao, Q1, TP HCM
Tran Thanh Tam 543 Mai Thi Luu, Q1, TP HCM
Sinhvien Ç Giaovien
Sinhvien È Giaovien
Sinhvien - Giaovien
HT DC
Dinh Ba Tien 731 Tran Hung Dao, Q1, TP HCM
Le Quynh Nhu 291 Ho Van Hue, QPN, TP HCM
Tran Thanh Tam 543 Mai Thi Luu, Q1, TP HCM
HT DC
Le Quynh Nhu 291 Ho Van Hue, QPN, TP HCM
HT DC
Dinh Ba Tien 731 Tran Hung Dao, Q1, TP HCM
Giaovien -Sinhvien
HT DC
Tran Thanh Tam 543 Mai Thi Luu, Q1, TP HCM
Phép tích
Bài 1TH10724
} Gi s A = {a, b, c} B = {1, 2}
thì trong thuyết tp hp, phép tích được định
nghĩa là:
A ´ B = {(
a, 1), (b, 1), (c, 1), (a, 2), (b, 2), (c, 2)}
} A ´ B là mt tp gm có các cp (2-tuples) trong
đó mi cp bao gm mt thành phn t A và
mt thành phn t B
© Bui MT Diem, 2007 6
Phép tích trong Lý thuyết Tp hp
Bài 1TH10725
} Gi s A = {a, b, c} B = {1, 2} C = {x, y} t
A ´ B = {(
a, 1), (b, 1), (c, 1), (a, 2), (b, 2), (c, 2)}
và (A ´ B) ´ C =
{((
a,1),x), ((b,1),x), ((c,1),x), ((a,2),x), ((b,2),x), ((c,2),x),
((
a,1),y), ((b,1),y), ((c,1),y), ((a,2),y), ((b,2),y),
((
c,2),y)}
Đại s Quan h >< Lý thuyết Tp hp
(Pp ch) (tt.)
Bài 1TH10726
} Cho A = {a, b, c} B = {1, 2} C = {x, y}
vi phép tích (A ´ B) ´ C trong lý thuyết tp hp=
{((
a,1),x), ((b,1),x), ((c,1),x), ((a,2),x), ((b,2),x), ((c,2),x),
((
a,1),y), ((b,1),y), ((c,1),y), ((a,2),y), ((b,2),y), ((c,2),y)}
Codd đơn gin nó trong đại s quan h thành:
{(
a,1,x), (b,1,x), (c,1,x), (a,2,x), (b,2,x), (c,2,x), (a,1,y),
(
b,1,y), (c,1,y), (a,2,y), (b,2,y), (c,2,y)}
bng cách lược b các du ngoc.
Phép tích
Bài 1TH10727
} Được s dng để định nghĩa quan h.
Mt th hin ca quan h là mt tp con ca
phép tích các min giá tr.
} Cũng là mt phép toán trong đại s quan h.
Ta s dng nó để truy vn.
TH10728Bài 3
Phép tích Cartesian
Cartesian Product/ Cross product / Cross Join
}
Phép tích Cartesian ca hai quan h R (có bc k
1
)
và S (có bc k
2
) được ký hiu là
R ´ S
} Định nghĩa:
R ´ S = {t | t[A
1
, …, A
k1
] Î R Ù t[A
k1
, …, A
k1+k2
] Î S}
}
Kết qu ca R ´ S là mt quan h có bc (k
1
+k
2
)
và bao gm tt c (k
1
+k
2
)-tuples trong đó mi
b là mt phép ghép (concatenation) ca mt b
ca R và mt b ca S.
} S b (cardinality) ca R ´ S là |R| *|S|
© Bui MT Diem, 2007
7
TH10729Bài 3
Ví d
´
r s
A B
1 2
3 4
B C D
2 5 6
4 7 8
9 10 11
A r.B s.B C D
1 2 2 5 6
1 2 4 7 8
1 2 9 10 11
3 4 2 5 6
3 4 4 7 8
3 4 9 10 11
r ´ s
Ví d
Bài 2TH10730
Dan ms_da ten_da nsach ms_pb
D1 Thiet bi 150000
P1
D2 Phat trien CSDL 135000
P2
D3 CAD/CAM 250000
P3
D4 Bao tri 310000
P2
D5 CAD/CAM 500000
P2
Nvien ms_nv ten_nv cvu luong ms_pb
N1 T. Vu KS 30000 P1
N2 N. Thanh TK 40000 P2
N3 V. Minh PT 50000 P1
N4 T.Tram KS 30000 P3
N5 P. Thao KT 45000 P4
N6 M. Tuan KS 50000 P4
N7 T. Tam LT 60000 P2
N8 T. Thanh LT 55000 null
Pban ms_pb ten_pb ms_tp
P1 Quan ly N8
P2 Tu van N7
P3 Tai vu N5
P4 Phat trien null
TH10731Bài 3
Ví d
Temp
(Pban.ms_pb,
ten_pb, ms_tp,
ms_da, ten_da,
nsach,
Dan.ms_pb) ¬
Pban ´ Dan
Pban.ms_pb ten_pb ms_tp ms_da ten_da nsach Dan.ms_pb
P1 Quan ly N8 D1 Thiet bi 150000 P1
P1 Quan ly N8 D2 Phat trien CSDL 135000 P2
P1 Quan ly N8 D3 CAD/CAM 250000 P3
P1 Quan ly N8 D4 Bao tri 310000 P2
P1 Quan ly N8 D5 CAD/CAM 500000 P2
P2 Tu van N7 D1 Thiet bi 150000 P1
P2 Tu van N7 D2 Phat trien CSDL 135000 P2
P2 Tu van N7 D3 CAD/CAM 250000 P3
P2 Tu van N7 D4 Bao tri 310000 P2
P2 Tu van N7 D5 CAD/CAM 500000 P2
P3 Tai vu N5 D1 Thiet bi 150000 P1
P3 Tai vu N5 D2 Phat trien CSDL 135000 P2
P3 Tai vu N5 D3 CAD/CAM 250000 P3
P3 Tai vu N5 D4 Bao tri 310000 P2
P3 Tai vu N5 D5 CAD/CAM 500000 P2
P4 Phat trien null D1 Thiet bi 150000 P1
P4 Phat trien null D2 Phat trien CSDL 135000 P2
P4 Phat trien null D3 CAD/CAM 250000 P3
P4 Phat trien null D4 Bao tri 310000 P2
P4 Phat trien null D5 CAD/CAM 500000 P2
TH10732Bài 3
Ý nghĩa ca Phép tích Cartesian
} Phép tích: Mt b ca mt quan h ln lượt kết
hp vi mt b ca quan h kia
} Thường thy hơn,
} thay vì đơn gin là tích hai quan h, thì nhu cu kết
chúng thành cp ch theo các b khp vi nhau theo
cách nào đó.
© Bui MT Diem, 2007 8
TH10733Bài 3
Phép Kết Ra đời
} Gii hn li:
} kết hp tng phòng và d án tương ng mà phòng ban
đó ch trì: có th thc hin trc tiếp bng cách dùng
phép kết, không cn dùng đến phép tích
Dan
ms_da
ten_da nsach ms_pb
D1 Thiet bi 150000
P1
D2 Phat trien CSDL 135000
P2
D3 CAD/CAM 250000
P3
D4 Bao tri 310000
P2
D5 CAD/CAM 500000
P2
Pban
ms_pb
ten_pb ms_tp
P1 Quan ly N8
P2 Tu van N7
P3 Tai vu N5
P4 Phat trien null
s
pban.ms_pb=dan.ms_pb
(Pban ´ Dan)
tương đương vi
Pban
pban.ms_pb=dan.ms_pb
Dan
Pban.ms_pb ten_pb ms_tp ms_da ten_da nsach Dan.ms_pb
P1 Quan ly N8 D1 Thiet bi 150000 P1
P2 Tu van N7 D2 Phat trien CSDL 135000 P2
P2 Tu van N7 D4 Bao tri 310000 P2
P2 Tu van N7 D5 CAD/CAM 500000 P2
P3 Tai vu N5 D3 CAD/CAM 250000 P3
Ví d
Bài 3TH10734
Pban.ms_pb ten_pb ms_tp ms_da ten_da nsach Dan.ms_pb
P1 Quan ly N8 D1 Thiet bi 150000 P1
P1 Quan ly N8 D2 Phat trien CSDL 135000 P2
P1 Quan ly N8 D3 CAD/CAM 250000 P3
P1 Quan ly N8 D4 Bao tri 310000 P2
P1 Quan ly N8 D5 CAD/CAM 500000 P2
P2 Tu van N7 D1 Thiet bi 150000 P1
P2 Tu van N7 D2 Phat trien CSDL 135000 P2
P2 Tu van N7 D3 CAD/CAM 250000 P3
P2 Tu van N7 D4 Bao tri 310000 P2
P2 Tu van N7 D5 CAD/CAM 500000 P2
P3 Tai vu N5 D1 Thiet bi 150000 P1
P3 Tai vu N5 D2 Phat trien CSDL 135000 P2
P3 Tai vu N5 D3 CAD/CAM 250000 P3
P3 Tai vu N5 D4 Bao tri 310000 P2
P3 Tai vu N5 D5 CAD/CAM 500000 P2
P4 Phat trien null D1 Thiet bi 150000 P1
P4 Phat trien null D2 Phat trien CSDL 135000 P2
P4 Phat trien null D3 CAD/CAM 250000 P3
P4 Phat trien null D4 Bao tri 310000 P2
P4 Phat trien null D5 CAD/CAM 500000 P2
Phép Kết: Để Thun tin
Bài 1TH10735
} Lưu ý: Phép kết R
A1=A2
S, trong đó A
1
là mt
thuc tính ca quan h R và A
2
là mt thuc tính
ca quan h S, được định nghĩa là s
A1=A2
(R ´ S)
} Do đó, thc s ta không “cn” phép kết. Bt k
truy vn nào cn din đạt, ta luôn dùng ´ và s.
} Nhưng vì phép kết được dùng rt thường xuyên,
nên nó được định nghĩa như là mt phép toán,
để thun tin.
Phép kết vi 6 phép so nh
Bài 1TH10736
} Svien
ms_sv=ms_gv
Gvien
} Svien
Svien.tuoi>Gvien.tuoi
Gvien
} Svien
Svien.luongGvien.luong
Gvien
}
} Phép kết đôi khi còn được gi là q-Kết, trong đó
q đại din cho mt trong 6 phép so nh.
© Bui MT Diem, 2007 9
TH10737Bài 3
Phép q-Kết
q-Join
}
Theta (q) kết là mt dng phát trin t phép tích
Cartesian. Thay vì ly tt c các phi hp ca các b
t R và S, ta ch ly tp con ca các b tha mãn điu
kin F cho trước, q-Kết được ký hiu là
R
F
S
} Định nghĩa:
R
F
S= {t | t[A
1
, , A
k1
] Î R Ù t[A
k1
, , A
k1+k2
] Î S Ù F(t)}
trong đó
} R và S các quan h, t mt biến b
} F(t) mt công thc được định nghĩa như điu kin ca
vic chn
} Lưu ý: R
F
S = s
F
(R ´ S)
Ví d
Bài 1TH10738
A B C
1 2 3
6 7 8
9 7 8
B C D
2 3 4
2 3 5
7 8 10
A u.Bu.C v.B v.C D
1 2 3 7 8 10
A<D Ù u.B ¹ v.B
u v
Các loi Phép Kết
Bài 3TH10739
} q-Kết là mt phép kết tng quát trong đó nó cho phép bt k biu
thc nào trong điu kin F.
} Tuy nhiên, các phép kết đặc bit hơn thường được s dng.
Phép kết t nhiên (natural join)
} R * S
} ch phép bng (=) trên mt
tp thuc tính cùng tên ca c
R và S.
} các thuc tính kết dư tha ca
S s b loi b khi quan h kết
qu.
Phép kết bng (equi-join)
} R
F
S
} ch phép bng (=) trong
điu kin F.
} kết qu tr v các thuc tính
kết ca R và S. Thuc tính kết S
xut hin lp li (dư tha) trong
quan h kết qu.
Ví d
Bài 1TH10740
Cho các quan h
R(A, B) và S(B, C, D).
Cho biết R * S
Lược đồ kết qu là (A, B, C, D)
Kết qu ca R * S được định nghĩa
p
R.A, R.B, S.C, S.D
((s
R.B = S.B
(R ´ S))
A B
1 2
3 4
B C D
2 5 6
4 7 8
9 1011
A B C D
1 2 5 6
3 4 7 8
R S
*
© Bui MT Diem, 2007 10
Ti sao cn Phép Đổi tên?
Bài 3TH10741
} Để gii quyết tình hung nhp nhng tên thuc tính
} Đối vi phép hi, phép tr, phép kết t nhiên, quan h kết qu s
ly tên thuc tính ca quan h đầu tiên
} Đối vi phép tích, các thuc tính được đặt tên theo cách: Tên-
qh.tên.tt, trong đó tên quan h được ly t quan h ca thuc tính
} Khi cùng mt quan h xut hin nhiu ln trong mt truy
vn, s gii quyết như thế nào?
Cho quan h R(A,B). XétR
´
R
Tênca thuc tính trong quan h kết qu?
Phép Đổi tên
Bài 1TH10742
Rename Operation
}
Tr v mt quan h vi tên mi tên-qh-mi
r
tên-qh-mi
(biu-thc-quan-h)
}
Tr v mt quan h trong đó đổi tên các thuc
tính tương ng thành A
1
, A
2
, …, A
n
r
A1, A2, , An
(biu-thc-quan-h)
}
Tr v mt quan h trong đó đổi tên các thuc
tính tương ng thành A
1
, A
2
, …, A
n
vi tên mi
tên-qh-mi
r
tên-qh-mi(A1, A2, , An)
(biu-thc-quan-h)
} Đơn gin hóa s dng phép gán:
tên-qh-mi(A
1
, A
2
, …, A
n
) ¬ biu-thc-quan-h
Ví d
Bài 1TH10743
} t quan h Nvien(ms_nv,
ten_nv, cvu, luong, ms_pb)
} Cho biết tên các nhân viên cùng
phòng vi nhân viên V. Minh.
Nvien ms_nv ten_nv cvu luong ms_pb
N1 T. Vu KS 30000 P1
N2 N. Thanh TK 40000 P2
N3 V. Minh PT 50000 P1
N4 T.Tram KS 30000 P3
N5 P. Thao KT 45000 P4
N6 M. Tuan KS 50000 P4
N7 T. Tam LT 60000 P2
N8 T. Thanh LT 55000 null
m (các) phòng ban V. Minh làm vic
1
m tt c các nhân viên làm vic phòng trên, ta cn tham chiếu
đến quan h Nvien mt ln na.
Nếu ta s dng Nvien.mp trong P thì li nhp nhng vi th hin
ca quan h Nvien trong truy vn thuc tính tham chiếu ti.
2
p
ms_pb
(s
ten_nv=V.Minh
Nvien)
s
P
(Nvien ´p
ms_pb
(s
ten_nv=V. Minh
Nvien)
1 2
Ví d Phép Đổi tên
Bài 1TH10744
p
ten_nv
(s
Nvien.ms_pb=M.ms_pb
(Nvien ´ (p
ms_pb
(s
ten_nv=V. Minh
(r
M
(Nvien))))
p
ten_nv
(Nvien
Nvien.ms_pb=M.ms_pb
(p
ms_pb
(s
ten_nv=V. Minh
(r
M
(Nvien))))
2
1
Để tránh nhp nhng, s dng phép đổi tên
1
S dng phép kết thay cho phép tích và phép chn
2
© Bui MT Diem, 2007 11
Câu hi Thc hành
Bài 3TH10745
} Cho : Nhanvien(tennv, manv, ma_nql, phg), Phongban
(tenphg, maphg
, trphg), Thannhan(ma_nvien, tentn)
1. Tên nhân viên và tên người qun lý trc tiếp nhân viên đó
2. Tên nhân viên và tên phòng mà nhân viên làm vic
Tên trưởng phòng và tên phòng mà người đó là trưởng phòng
3. Tên nhng trưởng phòng ít nht mt thân nhân
4. Tên nhân viên không thân nhân
Mt quan h có th có mt tp thuc tính kết để kết vi chính quan h đó
Þ
phi s dng phép đổi tên.
Gia 2 quan h có th có nhiu hơn mt tp thuc tính kết mang ý nghĩa
khác nhau.
Phép kết hay phép giao?
Phép tr?
1
2
3
4
Tìm “Tt c
Bài 3TH10746
} Cho biết kết qu tr v ng vi các truy vn sau:
1. Cho biết mã nhân viên tham gia đề án.
2. Cho biết mã nhân viên tham gia ít nht mt đề án.
3. Cho biết mã nhân viên tham gia tt c các đề án.
4. Cho biết mã nhân viên tham gia tt c các đề án do phòng 4
ch trì.
Ta có th s dng phép chia cho các truy vn có t tt c (for all)
Zero Division?
TH10747Bài 3
Phép chia
Division Operator
}
Phép chia trên hai quan h R (A
1
, …, A
m
, B
1
, , B
n
)
và S (B
1
, …, B
n
), được ký hiu là
R ¸ S
} Các thuc tính ca S là mt tp thuc tính con ca R.
} Định nghĩa: Kết qu phép chia R ¸ S là 1 quan h
trên lược đồ R S = (A
1
, …, A
m
)
R ¸ S = {t | t Îp
A1, , Am
(R) Ù ("u Î S ($(t, u) Î R))}
} R¸S, vi các thuc tính A
1
, , A
m
, là mt tp hp cha
tt c các b t sao cho vi mi b u trong S, thì có mt
b <t u> trong R.
Ví d Phép chia
mancc masp
c1 s1
c1 s2
c1 s3
c1 s4
c2 s1
c2 s2
c3 s2
c4 s2
c4 s4
masp
s2
CC Sp1
masp
s2
s4
Sp2
masp
s1
s2
s4
Sp3
mancc
c1
c2
c3
c4
CC ¸ Sp1
mancc
c1
c4
CC ¸ Sp2
mancc
c1
CC ¸ Sp3
© Bui MT Diem, 2007 12
Ví d Phép chia
ma_nvien mada
123456789 1
123456789 2
666884444 3
453453453 1
453453453 2
333445555 2
333445555 3
333445555 10
333445555 20
mada
10
30
Phancong
Deanp4
mada
1
2
3
10
20
30
Dean
ma_nvien
Phancong¸ Dean
ma_nvien
999887777
987987987
Phancong¸p
mada
(s
phong=4
Dean)
999887777 30
999887777 10
987987987 10
987987987 30
987987987 1
987654321 30
987654321 20
888665555 20
Xây dng các Biu thc Phc tp
Bài 3TH10750
} Kết hp các phép toán ĐSQH bng cách s dng du
ngoc và các quy tc v th t ưu tiên
•kết qu ca mt phép toán ĐSQH
là mt quan h
các phép toán ĐSQH có th được
lng ghép nhau như các hàm
biu din du ngoc để din đạt
th t thc hin phép toán
Lng và du ngoc
•To các tên quan h tm
Có th thc hin vic ngm đổi
tên bng cách lit kê các thuc
tính
Chui các Phép Gán
} 3 loi ký hiu:
1. Dng lng: To mt biu
thc ĐSQH bng cách lng
các phép toán vi nhau
2. Chui các phép gán: Áp
dng tun t tng phép
toán mt, mi ln áp
dng phép toán đặt tên
cho quan h trung gian
bng cách thc hin vic
gán tên
3. Biu din dng cây
Ví d: Dng 1 & 2
Bài 1TH10751
} Xét quan h Nhanvien(honv,tenlot,tennv,manv,luong,phg)
} Lit kê h tên và lương nhân vn làm vic phòng s 4.
Dng lng
1
Chui các phép gán
2
p
honv, tenlot, tennv, luong
( s
phg = 4
(Nhanvien) )
Nv_p4 ¬s
phg = 4
(Nhanvien)
Kq ¬p
honv, tenlot, tennv, luong
(Nv_p4)
1
2
Nv_p4 ¬s
phg = 4
(Nhanvien)
Kq (ho, lot, ten, luongcb) ¬p
honv, tenlot, tennv, luong
(Nv_p4)
3
hoc đổi tên bng cách lit kê tên thuc tính mi trong du ngoc
3
Th t Thc hin Phép toán
Bài 3TH10752
1. các phép toán mt ngôi: s, p, r
2. phép tích Cartesian và phép kết: ´,
3. phép giao, phép chia: Ç, ¸
4. phép hi và phép tr: È, -
Du ngoc có th được dùng để thay đổi th t
ca các phép toán.
© Bui MT Diem, 2007 13
Dng 3: Cây Biu thc
Bài 1TH10753
} Nút lá: là các operands
} biến đại din cho các quan h, trong trường hp đặc
bit có th là các quan h hng
} Nút trong: là các phép toán, áp dng cho (các)
t con.
Ví d: Dng 3
Bài 1TH10754
} Xét quan h
Thannhan(ma_nvien, tentn,
ngaysinh, quanhe),
Phancong(ma_nvien, soda),
} Lit mã nhân viên con
hoc nhân viên tham gia đề
án.
È
p
ma_nvien
s
quanhe=con trai’
Ú quanhe=con gai’
Thannhan
p
ma_nvien
Phancong
Ví d: Dng 3
Bài 1TH10755
} Xét quan h
Phancong(ma_nvien, soda,
thoigian)
} Lit mã nhân viên tham
gia các đề án khác nhau vi
cùng thi gian.
p
ma_nvien
s
d<>soda
*
r
P(ma_nvien, d,
thoigian)
Phancong
Phancong
Các Phép toán m rng
Bài 1TH10756
} Phép chiếu m rng
} Grouping và aggregation
} Outer join
© Bui MT Diem, 2007 14
TH10757Bài 3
Phép Chiếu M rng
} S dng như phép chiếu p
L
. Thay vì L ch lit kê
danh ch các thuc tính, thì L có th cha các
biu thc s hc liên quan đến các thuc tính,
chng hn:
1. các biu thc trên thuc tính, vd. A+B
2. xut hin trùng các thuc tính
} Định nghĩa: p
F
1
, F
2
, , F
k
(E)
} trong đó E là biu thc đại s quan h
} F
1
, F
2
, , F
k
là các biu thc s hc có liên quan đến
hng và thuc tính trong lược đồ E.
Ví d
Vd1
Vd2
Bài 3TH10758
} Cho quan h
Thetindung(msthe, trigiathe,
sotiensd)
} Tìm s tin n li trong th
p
msthe, trigiathe -sotiensd
(Thetindung)
R = ( )
A B
1 2
3 4
p
A+B,A,A
(R) = ( )
A+B A1 A2
3 1 1
7 3 3
Hàm Kết hp và Gom nhóm
Bài 3TH10759
} Hàm kết hp -Aggregate Functions nhn vào tp hp
giá tr và tr v mt giá tr đơn.
avg(average value): giá tr trung bình
min(minimum value): giá tr nh nht
max(maximum value): giá tr ln nht
sum (sum of values): tính tng
count (number of values): đếm s mu tin
SUM(A) = 7
COUNT(A) = 3
MAX(B) = 4
AVG(B) = 3
R = ( )
A B
1 2
3 4
3 2
TH10760Bài 3
Hàm Kết hp và Gom nhóm
} Phép toán gom nhóm -Grouping trong
ĐSQH:
G
1
, G
2
, , G
n
F
1
(A
1
), F
2
(A
2
), , F
n
(A
n
)
(E)
} E là biu thc đại s quan h
} G
i
là tên thuc tính gom nhóm (có th không có)
} F
i
là hàm gom nhóm
} A
i
là tên thuc tính tính toán trong hàm gom nhóm F
i
} Kết qu có mt b ng vi mi nhóm:
1. Các thuc tính gom nhóm
2. Kết qu ca các hàm kết hp thc hin trên nhóm đó
© Bui MT Diem, 2007
15
Ví d:
Bài 1TH10761
} Xét quan h Nhanvien(honv,
tenlot, tennv, manv
, luong,
ma_nql, phg). Cho biết:
1. Tng s nhân viên ca công
ty và lương trung bình.
2. S lượng nhân viên và
lương trung bình ca nhân
viên theo tng phòng
COUNT(manv), AVG(luong)
(Nhanvien)
Count_manv Avg_luong
8 35125
phg
COUNT(manv), AVG(luong)
(Nhanvien)
phg Count_manv Avg_luong
5 4 33250
4 3 31000
1 1 55000
manv luong ma_nql phg
123456789 30000 333445555 5
333445555 40000 888665555 5
666884444 38000 333445555 5
453453453 25000 333445555 5
999887777 25000 987654321 4
987654321 43000 888665555 4
987987987 25000 987654321 4
888665555 55000 Null 1
1
2
1
2
Outer Join
Bài 1TH10762
} Gi s cn thc hin phép kết R
P
S.
} Mt b ca R mà không có b trong S để thc hin phép
kết thì gi là dangling (“m côi”)
} tương t đối vi S
} Phép kết ngoài (Outer join) bo đảm gi các b “m côi
bng cách thêm vào giá tr NULL trong kết qu.
R = ( )
A B
1 2
4 5
R S = ( )A B C
1 2 3
4 5 Null
Null 6 7
S = ( )
B C
2 3
6 7
TH10763Bài 3
Outer Join
} Có ba loi kết ngoài:
} Left outer join: R
P
S
} Kết qu s cha tt c các b ca R khp vi các b ca S. Vi
mt b thuc R, nếu không tìm thy b nào khp vi S, thì các
b này cũng được xut hin trong kết qu cui cùng và giá tr
thuc tính tương ng ca S s được đặt là null.
} Right outer join: R
P
S
} Kết qu s cha tt c các b ca S khp vi các b ca R. Vi
mt b thuc S, nếu không tìm thy b nào khp vi R, thì các
b này cũng được xut hin trong kết qu cui cùng và giá tr
thuc tính tương ng ca R s được đặt là null
} Full outer join: R
P
S
} Tt c các b ca R và S đều trong kết qu cho chúng
b khp vi quan h kia hay không.
Ví d
Bài 1TH10764
} p
honv, tenlot, tennv, tenphg
(Nhanvien
manv = trphg
Phongban)
} p
honv, tenlot, tennv, tenphg
(Nhanvien
manv = trphg
Phongban)
} p
honv, tenlot, tennv, tenphg
(s
tenphg <> null
(Nhanvien
manv = trphg
Phongban))
honv tenlot tennv tenphg
Nguyen Thanh Tung Nghien Cuu
Tran Hong Quang Dieu Hanh
Pham Van Vinh Quan Ly
honv tenlot tennv tenphg
Dinh Ba Tien Null
Nguyen Thanh Tung Nghien cuu
Bui Ngoc Hang Null
Le Quynh Nhu Null
Nguyen Manh Hung Null
Tran Thanh Tam Null
Tran Hong Quang Dieu hanh
Pham Van Vinh Quan ly
© Bui MT Diem, 2007 16
TH10765Bài 3
Dàn bài
} Ngôn ng Truy vn trong Mô hình Quan h
} Các Phép toán Đại s Quan h
} Các Thao tác Cp nht
TH10766Bài 3
Thao tác Cp nht trên Quan h
} Ni dung ca CSDL có th được cp nht bng
cách dùng các thao tác Thêm, Xóa, Sa
} Tt c các thao tác này được din đạt thông qua
phép toán gán.
r
new
¬ các phép toán trên (r
old
)
Thêm
Bài 3TH10767
} Hoc nêu ra mt b cn chèn, hoc viết mt câu truy vn
mà kết qu là mt tp hp các b cn chèn
} Trong ĐSQH, thao tác chèn được din đạt như sau:
r ¬ r È E
trong đó r là mt quan h và E là mt biu thc ĐSQH.
Vd.,
´Phân công cho nhân viên 123456789 làm thêm đề án s 20 vi s
gi 10.
Phancong ¬ Phancong È {(‘123456789, 20,10)}
Xóa
Bài 3TH10768
} Yêu cu xóa được din đạt tương t như câu truy vn, ch khác
ch, thay vì hin th các b kết qu vi người s dùng, thì
các b được chn b xóa khi CSDL.
} Ch có th xóa toàn b b, không th xóa các g tr trên các
thuc tính nào đó.
} Thao tác xóa được din đạt trong ngôn ng ĐSQH như sau:
r ¬ r E
trong đó r là mt quan h và E là mt câu truy vn ĐSQH.
´Xóa tt c nhng phân công đề án cho nhân viên 123456789
Phancong ¬ Phancong –(s
ma_nvien =123456789’
(Phancong))
´Xóa tt c nhng phân công đề án mà địa đim đề án “HA NOI”
r
1
¬s
ddiem_da = ‘Ha Noi’
(Phancong
soda = mada
Dean)
r
2
¬p
ma_nv, soda, thoigian
(r
1
)
Phancong ¬ Phancong r
2
© Bui MT Diem, 2007
17
Sa
Bài 3TH10769
} Để cp nht, s dng phép chiếu tng quát a như sau:
r ¬p
F
1
, F
2
, …, F
n
(r)
mi F
i
giá tr tr v là giá tr mi cho thuc tính th i ca r, thuc
tính th i th gi nguyên (nếu không mun cp nht) hoc s
được cp nht vi giá tr mi đó.
} F
i
là mt biu thc, bao gm hng và thuc tính ca r, để đưa ra
giá tr mi cho thuc tính đó.
Vd.,
´Tăng thi gian làm vic ca tt c nhân viên lên 1.5 ln
Phancong ¬p
ma_nv, soda, thoigian * 1.5
(Phancong)
Tp Đầy đủ các Phép toán ĐSQH
Bài 3TH10770
} Tt c các phép toán được tho lun trên có th được
mô t da trên 5 phép toán cơ s như {s, p, È, -, ´}
tp hp {s, p, È, -, ´} được gi là tp đầy đủ các phép toán ĐSQH
R Ç S = R
-
(R
-
S)
R
P
S =
s
P
(R
´
S)
R
*
P
S =
p
ttinh
(
s
P
(R
´
S))
R
¸
S =
p
A
(R)
-p
A
((
p
A
(R)
´
S)
-
R)
Ti sao ta s dng ĐSQH?
Bài 3TH10771
} Được định nghĩa mt cách toán hc (trong đó quan h là
tp hp)
} Được dùng bên trong các HQTCSDL
} Có th chng minh hai biu thc quan h tương đương
s
cond1
(
s
cond2
R)
º s
cond2
(
s
cond1
R)
º s
cond1 Ù cond2
R
º
(
s
cond1
R) Ç (
s
cond2
R)
R1
cond
R2
º s
cond
(R1 ´ R2)
s
cond1 Ú cond2
R
º
(
s
cond1
R) È (
s
cond2
R)
AND, OR, NOT”
Bài 1TH10772
s
cond1
Úcond2
R º (s
cond1
R)
È (s
cond2
R)
s
cond1
Ù cond2
R º (s
cond1
R)
Ç (s
cond2
R)
s
cond1
ÙØcond2
R º (s
cond1
R)
(s
cond2
R)
© Bui MT Diem, 2007 18
TH10773Bài 3
Kết lun
} Đại s quan h: là mt tp hp các phép toán để
ánh x quan h thành quan h.
} Operational, theo nghĩa ta phi mô t tường minh th
t thc hin ca các phép toán
} Là mt tp phép toán đóng! Có th ghép phép toán.
} Các phép toán cơ s gm có: s, p, ´, È, -
} Các phép toán khác định nghĩa trên các phép
toán cơ s: Ç, , ¸
© Bui MT Diem, 2007 19
| 1/19

Preview text:

Thế nào là Truy vấn CSDL?
} Cho một CSDL, đưa ra các câu hỏi, nhận được các câu trả lời. } Vd.,
} Cho biết tất cả sinh viên có điểm trung bình > 8 điểm thuộc các khoa TOAN, CNTT
} Cho biết các khoa có hơn 50 giảng viên TH107 - Cơ sở Dữ liệu
} Trong số các khoa, chọn sinh viên đạt điểm trung bình Bài 3
cao nhất trong năm học trước Đại số Quan hệ Bài 3 3 TH107 Dàn bài Ngôn ngữ Truy vấn
} Ngôn ngữ Truy vấn trong Mô hình Quan hệ Query language (QL)
} Các Phép toán Đại số Quan hệ
} Ngôn ngữ truy vấn là một ngôn ngữ cho phép } Các Thao tác Cập nhật
người dùng cập nhật và rút trích dữ liệu được lưu
trong một mô hình dữ liệu.
} Ngôn ngữ truy vấn ¹ Ngôn ngữ lập trình
} QL không nhằm mục đích dùng cho các ứng dụng phức tạp
} QL hỗ trợ truy xuất dễ dàng tới các tập hợp dữ liệu lớn Bài 3 2 TH107 Bài 3 4 TH107 © Bui MT Diem, 2007 1
Ngôn ngữ Truy vấn Quan hệ
Đại số >< Đại số Quan hệ
} Hai ngôn ngữ truy vấn (toán học) là cơ sở của các ngôn Algebra Relational Algebra
ngữ "thực sự" thực hiện (vd., SQL) là
} Đại số là hệ thống toán
} Đại số Quan hệ là một tập
} Đại số Quan hệ (Relational Algebra): mang tính thao tác học bao gồm hợp các phép toán quan
(operational), rất có ưu thế trong việc biểu diễn kế hoạch thi hành
} operands: biến hay giá trị
hệ để rút trích dữ liệu. truy vấn.
trong đó các giá trị mới có
} Giống như đại số với các
} Phép tính Quan hệ (Relation Calculus): khai báo (declarative), thể được tạo ra
không thủ tục (non-procedural), dựa trên ngôn ngữ logic. Cho con số, ĐSQH có
} operators: ký hiệu để chỉ các
phép người dùng mô tả cái họ muốn hơn là cách xử lý nó.
thủ tục tạo ra các giá trị mới
} các operands là các quan hệ
từ các giá trị cho trước
hay các biến đại diện cho
Bình thường, ta không sử dụng ĐSQH trực tiếp … không thấy sản phẩm nào quan hệ.
sử dụng ĐSQH được sử dụng rộng rãi.
} các operators để thực hiện
Nhưng nó được dùng bên trong các HQTCSDL vì ngữ nghĩa rõ ràng, chuẩn,
các công việc trên một quan
có cú pháp rõ ràng. hệ trong CSDL.
Hiểu được đại số quan hệ và phép tính quan hệ là chìa khóa để hiểu cách xử
lý và tối ưu hóa câu truy vấn.
5 TH107 Bài 3 7 TH107 Bài 3 Tổng quát Đại số Quan hệ
} Truy vấn được áp dụng cho các quan hệ, và nhận
} Mọi phép toán quan hệ nhận đầu vào là một hay
về kết quả là một quan hệ
nhiều quan hệ và tạo ra kết quả là một quan hệ.
} Lược đồ của các quan hệ đầu vào đối với một truy vấn
} closure property: input là quan hệ, output là quan hệ là cố định
} unary operators: thao tác trên một quan hệ (= phép
} Lược đồ của kết quả ứng với một truy vấn cũng cố định. toán một ngôi)
Nó được xác định bởi các định nghĩa của cấu trúc ngôn
} binary operators: lấy hai quan hệ làm input (= phép ngữ truy vấn. toán hai ngôi)
} Một chuỗi các phép toán ĐSQH được gọi là một
biểu thức ĐSQH (relational algebra expression). Bài 3 6 TH107 8 TH107 Bài 3 © Bui MT Diem, 2007 2 Dàn bài Phép chọn
} Ngôn ngữ Truy vấn trong Mô hình Quan hệ Selection Operation
} Các Phép toán Đại số Quan hệ
} Phép chọn là phép toán một ngôi. Nó lấy một quan
hệ là input và trả về một quan hệ mới là output chứa } Các Thao tác Cập nhật
một tập con các bộ từ quan hệ input.
} Nghĩa là, quan hệ output có cùng lược đồ quan hệ (cùng số
lượng thuộc tính) như quan hệ input, nhưng có thể có ít bộ hơn.
} Để xác định các bộ nào có trong output, phép chọn
có một điều kiện cụ thể, được gọi là một predicate -
điều kiện chọn P, mà các bộ được trích chọn phải thoả mãn.
} Predicate tương đương với một điều kiện trong mệnh đề . Bài 3 9 TH107 Bài 3 11 TH107 Các phép toán quan hệ
Định nghĩa Hình thức Phép chọn } Phép chọn s } Đại số mở rộng
} Phép chọn tên quan hệ R với predicate P được ký } Phép chiếu mở rộng } Phép chiếu p
hiệu là sP(R) } OUTER JOIN } AGGREGATE FUNCTIONS và
} Định nghĩa: sP(R) = {t | t Î R Ù P(t)}
} Phép toán được hình thành từ GROUPING
lý thuyết tập hợp toán học: trong đó } phép hội È
} R là một quan hệ, t là một biến bộ } phép giao Ç
} P là một công thức (predicate) bao gồm } phép trừ -
} các operands là các hằng số hoặc thuộc tính
} phép tích Cartesian ´
} các phép so sánh: =, ≠, <, ≤, >, ≥
} các phép toán logic: Ù (AND), Ú (OR), Ø (NOT) } Phép kết
} Phép chọn có tính giao hoán: } Phép chia ¸
s (s (R)) = s (s (R)) = s (R) } Phép đổi tên r P1 P2 P2 P1 (P1 Ù P2) Bài 3 10 TH107 Bài 3 12 TH107 © Bui MT Diem, 2007 3 Ví dụ Phép chọn Phép Chiếu Project Operation Nvien ms_nv ten_nv cvu luong s cvu=‘KS’ (Nvien) N1 T. Vu KS 30000 Nvien ms_nv ten_nv cvu luong
} Phép chiếu là phép toán một ngôi. Nó lấy một N2 N. Thanh TK 40000 N1 T. Vu KS 30000
quan hệ là input và trả về một quan hệ mới là N3 V. Minh PT 50000 N4 T.Tram KS 30000
output chứa một tập con các thuộc tính của quan N4 T.Tram KS 30000 N6 M. Tuan KS 50000
hệ input và tất cả các bộ không trùng. N5 P. Thao KT 45000 s
} Quan hệ output có cùng số lượng các bộ như quan hệ N6 M. Tuan KS 50000
luong > 45000 Ú cv=‘TK’ (Nvien) Nvien ms_nv ten_nv cvu luong
input nếu không loại bỏ các thuộc tính làm cho trùng N7 T. Tam LT 60000 N2 N. Thanh TK 40000 N8 T. Thanh LT 55000
} Câu hỏi: Khi nào ta bảo đảm được không bao gờ có giá N3 V. Minh PT 50000
trị trùng khi thực hiện một phép chiếu? N6 M. Tuan KS 50000
} Ngoài quan hệ, phép chiếu lấy từ input tên các N7 T. Tam LT 60000
thuộc tính làm tên các thuộc tính trong quan hệ N8 T. Thanh LT 55000 output. Bài 3 13 TH107 Bài 3 15 TH107 Câu hỏi Phép chọn
Định nghĩa Hình thức Phép Chiếu Tgia ms_nv ms_da nvu tgian 1.
Liệt kê tất cả các nhân viên tham
} Phép chiếu trên quan hệ R với các thuộc tính N1 D1 Quan ly 12 gia dự án D2. output là A đượ 1, …, Ak c ký hiệu là pA (R) 1, …, Ak N2 D1 Phan tich 24 2.
Liệt kê các nhân viên tham gia
với tư cách quản lý dự án. } Định nghĩa: pA
(R) = {t[A1, …, Ak] | t Î R} N2 D2 Thiet ke 6 1, …, Ak 3.
Liệt kê các nhân viên tham gia trong đó N3 D3 Phan tich 10
dự án có người quản lý làm việc hơn 40 tháng.
} R là một quan hệ, t là một biến bộ N3 D4 Tu van 48
Cho biết kết quả trong mỗi trường } {A , …, A N4 D2 Thiet ke 18 1
k} là một tập con các thuộc tính của R mà trên hợp.
đó phép chiếu được thực hiện N5 D2 Phan tich 24
} Thứ tự của A , …, A N6 D4 Quan ly 48 1
k là quan trọng trong kết quả
} Số bộ (cardinality) của p
(R) không nhất thiết bằng N7 D3 Lap trinh 36 A1, …, Ak
với R vì các bộ trùng bị loại bỏ N7 D5 Thiet ke 23 N8 D3 Quan ly 40 } Ta có: } pA (p (R)) = p
(R), với k £ l 1, …, Ak A1, …, Al A1, …, Ak
} Phép chiếu không có tính giao hoán 14 TH107 Bài 1 Bài 3 16 TH107 © Bui MT Diem, 2007 4
Phép Chọn >< Phép Chiếu Câu hỏi Phép chọn A A A … A A A A … A 1 2 3 n 1 2 3 n Tgia ms_nv ms_da nvu tgian 1.
Chỉ trả về các thuộc tính N1 D1 Quan ly 12 nvu và tgian. Phép chọn s N2 D1 Phan tich 24
j, i ³ j i 2.
Chỉ trả về thuộc tính ms_nv. ... N2 D2 Thiet ke 6 ... N3 D3 Phan tich 10 3.
Chỉ trả về thuộc tính ms_da. N3 D4 Tu van 48
Cho biết kết quả với mỗi trường N4 D2 Thiet ke 18 A hợp. 1 A2 A3 … An A1 A2… Ak N5 D2 Phan tich 24 N6 D4 Quan ly 48 p N7 D3 Lap trinh 36 Phép chiếu i
j, n ³ k N7 D5 Thiet ke 23 ... ...
i ³ j N8 D3 Quan ly 40 n k Bài 3 17 TH107 19 TH107 Bài 3 Ví dụ Phép chiếu
Kết hợp Phép Chọn và Phép Chiếu Nvien ms_nv ten_nv cvu luong Nvien ms_nv ten_nv cvu luong
Kết hợp các phép toán cho ra một Nvien cvu N1 T. Vu KS 30000 N1 T. Vu KS 30000 biểu thức quan hệ. KS N2 N. Thanh TK 40000 N2 N. Thanh TK 40000 p TK
ten_nv (sluong<50000 Nvien) N3 V. Minh PT 50000 N3 V. Minh PT 50000 s PT
luong<50000 (p ten_nv, luong Nvien)) N4 T.Tram KS 30000 N4 T.Tram KS 30000 KT
p ten_nv (sluong<50000 (p ten_nv, luong Nvien)) N5 P. Thao KT 45000 N5 P. Thao KT 45000 LT N6 M. Tuan KS 50000 N6 M. Tuan KS 50000
Cho biết các truy vấn nào tương p N7 T. Tam LT 60000 cvu (Nvien) N7 T. Tam LT 60000
đương trong số các truy vấn trên. N8 T. Thanh LT 55000 N8 T. Thanh LT 55000 s
Hai truy vấn được gọi là tương cvu=‘KS’ (Nvien)
đương nếu chúng bảo đảm trả về
cùng một kết quả truy vấn với bất
kỳ thể hiện CSDL nào.
Bài 3 18 TH107 20 TH107 Bài 1 © Bui MT Diem, 2007 5 Các Phép toán Tập hợp Ví dụ
} Các phép toán chuẩn trên tập hợp cũng được áp Sinhvien Giaovien dụng trên quan hệ HT DC Ten Dchi
} Phép toán tập hợp là phép toán hai ngôi lấy hai Dinh Ba Tien 731 Tran Hung Dao, Q1, TP HCM Dinh Ba Tien 731 Tran Hung Dao, Q1, TP HCM
quan hệ R S làm input và tạo ra một quan hệ Le Quynh Nhu 291 Ho Van Hue, QPN, TP HCM Tran Thanh Tam 543 Mai Thi Luu, Q1, TP HCM output.
Sinhvien Ç Giaovien
Sinhvien È Giaovien
} R(A1, A2,…, An), S(B1, B2,…, Bn) phải khả hợp (union HT DC HT DC
compatible), nghĩa là: Dinh Ba Tien 731 Tran Hung Dao, Q1, TP HCM Dinh Ba Tien 731 Tran Hung Dao, Q1, TP HCM
} R S cùng cấp (cùng số lượng thuộc tính) Le Quynh Nhu 291 Ho Van Hue, QPN, TP HCM
} Với mọi i, dom(A Tran Thanh Tam 543 Mai Thi Luu, Q1, TP HCM
i) = dom(Bi)
} Các cột trong R S phải có thứ tự sao cho thứ tự của
các thuộc tính giống nhau tương ứng ở cả hai quan hệ
Sinhvien - Giaovien Giaovien - Sinhvien HT DC HT DC Le Quynh Nhu 291 Ho Van Hue, QPN, TP HCM Tran Thanh Tam 543 Mai Thi Luu, Q1, TP HCM Bài 3 21 TH107 Bài 3 23 TH107 Các Phép toán Tập hợp Phép tích
} Các phép toán trên tập hợp hội (union), giao (intersection) trừ
(difference) trên các quan hệ khả hợp R S có ý nghĩa như sau:
} Giả sử A = {a, b, c} B = {1, 2} }
Phép hội: tất cả các bộ (loại bỏ bộ trùng) trong R, trong S hoặc cả hai
thì trong lý thuyết tập hợp, phép tích được định
} R È S = {t | t Î R Ú t Î S} nghĩa là: }
Phép giao: tất cả các bộ vừa có trong R vừa có trong S
} R Ç S = {t | t Î R Ù t Î S} }
Phép trừ: tất cả các bộ có trong R nhưng không có trong S
} R S = {t | t Î R Ù t Ï S}
A ´ B = {(a, 1), (b, 1), (c, 1), (a, 2), (b, 2), (c, 2)}
trong đó R S là các quan hệ, t là một biến bộ Lưu ý:
} A ´ B là một tập gồm có các cặp (2-tuples) trong
R S ¹ S R
đó mỗi cặp bao gồm một thành phần từ A và
R Ç S = R – (R S) = S – (S R) R S một thành phần từ B 22 TH107 Bài 3 24 TH107 Bài 1 © Bui MT Diem, 2007 6
Phép tích trong Lý thuyết Tập hợp Phép tích
} Giả sử A = {a, b, c} B = {1, 2} C = {x, y} thì
} Được sử dụng để định nghĩa quan hệ.
Một thể hiện của quan hệ là một tập con của
phép tích các miền giá trị.
A ´ B = {(a, 1), (b, 1), (c, 1), (a, 2), (b, 2), (c, 2)}
} Cũng là một phép toán trong đại số quan hệ. và (A ´ B) ´ C =
Ta sử dụng nó để truy vấn.
{((a,1),x), ((b,1),x), ((c,1),x), ((a,2),x), ((b,2),x), ((c,2),x),
((a,1),y), ((b,1),y), ((c,1),y), ((a,2),y), ((b,2),y), ((c,2),y)} 25 TH107 Bài 1 27 TH107 Bài 1
Đại số Quan hệ >< Lý thuyết Tập hợp (Phép tích) (tt.) Phép tích Cartesian
} Cho A = {a, b, c} B = {1, 2} C = {x, y}
Cartesian Product/ Cross product / Cross Join
với phép tích (A ´ B) ´ C trong lý thuyết tập hợp=
} Phép tích Cartesian của hai quan hệ R (có bậc k1)
{((a,1),x), ((b,1),x), ((c,1),x), ((a,2),x), ((b,2),x), ((c,2),x),
và S (có bậc k2) được ký hiệu là R ´ S
((a,1),y), ((b,1),y), ((c,1),y), ((a,2),y), ((b,2),y), ((c,2),y)} } Định nghĩa:
R ´ S = {t | t[A1, …, Ak1] Î R Ù t[Ak1, …, Ak1+k2] Î S}
Codd đơn giản nó trong đại số quan hệ thành:
} Kết quả của R ´ S là một quan hệ có bậc (k1 + k2)
{(a,1,x), (b,1,x), (c,1,x), (a,2,x), (b,2,x), (c,2,x), (a,1,y),
và bao gồm tất cả (k1 + k2)-tuples trong đó mỗi
(b,1,y), (c,1,y), (a,2,y), (b,2,y), (c,2,y)}
bộ là một phép ghép (concatenation) của một bộ
bằng cách lược bỏ các dấu ngoặc.
của R và một bộ của S.
} Số bộ (cardinality) của R ´ S là |R| * |S| 26 TH107 Bài 1 Bài 3 28 TH107 © Bui MT Diem, 2007 7 Pban.ms_pb ten_pb ms_tp ms_da ten_da nsach Dan.ms_pb P1 Quan ly N8 D1 Thiet bi 150000 P1 Ví dụ Ví dụ P1 Quan ly N8 D2 Phat trien CSDL 135000 P2 P1 Quan ly N8 D3 CAD/CAM 250000 P3 P1 Quan ly N8 D4 Bao tri 310000 P2 r s
r ´ s P1 Quan ly N8 D5 CAD/CAM 500000 P2 P2 Tu van N7 D1 Thiet bi 150000 P1 A B B C D A r.B s.B C D Temp P2 Tu van N7 D2 Phat trien CSDL 135000 P2 (Pban.ms_pb, P2 Tu van N7 D3 CAD/CAM 250000 P3 1 2 ´ 2 5 6 1 2 2 5 6 ten_pb, ms_tp, P2 Tu van N7 D4 Bao tri 310000 P2 3 4 4 7 8 1 2 4 7 8 P2 Tu van N7 D5 CAD/CAM 500000 P2 ms_da, ten_da, P3 Tai vu N5 D1 Thiet bi 150000 P1 9 10 11 1 2 9 10 11 nsach, P3 Tai vu N5 D2 Phat trien CSDL 135000 P2 3 4 2 5 6 Dan.ms_pb) ¬ P3 Tai vu N5 D3 CAD/CAM 250000 P3 3 4 4 7 8 Pban ´ Dan P3 Tai vu N5 D4 Bao tri 310000 P2 P3 Tai vu N5 D5 CAD/CAM 500000 P2 3 4 9 10 11 P4 Phat trien null D1 Thiet bi 150000 P1 P4 Phat trien null D2 Phat trien CSDL 135000 P2 P4 Phat trien null D3 CAD/CAM 250000 P3 P4 Phat trien null D4 Bao tri 310000 P2 P4 Phat trien null D5 CAD/CAM 500000 P2 Bài 3 29 TH107 Bài 3 31 TH107 Ví dụ
Ý nghĩa của Phép tích Cartesian Nvien ms_nv ten_nv cvu luong ms_pb Pban ms_pb ten_pb ms_tp
} Phép tích: Một bộ của một quan hệ lần lượt kết N1 T. Vu KS 30000 P1 P1 Quan ly N8
hợp với một bộ của quan hệ kia N2 N. Thanh TK 40000 P2 P2 Tu van N7 N3 V. Minh PT 50000 P1 P3 Tai vu N5 } Thường thấy hơn, N4 T.Tram KS 30000 P3 P4 Phat trien null
} thay vì đơn giản là tích hai quan hệ, thì nhu cầu kết N5 P. Thao KT 45000 P4
chúng thành cặp chỉ theo các bộ khớp với nhau theo N6 M. Tuan KS 50000 P4 cách nào đó. N7 T. Tam LT 60000 P2 N8 T. Thanh LT 55000 null Dan ms_da ten_da nsach ms_pb D1 Thiet bi 150000 P1 D2 Phat trien CSDL 135000 P2 D3 CAD/CAM 250000 P3 D4 Bao tri 310000 P2 D5 CAD/CAM 500000 P2 30 TH107 Bài 2 Bài 3 32 TH107 © Bui MT Diem, 2007 8 Phép Kết Ra đời
Phép Kết: Để Thuận tiện } Giới hạn lại:
} Lưu ý: Phép kết R
A1=A2 S, trong đó A1 là một
} kết hợp từng phòng và dự án tương ứng mà phòng ban
thuộc tính của quan hệ R A2 là một thuộc tính
đó chủ trì: có thể thực hiện trực tiếp bằng cách dùng
của quan hệ S, được định nghĩa là sA1=A2 (R ´ S)
phép kết, không cần dùng đến phép tích
} Do đó, thực sự ta không “cần” phép kết. Bất kỳ Pban ms_pb ten_pb ms_tp Dan ms_da ten_da nsach ms_pb P1 Quan ly N8 D1 Thiet bi 150000 P1
truy vấn nào cần diễn đạt, ta luôn dùng ´ và s. P2 Tu van N7 D2 Phat trien CSDL 135000 P2
} Nhưng vì phép kết được dùng rất thường xuyên, P3 Tai vu N5 D3 CAD/CAM 250000 P3
nên nó được định nghĩa như là một phép toán, P4 Phat trien null D4 Bao tri 310000 P2 D5 CAD/CAM 500000 P2 để thuận tiện.
spban.ms_pb=dan.ms_pb(Pban ´ Dan) tương đương với Pban
pban.ms_pb=dan.ms_pb Dan Bài 3 33 TH107 35 TH107 Bài 1 Pban.ms_pb ten_pb ms_tp ms_da ten_da nsach Dan.ms_pb P1 Quan ly N8 D1 Thiet bi 150000 P1 Ví dụ P1 Quan ly N8 D2 Phat trien CSDL 135000 P2
Phép kết … với 6 phép so sánh P1 Quan ly N8 D3 CAD/CAM 250000 P3 P1 Quan ly N8 D4 Bao tri 310000 P2 } Svien ms_sv=ms_gv Gvien P1 Quan ly N8 D5 CAD/CAM 500000 P2 P2 Tu van N7 D1 Thiet bi 150000 P1 } Svien
Svien.tuoi>Gvien.tuoi Gvien Pban.ms_pb ten_pb ms_tp ms_da ten_da nsach Dan.ms_pb P2 Tu van N7 D2 Phat trien CSDL 135000 P2 P1 Quan ly N8 D1 Thiet bi 150000 P1 } Svien P2 Tu van N7 D3 CAD/CAM 250000 P3
Svien.luong≥Gvien.luong Gvien P2 Tu van N7 D2 Phat trien CSDL 135000 P2 P2 Tu van N7 D4 Bao tri 310000 P2 } P2 Tu van N7 D4 Bao tri 310000 P2 P2 Tu van N7 D5 CAD/CAM 500000 P2 P2 Tu van N7 D5 CAD/CAM 500000 P2 P3 Tai vu N5 D1 Thiet bi 150000 P1
} Phép kết đôi khi còn được gọi là q-Kết, trong đó P3 Tai vu N5 D3 CAD/CAM 250000 P3 P3 Tai vu N5 D2 Phat trien CSDL 135000 P2
q đại diện cho một trong 6 phép so sánh. P3 Tai vu N5 D3 CAD/CAM 250000 P3 P3 Tai vu N5 D4 Bao tri 310000 P2 P3 Tai vu N5 D5 CAD/CAM 500000 P2 P4 Phat trien null D1 Thiet bi 150000 P1 P4 Phat trien null D2 Phat trien CSDL 135000 P2 P4 Phat trien null D3 CAD/CAM 250000 P3 P4 Phat trien null D4 Bao tri 310000 P2 P4 Phat trien null D5 CAD/CAM 500000 P2 34 TH107 Bài 3 36 TH107 Bài 1 © Bui MT Diem, 2007 9 Phép q-Kết Các loại Phép Kết q-Join
} q-Kết là một phép kết tổng quát trong đó nó cho phép bất kỳ biểu
thức nào trong điều kiện F.
} Theta (q) kết là một dạng phát triển từ phép tích
} Tuy nhiên, có các phép kết đặc biệt hơn thường được sử dụng.
Cartesian. Thay vì lấy tất cả các phối hợp của các bộ
từ R S, ta chỉ lấy tập con của các bộ thỏa mãn điều
Phép kết bằng (equi-join)
Phép kết tự nhiên (natural join)
kiện F cho trước, q-Kết được ký hiệu là R F S } R } R * S F S } Định nghĩa:
} chỉ có phép bằng (=) trong
} chỉ có phép bằng (=) trên một R điều kiện F.
tập thuộc tính cùng tên của cả
F S= {t | t[A1, …, Ak1] Î R Ù t[Ak1, …, Ak1+k2] Î S Ù F(t)} trong đó R và S.
} kết quả trả về có các thuộc tính
} R S là các quan hệ, t là một biến bộ
kết của R S. Thuộc tính kết S
} các thuộc tính kết dư thừa của
xuất hiện lặp lại (dư thừa) trong
S sẽ bị loại bỏ khỏi quan hệ kết
} F(t) là một công thức được định nghĩa như là điều kiện của việc chọn quan hệ kết quả. quả. } Lưu ý: R
F S = sF (R ´ S) Bài 3 37 TH107 39 TH107 Bài 3 Ví dụ Ví dụ Cho các quan hệ R S u v
R(A, B) và S(B, C, D). A B B C D A B C D Cho biết R * S A B C B C D 1 2 2 5 6 1 2 5 6 * 1 2 3 2 3 4 3 4 4 7 8 3 4 7 8 6 7 8 2 3 5 A9 10 11 9 7 8 7 8 10
Lược đồ kết quả là (A, B, C, D)
Kết quả của R * S được định nghĩa là
A u.B u.C v.B v.C D 1 2 3 7 8 10
p R.A, R.B, S.C, S.D ((s R.B = S.B (R ´ S)) 38 TH107 Bài 1 40 TH107 Bài 1 © Bui MT Diem, 2007 10
Tại sao cần Phép Đổi tên? Ví dụ
} Để giải quyết tình huống nhập nhằng tên thuộc tính } Xét quan hệ Nvien(ms_nv, Nvien ms_nv ten_nv cvu luong ms_pb
} Đối với phép hội, phép trừ, phép kết tự nhiên, quan hệ kết quả sẽ ten_nv, cvu, luong, ms_pb) N1 T. Vu KS 30000 P1
lấy tên thuộc tính của quan hệ đầu tiên N2 N. Thanh TK 40000 P2
} Cho biết tên các nhân viên cùng
} Đối với phép tích, các thuộc tính được đặt tên theo cách: Tên-
phòng với nhân viên V. Minh. N3 V. Minh PT 50000 P1
qh.tên.tt, trong đó tên quan hệ được lấy từ quan hệ của thuộc tính N4 T.Tram KS 30000 P3
} Khi cùng một quan hệ xuất hiện nhiều lần trong một truy N5 P. Thao KT 45000 P4
vấn, sẽ giải quyết như thế nào? p 1 2 N6 M. Tuan KS 50000 P4
ms_pb (sten_nv=‘V. Minh’ Nvien) N7 T. Tam LT 60000 P2
sP (Nvien ´ p ms_pb (sten_nv=‘V. Minh’ Nvien) N8 T. Thanh LT 55000 null
Cho quan hệ R(A,B). Xét R ´ R
1 Tìm (các) phòng ban mà V. Minh làm việc
Tên của thuộc tính trong quan hệ kết quả?
2 Tìm tất cả các nhân viên làm việc ở phòng trên, ta cần tham chiếu
đến quan hệ Nvien một lần nữa.
Nếu ta sử dụng Nvien.mp trong P thì nó lại nhập nhằng với thể hiện
của quan hệ Nvien trong truy vấn mà thuộc tính tham chiếu tới.
41 TH107 Bài 3 43 TH107 Bài 1 Phép Đổi tên Ví dụ Phép Đổi tên Rename Operation 1
} Trả về một quan hệ với tên mới tên-qh-mới r
pten_nv(sNvien.ms_pb=M.ms_pb (Nvien ´ (pms_pb (sten_nv=‘V. Minh’ (rM(Nvien))))
tên-qh-mới(biểu-thức-quan-hệ)
} Trả về một quan hệ trong đó đổi tên các thuộc p tính tương ứng thành A ten_nv(Nvien
Nvien.ms_pb=M.ms_pb (pms_pb (sten_nv=‘V. Minh’ (rM(Nvien)))) 1, A2, …, An
rA1, A2, …, An(biểu-thức-quan-hệ) 2
} Trả về một quan hệ trong đó đổi tên các thuộc
tính tương ứng thành A1, A2, …, An với tên mới tên-qh-mới
1 Để tránh nhập nhằng, sử dụng phép đổi tên
rtên-qh-mới(A1, A2, …, An)(biểu-thức-quan-hệ)
2 Sử dụng phép kết thay cho phép tích và phép chọn
} Đơn giản hóa sử dụng phép gán:
tên-qh-mới(A1, A2, …, An) ¬ biểu-thức-quan-hệ 42 TH107 Bài 1 44 TH107 Bài 1 © Bui MT Diem, 2007 11 Câu hỏi Thực hành Phép chia Division Operator
} Cho : Nhanvien(tennv, manv, ma_nql, phg), Phongban
(tenphg, maphg, trphg), Thannhan(ma_nvien, tentn)
} Phép chia trên hai quan hệ R (A1, …, Am, B1, …, Bn) 1.
Tên nhân viên và tên người quản lý trực tiếp nhân viên đó
S (B1, …, Bn), được ký hiệu là R ¸ S 2.
Tên nhân viên và tên phòng mà nhân viên làm việc
Tên trưởng phòng và tên phòng mà người đó là trưởng phòng
} Các thuộc tính của S là một tập thuộc tính con của R. 3.
Tên những trưởng phòng có ít nhất một thân nhân
} Định nghĩa: Kết quả phép chia R ¸ S là 1 quan hệ 4.
Tên nhân viên không có thân nhân
trên lược đồ R S = (A1, …, Am)
1 Một quan hệ có thể có một tập thuộc tính kết để kết với chính quan hệ đó R Þ
¸ S = {t | t Î p A1, …, Am(R) Ù ("u Î S ($(t, u) Î R)) }
phải sử dụng phép đổi tên.
} R ¸ S, với các thuộc tính A , …, A 1
m, là một tập hợp chứa
Giữa 2 quan hệ có thể có nhiều hơn một tập thuộc tính kết mang ý nghĩa 2
tất cả các bộ t sao cho với mọi bộ u trong S, thì có một khác nhau.
bộ <t u> trong R.
3 Phép kết hay phép giao? 4 Phép trừ? 45 TH107 Bài 3 Bài 3 47 TH107 Tìm “Tất cả” Ví dụ Phép chia
} Cho biết kết quả trả về ứng với các truy vấn sau: CC Sp1 Sp2 Sp3 1.
Cho biết mã nhân viên tham gia đề án. mancc masp masp masp masp 2.
Cho biết mã nhân viên tham gia ít nhất một đề án. c1 s1 s2 s2 s1 3.
Cho biết mã nhân viên tham gia tất cả các đề án. c1 s2 s4 s2 4.
Cho biết mã nhân viên tham gia tất cả các đề án do phòng 4 c1 s3 s4 chủ trì. c1 s4 c2 s1
CC ¸ Sp1
CC ¸ Sp2
CC ¸ Sp3 c2 s2
Ta có thể sử dụng phép chia cho các truy vấn có từ “tất cả” (for all) mancc c3 s2 mancc mancc Zero Division? c1 c4 s2 c1 c1 c2 c4 s4 c4 c3 c4 46 TH107 Bài 3 © Bui MT Diem, 2007 12 Ví dụ Phép chia Ví dụ: Dạng 1 & 2 Phancong Dean Deanp4
} Xét quan hệ Nhanvien(honv,tenlot,tennv,manv,luong,phg) ma_nvien mada 999887777 30 mada mada
} Liệt kê họ tên và lương nhân viên làm việc ở phòng số 4. 123456789 1 999887777 10 1 10
p honv, tenlot, tennv, luong ( s phg (Nhanvien) ) = 4 1 123456789 2 987987987 10 2 30 Nv_p4 ¬ s (Nhanvien) 666884444 3 987987987 30 3 phg = 4 2 Kq ¬ p 453453453 1 987987987 1 10
honv, tenlot, tennv, luong (Nv_p4) 453453453 2
Phancong¸ Dean 987654321 30 20 Nv_p4 ¬ sphg (Nhanvien) = 4 3 333445555 2 987654321 20 30 ma_nvien
Kq (ho, lot, ten, luongcb) ¬ p honv, tenlot, tennv, luong (Nv_p4) 333445555 3 888665555 20 1 Dạng lồng 333445555 10
Phancong¸ p (s Dean) mada phong=4 333445555 20
2 Chuỗi các phép gán ma_nvien 999887777
3 hoặc đổi tên bằng cách liệt kê tên thuộc tính mới trong dấu ngoặc 987987987 51 TH107 Bài 1
Xây dựng các Biểu thức Phức tạp
Thứ tự Thực hiện Phép toán
} Kết hợp các phép toán ĐSQH bằng cách sử dụng dấu
1. các phép toán một ngôi: s, p, r
ngoặc và các quy tắc về thứ tự ưu tiên Lồng và dấu ngoặc } 3 loại ký hiệu:
2. phép tích Cartesian và phép kết: ´, 1.
Dạng lồng: Tạo một biểu
• kết quả của một phép toán ĐSQH
thức ĐSQH bằng cách lồng là một quan hệ
3. phép giao, phép chia: Ç, ¸ các phép toán với nhau
• các phép toán ĐSQH có thể được
lồng ghép nhau như các hàm 2. Chuỗi các phép gán: Áp
• biểu diễn dấu ngoặc để diễn đạt
dụng tuần tự từng phép
4. phép hội và phép trừ: È, -
thứ tự thực hiện phép toán
toán một, ở mỗi lần áp
dụng phép toán đặt tên
Dấu ngoặc có thể được dùng để thay đổi thứ tự Chuỗi các Phép Gán cho quan hệ trung gian của các phép toán.
bằng cách thực hiện việc
• Tạo các tên quan hệ tạm gán tên
• Có thể thực hiện việc ngầm đổi
tên bằng cách liệt kê các thuộc 3. Biểu diễn dạng cây tính 50 TH107 Bài 3 52 TH107 Bài 3 © Bui MT Diem, 2007 13 Dạng 3: Cây Biểu thức Ví dụ: Dạng 3 } Nút lá: là các operands } Xét quan hệ pma_nvien
} biến đại diện cho các quan hệ, trong trường hợp đặc Phancong(ma_nvien, soda,
biệt có thể là các quan hệ hằng thoigian)
} Liệt kê mã nhân viên tham s
} Nút trong: là các phép toán, áp dụng cho (các) d<>soda
gia các đề án khác nhau với nút con. cùng thời gian. * rP(ma_nvien, d, Phancong thoigian) Phancong 53 TH107 Bài 1 55 TH107 Bài 1 Ví dụ: Dạng 3 Các Phép toán mở rộng } Xét quan hệ È } Phép chiếu mở rộng Thannhan(ma_nvien, tentn, ngaysinh, quanhe), } Grouping và aggregation Phancong(ma_nvien, soda), } Outer join
} Liệt kê mã nhân viên có con p p ma_nvien ma_nvien
hoặc nhân viên tham gia đề án. squanhe=‘con trai’ Phancong Ú quanhe=‘con gai’ Thannhan 54 TH107 Bài 1 56 TH107 Bài 1 © Bui MT Diem, 2007 14 Phép Chiếu Mở rộng Hàm Kết hợp và Gom nhóm
} Sử dụng như phép chiếu p
} Hàm kết hợp - Aggregate Functions nhận vào tập hợp
L . Thay vì L chỉ liệt kê
danh sách các thuộc tính, thì L có thể chứa các
giá trị và trả về một giá trị đơn.
avg(average value): giá trị trung bình
biểu thức số học liên quan đến các thuộc tính,
min(minimum value): giá trị nhỏ nhất chẳng hạn:
max(maximum value): giá trị lớn nhất 1.
các biểu thức trên thuộc tính, vd. A+B
sum (sum of values): tính tổng
count (number of values): đếm số mẫu tin 2.
xuất hiện trùng các thuộc tính } Định nghĩa: p F (E) 1, F2, …, Fk
} trong đó E là biểu thức đại số quan hệ SUM(A) = 7 R = ( A B )
} F , F , …, F COUNT(A) = 3 1 2 1 2
k là các biểu thức số học có liên quan đến
hằng và thuộc tính trong lược đồ E. MAX(B) = 4 3 4 AVG(B) = 3 3 2 Bài 3 57 TH107 59 TH107 Bài 3 Ví dụ Hàm Kết hợp và Gom nhóm Vd1 Vd2
} Phép toán gom nhóm - Grouping ℱ trong Đ } Cho quan hệ SQH: Thetindung(msthe, trigiathe, R = ( A B ) ℱ sotiensd) 1 2
G1, G2, …, Gn
F1 (A1), F2 (A2), …, Fn (An) (E)
} E là biểu thức đại số quan hệ
} Tìm số tiền còn lại trong thẻ 3 4 p
} Gi là tên thuộc tính gom nhóm (có thể không có) msthe, trigiathe - sotiensd (Thetindung) } Fi là hàm gom nhóm p A+B A1 A2
A+B,A,A (R) = ( )
} A là tên thuộc tính tính toán trong hàm gom nhóm F i i 3 1 1
} Kết quả có một bộ ứng với mỗi nhóm: 7 3 3 1.
Các thuộc tính gom nhóm và 2.
Kết quả của các hàm kết hợp thực hiện trên nhóm đó 58 TH107 Bài 3 Bài 3 60 TH107 © Bui MT Diem, 2007 15 Ví dụ: Outer Join Count_manv Avg_luong 1 } Có ba loại kết ngoài:
} Xét quan hệ Nhanvien(honv, 8 35125 tenlot, tennv, manv, luong,
} Left outer join: R P S ma_nql, phg). Cho biết:
} Kết quả sẽ chứa tất cả các bộ của R khớp với các bộ của S. Với manv … luong ma_nql phg
một bộ thuộc R, nếu không tìm thấy bộ nào khớp với S, thì các 1.
Tổng số nhân viên của công
bộ này cũng được xuất hiện trong kết quả cuối cùng và giá trị 123456789 … 30000 333445555 5 ty và lương trung bình.
thuộc tính tương ứng của S sẽ được đặt là null. 333445555 … 40000 888665555 5 2. Số lượng nhân viên và } Right outer join: R P S 666884444 … 38000 333445555 5
lương trung bình của nhân
} Kết quả sẽ chứa tất cả các bộ của S khớp với các bộ của R. Với viên theo từng phòng
một bộ thuộc S, nếu không tìm thấy bộ nào khớp với R, thì các 453453453 … 25000 333445555 5
bộ này cũng được xuất hiện trong kết quả cuối cùng và giá trị 999887777 … 25000 987654321 4
thuộc tính tương ứng của R sẽ được đặt là null 1 ℱ (Nhanvien) COUNT(manv), AVG(luong) 987654321 … 43000 888665555 4 } Full outer join: R P S ℱ 2 (Nhanvien) phg COUNT(manv), AVG(luong)
} Tất cả các bộ của R và S đều có trong kết quả cho dù chúng có 987987987 … 25000 987654321 4
bộ khớp với quan hệ kia hay không. phg Count_manv Avg_luong 888665555 … 55000 Null 1 5 4 33250 2 4 3 31000 1 1 55000 61 TH107 Bài 1 Bài 3 63 TH107 Outer Join Ví dụ
} Giả sử cần thực hiện phép kết R S. P } p (Nhanvien Phongban) honv, tenlot, tennv, tenphg manv = trphg
} Một bộ của R mà không có bộ trong S để thực hiện phép } p (Nhanvien Phongban)
kết thì gọi là “dangling” (“mồ côi”) honv, tenlot, tennv, tenphg manv = trphg } p (s (Nhanvien } tương tự đối với S honv, tenlot, tennv, tenphg tenphg <> null manv = trphg Phongban))
} Phép kết ngoài (Outer join) bảo đảm giữ các bộ “mồ côi”
bằng cách thêm vào giá trị NULL trong kết quả. honv tenlot tennv tenphg honv tenlot tennv tenphg Dinh Ba Tien Null Nguyen Thanh Tung Nghien Cuu Nguyen Thanh Tung Nghien cuu Tran Hong Quang Dieu Hanh Bui Ngoc Hang Null R = ( A B ) S = ( B C ) R S = ( A B C ) Pham Van Vinh Quan Ly Le Quynh Nhu Null 1 2 2 3 1 2 3 Nguyen Manh Hung Null 4 5 6 7 4 5 Null Tran Thanh Tam Null Null 6 7 Tran Hong Quang Dieu hanh Pham Van Vinh Quan ly 62 TH107 Bài 1 64 TH107 Bài 1 © Bui MT Diem, 2007 16 Dàn bài Thêm
} Ngôn ngữ Truy vấn trong Mô hình Quan hệ
} Hoặc nêu ra một bộ cần chèn, hoặc viết một câu truy vấn
mà kết quả là một tập hợp các bộ cần chèn
} Các Phép toán Đại số Quan hệ
} Trong ĐSQH, thao tác chèn được diễn đạt như sau: } Các Thao tác Cập nhật
r ¬ r È E
trong đó r là một quan hệ và E là một biểu thức ĐSQH. Vd.,
´Phân công cho nhân viên 123456789 làm thêm đề án mã số 20 với số giờ 10.
Phancong ¬ Phancong È {(‘123456789’, 20,10)} Bài 3 65 TH107 67 TH107 Bài 3
Thao tác Cập nhật trên Quan hệ Xóa
} Nội dung của CSDL có thể được cập nhật bằng
} Yêu cầu xóa được diễn đạt tương tự như câu truy vấn, chỉ khác
ở chỗ, thay vì hiển thị các bộ kết quả với người sử dùng, thì
cách dùng các thao tác Thêm, Xóa, Sửa
các bộ được chọn bị xóa khỏi CSDL.
} Tất cả các thao tác này được diễn đạt thông qua
} Chỉ có thể xóa toàn bộ bộ, không thể xóa các giá trị trên các phép toán gán. thuộc tính nào đó.
} Thao tác xóa được diễn đạt trong ngôn ngữ ĐSQH như sau:
r new ¬ các phép toán trên (rold)
r ¬ r E
trong đó r là một quan hệ và E là một câu truy vấn ĐSQH.
´Xóa tất cả những phân công đề án cho nhân viên 123456789
Phancong ¬ Phancong – (s ma_nvien = ‘123456789’ (Phancong))
´Xóa tất cả những phân công đề án mà địa điểm đề án ở “HA NOI”
r1 ¬ s ddiem_da = ‘Ha Noi’ (Phancong soda = mada Dean)
r2 ¬ p ma_nv, soda, thoigian (r1)
Phancong ¬ Phancong – r2 Bài 3 66 TH107 68 TH107 Bài 3 © Bui MT Diem, 2007 17 Sửa
Tại sao ta sử dụng ĐSQH?
} Để cập nhật, sử dụng phép chiếu tổng quát hóa như sau:
} Được định nghĩa một cách toán học (trong đó quan hệ là r ¬ p tập hợp) F (r) 1, F2, …, Fn
mỗi Fi có giá trị trả về là giá trị mới cho thuộc tính thứ i của r, thuộc
} Được dùng bên trong các HQTCSDL
tính thứ i có thể giữ nguyên (nếu không muốn cập nhật) hoặc sẽ
} Có thể chứng minh hai biểu thức quan hệ tương đương
được cập nhật với giá trị mới đó.
} Fi là một biểu thức, bao gồm hằng và thuộc tính của r, để đưa ra
giá trị mới cho thuộc tính đó. Vd., s (s R) º s (s R) º s R cond1 cond2 cond2 cond1 cond1 Ù cond2
´Tăng thời gian làm việc của tất cả nhân viên lên 1.5 lần º (s R) Ç (s R) cond1 cond2
Phancong ¬ p ma_nv, soda, thoigian * 1.5 (Phancong) R1 R2 º s (R1 cond cond ´ R2) s R º (s R) R) cond1 È (s Ú cond2 cond1 cond2 69 TH107 Bài 3 71 TH107 Bài 3
Tập Đầy đủ các Phép toán ĐSQH “AND”, “OR”, “NOT”
} Tất cả các phép toán được thảo luận ở trên có thể được s
mô tả dựa trên 5 phép toán cơ sở như {
cond1 Úcond2 R º (s cond1 R) È (s cond2 R) s, p, È, -, ´}
→ tập hợp {s, p, È, -, ´} được gọi là tập đầy đủ các phép toán ĐSQH
s cond1 Ù cond2 R º (s cond1 R) Ç (s cond2 R)
s cond1 Ù Øcond2 R º (s cond1 R) – (s cond2 R)
R Ç S = R - (R - S) R P S = s P (R ´ S) R *P S = p (s ttinh P (R ´ S))
R ¸ S = pA (R) - pA ((pA (R) ´ S) - R) 70 TH107 Bài 3 72 TH107 Bài 1 © Bui MT Diem, 2007 18 Kết luận
} Đại số quan hệ: là một tập hợp các phép toán để
ánh xạ quan hệ thành quan hệ.
} Operational, theo nghĩa ta phải mô tả tường minh thứ
tự thực hiện của các phép toán
} Là một tập phép toán đóng! Có thể ghép phép toán.
} Các phép toán cơ sở gồm có: s, p, ´, È, -
} Các phép toán khác định nghĩa trên các phép
toán cơ sở: Ç, , ¸ Bài 3 73 TH107 © Bui MT Diem, 2007 19