PHẦN 1: KIẾN THỨC TỔNG QUAN SQL SERVER
BÀI 1: TỔNG QUAN VỀ MÔ HÌNH CLIENT/ SERVER
Mục tiêu:
- Tiếp cận với mô hình cơ sở dữ liệu Client / Server
- Các đặc trưng của mô hình Client / Server
- Phân tích được các tầng cấu trúc của mô hình Client/Server.
- Phân biệt được các mô hình CSDL
1.1 Các kiến thức tổng quan về CSDL
Một hệ CSDL (DB system) bao gồm một CSDL (Database) và một hệ quản
trị CSDL (DBMS)
CSDL (CSDL) là một tập hợp dữ liệu được tổ chức và lưu trữ theo một cấu
trúc chặt chẽ nhằm phục vụ nhiều đối tượng sử dụng với nhiều mục đích khác
nhau.
Hệ quản trị CSDL (Database Management System - DBMS) là một công cụ
phần mềm tổng quát nhằm hỗ trợ việc lưu trữ, truy xuất và quản trị CSDL. Nó
cung cấp cho người dùng và ứng dụng một môi trường thuận tiện và sử dụng hiệu
quả tài nguyên dữ liệu. Nói cách khác, Hệ quản trị CSDL là phần mềm chuyên
dụng để giải quyết tốt các tình huống mà CSDL đặt ra như: bảo mật, cạnh tranh
trong truy xuất.7
1.2 Các giai đoạn phát triển của một hệ quản trị CSDL.
Những năm 1975-1976, IBM lần đầu tiên đưa ra hệ quản trị CSDL kiểu quan hệ
mang tên SYSTEM-R với ngôn ngữ giao tiếp CSDL là SEQUEL (Structured
English QUEry Language), đó một ngôn ngữ con để thao tác với CSDL.
Năm 1976 ngôn ngữ SEQUEL được cải tiến thành SEQUEL2. Khoảng năm
1978-1979 SEQUEL2 được cải tiến và đổi tên thành Ngôn ngữ truy vấn có cấu
trúc (Structured Query Language - SQL) và cuối năm 1979 được cải tiến thành
SYSTEM-R.
Năm 1986 Viện Tiêu Chuẩn Quốc Gia Mỹ (American National Standards
Institute - ANSI) đã công nhận và chuẩn hóa ngôn ngữ SQL, và sau đó Tổ chức
Tiêu chuẩn Thế giới (International Standards Organization - ISO) cũng đã công
nhận ngôn ngữ này. Đó là chuẩn SQL-86.
Tới nay SQL đã qua 3 lần chuẩn hóa lại (1989, 1992, 1996) để mở rộng các
phép toán và tăng cường khả năng bảo mật và tính toàn vẹn dữ liệu.
Ngôn ngữ CSDL được cài đặt khác nhau đối tùy theo các hệ quản trị CSDL
khác nhau, tuy nhiên đều phải theo một chuẩn (Standard) nhất định. Hiện nay, đa
phần các ngôn ngữ truy vấn CSDL dựa trên chuẩn SQL-92.
              
                                            
                                
            
 
            
                 155 trang
155 trang | 
Chia sẻ: Thục Anh | Lượt xem: 1355 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang nội dung tài liệu Giáo trình mô đun Hệ quản trị cơ sở dữ liệu (Mới nhất), để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
i mỗi phòng ban, liệt kê tên phòng ban và lương trung bình của 
những nhân viên làm việc cho phòng ban đó. 
29. Với các phòng ban có mức lương trung bình trên 30,000, liệt kê tên 
phòng ban và số lượng nhân viên của phòng ban đó. 
30. Với mỗi phòng ban, cho biết tên phòng ban và số lượng đề án mà 
phòng ban đó chủ trì 
31. Với mỗi phòng ban, cho biết tên phòng ban, họ tên người trưởng 
phòng và số lượng đề án mà phòng ban đó chủ trì 
32. Với mỗi phòng ban có mức lương trung bình lớn hơn 50,000, cho biết 
tên phòng ban và số lượng đề án mà phòng ban đó chủ trì. 
33. Cho biết số đề án diễn ra tại từng địa điểm 
34. Với mỗi đề án, cho biết tên đề án và số lượng công việc của đề án này. 
35. Với mỗi công việc trong đề án có mã đề án là 20, cho biết số lượng 
nhân viên được phân công . 
3.3 TRUY VẤN LỒNG + GOM NHÓM 
36. Cho biết danh sách các đề án (MADA) có: nhân công với họ (HONV) 
là 'Lê' hoặc có người trưởng phòng chủ trì đề án với họ (HONV) là 
'Lê'. 
37. Danh sách những nhân viên (HONV, TENLOT, TENNV) có trên 2 thân 
nhân. 
115 
38. Danh sách những nhân viên (HONV, TENLOT, TENNV) không có 
thân nhân nào (dùng NOT IN, LEFT JOIN, NOT EXISTS) 
39. Danh sách những trưởng phòng (HONV, TENLOT, TENNV) có tối 
thiểu một thân nhân. 
40. Tìm họ (HONV) của những trưởng phòng chưa có gia đình. 
41. Cho biết họ tên nhân viên (HONV, TENLOT, TENNV) có mức 
lương trên mức lương trung bình của phòng "Nhân sự" 
42. Cho biết tên phòng ban và họ tên trưởng phòng của phòng ban có 
đông nhân viên nhất. 
43. Cho biết danh sách các mã đề án mà nhân viên có mã là 60 chưa làm. 
44. Danh sách nhân viên gồm MaNv, HovaTen (được nối từ các cột HONV, 
TENLOT, TENNV) và địa chỉ (DCHI) của những nhân viên làm việc 
cho một đề án ở 'TP HCM' nhưng phòng ban mà họ trực thuộc lại không 
tọa lạc ở thành phố 'TP HCM' 
. 
45. Tổng quát câu 16, tìm họ tên và địa chỉ của các nhân viên làm việc cho 
một đề án ở một thành phố nhưng phòng ban mà họ trực thuộc lại không 
toạ lạc ở thành phố đó. 
3.5 COMPUTE/COMPUTE BY 
1. Danh sách nhân viên gồm MaNv, HovaTen (được nối từ các cột 
HONV, TENLOT, TENNV), Tuổi và tuổi trung bình của các nhân 
viên trong công ty (dùng COMPUTE) 
2. Danh sách các Phòng ban, Tên đề án và tổng lương trung bình phải trả 
cho mỗi đề án (COMPUTE BY). Lương trung bình được tính từ 
trung bình của tổng lương_đề án các nhân viên, trong đó lương_đề 
án của mỗi nhân viên = LUONGx với số giờ làm việc cho mỗi đề án 
116 
của nhân viên đó. 
3.4 PHÉP CHIA 
1. Danh sách những nhân viên MaNV, Phái, HoTen được nối từ 
HONV, TENLOT, TENNV làm việc trong mọi đề án của công ty 
2. Danh sách những nhân viên MaNV, Phái, HoTen được nối từ 
HONV, TENLOT, TENNV được phân công tất cả đề án do phòng 
số 5 chủ trì. 
3. Tìm những nhân viên MaNV, Phái, HoTen (HONV, TENLOT, 
TENNV) được phân công tất cả đề án mà nhân viên Lê Minh Tính 
làm việc 
4. Cho biết danh sách nhân viên tham gia vào tất cả các đề án ở TP HCM 
5. Cho biết phòng ban chủ trì tất cả các đề án ở HaNoi 
3.6. UNION/INTERSECT 
6. Cho biết những phòng ban có nhân viên tham gia cả 2 dự án ở HaNoi và 
Tp.HCM. 
7. Cho biết những phòng ban có nhân viên tham gia dự án ở Tp.HCM hoặc 
ở HaNoi. 
Phần 4: câu lệnh DELETE 
Lưu ý, việc xóa dữ liệu là công việc cần thận trọng, nên chúng ta ít 
thao tác trên CSDL với lệnh DELETE, trừ khi loại bỏ dữ liệu tạm. 
Nên phần này yêu cầu chúng ta phải sao chép dữ liệu trước khi thực 
hiện các công việc sau: 
1. Hãy xóa các nhân viên chưa tham gia đề án nào. 
2. Hãy xóa các nhân viên không có thân nhân. 
Sẽ có nhiều record không xóa được, bạn tìm hiểu tại sao? Ghi trả lời. 
117 
TỔNG HỢP 
Bài 1. Tạo CSDL có tên QLNV bao gồm các bảng có cấu trúc như sau: 
Bảng PHONG lưu trữ thông tin về các phòng ban trong cơ quan. 
STT Tên trường Kiểu Độ rộng Ý nghĩa 
1 
MAPHONG 
Char 3 Mã phòng ban 
2 TENPHONG Nvarchar 40 Tên phòng ban 
3 DIACHI Nvarchar 50 Địa chỉ phòng ban 
4 TEL char 10 Số điện thoại 
Bảng DMNN lưu trữ danh mục các ngoại ngữ 
STT Tên trường Kiểu Độ rộng Ý nghĩa 
1 
MANN 
Char 2 Mã ngoại ngữ 
2 TENNN Nvarchar 20 Tên ngoại ngữ 
Bảng NHANVIEN lưu trữ thông tin chung về nhân viên 
STT Tên trường Kiểu Độ rộng Ý nghĩa 
1 
MANV 
Char 5 Mã nhân viên 
2 HOTEN Nvarchar 40 Họ và tên 
3 GIOITINH Char 3 Giới tính 
4 NGAYSINH Date/Time Ngày sinh 
118 
5 LUONG Int Lương chính 
6 MAPHONG Char 3 Mã phòng ban 
7 SDT Char 10 Số điện thoại 
8 NGAYBC Date/Time Ngày vào biên chế 
Bảng TDNN lưu trữ thông tin về trình độ ngoại ngữ của các nhân viên trong 
cơ quan. 
STT Tên 
trường 
Kiểu Độ rộng Ý nghĩa 
1 
MANV 
Char 5 Mã nhân viên 
2 
MANN 
Char 2 Mã ngoại ngữ 
3 TDO Char 1 Trình độ ngoại ngữ 
Ghi chú: Các trường in đậm, gạch chân thuộc khóa chính. 
Bài 2. Nhập dữ liệu cho các bảng trong cơ sở dữ liệu QLNV theo mẫu sau: 
Nhập dữ liệu cho bảng PHONG gồm các bản ghi: 
MAPHONG TENPHONG DIACHI TEL 
HCA Hành chính tổ hợp 123, Láng Hạ, Đống Đa, Hà Nội 04 8585793 
KDA Kinh Doanh 123, Láng Hạ, Đống Đa, Hà Nội 04 8574943 
KTA Kỹ thuật 123, Láng Hạ, Đống Đa, Hà Nội 04 9480485 
QTA Quản trị 123, Láng Hạ, Đống Đa, Hà Nội 04 8508585 
119 
Nhập dữ liệu cho bảng DMNN gồm các bản ghi: 
MANN TENNN 
01 Anh 
02 Nga 
03 Pháp 
04 Nhật 
05 Trung Quốc 
06 Hàn Quốc 
Nhập dữ liệu cho bảng nhân viên gồm các bản ghi: 
MAN
V HOTEN 
GIOITI
NH 
NGAYSI
NH LUONG 
MAPHO
NG 
Sd
t 
NGAYB
C 
HC001 Nguyễn Thị Hà Nữ 8/27/1950 2500000 HCA 2/8/1975 
HC002 Trần Văn Nam Nam 6/12/1975 3000000 HCA 6/8/1997 
HC003 
Nguyễn Thanh 
Huyền Nữ 7/3/1978 1500000 HCA 9/24/1999 
KD001 Lê Tuyết Anh Nữ 2/3/1977 2500000 KDA 10/2/2001 
KD002 Nguyễn Anh Tú Nam 7/4/1942 2600000 KDA 9/24/1999 
KD003 Phạm An Thái Nam 5/9/1977 1600000 KDA 9/24/1999 
KD004 Lê Văn Hải Nam 1/2/1976 2700000 KDA 6/8/1997 
KD005 
Nguyễn Phương 
Minh Nam 1/2/1980 2000000 KDA 10/2/2001 
120 
KT001 Trần Đình Khâm Nam 12/2/1981 2700000 KTA 1/1/2005 
KT002 
Nguyễn Mạnh 
Hùng Nam 8/16/1980 2300000 KTA 1/1/2005 
KT003 Phạm Thanh Sơn Nam 8/20/1984 2000000 KTA 1/1/2005 
KT004 Vũ Thị Hoài Nữ 12/5/1980 2500000 KTA 10/2/2001 
KT005 Nguyễn Thu Lan Nữ 10/5/1977 3000000 KTA 10/2/2001 
KT006 Trần Hoài Nam Nam 7/2/1978 2800000 KTA 6/8/1997 
KT00
7 
Hoàng Nam 
Sơn Nam 
12/3/19
40 
30000
00 KTA 
7/2/196
5 
KT00
8 Lê Thu Trang Nữ 
7/6/195
0 
25000
00 KTA 
8/2/196
8 
KT00
9 Khúc Nam Hải Nam 
7/22/19
80 
20000
00 KTA 
1/1/200
5 
KT01
0 
Phùng Trung 
Dũng Nam 
8/28/19
78 
22000
00 KTA 
9/24/19
99 
Nhập dữ liệu cho bảng TDNN gồm các bản ghi: 
MANV MANN TDO MANV MANN TDO 
HC001 01 A KD004 05 A 
HC001 02 B KD005 01 B 
HC002 01 C KD005 02 D 
121 
HC002 03 C KD005 03 B 
HC003 01 D KD005 04 B 
KD001 01 C KT001 01 D 
KD001 02 B KT001 04 E 
KD002 01 D KT002 01 C 
KD002 02 A KT002 02 B 
KD003 01 B KT003 01 D 
KD003 02 C KT003 03 C 
KD004 01 C KT004 01 D 
KD004 04 A KT005 01 C 
Bài 3. Viết câu lệnh SQL thực hiện các câu truy vấn sau 
1. Đưa ra thông tin của nhân viên có mã số KT001? 
2. Hãy sửa họ tên nhân viên trên thành ký tự tiếng Việt (Unicode) 
3. Đưa ra danh sách các nhân viên nữ? 
4. Tìm những nhân viên có họ ‘Nguyễn’? 
5. Đưa ra danh sách các nhân viên có tên chứa từ ‘Văn’ 
6. Đưa ra những nhân viên có tuổi dưới 30? (Đưa ra cả thông tin tuổi trong kết 
quả) 
7. Đưa ra danh sách các nhân viên có tuổi nằm trong khoảng 25 đến 30 tuổi? 
(Đưa ra cả thông tin tuổi trong kết quả) 
8. Đưa ra các mã nhân viên đã học các ngoại ngữ 01 ở trình độ C trở lên? 
9. Đưa ra danh sách các nhân viên vào biên chế trước năm 2000? 
122 
10. Đưa ra danh sách các nhân viên đã vào biên chế hơn 10 năm? 
11. Đưa ra danh sách các nhân viên năm nay đủ tuổi nghỉ hưu (Nam >=60 tuổi, 
Nữ >=55 tuổi)? 
12. Cho biết thông tin (Mã phòng, tên phòng, điện thoại liên hệ) về các phòng 
ban? 
13. Đưa ra thông tin (họ tên, ngày sinh, ngày vào biên chế) về 2 nhân viên đầu 
tiên trong bảng nhân viên? 
14. Cho biết mã nhân viên, họ tên, ngày sinh, lương của các nhân viên có lương 
nằm trong khoảng từ 2000000 đồng đến 3000000 đồng? 
15. Đưa ra danh sách các nhân viên chưa có số điện thoại? 
16. Đưa ra danh sách các nhân viên sinh nhật trong tháng 3 
17. Hãy đưa ra danh sách nhân viên theo theo chiều tăng dần của lương? 
18. Cho biết lương trung bình của phòng Kinh doanh? 
19. Cho biết tổng số nhân viên và trung bình lương phòng Kinh doanh? 
20. Cho biết tổng lương của mỗi phòng? 
21. Cho biết các phòng có tổng lương lớn hơn 500.0000? 
22. Cho biết danh sách mã nhân viên, họ tên, mã phòng và tên phòng họ làm việc? 
23. Đưa ra danh sách tất cả các nhân viên cùng với thông tin về phòng ban của 
họ (kể cả các nhân viên chưa ở phòng nào)? 
24. Đưa ra danh sách tất cả các phòng cùng với thông tin về các nhân viên của 
các phòng (kể cả các phòng chưa có nhân viên nào)? 
123 
Mở cơ sở dữ liệu QLNV và thực hiện các truy vấn sau: 
1. Cho biết địa chỉ, số điện thoại của phòng “Kinh doanh”? 
2. Cho biết mã nhân viên, họ tên, ngày vào biên chế của những nhân viên có 
lương thấp (lương <=1500000)? 
3. Sắp xếp danh sách nhân viên trong bảng nhân viên theo thứ tự tăng dần của 
trường tên nhân viên, nếu tên trùng nhau thì sắp xếp theo thứ tự giảm dần 
của trường ngày sinh. 
4. Đưa ra danh sách nhân viên của phòng “Kỹ thuật”? Thông tin đưa ra gồm 
mã nhân viên, họ, tên, ngày sinh của nhân viên. 
5. Tìm những nhân viên vào biên chế trước ngày 10/2/2001, do phòng “Kỹ 
thuật” hoặc phòng “Kinh doanh” quản lý. 
6. Tìm những nhân viên học tiếng Anh hoặc tiếng Pháp, đạt trình độ từ C trở 
lên? Thông tin đưa ra gồm mã nhân viên, họ, tên, ngày sinh, tên ngoại ngữ, 
trình độ ngoại ngữ. 
7. Những ngoại ngữ nào chưa có nhân viên học? 
8. Những nhân viên nào chưa học bất kỳ một ngoại ngữ nào? 
9. Cho biết toàn cơ quan có bao nhiêu nhân viên nữ? 
10. Tìm những nhân viên biết từ 3 ngoại ngữ trở lên? Thông tin đưa ra gồm mã 
nhân viên, họ tên, số ngoại ngữ mà nhân viên này học. 
11. Tính tổng lương của mỗi phòng? Thông tin đưa ra gồm mã phòng, tên phòng, 
tổng lương của phòng đó. 
12. Cho biết lương lớn nhất, lương nhỏ nhất, lương trung bình, số nhân viên của 
mỗi phòng ? 
13. Cập nhật lương cho các nhân viên phòng Kỹ thuật thêm 15%. 
14. Tạo một bảng có cấu trúc như bảng nhân viên tên là NGHI_HUU để lưu 
thông tin về các nhân viên đến tuổi nghỉ hưu. Sau đó dùng câu lệnh Insert  
124 
Select để sao danh sách các nhân viên đến tuổi nghỉ hưu ở bảng 
NHANVIEN vào bảng nghỉ hưu. (Điều kiện về hưu: Nam từ 60 tuổi trở lên, 
nữ từ 55 tuổi trở lên). Sau đó, xóa thông tin về các nhân viên này trong bảng 
NHANVIEN. 
15. Thêm các ràng buộc not null, default, unique, primary key, 
foreignreference vào các bảng trong CSDL QLNV. 
125 
BÀI 5: LÀM VIỆC VỚI VIEW VÀ TRIGGER 
Phần 1: VIEWS 
1. Viết truy vấn liệt kê tên các nhân viên cùng với các dự án mà nhân 
viên đó tham gia. Run và kiểm tra kết quả. 
2. Tạo một View có tên NV_DA với nội dung truy vấn là câu 1. Mở 
cửa sổ Object Explorer, xem view vừa tạo lưu ở đâu?. Xem kết quả 
dữ liệu từ View vừa tạo (SELECT * FROM NV_DA) và so sánh 
với kết quả ở câu 1; có khác nhau không?. Tại sao? 
3. Thêm một dòng tùy ý vào bảng PHANCONG, sau đó thực hiện 
lệnh SELECT * FROM NV_DA, kết quả có thay đổi so với câu 2 
không?. Tại sao? 
4. Thực hiện lệnh 
UPDATE NV_DA 
SET TENDA = N‘Quản lý các dự án CNTT thông tin’ 
WHERE TENDA=N’Resort nghỉ dưỡng’ 
Câu lệnh có thực hiện được không?. Tại sao? 
Thực hiện câu lệnh: SELECT * FROM NV_DA và SELECT * 
FROM DEAN để xem sự thay đổi dữ liệu 
5. Viết truy vấn hiển thị HoTen của nhân viên, tên dự án nhân viên đó 
tham gia cùng với tổng tiền lương của nhân viên theo dự án (tiền 
lương = số giờ * LUONG). Sắp xếp tiền lương tăng dần. Sau đó, 
thực hiện các yêu cầu sau: 
a. Tạo một View5a dựa trên query này. Bạn sẽ gặp lỗi, tại sao? 
b. Hãy hiệu chỉnh để có thể tạo được View5b dựa trên query trên. 
6. Tạo View6 gồm các thông tin của bảng DEAN nhưng chỉ lấy các 
126 
dự án có địa điểm ở Tp.HCM. 
a. Sửa câu View6 thành View6a có thêm tùy chọn WITH 
ENCRYPTION. Sử dụng sp_helptext để xem lại mã lệnh. Có 
xem được không? 
b. Sửa câu View6 thành View6b có thêm tùy chọn WITH 
SCHEMABINDING. Bạn cần hiệu chỉnh điều gì để có thể 
thực thi được view. 
c. Sửa câu View6 thành View6c có thêm tùy chọn WITH 
CHECK OPTION. Sau đó thêm một dòng dữ liệu sau thông 
qua View6c: 
INSERT View6c 
VALUES(‘99’,’Xây dựng đường cao tốc LT-DN’, 
‘Đồng Nai’,’5’) Bạn có thêm được không, tại sao? 
Sửa lại dữ liệu để có thể thêm được thông qua 
View6c. 
d. Xóa dữ liệu vừa thêm ở câu c thông qua View6c. 
7. Tạo 3 bảng DEAN_HCM, DEAN_HANOI, DEAN_VT gồm các cột: 
MaDA varchar(2) Primary Key, TenDA nvarchar(50),
 DDIEM_DA varchar(20), PHONG varchar(2). Trong đó : 
- DEAN_HCM: check contraint của DDIEM_DA là ‘Tp.Hồ Chí 
Minh’ 
- DEAN_HANOI: check contraint của DDIEM_DA là ‘Hà Nội’ 
- DEAN_VT: check contraint của DDIEM_DA là ‘Vũng Tàu’ 
Thêm vào mỗi bảng 2 record với ràng buộc tương ứng. Tạo một 
partition view từ 3 bảng dữ liệu trên. Xem kết quả view vừa tạo 
được. 
127 
PHẦN 2: USER-DEFINED FUNCTIONS 
1. Viết hàm trả về tổng tiền lương trung bình của một phòng ban tùy 
ý (truyền vào MaPB) 
2. Viết hàm trả về tổng lương nhận được của nhân viên theo dự án 
(truyền vào MaNV và MaDA) 
3. Viết hàm trả về tổng tiền lương trung bình của các phòng ban 
4. Viết hàm trả về tổng tiền thưởng cho nhân viên dựa vào tổng số giờ 
tham gia dự án(Time_Total) như sau: 
- Nếu Time_Total >=30 và <=60 thì tổng tiền thưởng = 500 ($) 
- Nếu Time_Total >60 và <100 thì tổng tiền thưởng = 1000 ($) 
- Nếu Time_Total >=100 và <150 thì tổng tiền thưởng =1200($) 
- Nếu Time_Total >=150 thì tổng tiền thưởng = 1600 ($) 
5. Viết hàm trả ra tổng số dự án theo mỗi phòng ban. 
6. Viết hàm trả về kết quả là một bảng (Table), viết bằng hai
cách: Inline Table-Valued Functions và Multistatement Table-
Valued. Thông tin gồm: MaNV, HoTen, NgaySinh, NguoiThan, 
TongLuongTB. 
PHẦN 3: TRIGGER 
1. Tạo triggers trên bảng nhân viên cho thao tác UPDATE. Khi có thao tác 
UPDATE xảy ra trên field TENNV thì thông báo cho người dùng ‘Không 
được cập nhật’ và hủy thao tác. 
2. Thêm một cột ToTal_Time vào trong bảng nhân viên. Viết trigger cho thao 
tác insert, update, delete trên bảng PhanCong. Khi có mẫu tin được thêm 
vào, hay cập nhật, hay xóa thì ToTal_Time được tính lại tương ứng cho nhân 
viên được phân công. Lưu ý, giả sử ban đầu ToTal_Time = 0. ToTal_Time 
là tổng thời gian phân công cho nhân viên của các dự án. 
128 
3. Tạo trigger cho thao tác insert, update trên bảng Nhanvien để kiểm tra 
ràng buộc liên thuộc tính giữa ngày sinh và Hire_date, trong đó ngày sinh 
luôn luôn < Hire_date – 
40. (40 là giá trị của datepart ‘yy’). 
 4. Tạo trigger để kiểm tra thao tác insert trên bảng THANNHAN sao cho số 
lượng thân nhân được thêm vào tương ứng với một nhân viên không quá 5 người. 
129 
PHẦN 3: CÂU HỎI TRẮC NGHIỆM 
1) Trong câu truy vấn lấy dữ liệu từ hai bảng đã đc gọi là join với nhau , kết quả 
trả về chỉ gồm các bản ghi nằm trong bảng bên phải . Xác định loại join đc dung 
trong câu truy vấn trên (chọn1) (1 Mark) 
A) Outer Join 
B) Right Outer Join 
C) Full Join 
D) Right Inner join 
2) Trong mô hình CSDL phân cấp (Hierarchical Database model)_____ dùngđể 
thiết lập mối quan hệ giữa bảng cha với bảng con (0,5 Mark) 
A) Dollars 
B) Pointers 
C) Line 
D) Bảng cha và bảng con ko thể thiết lập mối quan hệ 
3) Mô hình CSDL mà một bảng con có nhiều bảng cha thuộc loại____(1 Mark) 
A) Mô hình CSDL (Flat-file Database model) 
B) Mô hình CSDL phân cấp (Hierarchical Database Model) 
C) Mô hình CSDL mạng (Network Systems Database Model) 
4) Chỉ ra cú pháp để tạo một bảng bằng T-SQL (1 Mark) 
A) CREATE TABLE () 
B) CREATE TABLE () 
C) CREATE TABLE () 
D) CREATE TABLE () 
130 
5) Khi muốn xóa bảng Books trong CSDL , cú pháp nào dưới đây đc sử dụng (1 
Mark) 
A) DROP Books 
B) DROP TABLE Books FROM library 
C) DROP TABLE Books 
D) DELETE TABLE Books 
E) DELETE TABLE Books FROM library 
6) Một câu lệnh truy cập vào dữ liệu trong CSDL gọi là____ (0,5 Mark) 
A) Transaction 
B) Operation 
C) Query 
D) Statement 
7) Khi sử dụng bất kỳ hàm tập hợp nào trong câu lệnh SELECT , chỉ nên sử dụng 
hàm đó trên trường đầu tiên trong câu lệnh SELECT (0,5 Mark) 
A) Đúng 
B) Sai 
8) Đâu là cú pháp đúng cho hàm AVG (1,5 Mark) 
A) AVG([DISTINCT] Biểu Thức) 
B) AVG([ALL|DISTINCT] Biểu Thức) 
C) AVG(Biểu Thức) 
D) AVG([ALL]Biểu Thức) 
E) Tất cả các lựa chọn trên 
9) Phát biểu nào dưới đây là đúng về hàm COUNT? (Chọn3) (1,5 Mark) 
131 
A) Khi sử dụng hàm COUNT trên trường khóa chính luôn trả về kết quả chính 
xác do trường khóa chính ko có các giá trị null 
B) Khi đc dung kết hợp với từ khóa DISTINCT , hàm COUNT chỉ đếm những 
giá trị riêng biệt 
C) Cú pháp của hàm COUNT chỉ thực hiện trên những trường có kiểu dữ liệu là 
số 
D) Cú pháp hàm COUNT là COUNT(Biểu thức) 
E) Khi sử dụng hàm COUNT trên trường khóa ngoại có thể trả về kết quả không 
chính xác do trường khóa ngoại có thể có các giá trị null 
10) DML viết tắt bởi (0,5 Mark) 
A) Data Moulding Language 
B) Data Manipulation Language 
C) Data Modeling Language 
D) Data Marketing Language 
11) Những kiểu dữ liệu nào dưới đây đc hỗ trợ bởi SQL 2000 (chọn 3) 
(0,5 Mark) ( SQL 2000 hok quan tâm) 
A) String 
B) Char 
C) Tinyint 
D) Ntext 
E) Double 
12) Giả sử bạn có 1 bảng tên A , trong bảng đó có trường tên là ‘xyz’ với kiểu dữ 
liệu là int . Giá trị của tất cả các trường trong 1 bản ghi của bảng đó phải là giá trị 
số nguyên (0,5 Mark) 
132 
A) Đúng 
B) Sai 
13) DBMS hỗ trợ hệ thống lưu trữ CSDL tập trung (0,5 Mark) 
A) Đúng 
B) Sai 
14) Phát biểu nào dưới đây là đúng về Joins (1,5 Mark) 
A) Join có thể đc sử dụng trong mệnh đề FROM . Trong các truy vấn có 
mệnh đề WHERE ko đc sử dụng Join 
B) Trong SQL 2000 các bảng đc join với nhau dựa trên mối quan hệ trên các bảng 
đó 
C) Join chỉ ra mối quan hệ giữa 2 bảng 
D) Khi đc sử dụng , join sẽ loại bỏ khái niệm về quan hệ khóa ngoại giữa các 
bảng 
E) Joins chỉ có thể dung trên 2 bảng 
15) Đề cập nhật dữ liệu ở mức độ trường , câu lệnh nào dưới đây đc sử dụng 
(1 Mark) 
A) UPDATE Table_name, Column_name 
B) UPDATE Table_name SET (Column_name) 
C) Column_name UPDATE 
D) UPDATE Column_name 
E) UPDATE ( Column_name ) 
16) Phát biểu nào dưới đây là sai (Chọn2) (1,5 Mark) 
133 
A) Outer joins sẽ trả về tất cả các bản ghi của 1 bảng nào đó trong mệnh đề 
FROM , nếu những bản ghi đó thỏa mãn những điều kiện trong mệnh đề 
WHERE và HAVING 
B) Có 4 loại outer joins 
C) Inner Joins trả về tất cả các bản ghi ngay cả khi ko có bản ghi nào tương ứng 
với nó trong bảng lien quan 
D) Inner Joins loại bỏ những bản ghi mà ko có bản ghi nào tương ứng với nó 
trong bảng liên quan 
17) Xác định cú pháp đúng cho LEFT OUTER JOIN (Chọn1) (1,5 Mark) 
A) LEFT OUTER TABLE SELECT from 
 ON 
First_Table.=Second_Table. 
B) SELECT from 
LEFT OUTER TABLE ON 
First_Table.=Second_Table. 
C) SELECT from LEFT OUTER JOIN 
ON 
First_Table.=Second_Table. 
D) SELECT from LEFT OUTER JOIN 
 ON 
First_Table.=Second_Table. 
18) Toàn vẹn thực thể còn đc gọi là_____ (Chọn 1) (0,5 Mark) 
A) Database Integrity (Toàn vẹn CSDL) 
B) Table Integrity (Toàn vẹn bảng) 
134 
C) Column Integrity(Toàn vẹn cột) 
D) Row Intergrity(Toàn vẹn dòng) 
19) Thuật ngữ miền (domain) chỉ ra một tập hợp các giá trị đc phép lưu trữ trong 
một trường (0,5 Mark) 
A) Sai 
B) Đúng 
20) Khi phải lựa chọn khóa chính giữa 1 trường đơn và trường phức , tốt hơn nên 
chọn trường phức (composite key) (0,5 Mark) 
A) Đúng 
B) Sai 
21) Dữ liệu trong trường khóa chính phải đc thay đổi thường xuyên để đảm bảo 
tính phân biệt của bản ghi (identity of the row) (0,5 Mark) 
A) Đúng 
B) Sai 
22) Tìm ra phát biểu đúng (1 Mark) 
Phát biểu 1 – Bảng đc tạo ra để lưu trữ thực thể 
Phát biểu 2 – Các trường đc tạo ra để thể hiện các thuộc tính của thực thể 
A) Phát biểu 2 là đúng 
B) Phát biểu 1 là đúng 
C) Cả 2 phát biểu đều đúng 
D) Không có phát biểu nào đúng 
23) Xác định khóa chính và khóa ngoại cho các bảng dưới đây 
Patient: Patient_Code , Patient_Name , Address , Age , Physician_Code (Bệnh 
135 
nhân) Prescription : Patient_Code , Drug , date , Amount , Caution , 
Physician_Code (Đơn thuốc) (1 Mark) 
A) Physician_Code , Patient_Code 
B) Patient_Code , Physician_Code 
C) Patient_Code , date 
D) Patient_Name , Patient_Code 
24) Những yếu tố nào dưới đây đc xem xét trong quá trình xác định khóa chính 
cho bảng ? (1 Mark) 
A) Tình đồng bộ và tính chính xác (Concurrency and accuracy) 
B) Tính tối thiểu và tính ổn định (Minimality and Stability) 
C) Tính tin cậy và tính đồng bộ (Reliability and concurrency) 
D) Tính tối thiểu và tính bảo mật (Minimalyti and Security) 
25) Tìm ra phát biểu đúng về toàn vẹn tham chiếu ? (Chọn1) (1 Mark) 
A) Toàn vẹn tham chiếu ko đảm bảo tính nhất quán về giá trị của trường khóa 
trong các bảng 
B) Toàn vẹn tham chiếu đảm bảo mối quan hệ giữa các bảng ko bị mất thao 
tác trên các bản ghi của chúng ta 
C) Toàn vẹn tham chiếu đảm bảo khi giá trị của trường khóa bị thay đổi , tất cả 
các tham chiếu đến nó cũng đc thay đổi theo 
26) Xác định phát biểu đúng về khóa chính? (Chọn3) (2 Mark) 
A) Ràng buộc khóa chính có thể đc thay đổi khi cần thiết 
B) Khi một khóa chính đc tham chiếu bởi 1 khóa ngoại , ta ko thể xóa khóa 
chính đó 
C) Một bảng có thể có nhiều hơn 1 khóa chính 
D) Khóa chính có chức năng phân biệt từng bản ghi trong bảng 
136 
27) Tìm ra phát biểu đúng ? (chọn2) (1 Mark) 
A) Để tạo mối quan hệ trên các bảng , các bảng đó phải có cùng số trường và 
các trường phải giống nhau về kiểu dữ liệu 
B) Các bảng có quan hệ với nhau dựa trên các trường chung 
C) Các bảng có quan hệ với nhau phải nằm trong cùng 1 CSDL 
D) Một mối quan hệ là một sự tương ứng giữa hai bản 
28) Toàn vẹn miền (Domain Integrity) trên một bảng có thể được thực hiện bởi 
bốn cơ chế 
A) Sai 
B) Đúng 
29) Bảo mật CSDL được thực hiện bởi DBA 
A) Sai 
B) Đúng (trang 7) 
30) Mô hình CSDL Flat – file gồm nhiều bảng 
A) Đúng 
B) Sai (Trang 10) 
31) Khóa ngoại là trường mà giá trị của nó trùng với khóa duy nhất (unique 
key), không trùng với khóa chính (primary key) 
A) Đúng 
B) Sai 
32) Để phân biệt từng bản ghi trong bảng, có thể sử dụng 
A) Primary key 
B) Foreign Key 
C) Unique key 
137 
33) Trong Sơ đồ thực thể quan hệ (ER-Diagram), hình elip dùng để thể hiện 
_________ 
A) Mối quan hệ giữa các thực thể 
B) Thực thể trong CSDL 
C) Thuộc tính của thực thể 
34) Đâu là cú pháp đúng cho hàm AVG (chọn 1) 
A) AVG([ALL|DISTNICT] Biểu thức) 
B) Tất cả lựa chọn ở trên 
C) AVG(Biểu thức) 
D) AVG([ALL]Biểu thức) 
E) AVG([DISTNICT] Biểu thức) 
35) DML viết tắt bởi 
A) Data Moulding Language 
B) Data Manipulation Language 
C) Data Modeling Language 
D) Data Marketing Language 
36) Dữ liệu kiểu image, text và ntext được lưu trữ dưới dạng một chuỗi các byte. 
A) Đúng 
B) Sai 
37) Giả sử bạn có một bảng tên là A, trong bảng đó có trường tên là ‘xyz’ với 
kiểu dữ liệu là int. Giá trị của tất cả các trường trong một bản ghi của bảng đó 
phải là giá trị số nguyên 
A) Đúng 
B) Sai 
138 
38) Trong câu truy vấn lấy dữ liệu từ hai bảng đã được join với nhau, kết quả trả 
về c 
nshuong ns: 
39) Toàn vẹn thực thể còn được gọi là _________ (chọn 1) 
A) Column Integrity (Toàn vẹn cột) 
B) Row Integrity (Toàn vẹn dòng) 
C) Table Integrity (Toàn vẹn bảng) 
D) Database Integrity (Toàn vẹn CSDL) 
40) Chỉ ra một số thuận lợi khi sử dụng CSDL tập trung (chọn 2) 
A) Dữ liệu có thể dùng chung cho nhiều người 
B) Làm tăng dữ liệu dư thừa trong CSDL 
C) Giảm thiểu dữ liệu không thống nhất trong CSDL 
D) Không thể tích hợp được dữ liệu 
E) Không cần bảo mật đối với CSDL tập trung 
41) Nhiều ràng buộc UNIQUE có thể được đặt trên một bảng 
A) Sai 
B) Đúng 
42) Phát biểu nào dưới đây là đúng về các hàm tập hợp (aggregate functions) 
(chọn 3) 
A) Các hàm tập hợp tạo ra dữ liệu ở dạng tổng hợp 
B) Cá 
43) Tìm ra phát biểu đúng về toàn vẹn tham chiếu (chọn 1) 
A) Toàn vẹn tham chiếu đảm bảo khi giá trị của trường khóa bị thay đổi, tất cả 
các tham chiếu đến nó cũng được thay đổi theo 
B) Toàn vẹn tham chiếu không đảm bảo tính nhất quán về giá trị của trường 
139 
khóa trong các bảng 
C) Toàn vẹn tham chiếu đảm bảo mối quan hệ giứa các bảng không bị mất khi 
thao tác trên các bản ghi của chúng 
44) Xác định phát biểu đúng về khóa chính (chọn 3) 
A) Khóa chính có chức năng phân biệt từng bản ghi trong bảng 
B) Khi đặt một trường là khóa chính, SQL Server 2000 kiểm tra xem liệu trường 
đó có chứa các giá trị trùng nhau hay không, các giá trị null được coi là hợp lệ. 
C) Ràng buộc khóa chính có thể được thay đổi được 
46) Câu nào dưới đây sai khi nói về hệ CSDL khách – chủ? 
A) Trong kiến trúc khách-chủ, các thành phần (của hệ 
            Các file đính kèm theo tài liệu này:
 giao_trinh_mo_dun_he_quan_tri_co_so_du_lieu_moi_nhat.pdf giao_trinh_mo_dun_he_quan_tri_co_so_du_lieu_moi_nhat.pdf