Đạisố quan hệfit.mta.edu.vn/files/danhsach/ch03_data relation model...phép nối với θlà...
TRANSCRIPT
Đại số quan hệ
Giới thiệu
Đại số quan hệĐại số quan hệ
Phép toán tập hợp
Phép chiếu
Phép chọnp ọ
Phép tích Cartesian
Phép nối: Theta join Equi join Natural joinPhép nối: Theta join, Equi join, Natural join
Phép chia
Các phép toán khác- 58 -
Nhận xét
Tập các phép toán được gọi là tậpđầy đủ các phép toán đại số quan hệ
Cá hé t á ó thể biể diễ hú
, , , ,σ π × − ∪
- Các phép toán có thể biển diễn qua chúng
Chúng ta cùng xem xét các phép nối sau đây,mặc dù chúng không cung cấp thêm sức mạnhnào cho đại số quan hệ - nhưng chúng là cáccâu lệnh truy vấn đã được đơn giản hóa và haycâu lệnh truy vấn đã được đơn giản hóa và hayđược sử dụng.Đọc kỹ các lưu ý về điều kiện sử dụng các phépọ ỹ ý ệ ụ g p pnối.
- 59 -
Phép nốiVới θ là phép so sánh , ta có địnhnghĩa phép nối.Ch à là h i hệ t ứ t ê á
, , , , ,≠ = < > ≤ ≥
Cho r và s là hai quan hệ tương ứng trên cáclược đồ rời nhau R và SPhép kết nối của các quan hệ r và s ký hiệu: | |r s><Phép kết nối của các quan hệ r và s, ký hiệu: là một quan hệ trên gồm những bộ thuộc tích Đềcác của r và s sao cho thành phần thứ i của quan
| |i jr sθ><R S∪
hệ r có liên hệ θ với thành phần thứ j của quan hệ s
Vậy kết nối θ: là chọn trong r×s các| |i jr sθ><bộ mà các thành phần thứ i, j của các quan hệ r,s tương ứng thỏa mãn iθj, tức là
| |i jθ
- 60 -
| | { : ( )}i jr s t r s tθ θ>< = ∈ ×Lưu ý: ở đây ký hiệu là lược đồ quan hệ tạo bởi các thuộc tính của R hợp
với các thuộc tính của S.R S∪
Phép nối – Một cách định nghĩa khácĐ ợc dùng để tổ hợp 2 bộ có liên q an từ 2 q anĐược dùng để tổ hợp 2 bộ có liên quan từ 2 quanhệ thành 1 bộKý hiệu | |R S><Ký hiệu
Kết ả ủ hé ối là ột hệ Q
| |R S><
1 2 1 2( , ,..., ) | | ( , ,..., )n mR A A A S B B B><Kết quả của phép nối là một quan hệ Q- Có n+m thuộc tính- Mỗi bộ của Q là tổ hợp của 2 bộ trong R và S,
1 2 1 2( , ,..., , , ,..., )n mQ A A A B B BMỗi bộ của Q là tổ hợp của 2 bộ trong R và S,thỏa mãn một số điều kiện nối nào đó• Có dạng hoặc
ủ ủ Sθi jA B θi j
• Ai là thuộc tính của R, Bj là thuộc tính của S• Ai và Bj có cùng miền giá trị• i j là số thứ tự của thuộc tính trên các quan
j
i, j là số thứ tự của thuộc tính trên các quanhệ R và S tương ứng
• θ là phép so sánh , , , , ,≠ = < > ≤ ≥
Phân loại phép nối
Nối theta (theta join) là phép nối có điều kiện- Ký hiệu
C i là điề kiệ ối t ê th ộ tí hCR S
- C gọi là điều kiện nối trên thuộc tính(Nối theta == Tích đề các + phép chọn ở mục trước)
Nối bằng (equi join) khi C là điều kiện so sánh bằngNối bằng (equi join) khi C là điều kiện so sánh bằng
Nối tự nhiên (natural join)
Lưu ý: Với phép nối theta và nối bằng, yêu cầu R và S không có thuộc tính chung.
Nối tự nhiên (natural join)- Ký hiệu là quan hệ trên lược đồ
gồm các phần tử t mà t chiếu lên R là phần tử R S R S∪
g p pthuộc r còn chiếu của t lên S là phần tử của s
- Vậy { : . , . }r s t t R r t S s= ∈ ∈Lưu ý: Với phép nối tự nhiên thường yêu cầu R và S phải có ít nhất một thuộc
- 62 -
Lưu ý: Với phép nối tự nhiên, thường yêu cầu R và S phải có ít nhất một thuộctính chung. Khi thực hiện nối, ta chỉ lấy các bộ trên R và S có cùng giá trị trênthuộc tính chung này. Nếu R và S không có thuộc tính chung, kết quả trả về làtích đề các.
Ví dụ phép nối theta
- 63 -
Lưu ý: Với phép nối theta và nối bằng, yêu cầu R và S không có thuộc tính chung.
Ví dụ phép nối theta (wikipedia)
Giả sử có 2 quan hệ xe(car) và thuyền(boat), giảsử 1 khách hàng muốn mua cả xe và thuyền
h khô ố tiê hiề tiề à th ềnhưng không muốn tiêu nhiền tiền vào thuyềnhơn xe.
- 64 -Lưu ý: Với phép nối theta và nối bằng, yêu cầu R và S không có thuộc tính chung.
Ví dụ phép nối bằng
- 65 -
Lưu ý: Với phép nối theta và nối bằng, yêu cầu R và S không có thuộc tính chung.
Ví dụ phép nối tự nhiên
Lưu ý: Với phép nối tự nhiên thường yêu cầu R và S phải có ít nhất một thuộc
- 66 -
Lưu ý: Với phép nối tự nhiên, thường yêu cầu R và S phải có ít nhất một thuộctính chung. Khi thực hiện nối, ta chỉ khớp các bộ trên R và S có cùng giá trị trênthuộc tính chung này. Nếu R và S không có thuộc tính chung, kết quả trả về làtích đề các.
Phép nối nửaồCho các quan hệ r và s trên các lược đồ R và S
tương ứngNối nửa của các quan hệ r và s ký hiệu |r s><Nối nửa của các quan hệ r và s, ký hiệu là một quan hệ trên lược đồ R gồm các bộ của chiếu lên R. Tức là
|r s><| |r s><
Ví dụ:| { : ( | | ). }r s t t r s R>< = ∈ ><
|r s><srA B Ca b c
B C Db c d
A B Ca b c
|r s><sr
d b cd b fc a d
b c ea d f
d b cc a d
- 67 -
c a d
Lưu ý: Do nối nửa dựa trên phép nối tự nhiên, yêu cầu R và S phải có ít nhất mộtthuộc tính chung. Khi thực hiện nối, ta chỉ khớp các bộ trên R và S có cùng giá trịtrên thuộc tính chung này.
Ví dụ 10
Cho biết nhân viên có lương hơn lương của nhânviên “Tùng”
Q hệ NHANVIEN- Quan hệ: NHANVIEN- Thuộc tính: LUONG
LUONG TENNV='TUNG'R(L_TUNG) ( (NHANVIEN))π σ←
LUONG>L_TUNGKQ NHANVIEN|><| R←
[Nối theta]
- 68 -
Ví dụ 11
Với mỗi nhân viên, hãy cho biết thông tin củaphòng ban mà họ đang làm việc
Q hệ NHANVIEN PHONGBAN- Quan hệ: NHANVIEN, PHONGBAN
[(1) Sử dụng nối tự nhiên; (2) sử dụng nối bằngLưu ý điều kiện sử dụng 2 phép nối này]
- 69 -
Ví dụ 12
Với mỗi phòng ban, hãy cho biết các địa điểmcủa phòng ban đó
Q hệ PHONGBAN DDIEM PHG- Quan hệ: PHONGBAN, DDIEM_PHG
- 70 -
Ví dụ 13
Với mỗi phòng ban, hãy cho biết thông tin củangười trưởng phòng
Q hệ PHONGBAN NHANVIEN- Quan hệ: PHONGBAN, NHANVIEN
- 71 -
Ví dụ 14
Cho biết lương cao nhất trong công ty- Quan hệ: NHANVIEN
Th ộ tí h LUONG- Thuộc tính: LUONG
- 72 -
Ví dụ 15
Cho biết phòng ban có cùng địa điểm với phòng 5- Quan hệ: DDIEM_PHG
- 73 -
Tập đầy đủ các phép toán ĐSQH
Tập các phép toán được gọi là tậpđầy đủ các phép toán đại số quan hệ
Cá hé t á ó thể biể diễ hú
, , , ,σ π × − ∪
- Các phép toán có thể biển diễn qua chúng- Ví dụ:
(( ) ( ))| | ( )C C
R S R S R S S RR S R Sσ∩ = ∪ − − ∪ −>< = ×C C
- 74 -
Đại số quan hệ
Giới thiệu
Đại số quan hệĐại số quan hệ
Phép toán tập hợp
Phép chiếu
Phép chọnp ọ
Phép tích Cartesian
Phép nối: Theta join Equi join Natural joinPhép nối: Theta join, Equi join, Natural join
Phép chia
Các phép toán khác- 75 -
Phép chia
Cho lược đồ quan hệ R(A1,A2,…,An), S là lược đồcon của R. Giả sử r,s là các quan hệ trên R, St ứtương ứng.
Phép chia của quan hệ r cho quan hệ s, ký hiệuồ ồlà là quan hệ trên lược đồ R-S gồm các
phần tử r sao cho mọi phần tử và ghép tvới u ta được phần tử thuộc r
r s÷u s∈
với u ta được phần tử thuộc r.
{ : & , }r s t u s t u r÷ = ∀ ∈ < >∈
Một cách vắn tắt: Kết quả trả về là [các bộ vớicác thuộc tính chỉ có trong R] sao cho sự kết hợp
- 76 -
các thuộc tính chỉ có trong R] sao cho sự kết hợpcủa nó với [các bộ trong S] có mặt trong R
Phép chia – Một cách định nghĩa khác
Được dùng để lấy ra một số bộ trong quan hệ Rsao cho thỏa mãn với tất cả các bộ trong quan hệ S
Ký hiệu- R(Z) và S(X)
R S÷( ) ( )• Z là tập thuộc tính của R, X là tập thuộc tính của
S• X Z⊆•
Kết quả của phép chia là một quan hệ T(Y)- Với Y = Z-X
X Z⊆
Với Y Z X- Có t là một của T nếu với mọi bộ , tồn
tại bộ thỏa 2 điều kiệnSt S∈
Rt R∈
- 77 -
( )( ) ( )
R
R S
t Y tt X t X
==
Ví dụ
- 78 -
Ví dụ
A B C D E
RD E
S R S÷
α a α a 1
α a γ a 1
α a γ b 1
a 1
b 1
β a γ a 1
β a γ b 3
γ a γ a 1γ a γ a 1
γ a γ b 1
γ a β b 1
- 79 -
Ví dụ 16
Cho biết mã nhân viên tham gia tất cả các đề án- Quan hệ: PHANCONG, DEAN
Th ộ tí h MANV- Thuộc tính: MANV
DA (DEAN)← MADA
MANV,MADA
DA (DEAN)NV_DEAN (PHANCONG)
ππ
←←
MA_NV (NV_DEAN÷DA)MANVπ←
- 80 -
Ví dụ 17
Cho biết mã nhân viên tham gia tất cả các đề ándo phòng số 4 phụ trách
Q hệ NHANVIEN PHANCONG DEAN- Quan hệ: NHANVIEN, PHANCONG, DEAN- Thuộc tính: MANV- Điều kiện: PHONG=4Điều kiện: PHONG 4
MADA 4P4_DA ( (DEAN))PHGπ σ =← MADA 4
MANV,MADA
_ ( ( ))NV_DEAN (PHANCONG)
MA NV (NV DEAN÷P4 DA)
PHG
π
π
←
←MA_NV (NV_DEAN÷P4_DA)MANVπ←
- 81 -
Phép chia
Biểu diễn phép chia thông qua tập đầy đủ củacác phép toán ĐSQH
1T ( )Rγπ←1
2 1
( )
T TT (T )
SR
γ
π← ×←3 2
1 2
T (T )
T T T
Rγπ← −
← −
- 82 -
Đại số quan hệ
Giới thiệuĐại số quan hệPhé t á tậ hPhép toán tập hợpPhép chiếuPhép chọnPhép chọnPhép tích CartesianPhép nối: Theta join, Equi join, Natural joinPhé hiPhép chiaCác phép toán khác- Hàm kết hợp (Aggregation function)
- Phép gom nhóm (Grouping)
- Phép kết ngoài (Outer join)- 83 -
Hàm kết hợp
Nhận vào tập hợp các giá trị và trả về một giá trịđơn
AVG- AVG- MIN- MAXMAX- SUM- COUNT
- 84 -
Ví dụ
A BA B
1 2
3 4
SUM(B)=10AVG(A)=1.5MIN(A)=13 4
1 2
1 2
MAX(B)=4COUNT(A)=4
1 2
- 85 -
Phép gom nhóm
Được dùng để phân chia quan hệ thành nhiềunhóm dựa trên điều kiện gom nhóm nào đó
Ký hiệu
1 2 ( ) ( ) ( ), ,..., ( )F A F A F AG G G Eℑ
- E là biểu thức đại số quan hệcác thuộc tính gom nhóm
1 1 2 21 2 ( ), ( ),..., ( ), ,..., ( )n nn F A F A F AG G G Eℑ
G G G- các thuộc tính gom nhóm- các hàm- các thuộc tính tính toán trong hàm F
1 2, ,..., nG G G1 2, ,..., nF F F1 2, ,..., nA A A ộ g1 2 n
- 86 -
Ví dụ
A B C
R
( )RℑA B C
α 2 7
α 4 7
( ) ( )SUM C Rℑ
α 4 7
β 2 3
β 2 10
( ) ( )A SUM C Rℑβ 2 10
- 87 -
Ví dụ 18
Tính số lượng nhân viên và lương trung bình củacả công ty
COUNT(),AVERAGE(LUONG) (NHANVIEN)ℑ
- 88 -
Ví dụ 19
Tính số lượng nhân viên và lương trung bình củatừng phòng ban
MAPHG COUNT(),AVERAGE(LUONG) (NHANVIEN)ℑ
- 89 -
Phép nối ngoài
Mở rộng phép nối ngoài để tránh mất mát thông tin- Thực hiện phép nối
Lấ thê á bộ khô thỏ điề kiệ ối- Lấy thêm các bộ không thỏa điều kiện nối
ốCó 3 hình thức nối- Nối ngoài trái (chỉ các bộ bên trái được điền null)
- Nối ngoài phải (chỉ các bộ bên phải được điền null)- Nối ngoài phải (chỉ các bộ bên phải được điền null)
- Nối ngoài đầy đủ (cả 2 phía được điền null)
Đôi khi còn được ký hiệu
- 90 -
Phép nối ngoài
Ví dụ:
- 91 -
VD Phép nối ngoài vs nối tự nhiên
Cho 2 quan hệ instructor1 và teaches1
ốNối tự nhiên
Nối ngoài trái
Nối ngoài đầy đủ
Ví dụ 20
Cho biết tên nhân viên và tên phòng ban mà họphụ trách (nếu có) – tức là nếu không có thì ta đểt ố hò b h h t á h!trống mục phòng ban họ phụ trách!- Quan hệ: NHANVIEN, PHONGBAN- Thuộc tính: TENNV, TENPHThuộc tính: TENNV, TENPHR1 NHANVIEN MANV=TRPHGPHONGBAN
HONV,TENNV,TENPHG 1KQ (R )π←
- 93 -
Bài tập 1 – Thực hiện các phép toán
P Q R
T1P Q R
T2
10 a 515 b 825 a 6
10 b 625 c 310 b 525 a 6 10 b 5
|><|T T1 21 . . 2|><|T P T AT T=
1 21 . . 2|><|T Q T BT T=
1 2 1 21 ( . . AND . . ) 2|><| T P T A T R T CT T= =
1 21 . . 2 T P T AT T=
- 94 -1 21 . . 2 T Q T BT T=
Bài tập 2
Cho CSDL COONGTY gồm các lược đồ- NHANVIEN(MANV, HONV, TENNV, NS, GT, DCHI,
LUONG MANGS MADV)LUONG, MANGS, MADV)- DONVI(MADV, TENDV, MANQL, NGAY_BD)- DEAN(MADA, TENDA, DD DA, MADV)DEAN(MADA, TENDA, DD_DA, MADV)- THANNHAN(MANV, TEN_TN, NS, GT, QUANHE)- NV_DEAN(MANV, MADA, SOGIO) [revised on 09/20]
DONVI DD(MADV DD)- DONVI_DD(MADV, DD)
- 95 -
Bài tập 2 – Yêu cầu
Đưa ra tên và địa chỉ của tất cả các nhân viên làmviệc cho đơn vị.Với mỗi dự án có địa điểm hà Nôi liệt kê mã số dựVới mỗi dự án có địa điểm hà Nôi, liệt kê mã số dựán, mã số của đơn vị kiểm soát, tên, địa chỉ và ngàysinh của người quản lý đơn vị.
ấTìm tên của nhân viên làm việc trên tất cả các dự ándo đơn vị có mã số 5 kiểm soát.Tạo ra một danh sách các mã số dự án đối vwois cácạ ộ ựdự án có 1 nhân viên hoặc một người quản lý đơn vịkiểm soát dự án có tên là ‘Long’Đưa ra tên của tất cả các nhân viên có nhiều hơnĐưa ra tên của tất cả các nhân viên có nhiều hơnhoặc bằng 2 người phụ thuộc.Đưa ra các nhân viên không có người phụ thuộc.
ủ ả ấĐưa ra tên của những người quản lý dự án có ít nhấtmột người phụ thuộc.
- 96 -