Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

TRƯỜNG ĐẠI HỌC THỦ ĐÔ HÀ NỘI

----*****-------

BÀI TẬP LỚN


Học phần: Nhập Môn Hệ Cơ Sở Dữ Liệu
Lớp học phần: 30INF013_CNTT D2022 1
Giảng viên: Ngô Thúy Ngân

Tác giả: Nhóm 1

ST Mã sinh viên Họ và tên Đánh giá công việc


T
1 222001430 Vũ Trí Dũng Tốt
2 222001441 Chu Đức Giang Tốt
3 222001451 Phạm Hải Hoàng Tốt
4 222001437 Nguyễn Quý Đạt Tốt
5 222001491 Nguyễn Thanh Sơn Tốt
NỘI DUNG TÌM HIỂU

Đề Tài 7: Quản Lý Điểm Rèn Luyện Của Sinh Viên

2
PHẦN BÀI LÀM

Đề tài 7: Quản lý Điểm Rèn Luyện Của Sinh Viên


I. Mô tả bài toán

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

II. Xác định các tập thực thể

a. Bảng sinh viên

- 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

c. Điểm rèn luyện

- Mã sinh viên

3
- Mã lớp
- Học kì
- Điểm rèn luyện

d. Xếp loại

- Điểm rèn luyện


- Học kì
- Xếp loại

e. Ngành

- Mã ngành
- Tên ngành
- Mã lớp
- Năm học

III. Mô hình quan hệ

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

πTenNganh, MaLop, COUNT(*) as TongSinhVien(γTenNganh,


MaLop(SinhVien))

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

σNgaySinh=’2001-10-20’ and DiaChi=’Điện Biên’(SinhVien)

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

πMaSinhVien, HoVaTen, NgaySinh, TenLop, HocKi, NamHoc,


DiemRenLuyen((σTenNganh=’CNTT’) and HocKi=2 and NamHoc=’2020-
2021’(DiemRenLuyen))

Câu 5: Thống kê số lượng sinh viên của các tỉnh thành

πDiaChi, COUNT(*) as TongSinhVien(γDiaChi(SinhVien))

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

πMaSinhVien, HoVaTen, DiemRenLuyen(σDiemRenLuyen≥ALL(SELECT


DiemRenLuyen FROM DiemRenLuyen)(DiemRenLuyen))
Câu 8: Thống kê theo ngành, lớp tổng số sinh viên đạt các mức xếp loại

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

πTenNganh, TenLop, SinhVien, COUNT(*) as TongSo(γTenNganh, TenLop,


SinhVien(SinhVien))

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

πMaSinhVien, HoVaTen, TenNganh(σTenNganh=’Luật’ or


TenNganh=’CNTT’ and XepLoai=’Xuất sắc’(DiemRenLuyen⋈SinhVien))

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

A, Xét quan hệ SinhVien = (MaSinhVien(A), HoVaTen(B), NgaySinh(C),


GioiTinh(D), DiaChi(E) với tập các phụ thuộc F1 = {A → BCDE} và tập khóa K1
= {A}.

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.

B, Xét quan hệ Lop = (MaSinhVien(A), MaLop(B),TenLop(C), TenNganh(D),


NamHoc(E), MaNganh(F) với tập các phụ thuộc F2 = {A → BCDEF} và tập khóa
K2 = {A}.

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.

C, Xét quan hệ DiemRenLuyen = ( MaSinhVien(A), MaLop(B), HocKi(C),


DiemRenLuyen(D) ) với tập các phụ thuộc F3 = {A → BCD} và tập khóa K3 =
{A}.

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.

D, Xét quan hệ Nganh = (MaNganh(A), TenNganh(B),MaLop(C),NamHoc(D))


với tập các phụ thuộc F4 = {A → BCD} và tập khóa K4 = {A}.

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.

E, Xét quan hệ XepLoai = (DiemRenLuyen(A), HocKi(B), XepLoai(C)) với tập


các phụ thuộc F5 = {A → BC} và tập khóa K5 = {A}.

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.

VI. Tìm phủ tối tiểu của từng quan hệ trên.

 SinhVien: F1 = {A  BCDE}

o Bước 1: Tách VP của PTH: F1 = {A  B, A C, A D, A E}

o Bước 2: Loại bỏ các PTH dư thừa

 Xét A  B tính A+ không dùng A  B: A+ = ACDE không có B nên


A  B không thừa

 Xét A  C tính A+ không dùng A C: A+ = ABDE không có C nên


A  C không thừa

 A  D tính A+ không dùng A  D: A+ = ABCE không có D nên


A  D không thừa

 A  E tính A+ không dùng A  E: A+ = ABCD không có E nên


A  E 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à F1 = { A  B, A C, A D, A E}

 Lop: F2 = {A  BCDEF}

o Bước 1: Tách VP của PTH: F2 = {A  B, A C, A D, A E, A F}

o Bước 2: Loại bỏ các PTH dư thừa

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

 Xét A  C tính A+ không dùng A C: A+ = ABDEF không có C nên


A  C không thừa

 A  D tính A+ không dùng A  D: A+ = ABCEF không có D nên


A  D không thừa

 A  E tính A+ không dùng A  E: A+ = ABCDF không có E nên


A  E không thừa

 A  F tính A+ không dùng A  F: A+ = ABCDE không có F nên A  F


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 1: Tách VP của PTH: F3= {A  B, A→ C, A→D}

o Bước 2: Loại bỏ các PTH dư thừa: Không có

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 1: Tách VP của PTH: F4 = { A  B, A→ C, A→D}

o Bước 2: Loại bỏ các PTH dư thừa: Không có

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 1: Tách VP của PTH: F5 = {A  B, A C}

o Bước 2: Loại bỏ các PTH dư thừa

 Xét A  B tính A+ không dùng A  B: A+ = AC không có B nên


A  B không thừa

 Xét A  C tính A+ không dùng A  C: A+ = AB không có C nên


A  C 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à F5= {A  B, A  C}

VII. Tìm khóa

 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

Bước 1: Tìm khóa:


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

Bước 2: Tìm phủ tối tiểu:


SinhVien: F1 = {A  BCDE}

o Tách VP của PTH: F1 = {A  B, A C, A D, A E}

o Loại bỏ các PTH dư thừa

 Xét A  B tính A+ không dùng A  B: A+ = ACDE không có B nên


A  B không thừa
 Xét A  C tính A+ không dùng A C: A+ = ABDE không có C nên
A  C không thừa
 A  D tính A+ không dùng A  D: A+ = ABCE không có D nên
A  D không thừa
 A  E tính A+ không dùng A  E: A+ = ABCD không có E nên
A  E không 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à 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 Tách VP của PTH: F1 = {A  B, A C, A D, A E, A F}

o Loại bỏ các PTH dư thừa

 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
 Xét A  C tính A+ không dùng A C: A+ = ABDEF không có C nên
A  C không thừa
 A  D tính A+ không dùng A  D: A+ = ABCEF không có D nên
A  D không thừa
 A  E tính A+ không dùng A  E: A+ = ABCDF không có E nên
A  E không thừa
 A  F tính A+ không dùng A  F: A+ = ABCDE không có E nên
A  E không 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à 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

Bước 2: Tìm phủ tối tiểu:


DiemRenLuyen: F3 = {A  BCD}

o Tách VP của PTH: F3 = {A  B, A C, A D}

11
o Loại bỏ các PTH dư thừa

 Xét A  B tính A+ không dùng A  B: A+ = AC không có B nên A 


B không thừa
 Xét A  C tính A+ không dùng A C: A+ = AB không có C nên A
 C không thừa
 A  D tính A+ không dùng A  D: A+ = ABCEF không có D nên
A  D không 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

Bước 2: Tìm phủ tối tiểu:


Nganh: F4 = {A  B, A  C, A  D}

o Tách VP của PTH: Không có

o Loại bỏ các PTH dư thừa

 Xét A  B tính A+ không dùng A  B: A+ = ACDE không có B nên


A  B không thừa
 Xét A  C tính A+ không dùng A C: A+ = AB không có C nên A
 C không thừa
 A  D tính A+ không dùng A  D: A+ = ABCEF không có D nên
A  D không thừ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

Bước 2: Tìm phủ tối tiểu:


XepLoai: F5 = {A  BC}

o Tách VP của PTH: F5 = {A  B, A C }

o Loại bỏ các PTH dư thừa

 Xét A  B tính A+ không dùng A  B: A+ = ACDE không có B nên


A  B không thừa
 Xét A  C tính A+ không dùng A C: A+ = ABDE không có C nên
A  C không 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à 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))

Vậy đã chuẩn hóa các quan hệ SinhVien, Lop,DiemRenLuyen, Nganh,


XepLoai bằng phép tách bảo toàn phụ thuộc thành 3NF

13
14

You might also like