Bài 6: Các phép toán đại số quan hệ
6.1.7 Một số vídụ về truy vấn trong đại số quan hệ
Trong phần này, chúng ta xét một số ví dụ minh họa việc sử dụng các phép toán đại số quan hệ. Các ví dụ ở đây thực hiện trên cơ sở dữ liệu “CÔNG TY” ở mục II.3 chương III. Nói chung, một truy vấn có thể được thực hiện bằng nhiều cách, sử dụng các phép toán khác nhau. Trong các ví dụ sau, chúng ta xét một cách thực hiện, các bạn đọc có thể tự đưa ra các cách thực hiện khác.
Truy vấn 1: Đưa ra Họ đệm, Tên và địa chỉ của tất cả các nhân viên làm việc cho đơn vị có tên là “Nghiên cứu”: (Các quan hệ TG1, TG2 là các kết quả trung gian)
TG2[U+F0AC](TG1[U+F02A]NHAˆNVIÊN)
KETQUA[U+F0AC]πHọđệm, Tên, Địachỉ (TG2)
Theo cách thực hiện này, quan hệ TG1 chứa thông tin về đơn vị có tên “Nghiên cứu”, quan hệ TG2 chứa thông tin về các nhân viên làm việc cho đơn vị “Nghiên cứu” và quan hệ KẾTQUẢ chứa các thông tin theo yêu cầu của truy vấn. Trong các bảng của chúng ta, các thuộc tính nối có tên như nhau nên có thể dùng phép nối tự nhiên.
Truy vấn 2: Với mỗi dự án đặt tại Hà nội, hãy liệt kê MãsốDA, TênĐV, Tên, Địachỉ, Ngàysinh của người quản lý đơn vị.
TG1[U+F0AC]σDiadiemDA=”Hanoi”(DỰÁN)
TG2[U+F0AC](TG1[U+F02A]ĐƠNVỊ)
TG3[U+F0AC](TG2 * NHAˆNVIÊN)
KẾTQUẢ[U+F0AC]πMãsốDA, MãsốĐV, Họđệm,Địachỉ, Ngàysinh(TG3)
Truyvấn 3: Hãy tìm tên của các nhân viên làm việc trên tất cả các dự án do đơn vị có mã số = 5 kiểm soát.
TG1[U+F0AC]πMãsốDA (σMã sốDV = 5(DỰÁN)) TG2[U+F0AC]πMãsốNV, MãsốDA (NHAˆNVIÊN_DỰÁN)
TG3[U+F0AC]TG2[U+F0B8]TG1
KETQUA[U+F0AC]πHọđệm, Tên(TG3 * NHAˆNVIÊN)
6.1.8 Bài tập
1) Cho lược đồ cơ sở dữ liệu Thưviện: SACH(Mãsách, Tênsách, TênNXB)
SACH_TACGIA(Masach, TênTG)
NHAXUATBAN(TênNXB, Địachỉ, Điệnthoại)
SACH_BANSAO(Mãsách, Mãnhánh, Sốlượngbảnsao) NHANH_THUVIEN(Mãnhanh, Tênnhánh, Địachỉ)
SACH_MUON(Mãsách, Mãnhánh, Sốthẻ, Ngàymượn, Ngàytrả) NGUOIMUON(Sốthẻ, Tên, Địachỉ, Điệnthoại)
Hãy viết các biểu thức quan hệ cho các truy vấn sau đây trên cơ sở dữ liệu Thưviện:
1. Có bao nhiêu bản sao của cuốn sách “The Lost Tribe” có trong nhánh thư viện có tên là “Shapstown”. 2. Có bao nhiêu bản sao của cuốn sách “The Lost Tribe” có trong mỗi nhánh thư viện.
3. Đưa ra tên của tất cả người muợn chưa mượn cuốn sách nào.
4. Với mỗi cuốn sách được mượn ra từ nhánh thư viện “Shapstown” có ngày trả là ngày hôm nay, hãy đưa ra Tên sách, Tên người mượn và địa chỉ người mượn.
5. Với mỗi thư viện nhánh, hãy đưa ra tên nhánh thư viện và tổng số sách được mượn ra từ nhánh này. 6. Đưa ra tên, địa chỉ và số các sách do người này mượn với những người mượn nhiều hơn 5 cuốn sách. 7. Với mỗi cuốn sách có tác giả (hoặc đồng tác giả) là “Stephen King”, hãy đưa ra tên sách và số lượng
các bản sao có tại nhánh thư viện có tên là “Central”. 8. Cho cơ sở dữ liệu CÔNGTY gồm các lược đồ:
NHAˆNVIÊN(Mã sốNV, Họđệm, Tên, Ngàysinh, Giớitính, Địachỉ, Lương, MãsốNGS, Mã sốĐV)
ĐƠNVỊ(MãsốĐV, TênĐV, MãsốNQL, Ngàybắtđầu) DỰÁN(MãsốDA, TênDA, ĐịađiểmDA, MãsốĐV)
PHỤTHUỘC(MãsốNV, TênPT, Ngày sinh, Giớitính, Quanhệ) NHAˆNVIÊN_DỰÁN(MãsốNV, MãsốDA, Sốgiờ)
ĐƠNVỊ_ĐỊAĐIỂM(MãsốĐV, Địađiểm)
a) Đưa ra tên và địa chỉ của tất cả các nhân viên làm việc cho đơn vị nghiên cứu.
b) Với mỗi dự án có địa điểm tại Hà nội, hãy liệt kê mã số dự án, mã số của đơn vị kiểm soát, Tên, địa chỉ và ngày sinh của người quản lý đơn vị
c) Tìm tên của các nhân viên làm việc trên tất cả các dự án do đơn vị có mã số 5 kiểm soát.
d) Tạo ra một danh sách các mã số dự án đối với các dự án có một nhân viên hoặc một người quản lý đơn vị kiểm soát dự án có tên là ‘Nam’.
e) Đưa ra tên của tất cả các nhân viên có nhiều hơn hoặc bằng 2 người phụ thuộc. f) Đưa ra các nhân viên không có người phụ thuộc.