Lời nói đầuSống trong thời đại bùng nổ công nghệ thông tin ,máy tính điện tử trở thành thiết bị phổ biến rộng rãi trong đời sống con người.Nó đã len lỏi vào cuộc sống từ :vui chơi,giải t
Trang 1
Đại học giao thông vận tải
BÀI TẬP LỚN
Đề tài: Quản lý danh sách các sinh viên ở ký túc xá.
Họ và tên:Vũ Thị Thu Hiền
Mã sinh viên:1402869
Lớp:CNTT3-K55
Trang 2Lời nói đầu
Sống trong thời đại bùng nổ công nghệ thông tin ,máy tính điện tử trở thành thiết bị phổ biến rộng rãi trong đời sống con người.Nó đã len lỏi vào cuộc sống từ :vui chơi,giải trí,làm việc ,giao tiếp kết nối cộng đồng và còn nhiều hơn thế nữa.Chính vì thế mà số hóa là việc làm không chỉ cần thiết mà càng ngày trở nên bắt buộc cho sự phát triển mạnh mẽ của mọi lĩnh vực Đứng trước vai trò là một đòn bẩy kinh tế ,công nghệ thông tin đang được các tổ chức lẫn doanh nghiệp tận dụng triệt để để xây dựng nên những hệ thống thông tin hữu ích và mạnh mẽ trong cuộc canh tranh không có hồi kết này
Cuộc sống con người ngày càng đơn giản và tiện lợi từ những gì công nghệ số hóa có thể đem lại.Chúng ta ngồi ở nhà sở hữu một thiết bị kết nối internet và chỉ cần có thể là hầu hết những
gì chúng ta muốn đều có thể có(tất nhiên là nằm trong khả năng chi trả của chúng ta).Và một trong những thành tựu của công nghệ thông tin đem lại chính là thương mại điện tử-khái niệm cần thay đổi bộ mặt hệ thống cung ứng hàng hóa truyền thống
Đối với chính phủ và các công ty thì việc xây dụng các website riêng càng ngày càng trở nên cần thiết.Thông qua các trang website này ,thông tin về họ cũng như các công văn ,thông báo ,quyết định của chính phủ hay các sản phẩm ,dịch vụ mới của công ty sẽ đến với người quan tâm,đến với khách hàng của họ một cách nhanh nhất ,tránh những phiên hà mà phương thức giao tiếp truyền thông thường gặp phải
Để áp dụng lý thuyết vào thực tế ,chúng em đã tiến hành thực hiện đề tài “Quản lý các chuyến
đi của công ty du lịch”,chúng em hy vọng sẽ nhận được sự ủng hộ ,đóng góp chân thành từ phiá thầy cô và các bạn.Một lần nữa em xin chân thành cảm ơn
Trang 3M c l c ụ ụ
I Xác đ nh RBTV và ph thu c hàm, xây d ng mô hình ị ụ ộ ự
th c th liên k t ự ể ế
1,xác định ràng buộc toàn vẹn
2,xác định phụ thuộc hàm
3,xây dựng mô hình thực thể liên kết
II Chuy n t mô hình th c th liên k t sang mô hình ể ừ ự ể ế quan hệ
1,các loai thực thể,các thuộc tính của các loai thực thể
2,mô hình quan hệ
III Xác đ nh khoá ị
IV Chu n hoá l ẩ ượ c đ quan h thành d ng chu n 3NF ồ ệ ạ ẩ
ho c BCNF ặ
V Câu l nh truy v n d li u SQL ệ ấ ữ ệ
Trang 4I. Xác định RBTV và phụ thuộc hàm, xây dựng mô hình thực thể liên kết
1,Xác định ràng buộc toàn vẹn
a,Mỗi sinh viên có một mã sinh viên khác nhau để phân biệt các sinh viên với nhau
SV01,SV02 Sinhvien , SV01≠SV02 => SV01.MaSV≠SV02.MaSV
b,Mỗi phòng có một mã phòng khác nhau để phân biệt các phòng với nhau
MaP01,MaP02Phong,MaP01≠MaP02 =>MaP01.MaP≠MaP02.MaP
C,Mỗi tài sản có một mã tài sản khác nhau
MaTS01,MaTS02Taisan,MaTS01≠MaTS02 =>MaTS01.MaTS≠MaTS02.MaTS
D,Mỗi hóa đơn sẽ có một mã hóa đơn khác nhau
MaHD01,MaHD02Hoadon,MaHD01≠MaHD02 =>MaHD01.MaHD≠MaHD02.MaHD
e,Mỗi hóa đơn chỉ thuộc một phòng
g,Số lượng người của mỗi phòng phải lớn hơn 0
2,xác định phụ thuộc hàm
a,Bảng SINHVIEN:
MaSV->TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP
Trang 5b,Bảng PHONG:
MaP->Soluongnguoi
d,Bảng TAISAN:
MaTS->TenTS,SoluongTS
e,Bảng HOADON:
MaHD->Tiendien,Sonuoc,Tiennha,MaP
3,xây dựng mô hình thực thể liên kết
n
1 n
1 n
n
Sinh viên
Mã phòng
Mã tài sản
Số lượng người
Ngày sinh
Mã hóa đơn Tên
Tên SV Ngày đến ở
Số lượng
Mã SV
Tiền điện
Quê
Số nước Phòng
Tài sản
Hóa đơn Chứa
có Thuộc
Tiền nhà
Trang 61
II Chuyển từ mô hình thực thể liên kết sang mô hình quan hệ
Chuyển từ mô hình thực thể liên kết sang mô hình quan hệ
-Các loại thực thể các bảng
- Các thuộc tính của loại thực thể các thuột tính (các cột) của bảng
-Các loại liên kết:
+Nếu là liên kết 1-1: thì chuyển khoá của một bảng sang làm khoá ngoại của bảng kia
+Nếu là 1-n: thì chuyển khoá của bảng phía 1 sang làm khoá ngoại của bảng phía n ->Quan hệ 1-n giữa 2 bảng PHONG-SINHVIEN:
->Quan hệ 1-n giữa hai bảng SINHVIEN-HOADON:
Trang 7+Nếu là n-n: Thì phải thêm 1 bảng trung gian, bảng trung gian này sẽ chứa 2 thuộc tính khoá của hai bảng và cả hai thuộc tính khoá này sẽ là khoá chính cho bảng trung gian, ngoài ra bảng trung gian có thể thêm một số thuộc tính khác của mối liên kết ->Quan hệ n-n giữa 2 bảng PHONG-TAISAN:
1,các loai thực thể,và thuộc tính của các thực thể
-Bảng PHONG:
Trang 8-Bảng HOADON:
Trang 9-Bảng SINHVIEN:
Trang 10-Bảng PHONG-TAISAN:
Trang 112, mô hình quan hệ:
Trang 12II. Xác định khoá
1,Khóa của bảng tài sản:
U={MaTS,TenTS,SoluongTS}
MaTS->TenTS,SoluongTS
(K-MaTS) =(TenTS,SoluongTS)+ +=TenTS,SoluongTS ǂU =>K=MaTS,TenTS,SoluongTS ; {K-TenTS) =(MaTS,SoluongTS)+ +=MaTS, TenTS,SoluongTS=U =>K= MaTS,SoluongTS ; {K-SoluongTS} =(MaTS)+ += MaTS, TenTS,SoluongTS=U =>K= MaTS ;
Vậy khóa của bảng Tài sản là MaTS
2,Khóa của bảng phòng :
U={MaP,Soluongnguoi}
MaP->Soluongnguoi
Trang 13(K-MaP) =(Soluongnguoi)=SoluongnguoiǂU =>K= MaP,Soluongnguoi ;
(K-Soluongnguoi) =(MaP)+ += MaP,Soluongnguoi=U =>K=MaP ;
Vậy khóa của bảng Phòng là MaP
3,Khóa của bảng sinh viên :
U={MaSV,TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP}
MaSV->TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP
(K-MaSV)+=( TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP) = +
TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP ǂU
=>K= MaSV,TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP ;
(K-TenSV)+=( MaSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP) = +
MaSV,TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP=U
=>K= MaSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP ;
(K-Ngaysinh)+=( MaSV,Gioitinh,Que,Ngaydeno,MaP) = +
MaSV,TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP=U
=>K= MaSV,Gioitinh,Que,Ngaydeno,MaP ;
(K-Gioitinh)+=( MaSV,Que,Ngaydeno,MaP) = +
MaSV,TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP=U
=>K= MaSV,Que,Ngaydeno,MaP ;
(K-Que)+=( MaSV,Ngaydeno,MaP) = +
MaSV,TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP=U
=>K= MaSV,Ngaydeno,MaP ;
(K-Ngaydeno)+=( MaSV,MaP ) = MaSV,TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP=U+
=>K=MaSV,MaP ;
(K-MaP)+=( MaSV) = MaSV,TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP=U+
=>K=MaSV
Trang 14Vậy khóa của bảng Sinh viên là MaSV
4,Khóa của bảng Phòng-Tài sản :
K={MaP,MaTS}
(K-MaP) =(MaTS)+ +=MaTSǂU =>K=MaP,MaTS ;
(K-MaTS) =(MaP)+ +=MaPǂU =>K=MaP,MaTS ;
Vậy khóa của bảng Phòng-Tài sản là MaP,MaTS
5,Khóa của bảng Hóa đơn :
K={MaHD,Tiendien,Sonuoc,Tiennha,MaP}
MaHD->Tiendien,Sonuoc,Tiennha,MaP
(K-MaHD) =(Tiendien,Sonuoc,Tiennha,MaP)+ += Tiendien,Sonuoc,Tiennha,MaPǂU
=>K=MaHD,Tiendien,Sonuoc,Tiennha,MaP ;
(K-Tiendien)+=( MaHD,Sonuoc,Tiennha,MaP) = MaHD,Tiendien,Sonuoc,Tiennha,MaP=U+
=>K= MaHD,Sonuoc,Tiennha,MaP ;
(K-Sonuoc)+=( MaHD,Tiennha,MaP) = MaHD,Tiendien,Sonuoc,Tiennha,MaP=U+
=>K= MaHD,Tiennha,MaP ;
(K-Tiennha)+=( MaHD,MaP) = MaHD,Tiendien,Sonuoc,Tiennha,MaP=U+
=>K= MaHD,MaP ;
(K-MaP) =(MaHD)+ += MaHD,Tiendien,Sonuoc,Tiennha,MaP=U
=>K=MaP ;
Vậy khóa của ngảng Hóa đơn là MaP
III. Chuẩn hoá lược đồ quan hệ thành dạng chuẩn 3NF hoặc BCNF
Trang 151,Các dạng chuẩn và thuật toán chuẩn hóa.
1 Các dạng chuẩn và thuật toán chuẩn hóa.
a Các dạng chuẩn.
- Dạng chuẩn 1: Lược đồ quan hệ Q ở dạng 1NF nếu tất cả các thuộc tính của Q đều mang giá trị đơn
- Dạng chuẩn 2: Lược đồ quan hệ Q ở dạng 2NF nếu Q đạt chuẩn 1NF và tất cả các thuộc tính không khóa đều phụ thuộc hàm đầy đủ và khóa
- Dạng chuẩn 3: Lược đồ quan hệ Q ở dạng 3NF nếu Q đạt chuẩn 2NF và tất cả các thuộc tính không khóa không phụ thuộc bắc cầu vào khóa
b Thuật toán chuẩn hóa.
- Thuật toán phân rã
- Thuật toán tổng hợp
2,Cách thức chuẩn hóa trong thực tế.
Trong thực tế, chuẩn hóa lược đồ CSDL được thực hiện theo các bước sau để được đầu ra là CSDL đạt chuẩn 3NF hoặc BCNF
- Bước 1: Kiểm tra quan hệ đã đạt dạng chuẩn 1NF chưa? Nếu chưa ở dạng 1NF có nghĩa là có thuộc tính chưa nguyên tố lặp tiến hành tách các thuộc tính đó
- Bước 2: Kiểm tra xem chúng có ở dạng 2NF không? Nghĩa là kiểm tra các thuộc tính không khóa có phụ thuộc đầy đủ vào khóa chính hay không? Tiến hành tách những phụ thuộc hàm bộ phận đó thành các bảng con để giảm sự trùng lặp thông tin
- Bước 3: Kiểm tra xem chúng đã đạt dạng chuẩn 3NF chưa? Nghĩa là các thuộc tính không khóa phụ thuộc trực tiếp vào khóa chính Tiến hành tách những phụ thuộc hàm bắc cầu thành những bảnh con
- Bước 4: Kiểm tra xem chúng đã đạt dạng chuẩn BCNF chưa? Nghĩa là tất cả các phụ thuộc hàm đều có vế trái là một siêu khóa Tiến hành tách phụ thuộc hàm có vế trái chưa là siêu khóa
*Áp dụng chuẩn hóa SCDL quản lý phòng trọ sinh viên:
Theo cách xây dựng mô hình quan hệ ta có CSDL sau:
-Xét quan hệ SinhVien(MaSV,TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP).Với tập phụ thuộc hàm F1={MaSV->TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP}
Trang 16B1:Do tất cả các thuộc tính của quan hệ Sinhvien đều là thuộc tính đơn nên nó đã đạt chuần 1NF với khóa là MaSV
B2:Ta nhận thấy các thuộc tính khác (TenSV,Ngaysinh,Gioitinh,Que,Ngaydeno,MaP ) đều phụ thuộc đầy đủ vào khóa là MaSV nên quan hệ này cũng đạt chuẩn 2NF
B3:Quan hệ Sinhvien không có phụ thuộc hàm bắc cầu nên cũng đạt chuẩn 3NF B4:Đạt chuẩn BCNF vì tất cả các vế trái của các phụ thuộc hàm đều là siêu khóa -Xét quan hệ Taisan(MaTS,TenTS,SoluongTS).Với tập phụ thuộc hàm
F2={MaTS->TenTS,SoluongTS}
B1:Do tất cả các thuộc tính của quan hệ Taisan đều là thuộc tính đơn nên nó đã đạt chuẩn 1NF với khóa là MaTS
B2:Ta thấy các thuộc tính khác(TenTS,SoluongTS) đều phụ thuộc đầy đủ vào khóa là MaTS nên quan hệ này cũng đạt chuẩn 2NF
B3: Quan hệ Taisan không có phụ thuộc hàm bắc cầu nên cũng đạt chuẩn 3NF
B4: Đạt chuẩn BCNF vì tất cả các vế trái của các phụ thuộc hàm đều là siêu khóa -Xét quan hệ Phong(MaP,Soluongnguoi) Với tập phụ thuộc hàm
F3={MaP->Soluongnguoi}
B1: Do tất cả các thuộc tính của quan hệ Phong đều là thuộc tính đơn nên nó đã đạt chuẩn 1NF với khóa là MaP
B2: Ta thấy các thuộc tính khác(Soluongnguoi) đều phụ thuộc đầy đủ vào khóa là MaP nên quan hệ này cũng đạt chuẩn 2NF
B3: Quan hệ Phong không có phụ thuộc hàm bắc cầu nên cũng đạt chuẩn 3NF
B4: Đạt chuẩn BCNF vì tất cả các vế trái của các phụ thuộc hàm đều là siêu khóa -Xét quan hệ Hoadon(MaHD,Tiendien,Sonuoc,Tiennha,MaP).Với tập phụ thuộc hàm F3={MaHD-> Tiendien,Sonuoc,Tiennha,MaP}
B1: Do tất cả các thuộc tính của quan hệ Hoadon đều là thuộc tính đơn nên nó đã đạt chuẩn 1NF với khóa là MaHD
Trang 17B2: Ta thấy các thuộc tính khác(Tiendien,Sonuoc,Tiennha,MaP) đều phụ thuộc đầy đủ vào khóa là MaHD nên quan hệ này cũng đạt chuẩn 2NF
B3: Quan hệ Hoadon không có phụ thuộc hàm bắc cầu nên cũng đạt chuẩn 3NF B4: Đạt chuẩn BCNF vì tất cả các vế trái của các phụ thuộc hàm đều là siêu khóa
VI Câu lệnh truy vấn dữ liệu SQL
1,Cho biết các phòng ở tầng 1?
select MaP
from PHONG
where (MaP like 'P1%');
2,Liệt kê các sinh viên ở phòng 202?
select SV.TenSV
from SINHVIEN SV,PHONG P
where (SV MaP P MaP = ) and ( P MaP like 'P202');
3,Liệt kê các sinh viên quê ở Thanh Hóa?
select
from SINHVIEN
where (Que Like 'Thanh Hóa');
4,Đưa ra danh sách quê của các sinh viên?
select Distinct Que
from SINHVIEN;
5,Có bao nhiêu phòng có 2 người ở?
select count(MaP ) as So_phong_co_2_SV_o
from PHONG
where (Soluongnguoi = '2');
6,Liệt kê các sinh viên là nam ở tầng 3?
select TenSV,Gioitinh
from SINHVIEN
where (Gioitinh like 'Nam') and (MaP like 'P3%');
7,Liệt kê các phòng có số nước <=3 số?
Trang 18select
from HOADON
where (Sonuoc <= );3
8,Cho biết tổng lượng sinh viên có ngày đến ở trong tháng 2/2016?
select count(MaSV ) as Tong_sinh_vien_den_o_trong_thang_2 From SINHVIEN
Where(month(Ngaydeno)= )and2 year(Ngaydeno)=2016);
9,Sắp xếp danh sách các sinh viên theo ngày sinh(tăng theo ngày sinh),nếu cùng ngày sinh thì giảm theo tên?
select
from SINHVIEN
order by Ngaysinh Asc,TenSV Desc;
10,Đưa ra số lược sinh viên ở mỗi tỉnh thành khác nhau?
select Que as Tinh,count(MaSV ) as SL_SV
from SINHVIEN
group by Que;
11,Vì các phòng có số tài sản là như nhau.Tính tổng tài sản của mỗi phòng
select SUM(SoluongTS ) as Tongtaisann
from TAISAN;
12,Liệt kê những phòng có số nhiều hơn 2 cái hóa đơn?(<->Tính đến thời điểm hiện tại
có bao nhiêu phòng bắt đầu đến ở từ tháng 1)?
select MaP,count(MaP ) as So_hoa_don_moi_phong
from HOADON
group by MaP
Having COUNT(MaP)> ;2
13,Tính tổng số nước của mỗi phòng từ khi ở đến giờ?
select MaP,SUM(Sonuoc ) as
So_nuoc_cua_moi_phong_tinh_tu_khi_den
from HOADON
group by(MaP);
14,Cho biết phòng nào có số lượng sử dụng điện trung bình lớn nhất?
select MaP,AVG(Tiendien)as Tien_dien_TB_Max
Trang 19from HOADON
group by MaP
Having AVG(Tiendien)>=ALL Select AVG(Tiendien)
from HOADON
group by MaP);
15,Cho biết những tên sinh viên ở phòng có số lược sử dụng điện trung bình ít nhất?In
ra phòng,tên và quê của những sinh viên đó?
select SV.MaP SV TenSV SV Que, ,
from SINHVIEN SV,PHONG P
where (SV MaP P MaP = ) and P.MaP=(
select MaP
from HOADON
group by MaP
Having AVG(Tiendien)<=ALL Select AVG(Tiendien)
from HOADON
group by MaP));
16,Đếm xem khu trọ có bao nhiêu phòng ở?
select COUNT(MaP ) as So_luong_phong
from PHONG;