Tải bản đầy đủ (.pdf) (21 trang)

Bài tập cơ sở dữ liệu phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (175.22 KB, 21 trang )

Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán
Bài 1

Cho một lược đồ toàn cục (global schema) như sau:
câulạcbộ (mãclb, tênclb, tênkhoa)
giảngviên (
mãgv, họtêngv, mãclb)
sinhviên (mãsv, họtênsv, mãclb)
lớpnăngkhiếu (
mãlớp, ngàymở, mãgv, họcphí)
biênlai (
sốbl, tháng, năm, mãlớp, mãsv, sốtiền)
Ý nghóa của các quan hệ toàn cục trên như sau:
câulạcbộù
mã câu lạc bộ (mãclb), tên câu lạc bộ (tênclb), thuộc khoa tênkhoa
giảngviên
mã giảng viên (mãgv), họ tên giảng viên (họtêngv), thuộc câu lạc bộ
(mãclb)
sinhviên
mã sinh viên (mãsv), họ tên sinh viên (họtênsv), thuộc câu lạc bộ
(mãclb)
lớpnăngkhiếu
mã lớp (mãlớp), mở vào ngày (ngàymở), do giảng viên (mãgv) dạy và
có tiền học phí (họcphí)
biênlai
số biên lai (sốbl) của sinh viên (mãsv) đóng tiền học phí (sốtiền) cho
lớp (mãlớp) trong tháng, năm
Các thuộc tính được gạch dưới là các thuộc tính khóa, các khóa ngoại khác rỗng.
Hãy viết các biểu thức phân mảnh như sau:
câulạcbộ được phân thành các mảnh ngang tương ứng với các giá trò ‘K1’, ‘K2’ và
‘K3’ của tênkhoa.


giảngviên, sinhviên được phân mảnh ngang theo câulạcbộ dựa vào mãclb.
lớpnăngkhiếu được phân mảnh ngang theo giảngviên dựa vào mãgv.
biênlai được phân mảnh ngang theo lớpnăngkhiếu dựa vào mãlớp.
Sau đó, hãy thực hiện các câu sau đây ở mức 1 (fragmentation transparency)
và mức 2 (location transparency):
Câu 1. Hãy sửa câu lạc bộ có mã câu lạc bộ từ 5 thuộc khoa ‘K3’ thành mã câu lạc bộ
1 thuộc khoa ‘K2’.
Câu 2. Hãy cho biết số biên lai, tháng, năm, số tiền của các biên lai thuộc các lớp do
giảng viên có mã ‘GV5’ dạy.
Câu 3. Nhập vào mã lớp và mã sinh viên lần lượt gán cho các biến $mãlớp và $mãsv,
hãy cho biết tổng số tiền mà sinh viên này đóng tiền học phí cho lớp này.

1
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán
Câu 4. Hãy cho biết mã lớp, ngày mở của các lớp mà các lớp này được mở trong tháng
08 năm 1998.


2
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán

Bài 2

Cho một lược đồ toàn cục (global schema) như sau:
bộmôn (mãbm, tênbm, tênkhoa)
giảngviên (mãgv, họtên, phái, tuổi, đòa chỉ, mãbm)
mônhọc (
mãmh, tênmh, mãbm, sốtiết)
đềán (
mãđa, tênđa, mãgv, kếtquả)

dạy (mãgv, mãmh)
Ý nghóa của các quan hệ toàn cục trên như sau:
bộmôn
mã bộ môn (mãbm), tên bộ môn (tênbm), thuộc khoa (tênkhoa)
giảngviên
mã giảng viên (mãgv), họ tên giảng viên (họtên), phái (phái), tuổi (tuổi),
đòa chỉ (đòachỉ), thuộc bộ môn (mãbm)
mônhọc
mã môn học (mãmh), tên môn học (tênmh), thuộc bộ môn (mãbm)
đềán
mã đề án (mãđa), tên đề án (tênđa), do giảng viên (mãgv) hướng dẫn, có
kết quả đánh giá (kếtquả)
dạy
giảng viên (mãgv) dạy môn học (mãmh)
Các thuộc tính được gạch dưới là các thuộc tính khóa, các khóa ngoại khác rỗng.
Hãy viết các biểu thức phân mảnh như sau:
bộmôn được phân thành các mảnh ngang tương ứng với các giá trò ‘K1’ và ‘K2’ của
tênkhoa.
mônhọc, giảngviên được phân mảnh ngang theo bộmôn dựa vào mãbm.
đềán, dạy được phân mảnh ngang theo giảngviên dựa vào mãgv.
Sau đó, hãy thực hiện các câu sau đây ở mức 1 (fragmentation transparency)
và mức 2 (location transparency):
Câu 1. Nhập vào mã bộ môn và gán cho biến $mãbm, hãy cho biết mã môn học, tên
môn học của các môn học thuộc bộ môn này mà chưa có giảng viên nào dạy.
Câu 2. Nhập vào mã giảng viên và gán cho biến $mãgv, hãy cho biết mã môn học, tên
môn học của các môn học do giảng viên này dạy và các môn học này không thuộc bộ
môn của giảng viên này.
Câu 3. Hãy cho biết mã bộ môn, tên bộ môn của các bộ môn mà có giảng viên phái
‘Nam’ và các giảng viên này không dạy bất kỳ môn học nào.
Câu 4. Nhập vào mã giảng viên và gán cho biến $mãgv, hãy cho biết mã đề án, tên đề

án của các đề án do giảng viên này thực hiện và kết quả được đánh giá là “tốt”.

3
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán
Câu 5. Nhập vào mã giảng viên và gán cho biến $mãgv, hãy cho biết mã môn học, tên
môn học của các môn học do giảng viên này dạy vàø các môn học này thuộc bộ môn
của giảng viên này.
Câu 6. Nhập vào mã bộ môn và gán cho biến $mãbm, hãy cho biết mã đề án, tên đề án
của các đề án do các giảng viên thuộc bộ môn này thực hiện.
Câu 7. Hãy cho biết mã môn học, tên môn học của các môn học mà chưa có giảng viên
nào dạy.
Câu 8. Mảnh giảngviên của khoa ‘K1’ được chia thành hai mảnh dựa vào hai tập thuộc
tính: tập {mãgv, họtên, phái} và tập {mãgv, ngàysinh, đòachỉ, mãbm}. Mảnh giảngviên
của khoa ‘K2’ được chia thành hai mảnh dựa vào hai tập thuộc tính: tập {mãgv, họtên,
mãbm} và tập {mãgv, phái, ngàysinh, đòachỉ}. Được biết bộ môn mã ‘BM1’ thuộc khoa
‘K1’ và bộ môn mã ‘BM2’ thuộc khoa ‘K2’. Hãy sửa mã bộ môn từ ‘BM1’ thành
‘BM2’ của giảng viên có mã ‘GV1’.
Câu 9. Nhập vào tên bộ môn và gán cho biết $tênbm, hãy cho biết mã giảng viên, họ
tên của các giảng viên thuộc bộ môn này mà có tuổi lớn hơn 50.
Câu 10. Hãy cho biết mã giảng viên, họ tên của các giảng viên có tuổi lớn nhất so với
các giảng viên khác thuộc cùng bộ môn của mình.
Câu 11. Nhập vào mã bộ môn và gán cho biến $mãbm, hãy cho biết có bao nhiêu môn
học khác nhau mà các giảng viên thuộc bộ môn này đã dạy.
Câu 12. Nhập vào mã bộ môn và gán cho biến $mãbm, hãy cho biết mã giảng viên, họ
tên của các giảng viên thuộc bộ môn này mà có tổng số tiết dạy nhỏ nhất so với tất cả
giảng viên của tất cả bộ môn.
Câu 13. Hãy cho biết mã giảng viên, họ tên của các giảng viên không dạy bất kỳ môn
học nào.
Câu 14. Nhập vào mã bộ môn và gán cho biến $mãbm, hãy cho biết tổng số tiết của
các môn học thuộc bộ môn này quản lý mà các môn học này có giảng viên dạy.

Câu 15. Hãy cho biết mã giảng viên và họ tên của các giảng viên dạy nhiều môn nhất.
Chỉ xét các giảng viên có dạy.
Câu 16. Hãy cho biết mã bộ môn, tên bộ môn và số lượng môn học của mỗi bộ môn
với điều kiện số lượng môn học từ 5 trở lên.
Câu 17. Hãy cho biết mã bộ môn, tên bộ môn và số lượng giảng viên của mỗi bộ môn
với điều kiện số lượng giảng viên từ 10 trở lên.
Câu 18. Hãy cho biết mã môn học và tên môn học của các môn học có số lượng giảng
viên dạy nhiều nhất.
Câu 19. Nhập vào mã bộ môn và gán cho biến $mãbm, hãy cho biết mã giảng viên, họ
tên của các giảng viên thuộc bộ môn này quản lý và chưa có dạy môn học nào.


4
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán
Bài 3

Cho một lược đồ toàn cục (global schema) như sau:
bộmôn (mãbm, tênbm, tênkhoa)
giảngviên (
mãgv, họtên, phái, tuổi, đòa chỉ, mãbm)
mônhọc (mãmh, tênmh, mãbm, sốtiết)
đềán (
mãđa, tênđa, mãgv, kếtquả)
dạy (
mãgv, mãmh)
Ý nghóa của các quan hệ toàn cục trên như sau:
bộmôn
mã bộ môn (mãbm), tên bộ môn (tênbm), thuộc khoa (tênkhoa)
giảngviên
mã giảng viên (mãgv), họ tên giảng viên (họtên), phái (phái), tuổi (tuổi),

đòa chỉ (đòachỉ), thuộc bộ môn (mãbm)
mônhọc
mã môn học (mãmh), tên môn học (tênmh), thuộc bộ môn (mãbm)
đềán
mã đề án (mãđa), tên đề án (tênđa), do giảng viên (mãgv) hướng dẫn, có
kết quả đánh giá (kếtquả)
dạy
giảng viên (mãgv) dạy môn học (mãmh)
Các thuộc tính được gạch dưới là các thuộc tính khóa, các khóa ngoại khác rỗng.
Hãy viết các biểu thức phân mảnh như sau:
bộmôn được phân thành các mảnh ngang tương ứng với các giá trò ‘K1’ và ‘K2’ của
tênkhoa.
mônhọc, giảngviên được phân mảnh ngang theo bộmôn dựa vào mãbm.
đềán được phân mảnh ngang theo giảngviên dựa vào mãgv.
dạy được phân mảnh ngang theo mônhọc dựa vào mãmh.
Sau đó, hãy thực hiện các câu sau đây ở mức 1 (fragmentation transparency)
và mức 2 (location transparency):
Câu 1. Nhập vào mã bộ môn và gán cho biến $mãbm, hãy cho biết mã môn học, tên
môn học của các môn học thuộc bộ môn này mà chưa có giảng viên nào dạy.
Câu 2. Nhập vào mã giảng viên và gán cho biến $mãgv, hãy cho biết mã môn học, tên
môn học của các môn học do giảng viên này dạy và các môn học này không thuộc bộ
môn của giảng viên này.
Câu 3. Hãy cho biết mã bộ môn, tên bộ môn của các bộ môn mà có giảng viên phái
‘Nam’ và các giảng viên này không dạy bất kỳ môn học nào.
Câu 4. Nhập vào mã giảng viên và gán cho biến $mãgv, hãy cho biết mã đề án, tên đề
án của các đề án do giảng viên này thực hiện và kết quả được đánh giá là “tốt”.

5
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán
Câu 5. Nhập vào mã giảng viên và gán cho biến $mãgv, hãy cho biết mã môn học, tên

môn học của các môn học do giảng viên này dạy vàø các môn học này thuộc bộ môn
của giảng viên này.
Câu 6. Nhập vào mã bộ môn và gán cho biến $mãbm, hãy cho biết mã đề án, tên đề án
của các đề án do các giảng viên thuộc bộ môn này thực hiện.
Câu 7. Hãy cho biết mã môn học, tên môn học của các môn học mà chưa có giảng viên
nào dạy.
Câu 8. Mảnh giảngviên của khoa ‘K1’ được chia thành hai mảnh dựa vào hai tập thuộc
tính: tập {mãgv, họtên, phái} và tập {mãgv, ngàysinh, đòachỉ, mãbm}. Mảnh giảngviên
của khoa ‘K2’ được chia thành hai mảnh dựa vào hai tập thuộc tính: tập {mãgv, họtên,
mãbm} và tập {mãgv, phái, ngàysinh, đòachỉ}. Được biết bộ môn mã ‘BM1’ thuộc khoa
‘K1’ và bộ môn mã ‘BM2’ thuộc khoa ‘K2’. Hãy sửa mã bộ môn từ ‘BM1’ thành
‘BM2’ của giảng viên có mã ‘GV1’.
Câu 9. Nhập vào tên bộ môn và gán cho biết $tênbm, hãy cho biết mã giảng viên, họ
tên của các giảng viên thuộc bộ môn này mà có tuổi lớn hơn 50.
Câu 10. Hãy cho biết mã giảng viên, họ tên của các giảng viên có tuổi lớn nhất so với
các giảng viên khác thuộc cùng bộ môn của mình.
Câu 11. Nhập vào mã bộ môn và gán cho biến $mãbm, hãy cho biết có bao nhiêu môn
học khác nhau mà các giảng viên thuộc bộ môn này đã dạy.
Câu 12. Nhập vào mã bộ môn và gán cho biến $mãbm, hãy cho biết mã giảng viên, họ
tên của các giảng viên thuộc bộ môn này mà có tổng số tiết dạy nhỏ nhất so với tất cả
giảng viên của tất cả bộ môn.
Câu 13. Hãy cho biết mã giảng viên, họ tên của các giảng viên không dạy bất kỳ môn
học nào.
Câu 14. Nhập vào mã bộ môn và gán cho biến $mãbm, hãy cho biết tổng số tiết của
các môn học thuộc bộ môn này quản lý mà các môn học này có giảng viên dạy.
Câu 15. Hãy cho biết mã giảng viên và họ tên của các giảng viên có số lương môn học
dạy nhiều nhất. Chỉ xét các giảng viên có dạy.
Câu 16. Hãy cho biết mã bộ môn, tên bộ môn và số lượng môn học của mỗi bộ môn
với điều kiện số lượng môn học từ 5 trở lên.
Câu 17. Hãy cho biết mã bộ môn, tên bộ môn và số lượng giảng viên của mỗi bộ môn

với điều kiện số lượng giảng viên từ 10 trở lên.
Câu 18. Hãy cho biết mã môn học và tên môn học của các môn học có số lượng giảng
viên dạy nhiều nhất.
Câu 19. Nhập vào mã bộ môn và gán cho biến $mãbm, hãy cho biết mã giảng viên, họ
tên của các giảng viên thuộc bộ môn này quản lý và chưa có dạy môn học nào.

6
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán

Bài 4

Cho một lược đồ toàn cục (global schema) như sau:
khoa (mskhoa, tênkhoa)
mônhọc (msmh, tênmh)
ctđàotạo (
mskhoa, khóahọc, msmh)
sinhviên (
mssv, họtên, mskhoa, khóahọc)
đăngký (mssv, msmôn, điểmthi)
Ý nghóa của các quan hệ toàn cục trên như sau:
khoa
mã khoa (mskhoa), tên khoa (tênkhoa)
mônhọc
mã môn học (msmh), tên môn học (tênmh)
ctđàotạo
chương trình đào tạo: khoa (mskhoa), khóa học (khóahọc), học môn học
(msmh). Chương trình đào tạo của một khoa–khóa học qui đònh các môn học
mà sinh viên thuộc khoa–khóa học này phải học đạt thì mới được tốt
nghiệp.
sinhviên

mã sinh viên (mssv), họ tên sinh viên (họtên), thuộc khóa học (khóahọc) của
khoa (mskhoa)
đăngký
mã sinh viên (mssv) học môn học (msmôn) có điểm thi (điểmthi)
Các thuộc tính được gạch dưới là các thuộc tính khóa, các khóa ngoại khác rỗng.
Hãy viết các biểu thức phân mảnh như sau:
khoa được phân thành các mảnh ngang tương ứng với các giá trò ‘K1’ và ‘K2’ của
tênkhoa.
ctđàotạo, sinhviên được phân mảnh ngang theo khoa dựa vào mskhoa.
đăngký được phân mảnh ngang theo sinhviên dựa vào mssv.
Sau đó, hãy thực hiện các câu sau đây ở mức 1 (fragmentation transparency)
và mức 2 (location transparency):
Câu 1. Nhập vào mã sinh viên và gán cho biến $mssv, hãy cho biết tên môn học, điểm
thi của tất cả môn học mà sinh viên này đã học và đạt từ điểm 5 trở lên.
Câu 2. Nhập vào tên khoa và gán cho biến $tênkhoa, hãy cho biết tất cả các khóa học
của khoa này.
Câu 3. Nhập vào mã sinh viên và gán cho biến $mssv, hãy cho biết mã môn học, tên
môn học của các môn học trong chương trình đào tạo mà sinh viên này bắt buộc phải
học đạt (có điểm thi từ 5 trở lên) thì mới được tốt nghiệp.

7
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán
Câu 4. Hãy cho biết mã sinh viên, ho tên của các sinh viên đủ điều kiện để tốt nghiệp.

8
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán

Bài 5

Cho một lược đồ toàn cục (global schema) như sau:

lớp (mslớp, tênlớp, khoa)
sinhviên (mssv, họtên, phái, ngàysinh, mslớp, họcbổng)
đăngký (
mssv, msmôn, điểm1, điểm2, điểm3)
Ý nghóa của các quan hệ toàn cục trên như sau:
lớp
mã lớp (mslớp), tên lớp (tênlớp), thuộc khoa (khoa)
sinhviên
mã sinh viên (mssv), họ tên sinh viên (họtên), phái (phái), ngày sinh
(ngàysinh), thuộc lớp (mslớp), được tiền học bổng (họcbổng)
đăngký
mã sinh viên (mssv) học môn học (msmôn) có điểm của ba lần thi (điểm1,
điểm2, điểm3)
Các thuộc tính được gạch dưới là các thuộc tính khóa, các khóa ngoại khác rỗng.
Hãy viết các biểu thức phân mảnh như sau:
lớp được phân thành các mảnh ngang tương ứng với các giá trò ‘K1’ và ‘K2’ của khoa;
giả sử mslớp chỉ có ba giá trò là ‘L1’ và ‘L2’ thuộc khoa ‘K1’, ‘L3’ thuộc khoa ‘K2’.
sinhviên được phân mảnh ngang theo lớp dựa vào mslớp.
đăngký được phân mảnh dọc dựa vào hai tập thuộc tính: mảnh đăngkýa có các thuộc
tính {mssv, msmôn, điểm1} và mảnh đăngkýb có các thuộc tính {mssv, msmôn, điểm2,
điểm3}. Mảnh đăngkýb lại được phân mảnh ngang theo sinhviên dựa vào mssv.
Sau đó, sinh viên hãy thực hiện các câu sau đây ở mức 1 (fragmentation
transparency) và mức 2 (location transparency):
Câu 1. Nhập vào mã sinh viên và gán cho biến $mssv, hãy cho biết khoa của sinh viên
này.
Câu 2. Nhập vào mã sinh viên và gán cho biến $mssv, hãy cho biết ba điểm (gồm
điểm1, điểm2 và điểm3) của tất cả các môn học mà sinh viên này đăng ký.

9
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán


Bài 6

Cho một lược đồ toàn cục (global schema) như sau:
độibóng (mãđb, tênđb, clbộ)
cầuthủ (mãct, họtên, mãđb)
trậnđấu (
mãtđ, mãđb1, mãđb2, trọngtài, sânđấu)
thamgia (
mãtđ, mãct, sốtrái)
Ý nghóa của các quan hệ toàn cục trên như sau:
độibóng
mã đội bóng (mãđb), tên đội bóng (tênđb), thuộc câu lạc bộ (clbộ)
cầuthủ
mã cầu thủ (mãct), họ tên (họtên), thuộc đội bóng (mãđb)
trậnđấu
mã trận đấu (mãtđ), có trọng tài chính (trọngtài) điều khiển trận đấu diễn ra
tại sân đấu (sânđấu). Mỗi trận đấu chỉ có 2 đội bóng khác nhau là mãđb1 và
mãđb2 đấu với nhau.
thamgia
cầu thủ (mãct) tham gia vào trận đấu (mãtđ) và có số trái bóng đá lọt lưới
đối phương (sốtrái), nếu cầu thủ không ghi bàn thì sốtrái bằng 0.
Các thuộc tính được gạch dưới là các thuộc tính khóa, các khóa ngoại khác rỗng.
Hãy viết các biểu thức phân mảnh như sau:
độibóng được phân thành các mảnh ngang tương ứng với các giá trò ‘CLB1’ và ‘CLB2’
của clbộ.
cầuthủ được phân mảnh ngang theo độibóng dựa vào mãđb.
trậnđấu được phân thành các mảnh ngang tương ứng với các giá trò ‘SD1’ và ‘SD2’
của sânđấu.
thamgia được phân mảnh ngang theo trậnđấu dựa vào mãtđ.

Sau đó, hãy thực hiện các câu sau đây ở mức 1 (fragmentation transparency)
và mức 2 (location transparency):
Câu 1. Nhập vào câu lạc bộ và gán cho biến $clbộ, hãy cho biết mã cầu thủ, họ tên
của các cầu thủ thuộc câu lạc bộ này.
Câu 2. Nhập vào họ tên cầu thủ và gán cho biến $họtên, hãy cho biết cầu thủ này tham
gia bao nhiêu trận đấu.
Câu 3. Nhập vào sân đấu và gán cho biến $sânđấu, hãy cho biết sân đấu này có bao
nhiêu trận đấu hòa (số trái bóng đá lọt lưới đối phương của hai đội bóng đấu với nhau
là bằng nhau).
Câu 4. Hãy cho biết mã cầu thủ, họ tên của các cầu thủ là vua phá lưới (có tổng số trái
bóng đá lọt lưới đối phương của tất cả các trận đấu là nhiều nhất).

10
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán
Câu 5. Nhập vào họ tên cầu thủ và trọng tài lần lượt gán cho các biến $họtên và
$trọngtài, hãy cho biết mã trận đấu của các trận đấu do trọng tài này điều khiển và có
cầu thủ này tham gia các trận đấu này.
Câu 6. Nhập vào họ tên của hai cầu thủ lần lượt gán cho các biến $họtên1 và $họtên2,
hãy cho biết hai cầu thủ này thuộc cùng một câu lạc bộ không?
Câu 7. Hãy cho biết mã cầu thủ, họ tên của các cầu thủ có tham gia trận đấu nhưng
tổng số trái bóng đá lọt lưới đối phương của mỗi cầu thủ này bằng 0.
Câu 8. Hãy cho biết mã cầu thủ, họ tên của các cầu thủ tham gia từ ba trận đấu trở lên.
Câu 9. Nhập vào mã đội bóng và gán cho biến $mãđb, hãy cho biết tổng số trái bóng
đá lọt lưới đối phương của đội bóng này tại tất cả các trận đấu.
Câu 10. Hãy cho biết mã cầu thủ, họ tên của các cầu thủ chưa tham gia các trận đấu
nào.

11
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán


Bài 7

Cho một lược đồ toàn cục (global schema) như sau:
độibóng (mãđb, tênđb, clbộ)
cầuthủ (mãct, họtên, mãđb)
trậnđấu (
mãtđ, mãđb1, mãđb2, trọngtài, sânđấu)
thamgia (
mãtđ, mãct, sốtrái)
Ý nghóa của các quan hệ toàn cục trên như sau:
độibóng
mã đội bóng (mãđb), tên đội bóng (tênđb), thuộc câu lạc bộ (clbộ)
cầuthủ
mã cầu thủ (mãct), họ tên (họtên), thuộc đội bóng (mãđb)
trậnđấu
mã trận đấu (mãtđ), có trọng tài chính (trọngtài) điều khiển trận đấu diễn ra
tại sân đấu (sânđấu). Mỗi trận đấu chỉ có 2 đội bóng khác nhau là mãđb1 và
mãđb2 đấu với nhau.
thamgia
cầu thủ (mãct) tham gia vào trận đấu (mãtđ) và có số trái bóng đá lọt lưới
đối phương (sốtrái), nếu cầu thủ không ghi bàn thì sốtrái bằng 0.
Các thuộc tính được gạch dưới là các thuộc tính khóa, các khóa ngoại khác rỗng.
Hãy viết các biểu thức phân mảnh như sau:
độibóng được phân thành các mảnh ngang tương ứng với các giá trò ‘C1’ và ‘C2’ của
clbộ.
cầuthủ được phân mảnh ngang theo độibóng dựa vào mãđb.
trậnđấu được phân thành các mảnh ngang tương ứng với các giá trò ‘S1’ và ‘S2’ của
sânđấu.
thamgia được phân mảnh ngang theo cầuthủ dựa vào mãct.
Sau đó, hãy thực hiện các câu sau đây ở mức 1 (fragmentation transparency)

và mức 2 (location transparency):
Câu 1. Nhập vào câu lạc bộ và gán cho biến $clbộ, hãy cho biết mã cầu thủ, họ tên
của các cầu thủ thuộc câu lạc bộ này.
Câu 2. Nhập vào họ tên cầu thủ và gán cho biến $họtên, hãy cho biết cầu thủ này tham
gia bao nhiêu trận đấu.
Câu 3. Nhập vào sân đấu và gán cho biến $sânđấu, hãy cho biết sân đấu này có bao
nhiêu trận đấu hòa (số trái bóng đá lọt lưới đối phương của hai đội bóng đấu với nhau
là bằng nhau).
Câu 4. Hãy cho biết mã cầu thủ, họ tên của các cầu thủ là vua phá lưới (có tổng số trái
bóng đá lọt lưới đối phương của tất cả các trận đấu là nhiều nhất).

12
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán
Câu 5. Nhập vào họ tên cầu thủ và trọng tài lần lượt gán cho các biến $họtên và
$trọngtài, hãy cho biết mã trận đấu của các trận đấu do trọng tài này điều khiển và có
cầu thủ này tham gia các trận đấu này.
Câu 6. Nhập vào họ tên của hai cầu thủ lần lượt gán cho các biến $họtên1 và $họtên2,
hãy cho biết hai cầu thủ này thuộc cùng một câu lạc bộ không?
Câu 7. Hãy cho biết mã cầu thủ, họ tên của các cầu thủ có tham gia trận đấu nhưng
tổng số trái bóng đá lọt lưới đối phương của mỗi cầu thủ này bằng 0.
Câu 8. Hãy cho biết mã cầu thủ, họ tên của các cầu thủ tham gia từ ba trận đấu trở lên.
Câu 9. Nhập vào mã đội bóng và gán cho biến $mãđb, hãy cho biết tổng số trái bóng
đá lọt lưới đối phương của đội bóng này tại tất cả các trận đấu.
Câu 10. Hãy cho biết mã cầu thủ, họ tên của các cầu thủ chưa tham gia các trận đấu
nào.

13
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán

Bài 8


Cho một lược đồ toàn cục (global schema) như sau:
nhómnc (mãnhóm, tênnhóm, tênphòng)
nhânviên (mãnv, họtên, mãnhóm)
đềán (
mãđa, tênđa, mãnhóm)
thamgia (
mãnv, mãđa)
Ý nghóa của các quan hệ toàn cục trên như sau:
nhómnc
mã nhóm nghiên cứu (mãnhóm), tên nhóm nghiên cứu (tênnhóm), thuộc
phòng (tênphòng)
nhânviên
mã nhân viên (mãnv), họ tên (họtên), thuộc nhóm nghiên cứu (mãnhóm)
đềán
mã đề án (mãđa), tên đề án (tênđa), do nhóm nghiên cứu (mãnhóm) thực
hiện
thamgia
nhân viên (mãnv) tham gia vào đề án (mãđa).
Các thuộc tính được gạch dưới là các thuộc tính khóa, các khóa ngoại khác rỗng.
Hãy viết các biểu thức phân mảnh như sau:
nhómnc được phân thành các mảnh ngang tương ứng với các giá trò ‘P1’ và ‘P2’ của
tênphòng.
nhânviên, đềán được phân mảnh ngang theo nhómnc dựa vào mãnhóm.
thamgia được phân mảnh ngang theo nhânviên dựa vào mãnv.
Sau đó, hãy thực hiện các câu sau đây ở mức 1 (fragmentation transparency)
và mức 2 (location transparency):
Câu 1. Nhập vào mã nhóm nghiên cứu và gán cho biến $mãnhóm, hãy cho biết mã đề
án, tên đề án của các đề án thuộc nhóm nghiên cứu này thực hiện mà có nhân viên của
nhóm nghiên cứu khác tham gia.

Câu 2. Hãy sửa tên phòng từ ‘P2’ thành ‘P1’ của nhóm nghiên cứu có mã ‘NC01’.
Câu 3. Cho biết mã đề án, tên đề án của các đề án mà chưa có nhân viên nào tham
gia.


14
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán

Bài 9

Cho một lược đồ toàn cục (global schema) như sau:
nhàxb (mãnxb, tênnxb, thànhphố)
sách (mãsách, tênsách, nămxb, mãnxb, mãtg)
độcgiả (
mãđg, tênđg, đốitượng)
tácgiả (
mãtg, têntg, chuyênmôn)
mượn (mãđg, mãsách, ngàymượn, ngàytrả)
Ý nghóa của các quan hệ toàn cục trên như sau:
nhàxb
mã nhà xuất bản (mãnxb), tên nhà xuất bản (tênnxb), đặt tại thành phố
(thànhphố)
sách
mã sách (mãsách), tên sách (tênsách), năm xuất bản (nămxb), do nhà xuất
bản (mãnxb) in, tác giả viết (mãtg)
độcgiả
mã độc giả (mãđg), họ tên độc giả (tênđg), thuộc đối tượng (đốitượng)
tácgiả
mã tác giả (mãtg), họ tên tác giả (têntg), có chuyên môn (chuyênmôn)
mượn

độc giả (mãđg) mượn sách (mãsách) từ ngày (ngàymượn) đến ngày
(ngàytrả), nếu chưa trả sách thì ngàytrả là null.
Các thuộc tính được gạch dưới là các thuộc tính khóa, các khóa ngoại khác rỗng.
Hãy viết các biểu thức phân mảnh như sau:
nhàxb được phân thành các mảnh ngang tương ứng với các giá trò ‘T1’ và ‘T2’ của
thànhphố.
sách được phân mảnh ngang theo nhàxb dựa vào mãnxb.
độcgiả được phân thành các mảnh ngang tương ứng với các giá trò ‘HS’ và ‘SV’ của
đốitượng.
tácgiả được phân thành các mảnh ngang tương ứng với các giá trò ‘DT’ và ‘MT’ của
chuyênmôn.
mượn được phân mảnh ngang theo sách dựa vào mãsách.
Sau đó, hãy thực hiện các câu sau đây ở mức 1 (fragmentation transparency)
và mức 2 (location transparency):
Câu 1. Nhập vào tên nhà xuất bản và gán cho biến $tênnxb, hãy cho biết tổng số tên
sách khác nhau của nhà xuất bản này được xuất bản trong năm 1998.
Câu 2. Nhập vào tên nhà xuất bản và gán cho biến $tênnxb, hãy cho biết mã sách, tên
sách của các sách của nhà xuất bản này mà chưa có độc giả nào mượn.

15
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán
Câu 3. Hãy cho biết mã và tên của các nhà xuất bản có sách được các độc giả mượn.
Câu 4. Nhập vào mã tác giả và gán cho biến $mãtg, hãy cho biết mã sách, tên sách
của các sách của tác giả này được mượn mà có ngày mượn trong khoảng thời gian từ
ngày 01/01/1999 đến ngày 30/06/1999.
Câu 5. Hãy sửa thành phố từ ‘T2’ thành ‘T1’ của nhà xuất bản có tên là ‘KHKT’.
Câu 6. Hãy cho biết mã và tên của các nhà xuất bản có số lượng sách được in là nhiều
nhất. Chỉ xét các nhà xuất bản có in sách.
Câu 7. Nhập vào tên nhà xuất bản gán cho biến $tênnxb và mã tác giả gán cho biến
$mãtg, hãy cho biết mã và tên của các sách do tác giả này viết mà do nhà xuất bản này

in.


16
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán

Bài 10

Cho một lược đồ toàn cục (global schema) như sau:
chinhánh (mãcn, têncn, thànhphố)
nhânviên (mãnv, họtên, mãcn)
kháchhàng (
mãkh, tênkh, mãcn)
hợpđồng (
sốõhđồng, ngàyký, mãkh, sốđiệnkế, kwđònhmức, đơngiákw)
hóơn (sốhđơn, tháng, năm, sốhđồng, mãnv, sốtiền)
Ý nghóa của các quan hệ toàn cục trên như sau:
chinhánh
mã chi nhánh (mãcn), tên chi nhánh (têncn), thuộc thành phố (thànhphố)
nhânviên
mã nhân viên (mãnv), họ tên (họtên), thuộc chi nhánh (mãcn)
kháchhàng
mã khách hàng (mãkh), tên khách hàng (tênkh), thuộc chi nhánh (mãcn)
hợpđồng
số hợp đồng (sốhđồng), ngày ký (ngàyký), của khách hàng (mãkh), số
hiệu điện kế (sốđiệnkế), số kw đònh mức (kwđònhmức), đơn giá của 1kw
(đơngía)
hóơn
số hóa đơn (sốhđơn), được ghi trong tháng (tháng), năm (năm), của hợp
đồng (sốhđồng), do nhân viên (mãnv) thu tiền (sốtiền)

Các thuộc tính được gạch dưới là các thuộc tính khóa, các khóa ngoại khác rỗng.
Hãy viết các biểu thức phân mảnh như sau:
chinhánh được phân thành các mảnh ngang tương ứng với các giá trò ‘TP1’, ‘TP2’ và
‘TP3’ của thànhphố.
nhânviên, kháchhàng được phân mảnh ngang theo chinhánh dựa vào mãcn.
hợpđồng được phân mảnh ngang theo kháchhàng dựa vào mãkh.
hóơn được phân mảnh ngang theo hợpđồng dựa vào sốhđồng.
Sau đó, hãy thực hiện các câu sau đây ở mức 1 (fragmentation transparency)
và mức 2 (location transparency):
Câu 1. Nhập vào mã nhân viên và mã khách hàng lần lượt gán cho các biến $mãnv và
$mãkh, hãy cho biết tổng số tiền mà nhân viên này thu tiền của khách hàng này.
Câu 2. Hãy cho biết số hóa đơn, số kw sử dụng, số kw đònh mức của các hóa đơn có số
kw sử dụng vượt quá số kw đònh mức. Biết rằng số kw sử dụng bằng số tiền chia cho
đơn giá kw được ghi trong hợp đồng.

17
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán

Bài 11

Cho một lược đồ toàn cục (global schema) như sau:
bộmôn (mãbm, tênbm, tênkhoa)
mônhọc (mãmh, tênmh, mãbm)
lớp (
mãlớp, tênlớp, tênkhoa)
phònghọc (
mãphòng, tênkhoa)
tkb (thứ, tiếtbắtđầu, mãphòng, tiếtkếtthúc, mãlớp, mãmh)
Ý nghóa của các quan hệ toàn cục trên như sau:
bộmôn

mã bộ môn (mãbm), tên bộ môn (tênbm), thuộc khoa (tênkhoa)
mônhọc
mã môn học (mãmh), tên môn học (tênmh), thuộc bộ môn (mãbm)
lớp
mã lớp (mãlớp), tên lớp (tênlớp), thuộc khoa (tênkhoa)
phònghọc
mã phòng (mãphòng), thuộc khoa (tênkhoa)
tkb
thời khóa biểu: lớp (mãlớp) học môn học (mãmh) vào ngày thứ (thứ) tại
phòng (mãphòng) từ tiết (tiếtbắtđầu) đến tiết (tiếtkếtthúc)
Các thuộc tính được gạch dưới là các thuộc tính khóa, các khóa ngoại khác rỗng.
Hãy viết các biểu thức phân mảnh như sau:
bộmôn, lớp, phònghọc được phân thành các mảnh ngang tương ứng với các giá trò ‘K1’
và ‘K2’ của tênkhoa.
mônhọc được phân mảnh ngang theo bộmôn dựa vào mãbm.
tkb được phân mảnh ngang theo lớp dựa vào mãlớp.
Sau đó, hãy thực hiện các câu sau đây ở mức 1 (fragmentation transparency)
và mức 2 (location transparency):
Câu 1. Nhập vào mã lớp và gán cho biến $mãlớp, hãy cho biết tổng số tiết học của lớp
này trong một tuần.
Câu 2. Nhập vào tên khoa và gán cho biến $tênkhoa, hãy cho biết mã môn học, tên
môn học của các môn học thuộc khoa này quản lý.
Câu 3. Nhập vào mã lớp và gán cho biến $mãlớp, hãy cho biết lớp này học tại các
phòng nào mà các phòng này thuộc cùng khoa quản lý lớp này.
Câu 4. Hãy cho biết mã lớp, tên lớp của các lớp có học tại các phòng mà các phòng
này không thuộc khoa của lớp này quản lý.
Câu 5. Hãy sửa tên khoa từ ‘K1’ thành ‘K2’ của lớp có mã ‘L1’.

18
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán


Bài 12

Cho một lược đồ toàn cục (global schema):
đạilý (mãđl, tênđl, têncty)
xe (sốsườn, sốmáy, màu, kiểu, nướcsx, mãđl, sốhđơn)
bảnggiá (
mãđl, kiểu, nướcsx, ngày, giábán)
kháchhàng (
mãkh, tênkh, thànhphố)
hóơn (sốhđơn, ngàybán, mãkh)
Ý nghóa của các quan hệ toàn cục trên như sau:
đạilý
mã đại lý (mãđl), tên đại lý (tênđl), thuộc công ty (têncty)
xe
số sườn (sốsườn), số máy (sốmáy), màu (màu), kiểu xe (kiểu), nước sản
xuất (nướcsx), được bán trong hóa đơn (sốhđơn). Nếu xe chưa bán thì
sốhđơn là null.
bảnggiá
mã đại lý (mãđl), kiểu xe (kiểu), nước sản xuất (nướcsx), có giá bán
(giábán) vào ngày (ngày)
kháchhàng
mã khách hàng (mãkh), tên khách hàng (tênkh), ở tại thành phố
(thànhphố)
hóơn
số hóa đơn (sốhđơn), ngày bán (ngàybán), của khách hàng (mãkh)
Các thuộc tính được gạch dưới là các thuộc tính khóa, các khóa ngoại khác rỗng.
Hãy viết các biểu thức phân mảnh như sau:
đạilý được phân thành các mảnh ngang tương ứng với các giá trò ‘CT1’ và ‘CT2’ của
têncty.

xe, bảnggiá được phân mảnh ngang theo đạilý dựa vào mãđl.
kháchhàng được phân thành các mảnh ngang tương ứng với các giá trò ‘TP1’ và ‘TP2’
của thànhphố.
hóơn được phân mảnh theo kháchhàng dựa vào mãkh.
Sau đó, hãy thực hiện các câu sau đây ở mức 1 (fragmentation transparency)
và mức 2 (location transparency):
Câu 1. Nhập vào tên đại lý và gán cho biến $tênđl, hãy cho biết số sườn, số máy của
các xe thuộc đại lý này do nước ‘Nhật’ sản xuất.
Câu 2. Hãy cho biết số sườn, số máy của các xe có màu xanh và có giá bán cao nhất so
với các xe khác thuộc cùng đại lý.
Câu 3. Nhập vào mã đại lý và gán cho biến $mãđl, hãy cho biết có bao nhiêu màu
khác nhau của các xe mà đại lý này đã bán.

19
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán
Câu 4. Nhập vào mã khách hàng và gán cho biến $mãkh, hãy cho biết khách hàng này
đã mua bao nhiêu xe.
Câu 5. Nhập vào tên đại lý và gán cho biến $tênđl, hãy cho biết đại lý này hiện có bao
nhiêu xe chưa bán.

20
Nguyễn Trung Trực – Bài tập Cơ sở dữ liệu phân tán

Bài 13

Cho một lược đồ toàn cục (global schema):
trường (mãtrường, têntrường, khuvực)
điểmchuẩn (mãtrường, mãngành, điểmchuẩn)
thísinh (
mãts, họtên, khuvực)

dựthi (
mãts, mãtrường, mãngành, điểm1, điểm2, điểm3)
Ý nghóa của các quan hệ toàn cục trên như sau:
trường
thông tin của trường: mã trường (mãtrường), tên trường (têntrường),
thuộc khu vực (khuvực).
điểmchuẩn
điểm chuẩn (điểmchuẩn) đậu vào ngành (mãngành) của trường
(mãtrường).
thísinh
thông tin của thí sinh: mã thí sinh (mãts), họ tên (họtên), thuộc khu vực
(khuvực).
Dựthi
thí sinh (mãts) dự thi vào ngành (mãngành) của trường (mãtrường), có
điểm thi của 3 môn là điểm1, điểm2, điểm3. Thí sinh được xem là đậu
vào một ngành của một trường nếu điểm tổng cộng (= điểm1 + điểm2 +
điểm3) lớn hơn hoặc bằng điểm chuẩn của ngành thuộc trường này và
điểm1, điểm2, điểm3 không được bằng 0. Điểm1, điểm2, điểm3 khác
rỗng.
Các thuộc tính được gạch dưới là các thuộc tính khóa, các khóa ngoại khác rỗng.
Hãy viết các biểu thức phân mảnh như sau:
trường được phân thành các mảnh ngang tương ứng với hai giá trò ‘KV1’ và ‘KV2’ của
khuvực.
điểmchuẩn, dựthi được phân mảnh ngang theo trường dựa vào mãtrường.
thísinh được phân thành các mảnh ngang tương ứng với hai giá trò ‘KV1’ và ‘KV2’ của
khuvực.
Sau đó, hãy thực hiện các câu sau đây ở mức 1 (fragmentation transparency)
và mức 2 (location transparency):
Câu 1. Hãy cho biết mã thí sinh và họ tên của các thí sinh chỉ dự thi vào một trường.
Câu 2. Hãy cho biết mã thí sinh và họ tên của các thí sinh đậu thủ khoa của mỗi

trường. Kết quả có ba cột: mã trường, mã thí sinh và họ tên.


21

×