1
•
Cho lược đồ quan hệ gồm các quan hệ sau:
•
GIAOVIEN (MaGV,TenGV,Ngsinh,Diachi,NgVL,SoDT)
•
DETAI (MaDT, TenDT, NgBD,NgKT,MaGV)
•
SINHVIEN (MaSV, TenSV, Ngsinh, Gioitinh, MaDT)
GIAOVIEN—(MaGV)—DETAI—(MaDT)—SINHVIEN
2
•
Câu 1.1a) Viết bằng Đại số quan hệ:
•
Cho biết thông tin về các đề tài bắt đầu hay kết
thúc trong năm 2005 (MaDT, TenDT, TenGV).
],,[23
)2005)(2005)((:12
1
TenGVTenDTMaDTQQ
NgKTYEARNgBDYEARQQ
GIAOVIENDETAIQ
MaGV
←
=∨=←
←
3
•
Câu 1.1b) Viết bằng ngôn ngữ SQL:
•
5
•
Câu 1.2b) Viết bằng NN SQL:
•
Cho biết thông tin về các đề tài do giáo viên ở
‘TP.HCM’ (Diachi=’ TP.HCM) hướng dẫn như sau:
(MaDT, TenDT, TenGV, MaSV, TenSV).
•
SELECT detai.MaDT,TenDT, TenGV, MaSV,TenSV
FROM giaovien, detai, sinhvien
WHERE giaovien.MaGV = detai.MaGV
AND detai.MaDT = sinhvien.MaDT
AND Diachi=’ TP.HCM
6
•
Câu 1.3a) Viết bằng ĐSQH:
•
In ra các giáo viên (MaGV, TenGV) không hướng
dẫn đề tài nào có ngày kết thúc trong tháng 10 năm
2005
],[56
45
234
][3
][12
)2005)(
10)((:1
TenGVMaGVQQ
8
•
Câu 1.4a) Viết bằng ĐSQH:
•
Tìm các sinh viên “nam” có làm chung đề tài với các
sinh viên “nu” (MaSV).
][)1)''(:(2
])[''(:1
MaSVQnamGioitinhSINHVIENQ
MaDTnuGioitinhSINHVIENQ
MaDT
=←
=←
9
•
Câu 1.4b) Viết bằng NN SQL:
•
Tìm các sinh viên “nam” có làm chung đề tài với các
sinh viên “nu” (MaSV).
•
SELECT MaSV
FROM sinhvien
WHERE Gioitinh=‘nam’ AND MaDT
IN
(SELECT MaDT
FROM sinhvien
WHERE Gioitinh=‘nu’)
10
•
Câu 2.1) Phát biểu chặc chẽ ràng buộc sau:
•
R1: Ngày kết thúc của mỗi đề tài phải sau ngày
bắt đầu của đề tài đó.
•
1. Phát biểu: dùng ngôn ngữ tân từ biến n bộ
∀ d ∈ DETAI (d.NgBD < d.NgKT)
•
2. Bối cảnh: DETAI
•
3. Tầm ảnh hưởng:
R1
Thêm Xóa Sửa
DETAI
+ -
+(NgBD,NgKT)
13
•
Câu 2.2) Phát biểu chặc chẽ ràng buộc sau:
•
R2: Khi GV hướng dẫn 1 DT thì ngày bắt đầu của
đề tài phải sau ngày vào làm của GV đó.
•
1. Phát biểu: dùng ngôn ngữ tân từ biến n bộ
∀ d ∈ DETAI
(∃g ∈ GIAOVIEN (g.MaGV=d.MaGV) ⇒ g.NgVL<d.NgBD)
•
2. Bối cảnh: DETAI
•
3. Tầm ảnh hưởng:
+(SoDT)
DETAI
+ +
+(MaGV)
15
•
Câu 3.1) Tối ưu câu trả lời sau:
],,])[,[
],,)[2005)((:(3
],,[
))2005)((:(2
],,[
))2005)((:
)((1
TenGVTenDTMaDTTenGVMaGVGIAOVIEN
MaGVTenDTMaDTNgBDYEARDETAIBt
TenGVTenDTMaDT
GIAOVIENNgBDYEARDETAIBt
TenGVTenDTMaDT
NgBDYEAR
GIAOVIENDETAIBt
MaGV
MaGV
MaGV
==
==
=
TenGVTenDTMaDT
NgBDMONTHNgBDYEAR
GIAOVIENDETAIBt
TenGVTenDTMaDT
NgBDMONTH
NgBDYEAR
GIAOVIENDETAIBt
MaGV
MaGV
=∧=
=
=
=
=