trữ toàn bộ về thông tin sinh viên như mã sinh viên, tên sinh viên và số điện thoại trên hệ thống và khi nhận phòng sẽ cập nhập thêm ID phòng trên hệ thống.. Chương khảo sát thực tế ● Yê
Trang 1ĐẠI HỌC THỦY LỢI
BÁO CÁO BÀI TẬP LỚN MÔN HỌC
CƠ SỞ DỮ LIỆU
ĐỀ TÀI:
QUẢN LÝ KÝ TÚC XÁ SINH VIÊN
Thành viên:
Giảng viên hướng dẫn : Trần Hồng Diệp
Trang 2Mục lục
b Chuyển từ mô hình thực thể liên kết
Trang 3A Bảng phân chia công việc
Khảo sát thực tế
mô hình quan hệ
khóa
dạng chuẩn 3NF
Server
Trang 4B. Nội dung
CHƯƠNG I CHƯƠNG TỔNG QUAN
1 Đặt vấn đề
của các hệ thống quản lý như quản lý ngân hàng, thư viện, kí túc xá đã giảm thiểu được số lượng chi phí đầu tư cho nguồn nhân công, đảm bảo được tính bảo mật và có tính lưu trữ cao, đồng thời tăng hiệu quả về độ chính xác trong việc quản lý
● Hiện nay các trường đại học với số lượng sinh viên đăng kí ở kí túc xá tương đối nhiều Việc quản lí kí túc xá sinh viên của trường là rất khó khăn nếu không
có ứng dụng của tin học Đây là vấn đề rất bức thiết đối với nhà trường
trường đại học, chúng em đã vào tìm hiểu và đi sâu vào nghiên cứu đề tài: “QUẢN LÝ
KÝ TÚC XÁ SINH VIÊN” dưới sự hướng dẫn của giảng viên Trần Hồng Diệp phụ
trách bộ môn Cơ sở dữ liệu
2 Mô tả bài toán
● Khi sinh viên có nhu cầu đăng ký tạm trú tại ký túc xá của trường sẽ phải thực hiện thủ tục với tổ công tác sinh viên, bộ phận quản lý hợp đồng của sinh viên Nếu hồ sơ được đáp ứng thì hệ thống sẽ nhận hợp đồng Trong hợp đồng gồm ID hợp đồng, ID phòng, thời hạn và ghi chú(bao gồm các điều khoản)
trữ toàn bộ về thông tin sinh viên như mã sinh viên, tên sinh viên và số điện thoại trên
hệ thống và khi nhận phòng sẽ cập nhập thêm ID phòng trên hệ thống
mới Sẽ được cập nhập lại thông tin về số sinh viên và một số thông tin khác Cập nhập lại tình trạng nội thất sau mỗi tháng
nước, tiền phòng Sinh viên có thể nộp 2 hình thức, sau đó sẽ được cập nhập trên hệ thống và có 1 bản để sinh viên có thể xuất thành file pdf hay in
Trang 5CHƯƠNG II CHƯƠNG CÔNG VIỆC
1 Chương khảo sát thực tế
● Yêu cầu về lưu trữ dữ liệu có trong thực tế :
- Hóa đơn (ID hóa đơn, ID phòng, ID sinh viên, tiền điện, tiền nước, tiền thuê phòng, thời gian xuất hóa đơn)
- Sinh viên ( ID Sinh viên, ID hợp đồng, tên sinh viên, số điện thoại)
Chứng từ :
● Thao tác công việc:
sinh viên
phòng Nếu hết phòng hoặc sinh viên không đủ điều kiện đăng ký: từ chối cho sinh viên ở ký túc xá Nếu đạt yêu cầu, sinh viên nộp tiền phòng và lập hợp đồng thuê phòng
- Khi nhận phòng, sinh viên kiểm tra tình trạng cơ sở vật chất, diện tích, sức chứa,
gửi cho sinh viên, sinh viên có trách nhiệm đóng tiền đúng thời hạn
xóa hồ sơ sinh viên và các thông tin liên quan
thông tin lại từ đầu cho ban quản lý ký túc xá
Trang 62 Xây dựng cơ sở dữ liệu a Mô hình thực thể liên kết
b Chuyển từ mô hình thực thể liên kết sang mô hình quan hệ
thực thể còn lại
c Mô hình quan hệ:
Trang 7Mỗi 1 sinh viên có một ID sinh viên và ID hợp đồng riêng biệt không trùng lặp, tên sinh viên, số điện thoại
● ID sinh viên → ID hợp đồng, Tên sinh viên, Số điện thoại
Mỗi một hợp đồng sẽ có một ID hợp đồng và riêng biệt không trùng lặp, ID phòng, thời hạn và ghi chú
● ID hợp đồng → ID phòng, Thời hạn, Ghi chú
Mỗi phòng thuê có một ID phòng riêng biệt và không trùng lặp, diện tích và sức chứa
Mỗi một hoá đơn có một ID hoá đơn riêng biệt và không trùng lặp, ID sinh viên, ID phòng , Tiền điện, Tiền nước, Tiện thuê phòng, Thời gian xuất hoá đơn
Tiền thuê phòng, Thời gian xuất hoá đơn
e Tìm khóa cho các quan hệ
Quan hệ HDKTX (ID phòng, Diện tích, Sức chứa, ID hợp đồng, Thời hạn, Ghi chú, ID hóa đơn, Tiền điện, Tiền nước, Tiền thuê phòng, Thời gian xuất hóa đơn, ID sinh viên, Tên sinh viên, Số điện thoại)
ID hợp đồng → ID phòng, Thời hạn, Ghi chú;
ID hóa đơn →ID sinh viên, ID phòng, Tiền điện, Tiền nước, Tiền thuê phòng, Thời gian xuất hóa đơn;
ID sinh viên →Tên sinh viên, Số điện thoại, ID hợp đồng } Tập thuộc tính U = { (thuộc tính )ID phòng, Diện tích, Sức chứa, ID hợp đồng, Thời hạn, Ghi chú, ID hóa đơn, Tiền điện, Tiền nước, Tiền thuê phòng, Thời gian xuất hóa đơn, ID sinh viên, Tên sinh viên, Số điện thoại}
Ta có giao của các khoá là:
Trang 8X = U - {Diện tích, Sức chứa, ID phòng, Thời hạn, Ghi chú, ID sinh vien, ID phong, Tiền điện, Tiền nước, Tiền thuê phòng, Thời gian xuất hóa đơn, Tên sinh viên, Số điện thoại, ID hợp đồng}
= {ID hoá đơn}
X+ = Bao đóng (ID hoá đơn)+ = tập thuộc tính U
Quan hệ chỉ có 1 khóa duy nhất ID hoá đơn
f Chuẩn hóa lược đồ quan hệ thành dạng chuẩn 3NF
Quan hệ HDKTX có:
U = (ID phòng, Diện tích, Sức chứa, ID hợp đồng, Thời hạn, Ghi chú, ID hóa đơn, Tiền điện, Tiền nước, Tiền thuê phòng, Thời gian xuất hóa đơn, ID sinh viên, Tên sinh viên, Số điện thoại)
ID hợp đồng → ID phong, Thời hạn, Ghi chú;
ID hóa đơn →ID sinh vien, ID phong, Tiền điện, Tiền nước, Tiền thuê phòng, Thời gian xuất hóa đơn;
ID sinh viên →Tên sinh viên, Số điện thoại, ID hợp đồng } Khoá là ID hoá đơn
Đưa về đạt chuẩn 3NF.
● Bước 2: Kiểm tra đã đạt 2NF chưa: Quan hệ chưa đạt chuẩn 2NF do có thuộc tính không khoá không phụ thuộc đầy đủ vào khoá
Để đạt chuẩn 2NF ta tách thành 4 quan hệ:
- Hợp đồng (ID hợp đồng, ID phòng, thời hạn, ghi chú)
- Hoá đơn (ID hoá đơn, ID sinh viên, ID phòng, tiền điện, tiền nước, tiền thuê phòng, thời gian xuất hoá đơn)
- Sinh viên (ID sinh viên, tên sinh viên, số điện thoại, ID hợp đồng)
● Bước 3: Kiểm tra đã đạt 3NF chưa:
Trang 9Quan hệ Phòng đã đạt 3NF vì không có thuộc tính không khóa nào phụ thuộc bắc cầu vào thuộc tính khóa
Quan hệ Hợp đồng đã đạt 3NF vì không có thuộc tính không khóa nào phụ thuộc bắc cầu vào thuộc tính khóa
Quan hệ Hoá đơn đã đạt 3NF vì không có thuộc tính không khóa nào phụ thuộc bắc cầu vào thuộc tính khóa
Quan hệ Sinh viên đã đạt 3NF vì không có thuộc tính không khóa nào phụ thuộc bắc cầu vào thuộc tính khóa
3 Khai thác dữ liệu
*Để ngắn gọn cho việc truy xuất, tên các thuộc tính sẽ được đổi sang tên viết tắt:
- Phòng thuê: Room (R#(ID phòng), Area(diện tích),SC (sức chứa)
- Hóa đơn: Bill (B# (ID hóa đơn),R#, Elec (tiền điện), Water(tiền nước), Rent (tiền thuê phòng), Time(thời gian xuất hóa đơn), ID sinh viên(MSV)
- Hợp đồng: Contract (C# (ID hợp đồng), R#, Term(thời hạn), Note(ghi chú))
a Cài đặt mô hình quan hệ trong SQL Server
- Tạo CSDL mới:
CREATE DATABASE
KTX#2;- Tạo bảng Room:
CREATE TABLE Room(
R# nchar(10) not null PRIMARY KEY,
Area int ,
SC int)
- Tạo bảng Contract:
CREATE TABLE Contract(
C# nchar(10) not null PRIMARY
KEY, R# nchar(10) not null,
Term date,
Note nchar(100),
FOREIGN KEY(R#) REFERENCES Room(R#))
- Tạo bảng SV:
CREATE TABLE SV(
MSV nchar(10) not null PRIMARY KEY,
Trang 10Name nchar(30) not null,
SDT nchar(15),
C# nchar(10) not null,
FOREIGN KEY(C#) REFERENCES Contract(C#))
- Tạo bảng Bill:
CREATE TABLE Bill(
B# nchar(10) not null PRIMARY KEY,
R# nchar(10) not null,
Elec int,
Water int,
Rent int,
Time date,
MSV nchar(10),
FOREIGN KEY(R#) REFERENCES Room(R#),
FOREIGN KEY(MSV) REFERENCES SV(MSV))
b Truy vấn dữ liệu:
1 Cho biết tên tất cả sinh viên thuê phòng
FROM SV
2 Cho biết tất cả các ID hợp đồng
- C# (Contract)
FROM Contract
3 Cho biết thông tin tất cả sinh viên thuê phòng
4 Cho biết tên sinh viên có hóa đơn là B101
- Name ( σ B# = ‘B101’ ( σ SV.MSV=Bill.MSV ( SV x Bill )))
WHERE SV.MSV = Bill.MSV AND B# = 'B101'
Trang 115 Cho biết phòng có tiền phòng lớn hơn 200
- ( (Bill) )
FROM Bill WHERE Rent>200
6 Cho biết tên sinh viên có mã hóa đơn là B101 và ID phòng là R100
- Name((σB#=’B101’ R#=’R100’(σBill.MSV=SV.MSV (Bill x SV))))
FROM Bill, SV WHERE Bill.MSV=SV.MSV AND B#='B101' AND R#='R100'
7 Cho biết tên sinh viên có ID phòng là R101 và ID hợp đồng là C101
- Name ( σ ( R# = R101C# = C101 )(σContract.C#=SV.C#(Contract x SV)))
FROM SV WHERE C# = 'C101' AND C# in
(SELECT C#
FROM Contract WHERE R#='R101')
8 Cho biết tên sinh viên có mã hóa đơn là B101 và tiền nước lớn hơn hoặc bằng 100
- Name(σB#=’B101’ water >=100(σBill.MSV=SV.MSV (Bill x SV)))
FROM Bill, SV WHERE Bill.MSV= SV.MSV AND B#='B101' AND Water>= 100
9 Cho biết ID sinh viên có tiền phòng lớn hơn 100 và có thời gian xuất hóa đơn là ngày 1/12/2021
- MSV (σ(Rent>100 Time=’2021/12/01’) (Bill))
FROM Bill WHERE Rent>100 AND Time = '2021/12/01'
10 Cho biết ID phòng có thời gian xuất hóa đơn vào ngày 1/12/2021
- MSV (σTime=’2021/12/01’ (Bill))
FROM Bill
Trang 1211 Cho biết phòng thuê có thời hạn đến 15/01/2022
- R# (σTerm=’2022/01/15’ (Bill))
FROM Contract WHERE Term = '2022/01/15'
12 Cho biết tên những sinh viên ở cùng phòng ‘R101’
FROM SV, Contract WHERE SV.C# = Contract.C# and R#='R101'
13 Cho biết tổng số tiền phải đóng của sinh viên có ID sinh viên là M1
WHERE MSV='M1'
14 Cho biết tổng số tiền tất cả các sinh viên trong phòng R100 phải đóng
WHERE R#='R100'
15 Cho biết tên sinh viên có tiền điện lớn nhất
FROM SV WHERE MSV IN
(SELECT MSV FROM Bill WHERE Elec = (SELECT MAX(Elec) FROM Bill))
Trang 13KẾT LUẬN
Cơ hội làm bài tập lớn giúp cho bọn em được củng cố lại kiến thức, đem những kiến thức đã học áp dụng vào thực tế đồng thời cũng giúp bọn em cải thiện việc làm việc nhóm
Vì thời gian làm có hạn, kiến thức của bọn em còn nhiều hạn chế và đây là lần đầu tiên tiếp xúc với một vấn đề lớn mà bọn em chưa có kinh nghiệm thực tế Do vậy, nội dung của bài tập chưa thật sự sâu sắc, không tránh khỏi những sai sót và hạn chế trong bài làm Bọn em hi vọng được thầy/cô chỉ bảo, góp ý thêm để bài làm của bọn em được hoàn thiện hơn