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

Báo cáo bài tập lớnmôn hệ quản trị cơ sở dữ liệu

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 (318.71 KB, 19 trang )

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

BÁO CÁO BÀI TẬP LỚN
MÔN: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU

Đề tài
Sinh viên thực hiện
Giáo viên hướng dẫn

Hà Nội – 2023


u cầu chung về quyển báo cáo và chương trình
*Tồn bộ chương trình và file báo cáo BTL được lưu trong thư mục với tên theo nguyên tắc sau:

Nguyên tắc: SQLSERVER-BTL-<thứ tự đề>-<Họ tên sinh viên>
Ví dụ: SQLSERVER -BTL-01-NguyenVanHung
2
e
g
a
P

*Chương trình: Tạo file Query ghi nhận toàn bộ các câu lệnh thực hiện xử lý với CSDL của bài
toám gồm: Tạo cơ sở dữ liệu, tạo và chỉnh sửa các bảng, tạo và kiểm tra các View, tạo và thực thi
các thủ tục Proc, tạo và thực thi các Trigger, tạo người dùng và phân quyền người dùng, ….

*Cấu trúc quyển báo cáo:
1.



Trang bìa: Tên đề tài, tên nhóm (gồm cả họ tên các thành viên của nhóm), tên lớp.

2.
3.
4.
5.
6.
7.
8.
9.
10.

Mục lục.
Giới thiệu đề tài.
Phát biểu bài tốn
Mơ hình CSDL và tạo CSDL – tạo và chỉnh sửa các bảng
Các đối tượng CSDL gồm: View, Proc, Trigger
Phân quyền và bảo mật CSDL

Kết luận, hướng phát triển tiếp theo
Tài liệu tham khảo

2


I. Phát biểu bài toán:

{Yêu cầu: phát biểu bài toán dưới dạng văn bản thể hiện được các nghiệp vụ cơ bản của bài
toán hoặc tổng hợp các mẫu tài liệu nguồn mô tả thông tin được quản lý của bài tốn}

2

Lưu ý: phải xác định được thơng tin đối tượng cần quản lý, các chức năng dự kiến sẽ triển

e
a

khai. Đồng thời phải có các ràng buộc cần thoả mãn của dữ liệu

g
P

Khi quản lí khách sạn thì cần quản lí được 2 u cầu cơ bản đó là quản lí được dịch vụ và
quản lí phịng ốc.
Khi có khách hàng muốn đặt phòng tại khách sạn, điều đầu tiên nhân viên lễ tân phải làm
đó là kiểm tra trạng thái của các phòng trong khách sạn. Nếu trống phịng thì nhân viên sẽ
thơng báo cho khách hàng. Nếu khách hàng có nhu cầu th phịng tại khách sạn thì cần
phải cung cáp các thơng tin cá nhân như: Tên, Sđt, Địa chỉ..
Do nhu cầu sử dụng của từng KH mà họ có thể yêu cầu khách sạn đổi phịng
Ngồi việc cung cấp phịng cho khách hàng thì khách sạn còn cung cấp thêm các dịch vụ
cho khách hàng như: ăn uống, phương tiện đi lại, điện thoại,giặt là,...
Nội dung thơng tin cần quản lí:
- Thơng tin khách hàng.
- Thơng tin phịng.
- Quản lí giao dịch.
- Thơng tin dịch vụ.
- Thơng tin thanh tốn.
XĐ kiểu thực thể và thuộc tính của nó;

-


KhachSan(sMaKS,sTenKS,sDiaChi,sSoDienThoai,sEmail)
sMaKS
TenKS
sDiaChi
sSoDienThoai
sEmail

KhachHang(sMaKH, sHotenKH, sĐC, sSĐT, sCMND)
- sMaKH: Mã Khách hàng(Khóa chính)
- HotenKH: Họ và tên khách hàng.
- ĐC: Địa chỉ của khách hàng.
- SĐT: Số điện thoại của khách hàng.
- CMND: Số CMND của khách hàng.
Phong(MaP.TenP, LoaiP, Trangthai, GiaP)
- MaP: Mã phịng. Khóa chính


- TenP: Tên của P.
3


- LoaiP: Loại cảu phịng( Phịng đơn, đơi, đặc biệt, thường)
- Trangthai: Trạng thái của P(trống, có khách, đang sứa, phòng đặt trước)
- GiaP: Giá từng loại P

2

Dich Vu(MaDV, TenDV, iSoLuong,Đơn giá)
- MaDV: Mã của dịch vụ, khóa chính.


e
g
a

- TenDV: Tên của dịch vụ.

P

- iSoLuong:Số lượng dịch vụ
- GiaDV: Giá của dịch vụ.
HoaDon(MaHD, Sotien TT, NgayTT, HinhthucTT)
- MaHD: Mã của hóa đơn, khóa chinh.
- Sotien TT: Số tiền khách hàng đã thanh toán.
- NgayTT: Ngày thanh toán.
- Hinhthuc TT: Khách hàng thanh toán bằng thẻ hay tiền mặt.
ThuePhong(MaK H. Ngayden, Ngaydi, Tiendat)
DatPhong( MaKH, Ngayden, Tiendat)
DoiPhong( MaKH. Ngaydoi, MaPcu ,MaPmoi)
SuDungDich Vu(MaKH. MaDV, NgaySD)
SuDung Phong(MaP,MaKH)


4


II. Mơ hình CSDL quan hệ:
Kết quả: Xác định được mơ hình CSDL quan hệ giữa các bảng và
mơ tả chi tiết từng bảng (ít nhất 5 bảng)
Mỗi bảng cần được mơ tả theo cấu trúc sau (ví dụ minh hoạ)

2
e
g
a
P

Ta có CSDL của bài tốn như sau:
(1)tblBoPhan(sMaBoPhan, sTenBoPhan)
(2) tblNhanVien( sMaNV, sTenNV, bGioiTinh, sQueQuan, sDiaChi, sSDT, fHSL, fPC, ....

Các bảng được xác định cấu trúc như sau:
*tblBoPhan: lưu trữ thông tin của NHÂN VIÊN
TT

Tên Thuộc
Tính

Kiểu Dữ
Liệu

1

sMaBoPhan

varchar(10)

2

sTenBoPhan


nvarchar(25)

Ràng Buộc
PK

Ghi Chú
Mã bộ phận
Tênbộ phân

*tblNhanVien: lưu trữ thơng tin của NHÂN VIÊN
TT

Tên Thuộc
Tính

Kiểu Dữ
Liệu

Ràng Buộc
PK

Ghi Chú

1

sMaNV

varchar(10)

Mã nhân viên


2

sTenNV

nvarchar(25)

3

sGioitinh

bit

Chỉ nhận giá trị ‘true’ hoặc
‘false’

Giới tính

...

...

...

...

9

sMabophan


varchar(10)

FK, tham chiếu sang bảng
tblBoPhan

Mã bộ nhân viên
làm việc

10

sTenchucvu

nvarchar(25)

11

dNgayvaolam

date

Tên nhân viên

Tên chức vụ
dNgayvaolam<=getDate()

Ngày vào làm

………………………………………………………
………………………………………………………


5


III. Tạo cơ sở dữ liệu Gợi ý:

2
e
g
a
P

Dùng hệ quản trị SQL Server để tạo file cơ sở dữ liệu tương ứng với mơ hình
CSDL quan hệ đã tạo trong phần II
Tạo sơ đồ liên kết giữa các bảng
Nhập dữ liệu cho các bảng tạo được – (từ 10 - 20 bản ghi cho mỗi bảng)
*Chú ý:
dùng câu lệnh CREATE DATABASE để tạo cơ sở dữ liệu
dùng câu lệnh CREATE TABLE để tạo các bảng
tạo khóa chính và khóa ngoại cho bảng
đặt ràng buộc đầy đủ cho các bảng
dùng câu lệnh INSERT INTO để chèn dữ liệu có nghĩa cho các bảng
Kết quả: Có được 1 file SQL Server gồm các bảng và nhập dữ liệu đầy đủ cho
các bảng và 1 file .sql lưu trữ các câu lệnh thực hiện (tất cả dùng chung 1 file)

Minh họa kết quả tương ứng từng câu lệnh bằng hình ảnh (mỗi bảng
sau khi chèn dữ liệu vào phải chụp hình kết quả của bảng đó)
--tạo db
CREATE DATABASE QuanLyCuaHangSach
USE QuanLyCuaHangSach
GO


--Tao bang Bo Phan
CREATE TABLE tblBoPhan(
sMaBoPhan VARCHAR(10) PRIMARY KEY,
sTenBoPhan NVARCHAR(30) NULL
)
--tạo bảng nhân viên và ràng buộc
CREATE TABLE tblNhanVien(
sMaNV VARCHAR(10) NOT NULL,
sTenNV NVARCHAR(25) NULL,
sGioitinh NVARCHAR(4) NULL,
...
sMabophan VARCHAR(10) NOT NULL REFERENCES tblBoPhan(sMabophan),
sTenchucvu NVARCHAR(25) NULL,
dNgayvaolam DATE NULL,
CONSTRAINT PK_sMaNV PRIMARY KEY(sMaNV),
CONSTRAINT CHK_fHSL CHECK (fHSL>0),
...
)
................

6


*Chèn dữ liệu cho các bảng:
--Chèn dữ liệu cho bảng tblBoPhan
INSERT INTO tblBoPhan(sMaBoPhan,sTenBoPhan)
VALUES ('BP01', N'Thu ngân'),
('BP02', N'Bán hàng'),
('BP03', N'Kho hàng')

2
e
g
a
P

--Chèn dữ liệu cho bảng tblNhanVien
INSERT INTO tblNhanVien(sMaNV, sTenNV, sGioitinh, sQuequan, sDiachi, sSDT, fHSL,
fPC, sMabophan, sTenchucvu, dNgayvaolam)
VALUES ('NV01', N'Phạm Văn Hùng', 'Nam', N'Hải Phòng', N'Hà Nội', '0912083435', 4.4,
0.6, 'BP01', N'Trưởng phòng', '07/02/2000'),
('NV02', N'Phạm Thị Nga', N'Nữ', N'Quảng Ninh', N'Hà Nội', '0901283435', 3.9, 0.4,
'BP01', N'Phó phịng', '07/04/2000'),
('NV03', N'Nguyễn Thúy Ngọc', N'Nữ', N'Quảng Ninh', N'Hà Nội',
'0901382435', 3.0, 0.1, 'BP01', N'Nhân Viên', '07/04/2000'),
('NV04', N'Phạm Thị Hằng', N'Nữ', N'Thái Nguyên', N'Hà Nội', '0901283565', 3.6, 0.1,
'BP01', N'Nhân Viên', '07/04/2002'),
('NV05', N'Trần Văn Hạnh', 'Nam', N'Thái Nguyên', N'Hà Nội', '0912067835', 4.4, 0.6,
'BP02', N'Trưởng phòng', '07/02/2000'),
('NV06', N'Phạm Thị Nga', N'Nữ', N'Quảng Ninh', N'Hà Nội', '0901123435', 3.7, 0.4,
'BP02', N'Phó phịng', '07/04/2003'),
('NV07', N'Nguyễn Thúy Khánh', N'Nữ', N'Quảng Ninh', N'Hà Nội',
'0932082435', 3.6, 0.1, 'BP02', N'Nhân Viên', '07/04/2002'),
('NV08', N'Phạm Văn Khánh', N'Nam', N'Thái Nguyên', N'Hà Nội',
'0901267865', 3.0, 0.1, 'BP02', N'Nhân Viên', '07/04/2004')

7


Sơ đồ quan hệ giữa các bảng:


2
e
g
a
P

8


2
e
g
a
P

IV. Xây dựng các View cho CSDL:
Gợi ý:
Phát biểu các thao tác – Chức năng tương ứng cần thực hiện trên CSDL
Xây dựng các View tương ứng cho các thao tác đó
Kết quả: Có được 1 file .sql lưu trữ các câu lệnh thực hiện (tất cả dùng chung 1 file)

Minh họa kết quả tương ứng từng câu lệnh tạo View, mỗi một View gồm: yêu
cầu của View, code của câu lệnh và hình ảnh kết quả khi thực thi câu lệnh

Yêu cầu: ít nhất 10 view, gồm: view lấy thông tin cơ bản (từ một bảng hoặc nhiều
bảng) và view tổng hợp tính tốn phân nhóm (trên một bảng và từ nhiều bảng)

* Tạo View: Cho biết mã sách có tổng doanh thu bán được lớn hơn 100000


--* Tạo View: Tinh tien chi tiet cua tung hoa don
CREATE VIEW vvTinhTienCTHD as
Select sMaHD, sMaSach, iSL, fDGban, iSL*fDGban as ThanhTien
from tblChiTietHD
select * from vvTinhTienCTHD

9


2
e
g
a
P

--* Tạo View: Tinh tổng số lượng sách và tổng tiền của từng hóa đơn
CREATE VIEW vvTongTienHD (sMaHD, iTongSL, fTongTien) as
Select sMaHD, sum(iSL), sum(iSL*fDGban)
from tblChiTietHD
group by sMaHD
select * from vvTongTienHD

......

10


2
e
g

a
P

V. Xây dựng các Procedure cho CSDL
Gợi ý:
Phát biểu các thao tác – Chức năng tương ứng cần thực hiện trên CSDL
Xây dựng các Proc tương ứng cho các thao tác đó
Kết quả: Có được 1 file .sql lưu trữ các câu lệnh thực hiện (tất cả dùng chung 1 file)

Minh họa kết quả tương ứng từng câu lệnh tạo Proc, gồm: yêu cầu của
thủ tục, code của câu lệnh và hình ảnh kết quả khi thực thi câu lệnh
Yêu cầu ít nhất 5 proc, gồm: proc lấy thơng tin cơ bản (từ một hoặc nhiều
bảng), proc tổng hợp tính tốn phân nhóm (lấy từ một bảng hoặc nhiều bảng)

* thủ tục in ra những các nhân viên vào làm năm được nhập vào
CREATE PROC pr_NhanVien_Nam
@nam int
as
BEGIN
Select sTenNV, sGioitinh, sDiachi
from tblNhanVien
where year(dNgayvaolam) = @nam
END
EXEC pr_NhanVien_Nam 2000

EXEC pr_NhanVien_Nam 2001

* Thủ tục: Nhập mã HD, in ra tổng tiền thanh toán của hd đó
--Proc: Cho biết tổng tiền thanh tốn của một Hóa đơn nào đó theo mã HD
CREATE PROC pr_TongTienHD

@mahd varchar(10)
as
BEGIN
Select sum(iSL*fDGban)
from tblChiTietHD
where sMaHD = @mahd
11


END
EXEC pr_TongTienHD 'HD001'

2
e
g
a
P

EXEC pr_TongTienHD 'HD002'



12


VI. Xây dựng các Trigger cho CSDL
Gợi ý:
2
e
g

a
P

-

-

Phát biểu các ràng buộc tương ứng (trừ cái đã có khi thiết kế CSDL) cần thực hiện trên

CSDL
Xây dựng các trigger tương ứng cho các ràng buộc đó
Kết quả: Có được 1 file .sql lưu trữ các câu lệnh thực hiện (tất cả dùng chung 1 file)

Minh họa kết quả tương ứng từng câu lệnh tạo trigger, gồm: yêu cầu của
thủ tục, code của câu lệnh và hình ảnh kết quả khi thực thi câu lệnh

Yêu cầu ít nhất 5 trigger, gồm: trigger cơ bản (từ một hoặc nhiều
bảng), trigger tổng hợp (lấy từ một bảng hoặc nhiều bảng)

--Thêm cột tổng số lượng bán vào bảng tblSach
ALTER TABLE tblSach
ADD iTongSLBan int default(0)
Update tblSach
set iTongSLBan = 0
select * from tblSach
--Trigger khi thêm vào bảng tblChiTietHD thì tổng số lượng sách đã bán được tăng tương
ứng
CREATE TRIGGER tg_TongSLSachDaBan
ON tblChiTietHD
FOR insert

as
BEGIN
DECLARE @iSL int, @masach VARCHAR(10)
SELECT @iSL = iSL, @masach = sMasach FROM inserted
Update tblSach
Set iTongSLBan = iTongSLBan + @iSL
Where sMaSach = @masach
END
select * from tblSach
--Kiểm tra kết quả của Trigger
INSERT INTO tblChiTietHD(sMaHD,sMasach,iSL,fDGban)
VALUES ('HD001', 'S010',3, 65000)

--Xóa một dịng trong tblChiTietHD thì Tổng số lượng sách bán giảm đi tương ứng
select * from tblSach
CREATE TRIGGER tg_TongSLSachDaBan_Xoa
13


2
e
g
a
P

ON tblChiTietHD
FOR delete
as
BEGIN
DECLARE @iSL int, @masach VARCHAR(10)

SELECT @iSL = iSL, @masach = sMasach FROM
deleted Update tblSach
Set iTongSLBan = iTongSLBan - @iSL
Where sMaSach = @masach
END
select * from tblSach
--Kiểm tra kết quả trigger
Delete tblChiTietHD
Where sMAHD = 'HD001' and sMaSach = 'S010'

14


2

VII. Phân quyền và bảo mật CSDL
Gợi ý:
- Tạo người dùng và đặt mật khẩu tương ứng
- Đặt mật khẩu truy cập đến CSDL
- Phân quyền sử dụng CSDL, gồm: quyền sửa cấu trúc, quyền xem khai thác, quyền tạo

e

các đối tượng, …

a

g
P


Kết quả: Có được 1 file .sql lưu trữ các câu lệnh thực hiện (tất cả dùng chung 1 file)

Minh họa kết quả tương ứng từng câu lệnh tạo, gồm: câu lệnh, kết quả
Yêu cầu ít nhất 2 người dùng, cho phép thực hiện thêm – sửa – xóa
trên CSDL hoặc trên câu lệnh cụ thể
CREATE ROLE BPNhapHang
EXEC sys.sp_addrolemember BPNhapHang, th
GRANT INSERT, SELECT
ON dbo.tblNhaCungCap
TO BPNhapHang
.....
CREATE LOGIN TrinhThiXuan
WITH PASSWORD = ’xuan’
CREATE USER user1
For login TrinhThiXuan
--Cấp quyền
GRANT INSERT, UPDATE,DELETE
ON tblNhaCungCap
TO user1
WITH GRANT OPTION
………………………………………………………


15

VII. Phân tán cơ sở dữ liệu
Gợi ý:

2
e

g
a
P

Lựa chọn một số bảng nào đó trong CSDL, xác định thực hiện phân tán
ngang hay phân tán dọc cho bảng
Cài đặt các bảng theo nguyên tắc phân tán đã xác định
-

Viết các đoạn mã: thêm dữ liệu, View, thủ tục để khai thác các bảng đã được phân tán

Kết quả: Có được 1 file .sql lưu trữ các câu lệnh thực hiện (tất cả dùng chung 1 file)

Minh họa kết quả tương ứng từng câu lệnh tạo, gồm: câu lệnh, kết quả
………………………………………………………
………………………………………………………

16


TÀI LIỆU THAM KHẢO

2
e
g
a
P

17




×