Professional Documents
Culture Documents
Đề tài
Hà Nội – 2023
Yêu cầu chung về quyển báo cáo và chương trình
*Toà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
Page2
*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 toá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
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 toá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
Page2
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 yê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 thuê 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
Ngoà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 toá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.
Page2
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ạ)
Page2
5
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
Page2
- 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
................
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')
Page2
7
Sơ đồ quan hệ giữa các bảng:
Page2
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)
Page2
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 toá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
9
Page2
--* 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
......
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 đó
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)
Page2
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 toá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
11
END
12
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 đó
Page2
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)
Update tblSach
set iTongSLBan = 0
--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)
Update tblSach
Set iTongSLBan = iTongSLBan + @iSL
Where sMaSach = @masach
END
--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
14
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
Page2
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ể
.....
--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 ý:
- 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
Page2
- 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
Page2
17