Tải bản đầy đủ (.docx) (12 trang)

Bài tập lớn môn cơ sở dữ liệu it10 Xây dựng chương trình quản lý bán thuốc Ehou

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (125.36 KB, 12 trang )

TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚN
MÔN : Hệ quản trị cơ sở dữ liệu - IT10
NGÀNH: KHOA CÔNG NGHỆ THÔNG TIN
Đề tài:
XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ BÁN THUỐC

Hà Nội, 7/2022

MỤC LỤC

ĐỀ TÀI........................................................................................................................................3


1. Phát biểu bài toán.................................................................................................................4
2. Tạo cơ sở dữ liệu..................................................................................................................4
2.1.

Tạo Database...............................................................................................................4

2.2.

Tạo bảng nhà cung cấp................................................................................................4

2.3.

Tạo bảng loại sách.......................................................................................................4

2.4.



Bảng sách....................................................................................................................4

2.5.

Tạo bảng đơn hàng......................................................................................................5

2.6.

Tạo bảng chi tiết đơn hàng..........................................................................................5

2.8.

Tạo khoá ngoại bảng chi tiết đơn hàng.......................................................................5

2.9.

Insert dữ liệu bảng nhà cung cấp.................................................................................6

2.10. Insert dữ liệu bảng loại sách........................................................................................6
2.11. Insert dữ liệu bảng sách...............................................................................................6
2.12. Insert dữ liệu bảng đơn hàng.......................................................................................6
2.13. Insert dữ liệu bảng chi tiết đơn hàng...........................................................................6
3. Xây dựng view cho cơ sở dữ liệu.........................................................................................7
3.1.

View bảng danh sách nhà cung cấp............................................................................7

3.2.


View lấy danh sách loại sách......................................................................................7

3.3.

View lấy danh sách sách.............................................................................................7

3.4.

View lấy danh sách đơn hàng.....................................................................................7

4. Xây dựng các Procedure.......................................................................................................8
4.1.

Procedure thêm nhà cung cấp.....................................................................................8

4.2.

Procedure sửa thơng tin nhà cung cấp.........................................................................8

4.3.

Procedure tìm kiếm sách theo tên...............................................................................9

4.4.

Procedure lấy thông tin bảng chi tiết đơn hàng...........................................................9

4.5.

Procedure lấy thông tin bảng đơn hàng.....................................................................10


5. Xây dựng các Trigger cho CSDL.......................................................................................10
5.1.

Trigger tổng tiền đơn hàng lớn hơn 1000000 không cho tạo đơn hàng....................10

5.2.

Trigger kiểm tra số lượng sách trong một đơn hàng.................................................10

5.3.

Trigger cập nhật lại danh sách dữ liệu khi xoá nhà cung cấp...................................11

5.4.

Trigger cập nhật lại danh sách dữu lieieuj khi xoá mã loại sách..............................11

6. Phân tán cơ sở dữ liệu.........................................................................................................11


6.1.

Tạo user có phân quyền.............................................................................................11


I. Đề bài.

ĐỀ TÀI


 Xây dựng chương trình quản lý bán thuốc
 Yêu cầu cần thực hiện:
1. Xác định các bảng và Tạo CSDL của bài toán Thực hiện câu lệnh tạo CSDL, tạo bảng
và chèn dữ liệu cho bảng, mỗi bảng tối thiểu 5 bản ghi
2. Tạo các view chứa và khai thác CSDL Tối thiểu 10 view (gồm: Lấy thơng tin một
bảng, lấy thơng tin nhiều bảng, tính tốn gom nhóm, …)
3. Tạo và thực thi các thủ tục cho CSDL Tối thiểu 5 thủ tục (các thủ tục có truyền tham
số)
4. Tạo và vận dụng các trigger Tối thiểu 5 trigger
5. Phân quyền và bảo mật cho CSDL Tạo tối thiểu 2 người dùng và phân quyền sử dụng
cho Bảng, View, Thủ tục đã tạo ở trên
6. Phân tán lựa chọn một số bảng bất kỳ, thực hiện phân tán ngang và dọc, thực hiện các
yêu cầu khai thác trên dữ liệu phân tán


1. Phát biểu bài tốn
Xây dựng chương trình quản lý sinh viên gồm các thông tin sau:
- Quản lý loại thuốc: Chức năng này cho phép quản lý thông tin loại thuốc
- Quản lý thuốc: Chức năng này quản lý thơng tin các loại thuốc trong quầy
- Quản lý hố đơn: chức năng quản lý hoá đơn bán hàng
2. Tạo cơ sở dữ liệu
2.1. Tạo Database
Create database QuanLyBanThuoc;
Kết quả

2.2.

Tạo loại thuốc

create table loaithuoc(

[MaLoaiThuoc] [int] IDENTITY(1,1) PRIMARY KEY NOT NULL,
[TenLoaiThuoc] [nvarchar](250) NOT NULL);
2.3.

Tạo bảng thuốc

create table thuoc(
[MaThuoc] [int] IDENTITY(1,1) PRIMARY KEY NOT NULL,
[TenThuoc] [nvarchar](250) NOT NULL,
[MaLoaiThuoc] [int],
[SoLuongNhap] [int]);
2.4.

Bảng sách
5


create table hoadon(
[MaHoaDon] [int] IDENTITY(1,1) PRIMARY KEY NOT NULL,
[MaThuoc] [int],
[SoLuongBan] [int],
[DonGia] [int],
[TongTienThanhToan] [float]);
2.5.

Tạo khoá ngoại bảng thuốc

alter table thuoc
add constraint fk_htk_loaithuoc
foreign key(MaLoaiThuoc)

references loaithuoc(MaLoaiThuoc);
2.6.

Tạo khoá ngoại bảng hoá đơn
alter table hoadon

add constraint fk_htk_mathuoc
foreign key(MaThuoc)
references thuoc(MaThuoc);
2.7.

Insert dữ liệu bảng loại thuốc

insert into loaithuoc(TenLoaiThuoc) values(N'Loai Thuoc Nhap ngoai');
insert into loaithuoc(TenLoaiThuoc) values(N'Thuoc NCC Ha Trang');
insert into loaithuoc(TenLoaiThuoc) values(N'Thuoc NCC Kim Long');
2.8.

Insert dữ liệu bảng thuốc

insert into thuoc(TenThuoc,MaLoaiThuoc,SoLuongNhap) values(N'Thuốc
B1','1','40');
6


insert into thuoc(TenThuoc,MaLoaiThuoc,SoLuongNhap) values(N'Thuốc
B2','2','40');
insert into thuoc(TenThuoc,MaLoaiThuoc,SoLuongNhap) values(N'Thuốc
B3','3','40');
insert into thuoc(TenThuoc,MaLoaiThuoc,SoLuongNhap) values(N'Thuốc

B4','1','40');
2.9.

Insert dữ liệu bảng hoá đơn

insert into hoadon(MaThuoc,SoLuongBan,DonGia,TongTienThanhToan) values
('1','3','150000','4500000');
insert into hoadon(MaThuoc,SoLuongBan,DonGia,TongTienThanhToan) values
('2','1','15000','15000');
insert into hoadon(MaThuoc,SoLuongBan,DonGia,TongTienThanhToan) values
('3','2','20000','40000');
insert into hoadon(MaThuoc,SoLuongBan,DonGia,TongTienThanhToan) values
('1','2','150000','300000');
3. Xây dựng view cho cơ sở dữ liệu
3.1. View bảng danh sách loại thuốc
create view laydanhsachloaithuoc as
select * from loaithuoc;
3.2.

View lấy danh sách thuốc

create view laydanhsahthuoc as
select * from thuoc;
3.3.

View lấy danh sách hố đơn

create view laydanhsachhoadon as
select * from hoadon;
3.4.


View tìm kiếm thuốc theo tên thuốc

create view timkiemthuoc as
select * from thuoc where TenThuoc like '%B1%';
7


3.5.

View tìm kiếm hố đơn theo mã hố đơn

create view timkiemhoadon as
select * from hoadon where MaHoaDon like '%1%';
3.6.

View lấy thuốc có số lượng nhập lớn nhất

create view thuocnhapnhieunhat as
select * from thuoc where SoLuongNhap =(select MAX(SoLuongNhap) from
thuoc)
3.7.

View tìm hố đơn có tổng thanh tốn cao nhất

create view hoadonthanhtoancao as
select * from hoadon where TongTienThanhToan =(select
MAX(TongTienThanhToan) from hoadon);
4. Xây dựng các Procedure
4.1. Procedure thêm nhà cung cấp

create procedure themloaithuoc
@TenLoaiThuoc nvarchar(250)
as
begin
insert into loaithuoc (TenLoaiThuoc) values (@TenLoaiThuoc)
end
exec themloaithuoc'Thuoc NCC Hong Anh'
4.2.

Procedure thêm thông tin thuốc

create procedure themthuoc
@TenThuoc nvarchar(250),
@MaLoaiThuoc int,
@SoLuongNhap int
8


as
begin
insert into thuoc(TenThuoc,MaLoaiThuoc,SoLuongNhap)
values(@TenThuoc,@MaLoaiThuoc,@SoLuongNhap)
end
exec themthuoc 'Thuoc A1','1','30'
4.3.

Procedure thêm thơng tin hố đơn

create procedure themhoadon
@MaThuoc int,

@SoLuongBan int,
@DonGia int,
@TongTienThanhToan float
as
begin
insert into hoadon(MaThuoc,SoLuongBan,DonGia,TongTienThanhToan)
values(@MaThuoc,@SoLuongBan,@DonGia,@TongTienThanhToan)
end
exec themhoadon'2',' 5','100000','500000'
4.4.

Procedure sửa thông tin loại thuốc

create procedure suathongtinloaithuoc
@MaLoaiThuoc int,
@TenLoaiThuoc nvarchar(250)
as
begin
9


update loaithuoc set TenLoaiThuoc=@TenLoaiThuoc where
MaLoaiThuoc=@MaLoaiThuoc
end
exec suathongtinloaithuoc '1','Viem Gan'
4.5.

Procedure tìm kiếm loại thuốc theo mã loại thuốc

create procedure timkiemloaithuoc

@MaLoaiThuoc int
as
begin
select * from loaithuoc where MaLoaiThuoc=@MaLoaiThuoc
end
exec timkiemloaithuoc '1'
5. Xây dựng các Trigger cho CSDL
5.1.

Trigger đơn hàng có tổng tiền thanh tốn trên 100.000

create trigger check_tongtientren100
on hoadon
for insert,update as
if(select TongTienThanhToan from hoadon)>100000
begin
print N'Tong tien HD tren 100.000'
rollback
end;
5.2.

Trigger kiểm tra đơn hàng có số lượng nhập trên 10 sản phẩm
10


create trigger check_soluongnhap
on thuoc
for insert,update as
if(select SoLuongNhap from thuoc)>10
begin

print N'So luong nhap tren 10 san pham'
rollback
end;
5.3.

Kiểm tra hố đơn có số lượng sản phẩm bán theo mã thuốc

create trigger check_soluongban
on hoadon
for insert,update as
if(select SoLuongBan from hoadon)>5
begin
print N'So luong ban tren 5 san pham'
rollback
end;
5.4.

Trigger kiểm tra số lượng sản phẩm trong đơn hàng

create trigger check_SLbanhd
on hoadon
for update,insert
as
if(select count(SoLuongBan) from hoadon group by MaThuoc)>5
begin
print 'Ban Da mua qua 5 san phẩm'
11


rollback

end
5.5.

Trigger kiểm tra số lượng hàng đã bán theo mã hoá đơn

create trigger check_SLbantheohd
on hoadon
for update,insert
as
if(select count(SoLuongBan) from hoadon group by MaHoaDon)>5
begin
print 'Ban Da mua qua 5 san phẩm'
rollback
end
6. Phân tán cơ sở dữ liệu
6.1.

Tạo user có phân quyền

create user NguoiDung1 from login [Admin\SQLEXPRESS]
grant update,insert,delete on tblHoaDon to User1
create user NguoiDung2 from login [Admin \SQLEXPRESS]
grant update,insert,delete on tblThuoc to User2

12



×