Giới hạn và ý nghĩa của đề tài 1.2.1 Giới hạn đề tài Phạm vi nghiên cứu: quản lý các hoạt động liên quan đến giáo viên trong một tổchức giáo dục, bao gồm việc tuyển dụng, đào tạo, phát t
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT HƯNG YÊN
BÀI TẬP LỚN: HỆ QUẢN TRỊ CSDL
TÊN ĐỀ TÀI :
Quản lý lương cho công ty TNHH Việt Trung
NGÀNH: CÔNG NGHỆ THÔNG TINCHUYÊN NGÀNH: LẬP TRÌNH NHÚNG
SINH VIÊN: LÊ VIẾT PHONH
MÃ LỚP: 101220
GV HƯỚNG DẪN: ThS TRỊNH THỊ NHỊ
HƯNG YÊN - 2023
Trang 2Nhận xét của giảng viên 1 đánh giá:
Ký và ghi họ tên Nhận xét của giảng viên 2 đánh giá:
Ký và ghi họ tên
Trang 3LỜI CAM ĐOAN
Em xin cam đoan bài tập lớp môn Hệ quản trị CSDL có tên “Quản lý giáo viêntrường ĐHSPKT Hưng Yên” là sản phẩm của bản thân Những phần sử dụng tài liệutham khảo trong bài tập lớn đã được nêu rõ trong phần tài liệu tham khảo Các số liệu, kếtquả trình bày trong bài tập lớn là hoàn toàn trung thực, nếu sai em xin chịu hoàn toàntrách nhiệm và chịu mọi kỷ luật của bộ môn và nhà trường đề ra
Hưng Yên, ngày 24 tháng 12 năm 2023
Trang 4LỜI CẢM ƠN
Để có thể hoàn thành bài tập lớn môn hệ quản trị cơ sở dữ liệu, lời đầu tiên em xinphép gửi lời cảm ơn tới bộ môn Công nghệ phần mềm, Khoa Công nghệ thông tin –Trường Đại học Sư phạm Kỹ thuật Hưng Yên đã tạo điều kiện thuận lợi cho em thực hiệnbài tập lớn môn học này
Đặc biệt em xin chân thành cảm ơn cô ThS Trịnh Thị Nhị đã rất tận tình hướngdẫn, chỉ bảo em trong suốt thời gian học tập vừa qua
Em cũng xin chân thành cảm ơn cô ThS Nguyễn Thị Thanh Huệ dạy học phần
Cơ sở dữ liệu và Cô ThS Trịnh Thị Nhị dạy học phần Hệ quản trị cơ sở dữ liệu ,đã tậntình giảng dạy, trang bị cho em những kiến thức cần thiết, quý báu để giúp em thực hiệnđược bài tập lớn này
Mặc dù em đã có cố gắng, nhưng với trình độ còn hạn chế, trong quá trình thựchiện đề tài không tránh khỏi những thiếu sót Em hy vọng sẽ nhận được những ý kiếnnhận xét, góp ý của cô Trịnh Thị Nhị về những kết quả triển khai trong bài tập lớn này
Em xin trân trọng cảm ơn!
Trang 5CHƯƠNG 1: MỞ ĐẦU 9
1.1 Lý do chọn đề tài 9
1.2 Giới hạn và ý nghĩa của đề tài 9
1.2.1 Giới hạn đề tài 9
1.2.2 Ý nghĩa đề tài 10
1.2.3 Nội dung thực hiện 10
CHƯƠNG 2: THIẾT KẾ CƠ SỞ DỮ LIỆU 11
2.1 Thiết kế các bảng, các ràng buộc 11
2.2 Thiết kế mối quan hệ giữa các bảng 12
2.3 Dữ liệu của các bảng 12
CHƯƠNG 3: QUẢN LÝ NGƯỜI DÙNG, THIẾT KẾ CHỈ MỤC 15
3.1 Quản lý người dùng 15
3.2 Chỉ mục 19
3.2.1 Ưu điểm, nhược điểm của chỉ mục 19
3.2.2 Thiết kế các chỉ mục và ứng dụng của chỉ mục 20
3.2.3 Nhận xét về tốc độ thực thi các câu truy vấn có sử dụng chỉ mục 23
CHƯƠNG 4: THIẾT KẾ VIEW, TRUY VẤN NÂNG CAO 24
4.1 Thiết kế Views 24
4.2 Truy vấn nâng cao 34
CHƯƠNG 5: PROCEDURE, FUNCTION, TRIGGER 49
5.1 Thủ tục (Procedure) 49
5.2 Hàm (Function) 56
5.1 Bẫy lỗi (Trigger) 59
CHƯƠNG 6: TÀI LIỆU THAM KHẢO 68
DANH MỤC HÌNH ẢNH Hình 2 1: Database Diagrams 12
Trang 6Hình 2 2: Dữ liệu trong bảng Khoa 12
Hình 2 3: Dữ liệu bảng GiaoVien 13
Hình 2 4: Dữ liệu bảng Lop 13
Hình 2 5: Dữ liệu trong bảng MonHoc 14
Hình 2 6: Dữ liệu trong bảng GiangDay 14
Hình 3 1: Quyền SELECT của nhóm GiaoVien 16
Hình 3 2: Quyền INSERT của nhóm QuanLy 17
Hình 3 3: Quyền UPDATE của nhóm QuanLy 17
Hình 3 4: Quyền DELETE của nhóm QuanLy 18
Hình 3 5: Quyền UPDATE của user_gv1 18
Hình 3 6: Tước quyền UPDATE của user_gv1 19
Hình 3 7: Sử dụng chỉ mục NONCLUS_MaGV 20
Hình 3 8: Sử dụng chỉ mục NONCLUS_MaKhoa 21
Hình 3 9: Sử dụng chỉ mục NONCLUS_MaGV_MaKhoa 21
Hình 3 10: Sử dụng chỉ mục NONCLUS_MaLop_MaMonHoc 22
Hình 3 11: Sử dụng chỉ mục toàn văn 23
Hình 4 1: Sử dụng View_GiaoVien 25
Hình 4 2: Thêm dữ liệu vào View_GiaoVien 26
Hình 4 3: Cập nhật dữ liệu trong View_GiaoVien 27
Hình 4 4: Xoá dữ liệu trong View_GiaoVien 28
Hình 4 5: Sử dụng View_GiaoVien_LuongCao 29
Hình 4 6: Sử dụng Lop_SiSoLon 30
Hình 4 7: Sử dụng GiaoVien_Khoa 31
Hình 4 8: Sử dụng GiangDay_ThongTin 32
Hình 4 9: Sử dụng Lop_ThongTin 33
Trang 7Hình 4 15: Toán tử IN 37
Hình 4 16: Toán tử LIKE 38
Hình 4 17: Toán tử IS NULL & NOT IS NULL 39
Hình 4 18: Toán tử EXISTS 40
Hình 4 19: Toán tử UNION 41
Hình 4 20: Toán tử JOIN 42
Hình 4 21: Toán tử COUNT 42
Hình 4 22: Toán tử CASE 43
Hình 4 23: Toán tử ANY & SOME 44
Hình 4 24: Toán tử TOP 45
Hình 4 25: Toán tử PERCENT 45
Hình 4 26: Toán tử PIVOT 46
Hình 4 27: Toán tử UNPIVOT 47
Hình 4 28: Toán tử CTE 48
Hình 5 1: Thủ tục UpdateGiaoVienLuong 49
Hình 5 2: Thủ tục DeleteGiaoVien 50
Hình 5 3: Thủ tục InsertGiaoVien 51
Hình 5 4: Thủ tục TimKiemGiaoVienTheoTen 52
Hình 5 5: Thủ tục TimKiemGiaoVienTheoHocVi 53
Hình 5 6: Thủ tục ThongKeSoLuongGiaoVienTheoKhoa 54
Hình 5 7: Thủ tục TinhTongLuongGiaoVienTheoKhoa 55
Hình 5 8: Hàm TinhTongLuongGiaoVien 56
Hình 5 9: Hàm LayDanhSachGiaoVienTheoHocVi 57
Hình 5 10: Hàm LayDanhSachGiaoVienTheoKhoa 58
Hình 5 11: Trigger CheckGiaoVienLuong 59
Hình 5 12: Trigger CheckGiaoVienLuongUpdate 60
Hình 5 13: Trigger NganChanXoaMonHoc 61
Hình 5 14: Trigger NganChanXoaGiaoVienChuNhiem 62
Hình 5 15: Kết quả sau khi chạy Trigger NganChanXoaGiaoVienChuNhiem 63
Hình 5 16: Trigger NganChanThemGiaoVienKhoaKhongTonTai 64
Trang 8Hình 5 17: Trigger CapNhatLuongKhiThayDoiHocVi 65 Hình 5 18: Kết quả sau khi chạy Trigger CapNhatLuongKhiThayDoiHocVi 66 Hình 5 19: Trigger CapNhatLuongSauKhiCapNhatHocHam 67
Trang 9CHƯƠNG 1: MỞ ĐẦU 1.1 Lý do chọn đề tài
Đối với các cơ sở giáo dục, quản lý giáo viên là một trong những nhiệm vụ quantrọng và cần thiết nhất Việc quản lý giáo viên đúng cách không chỉ giúp nâng cao hiệuquả giảng dạy mà còn tạo ra môi trường học tập tích cực cho học sinh Chính vì vậy, việclựa chọn đề tài quản lý giáo viên để nghiên cứu là một quyết định đúng đắn
Tại sao nghiên cứu về quản lý giáo viên lại quan trọng như vậy? Tất cả chúng ta đềubiết rằng giáo viên là nhân tố quan trọng nhất trong sự phát triển của một cơ sở giáo dục
Họ là những người đem tới tri thức cho các học sinh, hướng dẫn và giúp đỡ các em trongquá trình học tập Tuy nhiên, nếu không có một hệ thống quản lý giáo viên hiệu quả, sẽrất khó khăn để đảm bảo chất lượng giảng dạy và sự phát triển của học sinh
Vì vậy, việc nghiên cứu các phương pháp quản lý giáo viên thích hợp sẽ giúp chocác trường và các nhà quản lý có thể điều hành các hoạt động giáo dục một cách hiệu quảhơn Nghiên cứu về quản lý giáo viên cũng sẽ giúp những người đứng đầu các trường học
có những quyết định đúng đắn trong việc tuyển dụng giáo viên, đào tạo và đánh giá hiệusuất giảng dạy
Bên cạnh đó, việc nghiên cứu quản lý giáo viên cũng giúp cho các trường học cóthể tạo ra một môi trường làm việc tích cực cho giáo viên Khi giáo viên được quản lýđúng cách, họ sẽ cảm thấy được đánh giá cao và có động lực hơn trong quá trình giảngdạy Điều này sẽ giúp nâng cao chất lượng giáo dục và sự phát triển của các học sinh.Nói chung, tiềm năng của đề tài quản lý giáo viên là rất lớn và sẽ ảnh hưởng đến sựphát triển của cả học sinh lẫn giáo viên Vì vậy, em cảm thấy nên đặt nghiên cứu về quản
lý giáo viên là ưu tiên hàng đầu trong các lĩnh vực nghiên cứu về giáo dục
1.2 Giới hạn và ý nghĩa của đề tài
1.2.1 Giới hạn đề tài
Phạm vi nghiên cứu: quản lý các hoạt động liên quan đến giáo viên trong một tổchức giáo dục, bao gồm việc tuyển dụng, đào tạo, phát truển nghề nghiệp, đánh giá hiệuquả và xử lý vi phạm
Trang 10Tài nguyên: Nghiên cứu về quản lý giáo viên trường Đại Học SPKT Hưng Yên cóthể đòi hỏi nhiều tài nguyên, bao gồm dữ liệu thông tin về giáo viên, dữ liệu lịch dạy vàlương
1.2.2 Ý nghĩa đề tài
Ý nghĩa của đề tài này là giúp tổ chức giáo dục có được một dội ngũ giáo viên tốtnhất và phát triển năng lực của họ để đạt được các mục tiêu giáo dục của nhà trường.Ngoài ra, việc quản lý giáo viên cũng đảm bảo tính chuyên nghiệp, đạo đức và hiệu quảcủa các giáo viên, giúp tăng cường sự hài lòng của sinh viên cũng như phụ huynh và thúcđẩy sự phát triển của tổ chức giáo dục
1.2.3 Nội dung thực hiện
Tổng quan Phân tích nhu cầu về giáo viên trong tổ chức giáo dục: nghiên cứu, phântích và đánh giá nhu cầu về giáo viên để đảm bảo được số lượng giáo viên đủ và chấtlượng tốt cho tổ chức giáo dục
Tuyển dụng giáo viên: Lập kế hoạch và triển khai quá trình tuyển dụng giáo viênphù hợp với nhu cầu của trường
Đào tạo và phát triển nghề nghiệp cho giáo viên: Xây dựng và triển khai kế hoạchđào tạo và phát triển nghề nghiệp cho giáo viên với mục tiêu cập nhật kiến thức, kỹ năngmới và nâng cao năng lực chuyên môn
Đánh giá hiệu quả của giáo viên: Đánh giá hiệu quả của giáo viên dựa trên các tiêuchí, mục tiêu và đánh giá kết quả đã được xác định trước
Xử lý vi phạm của giáo viên: Xác định và thực hiện các biện pháp kỷ luật khi giáoviên vi phạm nội quy của trường hoặc gây ra hậu quả xấu cho tổ chức giáo dục
Qua đó, nội dung đề tài quản lý giáo viên Trường Đại học SPKT Hưng Yên sẽ giúp
tổ chức giáo dục quản lý và phát triển đội ngũ giáo viên tốt nhất để đảm bảo chất lượng
Trang 11CHƯƠNG 2: THIẾT KẾ CƠ SỞ DỮ LIỆU
CREATE TABLE Khoa
MaKhoa CHAR( ) PRIMARY KEY,
TenKhoa NVARCHAR( 100 ) NOT NULL,
TruongKhoa NVARCHAR( 50 ) NOT NULL
)
đặt tên khoa là giá trị duy nhất
ALTER TABLE dbo Khoa ADD CONSTRAINT UQ_TenKhoa UNIQUE( TenKhoa )
GO
CREATE TABLE GiaoVien
MaGV CHAR( ) PRIMARY KEY,
HoTen NVARCHAR( 50 ) NOT NULL,
GioiTinh NVARCHAR( ) NOT NULL CHECK ( GioiTinh IN N'Nam' , N'Nữ' )),
HocVi NVARCHAR( 50 ) NOT NULL DEFAULT N'Cử nhân' , cử nhân/thạc sĩ/tiến sĩ
HocHam NVARCHAR( 50 ), giáo sư/phó giáo sư
SoDienThoai CHAR( 10 ) NOT NULL,
Email NVARCHAR( 50 ) NOT NULL,
Luong INT NOT NULL CHECK ( Luong > 0 ),
MaKhoa CHAR( ) NOT NULL,
FOREIGN KEY ( MaKhoa ) REFERENCES Khoa ( MaKhoa )
)
GO
CREATE TABLE Lop
MaLop CHAR( ) PRIMARY KEY,
TenLop NVARCHAR( 50 ) NOT NULL,
SiSo INT NOT NULL CHECK ( SiSo >= 0 ),
MaGVCN CHAR( ) NOT NULL,
MaKhoa CHAR( ) NOT NULL,
FOREIGN KEY ( MaGVCN ) REFERENCES GiaoVien ( MaGV ),
FOREIGN KEY ( MaKhoa ) REFERENCES Khoa ( MaKhoa )
)
GO
CREATE TABLE MonHoc
MaMonHoc CHAR( ) PRIMARY KEY,
TenMonHoc NVARCHAR( 100 ) NOT NULL,
TinChiLyThuyet INT NOT NULL CHECK ( TinChiLyThuyet >= 0 ),
TinChiThucHanh INT NOT NULL CHECK ( TinChiThucHanh >= 0 ),
MaKhoa CHAR( ) NOT NULL,
FOREIGN KEY ( MaKhoa ) REFERENCES Khoa ( MaKhoa )
)
GO
CREATE TABLE GiangDay
MaGV CHAR( ) NOT NULL,
MaLop CHAR( ) NOT NULL,
MaMonHoc CHAR( ) NOT NULL,
HocKy INT NOT NULL CHECK ( HocKy >= 0 ),
NamHoc INT NOT NULL CHECK ( NamHoc >= 0 ),
PRIMARY KEY ( MaGV , MaLop , MaMonHoc ),
FOREIGN KEY ( MaGV ) REFERENCES GiaoVien ( MaGV ),
FOREIGN KEY ( MaLop ) REFERENCES Lop ( MaLop ),
FOREIGN KEY ( MaMonHoc ) REFERENCES MonHoc ( MaMonHoc )
)
2.2 Thiết kế mối quan hệ giữa các bảng
Trang 12Hình 2 1: Database Diagrams
1 Dữ liệu trong bảng Khoa
Hình 2 2: Dữ liệu trong bảng Khoa
Trang 132 Dữ liệu trong bảng GiaoVien
Hình 2 3: Dữ liệu bảng GiaoVien
3 Dữ liệu trong bảng Lop
Hình 2 4: Dữ liệu bảng Lop
Trang 144 Dữ liệu trong bảng MonHoc
Hình 2 5: Dữ liệu trong bảng MonHoc
5 Dữ liệu trong bảng GiangDay
Trang 15CHƯƠNG 3: QUẢN LÝ NGƯỜI DÙNG, THIẾT KẾ CHỈ MỤC
Bảo mật là một trong những yếu tố đóng vai trò quan trọng đối với sự sống còncủa cơ sở dữ liệu Hầu hết các hệ quản trị cơ sở dữ liệu thương mại hiện nay đều cungcấp khả năng bảo mật cơ sở dữ liệu với những chức năng như:
- Cấp phát quyền truy cập cơ sở dữ liệu cho người dùng và các nhóm người dùng, pháthiện và ngăn chặn những thao tác trái phép của người sử dụng trên cơ sở dữ liệu
- Cấp phát quyền sử dụng các câu lệnh, các đối tượng cơ sở dữ liệu đối với người dùng
- Thu hồi (huỷ bỏ) quyền của người dùng
Bảo mật dữ liệu trong SQL được thực hiện dựa trên ba khái niệm chính sau đây:
- Người dùng cơ sở dữ liệu (Database user): Là đối tượng sử dụng cơ sở dữ liệu, thực thicác thao tác trên cơ sở dữ liệu như tạo bảng, truy xuất dữ liệu, Mỗi một người dùngtrong cơ sở dữ liệu được xác định thông qua tên người dùng (User ID) Một tập nhiềungười dùng có thể được tổ chức trong một nhóm và được gọi là nhóm người dùng (UserGroup) Chính sách bảo mật cơ sở dữ liệu có thể được áp dụng cho mỗi người dùng hoặccho các nhóm người dùng
- Các đối tượng cơ sở dữ liệu (Database objects): Tập hợp các đối tượng, các cấu trúclưu trữ được sử dụng trong cơ sở dữ liệu như bảng, khung nhìn, thủ tục, hàm được gọi làcác đối tượng cơ sở dữ liệu Đây là những đối tượng cần được bảo vệ trong chính sáchbảo mật của cơ sở dữ liệu
- Quyền hạn (Privileges): Là tập những thao tác được cấp phát cho người dùng trên cácđối tượng cơ sở dữ liệu Chằng hạn một người dùng có thể truy xuất dữ liệu trên mộtbảng bằng câu lệnh SELECT nhưng có thể không thể thực hiện các câu lệnh INSERT,UPDATE hay DELETE trên bảng đó
tạo tài khoản đăng nhập
EXEC sp_addlogin login_gv1 , '1'
EXEC sp_addlogin login_gv2 , '2'
EXEC sp_addlogin login_ql1 , '1'
EXEC sp_addlogin login_ql2 , '2'
EXEC sp_addlogin login_ql3 , '3'
tạo user từ login
EXEC sp_adduser login_gv1 , user_gv1
EXEC sp_adduser login_gv2 , user_gv2
EXEC sp_adduser login_ql1 , user_ql1
EXEC sp_adduser login_ql2 , user_ql2
EXEC sp_adduser login_ql3 , user_ql3
Trang 16tạo role (nhóm) giáo viên, sinh viên
EXEC sp_addrole GiaoVien
EXEC sp_addrole QuanLy
thêm user user_gv1, user_gv2 vào role Giaovien
EXEC sp_addrolemember GiaoVien , user_gv1
EXEC sp_addrolemember GiaoVien , user_gv2
thêm user user_ql1, user_ql2, user_ql3 vào role QuanLy
EXEC sp_addrolemember QuanLy , user_ql1
EXEC sp_addrolemember QuanLy , user_ql2
EXEC sp_addrolemember QuanLy , user_ql3
cấp quyền select tất cả các bảng cho nhóm GiaoVien
GRANT SELECT ON dbo Khoa TO GiaoVien
GRANT SELECT ON dbo GiaoVien TO GiaoVien
GRANT SELECT ON dbo Lop TO GiaoVien
GRANT SELECT ON dbo MonHoc TO GiaoVien
GRANT SELECT ON dbo GiangDay TO GiaoVien
Hình 3 1: Quyền SELECT của nhóm GiaoVien
cấp quyền select, insert, update, delete tất cả các bảng cho nhóm QuanLy GRANT SELECT, INSERT, UPDATE , DELETE ON dbo Khoa TO QuanLy
GRANT SELECT, INSERT, UPDATE , DELETE ON dbo GiaoVien TO QuanLy
GRANT SELECT, INSERT, UPDATE , DELETE ON dbo Lop TO QuanLy
GRANT SELECT, INSERT, UPDATE , DELETE ON dbo MonHoc TO QuanLy
Trang 17Hình 3 2: Quyền INSERT của nhóm QuanLy
Hình 3 3: Quyền UPDATE của nhóm QuanLy
Trang 18Hình 3 4: Quyền DELETE của nhóm QuanLy
cấp quyền update bảng GiaoVien cho user user_gv1
GRANT UPDATE ON dbo GiaoVien TO user_gv1
Hình 3 5: Quyền UPDATE của user_gv1
Trang 19thu hồi quyền update bảng GiaoVien của user user_gv1
REVOKE UPDATE ON dbo GiaoVien TO user_gv1
Hình 3 6: Tước quyền UPDATE của user_gv1
3.2 Chỉ mục
3.2.1 Ưu điểm, nhược điểm của chỉ mục
Ưu điểm của chỉ mục:
- Tăng tốc độ truy vấn dữ liệu: Chỉ mục giúp giảm thời gian truy vấn dữ liệu bằng cáchgiảm số lượng bản ghi phải tìm kiếm và sắp xếp, từ đó giúp truy vấn dữ liệu nhanh hơn
- Cải thiện hiệu suất hệ thống: Bằng cách sử dụng chỉ mục, hệ thống có thể tối ưu hóa truyvấn dữ liệu và giảm thiểu tài nguyên máy chủ được sử dụng trong quá trình truy vấn -Tăng tính độc lập của truy vấn: Chỉ mục cho phép truy vấn dữ liệu theo nhiều cách khácnhau và tăng tính linh hoạt của truy vấn
Nhược điểm của chỉ mục:
- Chiếm dụng bộ nhớ: Mỗi chỉ mục cần dùng một lượng bộ nhớ để lưu trữ thông tin chỉmục và cần được cập nhật thường xuyên Do đó, nếu có quá nhiều chỉ mục, thì việc quản
Trang 20Chỉ mục đơn 1
Tạo chỉ mục mới có tên là NONCLUS_MaGV trên cột MaGV của bảng GiaoVien
CREATE INDEX NONCLUS_MaGV ON GiaoVien ( MaGV )
Chỉ mục đơn 2 với fill factor
Tạo chỉ mục mới có tên là NONCLUS_MaKhoa trên cột MaKhoa của bảng Khoa với fill factor là 80%
CREATE INDEX NONCLUS_MaKhoa ON Khoa ( MaKhoa ) WITH (FILLFACTOR 80 )
Trang 22Tạo danh mục toàn văn
CREATE FULLTEXT CATALOG danh_muc_toan_van AS DEFAULT
Tạo danh mục toàn văn mới có tên là danh_muc_toan_van
xem danh mục toàn văn
SELECT FROM sys.fulltext_catalogs
xem khoá chính của bảng GiaoVien
sp_helpindex GiaoVien
Tạo chỉ mục toàn văn
CREATE FULLTEXT INDEX ON GiaoVien ( HoTen ) KEY INDEX PK GiaoVien 2725AEF35D73E09C
ON danh_muc_toan_van
Tạo chỉ mục toàn văn mới trên cột HoTen của bảng GiaoVien với chỉ mục khóa là khoá chính
Trang 23Sử dụng chỉ mục toàn văn
SELECT FROM GiaoVien WHERE CONTAINS ( HoTen , N'Nguyễn' )
Trả về tất cả các giáo viên có tên chứa từ N'Nguyễn'
GO
Hình 3 11: Sử dụng chỉ mục toàn văn
Tốc độ thực thi các câu truy vấn sử dụng chỉ mục sẽ nhanh hơn so với khi không
sử dụng chỉ mục trong SQL Vì khi sử dụng chỉ mục, SQL Server sẽ sử dụng cơ chế tìmkiếm và sắp xếp dữ liệu để đọc và truy xuất dữ liệu hiệu quả hơn
Việc sử dụng chỉ mục có thể giúp giảm thiểu số lượng dữ liệu phải quét để trả vềkết quả truy vấn, từ đó giảm thiểu thời gian thực thi truy vấn Chỉ mục cũng có thể giúptối ưu hóa kế hoạch thực thi truy vấn bằng cách chọn phương pháp truy xuất dữ liệu hiệuquả hơn
Tuy nhiên, việc sử dụng chỉ mục cũng có thể ảnh hưởng đến hiệu suất của hệthống nếu không được sử dụng đúng cách hoặc nếu chỉ mục quá lớn và không được tối
ưu hóa tốt Do đó, việc lựa chọn loại chỉ mục phù hợp và tối ưu hóa chỉ mục là rất quantrọng để đảm bảo tốc độ thực thi truy vấn tốt nhất
Trang 24CHƯƠNG 4: THIẾT KẾ VIEW, TRUY VẤN NÂNG CAO
• Thiết kế view trong cơ sở dữ liệu có thể được sử dụng cho các mục đích sau:
- Giảm độ phức tạp của câu truy vấn: View cho phép lưu trữ một câu truy vấn phức tạp
và giúp giảm độ phức tạp của câu truy vấn được sử dụng trong các truy vấn khác Nhưvậy, các câu truy vấn mới chỉ cần truy cập view thay vì phải thực hiện lại các câu truyvấn phức tạp
- Bảo mật dữ liệu: View cũng có thể được sử dụng để giới hạn quyền truy cập đến dữliệu Bằng cách cho phép người dùng truy cập vào các view được tạo ra từ các bảng,chúng ta có thể hạn chế sự truy cập trực tiếp vào các bảng đó
- Truy cập dữ liệu thuận tiện hơn: View có thể được tạo để truy cập dữ liệu từ nhiều bảngkhác nhau hoặc để hiển thị dữ liệu từ các bảng theo cách khác nhau để đáp ứng nhu cầucủa người dùng
- Tăng hiệu suất truy vấn: Nếu một view đã được tạo và được sử dụng nhiều lần trong cáccâu truy vấn khác nhau, SQL Server sẽ lưu trữ kết quả của view đó trong bộ nhớ tạm thời
để tăng hiệu suất truy vấn
Trang 254.1: View trên 1 bảng
Tạo view với tên là View_GiaoVien
CREATE VIEW View_GiaoVien AS
Trang 26Thêm dữ liệu vào view
INSERT INTO View_GiaoVien MaGV , HoTen , GioiTinh , HocVi , HocHam , SoDienThoai ,
Email , Luong , MaKhoa )
VALUES ( 'GV015' , N'Đào Văn Hiển' , N'Nam' , N'Tiến sĩ' , NULL, '0983264436' ,
'hienda@gmail.com' , 9500000 , 'CNTT' )
GO
Hình 4 2: Thêm dữ liệu vào View_GiaoVien
Trang 27Cập nhật dữ liệu trong view
SELECT FROM dbo GiaoVien WHERE MaGV 'GV015'
SELECT FROM dbo GiaoVien WHERE MaGV 'GV015'
Hình 4 3: Cập nhật dữ liệu trong View_GiaoVien
Trang 28Xóa dữ liệu khỏi view
SELECT FROM dbo GiaoVien WHERE MaGV 'GV015'
GO
DELETE FROM View_GiaoVien
WHERE MaGV 'GV015'
GO
SELECT FROM dbo GiaoVien WHERE MaGV 'GV015'
Hình 4 4: Xoá dữ liệu trong View_GiaoVien
Trang 29Tạo view với tên là GiaoVien_LuongCao: hiển thị thông tin về giáo viên có lương trên 9 triệu
CREATE VIEW GiaoVien_LuongCao AS
SELECT MaGV , HoTen , Luong
Trang 30Tạo view với tên là Lop_SiSoLon: hiển thị thông tin về các lớp có sĩ số trên 30 CREATE VIEW Lop_SiSoLon AS
SELECT MaLop , TenLop , SiSo
Trang 314.2: View trên 2 bảng
Tạo view với tên là GiaoVien_Khoa: hiển thị thông tin về giáo viên và khoa mà
họ thuộc về
CREATE VIEW GiaoVien_Khoa AS
SELECT gv MaGV , gv HoTen , k TenKhoa
Trang 324.3: View trên 3 bảng
Tạo view với tên là GiangDay_ThongTin: hiển thị thông tin về giáo viên, môn học
mà họ dạy và học kỳ
CREATE VIEW GiangDay_ThongTin AS
SELECT gd MaGV , gv HoTen , mh TenMonHoc , gd HocKy
FROM GiangDay gd
JOIN GiaoVien gv ON gd MaGV gv MaGV
JOIN MonHoc mh ON gd MaMonHoc mh MaMonHoc
Trang 33Tạo view với tên là Lop_ThongTin: hiển thị thông tin về lớp, giáo viên chủ nhiệm và khoa mà lớp thuộc về
CREATE VIEW Lop_ThongTin AS
SELECT MaLop , l TenLop , gv HoTen as GVCN , k TenKhoa
FROM Lop
JOIN GiaoVien gv ON MaGVCN gv MaGV
JOIN Khoa ON MaKhoa MaKhoa