Tải bản đầy đủ (.pdf) (18 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 (1.21 MB, 18 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



        2
      e
      g
      a
        P

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
*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. Mục lục.
3. Giới thiệu đề tài.
4. Phát biểu bài tốn
5. Mơ hình CSDL và tạo CSDL – tạo và chỉnh sửa các bảng
6. Các đối tượng CSDL gồm: View, Proc, Trigger 
7. Phân quyền và bảo mật CSDL
8. …
9. Kết luận, hướng phát triển tiếp theo
10. Tài liệu tham khảo

2


        2
      e
      g
      a
        P

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}
 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
khai. Đồng thời phải có các ràng buộc cần thoả mãn của dữ liệu
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
Dich Vu(MaDV, TenDV, iSoLuong,Đơn giá)
- MaDV: Mã của dịch vụ, khóa chính.
- TenDV: Tên của dịch vụ.
- 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)


        2
      e
      g
      a
        P










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 Giới tính
‘false’

...

...

...

9

sMabophan

varchar(10)

FK, tham chiếu sang bảng Mã bộ nhân viên
tblBoPhan
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


        2
      e
      g
      a
        P


III. Tạo cơ sở dữ liệu
Gợi ý:
- 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 Ngun', 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



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)

        2
      e
      g
      a
        P

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


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 đó
        2
      e
      g
      a
        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 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 tố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


        2
      e
      g
      a
        P

VI. Xây dựng các Trigger cho CSDL
Gợi ý:
- 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
      e
      g
      a
        P

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
các đối tượng, …
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


        2
      e
      g
      a
        P

VII. Phân tán cơ sở dữ liệu
Gợi ý:
- 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



×