Bài tập Cơ sở dữ liệu
Bạn đang xem tài liệu "Bài tập Cơ sở dữ liệu", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_tap_co_so_du_lieu.doc
Nội dung text: Bài tập Cơ sở dữ liệu
- BÀI TẬP CƠ SỞ DỮ LIỆU PHẦN I : Hãy lập mô hình thực thể, mô hình mạng và mô hình quan hệ dữ liệu cho các CSDL sau 1.1. QUẢN LÝ SỐ LƯỢNG NGÀY CÔNG CỦA CÁC NHÂN VIÊN Để quản lý việc phân công các nhân viên tham gia vào xây dựng các công trình. Công ty xây dựng ABC tổ chức quản lý như sau: - Cùng lúc công ty có thể tham gia xây dựng nhiều công trình, mỗi công trình có một mã số công trình duy nhất (MACT), mỗi mã số công trình xác định các thông tin như : Tên gọi công trình (TENCT), địa điểm(ĐIAĐIEM), ngày công trình được cấp giấy phép xây dựng (NGAYCAPGP), ngày khởi công (NGAYKC), ngày hoàn thành (NGAYHT) . - Mỗi nhân viên của công ty ABC có một mã số nhân viên(MANV) duy nhất, một mã số nhân viên xác định các thông tin như : Họ tên (HOTEN), ngày sinh(NGSINH), phái (PHAI), địa chỉ (ĐIACHI),phòng ban, - Công ty phân công các nhân viên tham gia vào các công trình, mỗi công trình có thể được phân cho nhiều nhân viên và mỗi nhân viên cùng lúc cũng có thể tham gia vào nhiều công trình. Với mỗi công trình một nhân viên có một số lượng ngày công (SLNGAYCONG) đã tham gia vào công trình đó. - Công ty có nhiều phòng ban(Phòng kế toán, phòng kinh doanh, phòng kỹ thuật, phòng tổ chức, phòng chuyên môn, Phòng phục vụ, ). Mỗi phòng ban có một mã số phòng ban(MAPB) duy nhất, một phòng ban ứng với một tên phòng ban(TENPB). 1.2. QUẢN LÝ VIỆC MƯỢN/TRẢ SÁCH Ở MỘT THƯ VIỆN Một thư viện tổ chức việc cho mượn sách như sau: - Mỗi quyển sách được đánh một mã sách (MASH) dùng để phân biệt với các quyển sách khác (giả sử nếu một tác phẩm có nhiều bản giống nhau hoặc có nhiều tập thì cũng xem là có mã sách khác nhau), mỗi mã sách xác định các thông tin khác như : tên sách (TENSACH), tên tác giả (TACGIA), nhà xuất bản (NHAXB), năm xuất bản (NAMXB). - Mỗi độc giả được thư viện cấp cho một thẻ thư viện, trong đó có ghi rõ mã độc giả (MAĐG), cùng với các thông tin khác như : họ tên (HOTEN), ngày sinh (NGAYSINH), địa chỉ (ĐIACHI), nghề nghiệp(NGHENGHIEP). - Cứ mỗi lượt mượn sách, độc giả phải đăng ký các quyển sách cần mượn vào một phiếu mượn, mỗi phiếu mượn có một số phiếu mượn (SOPM) khác nhau, mỗi phiếu mượn xác định các thông tin như: ngày mượn sách (NGAYMUON), mã độc giả. Các các quyển sách trong cùng một phiếu mượn không nhất thiết phải trả trong một lần. Mỗi quyển sách có thể thuộc nhiều phiếu mượn khác nhau (tất nhiên là tại các thời điểm khác nhau). Trang 1
- 1.3. QUẢN LÝ LỊCH DẠY CỦA GIÁO VIÊN Để quản lý lịch dạy của các giáo viên và lịch học của các lớp, một trường tổ chức như sau: - Mỗi giáo viên có một mã số giáo viên (MAGV) duy nhất, mỗi MAGV xác định các thông tin như: họ và tên giáo viên (HOTEN), số điện thoại (DTGV). Mỗi giáo viên có thể dạy nhiều môn cho nhiều khoa nhưng chỉ thuộc sự quản lý hành chánh của một khoa nào đó. - Mỗi môn học có một mã số môn học (MAMH) duy nhất, mỗi môn học xác định tên môn học(TENMH). Ứng với mỗi lớp thì mỗi môn học chỉ được phân cho một giáo viên. - Mỗi phòng học có một số phòng học (PHONG) duy nhất, mỗi phòng có một chức năng (CHUCNANG); chẳng hạn như phòng lý thuyết, phòng thực hành máy tính, phòng nghe nhìn, xưởng thực tập cơ khí, - Mỗi khoa có một mã khoa (MAKHOA) duy nhất, mỗi khoa xác định các thông tin như: tên khoa (TENKHOA), điện thoại khoa(DTKHOA). - Mỗi lớp có một mã lớp (MALOP) duy nhất, mỗi lớp có một tên lớp (TENLOP), sĩ số lớp (SISO). Mỗi lớp có thể học nhiều môn của nhiều khoa nhưng chỉ thuộc sự quản lý hành chính của một khoa nào đó. - Hàng tuần, mỗi giáo viên phải lập lịch báo giảng cho biết giáo viên đó sẽ dạy những lớp nào, ngày nào (NGAYDAY), môn gì?, tại phòng nào, từ tiết nào (TUTIET) đến tiết nào (ĐENTIET),tựa đề bài dạy (BAIDAY), những ghi chú (GHICHU) về các tiết dạy này, đây là giờ dạy lý thuyết (LYTHUYET) hay thực hành - giả sử nếu LYTHUYET=1 thì đó là giờ dạy thực hành và nếu LYTHUYET=2 thì đó là giờ lý thuyết, một ngày có 16 tiết, sáng từ tiết 1 đến tiết 6, chiều từ tiết 7 đến tiết 12, tối từ tiết 13 đến 16. Một số yêu cầu của hệ thống này như : Lập lịch dạy trong tuần của các giáo viên. Tổng số dạy của các giáo viên theo từng môn cho từng lớp, . 1.4. QUẢN LÝ HỌC VIÊN Ở MỘT TRUNG TÂM TIN HỌC Trung tâm tin học KTCT thường xuyên mở các lớp tin học ngắn hạn và dài hạn. Mỗi lớp ngắn hạn có một hoặc nhiều môn học (chẳng hạn như lớp Tin học văn phòng thì có các môn : Word, Power Point, Excel, còn lớp lập trình Pascal thì chỉ học một môn Pascal). Các lớp dài hạn (chẳng hạn như lớp kỹ thuật viên đồ hoạ đa truyền thông, lớp kỹ thuật viên lập trình, lớp kỹ thuật viên phần cứng và mạng, ) thì có thể học nhiều học phần và mỗi học phần có thể có nhiều môn học. Mỗi học viên có một mã học viên(MAHV) duy nhất và chỉ thuộc về một lớp duy nhất (nếu học viên cùng lúc học nhiều lớp thì ứng với mỗi lớp, học viên đó có một MAHV khác nhau). Mỗi học viên xác định họ tên (HOTEN), ngày sinh (NGAYSINH),nơi sinh (NOISINH), phái nam hay nữ (PHAI), nghề nghiệp (NGHENGHIEP) - nghề nghiệp là SINH VIÊN, GIÁO VIÊN, KỸ SƯ, HỌC SINH, BUÔN BÁN, Trung tâm KTCT có nhiều lớp, mỗi lớp có một mã lớp duy nhất (MALOP), mỗi lớp xác định các thông tin: tên lớp (TENLOP), thời khoá biểu, ngày khai giảng (NGAYKG), học phí (HOCPHI). Chú ý rằng tại một thời điểm, trung tâm có thể mở nhiều lớp cho cùng một chương trình học. Với các lớp dài hạn thì ngày khai giảng được xem là ngày bắt đầu của mỗi học Trang 2
- phần và HỌC PHÍ là học phí của mỗi học phần, với lớp ngắn hạn thì HỌC PHÍ là học phí của toàn khoá học đó. Trung tâm có nhiều môn học, mỗi môn học có mã môn học (MAMH) duy nhất, mỗi môn học xác định tên môn học(TENMH), số tiết lý thuyết (SOTIETLT), số tiết thực hành (SOTIETTH). Mỗi học viên ứng với mỗi môn học có một điểm thi(DIEMTHI) duy nhất. Mỗi lần đóng học phí, học viên sẽ được trung tâm giao cho một phiếu biên lai thu tiền, mỗi biên lai có một số biên lai duy nhất để quản lý. Một số yêu cầu của hệ thống này như::Lập danh sách những học viên khai giảng khoá ngày nào đó. Lập danh sách các học viên của một lớp ? Cho biết số lượng học viên của mỗi lớp khai giảng khoá ngày nào đó ? 1.5. QUẢN LÝ COI THI TUYỂN SINH Một hội đồng coi thi tuyển sinh có nhiều điểm thi, mỗi điểm thi được đặt tại một trường nào đó. Các điểm thi (DIEMTHISO) được đánh số là điểm thi số 1, điểm thi số 2, điểm thi số 3, Mỗi điểm thi xác định địa chỉ (DIACHIDIEMTHI). Ví dụ: điểm thi số 1, đặt tại trường PTTH Nguyễn Thị Minh Khai, điểm thi số 2 đặt tại trường PTTH Bùi Thị Xuân, Mỗi thí sinh có một số báo danh (SOBD) duy nhất, mỗi số báo danh xác định các thông tin: họ và tên (HOTEN), ngày sinh (NGAYSINH), phái (PHAI), hộ khẩu thường trú (TINH), đối tượng dự thi (DOITUONG), ngành đăng ký thi, khu vực của thí sinh (KHUVUC), số hiệu phòng thi. Ví dụ: thí sinh Vũ Mạnh Cường, có số báo danh là 02978, sinh ngày 12/12/1984, phái nam, hộ khẩu thường trú tại Chợ Gạo - Tiền Giang, thuộc khu vực 1, đối tượng là 5B, đăng ký dự thi vào ngành có mã ngành là 01, thi tại phòng thi 0178, điểm thi số 1. Mỗi ngành có một mã ngành (MANGANH) duy nhất, mỗi mã ngành xác định tên ngành (TENNGANH) Mỗi điểm thi có nhiều phòng thi – mỗi phòng thi (PHONGTHI) được đánh số khác nhau ở tất cả các điểm thi. Trong một phòng thi, danh sách các thí sinh được sắp xếp theo thứ tự alphabet (do đó trong một phòng thi có thể có thí sinh của nhiều ngành khác nhau). Mỗi phòng thi có thêm cột ghi chú (GHICHU) - ghi thêm các thông tin cần thiết như phòng thi đó nằm tại dãy nhà nào. Ví dụ phòng thi 0060 nằm ở dãy nhà H lầu 2 - điểm thi số 1 - trường PTTH Bùi Thị Xuân. Mỗi môn thi có một mã môn thi duy nhất (MAMT), mỗi mã môn thi biết các thông tin như : tên môn thi (TENMT), ngày thi (NGAYTHI), buổi thi (BUOITHI), thời gian làm bài thi được tính bằng phút (PHUT). Thời gian làm bài thi của các môn tối thiểu là 90 phút và tối đa là 180 phút (tuỳ theo kỳ tuyển sinh công nhân, trung cấp, cao đẳng hay đại học) Mỗi ngành có một mã ngành, chẳng hạn ngành Công Nghệ Thông Tin có mã ngành là 01, ngành Công Nghệ Hoá Thực Phẩm có mã ngành là 10, Mỗi đơn vị có cán bộ tham gia vào kỳ thi có một mã đơn vị duy nhất (MADONVI), mã đơn vị xác định tên đơn vị (TENDONVI). Nếu là cán bộ, công nhân viên của trường thì đơn vị là khoa/phòng quản lý cán bộ đó, nếu là giáo viên từ các trường khác thì ghi rõ tên Trang 3
- đơn vị đó. Chẳng hạn cán bộ Nguyễn Thanh Liêm đơn vị Khoa Công Nghệ Thông Tin, cán bộ coi thi Nguyễn Thị Tuyết Mai, đơn vị trường PTTH Ngôi Sao - Quận 1, Mỗi cán bộ coi thi chỉ làm việc tại một điểm thi nào đó. Mỗi cán bộ có một mã số duy nhất (MACANBO), mỗi MACANBO xác định các thông tin khác như : họ và tên (HOTENCB), đơn vị công tác, chức vụ (CHUCVU) được phân công tại điểm thi, chẳng hạn chức vụ là điểm trưởng, điểm phó, giám sát, thư ký, cán bộ coi thi, phục vụ, Ví dụ cán bộ Nguyen Van Thanh đơn vị Khoa Công Nghệ Thông Tin, làm nhiệm vụ thi tại điểm thi số 1, chức vụ là giám sát phòng thi. PHẦN II : Thực hiện truy vấn dữ liệu bằng ngôn ngữ Đại số quan hệ Cho lược đồ cơ sở dữ liệu Sinhvien(MASV, HOTENSV, NU, NGAYSINH, NOISINH,TINH,MALOP) Lop(MALOP,TENLOP, MAKHOA) Khoa(MAKHOA,TENKHOA) Monhoc(MAMH,TENMH,DONVIHT) Giangvien(MAGV,HOTENGV,HOCVI,CHUYENNGANH,MAKHOA) Ketqua(MASV, MAMH, LANTHI, DIEMTHI) Phancong(MALOP,MAMH,MAGV) a. Lập danh sách những sinh viên có hộ khẩu thường trú ở tỉnh “LONG AN”, danh sách cần các thông tin: MASV, HOTENSV, NGAYSINH, TENLOP b.Lập danh sách các sinh viên của lớp có MALOP là CDTH2A, danh sách cần các thông tin: MASV, HOTENSV, NGAYSINH, TINH. c.Lập danh sách các giảng viên có cấp học vị là THAC SY của khoa có MAKHOA là “CNTT”, danh sách cần: MAGV,HOTENGV, CHUYENNGANH. d.Lập bảng điểm thi lần 1 môn học “869” cho tất cả sinh viên thuộc hai lớp có MALOP là “CĐTH2A” và “CĐTH2B”, danh sách cần: MASV,HOTENSV,DIEMTHI. e.Lập danh sách các giảng viên đã dạy lớp CĐTH2A, danh sách cần các thông tin: MAGV, HOTENGV,TENKHOA,HOCVI,TENMH. f.Lập danh sách các môn mà lớp CDTH2A đã học, danh sách cần các thông tin: MAMH,TENMH,DONVIHT,HOTENGV. g.Lập danh sách những giảng viên đã dạy sinh viên có MASV là “00CDTH189“, danh sách cần : MAGV,HOTENGV,HOCVI,CHUYENNGANH,TENKHOA,TENMH h.Lập danh sách các sinh viên có mã khoa “CNTT” có điểm thi lần 1 môn học “869” lớn hơn hoặc bằng 8, danh sách cần MASV, HOTENSV, DIEMTHI, TENLOP. Trang 4
- PHẦN III : Thực hiện truy vấn dữ liệu bằng ngôn ngữ SQL 3.1 Congtrinh(MACT,TENCT,ĐIAĐIEM,NGAYCAPGP ,NGAYKC,NGAYHT) Nhanvien(MANV,HOTEN,NGAYSINH,PHAI,ĐIACHI,MAPB) Phongban(MAPB,TENPB) Phancong(MACT,MANV,SLNGAYCONG) a. Danh sách những nhân viên có tham gia vào công trình có mã công trình(MACT) là X.Yêu cầu các thông tin: MANV,HOTEN, SLNGAYCONG, trong đó MANV được sắp tăng dần b. Đếm số lượng ngày công của mỗi công trình. Yêu cầu các thông tin: MACT, TENCT, TONGNGAYCONG (TONGNGAYCONG là thuộc tính tự đặt) c. Danh sách những nhân viên có sinh nhật trong tháng 08. yêu cầu thông tin: MANV, TENNV, NGAYSINH, ĐIACHI,TENPB, sắp xếp kết quả theo thứ tự tuổi giảm dần. d. Đếm số lượng nhân viên của mỗi phòng ban. Yêu cầu các thông tin: MAPB, TENPB, SOLUONG. (SOLUONG là thuộc tính tự đặt.) 3.2. Giaovien (MAGV,HOTEN, MAKHOA) Monhoc (MAMH,TENMH) Phonghoc (PHONG,CHUCNANG) Khoa (MAKHOA,TENKHOA) Lop (MALOP,TENLOP, MAKHOA) Lichday (MAGV, MAMH, PHONG, MALOP, NGAYDAY, TUTIET, ĐENTIET, BAIDAY, LYTHUYET, GHICHU) a. Xem lịch báo giảng tuần từ ngày 08/09/2003 đến ngày 14/09/2003 của giáo viên có MAGV (mã giáo viên) là TH3A040. Yêu cầu: MAGV,HOTEN, TENLOP,TENMH,PHONG, NGAYDAY, TUTIET, ĐENTIET, BAIDAY, GHICHU) b. Xem lịch báo giảng ngày 08/09/2003 của các giáo viên có mã khoa là CNTT. Yêu cầu: MAGV, HOTEN, TENLOP, TENMH, PHONG, NGAYDAY, TUTIET, ĐENTIET, BAIDAY, GHICHU) c. Cho biết số lượng giáo viên (SOLUONGGV) của mỗi khoa, kết quả cần sắp xếp tăng dần theo cột tên khoa. yêu cầu : TENKHOA, SOLUONGGV (SOLUONGGV là thuộc tính tự đặt) Trang 5
- 3.3 Hàng năm, Trường X tổ chức kỳ thi giỏi nghề cho các học sinh- sinh viên của trường, mỗi thí sinh sẽ thi hai môn (chẳng hạn các thi sinh thi giỏi nghề công nghệ thông tin thi hai môn là Visual Basic và Cơ Sở Dữ Liệu). Giả sử lược đồ cơ sở dữ liệu của bài toán quản lý các kỳ thi trên được cho như sau: THISINH(MASV,HOTEN, NGAYSINH, MALOP) LOP(MALOP,TENLOP,MAKHOA) KHOA(MAKHOA,TENKHOA,ĐIENTHOAI) MONTHI(MAMT,TENMONTHI) KETQUA(MASV,MAMT,ĐIEMTHI) Dựa vào lược đồ cơ sở dữ liệu trên, hãy thực hiện các yêu cầu sau bằng ngôn ngữ SQL: a. Hãy cho biết số lượng thí sinh của mỗi khoa đăng ký thi giỏi nghề, cần sắp xếp kết quả theo chiều tăng dần của cột TENKHOA. b. Lập danh sách những thí sinh đạt danh hiệu giỏi nghề (Thí sinh đạt danh hiệu giỏi nghề nếu thí sinh không có môn thi nào điểm dưới 8). c. Lập danh sách những thí sinh nhỏ tuổi nhất có mã khoa là “CNTT” dự thi giỏi nghề. 3.4 Cho Lược đồ cơ sở dữ liệu quản lý nhân viên của một công ty như sau: Nhanvien(MANV,HOTEN, NU,NGAYSINH,LUONG,MAPB, MACV) Tân từ : Mỗi nhân viên có một mã nhân viên (MANV) duy nhất, mỗi mã nhân viên xác định họ và tên nhân viên (HOTEN), giới tính (NU), lương (LUONG), mã phòng ban (MAPB), mã chức vụ (MACV). Phongban(MAPB,TENPB,TRUSO,MANVPHUTRACH,KINHPHI,DOANHTHU) Tân từ : Mỗi phòng ban có tên gọi phòng ban(TENPB), địa điểm đặt trụ sở (TRUSO), mã nhân viên phụ trách(MANVPHUTRACH), kinh phí hoạt động (KINHPHI), và doanh thu(DOANHTHU) Chucvu(MACV,TENCV,LUONGTHAPNHAT,LUONGCAONHAT) Tân từ : Mỗi chức vụ co tên gọi chức vụ (TENCV), mức lương tối thiểu(LUONGTHAPNHAT), mức lương tối đa (LUONGCAONHAT). a.Lập danh sách gồm các thông tin về các phòng ban trong công ty như: mã số phòng ban, tên phòng ban, địa điểm trụ sở, mã số người phụ trách, kinh phí hoạt động, doanh thu. b.Lập danh sách những nhân viên sinh nhật trong tháng 10 c.Lập danh sách gồm các thông tin mã số nhân viên, họ và tên và lương cả năm của các nhân viên (giả sử rằng luơng cả năm =12*lương) d. Lập những phòng ban có kinh phí hoạt động cao nhất. Trang 6
- e. Lập danh sách nhân viên của phòng ban có mã số phòng ban là 40. g. Lập danh sách các nhân viên có lương tháng từ 2.500.000 đến 4.000.000 h. Tìm những nhân viên có tuổi cao nhất thuộc phòng ban có MAPB là 10 i. Lập danh sách các nhân viên của phòng 10,30,50. kết quả in ra theo thứ tự giảm dần theo mức lương. l. Lập danh sách gồm mã phòng mà người có mức lương cao nhất của phòng lớn hơn hoặc bằng 4.000.000 m. Lập mã phòng ban, tên phòng ban, họ và tên của lãnh đạo phòng tương ứng. n. Lập danh sách những người làm việc cùng phòng với ông Nguyen Van Thanh o. Cho biết mã số nhân viên, họ tên, mức lương của người lãnh đạo ông Nguyen Van Thanh p. Lập danh sách nhân viên có mức lương lớn hơn hay bằng mức lương cao nhất của phòng ông Nguyen Van Thanh. q. Cho biết tổng số nhân viên, mức lương cao nhất, mức lưong thấp nhất, mức lương trung bình của từng phòng ban. PHẦN IV : Ràng buộc toàn vẹn 4.1. Việc tổ chức kỳ thi tốt nghiệp của một khoa như sau: - Mỗi thí sinh có một Mã số sinh viên duy nhất (MASV), mỗi MASV xác định được các thông tin: họ và tên (HOTEN), ngày sinh (NGAYSINH), nơi sinh, nữ,phái, dân tộc. - Mỗi lớp có một mã lớp (MALOP) duy nhất , mỗi mã lớp xác định các thông tin: tên lớp (TENLOP), mỗi lớp chỉ thuộc sự quản lý của một khoa nào đó. Mỗi khoa có một mã khoa duy nhất (MAKHOA), mỗi mã khoa xác định tên khoa (TENKHOA). - Mỗi thí sinh đều phải dự thi tốt nghiệp ba môn. Mỗi môn thi có một mã môn thi (MAMT) duy nhất, mỗi mã môn thi xác định các thông tin: tên môn thi (TENMT), thời gian làm bài – được tính bằng phút (PHUT), ngày thi (NGAYTHI), buổi thi (BUOITHI), môn thi này là môn lý thuyết hay thực hành (LYTHUYET). Chú ý rằng, nếu một môn học được cho thi ở nhiều hệ thì được đặt MAMT khác nhau (chẳng hạn cả trung cấp và cao đẳng ngành công nghệ thông tin đều thi môn Cơ Sở Dữ Liệu), để diễn tả điều này, mỗi mã môn học cần phải được ghi chú (GHICHU) để cho biết môn thi đó dành cho khối nào trung cấp, hay cao đẳng). Mỗi thí sinh ứng với một môn thi có một điểm thi (DIEMTHI) duy nhất, điểm thi được chấm theo thang điểm 10 và có lấy điểm lẻ đến 0.5. Một thí sinh được coi là đậu tốt nghiệp nếu điểm thi của tất cả các môn của thí sinh đó đều lớn hơn hoặc bằng 5. - Trong một phòng thi có thể có thí sinh của nhiều lớp. Trong một kỳ thi, mỗi thí sinh có thể thi tại những phòng thi (PHONGTHI) khác nhau, chẳng hạn một thí sinh thi tốt nghiệp ba môn là Cơ sở dữ liệu, Lập trình C và Visual Basic thì môn Cơ Sở Dữ Liệu và Lập Trình C thi tại phòng A3.4, còn môn thực hành Visual Basic thi tại phòng máy H6.1 Qua phân tích sơ bộ trên, ta có thể lập một lược đồ cơ sở dữ liệu như sau: Trang 7
- THISINH(MASV,HOTEN,NGAYSINH,MALOP) LOP(MALOP,TENLOP) MONTHI(MAMT,TENMT, LYTHUYET,PHUT,NGAYTHI,BUOITHI,GHICHU) KETQUA(MASV,MAMT,DIEMTHI) a. Tìm khoá cho mỗi lược đồ quan hệ trên. b. Hãy phát biểu các ràng buộc toàn vẹn có trong cơ sở dữ liệu trên. c. Thực hiện các yêu cầu sau bằng ngôn ngữ SQL : 1. Lập bảng điểm môn thi có mã môn thi là “CSDL02” cho tất các thí sinh có mã lớp là “CDTH2A”. danh sách cần MASV, HOTEN, NGAYSINH, DIEMTHI và được sắp xếp tăng dần theo MASV. 2. Hãy thống kê xem mỗi môn thi có bao nhiêu thí sinh có điểm thi lớn hơn hay bằng 5? Danh sách cần: MAMT,TENMT,GHICHU,SOLUONG trong đó số lượng (SOLUONG) là thuộc tính tự đặt. 3. Lập danh sách những thí sinh đậu tốt nghiệp (theo tiêu chuẩn đã phân tích ở trên), danh sách cần: MASV,HOTEN,NGAYSINH,DIEMTONG, trong đó DIEMTONG bằng tổng điểm thi của 3 môn thi, DIEMTONG là thuộc tính tự đặt. 4. Nếu cần mở rộng bài toán theo hai hướng; Thứ nhất là quản lý kỳ thi tốt nghiệp cho tất cả các khoa trong toàn trường, Thứ hai là quản lý thông tin về phòng thi (PHONGTHI) của mỗi thí sinh, thì lược đồ cơ sở dữ liệu trên cần phải được điều chỉnh như thế nào ? 4.2 Hãy tìm các ràng buộc toàn vẹn có trong lược đồ cơ sở dữ liệu ở các bài tập 3.1 đến 3.4. PHẦN V : Xác định khóa và các chuẩn 5.1. 1. Cho lược đồ quan hệ Q(ABCD), r là một quan hệ trên Q. phụ thuộc hàm nào sau đây không thoả r D → A; A,C → D; CD → A; D → B; 2. Cho lược đồ quan hệ Q(ABCD), r là quan trên Q được cho như sau: Trang 8
- Những phụ thuộc hàm nào sau đây thoả r ? AB → D; C → B; B → C; BC → A; BD → A. 3. Cho lược đồ quan hệ Q(ABCD), r là quan hệ được cho như sau: Những phụ thuộc hàm nào sau đây không thoả r ? A → B; A → C; B → A; C → D; D → C; D → A 5.2. a. Cho lược đồ quan hệ Q(ABCD) và tập phụ thuộc hàm F = { A → B; BC→D}. Những phụ thuộc hàm nào sau đây thuộc F+ ? C → D; A → D; AD → C; AC → D; BC → A; B → CD. b. Cho lược đồ quan hệ Q(ABCDEGH) và tập phụ thuộc hàm F F ={ AB → C; B →D; CD → E; CE → GH; G → A} Những phụ thuộc hàm nào sau đây không thuộc vào F+ ? AB → E; AB → GH; CGH → E; CB → E; GB → E. c. Cho lược đồ quan hệ Q(ABCD), F như sau: F=[ A → B; A → C]. Trong các phụ thuộc hàm sau, những phụ thuộc hàm được suy ra từ F ? A → D; C → D; AB → B; BC → A; A → BC 5.3. Cho lược đồ quan hệ Q(ABCD) và tập phụ thuộc hàm F={ A → D; D → A; AB→C} a.Tính AC+ b.Chứng minh BD → C ∈ F+ 5.4. a) Q (ABCDEG), Cho : F={AB → C; C → A; BC → D; ACD → B; D → EG; BE → C ; CG → BD; CE → AG} X=[BD], X+=? Y=[CG], Y+=? Trang 9
- b) Cho lược đồ quan hệ Q và tập phụ thuộc hàm F F={ AB → E; AG → I; BE → I; E → G ; GI → H } Chứng minh rằng AB → GH. c) Tương tự cho tập phụ thuộc hàm: F = { AB → C; B → D; CD → E; CE → GH; G → A} Chứng minh rằng AB → E; AB → G d) Q(ABCDEGH), F = {B → A; DA→ CE; D → H; GH→ C; AC→ D } Hãy tìm một khoá của Q ? 5.5 Hãy tìm tất cả các khoá cho lược đồ quan hệ sau: Q(BROKER,OFFICE,STOCK,QUANTITY,INVESTOR,DIVIDENT) F={STOCK→DIVIDENT,INVESTOR→BROKER,INVESTOR,STOCK→QUANTITY, BROKER → OFFICE} 5.6 Cho Q(A,B,C,D) và F=[ AB → C; D → B; C → ABD] . Hãy tìm tất cả các khoá của Q 5.7. Cho lược đồ quan hệ Q(MSCD,MSSV,CD,HG) và tập phụ thuộc F như sau: F=[ MSCD→CD; CD→MSCD; CD,MSSV→HG; MSCD,HG→MSSV; CD,HG→MSSV; MSCD,MSSV→HG} Hãy tìm phủ tối thiểu của F. 5.8 Xác định phủ tối thiểu của tập phụ thuộc hàm sau: Q(ABCDEG) F = {AB → C; C → A; BC → D; ACD → B; D → EG; BE → C; CG → BD; CE → AG} 5.9 a. Cho Q(ABCD) và F = {AB → C; D → B; C → ABD}. - Hãy kiểm tra xem AB → D có thuộc F+ hay không ? - Hãy tìm tất cả các khoá của lược đồ quan hệ Q. Xác định dạng chuẩn của Q. b. Cho Q(A,B,C,D) và F={C → A; A → C; AD → B; BC → D; AB → D; CD→B } Hãy tìm phủ tối thiểu của F. 5.10. Cho biết dạng chuẩn của các lược đồ quan hệ sau: a. Q(ABCDEG); F=[A → BC, C → DE, E → G] b. Q(ABCDEGH); F=[C → AB, D → E, B → G] c. Q(ABCDEGH); F=[A → BC. D → E, H → G] d. Q(ABCDEG); F=[AB → C; C → B; ABD → E;G → A] e. Q(ABCDEGHI); F=[AC → B;BI → ACD; ABC → D; H → I; ACE → BCG;CG → AE] Trang 10