Khi làm bài do trình độ cũng như sự hiểu biết cá nhân, thời gian làmcó hạn nên quy mô hệ thống thông tin chưa lớn, chưa toàn diện cho tất cảcác mặt quản lý thông tin trong hoạt động quản
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN
-o0o -BÀI TẬP LỚNCƠ SỞ DỮ LIỆU
Giảng viên hướngdẫn
: TS Nguyễn Quốc Tuấn
-211242323Phạm Quang Anh -
Trang 2Hà Nội, tháng 2 năm 2023LỜI NÓI ĐẦU
Nhóm 6 xin chân thành cảm ơn thầy Nguyễn Quốc Tuấn đã giúp đỡ chúng
em trong quá trình học tập, nghiên cứu làm bài tập lớn môn “Cơ sở dữ
liệu” Khi làm bài do trình độ cũng như sự hiểu biết cá nhân, thời gian làmcó hạn nên quy mô hệ thống thông tin chưa lớn, chưa toàn diện cho tất cảcác mặt quản lý thông tin trong hoạt động quản lý cửa hàng Vì vậy kínhmong thầy thông cảm chỉ bảo để chúng em có thể rút kinh nghiệm trong cácđồ án của những môn học sau được tốt hơn Hy vọng trong tương lai gầnem có thêm thời gian và kiến thức để hoàn thiện tốt hơn bài tập lớn này.
Hà Nội, 02/2023
Trang 31 Ràng buộc toàn vẹn miền giá trị 10
2 Ràng buộc toàn vẹn liên bộ 10
3 Ràng buộc toàn vẹn tham chiếu 11
4 Ràng buộc toàn vẹn liên thuộc tính, liên quan hệ 11
5 Ràng buộc toàn vẹn liên bộ, liên quan hệ 12
6 Bảng tầm ảnh hưởng tổng hợp 12
Trang 4Phần 1 : Giới thiệu đề tài1 Chức năng
- Chức năng của database quản lý chuỗi cửa hàng bán máy tính có thể gồm :+ Quản lý thông tin về nhân viên
+ Quản lý các mặt hàng máy tính được thu mua vàbày bán
+ Quản lý doanh số theo ngày, tháng, nhân viên,khách hàng
+ Quản lý danh sách khách hàng và các đối tác cungcấp sản phẩm
2 Quy mô (phạm vi)
- Chuỗi cửa hàng máy tính có quy mô vừa và nhỏ trên địa bàn thành phố Hà Nội
Trang 5Phần 2 : Xác định mô hình thực thể liên kết1 Các kiểu thực thể
- SHOP ( MÃ SHOP, HOTLINE, CHỦ, TÊN, ĐỊA CHỈ )- NHÂN VIÊN ( MÃ NV, MÃ SHOP, TÊN, NGÀY SINH, SĐT, CHỦ,
GIỚI TÍNH, NHIỆM VỤ, SỞ THÍCH )
- NHÀ CUNG CẤP ( MÃ NHÀ CUNG CẤP, TÊN NHÀ CUNG CẤP, ĐỊA
CHỈ, SĐT, TÊN GIAO DỊCH )
- MÁY TÍNH ( MÃ HÀNG, TÊN HÀNG, SỐ LƯỢNG, ĐƠN GIÁ, ĐƠN
VỊ TÍNH, CPU, RAM, VGA, Ổ CỨNG, HỆ ĐIỀU HÀNH )
- KHÁCH HÀNG ( MÃ KHÁCH HÀNG, TÊN, SĐT, TÊN GIAO DỊCH,
ĐỊA CHỈ EMAIL )
- HÓA ĐƠN NHẬP HÀNG ( MÃ HÓA ĐƠN, NGÀY NHẬP, ĐƠN GIÁ,
SỐ LƯỢNG, ĐƠN VỊ TÍNH, MÃ HÀNG, MÃ NHÀ CUNG CẤP )
- HÓA ĐƠN BÁN HÀNG ( MÃ HÓA ĐƠN, ĐƠN GIÁ, ĐƠN VỊ TÍNH,
NGÀY BÁN, MÃ KHÁCH HÀNG, MÃ NV, MÃ HÀNG, SỐ LƯỢNG )
2 Mô hình ER
- Mối liên kết giữa các kiểu thực thể : + 1,n : Một shop quản lý nhiều nhân viên
Trang 6+ 1,n : Một nhân viên in ra nhiều hóa đơn bán hàng
+ 1,n : Một khách hàng thanh toán nhiều hóa đơn bán hàng
+ 1,n : Một hóa đơn có thể có nhiều máy tính
+ 1,n : Một nhà cung cấp tạo ra nhiều hóa đơn nhập hàng
Trang 7- Sơ đồ thực thể liên kết :
Trang 8Phần 3 : Chuyển từ mô hình thực thể liên kết
sang mô hình quan hệ1 Cách chuyển đổi
Bước 1 : Chuyển tất cả tập thực thể sang mô hình quan hệ- Mỗi thực thể chuyển thành một quan hệ cùng tên và danh sách thuộc tính => Bảng
- Thuộc tính khóa trở thành khóa chính của quan hệ- Thuộc tính thường chuyển sang bổ sung kiểu dữ liệu=> Các cột của bảng
Bước 2 : Chuyển đổi thực thể thông qua các mối quan hệ - Đối với mối quan hệ 1-1 :
+ Bổ sung khoá ngoại vào 1 hoặc cả hai bảng+ Trỏ khoá ngoại của bảng này đến bảng kia- Đối với mối quan hệ 1-n :
+ Bổ sung khoá ngoại vào bảng một+ Trỏ khoá ngoại của bảng một sang bảng nhiều- Đối với mối quan hệ n-n :
+ Lập ra một bảng riêng có tên của mối kết hợp+ Bổ sung một cặp khoá chính gồm khoá chính của hai bảng+ Đồng thời mỗi khoá chính cũng là khoá ngoại trỏ về hai bảngBước 3 : Hoàn thành việc chuyển đổi bằng cách kiểm tra lại chuẩn của các mối quan hệ vừa chuyển đổi có chính xác và phù hợp hay chưa
Trang 92 Chuyển đổi các kiểu thực thể, mối liên kết
- SHOP : MaShop || Ten || Dchi || Hotline || Chu- NHANVIEN : MaNV || MaShop || TenNV || Sdt || Chu || Gtinh || Nvu ||
Trang 10Phần 4 : Xác định các ràng buộc toàn vẹn1 Ràng buộc toàn vẹn miền giá trị
RB-1 : Giá của mỗi máy tính không nhỏ hơn 4000000đ+ Bối cảnh : MAYTINH
+ t MAYTINH (t.DonGia >= 4000000)Ɐ ϵ
MAYTINH + (DonGia) - +(DonGia)
RB-2 : Lương của nhân viên phải lớn hơn 5000000đ+ Bối cảnh : NHANVIEN
+ t NHANVIEN (t.Luong > 5000000)Ɐ ϵ
NHANVIEN +(Luong) - +(Luong)
2 Ràng buộc toàn vẹn liên bộ
RB-3 : Tên shop là duy nhất + Bối cảnh : SHOP+ t1,t2 SHOP (t1 ≠ t2 => t1.SHOP ≠ t2.SHOP)Ɐ ϵ
Trang 11RB-4 : Mỗi hóa đơn nhập hàng phải có mã riêng biệt+ Bối cảnh : HOADONNHAPHANG
+ t1,t2 Hoadonnhaphang (t1 ≠ t2 => t1.MaHD ≠ t2.MaHD)Ɐ ϵ
HOADONNHAPHANG
3 Ràng buộc toàn vẹn tham chiếu
RB-5 : Hóa đơn bán hàng phải được tạo bởi một nhân viên+ Bối cảnh : HOADONBANHANG, NHANVIEN+ t Hoadonbanhang ( u Nhanvien(u.MaNV = t.MaNV))Ɐ ϵ Ǝ ϵ
HOADONBANHANG +(MaNV) - +(MaNV)
NHANVIEN - +(MaNV) +(MaNV)
4 Ràng buộc toàn vẹn liên thuộc tính, liên quan hệ
RB-6 : Ngày nhập hàng phải nhỏ hơn so với ngày bán hàng+ Bối cảnh : HOADONBANHANG, HOADONNHAPHANG + t Hoadonnhaphang ( u (Hoadonbanhang (t.MaH = u.MaH Ɐ ϵ Ǝ ϵ ᴧ
Trang 12Hoadonbanhang +(NgBan) - +(NgBan)
5 Ràng buộc toàn vẹn liên bộ, liên quan hệ
RB-7 : Mỗi khách hàng phải có ít nhất một hóa đơn+ Bối cảnh : KHACHHANG, HOADONBANHANG+ t Khachhang ( u Hoadonbanhang(t.MaKH =u.MaKH))Ɐ ϵ Ǝ ϵ
Khachhang +(MaKH) - +(MaKH)
Hoadonbanhang - +(MaKH) +(MaKH)
6 Bảng tầm ảnh hưởng tổng hợp
RB-1 RB-2 RB-3 RB-4 RB-5 RB-6 RB-7T X S T X S T X S T X S T X S T X S T X S
Khachhang
+ - +Hoadonnh
aphang
Hoadonbanhang
+ - + + - + - + +
Trang 13Phần 5 : Câu lệnh truy vấn SQL1 Cấu trúc chi tiết các bảng trong SQL
- Bảng SHOP :Tên trường Kiểu Độ rộng Khóa NULL Ghi chú
MaShop VARCHAR 15 PK NoTenShop NVARCHAR 20
Dchi NVARCHAR 50Hotline VARCHAR 15Chu NVARCHAR 20
Nvu NVARCHAR 30
Trang 14- Bảng KHACHHANG
Tên trường Kiểu Độ rộng Khóa NULL Ghi chúMaKH VARCHAR 15 PK No
TenKH NVARCHAR 20Sdt VARCHAR 15TenGD NVARCHAR 20Email VARCHAR 30
- Bảng MAYTINH
Tên trường Kiểu Độ rộng Khóa NULL Ghi chú
TenMT VARCHAR 40CPU VARCHAR 30RAM VARCHAR 30VGA VARCHAR 30Ocung VARCHAR 30HeDH VARCHAR 20Sluong INT
DonGia BIGINTDVT NVARCHAR 10
Trang 15- Bảng NHACUNGCAP
Tên trường Kiểu Độ rộng Khóa NULL Ghi chúMaNCC VARCHAR 15 PK No
TenNCC NVARCHAR 30Dchi NVARCHAR 50Sdt VARCHAR 15TenGD NVARCHAR 20
- Bảng HOADONBANHANG
Têntrường
Kiểu Độ
rộngKhóa NULL Ghi chúMaHD VARCHAR 15 PK No
MaNV VARCHAR 10 FK No FK_NHANVIENMaKH VARCHAR 15 FK No FK_KHACHHANG
MaH VARCHAR 15 FK No FK_MAYTINHDonGia BIGINT
Sluong INTNgBan DATETIME
DVT NVARCHA
R
10
Trang 16- Bảng HOADONNHAPHANG
Têntrường
Kiểu Độ
rộngKhóa NULL Ghi chúMaHD VARCHAR 15 PK No
MaNCC VARCHAR 15 FK No FK_NHACUNGCAPMaH VARCHAR 15 FK No FK_MAYTINHNgNhap DATETIME
Sluong INTDonGia BIGINT
DVT NVARCHAR 10
2 Câu lệnh truy vấn SQL
TV1 Đưa ra thông số các máy tính được bày bán Select TenMT,CPU RAM VGA Ocung HeDH ,,,,From MAYTINH
Trang 17TV2 Liệt kê các nhân viên có giới tính là NamSelect MaNV,TenNV
From NHANVIEN
Where Gtinh ='Nam'
TV3 In ra tên các máy tính có giá trên 10 triệu đồngSelect TenMT,DonGia
From MAYTINH
Where DonGia > 10000000
Trang 18TV4 Đưa ra địa chỉ các nhà cung cấp được sắp xếp theo tênSelect TenNCC,Dchi
Trang 19TV6 Đếm số nhân viên có sở thích đá bóngSelectCount(Sothich )asN'Fan bóng đá'from NHANVIEN
TV8 Đưa ra shop quản lý và thông tin nhân viên có lương cao nhất trong chuỗi cửahàng
Select
SHOP MaShop TenShop MaNV TenNV Luong Nvu Gtinh NgSinh Sdt Sothich.,,,,,,,,,From SHOP join NHANVIEN on SHOP.MaShop NHANVIEN MaShop=.Where Luong =(selectmax(Luong )from NHANVIEN)
TV9 Cho biết tên các máy tính được nhập bởi nhà cung cấp GIGABYTESelect MAYTINH.MaH TenMT NHACUNGCAP MaNCC,,.
From MAYTINH join HOADONNHAPHANG on MAYTINH.MaH HOADONNHAPHANG MaH =.
join NHACUNGCAP on HOADONNHAPHANG MaNCC NHACUNGCAP MaNCC.=.Where NHACUNGCAP.TenNCC ='GIGABYTE'
Trang 20TV10 Liệt kê các sản phẩm máy tính chưa được mua lần nàoSelect MaH,TenMT
From MAYTINH
Wherenot exists(Select
From HOADONBANHANG
Where MAYTINH.MaH HOADONBANHANG MaH=.)
TV11 Đưa ra tên 3 khách hàng có tổng giá trị hóa đơn mua hàng cao nhấtSelect Top 3 TenKH,sum(Sluong DonGia *)as TongGT
From KHACHHANG join HOADONBANHANG on KHACHHANG.MaKH =
HOADONBANHANG MaKH.Group by TenKH
Order by TongGT DESC
TV12 Đưa ra tên, mã nhân viên tại cửa hàng An Khang có tổng hóa đơn bán cao nhất từ sau năm 2018
Select Top 1 NHANVIEN.MaNV TenNV,,sum(Sluong DonGia *)as
TongGT,sum(Sluong)as TongSl
From NHANVIEN join HOADONBANHANG on NHANVIEN.MaNV HOADONBANHANG MaNV=.
join SHOP on NHANVIEN MaShop SHOP MaShop.=.WhereYEAR(HOADONBANHANG NgBan 2018 ) >and TenShop =N'An Khang'
Group by NHANVIEN.MaNV TenNV,Order by TongGT DESC
Trang 21TV13 Đưa ra thông tin khách hàng mua máy tính Dell Precision5520
Use QLMT
GoSelect KHACHHANG.MaKH TenKH Sdt TenGD Email,,,,FROM KHACHHANG Join HOADONBANHANG On KHACHHANG MaKH HOADONBANHANG MaKH =.Join MAYTINH On HOADONBANHANG MaH MAYTINH.=.MaH
Where MAYTINH.TenMT ='Dell Precision 5520'
TV14 Đưa ra mã hóa đơn bán có giá tiền cao nhấtUse QLMT
GoWith q1 as (
Select HOADONBANHANG.MaHD ,sum(HOADONBANHANG.DonGia *
HOADONBANHANG Sluong.)as TTien
From HOADONBANHANG
Group by HOADONBANHANG.MaHD
)selectfrom q1 where TTien =(selectmax(TTien )from q1)
TV15 Đưa ra mã hóa đơn nhập tại cơ sở 5-7 Hàng Giấy-Đồng Xuân có số lượngnhập cao nhất
With q1 as (selectfrom NHACUNGCAP
where Dchi =N'5-7-Hàng Giấ>y-ĐồAng Xuấn'
),
q2 as (select HOADONNHAPHANG.MaHD ,sum(HOADONNHAPHANG Sluong.)as slmax