You are on page 1of 48

Trường Đại Học Bách Khoa - Tp.

HCM
Khoa Khoa Học & Kỹ Thuật Máy Tính
***
Mã đề: 01

Đề thi cuối kỳ
Môn: Hệ Quản Trị Cơ Sở Dữ Liệu (503004)
Ngành: Khoa Học Máy Tính – HK1 – 2012-2013
Thời gian làm bài: 120 phút
(Bài thi gồm 45 câu hỏi. Sinh viên được tham khảo ghi chú trong 2 tờ giấy A4.)
Sinh viên chọn 1 câu trả lời đúng nhất. Nếu chọn câu (e) thì sinh viên cần trình bày đáp án khác
so với đáp án ở các câu (a), (b), (c), và (d) và/hoặc giải thích lựa chọn (e) của mình.

Câu 1. Hệ quản trị cơ sở dữ liệu (database thực hiện việc xử lý và tối ưu hóa cho câu truy vấn
management system, DBMS) là gì? này.
a. DBMS là một phần mềm hệ thống dùng giúp các b. Bộ tối ưu hóa truy vấn của Oracle không có đủ
chương trình ứng dụng được thực thi hiệu quả hơn. thông tin về các phương thức truy đạt trên dữ liệu của
b. DBMS là một phần mềm chuyên dụng dùng giúp người sử dụng.
quản lý dữ liệu của các chương trình ứng dụng hiệu c. Người sử dụng có nhiều thông tin hơn về tổ chức
quả hơn. dữ liệu (data organization) và các phương thức truy
c. DBMS là một phần mềm ứng dụng dùng giúp tận đạt (access method) trên dữ liệu của người sử dụng so
dụng sự hỗ trợ của hệ điều hành để tạo và quản lý với bộ tối ưu hóa truy vấn của Oracle. *
lượng lớn dữ liệu và các chương trình ứng dụng hiệu d. Quá trình xử lý truy vấn của Oracle được chuyển
quả theo thời gian. sang chế độ do người dùng chỉ định (user-specified
d. DBMS là một phần mềm chuyên dụng dùng giúp mode).
tạo và quản lý một lượng lớn dữ liệu hiệu quả và bền e. Ý kiến khác.
vững an toàn theo thời gian. *
e. Ý kiến khác. Câu 4. Chọn phát biểu ĐÚNG về sự liên hệ giữa
việc tổ chức tập tin dữ liệu và phương thức truy đạt
trên tập tin dữ liệu.
Câu 2. Đặc tính nào của giao tác luôn được bảo
toàn trong môi trường thực thi đơn người dùng? a. Tìm kiếm nhị phân có thể được thực hiện trên tập
a. Atomicity tin dữ liệu được tổ chức lưu trữ ở bất kỳ dạng nào.
b. Tìm kiếm tuyến tính có thể được thực hiện trên tập
b. Consistency
tin dữ liệu được tổ chức lưu trữ ở bất kỳ dạng nào. *
c. Isolation *
c. Tìm kiếm chỉ mục có thể được thực hiện trên tập
d. Durability tin dữ liệu được tổ chức lưu trữ ở bất kỳ dạng nào.
e. Ý kiến khác. d. Tìm kiếm băm có thể được thực hiện trên tập tin
dữ liệu được tổ chức lưu trữ ở bất kỳ dạng nào.
Câu 3. Trong hệ quản trị cơ sở dữ liệu Oracle, e. Ý kiến khác.
người sử dụng có thể sử dụng hints (/*+ …. */) để
dẫn hướng cho bộ tối ưu hóa truy vấn (query
Câu 5. Xác định chi phí truy đạt khối trung bình
optimization) trong quá trình xử lý truy vấn. Khi đó,
của việc tìm kiếm nhị phân trên tập tin dữ liệu có thứ
Oracle giả định điều gì sau đây?
tự (ordered file) khi điều kiện tìm kiếm trên vùng tin
a. Câu truy vấn có hints đã được định nghĩa trước sắp thứ tự (ordering field) là ―=‖. Cho biết b là số
trên dữ liệu của người sử dụng nên Oracle không cần khối dữ liệu hiện có trong tập tin.
a. O(1) Câu 7. Cho tập tin dữ liệu F1 gồm 6 khối dữ liệu
b. O(log2b) * chứa các bản ghi được sắp thứ tự vật lý theo các giá
trị của vùng tin khóa ID (key field) với hệ số phân
c. O(lnb)
khối (blocking factor) bfr = 2 bản ghi/khối. Một chỉ
d. O(b) mục dùng cấu trúc chỉ mục B+-tree với bậc p = 3,
e. Ý kiến khác. pleaf = 2 được định nghĩa trên vùng tin ID. Xác định
chỉ mục B+-tree ĐÚNG trên tập tin dữ liệu này. Giả
Câu 6. B+-tree được cho là có khả năng chỉ mục sử thứ tự các giá trị dùng xây dựng chỉ mục theo
cao (hiệu quả) hơn B-tree. Khả năng này KHÔNG đúng thứ tự trong tập tin, bắt đầu từ trên xuống dưới.
thể hiện qua việc: a. Hình 1
a. B+-tree có tổng số con trỏ dữ liệu nhiều hơn B-tree b. Hình 2 *
với cùng kích thước khối dữ liệu và chiều cao cây. c. Hình 3
b. B+-tree có tất cả nút lá ở cùng mức và liên kết với d. Hình 4
nhau; trong khi đó, B-tree cũng có tất cả nút lá ở
e. Ý kiến khác.
cùng mức nhưng các nút lá không liên kết với nhau.
c. B+-tree có cấu trúc của nút nội và nút lá khác nhau
Câu 8. Chỉ mục B+-tree ở câu 7 được gọi tên là gì?
do nút nội không chức con trỏ dữ liệu; trong khi đó,
B-tree có cấu trúc của nút nội và nút lá giống nhau. a. Chỉ mục sơ cấp (primary index) *
d. B+-tree có tổng số nút trong cây nhiều hơn hay ít b. Chỉ mục cụm (clustering index)
hơn B-tree. * c. Chỉ mục thứ cấp (secondary index)
e. Ý kiến khác. d. Không đủ chi tiết mô tả về chỉ mục này nên không
thể kết luận được dạng của chỉ mục này.
e. Ý kiến khác.

Câu 9. Cho một chỉ mục thứ cấp đa mức (multilevel


secondary index) trên thuộc tính khóa mã nhân viên
EID của tập tin dữ liệu Employee dùng cấu trúc B+-
tree trong Hình 5. Các bản ghi của tập tin được tổ
chức theo cách phân khối không phủ (unspanned
blocking) với hệ số phân khối (blocking factor) bfr =
3. Xác định số bản ghi hiện có (the current number
of records) trong tập tin dữ liệu Employee.
a. 4 bản ghi
b. 7 bản ghi
c. 10 bản ghi
d. 11 bản ghi *
e. Ý kiến khác.

Câu 10. Q là nhân viên hiện thời của tổ chức và có


mã nhân viên là 3. Nhân viên Q nghỉ việc và tổ chức
cần xóa thông tin về nhân viên Q. Khi này, chỉ mục
B+-tree là gì sau khi cập nhật việc xóa thông tin về
nhân viên Q này?
Tập tin dữ liệu F1 gồm 6 blocks với hệ số phân khối a. Hình 6
bfr = 2 bản ghi/khối và nội dung vùng tin khóa ID. b. Hình 7
c. Hình 8 *
2
d. Hình 9 bản ghi trong kết quả từ các con trỏ dữ liệu trong chỉ
e. Ý kiến khác. mục tính theo số truy đạt khối.
e. Ý kiến khác.
Câu 11. A là nhân viên mới của tổ chức và có mã
nhân viên là 14. Một bản ghi về A được thêm vào tập Câu 13. Cho công thức tính chi phí cho phép toán
tin Employee. Xác định số truy đạt khối (the number chọn (selection) dùng chỉ mục thứ cấp với cấu trúc
of block accesses) cần được thực hiện trên chỉ mục chỉ mục đa mức động B+-tree trong trường hợp điều
khi cập nhật thông tin chỉ mục cho bản ghi về A kiện chọn là điều kiện ―>=‖ trên thuộc tính được chỉ
trong chỉ mục B+-tree ở Hình 5. mục: C = x + bl1/2 + r/2; trong đó, x là số mức của
B+-tree, bl1 là số khối chỉ mục ở tầng lá, r là số bản
a. 3 *
ghi trong tập tin dữ liệu. Giả định (assumption) gì
b. 4 được sử dụng trong công thức này?
c. 5
a. Phân nửa số nút trong chỉ mục chứa các con trỏ dữ
d. 6 liệu chỉ đến các bản ghi trong kết quả của phép chọn.
e. Ý kiến khác. b. Phân nửa số bản ghi trong tập tin thỏa điều kiện
chọn. *
Câu 12. Cho công thức tính chi phí cho phép toán c. Phân nửa số khối chỉ mục ở tầng lá chính là số
chọn (selection) dùng chỉ mục cụm với cấu trúc chỉ khối chứa các bản ghi trong kết quả của phép chọn.
mục đa mức động B+-tree trong trường hợp điều kiện
d. Chỉ phân nửa số khối dữ liệu trong tập tin cần
chọn là điều kiện ―=‖ trên thuộc tính được chỉ mục: C
được kiểm tra điều kiện chọn.
= x + ┌s/bfr┐; trong đó, x là số mức của B+-tree, s là
số lượng bản ghi trả về trong kết quả của phép chọn, e. Ý kiến khác.
bfr là hệ số phân khối của tập tin ban đầu cũng như
tập tin kết quả. Ý nghĩa của x và ┌s/bfr┐ trong công Câu 14. Cho kích thước vùng đệm (buffer) là bf = 4
thức là gì? khối (blocks). Tập tin dữ liệu Employee gồm 100
khối dữ liệu (bE = 100 blocks). Tập tin dữ liệu
a. x là chi phí duyệt một khối ở từng mức trên chỉ
Department gồm 5 khối dữ liệu (bD = 5 blocks). Thực
mục để đến được khối chỉ mục chứa con trỏ dữ liệu
hiện phép kết với điều kiện kết bằng giữa thuộc tính
chỉ đến khối dữ liệu đầu tiên chứa kết quả tính theo
DNO của Employee và DNUMBER của Department:
số truy đạt khối; ┌s/bfr┐ là chi phí chọn từ tập tin dữ
Employee  DNO = DNUMBERDepartment. Nếu phép
liệu ra các khối dữ liệu chứa các bản ghi trong kết
kết này được xử lý bằng phương pháp hai vòng lặp
quả tính theo số truy đạt khối. *
lồng (nested-loop join) với vùng đệm bf đã cho thì
b. x là chi phí duyệt một khối ở từng mức trên chỉ Employee hay Department nên được duyệt ở vòng
mục để đến được khối chỉ mục chứa các con trỏ dữ lặp ngoài (outer loop)?
liệu đến các khối dữ liệu chứa kết quả tính theo số
truy đạt khối; ┌s/bfr┐ là chi phí chọn từ tập tin dữ a. Department nên ở vòng lặp ngoài (outer loop) do
liệu ra các bản ghi trong kết quả tính theo số truy đạt tổng số truy đạt khối là ít nhất (305 block accesses). *
khối. b. Department nên ở vòng lặp ngoài do tổng số truy
c. x là chi phí duyệt tất cả các khối ở từng mức trên đạt khối là ít nhất (350 block accesses).
chỉ mục để đến được khối chỉ mục chứa các con trỏ c. Employee ở vòng lặp ngoài do tổng số truy đạt
dữ liệu tính theo số truy đạt khối; ┌s/bfr┐ là chi phí khối là ít nhất (305 block accesses).
chọn từ tập tin dữ liệu ra các khối dữ liệu chứa các d. Employee ở vòng lặp ngoài do tổng số truy đạt
bản ghi trong kết quả từ các con trỏ dữ liệu trong chỉ khối là ít nhất (350 block accesses).
mục tính theo số truy đạt khối. e. Ý kiến khác.
d. x là chi phí duyệt một số khối ở từng mức trên chỉ
mục để đến được các khối chỉ mục chứa các con trỏ
dữ liệu tính theo số truy đạt khối; ┌s/bfr┐ là chi phí Phần giả thiết sau được sử dụng cho các câu 15-17.
chọn từ tập tin dữ liệu ra các khối dữ liệu chứa các Cho lược đồ cơ sở dữ liệu gồm hai bảng
EMPLOYEE (ứng với tập tin dữ liệu EMPLOYEE)

3
và DEPARTMENT (ứng với tập tin dữ liệu (xSALARY = 3), số lượng khối ở tầng cơ sở (tầng lá)
DEPARTMENT) được định nghĩa dưới đây. Các bl1SALARY = 20 blocks, và lượng bản ghi được chọn
thông tin cho việc truy đạt dữ liệu trong các tập tin dữ trung bình (average selection cardinality) sSALARY =
liệu EMPLOYEE và DEPARTMENT cũng được cho 20.
tương ứng.
Trên thuộc tính không khóa DNO, một chỉ mục thứ
cấp (secondary index) được định nghĩa gồm 2 mức
CREATE TABLE EMPLOYEE (
(xDNO = 2), số lượng khối ở tầng cơ sở (tầng lá)
FNAME VARCHAR(15) NOT NULL, bl1DNO = 4 blocks, số lượng giá trị phân biệt tại thuộc
MINIT CHAR, tính DNO là dDNO = 80, và lượng bản ghi được chọn
LNAME VARCHAR(15) NOT NULL, trung bình sDNO = rE/dDNO = 62.
SSN CHAR(9) NOT NULL,
Tập tin DEPARTMENT có:
BDATE DATE,
ADDRESS VARCHAR(30), Số lượng bản ghi rD = 80 records.
SEX CHAR, Số lượng khối bD = 10 blocks.
SALARY DECIMAL(10,2), Hệ số phân khối bfrD = 8 records/block.
SUPERSSN CHAR(9),
Trên thuộc tính khóa DNUMBER, một chỉ mục sơ
DNO INT NOT NULL, cấp được định nghĩa gồm 1 mức (xDNUMBER = 1) với
PRIMARY KEY (SSN), lượng bản ghi được chọn trung bình là sDNUMBER = 1.
FOREIGN KEY (SUPERSSN) REFERENCES
EMPLOYEE (SSN), Trên thuộc tính không khóa MGRSSN, một chỉ mục
FOREIGN KEY (DNO) REFERENCES thứ cấp được định nghĩa gồm 2 mức (xMGRSSN = 2)
DEPARTMENT (DNUMBER)); với lượng bản ghi được chọn trung bình là sMGRSSN =
1 và số lượng khối ở tầng cơ sở là bl1MGRSSN = 2.
CREATE TABLE DEPARTMENT (
DNAME VARCHAR(15) NOT NULL, Cho trước các hàm tính chi phí của phép chọn và
DNUMBER INT NOT NULL, phép kết như sau:
MGRSSN CHAR(9) NOT NULL,
MGRSTARTDATE DATE, Cost Functions for SELECT:
PRIMARY KEY (DNUMBER),
UNIQUE (DNAME), S1. Linear search (brute force) approach:
FOREIGN KEY (MGRSSN) REFERENCES CS1a= b
EMPLOYEE (SSN)); For an equality condition on a key, CS1b = (b/2) if
the record is found; otherwise CS1a= b.
Tập tin EMPLOYEE có: S2. Binary search:
CS2= log2b + ┌ (s/bfr) ┐- 1
Số lượng bản ghi rE = 5000 records.
Số lượng khối bE = 1000 blocks. For an equality condition on a unique (key)
Hệ số phân khối bfrE = 5 records/block. attribute: CS2 =log2b
S3. Using a primary index (S3a) or hash key
Trên thuộc tính khóa SSN, một chỉ mục thứ cấp (S3b) to retrieve a single record:
(secondary index) được định nghĩa gồm 3 mức (xSSN CS3a= x + 1; CS3b = 1 for static or linear hashing;
= 3) với lượng bản ghi được chọn trung bình là sSSN = CS3b = 2 for extendible hashing
1 và số lượng khối ở tầng cơ sở (tầng lá) là bl1SSN =
30. S4. Using an ordering index to retrieve
multiple records:
Trên thuộc tính không khóa SALARY, một chỉ mục For the comparison condition on a key field with
cụm (clustering index) được định nghĩa gồm 3 mức an ordering index: CS4= x + (b/2)

4
S5. Using a clustering index to retrieve trên tối ưu hóa truy vấn dùng chi phí, kế hoạch thực
multiple records for an equality condition: thi (execution plan) nào sau đây là hợp lý nhất cho
CS5= x + ┌ (s/bfr) ┐ biểu thức truy vấn này?
S6. Using a secondary (B+-tree) index: a. Phương pháp tìm kiếm tuyến tính trên vùng tin
For an equality comparison (=): CS6a= x + s DNUMBER với chi phí là 10 block accesses.
For a comparison condition (>, <, >=, or <=): b. Phương pháp chỉ mục sơ cấp trên vùng tin
DNUMBER với chi phí là 6 block accesses. *
CS6b= x + (bl1/2) + (r/2)
c. Phương pháp tìm kiếm nhị phân trên vùng tin
DNUMBER với chi phí là 4 block accesses.
Cost Functions for JOIN:
d. Phương pháp chỉ mục sơ cấp trên vùng tin
J1. Nested-loop join: DNUMBER với chi phí là 2 block accesses.
CJ1 = bR+ (bR*bS) + ((js* |R|* |S|)/bfrRS) e. Ý kiến khác.
(Use R for outer loop)
J2. Single-loop join(using an access structure to Câu 17. Cho câu lệnh SQL như sau:
retrieve the matching record(s))
For a secondary index: SELECT *
FROM EMPLOYEE AS E JOIN DEPARTMENT
CJ2a = bR+ (|R| * (xB+ sB)) + ((js* |R|* |S|)/bfrRS)
AS D ON E.SSN = D.MGRSSN;
For a clustering index:
CJ2b = bR + (|R| * (xB+ (sB/bfrB))) + ((js* |R|* Cho trước độ chọn lọc kết (join selectivity) dành cho
|S|)/bfrRS) biểu thức truy vấn trên là js = 1/rE = 1/5000; hệ số
For a primary index: phân khối của tập tin kết quả kết từ biểu thức truy
vấn trên là bfrED = 6 records/block.
CJ2c = bR + (|R| * (xB+ 1)) + ((js* |R|* |S|)/bfrRS)
Khi xử lý biểu thức truy vấn trên dùng phương pháp
If a hash key exists for one of the two join kết một vòng lặp (single-loop join) dựa trên tối ưu
attributes — B of S: hóa truy vấn dùng chi phí, kế hoạch thực thi
CJ2d = bR + (|R| * h) + ((js* |R|* |S|)/bfrRS) (execution plan) nào sau đây là hợp lý nhất cho biểu
(h: the average number of block accesses to retrieve a thức truy vấn này?
record, given its hash key value, h>=1) a. Tập tin EMPLOYEE được duyệt trên vòng lặp và
J3. Sort-merge join: tập tin DEPARTMENT được truy đạt với chỉ mục
CJ3a = CS + bR+ bS + ((js* |R|* |S|)/bfrRS) thứ cấp trên vùng tin MGRSSN. Khi đó, chi phí là
(CS: cost for sorting files) 16014 block accesses.
b. Tập tin EMPLOYEE được duyệt trên vòng lặp và
Câu 15. Cho biểu thức truy vấn chọn ra những nhân tập tin DEPARTMENT được truy đạt với chỉ mục
viên có lương bằng 1000 hoặc ở những phòng ban có thứ cấp trên vùng tin MGRSSN. Khi đó, chi phí là
mã là 5: SALARY=1000 OR DNO=5(EMPLOYEE). Xác 21014 block accesses.
định chi phí của bản kế hoạch thực thi được chọn c. Tập tin DEPARTMENT được duyệt trên vòng lặp
nếu dùng tối ưu hóa truy vấn dựa trên chi phí (cost- và tập tin EMPLOYEE được truy đạt với chỉ mục thứ
based optimization). cấp trên vùng tin SSN. Khi đó, chi phí là 344 block
a. 7 block accesses accesses. *
b. 64 block accesses d. Tập tin DEPARTMENT được duyệt trên vòng lặp
và tập tin EMPLOYEE được truy đạt với chỉ mục thứ
c. 71 block accesses * cấp trên vùng tin SSN. Khi đó, chi phí là 264 block
d. 1000 block accesses accesses.
e. Ý kiến khác. e. Ý kiến khác.

Câu 16. Cho biểu thức truy vấn chọn ra phòng ban
có mã lớn hơn 5: DNUMBER>5(DEPARTMENT). Dựa
5
Câu 18. Chọn phát biểu ĐÚNG NHẤT về cơ chế xử a. Điểm mà khi đó, tất cả các tác vụ của T đã được
lý của bộ tối ưu hóa truy vấn dùng qui tắc biến đổi thực hiện thành công và những tác động của T lên cơ
heuristic (heuristic rule-based query optimizer). sở dữ liệu đã được ghi nhận trong sổ ghi hệ thống
(system log). *
a. Ưu tiên thực hiện phép chọn trước phép kết.
b. Điểm mà khi đó, tất cả các tác vụ của T đã được
b. Ưu tiên xử lý tập tin dữ liệu nhỏ trước tập tin dữ
thực hiện thành công và những tác động của T lên cơ
liệu lớn.
sở dữ liệu đã được ghi nhận trong cơ sở dữ liệu.
c. Ưu tiên thực hiện các phép toán trả về kết quả
c. Điểm mà khi đó, tất cả các tác vụ của T đã được
(trung gian) ít hơn trước các phép toán trả về kết quả
tháo gỡ thành công và những tác động của T lên cơ
nhiều hơn. *
sở dữ liệu đã được xóa khỏi sổ ghi hệ thống.
d. Ưu tiên thực hiện phép kết trước phép tích
d. Điểm mà khi đó, tất cả các tác vụ của T đã được
Cartesian.
tháo gỡ thành công và những tác động của T lên cơ
e. Ý kiến khác. sở dữ liệu đã được xóa khỏi cơ sở dữ liệu.
e. Ý kiến khác.
Câu 19. Điểm giống nhau giữa tối ưu hóa truy vấn
dùng qui tắc biến đổi heuristic và tối ưu hóa truy vấn
Câu 22. Cho các trình tự thực thi của các tác vụ trong
dùng chi phí là:
các giao tác khác nhau. Xác định trình tự thực thi
a. Tối ưu hóa truy vấn dùng qui tắc biến đổi heuristic ĐÚNG là một lịch biểu (schedule).
và tối ưu hóa truy vấn dùng chi phí cho biết phương Giao tác T1: w1(X); r1(Y); w1(Y); r1(X)
thức truy đạt (access method) cụ thể nào là hiệu quả Giao tác T2: r2(Y); r2(X); w2(X); w2(Y)
và sẽ được dùng để thực hiện mỗi tác vụ.
a. Trình tự S1: r1(X); r2(Y); w2(Y); w1(X); r1(Y);
b. Tối ưu hóa truy vấn dùng qui tắc biến đổi heuristic r2(X); w2(X); w1(Y)
và tối ưu hóa truy vấn dùng chi phí đều là quá trình
b. Trình tự S2: w1(X); r2(Y); r2(X); r1(Y); w1(Y);
tìm ra một bản kế hoạch thực thi (execution plan) tốt
w2(X); w2(Y); r1(X) *
nhất có thể trong quá trình xử lý truy vấn. *
c. Trình tự S3: r2(Y); r2(X); r1(X); r1(Y); w1(X);
c. Tối ưu hóa truy vấn dùng qui tắc biến đổi heuristic
w1(Y); w2(X); w2(Y)
chính là một dạng của tối ưu hóa truy vấn dùng chi
phí; tuy nhiên, chi phí trong tối ưu hóa truy vấn dùng d. Trình tự S4: r2(Y); w2(Y); w1(X); r1(X); r1(Y);
qui tắc biến đổi heuristic không được tính toán cụ thể w1(Y); r2(X); w2(X)
và tường minh. e. Ý kiến khác.
d. Tối ưu hóa truy vấn dùng qui tắc biến đổi heuristic
và tối ưu hóa truy vấn dùng chi phí đều được sử dụng Câu 23. Cho lịch biểu S5: r1(X); r2(Z); r1(Z); r3(X);
phổ biến trong các hệ quản trị cơ sở dữ liệu ngày nay. r3(Y); w1(X); w3(Y); r2(Y); w2(Z); w2(Y); c1; c2; c3.
e. Ý kiến khác. Xác định đặc điểm khả phục hồi (recoverability) của
S5.
Câu 20. Một giao tác (transaction) có thể bị ngưng a. Khả phục hồi (recoverable)
thực thi giữa chừng (aborted) trong tình huống nào? b. Không dắt dây (cascadeless)
a. Lỗi từ các tác vụ đọc/ghi dữ liệu trong giao tác xảy c. Nghiêm cách (strict)
ra. d. Không khả phục hồi (non-recoverable) *
b. Lỗi tắt nguồn xảy ra. e. Ý kiến khác.
c. Yêu cầu ngưng thực thi từ trình điều khiển tương
tranh (concurrency controller) được thực hiện. Câu 24. Cho lịch biểu S6: r2(X); r1(Y); w2(X); r3(X);
d. Câu a, b, và c đều đúng. * w1(Y); r2(Y); w3(X); w2(Y). Xác định đặc điểm khả
e. Ý kiến khác. tuần tự hóa (serializability) của S6.
a. S6 không khả tuần tự hóa (non-serializable)
Câu 21. Chọn phát biểu ĐÚNG về commit point của b. S6 khả tuần tự hóa xung đột (conflict serializable)
một giao tác T. *
6
c. Thông tin mô tả về lịch biểu S6 không đầy đủ nên e. Ý kiến khác.
không thể xác định được đặc điểm khả tuần tự hóa
của S6. Trình tự thực thi của T1 và T2 trong môi trường đa
d. S6 không có đặc điểm khả tuần tự hóa. người dùng không có điều khiển tương tranh:
e. Ý kiến khác. T1 T2 X (DB) Y (DB)
5 10
Read_item(X);
Câu 25. Lịch biểu S7 là một lịch biểu khả tuần tự hóa
Read_item(Y);
nghiêm cách (serializable and strict schedule). Chọn
Read_item(X);
phát biểu SAI về lịch biểu S7.
X := X-5;
a. Tồn tại một lịch biểu tuần tự tương đương Write_item(X); 0
(equivalent serial schedule) với lịch biểu S7. Read_item(X);
b. Sổ ghi hệ thống (system log) không cần có mục tin Read_item(Y);
(entry) về các tác vụ đọc (read operation) của các Y := Y * 2;
giao tác trong lịch biểu S7. Write_item(Y); 20
c. Khi một giao tác trong lịch biểu S7 bị ngưng thực Commit;
thi (aborted), không có giao tác nào khác trong lịch Commit;
biểu S7 cùng bị ngưng thực thi kéo theo.
d. Việc phục hồi dành cho lịch biểu S7 sẽ khó khăn Câu 28. Xác định giao tác mà trong đó, kỹ thuật khóa
hơn so với các lịch biểu khả tuần tự hóa không dắt hai pha (two-phase locking) được sử dụng ĐÚNG.
dây (serializable and cascadeless schedule). * a. Giao tác T1 *
e. Ý kiến khác.
Read_lock(X)
Câu 26. Cho lịch biểu S8: r2(A); r1(B); w2(A); r3(A); Read_item(X)
w1(B); w3(A); r2(B); w2(B). Xác định lịch biểu tuần Write_lock(Y)
tự tương đương (equivalent serial schedule) của S8
nếu có. Read_item(Y)
a. T3; T1; T2 Unlock(X)
b. T1; T2; T3 * Write_item(Y)
c. T3; T2; T1 Unlock(Y)
d. S không khả tuần tự hóa. Do đó, không tồn tại lịch
biểu tuần tự tương đương của S8.
e. Ý kiến khác. b. Giao tác T2
Read_lock(X)
Câu 27. Cho X = 5 và Y = 10 trong cơ sở dữ liệu Read_item(X)
(database - DB). Hai giao tác T1 và T2 thực thi đồng
thời trong môi trường đa người dùng nhưng điều Read_lock(X)
khiển tương tranh không được thực hiện như sau. Read_item(Y)
Giá trị hiện tại của X là 0 và giá trị hiện tại của Y là Unlock(X)
20 trong cơ sở dữ liệu. Sự thực thi đồng thời của 2
giao tác T1 và T2 gặp phải vấn đề tương tranh nào c. Giao tác T3
sau đây?
Write_lock(X)
a. Lost update
Read_item(X)
b. Temporary update/dirty read
c. Unrepeatable read * Write_lock(Y)
d. Phantom
7
Câu 30. Biến thể nào của kỹ thuật khóa hai pha
Write_item(Y)
không có khóa chết xảy ra khi thực hiện điều khiển
Unlock(Y) tương tranh việc thực thi đồng thời của các giao tác?
Write_item(X) a. Bảo thủ (conservative) *
Unlock(X) b. Nghiêm cách (strict)
c. Gia tăng/cơ bản (incremental/basic)
Unlock(Y)
d. Do kỹ thuật khóa hai pha sử dụng khóa để điều
khiển tương tranh nên khóa chết không thể tránh
d. Giao tác T4 được trong tất cả các biến thể của kỹ thuật khóa hai
Read_lock(X) pha.
e. Ý kiến khác.
Write_item(X)
Write_lock(Y) Câu 31. Điều gì ĐÚNG về sự tương thích khóa trong
Unlock(X) điều khiển tương tranh bằng kỹ thuật khóa hai pha đa
phiên bản với khóa chứng nhận (multiversion two-
Write_item(Y) phase locking using certify locks)?
Unlock(Y) a. Khóa đọc tương thích với khóa ghi nên nếu T1
đang giữ khóa ghi trên X để thực hiện tác vụ write(X)
e. Ý kiến khác. thì T2 vẫn có thể có được khóa đọc trên X để thực
hiện tác vụ read(X).
Câu 29. Cho lịch biểu S9 như sau. Trong lịch biểu b. Khóa ghi không tương thích với khóa ghi nên chỉ
S9, điều khiển tương tranh của các giao tác được thực có tối đa một khóa ghi trên X. Tác vụ write(X) của
hiện với kỹ thuật khóa hai pha. Khóa chết (deadlock) giao tác T1 sẽ bị từ chối nếu có giao tác T2 khác
có xảy ra với lịch biểu S9 không? đang giữ khóa ghi trên X.
c. Khóa ghi tương thích với khóa đọc nên giao tác T1
Lịch biểu S9: có thể có khóa ghi để thực hiện tác vụ write(X) trong
T1 T2 T3 khi các giao tác T2 khác đang giữ khóa đọc để thực
read_lock(A) hiện tác vụ read(X).
read_item(A) d. Câu a, b, và c đều đúng. *
write_lock(B) e. Ý kiến khác.
write_item(B)
read_lock(B)
read_lock(C) Câu 32. Cho lịch biểu S10 sau đây mà trong đó, các
read_item(C) giao tác T1 và T2 thực thi đồng thời dưới kỹ thuật
write_lock( C) điều khiển tương tranh khóa hai pha đa phiên bản với
khóa chứng nhận.

a. Không đủ thông tin về các giao tác để xác định liệu Lịch biểu S10:
khóa chết có xảy ra hay không. T1 T2
b. Chỉ khi các giao tác đạt đến điểm commit, thông Write_lock(Y)
tin về việc thực thi của các giao tác trong S9 mới có Read_lock(Y)
đầy đủ và khi đó, việc xác định liệu khóa chết có xảy Read_lock(X)
ra hay không mới được xác định đúng. Read_item(Y)
c. Có Write_item(Y)
d. Không * Read_item(X)
e. Ý kiến khác. Write_lock(X)
Certify_lock(Y)

8
Giao tác T1 có thể có được certify lock trên dữ liệu Y b. Giao tác T1 già hơn T3 và T4 đã đọc và ghi dữ liệu
trước khi T1 commit hay không? trước khi T3 ghi dữ liệu và T4 đọc dữ liệu. Do đó,
thứ tự đúng của các giao tác trong lịch biểu tuần tự
a. T1 không thể có được certify lock trên Y do T2 đã
tương đương bị vi phạm nên T3 và T4 bị ngưng và
đọc dữ liệu Y trước khi T1 cập nhật dữ liệu Y.
quay lui.
b. T1 có được certify lock trên Y do certify lock
c. Giao tác T3 ghi dữ liệu chậm hơn giao tác T1 và
tương thích với read lock và xung đột loại trừ với
T2 nên tác vụ ghi dữ liệu của T3 không cần thiết nữa
write lock và T2 chỉ giữ read lock trên Y.
nên T3 bị ngưng và quay lui; trong khi đó, T4 đọc dữ
c. T1 không thể có được certify lock trên Y do giao liệu từ cập nhật của T2 nhưng T2 chưa commit nên
tác T2 đang giữ read lock trên Y. * T4 cũng bị ngưng và quay lui.
d. Không đủ thông tin mô tả về lịch biểu nên không d. Giao tác T3 và T4 ghi và đọc dữ liệu từ các cập
thể xác định được liệu T1 có thể có được certify lock nhật của giao tác T1 và T2 nhưng T1 và T2 chưa
trên dữ liệu Y hay không. commit nên T3 và T4 bị ngưng và quay lui.
e. Ý kiến khác. e. Ý kiến khác.

Câu 33. Xác định lịch biểu tuần tự tương đương Câu 35. Cho lịch biểu S12 trong Bảng 1 mà trong
(equivalent serial schedule) với lịch biểu S11 sau đây đó, việc điều khiển tương tranh của các giao tác được
khi các giao tác của S11 được điều khiển tương tranh thực hiện bằng kỹ thuật đa phiên bản dựa trên sắp thứ
bằng kỹ thuật sắp thứ tự theo nhãn thời gian tự theo nhãn thời gian (multiversion technique based
(timestamp ordering). on timestamp ordering). Việc gì xảy ra khi giao tác
T3 đọc A, nghĩa là r3(A) diễn ra?
Lịch biểu S11:
T1 T2 T3 T4 A a. Giao tác T3 bị ngưng thực thi (aborted) do A đã
TS=150 TS=300 TS=175 TS=225 Read_TS=0; được cập nhật bởi giao tác T2 trẻ hơn.
Write_TS=0 b. Tác vụ đọc của giao tác T3 bị trì hoãn thực thi
R1(A) Read_TS=150 (delayed) cho đến khi giao tác T2 đã ghi A commit.
W1(A) Write_TS=150 c. Tác vụ đọc của giao tác T3 được thực hiện với
R2(A) Read_TS=300 phiên bản A0. *
W2(A) Write_TS=300
d. Tác vụ đọc của giao tác T3 được thực hiện với
W3(A) phiên bản A200.
Abort
R4(A) e. Ý kiến khác.
Abort
Câu 36. Cũng xem xét lịch biểu S12 trong Bảng 1
mà trong đó, việc điều khiển tương tranh của các giao
a. T1; T2; T3; T4
tác được thực hiện bằng kỹ thuật đa phiên bản dựa
b. T1; T3; T4; T2 * trên sắp thứ tự theo nhãn thời gian (multiversion
c. T1; T4; T3; T2 technique based on timestamp ordering). Việc gì xảy
d. T1; T2; T4; T3 ra khi giao tác T1 ghi A, nghĩa là w1(A) diễn ra?
e. Ý kiến khác. a. Phiên bản A150 được tạo ra với nhãn thời gian đọc
và ghi tương ứng là Read_TS = 150 và Write_TS =
Câu 34. Trong lịch biểu S11, tại sao T3 bị ngưng 150.
(abort) và quay lui (rollback) và sau đó, T4 cũng bị b. Tác vụ ghi của giao tác T1 được bỏ qua (ignored)
ngưng và quay lui? do giao tác T2 trẻ hơn đã ghi A trước.
a. Giao tác T2 trẻ hơn T3 và T4 đã đọc và ghi dữ liệu c. Tác vụ ghi của giao tác T1 được trì hoãn (delayed)
trước khi T3 ghi dữ liệu và T4 đọc dữ liệu. Do đó, cho đến khi giao tác T2 trẻ hơn đã ghi A trước
thứ tự đúng của các giao tác trong lịch biểu tuần tự commit.
tương đương bị vi phạm nên T3 và T4 bị ngưng và d. Tác vụ ghi của giao tác T1 không thể tạo phiên bản
quay lui. * A150 và bị từ chối (rejected) và giao tác T1 bị ngưng
9
thực thi và quay lui do phiên bản A0 gần nhất với
giao tác T1 đã được đọc bởi giao tác T2 trẻ hơn T1. *
e. Ý kiến khác.

Câu 37. Giả định (assumption) gì được sử dụng


trong kỹ thuật điều khiển tương tranh xác nhận hợp lệ
lạc quan (validation (optimistic) concurrency control
technique)?
a. Không có giả định gì về sự can thiệp lẫn nhau giữa
các giao tác trong lịch biểu.
b. Không tồn tại sự can thiệp lẫn nhau giữa các giao
tác trong lịch biểu.
c. Sự can thiệp lẫn nhau (interference) giữa các giao Ma trận tương thích khóa của kỹ thuật khóa đa mức
tác trong lịch biểu thấp. * dữ liệu
d. Sự can thiệp lẫn nhau giữa các giao tác trong lịch
biểu cao. Câu 40. Cho phân cấp cơ sở dữ liệu trong Hình 10.
e. Ý kiến khác. Giao tác T1 thực hiện các tác vụ sau: đọc tập tin f2 và
cập nhật bản ghi r221. Xác định việc khóa đa mức dữ
liệu được thực hiện trong T1 với kỹ thuật khóa đa
Câu 38. Trong kỹ thuật điều khiển tương tranh xác
mức dữ liệu.
nhận hợp lệ lạc quan, việc cập nhật dữ liệu X của một
giao tác T sẽ được thực hiện như thế nào?
a. IX(db)
a. Giá trị mới của dữ liệu X được ghi nhận vào cơ sở
S(f2)
dữ liệu và các giao tác khác có thể thấy cập nhật này
khi đọc dữ liệu X từ cơ sở dữ liệu. IX(p22)
b. Giá trị mới của dữ liệu X được ghi nhận thành các Read(f2)
phiên bản cục bộ của giao tác T và các giao tác khác X(r221)
không thể thấy cập nhật này khi đọc dữ liệu X. * Write(r221)
c. Giá trị mới của dữ liệu X được ghi nhận vào sổ ghi Unlock(r221)
hệ thống (system log) và các giao tác khác có thể thấy Unlock(p22)
cập nhật này từ việc đọc sổ ghi hệ thống.
Unlock(f2)
d. Giá trị mới của dữ liệu X được ghi nhận thành các
phiên bản cục bộ của giao tác T và các giao tác khác Unlock(db)
có thể thấy cập nhật này khi liên lạc với giao tác T.
e. Ý kiến khác. b. IX(db) *
SIX(f2)
Câu 39. Trong ma trận tương thích khóa (lock IX(p22)
compatibility matrix) dưới đây của kỹ thuật khóa đa X(r221)
mức dữ liệu (multiple granularity locking technique),
Read(f2)
khóa IX (intention-exclusive) tương thích với khóa
nào? Write(r221)
Unlock(r221)
a. IS *
Unlock(p22)
b. S
Unlock(f2)
c. SIX
Unlock(db)
d. X
e. Ý kiến khác.
c. IX(db)
10
IX(f2) b. *
IX(p22) [start_transaction, T2]
X(r221) [start_transaction, T3]
Read(p22) [write_item, T2, Z, old_value, new_value]
[write_item, T3, Y, old_value, new_value]
Write(r221)
[write_item, T2, Y, old_value, new_value]
Unlock(r221) [commit, T3]
Unlock(p22) [commit, T2]
Unlock(f2)
Unlock(db) c.
[start_transaction, T2]
d. IX(db) [start_transaction, T3]
SIX(f2) [write_item, T2, Z, old_value]
Read(f2) [write_item, T3, Y, old_value]
[write_item, T2, Y, old_value]
Unlock(f2)
[commit, T3]
Unlock(db) [commit, T2]
IX(db)
IX(f2) d. Do đặc điểm khả phục hồi và khả tuần tự hóa của
IX(p22) lịch biểu S13 không rõ ràng nên không thể xác định
X(r221) được nội dung của sổ ghi hệ thống tương ứng với
Write(r221) trình tự thực thi của lịch biểu S13.
Unlock(r221) e. Ý kiến khác.
Unlock(p22)
Câu 42. Cho lịch biểu S14 như sau. Giả sử ngay sau
Unlock(f2) khi T1 commit, hệ thống gặp lỗi và giao tác T2 bị
Unlock(db) ngưng thực thi (abort). Các thao tác phục hồi gì cần
xem xét cho các giao tác T1 và T2 khi hệ thống trở
e. Ý kiến khác. lại bình thường? Ghi chú: W1(D, 20, 25) có nghĩa là
giao tác T1 cập nhật dữ liệu D từ giá trị cũ 20 sang
giá trị mới 25.
Câu 41. Cho lịch biểu S13: r2(Z); r3(X); r2(Y); r3(Y);
w2(Z); w3(Y); w2(Y); c3; c2. Xác định nội dung của sổ
Lịch biểu S14:
ghi hệ thống (system log) tương ứng với trình tự thực
T1 T2 T3
thi của lịch biểu S13.
R2(C)
a. W2(B, 15, 12)
[start_transaction, T2] R3(B)
[read_item, T2, Z] W3(B, 12, 18)
[start_transaction, T3] R1(A)
[read_item, T3, X] R1(D)
[read_item, T2, Y] W1(D, 20, 25)
[read_item, T3, Y] R3(D)
[write_item, T2, Z, old_value, new_value] W3(D, 25, 26)
[write_item, T3, Y, old_value, new_value] R2(A)
[write_item, T2, Y, old_value, new_value] W2(A, 30, 22)
[commit, T3] Commit
[commit, T2] Abort

11
a. Tái thực hiện (redo) cần xem xét cho T1 và tháo gỡ Câu 44. Cũng xem xét lịch biểu S14 ở câu 42. Giả sử
(undo) cần xem xét cho T2. * cần tháo gỡ cho tác vụ W1(D, 20, 25). Việc tháo gỡ
b. Tháo gỡ cần xem xét cho T1 và tái thực hiện cần này sẽ làm gì với D trong cơ sở dữ liệu?
xem xét cho T2. a. Cập nhật giá trị của D thành 25.
c. Tái thực hiện và tháo gỡ đều cần xem xét cho mỗi b. Cập nhật giá trị của D thành 20. *
giao tác: T1 và T2. c. Cập nhật giá trị của D từ 20 sang 25.
d. Không cần xem xét thực hiện phục hồi gì do T1 đã d. Cập nhật giá trị của D từ 25 sang 20.
commit nên đã được hệ thống ghi nhận các cập nhật e. Ý kiến khác.
vào cơ sở dữ liệu; trong khi đó, T2 chưa commit nên
các cập nhật của T2 chưa được ghi nhận vào cơ sở dữ Câu 45. Cũng xem xét lịch biểu S14 ở câu 42. T3 sẽ
liệu. thế nào sau khi T2 bị ngưng thực thi (abort) và quay
e. Ý kiến khác. lui (rollback)?
a. T3 sẽ tiếp tục thực thi đến khi đạt điểm commit của
Câu 43. Cũng xem xét lịch biểu S14 ở câu 42. Giả sử T3.
cần tái thực hiện cho tác vụ W1(D, 20, 25). Việc tái b. T3 sẽ tiếp tục thực thi đến khi hệ thống ngưng
thực hiện này sẽ làm gì với D trong cơ sở dữ liệu? hoàn toàn.
a. Cập nhật giá trị của D thành 25. * c. T3 sẽ bị ngưng thực thi và quay lui do T3 đã đọc
b. Cập nhật giá trị của D thành 20. dữ liệu B mà dữ liệu này đã được cập nhật bởi giao
c. Cập nhật giá trị của D từ 20 sang 25. tác T2 trước đó nhưng đã bị ngưng thực thi. *
d. Cập nhật giá trị của D từ 25 sang 20. d. T3 sẽ bị ngưng thực thi và quay lui do T3 đã đọc
dữ liệu D mà dữ liệu này được cập nhật bởi giao tác
e. Ý kiến khác.
T1 trước đó nhưng khi đó T1 vẫn chưa commit.
e. Ý kiến khác.

Hình 1 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 được tạo trên vùng tin khóa ID (Câu 7.a)

Hình 2 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 được tạo trên vùng tin khóa ID (Câu 7.b)

12
Hình 3 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 được tạo trên vùng tin khóa ID (Câu 7.c)

Hình 4 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 được tạo trên vùng tin khóa ID (Câu 7.d)

Hình 5 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 (Câu 9, 10, và 11)

Hình 6 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 sau khi cập nhật xóa nhân viên Q có mã nhân viên là 3
(Câu 10.a)

13
Hình 7 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 sau khi cập nhật xóa nhân viên Q có mã nhân viên là 3
(Câu 10.b)

Hình 8 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 sau khi cập nhật xóa nhân viên Q có mã nhân viên là 3
(Câu 10.c)

Hình 9 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 sau khi cập nhật xóa nhân viên Q có mã nhân viên là 3
(Câu 10.d)

14
Hình 10 – Phân cấp dữ liệu (Câu 40)

Bảng 1 – Lịch biểu S12 với kỹ thuật điều khiển tương tranh đa phiên bản dùng sắp thứ tự
theo nhãn thời gian (Câu 35, 36)
T1 T2 T3 A0 A200
TS=150 TS=200 TS=175 Read_TS=0; Read_TS=200;
Write_TS=0 Write_TS=200
r1(A) Read_TS=150
r2(A) Read_TS=200
w2(A) Created
r3(A)
w1(A)

15
Họ - Tên: ……………………………………………………………………………….
Mã Số Sinh Viên: ………………………………………………………………………

Phần trả lời:

Câu 1 - 15:
Câu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
a x x x x
b x x x x
c x x x x
d x x x
e

Câu 16 - 30:
Câu 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
a x x x
b x x x x x
c x x x
d x x x x
e

Câu 31 - 45:
Câu 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
a x x x x
b x x x x x
c x x x x
d x x
e

Phần giải thích đáp án (e) nếu có:

16
Môn: Hệ Quản Trị Cơ Sở Dữ Liệu (503004)
Học kỳ 1 - 2012-2013
Ngày thi: 25/12/2012
Phòng thi: 503 C4
Mã đề: 01
Trường Đại Học Bách Khoa - Tp. HCM
Khoa Khoa Học & Kỹ Thuật Máy Tính
***
Mã đề: 10

Đề thi cuối kỳ
Môn: Hệ Quản Trị Cơ Sở Dữ Liệu (503004)
Ngành: Khoa Học Máy Tính – HK1 – 2012-2013
Thời gian làm bài: 120 phút
(Bài thi gồm 45 câu hỏi. Sinh viên được tham khảo ghi chú trong 2 tờ giấy A4.)
Sinh viên chọn 1 câu trả lời đúng nhất. Nếu chọn câu (e) thì sinh viên cần trình bày đáp án khác
so với đáp án ở các câu (a), (b), (c), và (d) và/hoặc giải thích lựa chọn (e) của mình.

Câu 1. Hệ quản trị cơ sở dữ liệu (database thực hiện việc xử lý và tối ưu hóa cho câu truy vấn
management system, DBMS) là gì? này.
a. DBMS là một phần mềm hệ thống dùng giúp các b. Bộ tối ưu hóa truy vấn của Oracle không có đủ
chương trình ứng dụng được thực thi hiệu quả hơn. thông tin về các phương thức truy đạt trên dữ liệu của
b. DBMS là một phần mềm chuyên dụng dùng giúp người sử dụng.
tạo và quản lý một lượng lớn dữ liệu hiệu quả và bền c. Người sử dụng có nhiều thông tin hơn về tổ chức
vững an toàn theo thời gian. * dữ liệu (data organization) và các phương thức truy
c. DBMS là một phần mềm ứng dụng dùng giúp tận đạt (access method) trên dữ liệu của người sử dụng so
dụng sự hỗ trợ của hệ điều hành để tạo và quản lý với bộ tối ưu hóa truy vấn của Oracle. *
lượng lớn dữ liệu và các chương trình ứng dụng hiệu d. Quá trình xử lý truy vấn của Oracle được chuyển
quả theo thời gian. sang chế độ do người dùng chỉ định (user-specified
d. DBMS là một phần mềm chuyên dụng dùng giúp mode).
quản lý dữ liệu của các chương trình ứng dụng hiệu e. Ý kiến khác.
quả hơn.
e. Ý kiến khác. Câu 4. Chọn phát biểu ĐÚNG về sự liên hệ giữa
việc tổ chức tập tin dữ liệu và phương thức truy đạt
trên tập tin dữ liệu.
Câu 2. Đặc tính nào của giao tác luôn được bảo
toàn trong môi trường thực thi đơn người dùng? a. Tìm kiếm nhị phân có thể được thực hiện trên tập
a. Atomicity tin dữ liệu được tổ chức lưu trữ ở bất kỳ dạng nào.
b. Tìm kiếm băm có thể được thực hiện trên tập tin
b. Consistency
dữ liệu được tổ chức lưu trữ ở bất kỳ dạng nào.
c. Isolation *
c. Tìm kiếm chỉ mục có thể được thực hiện trên tập
d. Durability tin dữ liệu được tổ chức lưu trữ ở bất kỳ dạng nào.
e. Ý kiến khác. d. Tìm kiếm tuyến tính có thể được thực hiện trên tập
tin dữ liệu được tổ chức lưu trữ ở bất kỳ dạng nào. *
Câu 3. Trong hệ quản trị cơ sở dữ liệu Oracle, e. Ý kiến khác.
người sử dụng có thể sử dụng hints (/*+ …. */) để
dẫn hướng cho bộ tối ưu hóa truy vấn (query
Câu 5. Xác định chi phí truy đạt khối trung bình
optimization) trong quá trình xử lý truy vấn. Khi đó,
của việc tìm kiếm nhị phân trên tập tin dữ liệu có thứ
Oracle giả định điều gì sau đây?
tự (ordered file) khi điều kiện tìm kiếm trên vùng tin
a. Câu truy vấn có hints đã được định nghĩa trước sắp thứ tự (ordering field) là ―=‖. Cho biết b là số
trên dữ liệu của người sử dụng nên Oracle không cần khối dữ liệu hiện có trong tập tin.
a. O(1) Câu 7. Cho tập tin dữ liệu F1 gồm 6 khối dữ liệu
b. O(log2b) * chứa các bản ghi được sắp thứ tự vật lý theo các giá
trị của vùng tin khóa ID (key field) với hệ số phân
c. O(lnb)
khối (blocking factor) bfr = 2 bản ghi/khối. Một chỉ
d. O(b) mục dùng cấu trúc chỉ mục B+-tree với bậc p = 3,
e. Ý kiến khác. pleaf = 2 được định nghĩa trên vùng tin ID. Xác định
chỉ mục B+-tree ĐÚNG trên tập tin dữ liệu này. Giả
Câu 6. B+-tree được cho là có khả năng chỉ mục sử thứ tự các giá trị dùng xây dựng chỉ mục theo
cao (hiệu quả) hơn B-tree. Khả năng này KHÔNG đúng thứ tự trong tập tin, bắt đầu từ trên xuống dưới.
thể hiện qua việc: a. Hình 1
a. B+-tree có tổng số con trỏ dữ liệu nhiều hơn B-tree b. Hình 2 *
với cùng kích thước khối dữ liệu và chiều cao cây. c. Hình 3
b. B+-tree có tất cả nút lá ở cùng mức và liên kết với d. Hình 4
nhau; trong khi đó, B-tree cũng có tất cả nút lá ở
e. Ý kiến khác.
cùng mức nhưng các nút lá không liên kết với nhau.
c. B+-tree có cấu trúc của nút nội và nút lá khác nhau
Câu 8. Chỉ mục B+-tree ở câu 7 được gọi tên là gì?
do nút nội không chức con trỏ dữ liệu; trong khi đó,
B-tree có cấu trúc của nút nội và nút lá giống nhau. a. Chỉ mục sơ cấp (primary index) *
d. B+-tree có tổng số nút trong cây nhiều hơn hay ít b. Chỉ mục cụm (clustering index)
hơn B-tree. * c. Chỉ mục thứ cấp (secondary index)
e. Ý kiến khác. d. Không đủ chi tiết mô tả về chỉ mục này nên không
thể kết luận được dạng của chỉ mục này.
e. Ý kiến khác.

Câu 9. Cho một chỉ mục thứ cấp đa mức (multilevel


secondary index) trên thuộc tính khóa mã nhân viên
EID của tập tin dữ liệu Employee dùng cấu trúc B+-
tree trong Hình 5. Các bản ghi của tập tin được tổ
chức theo cách phân khối không phủ (unspanned
blocking) với hệ số phân khối (blocking factor) bfr =
3. Xác định số bản ghi hiện có (the current number
of records) trong tập tin dữ liệu Employee.
a. 4 bản ghi
b. 7 bản ghi
c. 10 bản ghi
d. 11 bản ghi *
e. Ý kiến khác.

Câu 10. Q là nhân viên hiện thời của tổ chức và có


mã nhân viên là 3. Nhân viên Q nghỉ việc và tổ chức
cần xóa thông tin về nhân viên Q. Khi này, chỉ mục
B+-tree là gì sau khi cập nhật việc xóa thông tin về
nhân viên Q này?
Tập tin dữ liệu F1 gồm 6 blocks với hệ số phân khối a. Hình 6
bfr = 2 bản ghi/khối và nội dung vùng tin khóa ID. b. Hình 7
c. Hình 8 *
2
d. Hình 9 liệu ra các khối dữ liệu chứa các bản ghi trong kết
e. Ý kiến khác. quả tính theo số truy đạt khối. *
e. Ý kiến khác.
Câu 11. A là nhân viên mới của tổ chức và có mã
nhân viên là 14. Một bản ghi về A được thêm vào tập Câu 13. Cho công thức tính chi phí cho phép toán
tin Employee. Xác định số truy đạt khối (the number chọn (selection) dùng chỉ mục thứ cấp với cấu trúc
of block accesses) cần được thực hiện trên chỉ mục chỉ mục đa mức động B+-tree trong trường hợp điều
khi cập nhật thông tin chỉ mục cho bản ghi về A kiện chọn là điều kiện ―>=‖ trên thuộc tính được chỉ
trong chỉ mục B+-tree ở Hình 5. mục: C = x + bl1/2 + r/2; trong đó, x là số mức của
B+-tree, bl1 là số khối chỉ mục ở tầng lá, r là số bản
a. 3 *
ghi trong tập tin dữ liệu. Giả định (assumption) gì
b. 4 được sử dụng trong công thức này?
c. 5
a. Phân nửa số nút trong chỉ mục chứa các con trỏ dữ
d. 6 liệu chỉ đến các bản ghi trong kết quả của phép chọn.
e. Ý kiến khác. b. Phân nửa số bản ghi trong tập tin thỏa điều kiện
chọn. *
Câu 12. Cho công thức tính chi phí cho phép toán c. Phân nửa số khối chỉ mục ở tầng lá chính là số
chọn (selection) dùng chỉ mục cụm với cấu trúc chỉ khối chứa các bản ghi trong kết quả của phép chọn.
mục đa mức động B+-tree trong trường hợp điều kiện
d. Chỉ phân nửa số khối dữ liệu trong tập tin cần
chọn là điều kiện ―=‖ trên thuộc tính được chỉ mục: C
được kiểm tra điều kiện chọn.
= x + ┌s/bfr┐; trong đó, x là số mức của B+-tree, s là
số lượng bản ghi trả về trong kết quả của phép chọn, e. Ý kiến khác.
bfr là hệ số phân khối của tập tin ban đầu cũng như
tập tin kết quả. Ý nghĩa của x và ┌s/bfr┐ trong công Câu 14. Cho kích thước vùng đệm (buffer) là bf = 4
thức là gì? khối (blocks). Tập tin dữ liệu Employee gồm 100
khối dữ liệu (bE = 100 blocks). Tập tin dữ liệu
a. x là chi phí duyệt tất cả các khối ở từng mức trên
Department gồm 5 khối dữ liệu (bD = 5 blocks). Thực
chỉ mục để đến được khối chỉ mục chứa các con trỏ
hiện phép kết với điều kiện kết bằng giữa thuộc tính
dữ liệu tính theo số truy đạt khối; ┌s/bfr┐ là chi phí
DNO của Employee và DNUMBER của Department:
chọn từ tập tin dữ liệu ra các khối dữ liệu chứa các
Employee  DNO = DNUMBERDepartment. Nếu phép
bản ghi trong kết quả từ các con trỏ dữ liệu trong chỉ
kết này được xử lý bằng phương pháp hai vòng lặp
mục tính theo số truy đạt khối.
lồng (nested-loop join) với vùng đệm bf đã cho thì
b. x là chi phí duyệt một khối ở từng mức trên chỉ Employee hay Department nên được duyệt ở vòng
mục để đến được khối chỉ mục chứa các con trỏ dữ lặp ngoài (outer loop)?
liệu đến các khối dữ liệu chứa kết quả tính theo số
truy đạt khối; ┌s/bfr┐ là chi phí chọn từ tập tin dữ a. Department nên ở vòng lặp ngoài (outer loop) do
liệu ra các bản ghi trong kết quả tính theo số truy đạt tổng số truy đạt khối là ít nhất (305 block accesses). *
khối. b. Department nên ở vòng lặp ngoài do tổng số truy
c. x là chi phí duyệt một số khối ở từng mức trên chỉ đạt khối là ít nhất (350 block accesses).
mục để đến được các khối chỉ mục chứa các con trỏ c. Employee ở vòng lặp ngoài do tổng số truy đạt
dữ liệu tính theo số truy đạt khối; ┌s/bfr┐ là chi phí khối là ít nhất (305 block accesses).
chọn từ tập tin dữ liệu ra các khối dữ liệu chứa các d. Employee ở vòng lặp ngoài do tổng số truy đạt
bản ghi trong kết quả từ các con trỏ dữ liệu trong chỉ khối là ít nhất (350 block accesses).
mục tính theo số truy đạt khối. e. Ý kiến khác.
d. x là chi phí duyệt một khối ở từng mức trên chỉ
mục để đến được khối chỉ mục chứa con trỏ dữ liệu
chỉ đến khối dữ liệu đầu tiên chứa kết quả tính theo Phần giả thiết sau được sử dụng cho các câu 15-17.
số truy đạt khối; ┌s/bfr┐ là chi phí chọn từ tập tin dữ Cho lược đồ cơ sở dữ liệu gồm hai bảng
EMPLOYEE (ứng với tập tin dữ liệu EMPLOYEE)

3
và DEPARTMENT (ứng với tập tin dữ liệu (xSALARY = 3), số lượng khối ở tầng cơ sở (tầng lá)
DEPARTMENT) được định nghĩa dưới đây. Các bl1SALARY = 20 blocks, và lượng bản ghi được chọn
thông tin cho việc truy đạt dữ liệu trong các tập tin dữ trung bình (average selection cardinality) sSALARY =
liệu EMPLOYEE và DEPARTMENT cũng được cho 20.
tương ứng.
Trên thuộc tính không khóa DNO, một chỉ mục thứ
cấp (secondary index) được định nghĩa gồm 2 mức
CREATE TABLE EMPLOYEE (
(xDNO = 2), số lượng khối ở tầng cơ sở (tầng lá)
FNAME VARCHAR(15) NOT NULL, bl1DNO = 4 blocks, số lượng giá trị phân biệt tại thuộc
MINIT CHAR, tính DNO là dDNO = 80, và lượng bản ghi được chọn
LNAME VARCHAR(15) NOT NULL, trung bình sDNO = rE/dDNO = 62.
SSN CHAR(9) NOT NULL,
Tập tin DEPARTMENT có:
BDATE DATE,
ADDRESS VARCHAR(30), Số lượng bản ghi rD = 80 records.
SEX CHAR, Số lượng khối bD = 10 blocks.
SALARY DECIMAL(10,2), Hệ số phân khối bfrD = 8 records/block.
SUPERSSN CHAR(9),
Trên thuộc tính khóa DNUMBER, một chỉ mục sơ
DNO INT NOT NULL, cấp được định nghĩa gồm 1 mức (xDNUMBER = 1) với
PRIMARY KEY (SSN), lượng bản ghi được chọn trung bình là sDNUMBER = 1.
FOREIGN KEY (SUPERSSN) REFERENCES
EMPLOYEE (SSN), Trên thuộc tính không khóa MGRSSN, một chỉ mục
FOREIGN KEY (DNO) REFERENCES thứ cấp được định nghĩa gồm 2 mức (xMGRSSN = 2)
DEPARTMENT (DNUMBER)); với lượng bản ghi được chọn trung bình là sMGRSSN =
1 và số lượng khối ở tầng cơ sở là bl1MGRSSN = 2.
CREATE TABLE DEPARTMENT (
DNAME VARCHAR(15) NOT NULL, Cho trước các hàm tính chi phí của phép chọn và
DNUMBER INT NOT NULL, phép kết như sau:
MGRSSN CHAR(9) NOT NULL,
MGRSTARTDATE DATE, Cost Functions for SELECT:
PRIMARY KEY (DNUMBER),
UNIQUE (DNAME), S1. Linear search (brute force) approach:
FOREIGN KEY (MGRSSN) REFERENCES CS1a= b
EMPLOYEE (SSN)); For an equality condition on a key, CS1b = (b/2) if
the record is found; otherwise CS1a= b.
Tập tin EMPLOYEE có: S2. Binary search:
CS2= log2b + ┌ (s/bfr) ┐- 1
Số lượng bản ghi rE = 5000 records.
Số lượng khối bE = 1000 blocks. For an equality condition on a unique (key)
Hệ số phân khối bfrE = 5 records/block. attribute: CS2 =log2b
S3. Using a primary index (S3a) or hash key
Trên thuộc tính khóa SSN, một chỉ mục thứ cấp (S3b) to retrieve a single record:
(secondary index) được định nghĩa gồm 3 mức (xSSN CS3a= x + 1; CS3b = 1 for static or linear hashing;
= 3) với lượng bản ghi được chọn trung bình là sSSN = CS3b = 2 for extendible hashing
1 và số lượng khối ở tầng cơ sở (tầng lá) là bl1SSN =
30. S4. Using an ordering index to retrieve
multiple records:
Trên thuộc tính không khóa SALARY, một chỉ mục For the comparison condition on a key field with
cụm (clustering index) được định nghĩa gồm 3 mức an ordering index: CS4= x + (b/2)

4
S5. Using a clustering index to retrieve trên tối ưu hóa truy vấn dùng chi phí, kế hoạch thực
multiple records for an equality condition: thi (execution plan) nào sau đây là hợp lý nhất cho
CS5= x + ┌ (s/bfr) ┐ biểu thức truy vấn này?
S6. Using a secondary (B+-tree) index: a. Phương pháp tìm kiếm tuyến tính trên vùng tin
For an equality comparison (=): CS6a= x + s DNUMBER với chi phí là 10 block accesses.
For a comparison condition (>, <, >=, or <=): b. Phương pháp chỉ mục sơ cấp trên vùng tin
DNUMBER với chi phí là 6 block accesses. *
CS6b= x + (bl1/2) + (r/2)
c. Phương pháp tìm kiếm nhị phân trên vùng tin
DNUMBER với chi phí là 4 block accesses.
Cost Functions for JOIN:
d. Phương pháp chỉ mục sơ cấp trên vùng tin
J1. Nested-loop join: DNUMBER với chi phí là 2 block accesses.
CJ1 = bR+ (bR*bS) + ((js* |R|* |S|)/bfrRS) e. Ý kiến khác.
(Use R for outer loop)
J2. Single-loop join(using an access structure to Câu 17. Cho câu lệnh SQL như sau:
retrieve the matching record(s))
For a secondary index: SELECT *
FROM EMPLOYEE AS E JOIN DEPARTMENT
CJ2a = bR+ (|R| * (xB+ sB)) + ((js* |R|* |S|)/bfrRS)
AS D ON E.SSN = D.MGRSSN;
For a clustering index:
CJ2b = bR + (|R| * (xB+ (sB/bfrB))) + ((js* |R|* Cho trước độ chọn lọc kết (join selectivity) dành cho
|S|)/bfrRS) biểu thức truy vấn trên là js = 1/rE = 1/5000; hệ số
For a primary index: phân khối của tập tin kết quả kết từ biểu thức truy
vấn trên là bfrED = 6 records/block.
CJ2c = bR + (|R| * (xB+ 1)) + ((js* |R|* |S|)/bfrRS)
Khi xử lý biểu thức truy vấn trên dùng phương pháp
If a hash key exists for one of the two join kết một vòng lặp (single-loop join) dựa trên tối ưu
attributes — B of S: hóa truy vấn dùng chi phí, kế hoạch thực thi
CJ2d = bR + (|R| * h) + ((js* |R|* |S|)/bfrRS) (execution plan) nào sau đây là hợp lý nhất cho biểu
(h: the average number of block accesses to retrieve a thức truy vấn này?
record, given its hash key value, h>=1) a. Tập tin EMPLOYEE được duyệt trên vòng lặp và
J3. Sort-merge join: tập tin DEPARTMENT được truy đạt với chỉ mục
CJ3a = CS + bR+ bS + ((js* |R|* |S|)/bfrRS) thứ cấp trên vùng tin MGRSSN. Khi đó, chi phí là
(CS: cost for sorting files) 16014 block accesses.
b. Tập tin EMPLOYEE được duyệt trên vòng lặp và
Câu 15. Cho biểu thức truy vấn chọn ra những nhân tập tin DEPARTMENT được truy đạt với chỉ mục
viên có lương bằng 1000 hoặc ở những phòng ban có thứ cấp trên vùng tin MGRSSN. Khi đó, chi phí là
mã là 5: SALARY=1000 OR DNO=5(EMPLOYEE). Xác 21014 block accesses.
định chi phí của bản kế hoạch thực thi được chọn c. Tập tin DEPARTMENT được duyệt trên vòng lặp
nếu dùng tối ưu hóa truy vấn dựa trên chi phí (cost- và tập tin EMPLOYEE được truy đạt với chỉ mục thứ
based optimization). cấp trên vùng tin SSN. Khi đó, chi phí là 344 block
a. 7 block accesses accesses. *
b. 64 block accesses d. Tập tin DEPARTMENT được duyệt trên vòng lặp
và tập tin EMPLOYEE được truy đạt với chỉ mục thứ
c. 71 block accesses * cấp trên vùng tin SSN. Khi đó, chi phí là 264 block
d. 1000 block accesses accesses.
e. Ý kiến khác. e. Ý kiến khác.

Câu 16. Cho biểu thức truy vấn chọn ra phòng ban
có mã lớn hơn 5: DNUMBER>5(DEPARTMENT). Dựa
5
Câu 18. Chọn phát biểu ĐÚNG NHẤT về cơ chế xử d. Trình tự S4: r2(Y); w2(Y); w1(X); r1(X); r1(Y);
lý của bộ tối ưu hóa truy vấn dùng qui tắc biến đổi w1(Y); r2(X); w2(X)
heuristic (heuristic rule-based query optimizer). e. Ý kiến khác.
a. Ưu tiên thực hiện phép chọn trước phép kết.
b. Ưu tiên xử lý tập tin dữ liệu nhỏ trước tập tin dữ Câu 21. Một giao tác (transaction) có thể bị ngưng
liệu lớn. thực thi giữa chừng (aborted) trong tình huống nào?
c. Ưu tiên thực hiện phép kết trước phép tích a. Lỗi từ các tác vụ đọc/ghi dữ liệu trong giao tác xảy
Cartesian. ra.
d. Ưu tiên thực hiện các phép toán trả về kết quả b. Lỗi tắt nguồn xảy ra.
(trung gian) ít hơn trước các phép toán trả về kết quả c. Yêu cầu ngưng thực thi từ trình điều khiển tương
nhiều hơn. * tranh (concurrency controller) được thực hiện.
e. Ý kiến khác. d. Câu a, b, và c đều đúng. *
e. Ý kiến khác.
Câu 19. Điểm giống nhau giữa tối ưu hóa truy vấn
dùng qui tắc biến đổi heuristic và tối ưu hóa truy vấn Câu 22. Chọn phát biểu ĐÚNG về commit point của
dùng chi phí là: một giao tác T.
a. Tối ưu hóa truy vấn dùng qui tắc biến đổi heuristic a. Điểm mà khi đó, tất cả các tác vụ của T đã được
và tối ưu hóa truy vấn dùng chi phí cho biết phương thực hiện thành công và những tác động của T lên cơ
thức truy đạt (access method) cụ thể nào là hiệu quả sở dữ liệu đã được ghi nhận trong sổ ghi hệ thống
và sẽ được dùng để thực hiện mỗi tác vụ. (system log). *
b. Tối ưu hóa truy vấn dùng qui tắc biến đổi heuristic b. Điểm mà khi đó, tất cả các tác vụ của T đã được
chính là một dạng của tối ưu hóa truy vấn dùng chi thực hiện thành công và những tác động của T lên cơ
phí; tuy nhiên, chi phí trong tối ưu hóa truy vấn dùng sở dữ liệu đã được ghi nhận trong cơ sở dữ liệu.
qui tắc biến đổi heuristic không được tính toán cụ thể
và tường minh. c. Điểm mà khi đó, tất cả các tác vụ của T đã được
tháo gỡ thành công và những tác động của T lên cơ
c. Tối ưu hóa truy vấn dùng qui tắc biến đổi heuristic sở dữ liệu đã được xóa khỏi sổ ghi hệ thống.
và tối ưu hóa truy vấn dùng chi phí đều là quá trình
tìm ra một bản kế hoạch thực thi (execution plan) tốt d. Điểm mà khi đó, tất cả các tác vụ của T đã được
nhất có thể trong quá trình xử lý truy vấn. * tháo gỡ thành công và những tác động của T lên cơ
sở dữ liệu đã được xóa khỏi cơ sở dữ liệu.
d. Tối ưu hóa truy vấn dùng qui tắc biến đổi heuristic
và tối ưu hóa truy vấn dùng chi phí đều được sử dụng e. Ý kiến khác.
phổ biến trong các hệ quản trị cơ sở dữ liệu ngày nay.
e. Ý kiến khác. Câu 23. Cho lịch biểu S5: r1(X); r2(Z); r1(Z); r3(X);
r3(Y); w1(X); w3(Y); r2(Y); w2(Z); w2(Y); c1; c2; c3.
Xác định đặc điểm khả phục hồi (recoverability) của
Câu 20. Cho các trình tự thực thi của các tác vụ trong S5.
các giao tác khác nhau. Xác định trình tự thực thi
ĐÚNG là một lịch biểu (schedule). a. Khả phục hồi (recoverable)
Giao tác T1: w1(X); r1(Y); w1(Y); r1(X) b. Không dắt dây (cascadeless)
Giao tác T2: r2(Y); r2(X); w2(X); w2(Y) c. Nghiêm cách (strict)
a. Trình tự S1: r1(X); r2(Y); w2(Y); w1(X); r1(Y); d. Không khả phục hồi (non-recoverable) *
r2(X); w2(X); w1(Y) e. Ý kiến khác.
b. Trình tự S2: w1(X); r2(Y); r2(X); r1(Y); w1(Y);
w2(X); w2(Y); r1(X) * Câu 24. Cho lịch biểu S6: r2(X); r1(Y); w2(X); r3(X);
c. Trình tự S3: r2(Y); r2(X); r1(X); r1(Y); w1(X); w1(Y); r2(Y); w3(X); w2(Y). Xác định đặc điểm khả
w1(Y); w2(X); w2(Y) tuần tự hóa (serializability) của S6.
a. S6 không khả tuần tự hóa (non-serializable)
6
b. S6 khả tuần tự hóa xung đột (conflict serializable) c. Unrepeatable read *
* d. Phantom
c. S6 không có đặc điểm khả tuần tự hóa. e. Ý kiến khác.
d. Thông tin mô tả về lịch biểu S6 không đầy đủ nên
không thể xác định được đặc điểm khả tuần tự hóa Trình tự thực thi của T1 và T2 trong môi trường đa
của S6. người dùng không có điều khiển tương tranh:
e. Ý kiến khác. T1 T2 X (DB) Y (DB)
5 10
Câu 25. Lịch biểu S7 là một lịch biểu khả tuần tự hóa Read_item(X);
nghiêm cách (serializable and strict schedule). Chọn Read_item(Y);
phát biểu SAI về lịch biểu S7. Read_item(X);
X := X-5;
a. Tồn tại một lịch biểu tuần tự tương đương Write_item(X); 0
(equivalent serial schedule) với lịch biểu S7. Read_item(X);
b. Sổ ghi hệ thống (system log) không cần có mục tin Read_item(Y);
(entry) về các tác vụ đọc (read operation) của các Y := Y * 2;
giao tác trong lịch biểu S7. Write_item(Y); 20
c. Việc phục hồi dành cho lịch biểu S7 sẽ khó khăn Commit;
hơn so với các lịch biểu khả tuần tự hóa không dắt Commit;
dây (serializable and cascadeless schedule). *
d. Khi một giao tác trong lịch biểu S7 bị ngưng thực Câu 28. Xác định giao tác mà trong đó, kỹ thuật khóa
thi (aborted), không có giao tác nào khác trong lịch hai pha (two-phase locking) được sử dụng ĐÚNG.
biểu S7 cùng bị ngưng thực thi kéo theo.
a. Giao tác T1 *
e. Ý kiến khác.
Read_lock(X)
Câu 26. Cho lịch biểu S8: r2(A); r1(B); w2(A); r3(A); Read_item(X)
w1(B); w3(A); r2(B); w2(B). Xác định lịch biểu tuần
tự tương đương (equivalent serial schedule) của S8 Write_lock(Y)
nếu có. Read_item(Y)
a. T3; T1; T2 Unlock(X)
b. T3; T2; T1 Write_item(Y)
c. T1; T2; T3 *
Unlock(Y)
d. S không khả tuần tự hóa. Do đó, không tồn tại lịch
biểu tuần tự tương đương của S8.
e. Ý kiến khác. b. Giao tác T2
Read_lock(X)
Câu 27. Cho X = 5 và Y = 10 trong cơ sở dữ liệu
(database - DB). Hai giao tác T1 và T2 thực thi đồng Read_item(X)
thời trong môi trường đa người dùng nhưng điều Read_lock(X)
khiển tương tranh không được thực hiện như sau.
Read_item(Y)
Giá trị hiện tại của X là 0 và giá trị hiện tại của Y là Unlock(X)
20 trong cơ sở dữ liệu. Sự thực thi đồng thời của 2
giao tác T1 và T2 gặp phải vấn đề tương tranh nào
c. Giao tác T3
sau đây?
Write_lock(X)
a. Lost update
b. Temporary update/dirty read Read_item(X)
7
Write_lock(Y)
Câu 30. Biến thể nào của kỹ thuật khóa hai pha
Write_item(Y) không có khóa chết xảy ra khi thực hiện điều khiển
Unlock(Y) tương tranh việc thực thi đồng thời của các giao tác?
a. Bảo thủ (conservative) *
Write_item(X)
b. Nghiêm cách (strict)
Unlock(X)
c. Gia tăng/cơ bản (incremental/basic)
Unlock(Y) d. Do kỹ thuật khóa hai pha sử dụng khóa để điều
khiển tương tranh nên khóa chết không thể tránh
d. Giao tác T4 được trong tất cả các biến thể của kỹ thuật khóa hai
pha.
Read_lock(X)
e. Ý kiến khác.
Write_item(X)
Write_lock(Y) Câu 31. Điều gì ĐÚNG về sự tương thích khóa trong
điều khiển tương tranh bằng kỹ thuật khóa hai pha đa
Unlock(X) phiên bản với khóa chứng nhận (multiversion two-
Write_item(Y) phase locking using certify locks)?
Unlock(Y) a. Khóa đọc tương thích với khóa ghi nên nếu T1
đang giữ khóa ghi trên X để thực hiện tác vụ write(X)
thì T2 vẫn có thể có được khóa đọc trên X để thực
e. Ý kiến khác. hiện tác vụ read(X).
b. Khóa ghi không tương thích với khóa ghi nên chỉ
Câu 29. Cho lịch biểu S9 như sau. Trong lịch biểu có tối đa một khóa ghi trên X. Tác vụ write(X) của
S9, điều khiển tương tranh của các giao tác được thực giao tác T1 sẽ bị từ chối nếu có giao tác T2 khác
hiện với kỹ thuật khóa hai pha. Khóa chết (deadlock) đang giữ khóa ghi trên X.
có xảy ra với lịch biểu S9 không?
c. Khóa ghi tương thích với khóa đọc nên giao tác T1
Lịch biểu S9: có thể có khóa ghi để thực hiện tác vụ write(X) trong
khi các giao tác T2 khác đang giữ khóa đọc để thực
T1 T2 T3
hiện tác vụ read(X).
read_lock(A)
read_item(A) d. Câu a, b, và c đều đúng. *
write_lock(B) e. Ý kiến khác.
write_item(B)
read_lock(B) Câu 32. Cho lịch biểu S10 sau đây mà trong đó, các
read_lock(C) giao tác T1 và T2 thực thi đồng thời dưới kỹ thuật
read_item(C) điều khiển tương tranh khóa hai pha đa phiên bản với
write_lock( C) khóa chứng nhận.

a. Có Lịch biểu S10:


b. Không * T1 T2
Write_lock(Y)
c. Không đủ thông tin về các giao tác để xác định liệu
khóa chết có xảy ra hay không. Read_lock(Y)
Read_lock(X)
d. Chỉ khi các giao tác đạt đến điểm commit, thông Read_item(Y)
tin về việc thực thi của các giao tác trong S9 mới có
Write_item(Y)
đầy đủ và khi đó, việc xác định liệu khóa chết có xảy
Read_item(X)
ra hay không mới được xác định đúng.
Write_lock(X)
e. Ý kiến khác. Certify_lock(Y)
8
tương đương bị vi phạm nên T3 và T4 bị ngưng và
Giao tác T1 có thể có được certify lock trên dữ liệu Y quay lui. *
trước khi T1 commit hay không? b. Giao tác T1 già hơn T3 và T4 đã đọc và ghi dữ liệu
a. T1 không thể có được certify lock trên Y do T2 đã trước khi T3 ghi dữ liệu và T4 đọc dữ liệu. Do đó,
đọc dữ liệu Y trước khi T1 cập nhật dữ liệu Y. thứ tự đúng của các giao tác trong lịch biểu tuần tự
tương đương bị vi phạm nên T3 và T4 bị ngưng và
b. T1 có được certify lock trên Y do certify lock
quay lui.
tương thích với read lock và xung đột loại trừ với
write lock và T2 chỉ giữ read lock trên Y. c. Giao tác T3 ghi dữ liệu chậm hơn giao tác T1 và
T2 nên tác vụ ghi dữ liệu của T3 không cần thiết nữa
c. T1 không thể có được certify lock trên Y do giao
nên T3 bị ngưng và quay lui; trong khi đó, T4 đọc dữ
tác T2 đang giữ read lock trên Y. *
liệu từ cập nhật của T2 nhưng T2 chưa commit nên
d. Không đủ thông tin mô tả về lịch biểu nên không T4 cũng bị ngưng và quay lui.
thể xác định được liệu T1 có thể có được certify lock
d. Giao tác T3 và T4 ghi và đọc dữ liệu từ các cập
trên dữ liệu Y hay không.
nhật của giao tác T1 và T2 nhưng T1 và T2 chưa
e. Ý kiến khác. commit nên T3 và T4 bị ngưng và quay lui.
e. Ý kiến khác.
Câu 33. Xác định lịch biểu tuần tự tương đương
(equivalent serial schedule) với lịch biểu S11 sau đây
Câu 35. Cho lịch biểu S12 trong Bảng 1 mà trong
khi các giao tác của S11 được điều khiển tương tranh
đó, việc điều khiển tương tranh của các giao tác được
bằng kỹ thuật sắp thứ tự theo nhãn thời gian
thực hiện bằng kỹ thuật đa phiên bản dựa trên sắp thứ
(timestamp ordering).
tự theo nhãn thời gian (multiversion technique based
on timestamp ordering). Việc gì xảy ra khi giao tác
Lịch biểu S11:
T1 T2 T3 T4 A
T3 đọc A, nghĩa là r3(A) diễn ra?
TS=150 TS=300 TS=175 TS=225 Read_TS=0; a. Giao tác T3 bị ngưng thực thi (aborted) do A đã
Write_TS=0 được cập nhật bởi giao tác T2 trẻ hơn.
R1(A) Read_TS=150
b. Tác vụ đọc của giao tác T3 bị trì hoãn thực thi
W1(A) Write_TS=150 (delayed) cho đến khi giao tác T2 đã ghi A commit.
R2(A) Read_TS=300
c. Tác vụ đọc của giao tác T3 được thực hiện với
W2(A) Write_TS=300
phiên bản A200.
W3(A)
Abort d. Tác vụ đọc của giao tác T3 được thực hiện với
R4(A) phiên bản A0. *
Abort e. Ý kiến khác.

a. T1; T2; T3; T4 Câu 36. Cũng xem xét lịch biểu S12 trong Bảng 1
mà trong đó, việc điều khiển tương tranh của các giao
b. T1; T3; T4; T2 *
tác được thực hiện bằng kỹ thuật đa phiên bản dựa
c. T1; T4; T3; T2 trên sắp thứ tự theo nhãn thời gian (multiversion
d. T1; T2; T4; T3 technique based on timestamp ordering). Việc gì xảy
e. Ý kiến khác. ra khi giao tác T1 ghi A, nghĩa là w1(A) diễn ra?
a. Phiên bản A150 được tạo ra với nhãn thời gian đọc
Câu 34. Trong lịch biểu S11, tại sao T3 bị ngưng và ghi tương ứng là Read_TS = 150 và Write_TS =
(abort) và quay lui (rollback) và sau đó, T4 cũng bị 150.
ngưng và quay lui? b. Tác vụ ghi của giao tác T1 được bỏ qua (ignored)
a. Giao tác T2 trẻ hơn T3 và T4 đã đọc và ghi dữ liệu do giao tác T2 trẻ hơn đã ghi A trước.
trước khi T3 ghi dữ liệu và T4 đọc dữ liệu. Do đó, c. Tác vụ ghi của giao tác T1 được trì hoãn (delayed)
thứ tự đúng của các giao tác trong lịch biểu tuần tự cho đến khi giao tác T2 trẻ hơn đã ghi A trước
commit.
9
d. Tác vụ ghi của giao tác T1 không thể tạo phiên bản e. Ý kiến khác.
A150 và bị từ chối (rejected) và giao tác T1 bị ngưng
thực thi và quay lui do phiên bản A0 gần nhất với
giao tác T1 đã được đọc bởi giao tác T2 trẻ hơn T1. *
e. Ý kiến khác.

Câu 37. Giả định (assumption) gì được sử dụng


trong kỹ thuật điều khiển tương tranh xác nhận hợp lệ
lạc quan (validation (optimistic) concurrency control
technique)?
a. Không có giả định gì về sự can thiệp lẫn nhau giữa
các giao tác trong lịch biểu.
b. Không tồn tại sự can thiệp lẫn nhau giữa các giao
tác trong lịch biểu. Ma trận tương thích khóa của kỹ thuật khóa đa mức
c. Sự can thiệp lẫn nhau (interference) giữa các giao dữ liệu
tác trong lịch biểu thấp. *
d. Sự can thiệp lẫn nhau giữa các giao tác trong lịch Câu 40. Cho phân cấp cơ sở dữ liệu trong Hình 10.
biểu cao. Giao tác T1 thực hiện các tác vụ sau: đọc tập tin f2 và
e. Ý kiến khác. cập nhật bản ghi r221. Xác định việc khóa đa mức dữ
liệu được thực hiện trong T1 với kỹ thuật khóa đa
mức dữ liệu.
Câu 38. Trong kỹ thuật điều khiển tương tranh xác
nhận hợp lệ lạc quan, việc cập nhật dữ liệu X của một
giao tác T sẽ được thực hiện như thế nào? a. IX(db)
S(f2)
a. Giá trị mới của dữ liệu X được ghi nhận vào cơ sở
dữ liệu và các giao tác khác có thể thấy cập nhật này IX(p22)
khi đọc dữ liệu X từ cơ sở dữ liệu. Read(f2)
b. Giá trị mới của dữ liệu X được ghi nhận vào sổ ghi X(r221)
hệ thống (system log) và các giao tác khác có thể thấy Write(r221)
cập nhật này từ việc đọc sổ ghi hệ thống. Unlock(r221)
c. Giá trị mới của dữ liệu X được ghi nhận thành các Unlock(p22)
phiên bản cục bộ của giao tác T và các giao tác khác
có thể thấy cập nhật này khi liên lạc với giao tác T. Unlock(f2)
d. Giá trị mới của dữ liệu X được ghi nhận thành các Unlock(db)
phiên bản cục bộ của giao tác T và các giao tác khác
không thể thấy cập nhật này khi đọc dữ liệu X. * b. IX(db) *
e. Ý kiến khác. SIX(f2)
IX(p22)
Câu 39. Trong ma trận tương thích khóa (lock X(r221)
compatibility matrix) dưới đây của kỹ thuật khóa đa
Read(f2)
mức dữ liệu (multiple granularity locking technique),
khóa IX (intention-exclusive) tương thích với khóa Write(r221)
nào? Unlock(r221)
a. IS * Unlock(p22)
b. S Unlock(f2)
c. SIX Unlock(db)
d. X
10
c. IX(db)
IX(f2) b. *
IX(p22) [start_transaction, T2]
X(r221) [start_transaction, T3]
Read(p22) [write_item, T2, Z, old_value, new_value]
[write_item, T3, Y, old_value, new_value]
Write(r221)
[write_item, T2, Y, old_value, new_value]
Unlock(r221) [commit, T3]
Unlock(p22) [commit, T2]
Unlock(f2)
Unlock(db) c.
[start_transaction, T2]
d. IX(db) [start_transaction, T3]
SIX(f2) [write_item, T2, Z, old_value]
Read(f2) [write_item, T3, Y, old_value]
[write_item, T2, Y, old_value]
Unlock(f2)
[commit, T3]
Unlock(db) [commit, T2]
IX(db)
IX(f2) d. Do đặc điểm khả phục hồi và khả tuần tự hóa của
IX(p22) lịch biểu S13 không rõ ràng nên không thể xác định
X(r221) được nội dung của sổ ghi hệ thống tương ứng với
Write(r221) trình tự thực thi của lịch biểu S13.
Unlock(r221) e. Ý kiến khác.
Unlock(p22)
Câu 42. Cho lịch biểu S14 như sau. Giả sử ngay sau
Unlock(f2) khi T1 commit, hệ thống gặp lỗi và giao tác T2 bị
Unlock(db) ngưng thực thi (abort). Các thao tác phục hồi gì cần
xem xét cho các giao tác T1 và T2 khi hệ thống trở
e. Ý kiến khác. lại bình thường? Ghi chú: W1(D, 20, 25) có nghĩa là
giao tác T1 cập nhật dữ liệu D từ giá trị cũ 20 sang
giá trị mới 25.
Câu 41. Cho lịch biểu S13: r2(Z); r3(X); r2(Y); r3(Y);
w2(Z); w3(Y); w2(Y); c3; c2. Xác định nội dung của sổ
Lịch biểu S14:
ghi hệ thống (system log) tương ứng với trình tự thực
T1 T2 T3
thi của lịch biểu S13.
R2(C)
a. W2(B, 15, 12)
[start_transaction, T2] R3(B)
[read_item, T2, Z] W3(B, 12, 18)
[start_transaction, T3] R1(A)
[read_item, T3, X] R1(D)
[read_item, T2, Y] W1(D, 20, 25)
[read_item, T3, Y] R3(D)
[write_item, T2, Z, old_value, new_value] W3(D, 25, 26)
[write_item, T3, Y, old_value, new_value] R2(A)
[write_item, T2, Y, old_value, new_value] W2(A, 30, 22)
[commit, T3] Commit
[commit, T2]
11
Abort Câu 44. Cũng xem xét lịch biểu S14 ở câu 42. Giả sử
cần tái thực hiện cho tác vụ W1(D, 20, 25). Việc tái
thực hiện này sẽ làm gì với D trong cơ sở dữ liệu?
a. Tái thực hiện (redo) cần xem xét cho T1 và tháo gỡ
(undo) cần xem xét cho T2. * a. Cập nhật giá trị của D thành 25. *
b. Tháo gỡ cần xem xét cho T1 và tái thực hiện cần b. Cập nhật giá trị của D thành 20.
xem xét cho T2. c. Cập nhật giá trị của D từ 20 sang 25.
c. Tái thực hiện và tháo gỡ đều cần xem xét cho mỗi d. Cập nhật giá trị của D từ 25 sang 20.
giao tác: T1 và T2. e. Ý kiến khác.
d. Không cần xem xét thực hiện phục hồi gì do T1 đã
commit nên đã được hệ thống ghi nhận các cập nhật Câu 45. Cũng xem xét lịch biểu S14 ở câu 42. T3 sẽ
vào cơ sở dữ liệu; trong khi đó, T2 chưa commit nên thế nào sau khi T2 bị ngưng thực thi (abort) và quay
các cập nhật của T2 chưa được ghi nhận vào cơ sở dữ lui (rollback)?
liệu.
e. Ý kiến khác. a. T3 sẽ tiếp tục thực thi đến khi hệ thống ngưng
hoàn toàn.
Câu 43. Cũng xem xét lịch biểu S14 ở câu 42. Giả sử b. T3 sẽ tiếp tục thực thi đến khi đạt điểm commit
cần tháo gỡ cho tác vụ W1(D, 20, 25). Việc tháo gỡ của T3.
này sẽ làm gì với D trong cơ sở dữ liệu? c. T3 sẽ bị ngưng thực thi và quay lui do T3 đã đọc
dữ liệu B mà dữ liệu này đã được cập nhật bởi giao
a. Cập nhật giá trị của D thành 25. tác T2 trước đó nhưng đã bị ngưng thực thi. *
b. Cập nhật giá trị của D thành 20. * d. T3 sẽ bị ngưng thực thi và quay lui do T3 đã đọc
c. Cập nhật giá trị của D từ 20 sang 25. dữ liệu D mà dữ liệu này được cập nhật bởi giao tác
d. Cập nhật giá trị của D từ 25 sang 20. T1 trước đó nhưng khi đó T1 vẫn chưa commit.
e. Ý kiến khác. e. Ý kiến khác.

Hình 1 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 được tạo trên vùng tin khóa ID (Câu 7.a)

Hình 2 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 được tạo trên vùng tin khóa ID (Câu 7.b)

12
Hình 3 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 được tạo trên vùng tin khóa ID (Câu 7.c)

Hình 4 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 được tạo trên vùng tin khóa ID (Câu 7.d)

Hình 5 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 (Câu 9, 10, và 11)

Hình 6 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 sau khi cập nhật xóa nhân viên Q có mã nhân viên là 3
(Câu 10.a)

13
Hình 7 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 sau khi cập nhật xóa nhân viên Q có mã nhân viên là 3
(Câu 10.b)

Hình 8 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 sau khi cập nhật xóa nhân viên Q có mã nhân viên là 3
(Câu 10.c)

Hình 9 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 sau khi cập nhật xóa nhân viên Q có mã nhân viên là 3
(Câu 10.d)

14
Hình 10 – Phân cấp dữ liệu (Câu 40)

Bảng 1 – Lịch biểu S12 với kỹ thuật điều khiển tương tranh đa phiên bản dùng sắp thứ tự
theo nhãn thời gian (Câu 35, 36)
T1 T2 T3 A0 A200
TS=150 TS=200 TS=175 Read_TS=0; Read_TS=200;
Write_TS=0 Write_TS=200
r1(A) Read_TS=150
r2(A) Read_TS=200
w2(A) Created
r3(A)
w1(A)

15
Họ - Tên: ……………………………………………………………………………….
Mã Số Sinh Viên: ………………………………………………………………………

Phần trả lời:

Câu 1 - 15:
Câu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
a x x x
b x x x x
c x x x x
d x x x x
e

Câu 16 - 30:
Câu 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
a X x x
b x x x x
c x x X x x
d x x x
e

Câu 31 - 45:
Câu 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
a x x x x
b x x x x
c x x x
d x X x x
e

Phần giải thích đáp án (e) nếu có:

16
Môn: Hệ Quản Trị Cơ Sở Dữ Liệu (503004)
Học kỳ 1 - 2012-2013
Ngày thi: 25/12/2012
Phòng thi: 503 C4
Mã đề: 10
Trường Đại Học Bách Khoa - Tp. HCM
Khoa Khoa Học & Kỹ Thuật Máy Tính
***
Mã đề: 11

Đề thi cuối kỳ
Môn: Hệ Quản Trị Cơ Sở Dữ Liệu (503004)
Ngành: Khoa Học Máy Tính – HK1 – 2012-2013
Thời gian làm bài: 120 phút
(Bài thi gồm 45 câu hỏi. Sinh viên được tham khảo ghi chú trong 2 tờ giấy A4.)
Sinh viên chọn 1 câu trả lời đúng nhất. Nếu chọn câu (e) thì sinh viên cần trình bày đáp án khác
so với đáp án ở các câu (a), (b), (c), và (d) và/hoặc giải thích lựa chọn (e) của mình.

Câu 1. Hệ quản trị cơ sở dữ liệu (database thực hiện việc xử lý và tối ưu hóa cho câu truy vấn
management system, DBMS) là gì? này.
a. DBMS là một phần mềm hệ thống dùng giúp các b. Người sử dụng có nhiều thông tin hơn về tổ chức
chương trình ứng dụng được thực thi hiệu quả hơn. dữ liệu (data organization) và các phương thức truy
b. DBMS là một phần mềm ứng dụng dùng giúp tận đạt (access method) trên dữ liệu của người sử dụng so
dụng sự hỗ trợ của hệ điều hành để tạo và quản lý với bộ tối ưu hóa truy vấn của Oracle. *
lượng lớn dữ liệu và các chương trình ứng dụng hiệu c. Bộ tối ưu hóa truy vấn của Oracle không có đủ
quả theo thời gian. thông tin về các phương thức truy đạt trên dữ liệu của
c. DBMS là một phần mềm chuyên dụng dùng giúp người sử dụng.
tạo và quản lý một lượng lớn dữ liệu hiệu quả và bền d. Quá trình xử lý truy vấn của Oracle được chuyển
vững an toàn theo thời gian. * sang chế độ do người dùng chỉ định (user-specified
d. DBMS là một phần mềm chuyên dụng dùng giúp mode).
quản lý dữ liệu của các chương trình ứng dụng hiệu e. Ý kiến khác.
quả hơn.
e. Ý kiến khác. Câu 4. Chọn phát biểu ĐÚNG về sự liên hệ giữa
việc tổ chức tập tin dữ liệu và phương thức truy đạt
trên tập tin dữ liệu.
Câu 2. Đặc tính nào của giao tác luôn được bảo
toàn trong môi trường thực thi đơn người dùng? a. Tìm kiếm nhị phân có thể được thực hiện trên tập
a. Atomicity tin dữ liệu được tổ chức lưu trữ ở bất kỳ dạng nào.
b. Tìm kiếm chỉ mục có thể được thực hiện trên tập
b. Consistency
tin dữ liệu được tổ chức lưu trữ ở bất kỳ dạng nào.
c. Isolation *
c. Tìm kiếm băm có thể được thực hiện trên tập tin
d. Durability dữ liệu được tổ chức lưu trữ ở bất kỳ dạng nào.
e. Ý kiến khác. d. Tìm kiếm tuyến tính có thể được thực hiện trên tập
tin dữ liệu được tổ chức lưu trữ ở bất kỳ dạng nào. *
Câu 3. Trong hệ quản trị cơ sở dữ liệu Oracle, e. Ý kiến khác.
người sử dụng có thể sử dụng hints (/*+ …. */) để
dẫn hướng cho bộ tối ưu hóa truy vấn (query
Câu 5. Xác định chi phí truy đạt khối trung bình
optimization) trong quá trình xử lý truy vấn. Khi đó,
của việc tìm kiếm nhị phân trên tập tin dữ liệu có thứ
Oracle giả định điều gì sau đây?
tự (ordered file) khi điều kiện tìm kiếm trên vùng tin
a. Câu truy vấn có hints đã được định nghĩa trước sắp thứ tự (ordering field) là ―=‖. Cho biết b là số
trên dữ liệu của người sử dụng nên Oracle không cần khối dữ liệu hiện có trong tập tin.
a. O(1) Câu 7. Chỉ mục B+-tree ở câu 6 được gọi tên là gì?
b. O(log2b) * a. Chỉ mục sơ cấp (primary index) *
c. O(lnb) b. Chỉ mục cụm (clustering index)
d. O(b) c. Chỉ mục thứ cấp (secondary index)
e. Ý kiến khác. d. Không đủ chi tiết mô tả về chỉ mục này nên không
thể kết luận được dạng của chỉ mục này.
e. Ý kiến khác.

Câu 8. Cho một chỉ mục thứ cấp đa mức (multilevel


secondary index) trên thuộc tính khóa mã nhân viên
EID của tập tin dữ liệu Employee dùng cấu trúc B+-
tree trong Hình 5. Các bản ghi của tập tin được tổ
chức theo cách phân khối không phủ (unspanned
blocking) với hệ số phân khối (blocking factor) bfr =
3. Xác định số bản ghi hiện có (the current number
of records) trong tập tin dữ liệu Employee.
a. 11 bản ghi *
b. 10 bản ghi
c. 7 bản ghi
d. 4 bản ghi
e. Ý kiến khác.

Câu 9. Q là nhân viên hiện thời của tổ chức và có


mã nhân viên là 3. Nhân viên Q nghỉ việc và tổ chức
cần xóa thông tin về nhân viên Q. Khi này, chỉ mục
B+-tree là gì sau khi cập nhật việc xóa thông tin về
nhân viên Q này?
Tập tin dữ liệu F1 gồm 6 blocks với hệ số phân khối a. Hình 6
bfr = 2 bản ghi/khối và nội dung vùng tin khóa ID. b. Hình 7
c. Hình 8 *
Câu 6. Cho tập tin dữ liệu F1 gồm 6 khối dữ liệu d. Hình 9
chứa các bản ghi được sắp thứ tự vật lý theo các giá
e. Ý kiến khác.
trị của vùng tin khóa ID (key field) với hệ số phân
khối (blocking factor) bfr = 2 bản ghi/khối. Một chỉ
mục dùng cấu trúc chỉ mục B+-tree với bậc p = 3, Câu 10. A là nhân viên mới của tổ chức và có mã
pleaf = 2 được định nghĩa trên vùng tin ID. Xác định nhân viên là 14. Một bản ghi về A được thêm vào tập
chỉ mục B+-tree ĐÚNG trên tập tin dữ liệu này. Giả tin Employee. Xác định số truy đạt khối (the number
sử thứ tự các giá trị dùng xây dựng chỉ mục theo of block accesses) cần được thực hiện trên chỉ mục
đúng thứ tự trong tập tin, bắt đầu từ trên xuống dưới. khi cập nhật thông tin chỉ mục cho bản ghi về A
trong chỉ mục B+-tree ở Hình 5.
a. Hình 1
a. 3 *
b. Hình 2 *
b. 4
c. Hình 3
c. 5
d. Hình 4
d. 6
e. Ý kiến khác.
e. Ý kiến khác.

2
Câu 11. B+-tree được cho là có khả năng chỉ mục e. Ý kiến khác.
cao (hiệu quả) hơn B-tree. Khả năng này KHÔNG
thể hiện qua việc: Câu 13. Cho công thức tính chi phí cho phép toán
a. B+-tree có tổng số con trỏ dữ liệu nhiều hơn B-tree chọn (selection) dùng chỉ mục thứ cấp với cấu trúc
với cùng kích thước khối dữ liệu và chiều cao cây. chỉ mục đa mức động B+-tree trong trường hợp điều
kiện chọn là điều kiện ―>=‖ trên thuộc tính được chỉ
b. B+-tree có tất cả nút lá ở cùng mức và liên kết với
mục: C = x + bl1/2 + r/2; trong đó, x là số mức của
nhau; trong khi đó, B-tree cũng có tất cả nút lá ở
B+-tree, bl1 là số khối chỉ mục ở tầng lá, r là số bản
cùng mức nhưng các nút lá không liên kết với nhau.
ghi trong tập tin dữ liệu. Giả định (assumption) gì
c. B+-tree có cấu trúc của nút nội và nút lá khác nhau được sử dụng trong công thức này?
do nút nội không chức con trỏ dữ liệu; trong khi đó,
B-tree có cấu trúc của nút nội và nút lá giống nhau. a. Phân nửa số nút trong chỉ mục chứa các con trỏ dữ
liệu chỉ đến các bản ghi trong kết quả của phép chọn.
d. B+-tree có tổng số nút trong cây nhiều hơn hay ít
hơn B-tree. * b. Phân nửa số bản ghi trong tập tin thỏa điều kiện
chọn. *
e. Ý kiến khác.
c. Phân nửa số khối chỉ mục ở tầng lá chính là số
khối chứa các bản ghi trong kết quả của phép chọn.
Câu 12. Cho công thức tính chi phí cho phép toán
chọn (selection) dùng chỉ mục cụm với cấu trúc chỉ d. Chỉ phân nửa số khối dữ liệu trong tập tin cần
mục đa mức động B+-tree trong trường hợp điều kiện được kiểm tra điều kiện chọn.
chọn là điều kiện ―=‖ trên thuộc tính được chỉ mục: C e. Ý kiến khác.
= x + ┌s/bfr┐; trong đó, x là số mức của B+-tree, s là
số lượng bản ghi trả về trong kết quả của phép chọn, Câu 14. Cho kích thước vùng đệm (buffer) là bf = 4
bfr là hệ số phân khối của tập tin ban đầu cũng như khối (blocks). Tập tin dữ liệu Employee gồm 100
tập tin kết quả. Ý nghĩa của x và ┌s/bfr┐ trong công khối dữ liệu (bE = 100 blocks). Tập tin dữ liệu
thức là gì? Department gồm 5 khối dữ liệu (bD = 5 blocks). Thực
a. x là chi phí duyệt một khối ở từng mức trên chỉ hiện phép kết với điều kiện kết bằng giữa thuộc tính
mục để đến được khối chỉ mục chứa các con trỏ dữ DNO của Employee và DNUMBER của Department:
liệu đến các khối dữ liệu chứa kết quả tính theo số Employee  DNO = DNUMBERDepartment. Nếu phép
truy đạt khối; ┌s/bfr┐ là chi phí chọn từ tập tin dữ kết này được xử lý bằng phương pháp hai vòng lặp
liệu ra các bản ghi trong kết quả tính theo số truy đạt lồng (nested-loop join) với vùng đệm bf đã cho thì
khối. Employee hay Department nên được duyệt ở vòng
lặp ngoài (outer loop)?
b. x là chi phí duyệt tất cả các khối ở từng mức trên
chỉ mục để đến được khối chỉ mục chứa các con trỏ a. Department nên ở vòng lặp ngoài (outer loop) do
dữ liệu tính theo số truy đạt khối; ┌s/bfr┐ là chi phí tổng số truy đạt khối là ít nhất (305 block accesses). *
chọn từ tập tin dữ liệu ra các khối dữ liệu chứa các b. Department nên ở vòng lặp ngoài do tổng số truy
bản ghi trong kết quả từ các con trỏ dữ liệu trong chỉ đạt khối là ít nhất (350 block accesses).
mục tính theo số truy đạt khối. c. Employee ở vòng lặp ngoài do tổng số truy đạt
c. x là chi phí duyệt một số khối ở từng mức trên chỉ khối là ít nhất (305 block accesses).
mục để đến được các khối chỉ mục chứa các con trỏ d. Employee ở vòng lặp ngoài do tổng số truy đạt
dữ liệu tính theo số truy đạt khối; ┌s/bfr┐ là chi phí khối là ít nhất (350 block accesses).
chọn từ tập tin dữ liệu ra các khối dữ liệu chứa các
bản ghi trong kết quả từ các con trỏ dữ liệu trong chỉ e. Ý kiến khác.
mục tính theo số truy đạt khối.
d. x là chi phí duyệt một khối ở từng mức trên chỉ Phần giả thiết sau được sử dụng cho các câu 15-17.
mục để đến được khối chỉ mục chứa con trỏ dữ liệu Cho lược đồ cơ sở dữ liệu gồm hai bảng
chỉ đến khối dữ liệu đầu tiên chứa kết quả tính theo EMPLOYEE (ứng với tập tin dữ liệu EMPLOYEE)
số truy đạt khối; ┌s/bfr┐ là chi phí chọn từ tập tin dữ và DEPARTMENT (ứng với tập tin dữ liệu
liệu ra các khối dữ liệu chứa các bản ghi trong kết DEPARTMENT) được định nghĩa dưới đây. Các
quả tính theo số truy đạt khối. * thông tin cho việc truy đạt dữ liệu trong các tập tin dữ
3
liệu EMPLOYEE và DEPARTMENT cũng được cho trung bình (average selection cardinality) sSALARY =
tương ứng. 20.

Trên thuộc tính không khóa DNO, một chỉ mục thứ
CREATE TABLE EMPLOYEE (
cấp (secondary index) được định nghĩa gồm 2 mức
FNAME VARCHAR(15) NOT NULL, (xDNO = 2), số lượng khối ở tầng cơ sở (tầng lá)
MINIT CHAR, bl1DNO = 4 blocks, số lượng giá trị phân biệt tại thuộc
LNAME VARCHAR(15) NOT NULL, tính DNO là dDNO = 80, và lượng bản ghi được chọn
SSN CHAR(9) NOT NULL, trung bình sDNO = rE/dDNO = 62.
BDATE DATE,
Tập tin DEPARTMENT có:
ADDRESS VARCHAR(30),
SEX CHAR, Số lượng bản ghi rD = 80 records.
SALARY DECIMAL(10,2), Số lượng khối bD = 10 blocks.
SUPERSSN CHAR(9), Hệ số phân khối bfrD = 8 records/block.
DNO INT NOT NULL, Trên thuộc tính khóa DNUMBER, một chỉ mục sơ
PRIMARY KEY (SSN), cấp được định nghĩa gồm 1 mức (xDNUMBER = 1) với
FOREIGN KEY (SUPERSSN) REFERENCES lượng bản ghi được chọn trung bình là sDNUMBER = 1.
EMPLOYEE (SSN),
FOREIGN KEY (DNO) REFERENCES Trên thuộc tính không khóa MGRSSN, một chỉ mục
DEPARTMENT (DNUMBER)); thứ cấp được định nghĩa gồm 2 mức (xMGRSSN = 2)
với lượng bản ghi được chọn trung bình là sMGRSSN =
CREATE TABLE DEPARTMENT ( 1 và số lượng khối ở tầng cơ sở là bl1MGRSSN = 2.
DNAME VARCHAR(15) NOT NULL,
DNUMBER INT NOT NULL, Cho trước các hàm tính chi phí của phép chọn và
MGRSSN CHAR(9) NOT NULL, phép kết như sau:
MGRSTARTDATE DATE,
PRIMARY KEY (DNUMBER), Cost Functions for SELECT:
UNIQUE (DNAME),
FOREIGN KEY (MGRSSN) REFERENCES S1. Linear search (brute force) approach:
EMPLOYEE (SSN)); CS1a= b
For an equality condition on a key, CS1b = (b/2) if
Tập tin EMPLOYEE có: the record is found; otherwise CS1a= b.
S2. Binary search:
Số lượng bản ghi rE = 5000 records.
CS2= log2b + ┌ (s/bfr) ┐- 1
Số lượng khối bE = 1000 blocks.
Hệ số phân khối bfrE = 5 records/block. For an equality condition on a unique (key)
attribute: CS2 =log2b
Trên thuộc tính khóa SSN, một chỉ mục thứ cấp S3. Using a primary index (S3a) or hash key
(secondary index) được định nghĩa gồm 3 mức (xSSN (S3b) to retrieve a single record:
= 3) với lượng bản ghi được chọn trung bình là sSSN = CS3a= x + 1; CS3b = 1 for static or linear hashing;
1 và số lượng khối ở tầng cơ sở (tầng lá) là bl1SSN = CS3b = 2 for extendible hashing
30.
S4. Using an ordering index to retrieve
Trên thuộc tính không khóa SALARY, một chỉ mục multiple records:
cụm (clustering index) được định nghĩa gồm 3 mức For the comparison condition on a key field with
(xSALARY = 3), số lượng khối ở tầng cơ sở (tầng lá) an ordering index: CS4= x + (b/2)
bl1SALARY = 20 blocks, và lượng bản ghi được chọn S5. Using a clustering index to retrieve
multiple records for an equality condition:
4
CS5= x + ┌ (s/bfr) ┐ thi (execution plan) nào sau đây là hợp lý nhất cho
S6. Using a secondary (B+-tree) index: biểu thức truy vấn này?
For an equality comparison (=): CS6a= x + s a. Phương pháp chỉ mục sơ cấp trên vùng tin
For a comparison condition (>, <, >=, or <=): DNUMBER với chi phí là 2 block accesses.
CS6b= x + (bl1/2) + (r/2) b. Phương pháp tìm kiếm nhị phân trên vùng tin
DNUMBER với chi phí là 4 block accesses.
c. Phương pháp chỉ mục sơ cấp trên vùng tin
Cost Functions for JOIN:
DNUMBER với chi phí là 6 block accesses. *
J1. Nested-loop join:
d. Phương pháp tìm kiếm tuyến tính trên vùng tin
CJ1 = bR+ (bR*bS) + ((js* |R|* |S|)/bfrRS) DNUMBER với chi phí là 10 block accesses.
(Use R for outer loop) e. Ý kiến khác.
J2. Single-loop join(using an access structure to
retrieve the matching record(s)) Câu 17. Cho câu lệnh SQL như sau:
For a secondary index:
CJ2a = bR+ (|R| * (xB+ sB)) + ((js* |R|* |S|)/bfrRS) SELECT *
FROM EMPLOYEE AS E JOIN DEPARTMENT
For a clustering index:
AS D ON E.SSN = D.MGRSSN;
CJ2b = bR + (|R| * (xB+ (sB/bfrB))) + ((js* |R|*
|S|)/bfrRS) Cho trước độ chọn lọc kết (join selectivity) dành cho
For a primary index: biểu thức truy vấn trên là js = 1/rE = 1/5000; hệ số
CJ2c = bR + (|R| * (xB+ 1)) + ((js* |R|* |S|)/bfrRS) phân khối của tập tin kết quả kết từ biểu thức truy
vấn trên là bfrED = 6 records/block.
If a hash key exists for one of the two join
Khi xử lý biểu thức truy vấn trên dùng phương pháp
attributes — B of S:
kết một vòng lặp (single-loop join) dựa trên tối ưu
CJ2d = bR + (|R| * h) + ((js* |R|* |S|)/bfrRS) hóa truy vấn dùng chi phí, kế hoạch thực thi
(h: the average number of block accesses to retrieve a (execution plan) nào sau đây là hợp lý nhất cho biểu
record, given its hash key value, h>=1) thức truy vấn này?
J3. Sort-merge join: a. Tập tin EMPLOYEE được duyệt trên vòng lặp và
CJ3a = CS + bR+ bS + ((js* |R|* |S|)/bfrRS) tập tin DEPARTMENT được truy đạt với chỉ mục
(CS: cost for sorting files) thứ cấp trên vùng tin MGRSSN. Khi đó, chi phí là
16014 block accesses.
Câu 15. Cho biểu thức truy vấn chọn ra những nhân b. Tập tin EMPLOYEE được duyệt trên vòng lặp và
viên có lương bằng 1000 hoặc ở những phòng ban có tập tin DEPARTMENT được truy đạt với chỉ mục
mã là 5: SALARY=1000 OR DNO=5(EMPLOYEE). Xác thứ cấp trên vùng tin MGRSSN. Khi đó, chi phí là
định chi phí của bản kế hoạch thực thi được chọn 21014 block accesses.
nếu dùng tối ưu hóa truy vấn dựa trên chi phí (cost- c. Tập tin DEPARTMENT được duyệt trên vòng lặp
based optimization). và tập tin EMPLOYEE được truy đạt với chỉ mục thứ
a. 7 block accesses cấp trên vùng tin SSN. Khi đó, chi phí là 344 block
b. 64 block accesses accesses. *
c. 71 block accesses * d. Tập tin DEPARTMENT được duyệt trên vòng lặp
và tập tin EMPLOYEE được truy đạt với chỉ mục thứ
d. 1000 block accesses cấp trên vùng tin SSN. Khi đó, chi phí là 264 block
e. Ý kiến khác. accesses.
e. Ý kiến khác.
Câu 16. Cho biểu thức truy vấn chọn ra phòng ban
có mã lớn hơn 5: DNUMBER>5(DEPARTMENT). Dựa Câu 18. Chọn phát biểu ĐÚNG NHẤT về cơ chế xử
trên tối ưu hóa truy vấn dùng chi phí, kế hoạch thực lý của bộ tối ưu hóa truy vấn dùng qui tắc biến đổi
heuristic (heuristic rule-based query optimizer).
5
a. Ưu tiên thực hiện phép chọn trước phép kết. e. Ý kiến khác.
b. Ưu tiên xử lý tập tin dữ liệu nhỏ trước tập tin dữ
liệu lớn. Câu 21. Một giao tác (transaction) có thể bị ngưng
c. Ưu tiên thực hiện phép kết trước phép tích thực thi giữa chừng (aborted) trong tình huống nào?
Cartesian. a. Lỗi từ các tác vụ đọc/ghi dữ liệu trong giao tác xảy
d. Ưu tiên thực hiện các phép toán trả về kết quả ra.
(trung gian) ít hơn trước các phép toán trả về kết quả b. Lỗi tắt nguồn xảy ra.
nhiều hơn. * c. Yêu cầu ngưng thực thi từ trình điều khiển tương
e. Ý kiến khác. tranh (concurrency controller) được thực hiện.
d. Câu a, b, và c đều đúng. *
Câu 19. Điểm giống nhau giữa tối ưu hóa truy vấn
e. Ý kiến khác.
dùng qui tắc biến đổi heuristic và tối ưu hóa truy vấn
dùng chi phí là:
Câu 22. Cho các trình tự thực thi của các tác vụ trong
a. Tối ưu hóa truy vấn dùng qui tắc biến đổi heuristic các giao tác khác nhau. Xác định trình tự thực thi
và tối ưu hóa truy vấn dùng chi phí cho biết phương ĐÚNG là một lịch biểu (schedule).
thức truy đạt (access method) cụ thể nào là hiệu quả Giao tác T1: w1(X); r1(Y); w1(Y); r1(X)
và sẽ được dùng để thực hiện mỗi tác vụ. Giao tác T2: r2(Y); r2(X); w2(X); w2(Y)
b. Tối ưu hóa truy vấn dùng qui tắc biến đổi heuristic a. Trình tự S1: r1(X); r2(Y); w2(Y); w1(X); r1(Y);
và tối ưu hóa truy vấn dùng chi phí đều là quá trình r2(X); w2(X); w1(Y)
tìm ra một bản kế hoạch thực thi (execution plan) tốt
nhất có thể trong quá trình xử lý truy vấn. * b. Trình tự S2: r2(Y); r2(X); r1(X); r1(Y); w1(X);
w1(Y); w2(X); w2(Y)
c. Tối ưu hóa truy vấn dùng qui tắc biến đổi heuristic
chính là một dạng của tối ưu hóa truy vấn dùng chi c. Trình tự S3: w1(X); r2(Y); r2(X); r1(Y); w1(Y);
phí; tuy nhiên, chi phí trong tối ưu hóa truy vấn dùng w2(X); w2(Y); r1(X) *
qui tắc biến đổi heuristic không được tính toán cụ thể d. Trình tự S4: r2(Y); w2(Y); w1(X); r1(X); r1(Y);
và tường minh. w1(Y); r2(X); w2(X)
d. Tối ưu hóa truy vấn dùng qui tắc biến đổi heuristic e. Ý kiến khác.
và tối ưu hóa truy vấn dùng chi phí đều được sử dụng
phổ biến trong các hệ quản trị cơ sở dữ liệu ngày nay. Câu 23. Cho lịch biểu S5: r1(X); r2(Z); r1(Z); r3(X);
e. Ý kiến khác. r3(Y); w1(X); w3(Y); r2(Y); w2(Z); w2(Y); c1; c2; c3.
Xác định đặc điểm khả phục hồi (recoverability) của
Câu 20. Chọn phát biểu ĐÚNG về commit point của S5.
một giao tác T. a. Khả phục hồi (recoverable)
a. Điểm mà khi đó, tất cả các tác vụ của T đã được b. Không dắt dây (cascadeless)
thực hiện thành công và những tác động của T lên cơ c. Nghiêm cách (strict)
sở dữ liệu đã được ghi nhận trong sổ ghi hệ thống d. Không khả phục hồi (non-recoverable) *
(system log). *
e. Ý kiến khác.
b. Điểm mà khi đó, tất cả các tác vụ của T đã được
thực hiện thành công và những tác động của T lên cơ
Câu 24. Cho lịch biểu S6: r2(X); r1(Y); w2(X); r3(X);
sở dữ liệu đã được ghi nhận trong cơ sở dữ liệu.
w1(Y); r2(Y); w3(X); w2(Y). Xác định đặc điểm khả
c. Điểm mà khi đó, tất cả các tác vụ của T đã được tuần tự hóa (serializability) của S6.
tháo gỡ thành công và những tác động của T lên cơ
sở dữ liệu đã được xóa khỏi sổ ghi hệ thống. a. S6 không khả tuần tự hóa (non-serializable)
d. Điểm mà khi đó, tất cả các tác vụ của T đã được b. S6 khả tuần tự hóa xung đột (conflict serializable)
tháo gỡ thành công và những tác động của T lên cơ *
sở dữ liệu đã được xóa khỏi cơ sở dữ liệu.

6
c. Thông tin mô tả về lịch biểu S6 không đầy đủ nên e. Ý kiến khác.
không thể xác định được đặc điểm khả tuần tự hóa
của S6. Trình tự thực thi của T1 và T2 trong môi trường đa
d. S6 không có đặc điểm khả tuần tự hóa. người dùng không có điều khiển tương tranh:
e. Ý kiến khác. T1 T2 X (DB) Y (DB)
5 10
Read_item(X);
Câu 25. Lịch biểu S7 là một lịch biểu khả tuần tự hóa
Read_item(Y);
nghiêm cách (serializable and strict schedule). Chọn
Read_item(X);
phát biểu SAI về lịch biểu S7.
X := X-5;
a. Tồn tại một lịch biểu tuần tự tương đương Write_item(X); 0
(equivalent serial schedule) với lịch biểu S7. Read_item(X);
b. Việc phục hồi dành cho lịch biểu S7 sẽ khó khăn Read_item(Y);
hơn so với các lịch biểu khả tuần tự hóa không dắt Y := Y * 2;
dây (serializable and cascadeless schedule). * Write_item(Y); 20
c. Sổ ghi hệ thống (system log) không cần có mục tin Commit;
(entry) về các tác vụ đọc (read operation) của các Commit;
giao tác trong lịch biểu S7.
d. Khi một giao tác trong lịch biểu S7 bị ngưng thực Câu 28. Xác định giao tác mà trong đó, kỹ thuật khóa
thi (aborted), không có giao tác nào khác trong lịch hai pha (two-phase locking) được sử dụng ĐÚNG.
biểu S7 cùng bị ngưng thực thi kéo theo. a. Giao tác T1 *
e. Ý kiến khác.
Read_lock(X)
Câu 26. Cho lịch biểu S8: r2(A); r1(B); w2(A); r3(A); Read_item(X)
w1(B); w3(A); r2(B); w2(B). Xác định lịch biểu tuần Write_lock(Y)
tự tương đương (equivalent serial schedule) của S8
nếu có. Read_item(Y)
a. T1; T2; T3 * Unlock(X)
b. T3; T1; T2 Write_item(Y)
c. T3; T2; T1 Unlock(Y)
d. S không khả tuần tự hóa. Do đó, không tồn tại lịch
biểu tuần tự tương đương của S8.
e. Ý kiến khác. b. Giao tác T2
Read_lock(X)
Câu 27. Cho X = 5 và Y = 10 trong cơ sở dữ liệu Read_item(X)
(database - DB). Hai giao tác T1 và T2 thực thi đồng
thời trong môi trường đa người dùng nhưng điều Read_lock(X)
khiển tương tranh không được thực hiện như sau. Read_item(Y)
Giá trị hiện tại của X là 0 và giá trị hiện tại của Y là Unlock(X)
20 trong cơ sở dữ liệu. Sự thực thi đồng thời của 2
giao tác T1 và T2 gặp phải vấn đề tương tranh nào c. Giao tác T3
sau đây?
Write_lock(X)
a. Lost update
Read_item(X)
b. Temporary update/dirty read
c. Unrepeatable read * Write_lock(Y)
d. Phantom
7
Câu 30. Biến thể nào của kỹ thuật khóa hai pha
Write_item(Y)
không có khóa chết xảy ra khi thực hiện điều khiển
Unlock(Y) tương tranh việc thực thi đồng thời của các giao tác?
Write_item(X) a. Bảo thủ (conservative) *
Unlock(X) b. Nghiêm cách (strict)
c. Gia tăng/cơ bản (incremental/basic)
Unlock(Y)
d. Do kỹ thuật khóa hai pha sử dụng khóa để điều
khiển tương tranh nên khóa chết không thể tránh
d. Giao tác T4 được trong tất cả các biến thể của kỹ thuật khóa hai
Read_lock(X) pha.
e. Ý kiến khác.
Write_item(X)
Write_lock(Y) Câu 31. Điều gì ĐÚNG về sự tương thích khóa trong
Unlock(X) điều khiển tương tranh bằng kỹ thuật khóa hai pha đa
phiên bản với khóa chứng nhận (multiversion two-
Write_item(Y) phase locking using certify locks)?
Unlock(Y) a. Khóa đọc tương thích với khóa ghi nên nếu T1
đang giữ khóa ghi trên X để thực hiện tác vụ write(X)
e. Ý kiến khác. thì T2 vẫn có thể có được khóa đọc trên X để thực
hiện tác vụ read(X).
Câu 29. Cho lịch biểu S9 như sau. Trong lịch biểu b. Khóa ghi không tương thích với khóa ghi nên chỉ
S9, điều khiển tương tranh của các giao tác được thực có tối đa một khóa ghi trên X. Tác vụ write(X) của
hiện với kỹ thuật khóa hai pha. Khóa chết (deadlock) giao tác T1 sẽ bị từ chối nếu có giao tác T2 khác
có xảy ra với lịch biểu S9 không? đang giữ khóa ghi trên X.
c. Khóa ghi tương thích với khóa đọc nên giao tác T1
Lịch biểu S9: có thể có khóa ghi để thực hiện tác vụ write(X) trong
T1 T2 T3 khi các giao tác T2 khác đang giữ khóa đọc để thực
read_lock(A) hiện tác vụ read(X).
read_item(A) d. Câu a, b, và c đều đúng. *
write_lock(B) e. Ý kiến khác.
write_item(B)
read_lock(B)
read_lock(C) Câu 32. Cho lịch biểu S10 sau đây mà trong đó, các
read_item(C) giao tác T1 và T2 thực thi đồng thời dưới kỹ thuật
write_lock( C) điều khiển tương tranh khóa hai pha đa phiên bản với
khóa chứng nhận.

a. Không đủ thông tin về các giao tác để xác định liệu Lịch biểu S10:
khóa chết có xảy ra hay không. T1 T2
b. Chỉ khi các giao tác đạt đến điểm commit, thông Write_lock(Y)
tin về việc thực thi của các giao tác trong S9 mới có Read_lock(Y)
đầy đủ và khi đó, việc xác định liệu khóa chết có xảy Read_lock(X)
ra hay không mới được xác định đúng. Read_item(Y)
c. Không * Write_item(Y)
d. Có Read_item(X)
e. Ý kiến khác. Write_lock(X)
Certify_lock(Y)

8
Giao tác T1 có thể có được certify lock trên dữ liệu Y b. Giao tác T1 già hơn T3 và T4 đã đọc và ghi dữ liệu
trước khi T1 commit hay không? trước khi T3 ghi dữ liệu và T4 đọc dữ liệu. Do đó,
thứ tự đúng của các giao tác trong lịch biểu tuần tự
a. T1 không thể có được certify lock trên Y do T2 đã
tương đương bị vi phạm nên T3 và T4 bị ngưng và
đọc dữ liệu Y trước khi T1 cập nhật dữ liệu Y.
quay lui.
b. T1 có được certify lock trên Y do certify lock
c. Giao tác T3 ghi dữ liệu chậm hơn giao tác T1 và
tương thích với read lock và xung đột loại trừ với
T2 nên tác vụ ghi dữ liệu của T3 không cần thiết nữa
write lock và T2 chỉ giữ read lock trên Y.
nên T3 bị ngưng và quay lui; trong khi đó, T4 đọc dữ
c. T1 không thể có được certify lock trên Y do giao liệu từ cập nhật của T2 nhưng T2 chưa commit nên
tác T2 đang giữ read lock trên Y. * T4 cũng bị ngưng và quay lui.
d. Không đủ thông tin mô tả về lịch biểu nên không d. Giao tác T3 và T4 ghi và đọc dữ liệu từ các cập
thể xác định được liệu T1 có thể có được certify lock nhật của giao tác T1 và T2 nhưng T1 và T2 chưa
trên dữ liệu Y hay không. commit nên T3 và T4 bị ngưng và quay lui.
e. Ý kiến khác. e. Ý kiến khác.

Câu 33. Xác định lịch biểu tuần tự tương đương Câu 35. Cho lịch biểu S12 trong Bảng 1 mà trong
(equivalent serial schedule) với lịch biểu S11 sau đây đó, việc điều khiển tương tranh của các giao tác được
khi các giao tác của S11 được điều khiển tương tranh thực hiện bằng kỹ thuật đa phiên bản dựa trên sắp thứ
bằng kỹ thuật sắp thứ tự theo nhãn thời gian tự theo nhãn thời gian (multiversion technique based
(timestamp ordering). on timestamp ordering). Việc gì xảy ra khi giao tác
T3 đọc A, nghĩa là r3(A) diễn ra?
Lịch biểu S11:
T1 T2 T3 T4 A a. Giao tác T3 bị ngưng thực thi (aborted) do A đã
TS=150 TS=300 TS=175 TS=225 Read_TS=0; được cập nhật bởi giao tác T2 trẻ hơn.
Write_TS=0 b. Tác vụ đọc của giao tác T3 bị trì hoãn thực thi
R1(A) Read_TS=150 (delayed) cho đến khi giao tác T2 đã ghi A commit.
W1(A) Write_TS=150 c. Tác vụ đọc của giao tác T3 được thực hiện với
R2(A) Read_TS=300 phiên bản A0. *
W2(A) Write_TS=300
d. Tác vụ đọc của giao tác T3 được thực hiện với
W3(A) phiên bản A200.
Abort
R4(A) e. Ý kiến khác.
Abort
Câu 36. Cũng xem xét lịch biểu S12 trong Bảng 1
mà trong đó, việc điều khiển tương tranh của các giao
a. T1; T2; T3; T4
tác được thực hiện bằng kỹ thuật đa phiên bản dựa
b. T1; T4; T3; T2 trên sắp thứ tự theo nhãn thời gian (multiversion
c. T1; T2; T4; T3 technique based on timestamp ordering). Việc gì xảy
d. T1; T3; T4; T2 * ra khi giao tác T1 ghi A, nghĩa là w1(A) diễn ra?
e. Ý kiến khác. a. Phiên bản A150 được tạo ra với nhãn thời gian đọc
và ghi tương ứng là Read_TS = 150 và Write_TS =
Câu 34. Trong lịch biểu S11, tại sao T3 bị ngưng 150.
(abort) và quay lui (rollback) và sau đó, T4 cũng bị b. Tác vụ ghi của giao tác T1 được bỏ qua (ignored)
ngưng và quay lui? do giao tác T2 trẻ hơn đã ghi A trước.
a. Giao tác T2 trẻ hơn T3 và T4 đã đọc và ghi dữ liệu c. Tác vụ ghi của giao tác T1 được trì hoãn (delayed)
trước khi T3 ghi dữ liệu và T4 đọc dữ liệu. Do đó, cho đến khi giao tác T2 trẻ hơn đã ghi A trước
thứ tự đúng của các giao tác trong lịch biểu tuần tự commit.
tương đương bị vi phạm nên T3 và T4 bị ngưng và d. Tác vụ ghi của giao tác T1 không thể tạo phiên bản
quay lui. * A150 và bị từ chối (rejected) và giao tác T1 bị ngưng
9
thực thi và quay lui do phiên bản A0 gần nhất với
giao tác T1 đã được đọc bởi giao tác T2 trẻ hơn T1. *
e. Ý kiến khác.

Câu 37. Giả định (assumption) gì được sử dụng


trong kỹ thuật điều khiển tương tranh xác nhận hợp lệ
lạc quan (validation (optimistic) concurrency control
technique)?
a. Không có giả định gì về sự can thiệp lẫn nhau giữa
các giao tác trong lịch biểu.
b. Không tồn tại sự can thiệp lẫn nhau giữa các giao
tác trong lịch biểu.
c. Sự can thiệp lẫn nhau (interference) giữa các giao Ma trận tương thích khóa của kỹ thuật khóa đa mức
tác trong lịch biểu thấp. * dữ liệu
d. Sự can thiệp lẫn nhau giữa các giao tác trong lịch
biểu cao. Câu 40. Cho phân cấp cơ sở dữ liệu trong Hình 10.
e. Ý kiến khác. Giao tác T1 thực hiện các tác vụ sau: đọc tập tin f2 và
cập nhật bản ghi r221. Xác định việc khóa đa mức dữ
liệu được thực hiện trong T1 với kỹ thuật khóa đa
Câu 38. Trong kỹ thuật điều khiển tương tranh xác
mức dữ liệu.
nhận hợp lệ lạc quan, việc cập nhật dữ liệu X của một
giao tác T sẽ được thực hiện như thế nào?
a. IX(db)
a. Giá trị mới của dữ liệu X được ghi nhận vào cơ sở
S(f2)
dữ liệu và các giao tác khác có thể thấy cập nhật này
khi đọc dữ liệu X từ cơ sở dữ liệu. IX(p22)
b. Giá trị mới của dữ liệu X được ghi nhận thành các Read(f2)
phiên bản cục bộ của giao tác T và các giao tác khác X(r221)
không thể thấy cập nhật này khi đọc dữ liệu X. * Write(r221)
c. Giá trị mới của dữ liệu X được ghi nhận vào sổ ghi Unlock(r221)
hệ thống (system log) và các giao tác khác có thể thấy Unlock(p22)
cập nhật này từ việc đọc sổ ghi hệ thống.
Unlock(f2)
d. Giá trị mới của dữ liệu X được ghi nhận thành các
phiên bản cục bộ của giao tác T và các giao tác khác Unlock(db)
có thể thấy cập nhật này khi liên lạc với giao tác T.
e. Ý kiến khác. b. IX(db) *
SIX(f2)
Câu 39. Trong ma trận tương thích khóa (lock IX(p22)
compatibility matrix) dưới đây của kỹ thuật khóa đa X(r221)
mức dữ liệu (multiple granularity locking technique),
Read(f2)
khóa IX (intention-exclusive) tương thích với khóa
nào? Write(r221)
Unlock(r221)
a. IS *
Unlock(p22)
b. S
Unlock(f2)
c. SIX
Unlock(db)
d. X
e. Ý kiến khác.
c. IX(db)
10
IX(f2) b. *
IX(p22) [start_transaction, T2]
X(r221) [start_transaction, T3]
Read(p22) [write_item, T2, Z, old_value, new_value]
[write_item, T3, Y, old_value, new_value]
Write(r221)
[write_item, T2, Y, old_value, new_value]
Unlock(r221) [commit, T3]
Unlock(p22) [commit, T2]
Unlock(f2)
Unlock(db) c.
[start_transaction, T2]
d. IX(db) [start_transaction, T3]
SIX(f2) [write_item, T2, Z, old_value]
Read(f2) [write_item, T3, Y, old_value]
[write_item, T2, Y, old_value]
Unlock(f2)
[commit, T3]
Unlock(db) [commit, T2]
IX(db)
IX(f2) d. Do đặc điểm khả phục hồi và khả tuần tự hóa của
IX(p22) lịch biểu S13 không rõ ràng nên không thể xác định
X(r221) được nội dung của sổ ghi hệ thống tương ứng với
Write(r221) trình tự thực thi của lịch biểu S13.
Unlock(r221) e. Ý kiến khác.
Unlock(p22)
Câu 42. Cho lịch biểu S14 như sau. Giả sử ngay sau
Unlock(f2) khi T1 commit, hệ thống gặp lỗi và giao tác T2 bị
Unlock(db) ngưng thực thi (abort). Các thao tác phục hồi gì cần
xem xét cho các giao tác T1 và T2 khi hệ thống trở
e. Ý kiến khác. lại bình thường? Ghi chú: W1(D, 20, 25) có nghĩa là
giao tác T1 cập nhật dữ liệu D từ giá trị cũ 20 sang
giá trị mới 25.
Câu 41. Cho lịch biểu S13: r2(Z); r3(X); r2(Y); r3(Y);
w2(Z); w3(Y); w2(Y); c3; c2. Xác định nội dung của sổ
Lịch biểu S14:
ghi hệ thống (system log) tương ứng với trình tự thực
T1 T2 T3
thi của lịch biểu S13.
R2(C)
a. W2(B, 15, 12)
[start_transaction, T2] R3(B)
[read_item, T2, Z] W3(B, 12, 18)
[start_transaction, T3] R1(A)
[read_item, T3, X] R1(D)
[read_item, T2, Y] W1(D, 20, 25)
[read_item, T3, Y] R3(D)
[write_item, T2, Z, old_value, new_value] W3(D, 25, 26)
[write_item, T3, Y, old_value, new_value] R2(A)
[write_item, T2, Y, old_value, new_value] W2(A, 30, 22)
[commit, T3] Commit
[commit, T2] Abort

11
a. Tái thực hiện (redo) cần xem xét cho T1 và tháo gỡ Câu 44. Cũng xem xét lịch biểu S14 ở câu 42. Giả sử
(undo) cần xem xét cho T2. * cần tháo gỡ cho tác vụ W1(D, 20, 25). Việc tháo gỡ
b. Tháo gỡ cần xem xét cho T1 và tái thực hiện cần này sẽ làm gì với D trong cơ sở dữ liệu?
xem xét cho T2. a. Cập nhật giá trị của D thành 25.
c. Tái thực hiện và tháo gỡ đều cần xem xét cho mỗi b. Cập nhật giá trị của D thành 20. *
giao tác: T1 và T2. c. Cập nhật giá trị của D từ 20 sang 25.
d. Không cần xem xét thực hiện phục hồi gì do T1 đã d. Cập nhật giá trị của D từ 25 sang 20.
commit nên đã được hệ thống ghi nhận các cập nhật e. Ý kiến khác.
vào cơ sở dữ liệu; trong khi đó, T2 chưa commit nên
các cập nhật của T2 chưa được ghi nhận vào cơ sở dữ Câu 45. Cũng xem xét lịch biểu S14 ở câu 42. T3 sẽ
liệu. thế nào sau khi T2 bị ngưng thực thi (abort) và quay
e. Ý kiến khác. lui (rollback)?
a. T3 sẽ tiếp tục thực thi đến khi đạt điểm commit của
Câu 43. Cũng xem xét lịch biểu S14 ở câu 42. Giả sử T3.
cần tái thực hiện cho tác vụ W1(D, 20, 25). Việc tái b. T3 sẽ tiếp tục thực thi đến khi hệ thống ngưng
thực hiện này sẽ làm gì với D trong cơ sở dữ liệu? hoàn toàn.
a. Cập nhật giá trị của D từ 20 sang 25. c. T3 sẽ bị ngưng thực thi và quay lui do T3 đã đọc
b. Cập nhật giá trị của D từ 25 sang 20. dữ liệu D mà dữ liệu này được cập nhật bởi giao tác
c. Cập nhật giá trị của D thành 25. * T1 trước đó nhưng khi đó T1 vẫn chưa commit.
d. Cập nhật giá trị của D thành 20. d. T3 sẽ bị ngưng thực thi và quay lui do T3 đã đọc
e. Ý kiến khác. dữ liệu B mà dữ liệu này đã được cập nhật bởi giao
tác T2 trước đó nhưng đã bị ngưng thực thi. *
e. Ý kiến khác.

Hình 1 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 được tạo trên vùng tin khóa ID (Câu 7.a)

Hình 2 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 được tạo trên vùng tin khóa ID (Câu 7.b)

12
Hình 3 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 được tạo trên vùng tin khóa ID (Câu 7.c)

Hình 4 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 được tạo trên vùng tin khóa ID (Câu 7.d)

Hình 5 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 (Câu 9, 10, và 11)

Hình 6 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 sau khi cập nhật xóa nhân viên Q có mã nhân viên là 3
(Câu 10.a)

13
Hình 7 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 sau khi cập nhật xóa nhân viên Q có mã nhân viên là 3
(Câu 10.b)

Hình 8 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 sau khi cập nhật xóa nhân viên Q có mã nhân viên là 3
(Câu 10.c)

Hình 9 – Cây chỉ mục B+-tree có bậc p = 3 và pleaf = 2 sau khi cập nhật xóa nhân viên Q có mã nhân viên là 3
(Câu 10.d)

14
Hình 10 – Phân cấp dữ liệu (Câu 40)

Bảng 1 – Lịch biểu S12 với kỹ thuật điều khiển tương tranh đa phiên bản dùng sắp thứ tự
theo nhãn thời gian (Câu 35, 36)
T1 T2 T3 A0 A200
TS=150 TS=200 TS=175 Read_TS=0; Read_TS=200;
Write_TS=0 Write_TS=200
r1(A) Read_TS=150
r2(A) Read_TS=200
w2(A) Created
r3(A)
w1(A)

15
Họ - Tên: ……………………………………………………………………………….
Mã Số Sinh Viên: ………………………………………………………………………

Phần trả lời:

Câu 1 - 15:
Câu 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
a X x x x
b x x X x
c X x x x
d x x x
e

Câu 16 - 30:
Câu 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
a X X x x
b x x X
c x x x x x
d x X x
e

Câu 31 - 45:
Câu 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
a x x x
b x x x x
c x x x x
d x x x X
e

Phần giải thích đáp án (e) nếu có:

16
Môn: Hệ Quản Trị Cơ Sở Dữ Liệu (503004)
Học kỳ 1 - 2012-2013
Ngày thi: 25/12/2012
Phòng thi: 503 C4
Mã đề: 11

You might also like