Các số liệu, kết quả trình bày trong bài tập lớn là hoàn toàn trung thực, nếu sai em xin chịu hoàn toàn trách nhiệm và chịu mọi kỷ luật của bộ môn và nhà trường đề ra... Cho một hệ thống
Trang 1Trường Đại học Sư phạm Kỹ thuật Hưng Yên
Khoa CÔNG NGHỆ THÔNG TIN
-
-BÀI TẬP LỚN
CƠ SỞ DỮ LIỆU
Sinh viên thực hiện : Nguyễn Thân Thương
Hưng Yên, tháng 12năm 2021
NHẬN XÉT
Trang 2
Ký và ghi h tênọ Nh n xét c a gi ng viên 2 đánh giá:ậ ủ ả
Ký và ghi h tênọ
2
Trang 3LỜI CAM ĐOAN
Em xin cam đoan bài tập lớp môn Cơ sở dũ liệu đề 15 là sản phẩm của bản thân Những phần sử dụng tài liệu tham khảo trong bài tập lớn đã được nêu rõ trong phần tài liệu tham khảo Các số liệu, kết quả trình bày trong bài tập lớn là hoàn toàn trung thực, nếu sai em xin chịu hoàn toàn trách nhiệm và chịu mọi kỷ luật của bộ môn và nhà trường đề ra
Hưng yên, ngày … tháng … năm 2021
Sinh viên
Nguyễn Thân Thương
MỤC LỤ
Trang 4Giảng viên 1
: Phạm Minh Chuẩn 1
Sinh viên thực hiện 1
: Nguyễn Thân Thương 1
MaSV 1
:10120168………1
Lớp 1
:125207 1
NHẬN XÉT 2
LỜI CAM ĐOAN 3
MỤC LỤC 4
DANH MỤC HÌNH 5
CHƯƠNG I : Đề bài Bài tập lớn số 15 6
CHƯƠNG II : Bài làm 7
2.1 : Mô tả về dữ liệu của cơ sở dữ liệu (CSDL) trong hệ thống quản lý bán hàng: 7
2.1.1 (a) Hãy xây dựng mô hình thực thể - liên kết cho hệ thống trên 7
2.1.2 (b) Hãy chuyển mô hình thực thể - liên kết đã xây dựng ở ý a sang mô hình quan hệ (Xác định các ràng buộc khóa chính, khóa ngoại) 7
2.2 Cho lược đồ cơ sở dữ liệu quản lý bán hàng với 4 lược đồ quan hệ , sau đó Sử dụng ngôn ngữ truy vấn có cấu trúc (SQL) để thực hiện các yêu cầu 8
2.2.1 (a) Hãy tạo cấu trúc bảng, các ràng buộc khóa chính, khóa ngoại đối với 4 bảng đã mô tả ở trên; lựa chọn các kiểu dữ liệu phù hợp cho các cột trong mỗi bảng; 8
2.2.2 (b) Hãy chèn dữ liệu phù hợp vào 4 bảng (mỗi bảng ít nhất 3 dòng (bản ghi)) 8
GO 9
2.2.3 (c) Hãy hiển thị thông tin về các hãng sản xuất có tên là ‘Hải Long’; 9
2.2.4 (d) Hãy hiển thị tổng tiền lương cơ bản của từng nhân viên: MaNV, HotenNV, [Tổng tiền lương cơ bản 9
2.2.5 (e) Hãy hiển thị tổng tiền lương cơ bản của từng nhân viên: MaNV, HotenNV, [Tổng tiền lương cơ bản] 10
4
Trang 5DANH MỤC HÌ
Hình 1 1 mô hình th c th - liên c a kêết h thôếng qu n lý bán hàng c a các khoa ự ể ủ ệ ả ủ 7Y
No table of figures entries found.
Trang 6CHƯƠNG I : Đề bài Bài tập lớn số 15
1.1 Cho một hệ thống quản lý bán hàng với các dữ liệu được mô tả như sau:
Thông tin về hãng sản xuất bao gồm: Mã hãng, tên hãng, địa chỉ, số điện thoại
Mỗi hãng sản xuất có thể sản xuất nhiều mặt hàng, thông tin về các mặt hàng bao gồm:
Mã mặt hàng, tên mặt hàng, loại mặt hàng, Đơn vị tính;
Thông tin về hóa đơn bán hàng bao gồm: Mã hóa đơn, tên khách hàng, địa chỉ khách hàng, ngày bán, Người bán;
Mỗi hóa đơn bán hàng bao gồm nhiều chi tiết đơn hàng ứng với các mặt hàng khác nhau;
Thông tin về chi tiết hóa đơn bao gồm: số lượng bán, đơn giá bán;
a Hãy xây dựng mô hình thực thể - liên kết cho hệ thống trên;
b Hãy chuyển mô hình thực thể - liên kết đã xây dựng ở ý a sang mô hình quan hệ (Xác định các ràng buộc khóa chính, khóa ngoại)
Bài 1.2 Cho CSDL quản lý hàng hóa bao gồm các bảng sau:
HangHoa(MaHH, TenHH, LoaiHH, DonVi, MaHSX);
HangSX(MaHSX, TenHSX, DChi);
HoaDon(MaHD, NgayHD, TenKH);
CTHoaDon(MaHD, MaHH, SLBan, GiaBan);
Chú ý: Những thuộc tính bôi đậm và gạch chân là khóa của bảng;
Sử dụng ngôn ngữ truy vấn có cấu trúc (SQL) để thực hiện các yêu cầu sau:
a Hãy tạo cấu trúc bảng, các ràng buộc khóa chính, khóa ngoại đối với 4 bảng đã mô
tả ở trên; lựa chọn các kiểu dữ liệu phù hợp cho các cột trong mỗi bảng;
b Hãy chèn dữ liệu phù hợp vào 4 bảng (mỗi bảng ít nhất 3 dòng (bản ghi));
c Hãy hiển thị thông tin về các hãng sản xuất có tên là ‘Hải Long’;
d Hãy hiển thị các thông tin bao gồm: MaHH, TenHH, MaHD, LoaiHH, SLBan, GiaBan của tất cả các hàng hóa đã được bán
e Hãy hiển thị tổng số mặt hàng với từng hãng sản xuất: MaHSX, [Số mặt hàng] Bài 1.3 Cho một lược đồ quan hệ R = (U, F), U = ABCDEGHM, F = {BDE -> AG,
CE -> AH, D -> CG, GE -> M }
a Hãy xác định 1 khóa của lược đồ (liệt kê chi tiết các bước thực hiện)
b Lược đồ R thỏa mãn dạng chuẩn cao nhất nào? Vì sao?
6
Trang 7c Kiểm tra phép tách = {ABHM, ACEG, CDEGH} có kết nối mất thông tin không?
Vì sao?
Bài làm
CHƯƠNG II : Bài làm 2.1 : Mô tả về dữ liệu của cơ sở dữ liệu (CSDL) trong hệ thống quản lý bán hàng:
2.1.1 (a) Hãy xây dựng mô hình thực thể - liên kết cho hệ thống trên
2.1.2 (b) Hãy chuyển mô hình thực thể - liên kết đã xây dựng ở ý a sang mô hình
quan hệ (Xác định các ràng buộc khóa chính, khóa ngoại)
DONHANG(MAHD, TENKH, DCKH, NBAN, NGBAN)
HANGSX(MAH, TENH, SDT, DC,MAMH)
CTDH( MAMH, MAHD,SL,DONGIA)
MATHANG(MAMH, TENMH, LOAIMH, DVT)
Trang 82.2 Cho lược đồ cơ sở dữ liệu quản lý bán hàng với 4 lược đồ quan hệ , sau đó Sử
dụng ngôn ngữ truy vấn có cấu trúc (SQL) để thực hiện các yêu cầu
2.2.1 (a) Hãy tạo cấu trúc bảng, các ràng buộc khóa chính, khóa ngoại đối với 4
bảng đã mô tả ở trên; lựa chọn các kiểu dữ liệu phù hợp cho các cột trong mỗi bảng;
CREATE DATABASE QuanLyHangHoa
GO
USE QuanLyHangHoa
Go
T o b ng và liên k t các b ng ạ ả ế ả
CREATE TABLE HangSX0
MaHSX varchar (10) PRIMARY KEY not null,
TenHSX NVARCHAR (50) not null,
DCHi NVARCHAR (50) not null,)
Go
CREATE TABLE HangHoa0
MaHH varchar (10) PRIMARY KEY not null,
TenHH NVARCHAR (50) not null,
LoaiHH NVARCHAR (50) not null,
DonVi int not null,
MaHSX varchar (10) CONSTRAINT F_HangHoa0_HangSX0
FOREIGN KEY REFERENCES dbo.HangSX0(MaHSX) not null,)
GO
CREATE TABLE CTHoaDon0
MaHD varchar (10) PRIMARY KEY not null,
MaHH varchar (10) CONSTRAINT F_CTHoaDon0_HangHoa0
FOREIGN KEY REFERENCES dbo.HangHoa0(MaHH) not null,
SLBan CHAR ( ) not null,
GiaBan CHAR ( ) not null,)
GO
CREATE TABLE HoaDon0
MaHD varchar (10) PRIMARY KEY CONSTRAINT F_HoaDon0_CTHoaDon0
FOREIGN KEY REFERENCES dbo.CTHoaDon0(MaHD) not null,
NgayHD datetime not null,
TenKH NVARCHAR (50) not null,)
GO
2.2.2 (b) Hãy chèn dữ liệu phù hợp vào 4 bảng (mỗi bảng ít nhất 3 dòng (bản ghi))
insert dbo.HangSX0
(MaHSX, TenHSX, DCHi)
VALUES
( '101' , N'H i Long' ả , 'HungYen' ),
( '102' , N'Bình Minh' , 'VinhPhuc' ),
( '103' , N'Kinh Đô' , 'BacNinh' )
GO
INSERT dbo.HangHoa0
(MaHH, TenHH, LoaiHH, DonVi, MaHSX)
VALUES
( '1001' , N'K o ng t' ẹ ọ , N'Đ ăn' ồ , '10' , '101' ),
( '1002' , N'N ướ c cam' , N'N ướ c' , '20' , '102' ),
( '1003' , N'Táo' , N'Hoa qu ' ả , '30' , '103' )
GO
INSERT dbo.CTHoaDon0
(MaHD, MaHH, SLBan, GiaBan)
VALUES
( '10001' , '1001' , '10' , '100' ),
( '10002' , '1002' , '5' , '500' ),
8
Trang 9( '10003' , '1003' , '20' , '500' )
GO
INSERT dbo.HoaDon0
(MaHD, NgayHD, TenKH)
VALUES
( '10001' , '2/5/2012' , 'ChuVanA' ),
( '10002' , '3/8/2020' , 'ChuVanB' ),
( '10003' , '5/9/2020' , 'ChuVanC' )
GO
INSERT dbo.HangHoa0
(MaHH, TenHH, LoaiHH, DonVi, MaHSX)
VALUES
( '1004' , N'Keo Cay' , N'Đ ăn' ồ , '20' , '101' ),
( '1005' , N'N ướ c d a' ừ , N'N ướ c' , '50' , '102' ),
( '1006' , N'B ưở ở i' , N'Hoa qu ' ả , '60' , '103' )
GO
INSERT dbo.CTHoaDon0
(MaHD, MaHH, SLBan, GiaBan)
VALUES
( '10004' , '1003' , '10' , '150' ),
( '10005' , '1004' , '10' , '3000' ),
( '10006' , '1002' , '10' , '1000' )
GO
INSERT dbo.HoaDon0
(MaHD, NgayHD, TenKH)
VALUES
( '10004' , '6/9/2020' , 'NguyenVanB' ),
( '10005' , '7/9/2020' , 'NguyenLeS' ),
( '10006' , '8/9/2020' , 'DaoBaD' )
GO
2.2.3 (c) Hãy hiển thị thông tin về các hãng sản xuất có tên là ‘Hải Long’;
SELECT from dbo.HangSX0 HH Where TenHSX = N'H i Long' ả
GO
- kết quả
2.2.4 (d) Hãy hiển thị tổng tiền lương cơ bản của từng nhân viên: MaNV,
HotenNV, [Tổng tiền lương cơ bản]
- SELECT HH.MaHH, HH.TenHH, HH.LoaiHH, HD.SLBan, HD.GiaBan from dbo.HangHoa0 as HH inner join dbo.CTHoaDon0 AS HD on HH.MaHH = HD.MaHH Where SLBan > '0'
go
- kết quả
Trang 102.2.5 (e) Hãy hiển thị tổng tiền lương cơ bản của từng nhân viên: MaNV, HotenNV, [Tổng tiền lương cơ bản]
Select HangSX0.MaHSX, count (MaHH) from HangHoa0 inner join HangSX0 on HangSX0.MaHSX = HangHoa0.MaHSX group by HangSX0.MaHSX
- kết quả
2.3 Cho một lược đồ quan hệ R = (U, F), U = ABCDEGHM, F = {BDE -> AG, CE -> AH, D -> CG, GE -> M }
2.3.1 (a) Hãy xác định 1 khóa của lược đồ (liệt kê chi tiết các bước thực hiện)
Bước 0: Đặt K0=U=ABCDEGHM
Bước 1:Loại bỏ A ra khỏi K0,xét xem có tồn tại phụ thuộc hàm
(K0 \ {A})→U⟺(BCDEGHM)+→U = ABCDEGHM hay không
Ta có: (BCDEGHM)+=ABCDEGHM=U è K1\ {A}=K0 =BCDEGHM
Bước 2: Tương tự, thử loại bỏ B ra khỏi K1
Ta có :(CDEGHM)+=ACDEGHM≠U => K2=K1=BCDEGHM
10
Trang 11Bước 3: Thử loại bỏ C ra khỏi K2
Ta có :(BDEGHM)+=ABCDEHI=U => K3=K2 \ {C}=BDEGHM
Bước 4: Thử loại bỏ D ra khỏi K3
Ta có :(BEGHM)+=BEGHM≠U => K4=K3 =BDEGHM
Bước 5: Thử loại bỏ E ra khỏi K4
Ta có :(BDGHM)+=BCDGHM≠U => K5=K4 =BDEGHM
Bước 6: Thử loại bỏ G ra khỏi K5
Ta có: (BDEHM)+=ABCDEGHM=U => K6=K5\{G}=BDEHM
Bước 7: Thử loại bỏ H ra khỏi K6
Ta có: (BDEM)+=ABCDEGHM =U => K7=K6\{H}=BDEM
Bước 8: Thử loại bỏ M ra khỏi K7
Ta có: (BDE)+=ABCDEGHM=U => K8=K7\{M}=BDE
=>Vậy BDE là một khóa của R
b) Lược đồ R thỏa mãn dạng chuẩn cao nhất nào? Vì sao?
Dạng chuẩn cáo nhất của lược đồ là 1NF
Vì BDE -> AG vi phạm dạng chuẩn 2( Vì có thuộc tính vế trái tham gia vào khóa)
C) Kiểm tra phép tách = {ABHM, ACEG, CDEGH} có kết nối mất thông tin không? Vì sao?
CDEG
H
BDE -> AG
Trang 12ACEG a1 b22 a3 b24 a5 a6 a7 b28
D -> CG
GE ->M
Vậy phép tách = {ABHM, ACEG, CDEGH} có kết nối mất thông tin
12
Downloaded by Quang Tr?n (tranquang141994@gmail.com)