Professional Documents
Culture Documents
btl-csdl
btl-csdl
----*****-------
2
PHẦN BÀI LÀM
Bài toán đưa ra là quản lý điểm rèn luyện của sinh viên của một trường Đại học.
Các vấn đề cần quản lý là:
- Sinh Viên
- Bảng điểm
- Môn học
- Giảng viên dạy học
- Sau khi có điểm rèn luyện thang 100 tiến hành đánh giá sinh viên theo tiêu chí:
Điểm rèn luyện >=90 Xếp loại: Xuất sắc
90>Điểm rèn luyện >=80 Xếp loại: Giỏi
80>Điểm rèn luyện >=65 Xếp loại: Khá
65>Điểm rèn luyện >=50 Xếp loại: Trung bình
50>Điểm rèn luyện >=35 Xếp loại: Yếu
- Mã sinh viên
- Họ và tên
- Ngày sinh
- Giới tính
- Địa chỉ
b. Bảng lớp
- Mã lớp
- Mã sinh viên
- Tên lớp
- Tên ngành
- Năm học
- Mã ngành
- Mã sinh viên
3
- Mã lớp
- Học kì
- Điểm rèn luyện
d. Xếp loại
e. Ngành
- Mã ngành
- Tên ngành
- Mã lớp
- Năm học
IV. Thực hiện câu truy vấn bằng ngôn ngữ đại số quan hệ hoặc SQL
Câu 1: Tìm tất cả các sinh viên thuộc ngành Luật và năm nhập học 2020
σTenNganh=′Luật′∧NamHoc=2020(SinhVien)
4
Câu 2: Thống kê tổng số sinh viên các ngành theo lớp
Câu 3. Tìm các sinh viên có ngày sinh nhật là 20/10/2001 và ở tỉnh Điện Biên
Câu 4 : Lọc ra điểm rèn luyện của các lớp thuộc ngành CNTT của học kỳ II năm
học 2020-2021
Câu 6: Cập nhật Xếp loại sinh viên theo ngưỡng điểm trên đề bài
UPDATE DiemRenLuyen
SET XepLoai =
CASE
WHEN DiemRenLuyen >= 90 THEN 'Xuất sắc'
WHEN DiemRenLuyen >= 80 THEN 'Giỏi'
WHEN DiemRenLuyen >= 65 THEN 'Khá'
WHEN DiemRenLuyen >= 50 THEN 'Trung bình'
WHEN DiemRenLuyen >= 35 THEN 'Yếu'
ELSE 'Kém'
END;
Câu 7: Tìm 10 sinh viên có điểm rèn luyện cao nhất trong toàn trường
5
πTenNganh, TenLop, XepLoai, COUNT(*) as TongSo(γTenNganh, TenLop,
XepLoai(DiemRenLuyen))
Câu 9: Thống kê sinh viên theo ngành, lớp và đối tượng sinh viên
Câu 10: Liệt kê các sinh viên ngành Luật và ngành CNTT đạt xếp loại Xuất sắc
V. Thiết lập các phụ thuộc hàm và chuẩn hóa các lược đồ quan hệ về dạng
chuẩn 3NF
Ta thấy không có thuộc tính không khóa nào (B,C,D,E) phụ thuộc hàm bắc cầu vào
khóa của quan hệ này. Vậy SinhVien ở dạng chuẩn 3.
Ta thấy không có thuộc tính không khóa nào (A,C,D,E,F) phụ thuộc hàm bắc cầu
vào khóa của quan hệ này. Vậy Lop ở dạng chuẩn 3.
Ta thấy không có thuộc tính không khóa nào (B) phụ thuộc hàm bắc cầu vào khóa
của quan hệ này. Vậy DiemRemLuyen ở dạng chuẩn 3.
6
Ta thấy không có thuộc tính không khóa nào (B) phụ thuộc hàm bắc cầu vào khóa
của quan hệ này. Vậy Nganh ở dạng chuẩn 3.
Ta thấy không có thuộc tính không khóa nào (BC) phụ thuộc hàm bắc cầu vào
khóa của quan hệ này. Vậy XepLoai ở dạng chuẩn 3.
SinhVien: F1 = {A BCDE}
o Bước 3: Loại bỏ các thuộc tính dư thừa bên trái của mỗi PTH: Không có
Vậy phủ tối tiếu là F1 = { A B, A C, A D, A E}
Lop: F2 = {A BCDEF}
7
Xét A B tính A+ không dùng A B: A+ = ACDEF không có B nên
A B không thừa
o Bước 3: Loại bỏ các thuộc tính dư thừa bên trái của mỗi PTH: Không có
Vậy phủ tối tiếu là F2= {A B, A C, A D, A E, A F}
DiemRenLuyen: F3 = {A BCD}
o Bước 3: Loại bỏ các thuộc tính dư thừa bên trái của mỗi PTH: Không có
Vậy phủ tối tiếu là F3= {A B, A→ C, A→D}
Nganh: F4 = {A BCD}
o Bước 3: Loại bỏ các thuộc tính dư thừa bên trái của mỗi PTH: Không có
Vậy phủ tối tiếu là F4 = {A B, A→ C, A→D}
8
XepLoai: F5 = {A BC}
o Bước 3: Loại bỏ các thuộc tính dư thừa bên trái của mỗi PTH: Không có
Vậy phủ tối tiếu là F5= {A B, A C}
SinhVien: F1 = {A BCDE}
Tìm giao của khóa: P = U – {BCDE} = ABCDE – BCDE = A
Lấy A+ = ABCDE = U vậy A là khóa
Lop: F2 = {A BCDEF}
Tìm giao của khóa: P = U – {BCDEF} = ABCDEF – BCDEF = A
Lấy A+ = ABCDEF = U vậy A là khóa
DiemRenLuyen: F3 = {A B, A C, A→D}
Tìm giao của khóa: P = U – {BC} = ABCD – BCD = A
Lấy A+ = ABCD = U vậy A là khóa
Nganh: F4 = {A B, A→ C, A→D}
Tìm giao của khóa: P = U – {B} = ABCD – BCD = A
Lấy A+ = ABCD = U vậy A là khóa
XepLoai: F5 = {A BC}
Tìm giao của khóa: P = U – {BC} = ABC – BC = A
Lấy A+ = ABC = U vậy A là khóa
9
VIII. Chuẩn hóa các quan hệ trên bằng phép tách bảo toàn phụ thuộc thành
3NF
SinhVien
o Loại bỏ các thuộc tính dư thừa bên trái của mỗi PTH: Không có
Vậy phủ tối tiếu là F1 = {A B, A C, A D, A E}
Bước 3: Xác định lược đồ con:
A B, A C, A D, A E: R1(ABCDE) khóa A
Vậy P1 = (R1(ABCDE))
Lop
Bước 1: Tìm khóa:
Lop: F2 = {A BCDEF}
Tìm giao của khóa: P = U – {BCDEF} = ABCDEF – BCDEF = A
Lấy A+ = ABCDEF = U vậy A là khóa
10
Bước 2: Tìm phủ tối tiểu:
Lop: F2 = {A BCDEF}
o Loại bỏ các thuộc tính dư thừa bên trái của mỗi PTH: Không có
Vậy phủ tối tiếu là F2 = {A B, A C, A D, A E, A F}
Bước 3: Xác định lược đồ con:
A B, A C, A D, A E, A F: R1(ABCDEF) khóa A
Vậy P2 = (R1(ABCDEF))
DiemRenLuyen
Bước 1: Tìm khóa:
DiemRenLuyen: F3 = {A BCD}
Tìm giao của khóa: P = U – {BCD} = ABCD – BCD = A
Lấy A+ = ABCD = U vậy A là khóa
11
o Loại bỏ các PTH dư thừa
o Loại bỏ các thuộc tính dư thừa bên trái của mỗi PTH: Không có
Vậy phủ tối tiếu là F3 = {A B, A C, A D}
Bước 3: Xác định lược đồ con:
A B, A C, A D: R1(ABCD) khóa A
Vậy P3 = (R1(ABCD))
Nganh
Bước 1: Tìm khóa:
Nganh: F4 = {A B, A C, A D}
Tìm giao của khóa: P = U – {BCD} = ABCD – BCD = A
Lấy A+ = ABCDE = U vậy A là khóa
12
o Loại bỏ các thuộc tính dư thừa bên trái của mỗi PTH: Không có
Vậy phủ tối tiếu là F4 = {A B, A C, A D}
Bước 3: Xác định lược đồ con:
A B, A C, A D: R1(ABCD) khóa A
Vậy P4 = (R1(ABCD))
XepLoai
Bước 1: Tìm khóa:
XepLoai: F5 = {A BC}
Tìm giao của khóa: P = U – {BCD} = ABC – BC = A
Lấy A+ = ABC= U vậy A là khóa
o Loại bỏ các thuộc tính dư thừa bên trái của mỗi PTH: Không có
Vậy phủ tối tiếu là F5 = {A B, A C}
Bước 3: Xác định lược đồ con:
A B, A C: R1(ABC) khóa A
Vậy P5 = (R1(ABC))
13
14