bài tập lớn đề tài quản lí bán hàng sách

47 0 0
Tài liệu đã được kiểm tra trùng lặp
bài tập lớn đề tài quản lí bán hàng sách

Đ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

Việc nghiên cứu quản lý dữ liệu trong cửa hàng bán sách là giải pháp hiệuquả trong việc nâng cao năng lực vận hàng, kiểm soát hiệu quả trong kinh doanh manglại nhiều lợi ích: tiết kiệm t

Trang 1

HỌC VIỆN NGÂN HÀNGKHOA HỆ THỐNG THÔNG TIN QUẢN LÍ

Trang 2

DANH SÁCH THÀNH VIÊN

Trang 3

2.2 Quản lý thông tin về sách trong cửa hàng 7

2.3 Quản lý thông tin của khách hàng 8

a Biểu diễn các thực thể thành quan hệ 10

b.Biểu diễn mối quan hệ giữa các thực thể thành các quan hệ 12

5.Thiết kế cơ sở dữ liệu vật lý 13

III.XÂY DỰNG VÀ QUẢN LÝ CƠ SỞ DỮ LIỆU 16

1 Tạo cơ sở dữ liệu 16

Trang 4

4.Các câu truy vấn cửa hàng thường sử dụng 24

5.Một số nghiệp vụ thông thường 28

7.Sao lưu phục hồi (Backup) 41

a.Backup là gì? 41

b.Phương án backup 42

c Chiến lược backup 42

d.Điều kiện backup 42

Trang 5

LỜI NÓI ĐẦU

“Sách mở ra trước mắt tôi những chân trời mới”- M.GoockiMỗi cuốn sách là kết tinh từ tri thức và cuộc sống, đọc sách không chỉ là một sở thích mà còn là con đường ngắn nhất để tiếp cận với nền văn minh của nhân loại Cửahàng sách là nơi con người dễ dàng tiếp cận với nền tri thức, văn minh nhân loại đó

Trong thời kỳ hiện nay, thời kỳ của công nghệ số 4.0, các loại hình dịch vụ phục vụ yêu cầu khách hàng ngày càng được cải tiến và tối ưu hóa Đời sống càng nâng cao đi kèm nhu cầu càng lớn tạo nên khối dữ liệu khổng lồ cần lưu trữ và xử lý.

Để tiết kiệm thời gian, chi phí và mang lại độ chính xác cao thì quản lý dữ liệu cửa hàng sách là giải pháp hỗ trợ kinh doanh cửa hàng sách hiệu quả hơn

Việc nghiên cứu quản lý dữ liệu trong cửa hàng bán sách là giải pháp hiệuquả trong việc nâng cao năng lực vận hàng, kiểm soát hiệu quả trong kinh doanh manglại nhiều lợi ích: tiết kiệm thời gian và chi phí, hạn chế các sai sót và thất thoát dễ xảy ra theo phương pháp thủ công Bên cạnh đó, việc quản lý dữ liệu còn giúp ta theo dõi hoạt động kinh doanh mọi lúc mọi nơi mà không cần có mặt trực tiếp, thuận tiện trongtrường hợp quản lý chuỗi nhiều cửa hàng.

Nhận thấy tầm quan trọng của môn học và sự hứng thú đặc biệt với lĩnh vực quản lý cửa hàng bán sách, chúng em đã quyết định lựa chọn đề tài “Quản lý dữ liệu cửa hàng bán sách” làm đề tài báo cáo kết thúc học phần.

Do còn nhiều hạn chế về kiến thức và kinh nghiệm, nên báo cáo không thể tránh khỏi những sai sót, chúng em rất mong nhận được góp ý từ cô và các bạn để bài báo cáo được hoàn thiện hơn Chúng em xin chân thành cảm ơn.

Trang 6

NỘI DUNGI THÔNG TIN DỰ ÁN

1 Nhiệm vụ của hệ thống quản lý bán hàng sách

Quản lý bán hàng sách là một hệ thống giúp chúng ta quản lý sách, nhân viên bánsách, nhà xuất bản, nhà cung cấp, hoá đơn bán và nhập sách Quản lý sách đã và đang bán tạicửa hàng, quản lý lượng sách của mỗi thể loại, nhà xuất bản, nhà cung cấp, thống kê được sốlượng sách mỗi khách hàng mua thông qua hoá đơn bán Đồng thời quản lí về số lượng đơnmỗi nhân viên bán được.

hơn như: quyền, tài khoản, mật khẩu

2.2 Quản lý thông tin về sách trong cửa hàng- Quản lý tên sách.

- Quản lý nhà cung cấp, nhà xuất bản, tác giả, thể loại, năm xuất bản.- Trong quá trình bán sách, nhân viên cần đến các thông tin của sách như số lượng tồn mỗi sách, giá bán.

2.3 Quản lý thông tin của khách hàng - Quản lý họ tên khách hàng.

- Quản lý địa chỉ, số điện thoại(nếu có).

- Quản lý voucher giảm giá của khách hàng(nếu có).2.4 Quản lý quá trình bán sách

- Quản lý các hóa đơn nhập và bán sách tại cửa hàng.

Trang 7

- Quản lý thông tin nhà cung cấp sách cho cửa hàng.3 Mô tả tóm tắt dự án

Khách hàng đến cửa hàng mua sách phải tiến hành như sau: - Mang theo voucher giảm giá (nếu có)

- Đầu tiên phải qua bộ phận đón tiếp làm thủ tục, tại đây nhân viên sẽ lấy thông tin hành chính của khách hàng để viết phiếu mua hàng (đối với khách hàng lần đầu tiên đến mua sách tại cửa hàng).

- Khách hàng được các tiếp viên hướng dẫn đến nơi chứa thể loại sách theo yêu cầu của khách hàng.

- Tại quầy sách, khách hàng được tư vấn sách Nếu có nhu cầu đổi thể loại sách sẽ được tư vấn sang quầy sách khác.

- Khách hàng phải qua bộ phận thanh toán để thanh toán hóa đơn bán hàng và làm các thủ tục khác (nếu có).

- Sau khi khách hàng thanh toán hóa đơn, xuất phiếu hóa đơn Cập nhật lại số lượng sách, tặng voucher giảm giá nếu đạt mức chi tiêu tối thiểu.

II.TRIỂN KHAI DỰ ÁN1.Các thực thể

Nhân viên( Mã nhân viên, họ tên, CCCD,địa chỉ, ngày sinh, giới tính, SĐT,tàikhoản, mật khẩu)

Khách hàng (Mã khách hàng, tên khách hàng, địa chỉ, SĐT)Nhà xuất bản(Mã nhà xuất bản, tên nhà xuất bản, địa chỉ, SĐT)Nhà cung cấp ( Mã nhà cung cấp, tên nhà cung cấp , địa chỉ, SĐT)Sách(Mã sách, tên sách, năm xuất bản, giá bán, số lượng)Tác giả(Mã tác giả, tên tác giả)

Thể loại(Mã thể loại,tên thể loại)

Trang 8

Quyền (Mã quyền, tên quyền)Hoá đơn(Mã hoá đơn, ngày xuất)

Chi tiết hoá đơn (Mã chi tiết hoá đơn, mã sách, đơn giá)Phiếu nhập (Mã phiếu nhập, ngày nhập)

Chi tiết phiếu nhập (Mã chi tiết phiếu nhập, mã sách, số lượng, giá nhập)

Trang 9

4.Thiết kế mức logic

a Biểu diễn các thực thể thành quan hệ

[Sách] => sach (masach, tensach, namxuatban, giaban, soluongton)[Nhà xuất bản] => nhaxuatban (ma nxb , tennxb, diachi, dienthoai)[Nhà cung cấp] => nhacungcap (mancc, tenncc, diachi, dienthoai)[Tác giả] => tacgia (matacgia, tentacgia)

Trang 10

[Thể loại] => theloai (matheloai, tentheloai)

[Khách hàng] => khachhang (makhach, tenkhach, diachi, dienthoai)[Quyền] => quyen(maquyen, tenquyen)

[Nhân viên] => nhanvien (manhanvien, tennhanvien, cccd, gioitinh, ngaysinh, diachi,dienthoai, tai khoan, matkhau)

[Hoá đơn] => hoadon (mahoadon, ngayxuat)

[Chi tiết hoá đơn] => chitiethoadon (machitiethd, masach, soluong, dongia)[Phiếu nhập] => phieunhap (maphieunhap, ngaynhap)

[Chi tiết phiếu nhập] => chitietphieunhap (machitietpn, masach, soluong, gianhap)

Trang 11

b.Biểu diễn mối quan hệ giữa các thực thể thành các quan hệ1 <Viết>

[Tác giả_Sách] => sach (masach, tensach, namxuatban, giaban, soluongton,matacgi a )

Trang 12

[Phiếu nhập_Chi tiết phiếu nhập] => chitietphieunhap (machitietpn, soluong,gianhap,maphieunhap, masach)

[Hoá đơn_Chi tiết hoá đơn] => chitiethoadon (machitiethd, soluong, dongia,mahoadon, masac h)

C.Sơ đồ quan hệ

Trang 13

5.Thiết kế cơ sở dữ liệu vật lýBảng nhaxuatban

Bảng tacgia

Địa chỉ

Trang 14

matacgia Nvarchar2(10)

loạiBảng khachhang

thoạiBảng nhacungcap

Bảng quyen

Bảng sachTêntrường

Trang 15

xuất bản

Bảng hoadonTêntrường

đơn

Trang 16

ngayxuat Date Ngày xuấtmanhanvi

hàngBảng chitiethoadon

Bảng phieunhapTêntrường

cung cấpBảng chitietphieunhap

Ghi chúmachitiet

Trang 17

III.XÂY DỰNG VÀ QUẢN LÝ CƠ SỞ DỮ LIỆU1 Tạo cơ sở dữ liệu

2 Tablespace

Có cần thiết phải tạo nhiều tablespace cho cơ sở dữ liệu này không?Hãy đưa ra những giải thích hợp lý cho quyết định của anh chịViệc tạo nhiều tablespace là cần thiết cho cơ sở dữ liệu , vì:

Trang 18

- Dùng tablespace sẽ giúp quản lí data dễ dàng hơn, cho hiệu suất cao hơn, an toàn và bảo mật dữ liệu tốt hơn.

- Có thể cấp phát hạn ngạch không gian cho nhiều người dùng khác nhau trong hệ thống.

- Dễ dàng backup hay recover từng phần Mỗi phần này chính là 1 tablespace.- Nếu một lúc nào đó dữ liệu lớn ra, cần thêm ổ cứng để lưu trữ thì ta gắn thêm ổ

cứng, lấy 1 vùng không gian trên ổ cứng mới dùng cho dữ liệu Để gắn kết vùng không gian mới này với vùng không gian hiện tại thì phải dùng tablespace.

- Nếu ta muốn 1 phần CSDL không được truy xuất nữa thì chỉ cần dừng 1 tablespace đó chứ không cần phải dừng toàn bộ CSDL.

- Trong bài trên nhóm sẽ chia ra 2 tablespace(tablesp1 và tablesp2) Tablesp1 sẽ lưu trữ các dữ liệu ít thay đổi còn tablesp2 sẽ lưu trữ các dữ liệu phải cập nhật thường xuyên (quyền, khách hàng, phiếu nhập, hoá đơn, chi tiết phiếu nhập, chitiết hoá đơn) Việc phân chia như thế này sẽ giúp nâng cao hiệu suất trong việc sao lưu và phục hồi dữ liệu theo từng phần.

3 Tạo tablespace và các bảng a Tạo tablesp1

3.1.1 Tạo bản g quyền

3.1.2 Tạo bảng theloai

Trang 20

3.2.3 Tạo bảng hoadon

3.2.4 Tạo bảng chitiethoadon

3.2.5 Tạo bảng phieunhap

3.2.6 Tạo bảng chitietphieunhap

Trang 22

Kết quả sau khi nhập dữ liệu Bảng nhân viên

Bảng quyền

Bảng khách hàng

Bảng nhà xuất bản

Trang 23

Bảng nhà cung cấp

Bảng sách

Bảng thể loại

Bảng tác giả

Trang 24

Bảng phiếu nhập Bảng hóa đơn

Bảng chi tiết phiếu nhập Bảng chi tiết hóa đơn

Trang 25

4.Các câu truy vấn cửa hàng thường sử dụng 4.1 Đưa ra t hông tin sách chưa có ai mua

select from* sach

where masach not in(select masach from chitiethoadon); Kết quả

4.2 Đưa ra t hông tin sách có thể loại là sgk và xuất bản năm 2021 select from* sach

where matheloai='sgk'and namxuatban 2021= ;Kết quả

4.3 Đưa ra số tiền lãi của mỗi sản phẩm

Trang 26

select distinct a.tensach b gianhap a giaban, , ,( a giaban

- b gianhap )as tienlai

from sach a inner join chitietphieunhap b aon masach b masach= ;Kết quả

4.4 Thống kê những sách bán được trong tháng 2 và số lượng bán được

select a.masach a tensach , ,sum(soluong soluongdaban )as from

chitiethoadon b join sach a aon masach b masach=

where a.masach in(select b.masach from chitiethoadon b innerjoin hoadon c using (mahoadon)

whereextract month( from c.ngayxuat 2)= )

group by a.masach a tensach, ;Kết quả

4.5 Thống kê khách hàng đã mua sách gì với sô lượng bao nhiêu

Trang 27

select makhach, masach soluong , from chitiethoadon join hoadon

on chitiethoadon.mahoadon hoadon mahoadon= ;Kết quả

PL/SQL

Set serveroutput onBegin

for ds in SELECT makhach,masach, soluong from chitiethoadon join hoadon on chitiethoadon.mahoadon hoadon= mahoadon) loop

dbms_output.put_line'Khach hang: '||ds.makhach||' mua sach: '||ds.masach||' voi so luong: '||ds.soluong);

end loop;

End;Kết quả

Trang 28

4.6 Danh sách những sách do Nhã Nam cung cấp

SELECT distinctmasach from chitietphieunhap join phieunhap on

chitietphieunhap.maphieunhap = phieunhap.maphieunhap

where mancc in (select mancc from nhacungcap where tenncc='Nha Nam');

Kết quả

4.7 Thông tin những khách hàng mua từ 2 lần trở lên

select from* khachhang where makhach in(select distinct

makhach from hoadon havingcount(mahoadon)>=2 group by makhach);

Kết quả

4.8 Đưa ra doanh thu cửa hàng theo từng tháng

selectextract month( from hoadon.ngayxuat)as thang,sum((chitiethoadon dongia -

chitietphieunhap gianhap chitiethoadon soluong )* )as doanhthu

from chitietphieunhap inner join sach on

chitietphieunhap.masach = sach.masach innerjoin chitiethoadon

on sach.masach chitiethoadon masach = inner join hoadon on

hoadon mahoadon chitiethoadon = mahoadon groupbyextract month(

from hoadon.ngayxuat);

Trang 29

from hoadon a join chitiethoadon b aon mahoadon b mahoadon = join

khachhang c aon makhach c makhach=

havingsum(soluong dongia 300000* )>

group by a.mahoadon a makhach c tenkhach, , ;Kết quả

4.10 Đưa ra tên các nhà cung cấp và sách có giá bán cao nhất của nhà cung cấp đó.

select b.manxb tennxb masach tensach giaban , , , ,

from sach a join nhaxuatban b aon manxb b manxb=

where giaban=(selectmax(giaban )from sach c where b.manxb c manxb= );Kết quả

5.Một số nghiệp vụ thông thường5.1

Nhập mã khách hàng cho biết khách hàng đó đã mua bao nhiêu lần?

Trang 30

createorreplacefunction f_sodon(f_makhach char)

select khachhang.makhach,count(mahoadon)into ma dem,

from khachhang inner join hoadon

khachhangon makhach hoadon= makhach where

khachhang makhach f_makhach =

group by khachhang.makhach;

5.2 Cập nhật giá tăng lên 1000 cho các mã sách nhập từ bàn phím

createorreplaceprocedure giatang(msach nvarchar2)

update chitietphieunhap set gianhap gianhap = +1000 where masach msach= ;

dbms_output.put_line('da cap nhat gia nhap');

end;

Trang 31

Gọi thủ tục

exec giatang('01'); Kết quả

5.3

Nhập mã sách cho biết tên sách, tên thể loại, tên nhà xuất bản, giá bán,số lượng tồn kho

set serveroutput ondeclare

ts nvarchar2( );50 ttl nvarchar2( );50 gban number;

from sach natural join theloai where ts tensach= ;

dbms_output.put_line('ten sach: '|| ||ts', ten the loai: '||

ttl||', gia ban: '||gban||', so luong ton kho: '||sltonkho);

Nhập mã: Hoang tu be

Kết quả

Trang 32

5.4 Nhập tên sách cho biết sách đó có tồn tại trong CSDL không

createorreplaceprocedure tt(ten_sach nvarchar2)

where tensach = ten_sach;

if n>0 then dbms_output.put_line('ton tai sach '||ten_sach||' trong csdl');

else dbms_output.put_line('khong ton tai sach '||ten_sach||' trong csdl');

end if;

Gọi thủ tụcset serveroutput on

exec tt('Khu vuon tren may');Kết quả

5.5 Nhập mã phiếu nhập cho biết phiếu đó do nhân viên nào lập và tổngtiền phiếu nhập đó

Trang 33

select nhanvien.manhanvien gianhap soluong , ,

from chitietphieunhap join phieunhap chitietphieunhapon maphieunhap

= phieunhap maphieunhap join nhanvien on nhanvien manhanvien =

exit when ds%notfound;

mpn nvarchar2( );10x number;

mpn := &mpn;

x caunam:= (mpn);dbms_output.put_line(x);

Kết quả

5.6 Nhập tháng cho biết tháng đó có bao nhiêu khách hàng đến mua

Trang 34

thang number;

so_khach number;

thang thang := & ;

into so_khach

from hoadon

whereextract month( from ngayxuat) = thang;

dbms_output put_line ('so khach hang den trong thang '||thang||' la: '||so_khach);

Nhập tháng: 3

Kết quả

5.7 Thêm mới dữ liệu vào nhà cung cấp, báo lỗi nếu nhà cung cấp đã có

createorreplaceprocedure nccm(a nhacungcap mancc %type, b nhacungcap tenncc %type)

exception when er then

dbms_output.put_line('Da co du lieu Khong them duoc.');

Trang 35

when no_data_found then

insert into nhacungcap(mancc tenncc, )values ( , );a b dbms_output.put_line(b ||' da duoc them');

Thực thiset serveroutput on

exec nccm('&MaNCC' '&TenNCC', );

Kết quả

5.8 Xoá nhân viên khi đưa vào mã nhân viên

createorreplaceprocedure xoanv

( a nhanvien manhanvien %type;)is

dem number;

dem nhanvien manhanvien

selectcount(manhanvien)into from where = ;a dem 0 if = then

dbms_output put_ line ('Khong co du lieu nhan vien');

phieunhap manhanvien

delete where = ;a

Trang 36

chitiethoadon mahoadon mahoadon hoadon

delete where in(select fromwhere manhanvien= );a

hoadon manhanvien

delete where = ;a nhanvien manhanvien

delete where = ;a

quyen maquyen maquyen nhanvien

delete where in(select from where

manhanvien a= );

dbms_output.put_line('Da xoa nv '|| ||a' thanh cong');

end if;

Thực hiện câu nghiệp vụ:

exec xoanv('&manhanvien')

Kết quả

5.9 Khi xóa phiếu nhập thì sẽ hiển thị cập nhật số lượng tồncreate table wastebin_ctpn

(

Trang 37

maphieunhap nvarchar2( ),10 ma_chitietpn number,

masach nvarchar2( ),10 solg number,

gianh number,

nguoi_xoa nvarchar2( ),20

CONSTRAINT ctpnhap_pk PRIMARY KEY (maphieunhap ma_chitietpn, ),

CONSTRAINT pn_ctpnhap_fk FOREIGN KEY (maphieunhap)REFERENCES

phieunhap maphieunhap( ),

CONSTRAINT sach_ctpnhap_fk FOREIGN KEY (masach)REFERENCES

sach masach( ));

createorreplacetrigger lichsu_xoa

after delete on chitietphieunhap

for each rowdeclare

ng_xoa nvarchar2( );20

beginselect userinto ng_xoa

from dual;

insert into wastebin_ctpn values(

:old maphieunhap ,:old machitietpn ,:old masach ,:old soluong ,:old gianhap ng_xoa ,

Trang 38

exit when wb%notfound;

dbms_output.put_line w maphieunhap( ||' '|| wma_chitietpn||' '|| w masach||' '|| w solg||' '|| w gianh||' '||

Trang 39

5.10 Nhập tên sách, đưa ra thông tin sách, nếu số lượng là 0 thôngbáo “Hết hàng”, từ 1-5 quyển thông báo “Sắp hết hàng”, trên 5 quyển thôngbáo “Còn hàng”

createorreplacefunction kt(a sach tensach %type)

return 0;

elsif temp<=5 then return 1;

else return - ;1 end if;

Thực thi

set serveroutput ondeclare

a sach.masach%type;

temp number;

begin

Ngày đăng: 19/06/2024, 17:05