Phần 1: thiết kế cơ sở dữ liệu NỘI DUNG ÔN TẬP MÔN HỆ CƠ SỞ DỮ LIỆU 1. Xây dựng cơ sở dữ liệu quản lý thư viện với mô tả như sau: Thư viện được chia ra thành các nhánh. Thông tin về mỗi nhánh gồm có Mã nhánh, Tên nhánh và Địa chỉ. Mỗi cuốn sách trong thư viện có các thông tin về Mã sách, Tên sách Nhà xuất bản và Tác giả Một tác giả có thể viết nhiều cuốn sách. Một cuốn sách có thể có nhiều tác giả viết. Một nhà xuất bản xuất bản nhiều cuốn sách. Một cuốn sách do một nhà xuất bản xuất bản. Thông tin về Nhà xuất bản gồm có Tên NXB, Địa chỉ NXB và Số điện thoại NXB. Một cuốn sách có thể có nhiều bản sao được lưu trữ tại các nhánh. Thông tin về bản sao sách gồm Mã sách, số các bản sao. Thư viện có những người mượn sách. Thông tin về những người mượn sách gồm có Số thẻ, Họ tên, Địa chỉ và Số điện thoại. Sách được cho các người mượn mượn tại các nhánh. Thông tin về một lần mượn gồm có Ngày mượn và ngày trả. 2. Hãy vẽ mô hình ER biểu diễn mô tả trên và chuyển sang mô hình quan hệ Cho mô hình ER, hãy chuyển sang mô hình quan hệ 3. Xây dựng cơ sở dữ liệu quản lý nhân viên với mô tả như sau: Một công ty có khoảng 500 nhân viên. Công ty muốn quản lý các nhân viên, các kỹ năng của họ, các dự án họ được phân công và các phòng ban mà họ làm việc. Mỗi nhân viên có mã nhân viên xác định duy nhất trong toàn công ty, họ tên và ngày sinh. Nếu
một nhân viên hiện tại có vợ hoặc chồng cùng làm trong công ty, thì công ty cần lưu trữ người vợ hoặc chồng đó và ngày kết hôn của họ. Nếu vợ hoặc chồng của nhân viên là người ngoài công ty thì công ty không lưu những thông tin này. Mỗi nhân viên có một công việc, chẳng hạn như kỹ sư, thư ký,...tại một thời điểm người nhân viên chỉ làm một công việc, và hệ thống chỉ cần nắm giữ công việc hiện tại của họ mà thôi. Trong công ty có 11 phòng ban, tên các phòng ban không trùng nhau. Mỗi phòng ban có một số điện thoại. Một nhân viên chỉ thuộc một phòng ban. Để có được nhiều loại thiết bị dụng cụ khác nhau, mỗi phòng ban có quan hệ với nhiều nhà cung cấp. Mỗi nhà cung cấp cung cấp thiết bị cho nhiều phòng ban. Hệ thống cần lưu trữ tên, địa chỉ của mỗi nhà cung cấp, và ngày làm việc gần đây nhất giữa mỗi phòng ban và mỗi nhà cung cấp. Một dự án có nhiều nhân viên làm việc. Mỗi nhân viên có thể làm việc cho nhiều dự án, nhưng chỉ có thể tham gia tối đa một dự án trong mỗi thành phố. Thông tin cần lưu là thành phố thuộc tiểu bang nào và dân số của thành phố. Một nhân viên có nhiều kỹ năng, chẳng hạn như lên kế hoạch nhu cầu vật tư, kiểm tra bản vẽ,...mỗi kỹ năng được đặt một mã số để phân biệt với các kỹ năng khác kèm chú thích để giải thích về kỹ năng đó. Một nhân viên có thể dùng một kỹ năng nào đó của mình để làm việc cho nhiều dự án. Hệ thống cần lưu thông tin về việc nhân viên sử dụng những kỹ năng nào để làm việc cho dự án nào. Công ty phải sử dụng hết các kỹ năng của một nhân viên để phân công vào các dự án, có nghĩa là người nhân viên phải sử dụng kỹ năng của họ vào ít nhất một dự án. Thông tin cần lưu về dự án gồm số của dự án và tổng kinh phí ước đoán cho dự án. Vẽ mô hình ER và chuyển sang mô hình quan hệ Phần 2: SQL 1. Câu lệnh SQL: select * from R, tương đương với câu lệnh nào sau đây a) Select * from R natural join S. b) Select * from R cross join S. c) Select * from R union join S. d) Select * from R inner join S. 2. Hàm nào sau đây bỏ qua giá trị null trong kết quả?. a) COUNT b) COUNT (*) c) MAX d) MIN 3. Trong SQL, đáp án nào sau đây sử dụng để kiểm tra subquery có rỗng hay không? a) DISTINCT b) UNIQUE c) NULL
d) EXISTS 1 Cho cơ sở dữ liệu gồm 3 bảng như sau: SinhVien(MaSV, TenSV, DiaChi) Dangky(MaSV, MaMHoc, Diem) MonHoc(MaMHoc, TenMonHoc, SoTC) Và truy vấn sau SELECT MaSV, TenSV, AVG(Diem) FROM SinhVien, Dangky WHERE SinhVien.MaSV = Dangky.MaSV GROUP BY MaSV, TenSV HAVING avg(diem) >70 Đáp án nào sau đây là kết quả của câu truy vấn trên? a. Truy vấn là không hợp lệ b. Truy vấn liệt kê mã sinh viên, tên sinh viên, và điểm trung bình của môn học. c. Truy vấn liệt kê mã sinh viên, tên sinh viên, và điểm trung bình của sinh viên d. Truy vấn liệt kê mã sinh viên, tên sinh viên, và điểm trung bình của những sinh viên có điểm trung bình lớn hơn 70 2 Chọn đáp án đúng cho câu truy vấn sau đây: SELECT TenMHoc, Count(*) FROM MonHoc, Dangky WHERE MonHoc.MaMHoc = Dangky.MaMHoc AND Diem > 40 GROUP BY TenMHoc HAVING Count(*) > 5 a. Liệt kê số sinh viên đã đăng ký của mỗi môn học. b. Liệt kê danh sách môn học có số sinh viên đã đăng ký nhiều hơn 5 c. Liệt kê các môn học có hơn 5 sinh viên có Điểm >40. d. Liệt kê những sinh viên có điểm >40 và các môn học có trên 5 sinh viên. 3 Cho cấu trúc bảng NhanVien(MaNV, TenNV, Luong, Ngaysinh), Đáp án nào sau đây liệt kê những nhân viên có tên bắt đầu bằng ký tự S? a. SELECT *FROM NhanVien WHERE TenNV IN [ S ]; b. SELECT MaNV FROM NhanVien WHERE TenNV LIKE S ; c. SELECT * FROM TenNV WHERE NhanVien LIKE S* ; d. SELECT *FROM NhanVien WHERE TenNV LIKE S% ; 4 Cho cấu trúc bảng NhanVien(MaNV, TenNV, Luong, Ngaysinh), Đáp án nào sau đây là sai? a. SELECT * FROM NhanVien WHERE TenNV LIKE Ja% ; b. SELECT COUNT(*) FROM NhanVien WHERE Luong < 30000; c. SELECT Ngaysinh, COUNT(*) FROM NhanVien WHERE Salary < 30000; d. SELECT Ngaysinh, COUNT(*) FROM NhanVien GROUP BY Ngaysinh; 5 Chọn câu hỏi tương ứng với câu truy vấn sau đây:
SELECT * FROM Lop WHERE Tenlop LIKE '%SQL%' AND Malop NOT IN ('7800','7820') a. Cho xem dòng đầu tiên trong bảng Lop mà cột Tenlop bằng %SQL% và giá trị trong cột Malop không là phải là 7800 và 7820. b. Cho xem tất cả các dòng trong bảng Lop mà cột TenLop bằng %SQL% và giá trị trong cột Malop không là phải là 7800 và 7820. c. Cho xem dòng đầu tiên trong bảng Lop mà cột Tenlop chứa chuỗi ký tự SQL và giá trị trong cột Malop không là phải là 7800 và 7820. d. Cho xem tất cả các dòng trong bảng Lop mà cột TenLop chứa chuỗi ký tự SQL và giá trị trong cột Malop không phải là 7800 và 7820. 6 Trong SQL, ký tự nào sau đây được sử dụng để đại diện cho một ký tự không được xác định rõ a. % (percent sign) b.! (exclamation mark) c. _ (underscore) d.? (question mark)
7 Cho lược đồ quan hệ Cungcap(MaNCC, MaSP, Soluong), câu truy vấn nào sau đây tương ứng với phép toán đại số quan hệ project và selection a. Select MaNCC From Cungcap; b. Select Distinct C1.MaNCC From Cungcap C1, Cungcap C2 Where C1.Soluong > C2.Soluong; c. Select Distinct MaNCC From Cungcap Where Soluong > 35; d. Select * From Cungcap; 8 Trong câu lệnh truy vấn, từ khóa nào được sử dụng để loại bỏ các dòng bị trùng lắp trong kết quả a. DELETE b. DISTINCT c. NOT EXISTS d. UNIQUE 9 Số loại thực thể tham gia vào một quan hệ được gọi là: a. Bậc của quan hệ (degree) b. Lượng số tối đa (maximum cardinality) c. Lượng số tối thiểu (minimum cardinality) d. Loại quan hệ Phần 3: Đại số quan hệ 1. Cho 2 tập R và S với S R =, giá trị của biểu thức R S là gì? a) Bằng R S b) Lớn hơn R S c) Nhỏ hơn R S d) Không có kết quả nào. 2. Cho lược đồ quan hệ R(A,B) với các bộ dữ liệu {(1,2), (1,3), (3,4)}, và S(B,C) với các bộ dữ liệu {(2,5), (4,6), (7,8)}. Cho biết số bộ kết quả của câu truy vấn sau đây là gì? Select * From R Natural Outer Join S; a. 2 b. 4 c. 6 d. 9 10 Cho câu truy vấn sau: Select H.MaKH, TenKH, NgaylapHD From Khachhang K inner join Hoadon H on K.MaKH=H.MaKH. H và K được gọi là gì? a. Alias d. Phrase b. Term c. Clause
11 Đáp án nào sau đây dùng để liệt kê các dự án do nhân viên có MaNV là 002 và 004 tham gia? a. MaNV= 002 or MaNV= 004 ( MaDuAn, TenDuAn (Thamgia DuAn)) b. MaDuAn, TenDuAn ( MaNV= 002 or MaNV= 004 (Thamgia DuAn)) c. MaDuAn, TenDuAn ( MaNV= 002 AND MaNV= 004 (Thamgia DuAn)) d. MaNV= 002, MaNV= 004 ( MaDuAn, TenDuAn (Thamgia DuAn)) 12 Tìm MaNV của những nhân viên tham gia tất cả các dự án, đáp án nào sau đây là đúng? a. MaNV, MaDuAn (Thamgia) MaDuAn(DuAn) b. MaNV, MaDuAn (Thamgia) - MaDuAn(DuAn) c. MaNV, MaDuAn (Thamgia) * MaDuAn(DuAn) d. Không có đáp án đúng. Phần 4: Phụ thuộc hàm và chuẩn hóa CSDL 1 Cho R(A,B,C,D,E,G,H) và F = {A D, AB DE, CE G, E H} a) Tìm khoá. b) Xác định dạng chuẩn cao nhất của lược đồ quan hệ trên. 2 R(ABC); F={A B, A C, B A, C A, B C} a) Tìm phủ tối thiểu b) Tìm khóa trên tập phủ tối thiểu 3 R(ABCDEGH), F = {A BC, BE G, E D, D G, A B, AG BC} a) Tìm phủ tối thiểu b) Tìm tất cả khóa dựa trên tập phủ tối thiểu c) Xác định dạng chuẩn cao nhất của lược đồ quan hệ.
4 Chuẩn hóa lược đồ quan hệ sau về dạng BNF a) R(SDIM); F={SI D, SD M} b) R(ABCD); F={A B,B C, D B} 5 Cho R(ABCD ) và F={A B, B C, A D, D C}, phép tách lược đồ thành các lược đồ con : R1(AB), R2(AC), R3(BD ) a) Kiểm tra phép tách có bảo toàn thông tin hay không? b) Kiểm tra phép tách có bảo toàn tập phụ thuộc hàm với F? 6 Cho R(ABCD) và F={A B, DB C } Khóa của lược đồ quan hệ là: a) A b) AD c) ABD d) BD 7 Cho quan hệ Q (ABCDEGH) và tập phụ thuộc hàm F= {A BG, D EG, GB HA, D BA, B HG}. Phụ thuộc hàm nào sau đây được suy ra từ F? a. EG BD c. D GH b. AB CDEGH d. AC DG 8 Một lược đồ quan hệ mà mọi phụ thuộc hàm đều có vế trái là siêu khóa thì lược đồ quan hệ đó đạt chuẩn cao nhất là chuẩn: a. 1NF c. 3NF b. 2NF d. BCNF 9 Cho lược đồ quan hệ R(ABCD) và tập phụ thuộc hàm F={A B, BC D, AD C}. Phụ thuộc hàm nào làm cho lược đồ quan hệ vi phạm chuẩn BC a. AD C c. BC D b. A B d. A B và BC D 10 Cho lược đồ quan hệ R(A, B, C, D, E) và tập phụ thuộc hàm F={A DE, D BC, AC B}Xác định một khóa chính của lược đồ quan hệ a. AE c. DA b. A d. AB 11 Cho lược đồ quan hệ R(A, B, C, D, G, H) và tập phụ thuộc hàm F={GH AD, AG B, CD GH, C A, BH C}. Bao đóng của {A,B,H} là:
a. ABCDG b. ACGH c. ABCH d. ACGHB 12 Chuẩn hóa lược đồ quan hệ R(ABC) về dạng chuẩn 3 vừa bảo toàn thông tin vừa bảo toàn phụ thuộc hàm. Với tập phụ thuộc hàm F={A BC, B A, C A, B C} 13 Cho lược đồ quan hệ R(A,B,C,D,E,F) và tập các phụ thuộc hàm F = {AB C, C B, ABD E, F A}, phân rã thành các lược đồ R1(B,C), R2(A,C), R3(A,B,D, E), R4(A,B,D,F). Kiểm tra tính không mất mát thông tin của phép phân rã.