Đang tải... (xem toàn vă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 t
Trang 1HỌC VIỆN NGÂN HÀNGKHOA HỆ THỐNG THÔNG TIN QUẢN LÍ
Trang 2DANH SÁCH THÀNH VIÊN
Trang 32.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 44.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 5LỜ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 6NỘ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 8Quyề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 94.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 11b.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 135.Thiết kế cơ sở dữ liệu vật lýBảng nhaxuatban
Bảng tacgia
Địa chỉ
Trang 14matacgia Nvarchar2(10)
loạiBảng khachhang
thoạiBảng nhacungcap
Bảng quyen
Bảng sachTêntrường
Trang 15xuất bản
Bảng hoadonTêntrường
đơn
Trang 16ngayxuat Date Ngày xuấtmanhanvi
hàngBảng chitiethoadon
Bảng phieunhapTêntrường
cung cấpBảng chitietphieunhap
Ghi chúmachitiet
Trang 17III.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 203.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 22Kế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 23Bảng nhà cung cấp
Bảng sách
Bảng thể loại
Bảng tác giả
Trang 24Bả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 254.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 26select 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 27select 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 284.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 29from 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 30createorreplacefunction 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 31Gọ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 325.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 33select 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 34thang 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 35when 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 36chitiethoadon 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 37maphieunhap 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 38exit when wb%notfound;
dbms_output.put_line w maphieunhap( ||' '|| wma_chitietpn||' '|| w masach||' '|| w solg||' '|| w gianh||' '||
Trang 395.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