3 - He - CSDL - Dap An - (CLC)

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

ĐÁP ÁN GỢI Ý

Câu 1:
1.1 Viết các truy vấn sau bằng ngôn ngữ đại số quan hệ:
Câu Nội dung Điểm
1a a) Liệt kê tên và tuổi của các nhân viên làm việc ở phòng có mã “PM01” nhưng không
làm việc ở phòng có mã “PC01”.
∏TenNV, Tuoi((MaPB = ‘PM01’(LAMVIEC) - MaPB = ‘PC01’(LAMVIEC))|X| NHANVIEN) 0.75

1b b)Tìm các tên người trưởng phòng quản lý phòng ban có ngân sách nhiều hơn 10.000.000
đồng.
∏TenNV(NganSach >10000000(PHONGBAN)|X|NHANVIEN) 1
:MaTrPB = MaNV
1c c) Tìm mã và tên nhân viên chỉ làm việc cho một phòng ban.
0.75
∏MaNV, TenNV(soPB = 1(MaNV
Fcount(MaPB) as soPB(LAMVIEC)) |X| NHANVIEN)
1.2 Viết các truy vấn trên bằng ngôn ngữ SQL:
Câu Loại Nội dung Điểm
2a Câu hỏi a) Liệt kê tên và tuổi của các nhân viên làm việc ở phòng có mã “PM01”
nhưng không làm việc ở phòng có mã “PC01”.
Đáp án SELECT TenNV, Tuoi 0.75
FROM NHANVIEN
WHERE MaNV IN (SELECT MaNV FROM LAMVIEC
WHERE MaPB = ‘PM01)
And MaNV NOT IN (SELECT MaNV FROM LAMVIEC
WHERE MaPB = ‘PC01)
2b Câu hỏi b)Tìm các tên người trưởng phòng quản lý phòng ban có ngân sách nhiều hơn
10.000.000 đồng.
Đáp án SELECT TenNV 1
FROM NHANVIEN n, PHONGBAN p
WHERE n.MaNV = p.MaTrPB and NganSach > 10000000
2c Câu hỏi c) Tìm mã và tên nhân viên chỉ làm việc cho một phòng ban.
Đáp án SELECT MaNV, TenNV 0.75
FROM NHANVIEN n, LAMVIEC l
WHERE n.MaNV = l.MaNV
GROUP BY n.MaNV, TenNV
HAVING count(MaPB) = 1

Câu 2: (2.5 điểm) (Mỗi lược đồ quan hệ đúng được 0.5 đ)


STUDENT(Stu_ID, Stu_Name, Birth_date, Sex, Cla_ID)
CLASS(Cla_ID, Cla_Name, No_of_stu)
SUBJECT(Sub_ID, Sub_Name)
REQUIRE(Sub_ID, Requirements)
ALLOCATE(Stu_ID, Sub_ID, No_of_class)
Câu 3. (2.5 điểm)
Ta có N = {M#, Y}, D = { P, C}, L = {N}
a. (0.5đ) {M#, Y}+ = {M#, Y, P, N, C}
=> Khóa ứng viên: {M#, Y}
b. (1đ)
- Lược đồ đạt 1 NF (giả thiết cho)
- Lược đồ không đạt 2NF vì thuộc tính không khóa N không phụ thuộc
đầy đủ vào khóa {M#, Y}: M#  N
Vậy lược đồ đạt DC cao nhất là 1NF.
c. (1đ) Phân rã bảo toàn thông tin vì
R1  R2 = {M#}, R2 – R1 = {N, C}
Và ta có
(1) M#  N, (2) N  C
=> (3) M#  C (luật bắc cầu)
Từ (1) and (3) => M#  N, C (luật hội)
i.e R1  R2  R2 – R1

You might also like