Professional Documents
Culture Documents
Chuong3 NgonNguTTDL
Chuong3 NgonNguTTDL
r1 r2
STT Ho Ten GioiTinh STT Ho Ten GioiTinh
3 Trần C Nam
r1 r2 = { t | t r1 hoặc t r2}
STT Ho Ten GioiTinh
r1 r2
r1
STT Ho Ten GioiTinh
1 Trần A Nam
3 Trần C Nam
STT Ho Ten GioiTinh
r2
1 Trần D Nữ
1 Trần D Nữ
2 Trần E Nữ
2 Trần E Nữ Dept. of IS - FIT - HNUE
Phép giao
r1 r2 = { t | t r1 và t r2}
r1 Ho Ten GioiTinh r2 Ho Ten GioiTinh
Ho Ten GioiTinh
r1 r2 Trần B Nam
Trần E of IS - FITNữ
Dept. - HNUE
Phép hiệu
r1 - r2 = { t | t r1 và t r2}
r1 Ho Ten GioiTinh r2 Ho Ten GioiTinh
r1 - r2 r2 – r1
Ho Ten GioiTinh Ho Ten GioiTinh
Trần C NamDept. of IS - FIT Trần
- HNUE C Nữ
Phép tích đề các
Bộ ghép nối
r1 xác định trên U1 và r2 xác định trên U2
r1/U1 và r2/U2
r1 r2
MaSV MaMonHoc Diem MaMonHoc
HP1
SP1 HP1 5.0
HP2
SP1 HP2 7.5
HP3
SP2 HP3 4.5
r1 r3 MaSV, MaMonHoc(r1)
r3 r2
MaSV MaMonHoc
MaMonHoc
HP1
SP1 HP1
HP2
SP1 HP2
HP3
SP2 HP3
r3 r2
SP1 HP3
MaSV
SP2 HP2
SP1
Dept. of IS - FIT - HNUE
Phép chiếu
Bộ thu gọn
r: xác định trên tập thuộc tính U
X: một tập con thuộc tính của tập U
tr
t[X]: chỉ một thu gọn của bộ t trên tập thuộc tính X
Ví dụ
U={Ho, Ten, GioiTinh}
X={Ho, Ten} t[X]=(Trần, A)
t=(Trần, A, Nam) Dept. of IS - FIT - HNUE
Phép chiếu
Trần E Nữ Trần E
Trần C Nam
r1 NamLenLuong MocTangLuong r2
r1 r2
Ho Ten NamLenLuong MocTangLuong GhiChu
Trần E 2001 2001
Trần B 2000
Trần C 2004
r1 NamLenLuong MocTangLuong r2
r1 NamLenLuong MocTangLuong r2
Ho Ten NamLenLuong MocTangLuong
r1<ABr2 = {(t,q) ABr2 hoặc ((t, null, … , null)qr2, t[A] q[B] sai)}
Dept. of IS - FIT - HNUE
Phép kết nối ngoài phải
r1>ABr2 = {(t,q) r1ABr2 hoặc ((null, … , null, q)tr1, t[A] q[B] sai)}
r1 r2
Ho Ten NamLenLuong MocTangLuong
Trần E 2001 2001
Trần B 2000
2005
Trần C 2004
r1 NamLenLuong MocTangLuong r2
Ho Ten NamLenLuong MocTangLuong
KQ
KQTG r1*r2 SBD Họ Tên
KQ(SBD, Họ, Tên) (SBD, Ho, Ten)KQTG SP1 Trần A
SP2 Trần B
SP3 Trần C
Dept. of IS - FIT - HNUE
Ví dụ minh họa
Sử dụng các biểu thức đại số quan hệ biểu
diễn câu hỏi
NHAN_VIEN PHONG
CHAM_CONG
DU_AN
TEN_DA((MA_DA=”D4” )(DU_AN))
(MA_DA=”D4” )(DU_AN)
NHAN_VIEN * PHONG
Cách 2:
HOTEN, LUONG(NHAN_VIEN*
(MA-DV((TEN-PHONG=”Nghiên cứu và phát triển )(PHONG))))
Với mỗi dự án thực hiện ở “TT khí tượng thủy văn HN”,
hãy cho biết mã số dự án đồng thời cho biết họ tên,
ngày sinh của trưởng phòng quản lý dự án này?
Cách 1
KQTG MA-DA, MA-DV(DIA-DIEM-DA=„TT Khí tượng thủy văn HN‟ (DU_AN))
Cách 2
KQTG NHAN_VIEN⋈MA-NV=MA-TP (DU_AN * PHONG)
KETQUA MA-DA, HO-TEN, NG-SINH( DIA-DIEM-DA=„TT Khí tượng thủy văn HN‟ (KQTG))
PHONG*(KQTG)
[<các thuộc tính cơ sở để gộp nhóm>] F <danh sách hàm kết tập> (r)
[<các thuộc tính cơ sở để gộp nhóm>] F <danh sách hàm kết tập> (r)
FAVERAGE(LUONG)(NHAN_VIEN)
MA_DVFAVERAGE(LUONG)(NHAN_VIEN)
MA_DV, GIOI_TINHFAVERAGE(LUONG)(NHAN_VIEN)
{x | ĐK(x)}
x là một biến bộ và có miền giá trị là một quan hệ
của CSDL
ĐK(x) là một biểu thức lôgic có chứa biến bộ x
Quan hệ kết quả:
các bộ t của quan hệ là miền giá trị cho biến x và làm cho
biểu thức ĐK(x) đúng
Ví dụ 1
Ví dụ 2
Trong đó:
x1, x2, …, xn, xn+1, …, xn+m : các biến bộ
Aq: một thuộc tính của quan hệ (q = 1…n)
ĐK(): công phức phép tính bộ
ma_dvX, luongX))}
NHAN_VIEN PHONG
CHAM_CONG
DU_AN
Thêm cột
ALTER TABLE <tên bảng> ADD <định nghĩa cột mới>;
Xóa cột
ALTER TABLE <tên bảng> DROP <tên cột>;
Tạo ra một bảng lưu trữ vị trí các bản ghi dựa
trên giá trị tăng dần của một cột nào đó
Làm tăng tốc độ tìm kiếm thông tin trong CSDL
Chỉ mục không làm thay đổi thứ tự vật lí của các
bản ghi trong bảng.
VD2 Cho biết họ tên và lương của các nhân viên làm
việc ở phòng “Nghiên cứu và phát triển”?
SELECT HO_TEN, LUONG
FROM NHAN_VIEN N, PHONG P
WHERE N.MA_DV= P.MA_DV
AND TEN_PHONG = „Nghiên cứu và phát triển‟;
VD3 Với mỗi dự án thực hiện ở “TT khí tượng thủy văn
HN”, hãy cho biết mã số dự án đồng thời cho biết họ tên,
ngày sinh của trưởng phòng quản lý dự án này?
SELECT
INSERT
DELETE
UPDATE
REFERENCES
USASE
Ví dụ
GRANT SELECT, INSERT
ON NHAN_VIEN
TO giamdoc; Dept. of IS - FIT - HNUE
Câu lệnh thu hồi quyền của NSD
Trong hai biểu thức đại số dưới đây biểu diễn cho câu hỏi
ở ví dụ 2, biểu thức nào khi thực hiện sẽ tối ưu hơn trong
việc sử dụng bộ nhớ để lưu các kết quả trung gian?
1.
HOTEN, LUONG((TEN-PHONG=”Nghiên cứu và phát triển )(NHAN_VIEN * PHONG))
2.
HOTEN, LUONG(NHAN_VIEN*
(MA-DV((TEN-PHONG=”Nghiên cứu và phát triển )(PHONG))))
Theo các bạn, trong hai biểu thức đại số sau biểu
diễn câu hỏi trong ví dụ 3, câu hỏi nào tối ưu hơn?
Cách 1
KQTG MA-DA, MA-DV(DIA-DIEM-DA=„TT Khí tượng thủy văn HN‟ (DU_AN)
Cách 2
KQTG NHAN_VIEN⋈MA-NV=MA-TP (DU_AN * PHONG)
KETQUA MA-DA, HO-TEN, NG-SINH( DIA-DIEM-DA=„TT Khí tượng thủy văn HN‟ (KQTG))
MA_DV, GIOI_TINHFAVERAGE(LUONG)(NHAN_VIEN)
Theo các bạn, biểu thức biến bộ biểu diễn cho câu
hỏi trong ví dụ 2 cần dùng bao nhiêu biến bộ?
A. 1
B. 2
C. 3