1. Trang chủ
  2. » Thể loại khác

Btl cơ sở dữ liệu it10 ehou

97 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây dựng chương trình quản lý mượn trả sách trong thư viện
Trường học Trường Đại học Mở Hà Nội
Chuyên ngành Hệ quản trị CSDL
Thể loại Bài tập lớn học
Thành phố Hà Nội
Định dạng
Số trang 97
Dung lượng 561,61 KB

Nội dung

CHỦ ĐỀ 01 I. Đề bài. - Xây dựng chương trình quản lý mượn trả sách trong thư viện - Các bảng tối thiểu cần có: tblSach(Sách), tblBanDoc(Bạn đọc), tblThuThu(Thủ thư), tblPhieuMuon(Phiếu mượn), tblCTPhieuMuon(Chi tiết phiếu mượn), .... (Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế) - 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 (1 điểm): 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 (2 điểm): 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 toán gom nhóm, ...) 3. Tạo và thực thi các thủ tục cho CSDL (2 điểm): 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 (2 điểm): Tối thiểu 5 trigger 5. Phân quyền và bảo mật cho CSDL (2 điểm): 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 (1 điểm): 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 II. 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-- 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 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 CHỦ ĐỀ 02 I. Đề bài. - Xây dựng chương trình quản lý thuê phòng khách sạn - Các bảng tối thiểu cần có: tblKhachHang(Khách hàng), tblNhanVien(Nhân viên), tblPhong(Phòng), tblHoaDon(Hoá đơn), tblCTHoaDon( chi tiết hoá đơn), ... (Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế) 1. Xác định các bảng và Tạo CSDL của bài toán (1 điểm): 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 (2 điểm): 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 toán gom nhóm, ...) 3. Tạo và thực thi các thủ tục cho CSDL (2 điểm): 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 (2 điểm): Tối thiểu 5 trigger 5. Phân quyền và bảo mật cho CSDL (2 điểm): 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 (1 điểm): 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 II. 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-- 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 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 CHỦ ĐỀ 1: -- 1. Tạo CSDL và bảng, chèn dữ liệu -- Kiểm tra và ngắt tất cả các kết nối tới cơ sở dữ liệu nếu đã tồn tại IF EXISTS (SELECT name FROM sys.databases WHERE name = N''''QuanLyThuVienSach'''') BEGIN ALTER DATABASE QuanLyThuVienSach SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE QuanLyThuVienSach; END GO

Trang 1

CHỦ ĐỀ 01

I Đề bài.

- Xây dựng chương trình quản lý mượn trả sách trong thư viện

- Các bảng tối thiểu cần có: tblSach(Sách), tblBanDoc(Bạn đọc), tblThuThu(Thủ thư), tblPhieuMuon(Phiếu mượn), tblCTPhieuMuon(Chi tiết phiếu mượn),

(Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế)

- 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 (1 điểm): 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 (2 điểm): 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 toán gom nhóm, )

3 Tạo và thực thi các thủ tục cho CSDL (2 điểm): 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 (2 điểm): Tối thiểu 5 trigger

5 Phân quyền và bảo mật cho CSDL (2 điểm): 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 (1 điểm): 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

II 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

*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

CHỦ ĐỀ 02

I Đề bài.

Trang 2

- Xây dựng chương trình quản lý thuê phòng khách sạn

- Các bảng tối thiểu cần có: tblKhachHang(Khách hàng), tblNhanVien(Nhân viên), tblPhong(Phòng), tblHoaDon(Hoá đơn), tblCTHoaDon( chi tiết hoá đơn),

(Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế)

1 Xác định các bảng và Tạo CSDL của bài toán (1 điểm): 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 (2 điểm): 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 toán gom nhóm, )

3 Tạo và thực thi các thủ tục cho CSDL (2 điểm): 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 (2 điểm): Tối thiểu 5 trigger

5 Phân quyền và bảo mật cho CSDL (2 điểm): 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 (1 điểm): 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

II 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

*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

CHỦ ĐỀ 03

I Đề bài.

- Xây dựng chương trình quản lý bệnh nhân điều trị tại bệnh viện

- Các bảng tối thiểu cần có: tblBenhNhan(Bệnh nhân), tblBacSy(Bác Sỹ), tblKhoa(Khoa),

tblPhieuDieuTri(Phiếu điều trị),

(Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế)

Trang 3

- 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 (1 điểm): 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 (2 điểm): 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 toán gom nhóm, )

3 Tạo và thực thi các thủ tục cho CSDL (2 điểm): 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 (2 điểm): Tối thiểu 5 trigger

5 Phân quyền và bảo mật cho CSDL (2 điểm): 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 (1 điểm): 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

II 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

*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

CHỦ ĐỀ 04

I Đề bài.

- Xây dựng chương trình quản lý kinh doanh cửa hàng thuốc

- Các bảng tối thiểu cần có: tblThuoc(Thuốc), tblKhachHang(Khách hàng), tblNhanVien(Nhân viên), tblHoaDon(Hoá đơn), tblCTHoaDon(Chi tiết hoá đơn),

(Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế)

- 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 (1 điểm): Thực hiện câu lệnh tạo CSDL, tạo bảng và

Trang 4

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 (2 điểm): 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 toán gom nhóm, )

3 Tạo và thực thi các thủ tục cho CSDL (2 điểm): 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 (2 điểm): Tối thiểu 5 trigger

5 Phân quyền và bảo mật cho CSDL (2 điểm): 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 (1 điểm): 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

II 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

*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

CHỦ ĐỀ 05

I Đề bài.

- Xây dựng chương trình quản lý kinh doanh máy tính tại cửa hàng bán máy tính

- Các bảng tối thiểu cần có: tblMayTinh(Máy tính), tblKhachHang(Khách hàng), tblNhanVien(Nhân viên), tblHoaDon(Hoá đơn), tblCTHoaDon(Chi tiết hoá đơn),

(Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế)

- 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 (1 điểm): 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 (2 điểm): Tối thiểu 10 view (gồm: Lấy thông tin một bảng,

Trang 5

lấy thông tin nhiều bảng, tính toán gom nhóm, )

3 Tạo và thực thi các thủ tục cho CSDL (2 điểm): 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 (2 điểm): Tối thiểu 5 trigger

5 Phân quyền và bảo mật cho CSDL (2 điểm): 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 (1 điểm): 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

II 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

*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

CHỦ ĐỀ 06

I Đề bài.

- Xây dựng chương trình quản lý bán hàng tại cửa hành kinh doanh điện thoại

- Các bảng tối thiểu cần có: tblDienThoai(Điện thoại), tblKhachHang(Khách hàng), tblNhanVien(Nhân viên), tblHoaDon(Hoá đơn), tblCTHoaDon(Chi tiết hoá đơn),

(Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế)

- 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 (1 điểm): 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 (2 điểm): 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 toán gom nhóm, )

3 Tạo và thực thi các thủ tục cho CSDL (2 điểm): Tối thiểu 5 thủ tục (các thủ tục có truyền tham số)

Trang 6

4 Tạo và vận dụng các trigger (2 điểm): Tối thiểu 5 trigger

5 Phân quyền và bảo mật cho CSDL (2 điểm): 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 (1 điểm): 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

II 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

*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

CHỦ ĐỀ 07

I Đề bài.

- Xây dựng chương trình quản lý nhập hàng tại kho của công ty sản xuất

- Các bảng tối thiểu cần có: tblSanPham(Sản phẩm), tblNhanVien(Nhân viên), tblNhaCC(Nhà cung cấp), tblPhieuNhap(phiếu nhập), tblCTPhieuNhap(Chi tiết phiếu nhập),

(Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế)

- 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 (1 điểm): 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 (2 điểm): 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 toán gom nhóm, )

3 Tạo và thực thi các thủ tục cho CSDL (2 điểm): 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 (2 điểm): Tối thiểu 5 trigger

5 Phân quyền và bảo mật cho CSDL (2 điểm): Tạo tối thiểu 2 người dùng và phân quyền sử dụng cho

Trang 7

Bảng, View, Thủ tục đã tạo ở trên

6 Phân tán (1 điểm): 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

II 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

*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

CHỦ ĐỀ 08

I Đề bài.

- Xây dựng chương trình quản lý cửa hàng kinh doanh quần áo

- Các bảng tối thiểu cần có: tblQuanAo(Quần áo), tblKhachHang(Khách hàng), tblNhanVien(Nhân viên), tblHoaDon(Hoá đơn), tblCTHoaDon(Chi tiết hoá đơn),

(Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế)

- 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 (1 điểm): 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 (2 điểm): 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 toán gom nhóm, )

3 Tạo và thực thi các thủ tục cho CSDL (2 điểm): 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 (2 điểm): Tối thiểu 5 trigger

5 Phân quyền và bảo mật cho CSDL (2 điểm): 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 (1 điểm): 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

Trang 8

cầu khai thác trên dữ liệu phân tán

II 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

*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

CHỦ ĐỀ 09

I Đề bài.

- Xây dựng chương trình quản lý khám bệnh tại Phòng khám Đa khoa

- Các bảng tối thiểu cần có: tblDichVu(Dịch vụ khám bệnh), tblNhanVien(Nhân viên), tblBenhNhan(Bệnh nhân khám), tblPhieuKham(phiếu khám), tblCTPhieuKham(Chi tiết phiếu

khám),

(Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế)

- 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 (1 điểm): 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 (2 điểm): 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 toán gom nhóm, )

3 Tạo và thực thi các thủ tục cho CSDL (2 điểm): 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 (2 điểm): Tối thiểu 5 trigger

5 Phân quyền và bảo mật cho CSDL (2 điểm): 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 (1 điểm): 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

Trang 9

II 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

*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

CHỦ ĐỀ 10

I Đề bài.

- Xây dựng chương trình quản lý công ty chuyên thiết kế nội thất

- Các bảng tối thiểu cần có: tblDichVu( bảng giá dịch vụ thiết kế), tblKhachHang(Khách hàng), tblNhanVien(Nhân viên), tblHoaDon(hoá đơn kiêm hợp đồng thiết kế nội thất), tblCTHoaDon(Chi tiết

hoá đơn),

(Sinh viên tự xác định các thuộc tính và có thể bổ sung thêm các bảng phù hợp với bài toán thực tế)

- 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 (1 điểm): 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 (2 điểm): 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 toán gom nhóm, )

3 Tạo và thực thi các thủ tục cho CSDL (2 điểm): 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 (2 điểm): Tối thiểu 5 trigger

5 Phân quyền và bảo mật cho CSDL (2 điểm): 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 (1 điểm): 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

II Yêu cầu chung về quyển báo cáo và chương trình

Trang 10

*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

*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

BÀI LÀM

CHỦ ĐỀ 1:

1 Tạo CSDL và bảng, chèn dữ liệu

Kiểm tra và ngắt tất cả các kết nối tới cơ sở dữ liệu nếu đã tồn tại

IF EXISTS (SELECT name FROM sys.databases WHERE name = N'QuanLyThuVienSach')

Tạo cơ sở dữ liệu mới

CREATE DATABASE QuanLyThuVienSach;

GO

Sử dụng cơ sở dữ liệu mới

USE QuanLyThuVienSach;

GO

Trang 11

Kiểm tra và xóa các bảng nếu tồn tại

IF OBJECT_ID('dbo.tblCTPhieuMuon', 'U') IS NOT NULL

DROP TABLE dbo.tblCTPhieuMuon;

GO

IF OBJECT_ID('dbo.tblPhieuMuon', 'U') IS NOT NULL

DROP TABLE dbo.tblPhieuMuon;

GO

IF OBJECT_ID('dbo.tblThuThu', 'U') IS NOT NULL

DROP TABLE dbo.tblThuThu;

GO

IF OBJECT_ID('dbo.tblBanDoc', 'U') IS NOT NULL

DROP TABLE dbo.tblBanDoc;

GO

IF OBJECT_ID('dbo.tblSach', 'U') IS NOT NULL

DROP TABLE dbo.tblSach;

GO

Tạo bảng tblSach

CREATE TABLE tblSach (

MaSach INT PRIMARY KEY,

CREATE TABLE tblBanDoc (

MaBanDoc INT PRIMARY KEY,

HoTen NVARCHAR(100),

NgaySinh DATE,

DiaChi NVARCHAR(200)

);

Trang 12

Tạo bảng tblThuThu

CREATE TABLE tblThuThu (

MaThuThu INT PRIMARY KEY,

CREATE TABLE tblPhieuMuon (

MaPhieuMuon INT PRIMARY KEY,

MaBanDoc INT,

MaThuThu INT,

NgayMuon DATE,

NgayTra DATE,

FOREIGN KEY (MaBanDoc) REFERENCES tblBanDoc(MaBanDoc),

FOREIGN KEY (MaThuThu) REFERENCES tblThuThu(MaThuThu)

Chèn dữ liệu mẫu vào bảng tblSach

INSERT INTO tblSach VALUES (1, 'Lập trình C++', 'Nguyễn Văn A', 'NXB Trẻ', 2020);INSERT INTO tblSach VALUES (2, 'Cơ sở dữ liệu', 'Trần Văn B', 'NXB Giáo dục', 2018);INSERT INTO tblSach VALUES (3, 'Mạng máy tính', 'Lê Thị C', 'NXB Khoa học', 2019);

Trang 13

INSERT INTO tblSach VALUES (4, 'Thuật toán', 'Nguyễn Thị D', 'NXB Trẻ', 2021);

INSERT INTO tblSach VALUES (5, 'An toàn thông tin', 'Phạm Văn E', 'NXB Công nghệ', 2022);GO

Chèn dữ liệu mẫu vào bảng tblBanDoc

INSERT INTO tblBanDoc VALUES (1, 'Nguyễn Văn A', '1995-01-01', 'Hà Nội');

INSERT INTO tblBanDoc VALUES (2, 'Trần Văn B', '1996-02-02', 'Hà Nội');

INSERT INTO tblBanDoc VALUES (3, 'Lê Thị C', '1997-03-03', 'Hà Nội');

INSERT INTO tblBanDoc VALUES (4, 'Nguyễn Thị D', '1998-04-04', 'Hà Nội');

INSERT INTO tblBanDoc VALUES (5, 'Phạm Văn E', '1999-05-05', 'Hà Nội');

GO

Chèn dữ liệu mẫu vào bảng tblThuThu

INSERT INTO tblThuThu VALUES (1, 'Nguyễn Văn A', '1980-01-01', 'Hà Nội');

INSERT INTO tblThuThu VALUES (2, 'Trần Văn B', '1981-02-02', 'Hà Nội');

INSERT INTO tblThuThu VALUES (3, 'Lê Thị C', '1982-03-03', 'Hà Nội');

INSERT INTO tblThuThu VALUES (4, 'Nguyễn Thị D', '1983-04-04', 'Hà Nội');

INSERT INTO tblThuThu VALUES (5, 'Phạm Văn E', '1984-05-05', 'Hà Nội');

GO

Chèn dữ liệu mẫu vào bảng tblPhieuMuon

INSERT INTO tblPhieuMuon VALUES (1, 1, 1, '2023-01-01', '2023-01-10');

INSERT INTO tblPhieuMuon VALUES (2, 2, 2, '2023-02-01', '2023-02-10');

INSERT INTO tblPhieuMuon VALUES (3, 3, 3, '2023-03-01', '2023-03-10');

INSERT INTO tblPhieuMuon VALUES (4, 4, 4, '2023-04-01', '2023-04-10');

INSERT INTO tblPhieuMuon VALUES (5, 5, 5, '2023-05-01', '2023-05-10');

GO

Chèn dữ liệu mẫu vào bảng tblCTPhieuMuon

INSERT INTO tblCTPhieuMuon VALUES (1, 1, 1);

INSERT INTO tblCTPhieuMuon VALUES (1, 2, 2);

INSERT INTO tblCTPhieuMuon VALUES (2, 3, 1);

INSERT INTO tblCTPhieuMuon VALUES (3, 4, 1);

INSERT INTO tblCTPhieuMuon VALUES (4, 5, 2);

GO

2 Tạo các view

View lấy thông tin tất cả các sách

Trang 14

CREATE VIEW vwAllSach AS

SELECT * FROM tblSach;

GO

View lấy thông tin sách mượn và người mượn

CREATE VIEW vwSachMuon AS

SELECT pm.MaPhieuMuon, bd.HoTen AS BanDoc, tt.HoTen AS ThuThu, pm.NgayMuon,

pm.NgayTra, s.TenSach, ctm.SoLuong

FROM tblPhieuMuon pm

JOIN tblBanDoc bd ON pm.MaBanDoc = bd.MaBanDoc

JOIN tblThuThu tt ON pm.MaThuThu = tt.MaThuThu

JOIN tblCTPhieuMuon ctm ON pm.MaPhieuMuon = ctm.MaPhieuMuon

JOIN tblSach s ON ctm.MaSach = s.MaSach;

GO

View tổng số lượng sách mượn theo bạn đọc

CREATE VIEW vwTongSachMuonTheoBanDoc AS

SELECT bd.HoTen, SUM(ctm.SoLuong) AS TongSoLuong

FROM tblBanDoc bd

JOIN tblPhieuMuon pm ON bd.MaBanDoc = pm.MaBanDoc

JOIN tblCTPhieuMuon ctm ON pm.MaPhieuMuon = ctm.MaPhieuMuon

GROUP BY bd.HoTen;

GO

View lấy thông tin bạn đọc và sách họ đã mượn

CREATE VIEW vwBanDocSachMuon AS

SELECT bd.HoTen AS BanDoc, s.TenSach AS Sach, pm.NgayMuon, pm.NgayTra

FROM tblBanDoc bd

JOIN tblPhieuMuon pm ON bd.MaBanDoc = pm.MaBanDoc

JOIN tblCTPhieuMuon ctm ON pm.MaPhieuMuon = ctm.MaPhieuMuon

JOIN tblSach s ON ctm.MaSach = s.MaSach;

GO

View lấy thông tin chi tiết phiếu mượn

CREATE VIEW vwChiTietPhieuMuon AS

SELECT pm.MaPhieuMuon, bd.HoTen AS BanDoc, tt.HoTen AS ThuThu, s.TenSach, ctm.SoLuong, pm.NgayMuon, pm.NgayTra

FROM tblPhieuMuon pm

Trang 15

JOIN tblBanDoc bd ON pm.MaBanDoc = bd.MaBanDoc

JOIN tblThuThu tt ON pm.MaThuThu = tt.MaThuThu

JOIN tblCTPhieuMuon ctm ON pm.MaPhieuMuon = ctm.MaPhieuMuon

JOIN tblSach s ON ctm.MaSach = s.MaSach;

GO

View lấy thông tin sách mượn theo tháng

CREATE VIEW vwSachMuonTheoThang AS

SELECT MONTH(pm.NgayMuon) AS Thang, s.TenSach, COUNT(*) AS SoLanMuonFROM tblPhieuMuon pm

JOIN tblCTPhieuMuon ctm ON pm.MaPhieuMuon = ctm.MaPhieuMuon

JOIN tblSach s ON ctm.MaSach = s.MaSach

GROUP BY MONTH(pm.NgayMuon), s.TenSach;

GO

View lấy thông tin sách mượn theo năm

CREATE VIEW vwSachMuonTheoNam AS

SELECT YEAR(pm.NgayMuon) AS Nam, s.TenSach, COUNT(*) AS SoLanMuon

FROM tblPhieuMuon pm

JOIN tblCTPhieuMuon ctm ON pm.MaPhieuMuon = ctm.MaPhieuMuon

JOIN tblSach s ON ctm.MaSach = s.MaSach

GROUP BY YEAR(pm.NgayMuon), s.TenSach;

GO

View lấy thông tin sách mượn quá hạn

CREATE VIEW vwSachMuonQuaHan AS

SELECT pm.MaPhieuMuon, bd.HoTen AS BanDoc, s.TenSach, pm.NgayMuon, pm.NgayTraFROM tblPhieuMuon pm

JOIN tblBanDoc bd ON pm.MaBanDoc = bd.MaBanDoc

JOIN tblCTPhieuMuon ctm ON pm.MaPhieuMuon = ctm.MaPhieuMuon

JOIN tblSach s ON ctm.MaSach = s.MaSach

WHERE pm.NgayTra < GETDATE();

GO

View lấy thông tin số lượng sách mượn theo thủ thư

CREATE VIEW vwSoLuongSachMuonTheoThuThu AS

SELECT tt.HoTen AS ThuThu, COUNT(*) AS SoLuongSachMuon

FROM tblThuThu tt

Trang 16

JOIN tblPhieuMuon pm ON tt.MaThuThu = pm.MaThuThu

JOIN tblCTPhieuMuon ctm ON pm.MaPhieuMuon = ctm.MaPhieuMuon

GROUP BY tt.HoTen;

GO

View lấy thông tin sách mượn theo bạn đọc trong tháng hiện tại

CREATE VIEW vwSachMuonTheoBanDocTrongThangHienTai AS

SELECT bd.HoTen AS BanDoc, s.TenSach, ctm.SoLuong, pm.NgayMuon, pm.NgayTraFROM tblBanDoc bd

JOIN tblPhieuMuon pm ON bd.MaBanDoc = pm.MaBanDoc

JOIN tblCTPhieuMuon ctm ON pm.MaPhieuMuon = ctm.MaPhieuMuon

JOIN tblSach s ON ctm.MaSach = s.MaSach

WHERE MONTH(pm.NgayMuon) = MONTH(GETDATE()) AND YEAR(pm.NgayMuon) = YEAR(GETDATE());

GO

3 Tạo và thực thi các thủ tục

Stored Procedure để thêm sách mới

CREATE PROCEDURE spAddSach

INSERT INTO tblSach (MaSach, TenSach, TacGia, NhaXuatBan, NamXuatBan)

VALUES (@MaSach, @TenSach, @TacGia, @NhaXuatBan, @NamXuatBan);

END

GO

Tạo kiểu dữ liệu bảng cho thủ tục mượn sách

CREATE TYPE TblCTPhieuMuonType AS TABLE (

MaSach INT,

SoLuong INT

);

GO

Trang 17

Stored Procedure để mượn sách

CREATE PROCEDURE spMuonSach

INSERT INTO tblCTPhieuMuon (MaPhieuMuon, MaSach, SoLuong)

SELECT @MaPhieuMuon, MaSach, SoLuong FROM @ChiTietPhieu;

DELETE FROM tblCTPhieuMuon WHERE MaPhieuMuon = @MaPhieuMuon;

DELETE FROM tblPhieuMuon WHERE MaPhieuMuon = @MaPhieuMuon;

END

GO

Stored Procedure để cập nhật thông tin sách

CREATE PROCEDURE spUpdateSach

@MaSach INT,

@TenSach NVARCHAR(100),

@TacGia NVARCHAR(100),

@NhaXuatBan NVARCHAR(100),

Trang 18

Stored Procedure để xóa sách

CREATE PROCEDURE spDeleteSach

Trigger kiểm tra sách tồn tại trước khi thêm vào phiếu mượn

CREATE TRIGGER trgCheckSachTruocKhiMuon

ON tblCTPhieuMuon

INSTEAD OF INSERT

AS

BEGIN

DECLARE @MaSach INT;

SELECT @MaSach = i.MaSach FROM inserted i;

Trang 19

SELECT MaPhieuMuon, MaSach, SoLuong FROM inserted;

END

END

GO

Trigger tự động cập nhật ngày trả sách khi mượn sách

CREATE TRIGGER trgUpdateNgayTra

SET NgayTra = DATEADD(DAY, 10, NgayMuon)

WHERE MaPhieuMuon IN (SELECT MaPhieuMuon FROM inserted);

END

GO

Trigger ngăn việc xóa sách khi có phiếu mượn

CREATE TRIGGER trgPreventDeleteSach

ON tblSach

INSTEAD OF DELETE

AS

BEGIN

DECLARE @MaSach INT;

SELECT @MaSach = i.MaSach FROM deleted i;

IF EXISTS (SELECT 1 FROM tblCTPhieuMuon WHERE MaSach = @MaSach) BEGIN

RAISERROR('Không thể xóa sách đang được mượn!', 16, 1);

Trang 20

Trigger ghi lại lịch sử khi cập nhật thông tin sách

CREATE TABLE tblSachHistory (

GO

Trigger ngăn việc xóa bạn đọc khi có phiếu mượn

CREATE TRIGGER trgPreventDeleteBanDoc

ON tblBanDoc

INSTEAD OF DELETE

AS

BEGIN

DECLARE @MaBanDoc INT;

SELECT @MaBanDoc = i.MaBanDoc FROM deleted i;

IF EXISTS (SELECT 1 FROM tblPhieuMuon WHERE MaBanDoc = @MaBanDoc) BEGIN

RAISERROR('Không thể xóa bạn đọc đang mượn sách!', 16, 1);

ROLLBACK TRANSACTION;

END

ELSE

Trang 21

5 Phân quyền và bảo mật cho CSDL

Tạo login cho người dùng

IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE name = 'user1') CREATE LOGIN user1 WITH PASSWORD = 'Password1!';

IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE name = 'user2') CREATE LOGIN user2 WITH PASSWORD = 'Password2!';

Tạo người dùng trong cơ sở dữ liệu

IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = 'user1') CREATE USER user1 FOR LOGIN user1;

IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = 'user2') CREATE USER user2 FOR LOGIN user2;

GO

Phân quyền cho user1

GRANT SELECT, INSERT, UPDATE, DELETE ON tblSach TO user1;

GRANT SELECT, INSERT, UPDATE, DELETE ON tblBanDoc TO user1;

GRANT SELECT, INSERT, UPDATE, DELETE ON tblThuThu TO user1;

GRANT SELECT, INSERT, UPDATE, DELETE ON tblPhieuMuon TO user1;GRANT SELECT, INSERT, UPDATE, DELETE ON tblCTPhieuMuon TO user1;

GRANT SELECT ON vwAllSach TO user1;

GRANT SELECT ON vwSachMuon TO user1;

GRANT SELECT ON vwTongSachMuonTheoBanDoc TO user1;

GRANT SELECT ON vwBanDocSachMuon TO user1;

GRANT EXECUTE ON spAddSach TO user1;

GRANT EXECUTE ON spMuonSach TO user1;

GRANT EXECUTE ON spTraSach TO user1;

GRANT EXECUTE ON spUpdateSach TO user1;

GRANT EXECUTE ON spDeleteSach TO user1;

Trang 22

Phân quyền cho user2

GRANT SELECT ON tblSach TO user2;

GRANT SELECT ON tblBanDoc TO user2;

GRANT SELECT ON tblThuThu TO user2;

GRANT SELECT ON tblPhieuMuon TO user2;

GRANT SELECT ON tblCTPhieuMuon TO user2;

GRANT SELECT ON vwAllSach TO user2;

GRANT SELECT ON vwSachMuon TO user2;

GRANT SELECT ON vwTongSachMuonTheoBanDoc TO user2;

GRANT SELECT ON vwBanDocSachMuon TO user2;

6 Phân tán dữ liệu

Tạo bảng phân tán ngang

CREATE TABLE tblSach_PhanTan1 (

MaSach INT PRIMARY KEY,

INSERT INTO tblSach_PhanTan1

SELECT * FROM tblSach WHERE MaSach <= 3;

GO

CREATE TABLE tblSach_PhanTan2 (

MaSach INT PRIMARY KEY,

INSERT INTO tblSach_PhanTan2

SELECT * FROM tblSach WHERE MaSach > 3;

Trang 23

INSERT INTO tblSach_PhanTanDoc_MaSachTenSach (MaSach, TenSach)

SELECT MaSach, TenSach FROM tblSach;

Yêu cầu khai thác dữ liệu phân tán

Lấy thông tin từ bảng phân tán ngang

SELECT * FROM tblSach_PhanTan1;

GO

SELECT * FROM tblSach_PhanTan2;

GO

Lấy thông tin từ bảng phân tán dọc

SELECT * FROM tblSach_PhanTanDoc_MaSachTenSach;

Trang 24

SELECT * FROM QuanLyThuVienSach.INFORMATION_SCHEMA.TABLES;

GO

Kiểm tra danh sách các view

SELECT * FROM QuanLyThuVienSach.INFORMATION_SCHEMA.VIEWS;

GO

Kiểm tra danh sách các stored procedure

SELECT * FROM QuanLyThuVienSach.INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE';

GO

Kiểm tra danh sách các function

SELECT * FROM QuanLyThuVienSach.INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'FUNCTION';

GO

Kiểm tra lại dữ liệu bảng

Kiểm tra dữ liệu bảng tblSach

SELECT * FROM tblSach;

GO

Kiểm tra dữ liệu bảng tblBanDoc

SELECT * FROM tblBanDoc;

GO

Kiểm tra dữ liệu bảng tblThuThu

SELECT * FROM tblThuThu;

GO

Kiểm tra dữ liệu bảng tblPhieuMuon

SELECT * FROM tblPhieuMuon;

GO

Kiểm tra dữ liệu bảng tblCTPhieuMuon

SELECT * FROM tblCTPhieuMuon;

GO

Trang 25

Kiểm tra dữ liệu bảng phân tán

SELECT * FROM tblSach_PhanTan1;

Kiểm tra và ngắt tất cả các kết nối tới cơ sở dữ liệu nếu đã tồn tại

IF EXISTS (SELECT name FROM sys.databases WHERE name = N'QuanLyCuaHangBanLe')BEGIN

ALTER DATABASE QuanLyCuaHangBanLe SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

DROP DATABASE QuanLyCuaHangBanLe;

Trang 26

GO

Tạo cơ sở dữ liệu mới

CREATE DATABASE QuanLyCuaHangBanLe;

GO

Sử dụng cơ sở dữ liệu mới

USE QuanLyCuaHangBanLe;

GO

Kiểm tra và xóa các bảng nếu tồn tại

IF OBJECT_ID('dbo.tblCTHoaDon', 'U') IS NOT NULL

DROP TABLE dbo.tblCTHoaDon;

GO

IF OBJECT_ID('dbo.tblHoaDon', 'U') IS NOT NULL

DROP TABLE dbo.tblHoaDon;

GO

IF OBJECT_ID('dbo.tblKhachHang', 'U') IS NOT NULL

DROP TABLE dbo.tblKhachHang;

GO

IF OBJECT_ID('dbo.tblNhanVien', 'U') IS NOT NULL

DROP TABLE dbo.tblNhanVien;

GO

IF OBJECT_ID('dbo.tblSanPham', 'U') IS NOT NULL

DROP TABLE dbo.tblSanPham;

GO

Tạo bảng tblSanPham

CREATE TABLE tblSanPham (

MaSanPham INT PRIMARY KEY,

TenSanPham NVARCHAR(100),

LoaiSanPham NVARCHAR(100),

GiaBan DECIMAL(10, 2),

Trang 27

SoLuong INT

);

GO

Tạo bảng tblKhachHang

CREATE TABLE tblKhachHang (

MaKhachHang INT PRIMARY KEY,

CREATE TABLE tblNhanVien (

MaNhanVien INT PRIMARY KEY,

CREATE TABLE tblHoaDon (

MaHoaDon INT PRIMARY KEY,

Trang 28

SoLuong INT,

DonGia DECIMAL(10, 2),

FOREIGN KEY (MaHoaDon) REFERENCES tblHoaDon(MaHoaDon),

FOREIGN KEY (MaSanPham) REFERENCES tblSanPham(MaSanPham),

PRIMARY KEY (MaHoaDon, MaSanPham)

);

GO

Chèn dữ liệu mẫu vào bảng tblSanPham

INSERT INTO tblSanPham VALUES (1, 'Laptop Dell', 'Laptop', 15000000, 10);

INSERT INTO tblSanPham VALUES (2, 'Chuột Logitech', 'Phụ kiện', 500000, 100);INSERT INTO tblSanPham VALUES (3, 'Bàn phím Razer', 'Phụ kiện', 2000000, 50);INSERT INTO tblSanPham VALUES (4, 'Màn hình Samsung', 'Màn hình', 7000000, 30);INSERT INTO tblSanPham VALUES (5, 'Tai nghe Sony', 'Phụ kiện', 1000000, 70);GO

Chèn dữ liệu mẫu vào bảng tblKhachHang

INSERT INTO tblKhachHang VALUES (1, 'Nguyen Van A', 'Hanoi', '0909123456');INSERT INTO tblKhachHang VALUES (2, 'Tran Thi B', 'Hanoi', '0912345678');

INSERT INTO tblKhachHang VALUES (3, 'Le Van C', 'HCM', '0923456789');

INSERT INTO tblKhachHang VALUES (4, 'Pham Thi D', 'Danang', '0934567890');INSERT INTO tblKhachHang VALUES (5, 'Hoang Van E', 'Hue', '0945678901');

GO

Chèn dữ liệu mẫu vào bảng tblNhanVien

INSERT INTO tblNhanVien VALUES (1, 'Le Thi F', 'Manager', 15000000);

INSERT INTO tblNhanVien VALUES (2, 'Tran Van G', 'Sales', 10000000);

INSERT INTO tblNhanVien VALUES (3, 'Nguyen Thi H', 'Support', 8000000);

INSERT INTO tblNhanVien VALUES (4, 'Pham Van I', 'Technician', 9000000);

INSERT INTO tblNhanVien VALUES (5, 'Hoang Thi J', 'Accountant', 12000000);GO

Chèn dữ liệu mẫu vào bảng tblHoaDon

INSERT INTO tblHoaDon VALUES (1, 1, 1, '2023-01-01', 15500000);

INSERT INTO tblHoaDon VALUES (2, 2, 2, '2023-02-01', 5200000);

INSERT INTO tblHoaDon VALUES (3, 3, 3, '2023-03-01', 20700000);

INSERT INTO tblHoaDon VALUES (4, 4, 4, '2023-04-01', 7100000);

INSERT INTO tblHoaDon VALUES (5, 5, 5, '2023-05-01', 10500000);

Trang 29

Chèn dữ liệu mẫu vào bảng tblCTHoaDon

INSERT INTO tblCTHoaDon VALUES (1, 1, 1, 15000000);

INSERT INTO tblCTHoaDon VALUES (2, 2, 10, 500000);

INSERT INTO tblCTHoaDon VALUES (3, 3, 1, 2000000);

INSERT INTO tblCTHoaDon VALUES (4, 4, 1, 7000000);

INSERT INTO tblCTHoaDon VALUES (5, 5, 10, 1000000);

GO

2 Tạo các view

View lấy thông tin tất cả các sản phẩm

CREATE VIEW vwAllSanPham AS

SELECT * FROM tblSanPham;

GO

View lấy thông tin tất cả các khách hàng

CREATE VIEW vwAllKhachHang AS

SELECT * FROM tblKhachHang;

GO

View lấy thông tin tất cả các nhân viên

CREATE VIEW vwAllNhanVien AS

SELECT * FROM tblNhanVien;

GO

View lấy thông tin tất cả các hóa đơn

CREATE VIEW vwAllHoaDon AS

SELECT * FROM tblHoaDon;

GO

View lấy thông tin chi tiết hóa đơn

CREATE VIEW vwChiTietHoaDon AS

SELECT hd.MaHoaDon, kh.HoTen AS KhachHang, nv.HoTen AS NhanVien, hd.NgayLap, hd.TongTien, sp.TenSanPham, cthd.SoLuong, cthd.DonGia

FROM tblHoaDon hd

JOIN tblKhachHang kh ON hd.MaKhachHang = kh.MaKhachHang

JOIN tblNhanVien nv ON hd.MaNhanVien = nv.MaNhanVien

Trang 30

JOIN tblCTHoaDon cthd ON hd.MaHoaDon = cthd.MaHoaDon

JOIN tblSanPham sp ON cthd.MaSanPham = sp.MaSanPham;

GO

View lấy thông tin doanh thu theo khách hàng

CREATE VIEW vwDoanhThuTheoKhachHang AS

SELECT kh.HoTen, SUM(hd.TongTien) AS DoanhThu

FROM tblKhachHang kh

JOIN tblHoaDon hd ON kh.MaKhachHang = hd.MaKhachHang

GROUP BY kh.HoTen;

GO

View lấy thông tin doanh thu theo nhân viên

CREATE VIEW vwDoanhThuTheoNhanVien AS

SELECT nv.HoTen, SUM(hd.TongTien) AS DoanhThu

FROM tblNhanVien nv

JOIN tblHoaDon hd ON nv.MaNhanVien = hd.MaNhanVien

GROUP BY nv.HoTen;

GO

View lấy thông tin doanh thu theo tháng

CREATE VIEW vwDoanhThuTheoThang AS

SELECT MONTH(hd.NgayLap) AS Thang, SUM(hd.TongTien) AS DoanhThuFROM tblHoaDon hd

GROUP BY MONTH(hd.NgayLap);

GO

View lấy thông tin doanh thu theo năm

CREATE VIEW vwDoanhThuTheoNam AS

SELECT YEAR(hd.NgayLap) AS Nam, SUM(hd.TongTien) AS DoanhThu

FROM tblHoaDon hd

GROUP BY YEAR(hd.NgayLap);

GO

View lấy thông tin sản phẩm bán chạy nhất

CREATE VIEW vwSanPhamBanChay AS

SELECT TOP 1 sp.TenSanPham, SUM(cthd.SoLuong) AS TongSoLuongBanFROM tblSanPham sp

Trang 31

JOIN tblCTHoaDon cthd ON sp.MaSanPham = cthd.MaSanPham

GROUP BY sp.TenSanPham

ORDER BY TongSoLuongBan DESC;

GO

View lấy thông tin sản phẩm tồn kho

CREATE VIEW vwSanPhamTonKho AS

SELECT * FROM tblSanPham WHERE SoLuong > 0;

GO

3 Tạo và thực thi các thủ tục

Stored Procedure để thêm sản phẩm mới

CREATE PROCEDURE spAddSanPham

INSERT INTO tblSanPham (MaSanPham, TenSanPham, LoaiSanPham, GiaBan, SoLuong)

VALUES (@MaSanPham, @TenSanPham, @LoaiSanPham, @GiaBan, @SoLuong);

END

GO

Stored Procedure để cập nhật thông tin sản phẩm

CREATE PROCEDURE spUpdateSanPham

Trang 32

GO

Stored Procedure để xóa sản phẩm

CREATE PROCEDURE spDeleteSanPham

Stored Procedure để thêm khách hàng mới

CREATE PROCEDURE spAddKhachHang

Stored Procedure để cập nhật thông tin khách hàng

CREATE PROCEDURE spUpdateKhachHang

Trang 33

4 Tạo và vận dụng các trigger

Trigger kiểm tra số lượng sản phẩm trước khi thêm vào chi tiết hóa đơn

CREATE TRIGGER trgCheckSoLuongSanPham

ON tblCTHoaDon

INSTEAD OF INSERT

AS

BEGIN

DECLARE @MaSanPham INT, @SoLuong INT;

SELECT @MaSanPham = i.MaSanPham, @SoLuong = i.SoLuong FROM inserted i;

SET SoLuong = SoLuong - @SoLuong

WHERE MaSanPham = @MaSanPham;

INSERT INTO tblCTHoaDon (MaHoaDon, MaSanPham, SoLuong, DonGia)

SELECT MaHoaDon, MaSanPham, SoLuong, DonGia FROM inserted;

END

END

GO

Trigger tự động cập nhật tổng tiền hóa đơn khi thêm chi tiết hóa đơn

CREATE TRIGGER trgUpdateTongTienHoaDon

Trang 34

Trigger ngăn việc xóa sản phẩm khi có chi tiết hóa đơn

CREATE TRIGGER trgPreventDeleteSanPham

ON tblSanPham

INSTEAD OF DELETE

AS

BEGIN

DECLARE @MaSanPham INT;

SELECT @MaSanPham = i.MaSanPham FROM deleted i;

IF EXISTS (SELECT 1 FROM tblCTHoaDon WHERE MaSanPham = @MaSanPham) BEGIN

RAISERROR('Không thể xóa sản phẩm đã có trong hóa đơn!', 16, 1);

Trigger ghi lại lịch sử khi cập nhật thông tin sản phẩm

CREATE TABLE tblSanPhamHistory (

Trang 35

CREATE TRIGGER trgInsertSanPhamHistory

Trigger ngăn việc xóa khách hàng khi có hóa đơn

CREATE TRIGGER trgPreventDeleteKhachHang

ON tblKhachHang

INSTEAD OF DELETE

AS

BEGIN

DECLARE @MaKhachHang INT;

SELECT @MaKhachHang = i.MaKhachHang FROM deleted i;

IF EXISTS (SELECT 1 FROM tblHoaDon WHERE MaKhachHang = @MaKhachHang)

5 Phân quyền và bảo mật cho CSDL

Tạo login cho người dùng

IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE name = 'user1')

CREATE LOGIN user1 WITH PASSWORD = 'Password1!';

GO

Trang 36

IF NOT EXISTS (SELECT * FROM sys.server_principals WHERE name = 'user2')CREATE LOGIN user2 WITH PASSWORD = 'Password2!';

GO

Tạo người dùng trong cơ sở dữ liệu

CREATE USER user1 FOR LOGIN user1;

CREATE USER user2 FOR LOGIN user2;

GO

Phân quyền cho user1

GRANT SELECT, INSERT, UPDATE, DELETE ON tblSanPham TO user1;

GRANT SELECT, INSERT, UPDATE, DELETE ON tblKhachHang TO user1;GRANT SELECT, INSERT, UPDATE, DELETE ON tblNhanVien TO user1;GRANT SELECT, INSERT, UPDATE, DELETE ON tblHoaDon TO user1;

GRANT SELECT, INSERT, UPDATE, DELETE ON tblCTHoaDon TO user1;

GRANT SELECT ON vwAllSanPham TO user1;

GRANT SELECT ON vwAllKhachHang TO user1;

GRANT SELECT ON vwAllNhanVien TO user1;

GRANT SELECT ON vwAllHoaDon TO user1;

GRANT SELECT ON vwChiTietHoaDon TO user1;

GRANT EXECUTE ON spAddSanPham TO user1;

GRANT EXECUTE ON spUpdateSanPham TO user1;

GRANT EXECUTE ON spDeleteSanPham TO user1;

GRANT EXECUTE ON spAddKhachHang TO user1;

GRANT EXECUTE ON spUpdateKhachHang TO user1;

Phân quyền cho user2

GRANT SELECT ON tblSanPham TO user2;

GRANT SELECT ON tblKhachHang TO user2;

GRANT SELECT ON tblNhanVien TO user2;

GRANT SELECT ON tblHoaDon TO user2;

GRANT SELECT ON tblCTHoaDon TO user2;

GRANT SELECT ON vwAllSanPham TO user2;

GRANT SELECT ON vwAllKhachHang TO user2;

Trang 37

GRANT SELECT ON vwAllNhanVien TO user2;

GRANT SELECT ON vwAllHoaDon TO user2;

GRANT SELECT ON vwChiTietHoaDon TO user2;

6 Phân tán dữ liệu

Tạo bảng phân tán ngang

SELECT * INTO tblSanPham_PhanTan1

FROM tblSanPham WHERE MaSanPham <= 3;

GO

SELECT * INTO tblSanPham_PhanTan2

FROM tblSanPham WHERE MaSanPham > 3;

Yêu cầu khai thác dữ liệu phân tán

Lấy thông tin từ bảng phân tán ngang

Trang 38

SELECT * FROM tblSanPham_PhanTan1;

GO

SELECT * FROM tblSanPham_PhanTan2;

GO

Lấy thông tin từ bảng phân tán dọc

SELECT * FROM tblSanPham_PhanTanDoc_MaSanPhamTenSanPham;

GO

SELECT * FROM tblSanPham_PhanTanDoc_LoaiSanPhamGiaBan;

GO

Kiểm tra danh sách các bảng

SELECT * FROM QuanLyCuaHangBanLe.INFORMATION_SCHEMA.TABLES;

GO

Kiểm tra danh sách các view

SELECT * FROM QuanLyCuaHangBanLe.INFORMATION_SCHEMA.VIEWS;

GO

Kiểm tra danh sách các stored procedure

SELECT * FROM QuanLyCuaHangBanLe.INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE';

GO

Kiểm tra danh sách các function

SELECT * FROM QuanLyCuaHangBanLe.INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'FUNCTION';

GO

Kiểm tra lại dữ liệu bảng

Kiểm tra dữ liệu bảng tblSanPham

SELECT * FROM tblSanPham;

GO

Kiểm tra dữ liệu bảng tblKhachHang

SELECT * FROM tblKhachHang;

Trang 39

Kiểm tra dữ liệu bảng tblNhanVien

SELECT * FROM tblNhanVien;

GO

Kiểm tra dữ liệu bảng tblHoaDon

SELECT * FROM tblHoaDon;

GO

Kiểm tra dữ liệu bảng tblCTHoaDon

SELECT * FROM tblCTHoaDon;

GO

Kiểm tra dữ liệu bảng phân tán

SELECT * FROM tblSanPham_PhanTan1;

Trang 40

CHỦ ĐỀ 3:

1 Tạo CSDL và bảng, chèn dữ liệu

Kiểm tra và ngắt tất cả các kết nối tới cơ sở dữ liệu nếu đã tồn tại

IF EXISTS (SELECT name FROM sys.databases WHERE name = N'QuanLyBenhVien')

Tạo cơ sở dữ liệu mới

CREATE DATABASE QuanLyBenhVien;

GO

Sử dụng cơ sở dữ liệu mới

USE QuanLyBenhVien;

GO

Kiểm tra và xóa các bảng nếu tồn tại

IF OBJECT_ID('dbo.tblPhieuDieuTri', 'U') IS NOT NULL

DROP TABLE dbo.tblPhieuDieuTri;

GO

Ngày đăng: 19/07/2024, 09:14

TỪ KHÓA LIÊN QUAN

w