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

Thông tin cơ bản

Tiêu đề Quản lý bán Laptop, PC
Tác giả Lương Tuấn Minh, Nguyễn Duy Anh, Lê Xuân Mười, Nguyễn Đức Thành
Người hướng dẫn Nguyễn Hồng Hạnh
Trường học Trường Đại học Xây dựng Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án hệ cơ sở dữ liệu
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 17
Dung lượng 495,16 KB

Nội dung

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,... Khai thác dữ liệu - Lấy danh sách

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

1.2 Khai thác dữ liệu 3

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

2.1 Mô tả thực thể 3

2.2 Mối quan hệ 4

2.3 Sơ đồ ERD 5

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 (Relationship Diagram) 9

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

5.2 ĐƠN HÀNG, DOANH THU 15

5.3 NHÂN VIÊN 16

6 Đánh giá thiết kế CSDL 18

6.1 Ưu điểm: 18

6.2 Nhược điểm 18

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

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ơ đồ ERD

2.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 4

2.2 Mối quan hệ

- PRODUCTS (1 - 1) PRODUCT_DETAIL

- COUPON (1 – N) PRODUCTS

- PRODUCTS (1 - N) IMG

- CATALOG (1 – N) PRODUCTS

- GUEST (1 – N) BILL

- SALES (1 – N) BILL

- BILL (1 – 1) BILL_DETAIL

- BILL_DETAIL (1 – N) PRODUCTS

- SALES (1 – N) BILL

- STAFF (1 - 1) ACCOUNT_STAFF

- STAFF (1 – 1) SALARY

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

- 1 bảng gồm 3 phần:

+ Tên bảng + Khóa chính: id + Thành phần lưu trữ khác

- Status: trạng thái

- 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

- Sản phẩm (PRODUCTS):

+ id: mã sản phẩm + coupon_id: mã khuyến mãi + product_name: tên sản phẩm + product_brand: hãng sản phẩm + price: giá sản phẩm

+ qty: số lượng sản phẩm + catalog_id: mã loại sản phẩm + 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

- Ảnh (IMG)

+ id: mã ảnh

+ product_id: mã sản phẩm

+ img_link: đường dẫn ảnh

- Loại sản phẩm (CATALOG)

+ id: mã loại sản phẩm

+ catalog_name: tên loại sản phẩm

- Khách hàng (GUEST):

+ id: mã khách hàng

+ name: tên khách hàng

+ gender: giới tính

+ 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

+ guest_id: mã khách hàng

+ amount: tổng tiền

- Chi tiết đơn (BILL_DETAIL):

+ product_id: mã sản phẩm

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

+ qty: số lượng sản phẩm

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

+ salary: mức lương

- Doanh thu (SALES):

+ id:

+ amount: Tổng doanh thu

Trang 9

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

Trang 10

5 Danh sách truy vấn đã thiết kế và hình ảnh demo kết quả tương ứng

5.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 p.product_brand = 'acer'

2 Lấy ra những sản phẩm có giá < 20000000 VNĐ

SELECT product_name, product_brand, price FROM PRODUCTS

WHERE price < 20000000 ORDER BY price ASC

3 Tìm sản phẩm có giá cao nhất

SELECT product_name, product_brand, price FROM PRODUCTS

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

= '3'

5.3 NHÂN VIÊN

21 Hiển thị chức vụ của ‘Nguyen Duy Anh’

SELECT position

FROM STAFF

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ế CSDL

6.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

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

TÀI LIỆU LIÊN QUAN

w