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 |
Chia sẻ: Thục Anh | Ngày: 12/05/2022 | Lượt xem: 851 | 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