BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HOA SEN KHOA KINH TẾ - QUẢN TRỊĐỒ ÁN NHẬP MÔN CƠ SỞ DỮ LIỆU HỆ THỐNG NHÀ SÁCH FAHASA GIẢNG VIÊN HƯỚNG DẪN: TRẦN THỊ TƯỜNG THI GROUP: 5 THÀNH VIÊN...
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HOA SEN KHOA KINH TẾ - QUẢN TRỊ
ĐỒ ÁN NHẬP MÔN CƠ SỞ DỮ LIỆU
HỆ THỐNG NHÀ SÁCH FAHASA
GIẢNG VIÊN HƯỚNG DẪN: TRẦN THỊ TƯỜNG THI
GROUP: 5 THÀNH VIÊN
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HOA SEN KHOA KINH TẾ - QUẢN TRỊ
ĐỒ ÁN NHẬP MÔN CƠ SỞ DỮ LIỆU
HỆ THỐNG NHÀ SÁCH FAHASA
GIẢNG VIÊN HƯỚNG DẪN: TRẦN THỊ TƯỜNG THI
GROUP: 5 THÀNH VIÊN
Số thứ tự Họ tên Mã số sinh viên
Trang 3LỜI CẢM ƠN
Đến với môn học này, đã giúp chúng tôi biết thêm về những kiến thức tin học
đã giúp cho chúng em trong môi trường làm việc sau này Đặc biệt hơn chúngtôi đã được học và tìm hiểu dưới sự chỉ dạy của cô Trần Thị Trương Thi, côluôn nổ lực giảng dạy và hướng dẫn chúng tôi từng bước mặc dù thời gian chỉ
Trang 4NHẬN XÉT CỦA GIẢNG VIÊN
Thành phố Hồ Chí Minh, ngày … tháng … năm 2022
Giảng viên nhận xét
(Ký và ghi rõ họ tên)
Trang 5LỜI CẢM ƠN 3
NHẬN XÉT CỦA GIẢNG VIÊN 4
DANH MỤC HÌNH ẢNH 6
DANH MỤC BẢNG BIỂU 7
I PHÂN TÍCH HỆ THỐNG 8
II DANH SÁCH THỰC THỂ 9
III LƯỢC ĐỒ ERD 11
1 Ánh xạ 11
2 Lược đồ cơ sở dữ liệu 12
IV THIẾT KẾ BẢNG 12
V HIỆN THỰC CƠ SỞ DỮ LIỆU TRÊN SQL SERVER 14
Phần 1: Tạo cơ sở dữ liệu và bảng 14
Phần 2: Chèn dữ liệu và bảng 17
Phần 3: Viết câu lệnh và truy vấn 24
Trang 7I PHÂN TÍCH HỆ THỐNG
FAHASA là hệ thống nhà sách quen thuộc với mọi gia đình ở Việt Nam,chuyên cung cấp sách báo, dụng cụ học tập, quà lưu niệm cho mọi lứa tuổi, đặc biệt làhọc sinh Với mô hình kinh doanh qui mô lớn, FAHASA chuyển các dữ liệu lên máytính để việc quản lí hệ thống đạt hiệu quả nhất Chi tiết về cách lưu trữ dữ liệu của hệthống FAHASA:
Nhằm đưa các quyển sách lên mạng giúp khách hàng có thể tìm kiếm nhữngquyển sách mình muốn,đăng ký mua sách trực tiếp trên mạng Thông qua websitekhách hàng có thể tìm thấy những thông tin về các quyển sách theo loại về tênsách,tên tác giả,tên nhà xuất bản,tóm tắt nội dung quyển sách,giá bán…
Hệ thống phải dễ dàng truy xuất, vận hành, sử dụng Đạt và phù hợp mục đíchcủa người dùng, phù hợp với trình độ của người dùng nghĩa là ai cũng có thể dùngđược
Do đó ta cần có kho dữ liệu về Sách gồm các thông tin sau: mã sách, tên sách,giá cả, số lượng, xuất bản, hình thức bìa
Do nhập sách từ nhiều Nhà Xuất Bản khác nhau nên ta cần có một kho dữ liệu
để chứa thông tin về các nhà xuất bản bao gồm: mã nhà xuất bản, tên nhà xuất bản,năm nxb
Tương tự tiệm sách có nhiều loại sách khác nhau nên ta cũng phải có một kho
dữ liệu Thể Loại dùng để chứa danh mục các thể loại sách: mã thể loại và tên thể loại
Khi khách đến mua sách với yêu cầu một tên tác giả nào đó, thì ta cũng cần cómột kho dữ liệu về Tác Giả để phục vụ cho nhu cầu mua sách của khách hàng baogồm: mã tác giả, tên tác giả
Khi khách hàng đến mua sách ta lập Hóa Đơn trong đó bao gồm: mã hóa đơn,ngày mua, tổng cộng
Khi lập hóa đơn thì phải có nhân viên phụ trách bao gồm: mã NV, họ và tên
NV, SĐT, ngày sinh, giới tính
Khi tính tiền thì cửa hàng luôn xin thông tin khách hàng bao gồm: mã KH, giớitính, SĐT, tên khách hàng
Mục đích của mô tả dữ liệu: Để quản lý thông tin, quá trình kinh doanh sáchcủa chuỗi hệ thống Fahasa
Trang 83 Table nhân viên:
Dùng để quản lý thông tin nhân viên của công ty.Trong đó gồm có:
Mã nhân viên ( khoá chính)
Trang 9Dùng để quản lý các thông tin khách hàng khi mua sáchTrong đó gồm có:
6 Table Hóa đơn:
Dùng để lưu thông tin hóa đơn khách hàng mua sáchTrong đó gồm:
Mã hóa đơn (khóa chính)
Trang 10III LƯỢC ĐỒ ERD
1 Lược đồ ERD
Hình 1: Lược đồ ERD (chưa mở rộng)
2 Ánh xạ
Trang 11Hình 2: Ánh xạ lược đồ (đã mở rộng)
Hình 3: Ánh xạ lược đồ (đã mở rộng)
Trang 123 Lược đồ cơ sở dữ liệu
Hình 4: Lược đồ cơ sở dữ liệu
IV THIẾT KẾ BẢNG
Database name: Sach
Hinhthucbia Nvarchar 30 Hình thức bìa
Database name: Loaisach
Tenloaisach Nvarchar 50 Tên loại sách
Trang 13Database name: Tacgia
Tentacgia Nvarchar 100 Tên tác giả
Database name: NXB
Tennxb Nvarchar 100 Tên nhà xuất bản
Database name: Nhanvien
Gioitinh Nvarchar 10 Giới tính
Database name: Khachhang
Database name: Hoadon
Trang 14Mahd Char 8 Mã hóa đơn
Database name: sach_tacgia
Database name: chitiethoadon
Trang 15V HIỆN THỰC CƠ SỞ DỮ LIỆU TRÊN SQL SERVER Phần 1: Tạo cơ sở dữ liệu và bảng
CREATE DATABASE NHA_SACH_FAHASA
Trang 16GO
ALTER TABLE SACH
ADD CONSTRAINT FK_MALOAISACH FOREIGN KEY (MALOAISACH)REFERENCES LOAISACH(MALOAISACH)
ALTER TABLE SACH
ADD CONSTRAINT FK_MANXB FOREIGN KEY (MA_NXB) REFERENCESNXB(MA_NXB)
Trang 17TONGCONG MONEY
)
GO
ALTER TABLE HOADON
ADD CONSTRAINT FK_MAKH FOREIGN KEY (MAKH) REFERENCESKHACHHANG(MAKH)
ALTER TABLE HOADON
ADD CONSTRAINT FK_MANV FOREIGN KEY (MANV) REFERENCESNHANVIEN(MANV)
GO
CREATE TABLE SACH_TACGIA
(
MASACH char(6) NOT NULL,
MATACGIA char(6) NOT NULL,
CONSTRAINT PK_MASACH_MATACGIA PRIMARY KEY(MASACH,MATACGIA),
)
GO
ALTER TABLE SACH_TACGIA
ADD CONSTRAINT FK_MASACH1 FOREIGN KEY (MASACH)REFERENCES SACH(MASACH)
ALTER TABLE SACH_TACGIA
ADD CONSTRAINT FK_MATACGIA FOREIGN KEY (MATACGIA)REFERENCES TACGIA(MATACGIA)
GO
CREATE TABLE CHITIETHOADON
(
MASACH CHAR(6) NOT NULL,
MAHD CHAR(8) NOT NULL,
Trang 18ALTER TABLE CHITIETHOADON
ADD CONSTRAINT FK_MASACH FOREIGN KEY (MASACH) REFERENCESSACH(MASACH)
ALTER TABLE CHITIETHOADON
ADD CONSTRAINT FK_MAHD FOREIGN KEY (MAHD) REFERENCESHOADON(MAHD)
Trang 19INSERT [dbo].[TACGIA] ([MATACGIA], [TENTACGIA]) VALUES(N'TG013 ', N'Uông Triều')
INSERT [dbo].[TACGIA] ([MATACGIA], [TENTACGIA]) VALUES(N'TG014 ', N'Nguyễn Trương Quý')
Trang 20INSERT [dbo].[SACH] ([MASACH], [TENSACH], [MALOAISACH],[MA_NXB], [GIACA], [SOLUONG], [HINHTHUCBIA]) VALUES (N'A001', N'Tâm lí học về tiền', N'LS1 ', N'XB001 ', 113000.0000, N'11 ', N'bìamềm')
INSERT [dbo].[SACH] ([MASACH], [TENSACH], [MALOAISACH],[MA_NXB], [GIACA], [SOLUONG], [HINHTHUCBIA]) VALUES (N'A002', N'Trí tuệ làm giàu của người Do Thái', N'LS1 ', N'XB001 ', 88000.0000,N'22 ', N'bìa mềm')
INSERT [dbo].[SACH] ([MASACH], [TENSACH], [MALOAISACH],[MA_NXB], [GIACA], [SOLUONG], [HINHTHUCBIA]) VALUES (N'A003', N'Thanh xuân nổ lực để vươn xa ', N'LS3 ', N'XB002 ', 79000.0000, N'33', N'Bìa mềm')
INSERT [dbo].[SACH] ([MASACH], [TENSACH], [MALOAISACH],[MA_NXB], [GIACA], [SOLUONG], [HINHTHUCBIA]) VALUES (N'A004', N'Đô-rê-mon', N'LS3 ', N'XB005 ', 27500.0000, N'30 ', N'bìa cứng')INSERT [dbo].[SACH] ([MASACH], [TENSACH], [MALOAISACH],[MA_NXB], [GIACA], [SOLUONG], [HINHTHUCBIA]) VALUES (N'A005', N'Chuyện người hà nội', N'LS4 ', N'XB006 ', 173000.0000, N'49 ', N'bìacứng')
INSERT [dbo].[SACH] ([MASACH], [TENSACH], [MALOAISACH],[MA_NXB], [GIACA], [SOLUONG], [HINHTHUCBIA]) VALUES (N'A006', N'Hai bàn tay em', N'LS3 ', N'XB005 ', 61750.0000, N'60 ', N'bìa mềm')INSERT [dbo].[SACH] ([MASACH], [TENSACH], [MALOAISACH],[MA_NXB], [GIACA], [SOLUONG], [HINHTHUCBIA]) VALUES (N'A007', N'Cuộc sống bí mật của nhà văn', N'LS2 ', N'XB007 ', 102000.0000, N'10', N'bìa mềm')
INSERT [dbo].[SACH] ([MASACH], [TENSACH], [MALOAISACH],[MA_NXB], [GIACA], [SOLUONG], [HINHTHUCBIA]) VALUES (N'A008', N'Thế giới rộng lớn lòng ngườ chật hẹp', N'LS2 ', N'XB003 ', 73000.0000,N'8 ', N'bìa mềm')
Trang 21INSERT [dbo].[SACH] ([MASACH], [TENSACH], [MALOAISACH],[MA_NXB], [GIACA], [SOLUONG], [HINHTHUCBIA]) VALUES (N'A009', N'Thế giới mạng lưới', N'LS5 ', N'XB001 ', 80000.0000, N'7 ', N'b ìacứng')
INSERT [dbo].[SACH] ([MASACH], [TENSACH], [MALOAISACH],[MA_NXB], [GIACA], [SOLUONG], [HINHTHUCBIA]) VALUES (N'A010', N'Niềm vui của việc ngừng lao động', N'LS6 ', N'XB004 ', 151000.0000,N'10 ', N'Bìa mềm')
Trang 22INSERT [dbo].[KHACHHANG] ([MAKH], [Ho], [TEN], [GIOITINH], [Sdt],[Diachi]) VALUES (N'KH01', N'Nguyễn Kim', N'Anh', N'nữ', N'0903041456',N'8 Nguyễn Văn Tráng Quận 1')
INSERT [dbo].[KHACHHANG] ([MAKH], [Ho], [TEN], [GIOITINH], [Sdt],[Diachi]) VALUES (N'KH02', N'Ngô Thị', N'Linh', N'nữ', N'0901151324',N'10 Nguyễn Trãi Quận 5')
INSERT [dbo].[KHACHHANG] ([MAKH], [Ho], [TEN], [GIOITINH], [Sdt],[Diachi]) VALUES (N'KH03', N'Nguyễn Kim', N'Liên', N'nữ', N'0907892345',N'34 Ngô Quyền Quận 5')
INSERT [dbo].[KHACHHANG] ([MAKH], [Ho], [TEN], [GIOITINH], [Sdt],[Diachi]) VALUES (N'KH04', N'Trần Mai', N'Anh', N'nữ', N'0904567891',N'23 Đồng Khởi Quận 1')
INSERT [dbo].[KHACHHANG] ([MAKH], [Ho], [TEN], [GIOITINH], [Sdt],[Diachi]) VALUES (N'KH05', N'Trần Anh', N'Huy', N'nam', N'0908671234',N'76 Lê Lai Quận 1')
INSERT [dbo].[KHACHHANG] ([MAKH], [Ho], [TEN], [GIOITINH], [Sdt],[Diachi]) VALUES (N'KH06', N'Nguyễn ', N'Quang', N'nam', N'0905678234',N'56 Võ Văn Tần Quận 3')
INSERT [dbo].[KHACHHANG] ([MAKH], [Ho], [TEN], [GIOITINH], [Sdt],[Diachi]) VALUES (N'KH07', N'Lê ', N'Hương', N'nữ', N'0908567234', N'76
Xô Viết Nghệ Tĩnh Quận Bình Thạnh')
GO
INSERT [dbo].[NHANVIEN] ([MANV], [HO], [TEN], [SDT], [NGAYSINH],[GIOITINH]) VALUES (N'NV01 ', N'Bùi Thị', N'An', N'0988987632',CAST(N'1998-07-15T00:00:00.000' AS DateTime), N'nữ')
INSERT [dbo].[NHANVIEN] ([MANV], [HO], [TEN], [SDT], [NGAYSINH],[GIOITINH]) VALUES (N'NV02 ', N'Lê Nguyên', N'Trân', N'0965111987',CAST(N'1998-06-07T00:00:00.000' AS DateTime), N'nữ')
INSERT [dbo].[NHANVIEN] ([MANV], [HO], [TEN], [SDT], [NGAYSINH],[GIOITINH]) VALUES (N'NV03 ', N'Lê Quốc', N'Anh', N'0988654890',CAST(N'1996-04-13T00:00:00.000' AS DateTime), N'nam')
Trang 23INSERT [dbo].[NHANVIEN] ([MANV], [HO], [TEN], [SDT], [NGAYSINH],[GIOITINH]) VALUES (N'NV04 ', N'Châu Mỹ', N'Phương',N'0867177890', CAST(N'1999-04-13T00:00:00.000' AS DateTime), N'nữ')INSERT [dbo].[NHANVIEN] ([MANV], [HO], [TEN], [SDT], [NGAYSINH],[GIOITINH]) VALUES (N'NV05 ', N'Trần Văn ', N'Long', N'0876891200',CAST(N'1999-06-06T00:00:00.000' AS DateTime), N'nam')
INSERT [dbo].[NHANVIEN] ([MANV], [HO], [TEN], [SDT], [NGAYSINH],[GIOITINH]) VALUES (N'NV06 ', N'Nguyễn', N'Hải', N'0789123098',CAST(N'1997-09-17T00:00:00.000' AS DateTime), N'nam')
INSERT [dbo].[NHANVIEN] ([MANV], [HO], [TEN], [SDT], [NGAYSINH],[GIOITINH]) VALUES (N'NV07 ', N'Vũ', N'Hải', N'0867182279',CAST(N'1990-03-08T00:00:00.000' AS DateTime), N'nam')
GO
INSERT [dbo].[HOADON] ([MAHD], [MAKH], [MANV], [NGAYMUA],[TONGCONG]) VALUES (N'HD01 ', N'KH01', N'NV04 ',CAST(N'2022-06-12' AS Date), 314000.0000)
INSERT [dbo].[HOADON] ([MAHD], [MAKH], [MANV], [NGAYMUA],[TONGCONG]) VALUES (N'HD02 ', N'KH02', N'NV03 ',CAST(N'2022-03-24' AS Date), 705000.0000)
INSERT [dbo].[HOADON] ([MAHD], [MAKH], [MANV], [NGAYMUA],[TONGCONG]) VALUES (N'HD03 ', N'KH06', N'NV07 ',CAST(N'2022-05-23' AS Date), 173000.0000)
INSERT [dbo].[HOADON] ([MAHD], [MAKH], [MANV], [NGAYMUA],[TONGCONG]) VALUES (N'HD04 ', N'KH01', N'NV03 ',CAST(N'2022-03-02' AS Date), 183000.0000)
INSERT [dbo].[HOADON] ([MAHD], [MAKH], [MANV], [NGAYMUA],[TONGCONG]) VALUES (N'HD05 ', N'KH03', N'NV01 ',CAST(N'2022-04-03' AS Date), 1323000.0000)
INSERT [dbo].[HOADON] ([MAHD], [MAKH], [MANV], [NGAYMUA],[TONGCONG]) VALUES (N'HD06 ', N'KH04', N'NV02 ',CAST(N'2022-04-03' AS Date), 181000.0000)
Trang 24INSERT [dbo].[HOADON] ([MAHD], [MAKH], [MANV], [NGAYMUA],[TONGCONG]) VALUES (N'HD07 ', N'KH07', N'NV05 ',CAST(N'2022-05-04' AS Date), 55000.0000)
INSERT [dbo].[HOADON] ([MAHD], [MAKH], [MANV], [NGAYMUA],[TONGCONG]) VALUES (N'HD08 ', N'KH04', N'NV06 ',CAST(N'2022-05-02' AS Date), 1235000.0000)
Trang 25INSERT [dbo].[CHITIETHOADON] ([MASACH], [MAHD], [SOLUONG],[THANHTIEN]) VALUES (N'A008 ', N'HD04 ', 1, 73000.0000)
INSERT [dbo].[CHITIETHOADON] ([MASACH], [MAHD], [SOLUONG],[THANHTIEN]) VALUES (N'A010 ', N'HD02 ', 3, 453000.0000)
GO
Phần 3: Viết câu lệnh và truy vấn
1 TÌM THÔNG TIN KHÁCH HÀNG MUA LOẠI SÁCH 'TÌNH CẢM'SELECT *
FROM [dbo].[KHACHHANG]
WHERE KH.MAKH IN (
SELECT MAKHFROM HOADONWHERE MAHD IN (
SELECT MAHDFROM CHITIETHOADONWHERE MASACH IN (
SELECT MASACHFROM SACHWHERE MALOAISACH IN(
SELECT MALOAISACHFROM LOAISACHWHERE TENLOAISACH = N'TÌNH CẢM')
))
Trang 26FROM [dbo].[HOADON]
WHERE MAHD IN (
SELECT MAHDFROM CHITIETHOADONWHERE MASACH IN (
SELECT MASACHFROM SACHWHERE MALOAISACH IN(
SELECT MALOAISACHFROM LOAISACHWHERE TENLOAISACH = N'TÂM LÍ')
))
)
4 TÌM SỐ LƯỢNG NHỮNG CUỐN SÁCH ĐƯỢC MUA VÀO THÁNG 5SELECT TENSACH, CTHD.[SOLUONG]
FROM [dbo].[SACH],[dbo].[CHITIETHOADON] AS CTHD
Trang 27WHERE [dbo].[SACH].MASACH = CTHD.MASACH AND CTHD.MAHD
SELECT MALOAISACHFROM LOAISACH WHERE TENLOAISACH = N'VIỄN TƯỞNG')
))
6 TÌM KIẾM KHÁCH HÀNG ĐÃ HỦY MUA SÁCH
Trang 287 TÌM KHÁCH HÀNG NỮ MUA LOẠI SÁCH 'VĂN HỌC'
SELECT MASACH FROM SACH
WHERE MALOAISACH IN (
SELECT MALOAISACHFROM LOAISACHWHERE TENLOAISACH = N'VĂN HỌC')
))
SELECT MASACH
Trang 29FROM SACHWHERE MALOAISACH IN (
SELECT MALOAISACHFROM LOAISACHWHERE TENLOAISACH = N'VĂN HỌC' )
))
)