1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ án hệ cơ sở dữ liệu ĐỀ TÀI QUẢN LÝ BÁN LAPTOP, PC

17 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Trang 1

TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO

TÊN ĐỀ TÀI: QUẢN LÝ BÁN LAPTOP, PC

Tên bộ môn: Đồ án hệ cơ sở dữ liệu

Giảng viên hướng dẫn: Nguyễn Hồng Hạnh Nhóm: 13 – 65IT3

Sinh viên thực hiện :

1 Lương Tuấn Minh – 4000265 2 Nguyễn Duy Anh - 6765 3 Lê Xuân Mười – 138065 4 Nguyễn Đức Thành - 1546865

Hà Nội, ngày 24 tháng 01 năm 2022

Trang 2

MỤC LỤC

1.Mô tả các yêu cầu lưu trữ và khai thác dữ liệu cơ bản của hệ thống 3

1.1 Yêu cầu lưu trữ 3

3.Mô tả cấu trúc bảng và giải thích ý nghĩa các cột dữ liệu của bảng 6

4.Sơ đồ quan hệ thể hiện mối liên kết giữa các bảng được tạo

Trang 3

1.1.Yêu cầu lưu trữ

- Lưu trữ 3 đối tượng chính:

+ Sản phẩm: sản phẩm, chi tiết sản phẩm, khuyến mãi, ảnh, thể loại + Khách hàng: khách hàng, thanh toán,

+ Nhân viên: nhân viên, tài khoản, lương

1.2.Khai thác dữ liệu

- Lấy danh sách sản phẩm, khách hàng, nhân viên trong hệ thống

- Thống kê doanh thu, sản phẩm bán ra,…

- Năng suất bán hàng của nhân viên

- Khách hàng thân quen

2 Mô tả thực thể và các mối quan hệ, sơ đồ ERD2.1.Mô tả thực thể

- Sản phẩm (PRODUCTS): lưu trữ thông tin chính về sản phẩm

- Chi tiết sản phẩm (PRODUCT_DETAIL): lưu trữ chi tiết thông số sản phẩm

- Giảm giá (COUPON): lưu trữ thông tin khuyến mãi, giảm giá sản phẩm

- Ảnh (IMG): lưu trữ ảnh mô tả sản phẩm

- Loại sản phẩm (CATALOG): lưu trữ các loại sản phẩm có trong cửa hàng

- Khách hàng (GUEST): lưu trữ thông tin khách hàng đã mua hàng

- Đơn thanh toán (BILL): lưu trữ thông tin cơ bản (mã khách hàng, tổng tiền)

- Chi tiết đơn (BILL_DETAIL): lưu trữ chi tiết đơn (mã sản phẩm, mã đơn)

- Doanh thu (SALES): dựa trên số đơn đã bán để lưu số tiền kiếm trong tháng

- Nhân viên (STAFF): lưu trữ thông tin nhân viên

- Tài khoản (ACCOUNT_STAFF): lưu trữ tài khoản của nhân viên

- Lương (SALARY): lưu trữ lương/tháng của nhân viên

Trang 5

2.3.Sơ đồ ERD

Trang 6

3 Mô tả cấu trúc bảng và giải thích ý nghĩa các cột dữ liệu của bảng

- Create_at: thời gian tạo

- Create_by: tạo bởi nhân viên nào

- Update_at: thời gian sửa đổi, cập nhật

- Update_by: thay đổi bởi nhân viên nào + content: nội dung mô tả sản phẩm

-Chi tiết sản phẩm (PRODUCT_DETAIL):

+ monitor: thông tin màn hình + cpu: thông tin ổ cứng + ram: thông tin bộ nhớ + vga: thông tin card màn hình + ssd: thông tin ổ cứng (thể rắn) + hdd: thông tin ổ cứng

+ psu: thông tin nguồn

+ mainboard: thông tin bo mạch chính

Trang 7

+ case_pc: thông tin vỏ máy tính

-Khuyến mãi (COUPON):

+ id: mã khuyến mãi + discount: giảm giá

+ start_at: bắt đầu vào ngày/ giờ nào + end_at: kết thúc vào ngày/giờ nào + birthday: ngày sinh

+ email: tài khoản thư điện tử + address: địa chỉ khách hàng + phone: số điện thoại khách hàng

-Đơn thanh toán (BILL):

+ id: mã đơn thanh toán

Trang 8

-Nhân viên (STAFF):

+ id: mã nhân viên + name: tên nhân viên + gender: giới tính + birthday: ngày sinh + address: địa chỉ nhân viên + phone: số điện thoại nhân viên + position: chức vụ

-Tài khoản nhân viên (ACCOUNT_STAFF):

+ id: mã tài khoản + account: tài khoản + password: mật khẩu

-Lương nhân viên (SALARY)

+ id: mã nhân viên

Trang 9

4 Sơ đồ quan hệ thể hiện mối liên kết giữa các bảng được tạo (RelationshipDiagram)

Trang 10

5 Danh sách truy vấn đã thiết kế và hình ảnh demo kết quả tương ứng5.1 SẢN PHẨM

1 Lấy ra những sản phẩm của hãng acer SELECT p.product_name, p.product_brand FROM PRODUCTS p,CATALOG c

WHERE p.catalog_id = c.id AND c.catalog_name = 'laptop' AND

WHERE price = ( SELECT MAX(price) FROM PRODUCTS)

4 Sắp xếp, hiển thị theo giá (tên) giảm dần hoặc tăng dần về giá (alpha a-z) SELECT product_name, product_brand, price

FROM PRODUCTS ORDER BY price DESC

Trang 11

5 Hiển thị theo tên hoặc mã sản phẩm

SELECT pd.monitor, pd.ram, pd.vga, pd.ssd FROM PRODUCTS p, PRODUCT_DETAIL pd WHERE p.id = pd.id AND p.id = 5

6 Sản phẩm bán được trong 7 ngày qua SELECT p.product_name

FROM PRODUCTS p, BILL b, BILL_DETAIL bd

WHERE b.id = bd.bill_id AND bd.product_id = p.id AND b.create_at BETWEEN GETDATE()-DAY(7) AND GETDATE();

7 In ra id có hãng dell và có giá trong khoảng từ 20000000 đến 40000000 select id from Products

where product_brand = 'dell'

and price >= 20000000 and price <= 40000000

Trang 12

8 In ra danh sách các sản phẩm (id,product_name) do hãng msi và acer sản xuất và có giá tiền từ 10000000 đến 50000000

select id,product_name from products

where (product_brand='msi' or product_brand='acer') and price >=10000000 and price <=50000000

9 In ra danh sách các sản phẩm (id,product_name) được khách hàng có tên 'Hoang Van Nam' mua trong tháng 1/2022

select p.id,p.product_name

from products p , guest g, bill b, bill_detail bd where g.name ='Hoang Van Nam'

and bd.product_id = p.id and month(b.create_at)='1'

and year (b.create_at)='2022'

and b.guest_id = g.id and bd.bill_id = b.id

10 In ra danh sách các sản phẩm (id,product_name) không bán được select p.id,p.product_name from products p

where p.id not in (select bd.product_id from bill_detail bd)

Trang 13

11 In ra danh sách các sản phẩm (id,product_name) thuộc hãng "dell" không bán được

select p.id,p.product_name from products p where p.product_brand = 'dell'

and p.id not in (select bd.product_id from bill_detail bd)

12 có bao nhiêu sản phẩm không bán được select count (p.id) as soluong from products p where p.id not in(select product_id from bill_detail)

13 tìm tên khách hàng đã mua hóa đơn có giá trị cao nhất trong năm 2022 select g.name from bill b, GUEST g

where b.guest_id=g.id and amount in ( select max(b.amount) from bill b where year(b.create_at)= '2022')

14 In ra danh sách các sản phẩm (id,product_name) có giá bán bằng 1 trong 3 mức giá cao nhất

select id,product_name from PRODUCTS

where price in (select top 3 p.price from PRODUCTS p order by p.price DESC)

Trang 14

5.2 ĐƠN HÀNG, DOANH THU

15 Lấy ra thông tin các đơn hàng mua vào ngày 07/12/2021

SELECT * FROM BILL WHERE CAST(create_at AS DATE) = '2021-12-07'

16 Hiện doanh thu hiện tại

SELECT sum(amount) as doanh_thu FROM BILL

WHERE create_at BETWEEN '2021-12-01' AND GETDATE()

17 Thống kê có bao nhiêu đơn hàng mua trong 1 tuần vừa qua SELECT count(id) as so_luong_don_hang

FROM BILL

WHERE create_at BETWEEN GETDATE()-DAY(7) AND GETDATE()

18 Lấy ra tên các sản phẩm có mã đơn hàng = 1

select p.product_name from PRODUCTS p, BILL_DETAIL bdt where p.id = bdt.product_id and bdt.bill_id = '1'

19 Lấy ra tên khách hàng có mã đơn = 2 select g.name from GUEST g , BILL b where g.id = b.guest_id and b.id = '2'

20 Lấy ra tên sản phẩm được khách hàng id = 3 mua select p.product_name

from PRODUCTS p, GUEST g , BILL_DETAIL bdt, BILL b

Trang 15

where g.id = b.guest_id and p.id = bdt.product_id and bdt.bill_id = b.id and g.id

WHERE name = 'Nguyen Duy Anh'

22 Hiển thị thông tin nhân viên tạo khuyến mãi ngày 13/10/2021 SELECT s.name, s.address, s.phone

FROM STAFF s, COUPON c

WHERE s.id = c.create_by AND cast(c.start_at as date) = '2021-10-13'

GROUP BY name,address, phone

23 Hiển thị nhân viên chưa có hóa đơn nào SELECT s.name, s.address, s.phone FROM STAFF s, BILL b

WHERE s.id NOT IN (SELECT create_by FROM BILL) GROUP BY name,address, phone

24 Tính tổng tiền các đơn của nhân viên bán được nhiều nhất DECLARE @cMax int = (SELECT MAX(s)

FROM (SELECT COUNT(create_by) as s FROM BILL GROUP BY create_by ) as s)

DECLARE @sId int=(SELECT create_by FROM BILL GROUP BY create_by HAVING COUNT(create_by)=@cMax)

SELECT s.id, s.name,SUM(b.amount) as tong_tien FROM STAFF s, BILL b

WHERE s.id = b.create_by AND b.create_by = @sId GROUP BY s.id, s.name

25 Hiển thị nhân viên bán được nhiều đơn nhất DECLARE @cMax int = (SELECT MAX(s)

Trang 16

FROM (SELECT COUNT(create_by) as s FROM BILL GROUP BY create_by ) as s)

DECLARE @sId int=(SELECT create_by FROM BILL GROUP BY create_by HAVING COUNT(create_by)=@cMax)

SELECT s.id, s.name,@cMax as tong_don FROM STAFF s, BILL b WHERE s.id = b.create_by AND b.create_by = @sId

GROUP BY s.id, s.name

5.4 KHÁCH HÀNG

26 Hiển thị thông tin khách hàng mua nhiều nhất trong 30 ngày DECLARE @Max int = (SELECT MAX(s)

FROM (SELECT SUM(amount)as s FROM BILL b WHERE create_at BETWEEN GETDATE()-DAY(30) AND GETDATE() GROUP BY guest_id ) as s)

DECLARE @id int=(SELECT guest_id FROM BILL GROUP BY guest_id HAVING SUM(amount)=@Max)

SELECT g.id, g.name,@Max as tong FROM GUEST g, BILL b

WHERE g.id = b.guest_id AND guest_id = @id GROUP BY g.id, g.name

27.In ra thông tin nhân viên doanh thu nhiều nhất trong 30 ngày DECLARE @cMax int = (SELECT MAX(s)

FROM (SELECT SUM(amount)as s FROM BILL b

WHERE create_at BETWEEN GETDATE()-DAY(30) AND GETDATE() GROUP BY create_by ) as s)

DECLARE @sId int=(SELECT create_by FROM BILL GROUP BY create_by HAVING SUM(amount)=@cMax)

SELECT s.id, s.name,@cMax as tong FROM STAFF s, BILL b WHERE s.id = b.create_by AND b.create_by = @sId

GROUP BY s.id, s.name

28 Tìm tên khách hàng đã mua hóa đơn có giá trị cao nhất trong năm 2022 select g.name from bill b, GUEST g where b.guest_id=g.id and amount in( select max(b.amount) from bill b where year(b.create_at)= '2022')

Trang 17

6 Đánh giá thiết kế CSDL6.1.Ưu điểm:

- Phù hợp với cửa hàng buôn bán nhỏ, sử dụng để bán hàng trực tiếp

- Các trường dữ liệu có thể đáp ứng đủ các nhu cầu cơ bản của 1 cửa hàng (về lưu trữ, tính toán,…)

6.2.Nhược điểm

- Thiếu 1 số bảng để đáp ứng nhu cầu cho 1 cửa hàng kết hợp bán online (thu thập đánh giá của khách hàng về sản phẩm, giao hàng, mua hàng online,…)

Ngày đăng: 20/04/2024, 16:04

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w