Bài giảng Mô hình dữ liệu quan hệ và đại số quan hệ

Tóm tắt Bài giảng Mô hình dữ liệu quan hệ và đại số quan hệ: ... Exam 4 HN 2 PM Tinh cuoc 8 CT 5 PM Ban do 10 HCM 2 Nghien cuu Mobile IP 16 DN 5 Đại số Quan hệ Ngôn ngữ truy vấn  Query Language (QL): ngôn ngữ cho phép user thực hiện và rút trích dữ liệu từ CSDL.  QL ≠PL (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. ... s Example 2 A B C D E  1  10 +  1  10 +  1  20     A B C D E  1  10 + 1 10  2  10 +  2  10 +  2  20   2  10  r  s  2  10 +  2  20  A=C(r  s) Example 3  Kết hợp từng bộ PHONGBAN với bộ NHANVIEN của người quản lý (trưởng phòng). Với mỗi phòng ban, ... kết hợp NHANVIEN(1).MA_NQL=NHANVIEN(2).MANV NHANVIEN(2) giám sát NHANVIEN(1) Phép chiếu tổng quát  Mở rộng phép chiếu bằng cách cho phép sử dụng các hàm số học trong danh sách chiếu.  F1, F2, , Fk(E)  E là biểu thức đại số quan hệ. F , F , , F là các biểu thức số học có liên quan  1 2 ...

pdf71 trang | Chia sẻ: havih72 | Lượt xem: 215 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Mô hình dữ liệu quan hệ và đại số quan hệ, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
- referential intergrity.
Các đặc điểm của Mô hình 
Quan hệ
 Không có bộ nào trùng nhau – phải được kiểm tra khi:
 Thêm 1 bộ mới.
 Sửa giá trị.
 Một quan hệ mới được tạo ra là bản thu gọn của quan hệ cũ.
 Ngầm định là khóa chính luôn tồn tại.
 Thứ tự của các bộ trong r không quan trọng.
 Một bảng chỉ là một đại diện của một quan hệ
 Tuy nhiên, lưu trữ vật lý của một quan hệ phải có thứ tự.
 Giá trị trong một bộ:
 Tất cả các giá trị được xem là atomic (không thể phân chia được 
nữa).
 Giá trị không biết cũng phải được thể hiện:
 Chúng được thay thế bằng giá trị đặc biệt null.
 Null có nhiều ý nghĩa: “không biết”, “không quan tâm”, “không thể 
áp dụng một bộ đó”
Thao tác trên CSDL Quan hệ
 Có hai loại thao tác:
 Cập nhật dữ liệu (thay đổi dữ liệu)
 Truy vấn dữ liệu (rút trích dữ liệu)
 Các cách thực hiện:
 Ngôn ngữ hình thức: Đại số quan hệ - cho phép 
mô tả các câu truy vấn dưới dạng chuỗi các phép 
toán đại số
 Ngôn ngữ thực sự: SQL – ngôn ngữ thao tác 
CSDL quan hệ chuẩn.
Ví dụ 1:
Ví dụ 2:
Một ví dụ minh họa
 Lược đồ CSDL quan hệ: Quản lý Đề án của Công ty
 NHANVIEN(TENNHANVIEN,MANV,NGSINH,DCHI,PH
AI,LUONG,MA_NQL,MAPHG)
 PHONGBAN(TENPHG,MAPHG,TRPHG,NG_NHAMC
HUC)
 DIADIEM_PHG(MAPHG,DIADIEM)
 THANNHAN(MA_NVIEN,TENTN,PHAI,NGSINH,QUAN
HE)
 DUAN(TENDA,MADA,DDIEM_DA,MaP)
 PHANCONG(MA_NVIEN,MADA,THOIGIAN)
NHANVIEN
HONV TENLOT TENNV MANV NGSINH DCHI PHAI LUONG MA_NQL PHG
Dinh Van Thong 12345 14/2/77 Hue Nam 500 54321 1
Tran null Hung 23451 24/5/68 HCM Nam 700 18794 5
Le Minh Nhat 67543 12/7/75 HN Nam 450 null 2
Huynh Chi Thanh 78694 6/12/70 BD Nam 500 79864 null
Mai Ngoc Nga 67543 13/2/81 LD Nu 550 12345 1
Nguyen Tu Anh 87964 4/2/78 HCM Nu null 18794 5
Le Xuan Tung 75864 12/13/83 HP Nam 250 54321 2
PHONGBAN
TENPHG MAPHG TRPHG NG_NHAM
CHUC
DIADIEM_PHG
MAPHG DIADIEM
Nghien cuu 5 12345 5/12/99
Quan ly 1 67895 3/1/04
Thuc hien 2 67543 1/5/02
1 TP HCM
2 HN
4 DN
4 CT
PHANCONG
MA_NV SODA THOIGIAN
12345 1 32.5
23451 4 24
67543 1 21
THANNHAN
MA_NVIEN TENTN PHAI NGSINH QUANHE
12345 Trinh Nam 2/3/70 Anh trai
75864 Minh Nam 4/6/85 Em trai
57853 Luc Nu Null Chi
23451 Tuan Nam 4/2/56 Cha
75864 Mai Nu 5/8/89 Em gai
78694 2 2
87964 4 3
67543 2 4
12345 1 12
75864 9 4
78789 2 5
DEAN
TENDA MADA DDIEM_DA PHONG
112CP 1 HCM 1
Cap quang 2 VT 4
Mouse Exam 4 HN 2
PM Tinh cuoc 8 CT 5
PM Ban do 10 HCM 2
Nghien cuu Mobile IP 16 DN 5
Đại số Quan hệ
Ngôn ngữ truy vấn
 Query Language (QL): ngôn ngữ cho phép user 
thực hiện và rút trích dữ liệu từ CSDL.
 QL ≠PL (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 tin dữ liệu lớn.
 Ngôn ngữ truy vấn (toán học) là cơ sở của ngôn 
ngữ thực sự (vd., SQL).
 Hiểu được đại số quan hệ là chìa khóa để hiểu cách 
xử lý và tối ưu hóa câu truy vấn.
Đại số Quan hệ
 Bao gồm tập hợp các phép toán được áp 
dụng trên các thể hiện quan hệ, kết quả của 
một câu truy vấn là một thể hiện quan hệ.
 Chuỗi các phép toán đại số quan hệ hình 
thành nên biểu thức đại số quan hệ mà kết 
quả của nó cũng trả về một thể hiện quan hệ.
Các phép toán quan hệ
 Các phép toán cập nhật
 Các phép toán tập hợp:
 Phép hội
 Phép giao
 Phép trừ
 Phép tích Đề các
 Phép toán quan hệ
 Phép chọn
 Phép chiếu
 Phép chia
 Phép kết n
 .
Example
A B C
 10 1
 20 1
 30 1
A C
 1
 1
 1
A C
 1
 1
 2
 40 2
 2
Quan hệ r A,C(r)
 Cho biết:
 Họ tên và lương của tất cả nhân viên.
 Mã phòng và lương của tất cả nhân viên
Phép đổi tên (Rename 
Operation)
 Cho phép đặc tên, và do đó để tham chiếu tới kết 
quả của biểu thức đại số quan hệ.
 Cho phép tham chiếu tới một quan hệ bằng nhiều 
tên (vd., nếu cùng một quan hệ được dùng hai lần 
trong một biểu thức đại số quan hệ).
 Đổi tên quan hệ và tên thuộc tính:
 Cho một biểu thức đại số quan hệ E có n thuộc tính, 
biểu thức 
(A1, A2, , An)(E)
trả về kết quả biểu thức E dưới tên , và với các tên 
thuộc tính đã được thay đổi thành A1, A2, , An.
Đổi tên quan hệ và tên thuộc tính
 Đổi tên quan hệ:
 Cho một biểu thức đại số quan hệ E, biểu thức 
(E) trả về kết quả biểu thức E dưới tên .
 Đổi tên thuộc tính:
 Cho một biểu thức đại số quan hệ E có n thuộc 
tính, biểu thức (A1, A2, , An)(E)
trả về kết quả biểu thức E với các tên thuộc tính 
đã được thay đổi thành A1, A2, , An.
Chuỗi các phép toán
 Kết hợp các phép toán đại số quan hệ với 
nhau bằng một trong hai cách:
 Tạo một biểu thức đại số quan hệ bằng cách lồng 
các phép toán với nhau.
 Áp dụng từng phép toán một, ở mỗi lần áp dụng 
phép toán cho ra quan hệ kết quả.
Examle
 Tìm họ tên và lương nhân viên làm việc ở phòng 
số 4.
HONV,TENLOT,TENNV,LUONG(PHG=4(NHANVIEN))
hoặc:
NV_P4  PHG=4(NHANVIEN)
KQ  HONV,TENLOT,TENNV,LUONG(NV_P4)
 hoặc có thể đổi tên bằng cách liệt kê các tên 
thuộc tính mới trong dấu ngoặc:
NV_P4  PHG=4(NHANVIEN)
KQ(HO,LOT,TEN,LUONGCB)  HONV,TENLOT,TENNV,LUONG(NV_P4)
Các phép toán tập hợp
 Các phép toán thực hiện trên 2 quan hệ xuất 
phát từ lý thuyết tập hợp của toán học
 Phép hội: r  s
 Phép giao: r  s
 Phép trừ: r – s
 Phép tích Đề các: rs
 Đối với các phép toán , , hay –, các quan 
hệ r và s phải khả hợp.
Quan hệ Khả hợp
 Các quan hệ R(A1, A2, , An) và S(B1,B2, , 
Bn) gọi là khả hợp khi:
 Số lượng thuộc tính của r, s phải bằng nhau 
(cùng bậc n)
 Miền giá trị của thuộc tính phải tương thích 
(dom(Ai)=dom(Bi)), với 1in.
 Quan hệ kết quả của , , hay – có cùng tên 
thuộc tính với quan hệ đầu tiên r (quy ước).
Phép hội (Union Operation)
 Ký hiệu: r  s
 Định nghĩa:
r  s = {t | t  r  t  s}
 r và s là hai quan hệ khả hợp.
A B
 1
 2
 1
A B
 2
 3
Quan hệ r Quan hệ s
 Ex1: 
 Ex2: Mã nhân viên có tham gia 
đề án hoặc có thân nhân hoặc cả 
hai.
A B
 1
 2
 1
 3
r  s
Phép Giao (Set-Intersection 
Operation)
 Ký hiệu: r  s
 Định nghĩa:
r  s = {t | t  r  t  s}
 r và s là hai quan hệ khả 
A B
 1
 2
 1
A B
 2
 3
hợp.
 Ex1: 
 Ex2: Mã nhân viên có 
người thân và được phân 
công vào đề án.
A B
 2
Quan hệ r Quan hệ s
r  s
Phép trừ (Set Difference 
Operation)
 Ký hiệu: r – s.
 Định nghĩa:
 r – s = {t | t  r  t  s}
 r và s là hai quan hệ khả 
A B
 1
 2
 1
A B
 2
 3
hợp.
 Ex1: 
 Ex2: Mã nhân viên 
không có thân nhân nào 
cả.
A B
 1
 1
Quan hệ r Quan hệ s
r – s
Phép tích Đề các
 Ký hiệu: r  s
 Định nghĩa:
r  s = {t.q | t  r  q  s}
 Các thuộc tính của r(R) và s(S) khác nhau (i.e. r  s = ).
 Nếu các thuộc tính của r(R) và s(S) không khác nhau thì phải đổi tên 
chúng.
 Mỗi bộ t của tập kết quả là tổ hợp giữa 1 bộ t1 trong r và 1 bộ t2 trong s sao 
cho:
t[A1, A2, , Anr] = t1 và t[B1, B2, , Bms] = t2
 KQ(A1, A2, , Anr, B1, B2, , Bms)  r(A1, A2, , Anr)  s(B1, B2, , Bms)
 Nếu r có nr bộ và s có ms bộ thì r  s có nr  ms bộ.
Example 1
C D E
 10 +
 10 +
 20 
 10 
A B
 1
 2
A B C D E
 1  10 +
 1  10 +
 1  20 
 1  10 
 
Quan hệ r
 Nhận xét: Phép tích Đề các là một phép 
tính vô nghĩa nếu đứng riêng. Tuy nhiên, 
nó có thể kết hợp các bộ liên quan từ hai 
quan hệ nếu tiếp theo sau phép toán 
chọn  phù hợp (xem ví dụ trang sau).
2 10 +
 2  10 +
 2  20 
 2  10 
Quan hệ s
r  s
Example 2
A B C D E
 1  10 +
 1  10 +
 1  20 
  
A B C D E
 1  10 +
1 10
 2  10 +
 2  10 +
 2  20 
 2  10 
r  s
 2  10 +
 2  20 
A=C(r  s)
Example 3
 Kết hợp từng bộ PHONGBAN với bộ NHANVIEN của 
người quản lý (trưởng phòng). Với mỗi phòng ban, cho 
biết thông tin về người trưởng phòng.
PB_NV  PHONGBAN  NHANVIEN
PB_TRPHG_INFO  MANV=TRPHGPB_NV
 Hoặc:
MANV=TRPHG(PHONGBAN  NHANVIEN)
Example 4
 Cho biết lương cao nhất trong công ty.
 Quan hệ chứa những lương không phải là lớn nhất
temp=NHANVIEN.LUONG(NHANVIEN.LUONGNV.LUONG(NHANVIE
NNV(NHANVIEN)))
 Thực hiện trừ giữa quan hệ và quan hệ tạm
LUONG(NHANVIEN) - temp
Example 5
 Cho biết những phòng ban có cùng địa điểm với 
phòng số 5.
 Tìm địa điểm của phòng số 5.
 ( (DIADIEM_PHG).DIADIEM MAPHG=5
 Đổi tên thành PHG_5 và đổi tên thuộc tính DIADIEM 
thành DD.
DIADIEM_PHG(DIADIEM_PHG.DIADIEM=PHG_5.DD(DIADIEM_PH
GPHG_5(DD)(DIADIEM(MAPHG=5(DIADIEM_PHG))))).
 Các phép toán quan hệ
Phép chọn (Selection 
Operator)
 Dùng để trích chọn các bộ từ quan hệ r. Các bộ 
được trích chọn phải thỏa mãn điều kiện P.
 Ký hiệu: P(r) = {t | t  r  P(t)}
 r: quan hệ được chọn
 P: biểu thức mệnh đề điều kiện:
 op hay 
 op: =, ≠, , , 
 Các điều kiện có thể liên kết với nhau thông qua , 
, 
 Kết quả trả về là một quan hệ, có cùng danh sách 
thuộc tính với quan hệ r.
 Phép chọn có tính giao hoán:
 P1(P2(r)) = P2(P1(r)) = P1  P2(r)
Example
A B C D
  1 7
  5 7
  12 3
A B C D
  1 7
  23 10
  23 10
Quan hệ r
A=B  D5(r)
 Cho biết:
 Những nhân viên thuộc phòng số 4.
 Những nhân viên có lương > 3000
 Những nhân viên thuộc phòng số 4 và lương > 3000, hoặc 
những nhân viên thuộc phòng số 5.
Phép chiếu (Project Operation)
 Dùng để trích chọn một vài cột của quan hệ r được 
chỉ ra trong danh sách thuộc tính.
 Ký hiệu: A1,A2, ,Ak(r)
 r: quan hệ.
 A1,A2, ,Ak: các thuộc tính được chiếu.
 Kết quả trả về là một quan hệ có k thuôc tính theo 
thứ tự được liệt kê.
 Số lượng các bộ trong một quan hệ kết quả của phép 
chiếu luôn luôn ít hơn hoặc bằng số lượng các bộ 
trong r. Các dòng trùng nhau sẽ được loại bỏ khỏi 
quan hệ kết quả.
 A1,A2, ,Ak( A1,A2, ,Al(r)) = A1,A2, ,Ak(r), với kl
 Phép chiếu không có tính giao hoán
Phép gán (Assignment 
Operation)
 Cung cấp một cách thức để diễn tả câu truy vấn phức 
tạp.
 Ý tưởng: viết câu truy vấn như là một chương trình tuần 
tự gồm một chuỗi các phép gán, theo sau là một biểu 
thức có giá trị được trình bày như là kết quả của câu 
truy vấn.
 Ký hiệu: 
 Việc gán luôn luôn thực hiện cho một biến quan hệ tạm.
 Biến nằm bên trái của biểu thức gán có thể được sử 
dụng trong các biểu thức theo sau.
Phép kết nối(Join Operation)
 Natural Join
 Condition Join (Theta Join)
 Equi-Join
Natural Join
 Ký hiệu: rs (hoặc r*s)
 r, s là các quan hệ tương ứng trên các lược đồ R và 
S. Kết quả trả về là quan hệ trên lược đồ RS. các 
kết quả có được bằng cách xét đến từng cặp bộ trr 
và ts s.
 Nếu tr và ts có cùng giá trị tại các thuộc tính trong 
RS (cùng tên thuộc tính), thì một bộ t được thêm 
vào quan hệ kết quả sao cho:
 t có cùng giá trị như tr trên R.
 t có cùng giá trị như ts trên S.
Example
 Cho các quan hệ R(A,B,C,D) và S(B,D,E)
 Phép kết có thể áp dụng được vì RS .
 Lược đồ kết quả là (A,B,C,D,E)
 Và kết quả của rs được định nghĩa là:
 (( (rs))R.A,R.B,R.C,R.D,S.E R.B=S.BR.D=S.D
A B C D E
 1  a 
 1  a 
 1  a 
 1  a 
 2  b 
A B C D
 1  b
 2  a
 4  b
 1  a
 2  b
B D E
a 1 
3 a 
1 a 
2 b 
r s
r  s
Condition Join
 Ký hiệu: rcs
 C: điều kiện tồn tại trên các thuộc tính trong RS, 
lược đồ kết quả cũng giống như trong phép tích 
Cartesian. Nếu RS và điều kiện c tham chiếu 
tới các thuộc tính này, thì một số thuộc tính phải 
được đổi tên.
 Đôi khi còn gọi là Theta join rs
 Nguồn gốc: rcs = c(rs)
 Chú ý: không giống như điều kiện chọn P trong , c 
là một điều kiện trên các thuộc tính của cả r và s.
Example
A B C
1 2 3
4 5 6
7 8 9
D E
3 1
6 2
A B C D E
1 2 3 3 1
1 2 3 6 2
4 5 6 6 2
r s
r B<D s
EQUI-JOIN
 Nếu  là phép so sánh bằng “=” thì phép kết được gọi là 
phép kết bằng – Equi-Join.
 Ex:
 Tên phòng ban và tên trưởng phòng của mỗi phòng ban.
A B C
4 5 6
7 8 9
C D
6 8
10 12 A B C SC D
4 5 6 6 8
r
s
r C=SC((SC,D)(s)) s
Một số lưu ý
 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 khác nhau. Vd:
Thuộc tính kết Mối kết hợp
NHANVIEN.MANV=PHONGBAN.TRPHG NHANVIEN quản lý PHONGBAN
NHANVIEN.PHG=PHONGBAN.MAPHG NHANVIEN làm việc ở PHONGBAN
 Ex: Tìm tên nhân viên và tên phòng ban mà nhân viên đó làm việc. 
(?)
 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ệ đó. Trong trường hợp này, phải sử dụng phép đổi tên. Vd:
 Ex: Tìm tên nhân viên và tên người giám sát nhân viên đó (?)
Thuộc tính kết Mối kết hợp
NHANVIEN(1).MA_NQL=NHANVIEN(2).MANV NHANVIEN(2) giám sát NHANVIEN(1)
Phép chiếu tổng quát
 Mở rộng phép chiếu bằng cách cho phép sử dụng 
các hàm số học trong danh sách chiếu.
 F1, F2, , Fk(E)
 E là biểu thức đại số quan hệ.
F , F , , F là các biểu thức số học có liên quan  1 2 k
đến hằng và thuộc tính trong lược đồ E.
 Ex: Cho quan hệ THETINDUNG(MSTHE, 
TRIGIATHE, SOTIENSD). Tìm số tiền còn lại trong 
thẻ:
 MSTHE, TRIGIATHE – SOTIENSD(THETINDUNG)
Phép chia (Division Operator)
 Áp dụng cho câu truy vấn có từ “tất cả”.
 Mục tiêu: Đưa ra các bộ trong một quan hệ, r, sao cho khớp với 
tất cả các bộ trong quan hệ khác, s.
 Ký hiệu: r  s
 Điều kiện: các thuộc tính trong S phải là một tập thuộc tính con 
của R, i.e., S  R. Cho r, s là các quan hệ tương ứng trên lược 
đồ R, S
R = (A , A , , A ,B , , B )1 2 m 1 n
S = (B1, , Bn)
 Kết quả của phép chia r  s là một quan hệ trên lược đồ R-S = 
(A1, A2, , Am).
 Kết quả của phép chia bao gồm tập hợp các bộ lấy từ r được 
định nghĩa trên các thuộc tính R-S sao cho khớp với việc kết hợp 
mọi bộ trong s.
r  s = {t | t  R-S(r)  u  s : t.u  r}
 Nghĩa là, r  s, với các thuộc tính A1, A2, , Am, là tập hợp chứa 
tất cả các bộ t sao cho với mọi bộ u trong s, thì có một bộ t.u
trong r.
Nguồn gốc
 Cho 2 quan hệ r(Z), s(X), trong đó X  Z.
 Gọi Y = Z – X (và do đó Z = X  Y). Y là tập 
hợp các thuộc tính của r nhưng không là 
thuộc tính của s.
 Phép chia có thể được diễn đạt bằng 
phương pháp ĐSQH cơ sở:
 t1 (r)
 t2 ((st1)-r)
 t  t1 – t2.
Examples
A B
 1
 2
 3
 1
 1
B
1
2
s
A B C D E
 a  a 1
 a  a 1
 a  b 1
 a  a 1
 a  b 3
 a  a 1
D E
a 1
b 1
s
 1
 3
 4
 6
 1
 2
r
 a  b 1
 a  b 1
r
A


r  s
A B C
 a 
 a 
r  s Ex3: Mã nhân viên tham gia tất cả 
đề án.
 Ex4: Mã nhân viên tham gia tất cả 
đề án do phòng số 4 phụ trách.
Tập đầy đủ các phép toán 
ĐSQH
 Các phép tóan cơ sở: phép chọn, chiếu, hội, giao, trừ, tích.
 Tập hợp {,,,,,} được gọi là tập đầy đủ các phép toán 
ĐSQH.
 Nếu E1 và E2 là các biểu thức ĐSQH, thì các biểu thức sau đây 
cũng là các biểu thức ĐSQH:
E  E 1 2
 E1  E2
 E1  E2
 P(E1), với P là một vị từ (điều kiện) trên các thuộc tính của E1
 A(E1), với A là danh sách các thuộc tính của E1
 (E1), với  là tên mới cho quan hệ kết quả [và các thuộc tính] 
được xác định bởi E1.
Các phép toán khác
 Hàm kết hợp – Aggregate Functions nhận vào tập hợp giá trị và 
trả về một giá trị đơn.
 Avg (average value): giá trị trung bình
 Min (minimum value): giá trị nhỏ nhất.
 Max (maximum value): giá trị lớn nhất.
Sum (sum of values): tính tổng các giá trị
 Count (number of values): đếm số mẫu tin
 Phép toán gom nhóm – Grouping  trong ĐSQH:
G1, G2, , GnF1(A1), F2(A2), , Fn(An)(E)
 E là biểu thức đại số quan hệ
 Gi là tên thuộc tính gom nhóm (có thể không có)
 Fi là hàm gom nhóm
 Ai là tên thuộc tính tính toán trong hàm gom nhóm Fi.
Examples
A B C
  7
  7
  3
 
SUM_C
27
SUM(C)(r)
 Tính số lượng nhân viên và 
lương trung bình của nhân viên.
 Quan hệ NHANVIEN sau khi 
gom nhóm:
 MANV  LUONG MA_NQL PHG
Ex1 Ex2
10
r
 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
 Số lượng nhân viên và lương 
trung bình của cả công ty:
COUNT_MANV AVG_LUONG
8 35125
COUNT(MANV),AVG(LUONG)(NHANVIEN)
 Số lượng nhân viên và lương 
trung bình của mỗi phòng ban, 
không sử dụng phép đổi tên:
PHG COUNT_MANV AVG_LUONG
5 4 33250
4 3 31000
1 1 55000
PHGCOUNT(MANV),AVG(LUONG)(NHANVIEN)
 Số lượng nhân viên và lương 
trung bình của mỗi phòng ban, 
có sử dụng phép đổi tên:
MAPHONG SONV LUONGTB
5 4 33250
4 3 31000
1 1 55000
MAPHONG,SONV,LUONGTB(PHGCOUNT(MANV),AVG(LUONG)(NHANVIEN))
Outer Join
 Mở rộng phép kết để tránh sự mất mát thông tin
 Thực hiện phép kết và sau đó thêm vào kết quả của 
phép kết các bộ của một quan hệ mà không phù 
hợp với các bộ trong quan hệ kia.
 3 hình thức:
 Left outer join: _
 Right outer join: _
 Full outer join: __
Example: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
HONV,TENLOT,TENNV,TENPHG(NHANVIEN MANV=TRPHGPHONGBAN)
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
HONV,TENLOT,TENNV,TENPHG(NHANVIEN _MANV=TRPHGPHONGBAN)
Các thao tác cập nhật trên 
quan hệ
 Nội dung của CSDL có thể được cập nhật 
bằng cách dùng các thao tác: Thêm, Xóa, 
Sửa.
 Tất cả các thao tác này được diễn đạt thông 
qua phép toán gán:
 rnew  {Thêm, Xóa, Sửa}(rold)
Thêm (Insertion)
 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.
 Trong ĐSQH, thao tác chèn được diễn đạt như sau:
r  r  E
 r là quan hệ và E là biểu thức ĐSQH.
 Ex: Phân công cho nhân viên 123456789 làm thêm đề 
án số 20 với số giờ là 10.
 PHANCONG  PHANCONG  {(‘123456789’,20,10)}
Xoá (Deletion)
 Yêu cầu xóa được diễn đạ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 dùng, thì bộ được chọn bị xóa 
khỏi CSDL.
 Chỉ có thể xóa toàn bộ bộ, không thể chỉ xóa một vài giá trị trên các 
thuộc tính nào đó.
 Thao tác xóa được diễn đạt trong ngôn ngữ ĐSQH như sau:
r  r – E 
 r là quan hệ và E là câu truy vấn ĐSQH.
 Ex1: Xóa tất cả những phân công đề án cho nhân viên 123456789
 PHANCONG  PHANCONG – (MA_NVIEN=‘123456789’(PHANCONG))
 Ex2: Xóa tất cả những phân công đề án mà địa điểm đề án ở “HA 
NOI”
 r1  DDIEM_DA=‘HANOI’(PHANCONG SODA=MADADEAN)
 r2  MA_NV,SODA,THOIGIAN(r1)
 PHANCONG  PHANCONG – r2.
Sửa (Updating)
 Cơ chế làm thay đổi một giá trị trong một bộ mà không làm thay đổi tất cả 
giá trị trong bộ đó.
 Để cập nhật, sử dụng phép chiếu tổng quát hóa như sau:
r F1, F2, , Fn(r)
 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 tính thứ i
có thể giữ nguyên (nếu không muốn cập nhật) hoặc sẽ đượ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 đó.
 Có thể được biểu diễn bằng một chuỗi các thao tác xóa và thêm. Phép 
toán xóa sẽ xóa các bộ có giá trị cũ và phép toán thêm sẽ chén thêm các 
bộ có giá trị mới.
 Ex1: Tăng thời gian làm việc của tất cả nhân viên lên 1.5 lần
 PHANCONG  MA_NV,SODA,THOIGIAN*1.5(PHANCONG)
 Ex2: Trong quan hệ PHANCONG, các nhân viên làm việc trên 30 giờ sẽ 
tăng thời gian làm việc 1.5 lần, còn lại sẽ tăng thời gian làm việc 2 lần.
 PHANCONG  MA_NV,SODA,THOIGIAN*1.5(THOIGIAN>30(PHANCONG)) 
MA_NV,SODA,THOIGIAN*2(THOIGIAN30(PHANCONG))
 1: Tim MaNV tham gia tat ca cac du an
 Pi (MANV,MADA) (PHANCONG)/Pi(MADA)(DUAN)
 2. Tim maNV lam viec cho du an do phong 4 phu trach
 PI (MaNV)(PHANCONG><Delta(MAP=4) (PHONG))
3.Tim hoc ten nguoi phu thuoc cua nhung nhan vien lam trong 
phong “KY THUAT”
 PI(TENTHANNHAN)(Delta(tenp=‘Kythuat’)(PHONG)*NHANVIEN*T
HANNHAN)
 4. Tim MANV lam viec cho du an ‘A’
 PI(MaNV)(Delta(tenDA=‘A’)(DUAN)*PHANCONG
 5. Tim MaNV va TenNV ko lam viec cho du an nao
 PI(MaNV, TenNV) ((PI(MaNV)(NHANVIEN)-
PI(MaNV)(PHANCONG))*NHANVIEN)

File đính kèm:

  • pdfbai_giang_mo_hinh_du_lieu_quan_he_va_dai_so_quan_he.pdf