• 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—
Trang 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
Trang 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)
] ,
, [
2 3
) 2005 )
( 2005
) (
( : 1 2
1
TenGV TenDT
MaDT Q
Q
NgKT YEAR
NgBD YEAR
Q Q
GIAOVIEN DETAI
←
=
∨
=
←
Trang 3• Câu 1.1b) Viết bằng ngôn ngữ SQL:
• 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)
• SELECT detai.MaDT, TenDT, TenGV
FROM detai, giaovien
WHERE detai.MaGV = giaovien.MaGV AND
(YEAR(NgBD)=2005 OR YEAR(NgKT)=2005)
• Xem hàm: YEAR, MONTH
Trang 4• Câu 1.2a) Viết bằng ĐSQH:
• 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)
] ,
, ,
, [
3 4
) '
' (
: 2 3
1 2
1
TenSV MaSV
TenGV TenDT
MaDT Q
Q
HCM TP
Diachi Q
Q
SINHVIEN Q
Q
DETAI GIAOVIEN
Q
MaDT
MaGV
←
=
←
←
←
Trang 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
Trang 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
] ,
[ 5 6
4 5
2 3
4
] [
3
] [
1 2
) 2005 )
(
10 )
( (
: 1
TenGV MaGV
Q Q
GIAOVIEN Q
Q
Q Q
Q
MaGV GIAOVIEN
Q
MaGV Q
Q
NgKT YEAR
NgKT MONTH
DETAI Q
MaGV
←
←
−
←
←
←
=
∧
=
←
Trang 7• Câu 1.3b) Viết bằng NN SQL:
• 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
• SELECT MaGV, TenGV
FROM giaovien
WHERE MaGV NOT IN
(SELECT MaGV FROM detai
WHERE YEAR(NgKT)=2005 AND MONTH(NgKT)=10)
Trang 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
MaSV Q
nam Gioitinh
SINHVIEN Q
MaDT nu
Gioitinh SINHVIEN
Q
MaDT
=
←
=
←
Trang 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’)
Trang 10• Câu 1.5b) Viết bằng NN SQL:
• Với mỗi đề tài, hãy in thông tin sau:
(MaDT,TenDT,SLSV)
• SELECT detai.MaDT, TenDT,
COUNT(MaSV) AS SLSV FROM detai, sinhvien
WHERE detai.MaDT = sinhvien.MaDT
GROUP BY detai.MaDT, TenDT
• Xem hàm: COUNT, SUM, MIN, MAX, AVG
Trang 11• Câu 1.6b) Viết bằng NN SQL:
• Với các giáo viên ở ‘TP.HCM’ và các đề tài mà họ hướng dẫn có từ 2 sinh viên trở lên, hãy cho ra thống kê sau: (MaGV,TenGV,TenDT,SLSV)
• SELECT detai.MaGV, TenGV, TenDT,
COUNT(MaSV) AS SLSV FROM giaovien, detai, sinhvien
WHERE giaovien.MaGV = detai.MaGV
AND detai.MaDT = sinhvien.MaDT AND Diachi=’ TP.HCM
GROUP BY detai.MaGV, TenGV, TenDT
Trang 12• 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:
DETAI + - +(NgBD,NgKT)
Trang 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ộ
• 2 Bối cảnh: DETAI
• 3 Tầm ảnh hưởng:
GIAOVIEN - - +(NgVL)
DETAI + - +(NgBD,MaGV)
Trang 14• Câu 2.3) Phát biểu chặc chẽ ràng buộc sau:
• R3: Thuộc tính “SoDT” trong GIAOVIEN phải bằng
“số lượng đề tài” mà GV đó hướng dẫn.
• 1 Phát biểu : dùng ngôn ngữ tân từ biến n bộ
(g.SoDT = COUNTd∈DETAI ∧d.MaGV=g.MaGV(d.MaDT)
• 2 Bối cảnh: DETAI
• 3 Tầm ảnh hưởng:
GIAOVIEN - - +(SoDT)
DETAI + + +(MaGV)
Trang 15• Câu 3.1) Tối ưu câu trả lời sau:
] ,
, ])[
, [
] ,
, )[
2005 )
( (
: (
3
] ,
, [
) )
2005 )
( (
: (
2
] ,
, [
)) 2005 )
( (
:
) ((
1
TenGV TenDT
MaDT TenGV
MaGV GIAOVIEN
MaGV TenDT
MaDT NgBD
YEAR DETAI
Bt
TenGV TenDT
MaDT
GIAOVIEN NgBD
YEAR DETAI
Bt
TenGV TenDT
MaDT
NgBD YEAR
GIAOVIEN DETAI
Bt
MaGV
MaGV MaGV
=
=
=
=
=
=
Trang 16• Câu 3.2) Tối ưu câu trả lời sau:
] ,
, ))[
2005 )
( (
:
) (
2
] ,
, [
)) 2005 )
(
(
:
) ((
1
TenGV TenDT
MaDT NgBD
YEAR
GIAOVIEN DETAI
Bt
TenGV TenDT
MaDT
NgBD YEAR
MaGV GIAOVIEN
MaGV DETAI
GIAOVIEN DETAI
Bt
MaGV
=
=
=
∧
=
×
=
Trang 17• Câu 3.3) Tối ưu câu trả lời sau:
] ,
, [
)) 2005 )
( (
) 2005 )
( (
:
) ((
2
] ,
, [
)) 2005 )
( (
:
)) 2005 )
( (
:
) (((
1
TenGV TenDT
MaDT
NgBD MONTH
NgBD YEAR
GIAOVIEN DETAI
Bt
TenGV TenDT
MaDT
NgBD MONTH
NgBD YEAR
GIAOVIEN DETAI
Bt
MaGV MaGV
=
∧
=
=
=
=
=