CHƯƠNG I: ĐẠI SỐ QUAN HỆ
Bài 1: Cho ba quan hệ sau:
Thực hiện các phép tính quan hệ sau:
- R1 x R2
- R1 * R2
- δD =d(R1 * R3)
- R1 * R2 * R3
- πBC (R1 *R2 *R3)
Bài 2: Cho hai quan hệ sau:
Thực hiện các phép tính quan hệ sau:
- R1 x R2
- R1 * R2
- πBE (R1 *R2 )
CHƯƠNG 2: PHỤ THUỘC HÀM
Bài 1: Cho quan hệ r dưới đây:
Tìm những phụ thuộc hàm thoả r
Bài 2: Phát biểu hệ tiên đề Armstrong cùng các luật suy dẫn
Bài 3: Cho lược đồ quan hệ R và tập các phụ thuộc hàm
F = { AB -> E, AG -> I, BE -> I, E -> G, GI ->H}
Chứng minh rằng: AB ->GH
Bài 4: Cho lược đồ quan hệ R và tập các 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
Bài 5: Nêu thuật toán tìm bao đóng của một tập thuộc tính.
Bài 6: Cho lược đồ quan hệ R = ( ABCDEGH ) và tập phụ thuộc hàm F xác định trên R
F = { A -> D, AB -> DE, CE -> G, E -> H}
Tính bao đóng: (AB)+
Bài 7: Cho lược đồ quan hệ R = ( ABCDEG) và tập phụ thuộc hàm F xác định trên R
F = { A -> C, BC-> D, D -> E, E -> A}
Tính bao đóng:
a) (AB)+
b) (BD)+
Bài 8: Phát biểu thuật toán tìm khoá của một quan hệ
Bài 9: Cho lược đồ quan hệ R = ( ABCDEG ) và tập phụ thuộc hàm F
F = { B -> C, AC-> D, D -> G, AG -> E}
Hãy tìm khoá của lược đồ trên.
Bài 10: Cho lược đồ quan hệ R = ( ABCDEF)
F = {AB ->C, C -> B, ABD -> E, F -> A}
- Hãy tìm một khoá của lược đồ quan hệ trên
- Tập ABC có phải là khoá của lược đồ trên không? Vì sao?
- Tập BC có phải là khoá của lược đồ trên không? Vì sao?
- Lược đồ trên còn khoá nào nữa không?
CHƯƠNG 3: CHUẨN HOÁ
Bài 1: Nêu định nghĩa lược đồ quan hệ ở dạng chuẩn 1NF, 2NF, 3NF, BCNF
Bài 2: Cho lược đồ quan hệ R = ( ABCD) và tập phụ thuộc hàm F
F = { A -> B, A ->BC, A->BD}
Lược đồ trên có ở dạng chuẩn 2NF? Vì sao? Nếu chưa hãy chuẩn hoá lược đồ về 2NF
Bài 3: Cho lược đồ quan hệ R = ( ABCD) và tập phụ thuộc hàm F
F = { A ->D, AB->DC }
Lược đồ trên có ở dạng chuẩn 2NF? Vì sao? Nếu chưa hãy chuẩn hoá lược đồ về 2NF
Bài 4: Cho lược đồ quan hệ R = ( ABCDEF) và tập phụ thuộc hàm F
F = { AB -> C, AB -> D, AB -> EF}
Lược đồ trên có ở dạng chuẩn 3NF? Vì sao? Nếu chưa hãy chuẩn hoá lược đồ về 3NF
Bài 5: Cho lược đồ quan hệ R = ( ABCDEF) và tập phụ thuộc hàm F
F = { AB -> C, AB ->D, E -> F}
Lược đồ trên có ở dạng chuẩn 3NF? Vì sao? Nếu chưa hãy chuẩn hoá lược đồ về 3NF
Bài 6: Cho lược đồ quan hệ R = ( ABCDEFGH) và tập phụ thuộc hàm F
F = { AB -> C, AB -> D, AB -> EF, AB -> GH}
Lược đồ trên có ở dạng chuẩn BCNF? Vì sao? Nếu chưa hãy chuẩn hoá lược đồ về BCNF
Bài 7: Cho lược đồ quan hệ R = ( ABCDEFGH) và tập phụ thuộc hàm F
F = { AB -> C, D -> B, AB -> EF, AB -> GH}
Lược đồ trên có ở dạng chuẩn BCNF? Vì sao? Nếu chưa hãy chuẩn hoá lược đồ về BCNF
Bài 8: Kiểm tra tính kết nối không mất mát thông tin của
R = ABCDE thành: R1 = AD, R2 = AB, R3 = BE, R4 = CDE, R5 = AE
Với tập phụ thuộc hàm
F = { A -> C, B -> C, A-> D, DE -> C, CE->A }
Bài 9: Kiểm tra tính kết nối không mất mát thông tin của
R = ABCD thành: R1 = AB, R2 = ACD
Với tập phụ thuộc hàm
F = { A -> B, AC -> D }
Bài 10: Kiểm tra tính kết nối không mất mát thông tin của
R = ABCDEI thành: R1 = AD, R2 = AB, R3 = BE, R4 = CDE
Với tập phụ thuộc hàm
F = { A -> I, B -> C, C -> D, DE -> C, CE -> A}
Bài 11: Cho biết dạng chuẩn của các lược đồ quan hệ sau
- Q(ABCDEG); F = {A->BC, C->DE, E->G}
- Q(ABCDEGH); F={C->AB, D->E, B->G}
- Q(ABCDEGH); F={A->BC, D->E, H->G}
- Q(ABCDEG); F={AB->C, C->B, ABD->E, G->A}
- Q(ABCDEGHI); F={AC->B, BI->ACD, ABC->D, H->I, ACE->BCG, CG->AE}
Bài 12: Kiểm tra bảo toàn thông tin
Q(ABCDE); R1(DA); R2(AB); R3(BE); R4(CDE); R5(AE)
F={A->C, B->C, C->D, DE->C, CE->A}
Baì 13: Cho lược đồ quan hệ Q(ABCD) và tập phụ thuộc hàm F={A->B, B->C, A->D, D->C}
Và một lược đồ CSDL như sau: C={Q1(AB), A2(AC), Q3(BD)}
- C có bảo toàn thông tin đối với F
- C có bảo toàn phụ thuộc hàm
Bài 14: Cho lược đồ CSDL
Kehoach(NGAY, GIO, PHONG, MONHOC, GIAOVIEN}
F={NGAY, GIO, PHONG->MONHOC
MONHOC,NGAY->GIAOVIEN
MONHOC->GIAOVIEN}
- Xác định dạng chuẩn cao nhất của Kehoach
- Nếu Kehoach chưa đạt dạng chuẩn 3, hãy phân rã Kehoach thành lược đồ CSDL dạng chuẩn 3 vừa bảo toàn phụ thuộc hàm vừa bảo toàn thông tin.
- Nếu Kehoach chưa đạt dạng chuẩn BC, hãy phân rã Kehoach thành lược đồ CSDL dạng BC
Bài 15: Cho lược đồ quan hệ Q(ABCD) và tập phụ thuộc hàm F
F={A->B, B->C, D->B} C={Q1(ACD), Q2(BD)}
- Xác định Fi (những phụ thuộc hàm F được bao đóng trong Qi)
- Lược đồ CSDL C có đạt dạng chuẩn BC. Nếu không có thể phân rã Qi của C để biến C thành dạng chuẩn BC
Bài 16 Giả sử ta có lược đồ quan hệ Q(CDEGHK) và tập phụ thuộc hàm F như sau
F={CK->H, , C->D, E->C, E->G, CK->E}
- từ tập F hãy chứng minh EK->DH
- tìm tất cả các khoá của Q
- Xác định dạng chuẩn của Q
- Hãy tìm cách phân rã Q thành một lược đồ CSDL đạt dạng chuẩn BC. Tìm tập phụ thuộc hàm và khoá cho mỗi lược đồ quan hệ con.
Bài 17 Cho lược đồ quan hệ Q(SIDM)
F={f1: SI -> DM, f2: SD -> M, f3: D -> M}
- Tìm bao đóng của D+, SD+, SI+
- Tìm tất cả các khoá của Q
- Tìm phủ tối thiểu của F
- Xác định dạng chuẩn của Q
- Nếu Q chưa đạt dạng chuẩn 3, hãy phân rã Q thành lược đồ CSDL dạng chuẩn 3 vừa bảo toàn phụ thuộc hàm vừa bảo toàn thông tin
- Nếu Q chưa đạt dạng chuẩn BCNF, hãy phân rã Q thành lược đồ CSDL dạng BCNF
- Kiểm tra phép tách Q thành các lược đồ con (SID, SIM) có bảo toàn phụ thuộc hàm
Bài 18 Cho lược đồ quan hệ
R(W, A, Z, Y, Q, P)
R1(A, Z)
R2(W, Y, Q, P)
R3(Y, Q, P, A)
F={W ->AYQP, A ->Z, YQP ->A}
Hãy kiểm tra tính kết nối không mất thông tin.
Bài 19 Cho lược đồ quan hệ Q(môn,Giảng Viên, Giờ giảng, Phòng, Sinh Viên, Hạng) với
F={M -> GV; G, P-> M; G, GV -> P; M, SV -> H; G, SV -> P}
C={Q1(M, G, P); Q2(M, GV); Q3(M, SV,H)}
Kiểm tra xem lược đồ cơ sở dữ liệu sau đây có bảo toàn thông tin đối với F
Bài 20 Kiểm tra dạng chuẩn
- Q(A, B, C, D) F={CA->D; A->B}
- Q(S, D, I, M) F={SI -> D; SD -> M}
- Q(N, G, P, M, GV) F=(N, G , P -> GV}
- Q(S, N, D, T, X) F={S -> N; S -> D; S -> T; S -> X}
Bài 20 Phân rã lược đồ thành dạng 3NF vừa bảo toàn phụ thuộc hàm vừa bảo toàn thông tin
- Q(A, B, C) F={A -> B, A -> C, B -> A, C -> A, B -> C}
- Q(A, B, C, D) F={AB -> C, C -> B}
CHƯƠNG 5: SQL
Bài 1: Cho CSDL Thực tập gồm ba quan hệ như sau:
SV(MSV, HT, NS, QUE, HL)
DT(MDT, TDT, CN, KP)
SD(MSV, MDT, NTT, KM, KQ)
Trong đó:
SV: sinh viên | TDT: tên đề tài |
MSV: mã sinh viên | CN: chủ nhiệm |
HT: họ tên | KP: kinh phí |
NS: ngày sinh | SD: sinh viên, đề tài |
QUE: quê | NTT: Nơi thực tập |
HL: học lực | KM: Kilomet ( Khoảng cách từ trường đến nơi thực |
DT: đề tài | tập) |
MDT: mã đề tài | KQ: kết quả |
Hãy thực hiện các câu hỏi sử dụng câu lệnh của SQL:
- Đưa ra danh sách sinh viên có tuổi <18 và có HL >8.5
- Cho biết thông tin về các đề tài được cấp kinh phí trên 10 triệu đồng
- Đưa ra danh sách sinh viên < 18 tuổi, HL và KQ đều > 8.5
- Cho biết danh sách các chủ nhiệm đề tài có các sinh viên quê ở Hà Nội tham gia
- Đưa ra danh sách các sinh viên học giỏi hơn các sinh viên Hà Nội
- Cho biết điểm trung bình của các sinh viên Hà Nội
- Cho biết tổng số đoạn đường thực tập theo đề tài số 5
- Cho biết tổng số sinh viên đi thực tập
- Đưa ra danh sách các tỉnh và số sinh viên quê ở tỉnh đó, nhóm theo QUE
- Đưa ra danh sách các sinh viên sinh trước năm 1980 và có quê ở Hải Phòng
- Cho biết danh sách các sinh viên có nơi thực tập tại quê nhà
Bài 2: Cho CSDL Nhanvien_Duan như sau:
Nhanvien(MaNV, Hoten, Ngaysinh, MaPhong)
Phong(MaPhong, TenPhong, Diadiem, SoDT)
Duan(MaDA, TenDA, Ngansach)
Thamgia(MaNV, MaDA, SogioThamgia)
Biểu diễn các câu truy vấn sau bằng ngôn ngữ SQL:
- Đưa ra danh sách Họ tên, Ngày sinh của các nhân viên tham gia dự án có tên là “ Đào tạo từ xa” hoặc tham gia dự án có tên là “112”.
- Đưa ra danh sách Tên phòng, Địa điểm của phòng có nhân viên mã số “NV-101” làm việc
- Cho biết danh sách Họ tên, Ngày sinh, Mã phòng của các nhân viên tham gia tất cả các dự án
Bài 3: Cho CSDL gồm các quan hệ sau:
Nhanvien(MaNV, Hoten, Diachi, Ngaysinh)
DuA
n(MaDA, TenDA, Chudautu, Ngansach)
ThamGia(MaNV, MaDA, SogioLamviec)
Hãy biểu diễn các câu hỏi sau bằng SQL:
- Đưa ra danh sách MaNV, Hoten, Ngaysinh của những nhân viên làm cho dự án có chủ đầu tư là “VINACO”.
- Đưa ra danh sách bao gồm TenDA, Chudautu, của các dự án có ngân sách khoảng từ 10.000.000 đến 25.000.000
Bài 4: Cho CSDL bao gồm các quan hệ sau:
CB(MaCB, TenCB, Tel, Namsinh, Luong, MaPhong)
Phong( MaPhong, TenPhong, TruongPhong)
TĐVH(MaCb, TrinhDo, Thoigian)
Hãy biểu diễn các câu truy vấn sau bằng ngôn ngữ SQL:
- Đưa ra danh sách cán bộ có trìn độ “Tiến sĩ” của phòng “kỹ thuật”
- Thay đổi số điện thoại cho cán bộ có mã là “CB01” với số điện thoại mới là 7717674
- Đưa ra danh sách cán bộ có trình độ đại học và có lương > 2.000.000
Bài 5: Cho CSDL gồm các quan hệ:
SV(MSV, Hoten, Malop, Diachi)
LOP(Malop, Tenlop, SoSV)
CBGD(MaCBDG, TenCB, MonDay, MaLop, Sotiet)
Hãy biểu diễn các truy vấn sau bằng ngôn ngữ SQL:
Bài tập làm trên máy
Bài thực hành số 1:
Sử dụng câu lệnh CREATE TABLE của SQL để tạo bảng:
Mở Access tạo một CSDL mới: Quanlysinhvien
CREATE TABLE KHOA CREATE TABLE GIAOVIEN
(Makhoa Varchar(3) Not null, (Magv varchar(4) Not null,
Tenkhoa Varchar(20) Not null, Tengv Varchar(40) Not null,
PRIMARY KEY(Makhoa)); Ngaysinh Date,
Trinhdo Varchar(10),
PRIMARY KEY (Mamon, Magv));
CREATE TABLE SINHVIEN CREATE TABLE MON
(Masv Varchar(4) Not null, (Mamon Varchar(3) Not null,
Hodem Varchar(15) Not null, Tenmon Varchar(20) Not null,
Ten Varchar(7) Not null, Magv Varchar(4) Not null,
Que Varchar(50),
Gioitinh Varchar(3), CREATE TABLE BANGDIEM
Ngaysinh Date, (Masv Varchar(4) Not null,
Hocbong IN, Mamon Varchar(3) Not null,
Makhoa Varchar(3) Not null, Lanthi bye Not null,
PRIMARY KEY(Masv)); Diem Real Not null,
PRIMARY KEY (Masv, Mamon, Lanthi));
Bài thực hành số 2:
Sử dụng câu lệnh INSERT INTO để nhập giá trị vào bảng :
Ví dụ nhập dữ liệu cho bảng môn:
INSERT INTO KHOA VALUES(“KHO1”,”Toan tin”)
KHOA | |
Makhoa | Tenkhoa |
KH1 | Toán tin |
KH2 | Tiếng Anh |
KH3 | Luật |
KH4 | Công nghê thông tin |
GIAOVIEN | |||
Magv | Tengv | Namsinh | Trinhdo |
GV01 | Lê Mai | 11/12/1976 | Đại học |
GV02 | Hà Châu | 03/12/1955 | Thạc sỹ |
GV03 | Trần Tuấn | 05/07/1972 | Đại học |
GV04 | QuỳnhAnh | 16/05/1980 | Đại học |
GV05 | HoangHoa | 06/04/1973 | Thạc sỹ |
GV06 | ThanhToan | 12/12/1947 | Tiến sỹ |
MON | ||
Mamon | Tenmon | Magv |
MO1 | Tin Văn Phòng | MG01 |
MO2 | Lập trình Pascal | MG01 |
MO3 | Cow sở dữ liệu | MG01 |
MO4 | Toán rời tạc | MG01 |
MO5 | Tiếng Anh | MG01 |
MO6 | Điện tử số | MG01 |
SINHVIEN | |||||||
Masv | Hodem | Ten | Que | Giotinh | Ngaysinh | Hocbong | Khoa |
SV01 | Trần | Toàn | Hà Nội | Nam | 12/12/80 | KH01 | |
SV01 | Le | Na | Hà Nội | Nữ | 24/03/84 | 100 | KH02 |
SV01 | Phan | Ngoc | Thai Bình | Nam | 16/05/84 | KH01 | |
SV01 | Thai | Trung | Hà Nội | Nam | 11/09/83 | 200 | KH01 |
SV01 | Nguyễn | Huy | Ninh Bình | Nữ | 25/12/81 | KH01 | |
SV01 | Nguyễn | Minh | Thanh Hoá | Nữ | 31/04/87 | KH02 | |
SV01 | Hoàng | Dương | Huế | Nam | 05/04/87 | 500 | KH02 |
SV0 | Hoàng | Việt | Hà Nội | Nam | 25/10/81 | KH01 | |
VS0 | Quynh | Anh | Ninh Bình | Nữ | 06/05/82 | KH02 |
BANGDIEM | |||
Masv | Mamon | Lanthi | Diem |
SV01 | M01 | 1 | 6 |
SV01 | M02 | 1 | 3 |
SV01 | M03 | 2 | 5 |
SV02 | M04 | 1 | 8 |
SV02 | M05 | 1 | 9 |
SV03 | M06 | 1 | 2 |
SV03 | M01 | 1 | 4 |
SV04 | M03 | 1 | 6 |
SV04 | M05 | 1 | 7 |
SV05 | M02 | 2 | 8 |
SV05 | M05 | 1 | 5 |
SV06 | M05 | 1 | 6 |
SV06 | M01 | 1 | 9 |
SV06 | M03 | 1 | 9 |
SV07 | M05 | 2 | 10 |
SV07 | M02 | 2 | 7 |
Bài thực hành số 3:
Tạo các Query thực hiện các câu hỏi sau:
- Hiển thị điểm cao nhất trong danh sach bảng điểm
- Hiển thị điểm thấp nhất trong danh sách bảng điểm
- Hiển thị điểm cao nhất theo tưng môn
- Hiển thị điểm thấp nhất theo từng môn
- Tính điểm trung bình của các sinh viên theo từng môn học
- Tính điểm trung bình của các môn học cho từng sinh viên
- Tìm tên của những sinh viên có lần thi bằng 1
- Hiển thị họ tên của nhưng sinh viên không phải thi lại môn nào( thi lại khi điểm < 5)
- Hiển thị họ tên sinh viên, quê, ngày sinh của sinh viên có điểm cao nhất theo danh sách bảng điểm
- Hiển thị họ tên, quê, giới tính cua sinh viên học khoa “toán tin” và điểm trung bình các môn >5
- Hiển thị họ tên sinh viên học khoa là “Luật” hoặc “Tiếng Anh” có lần thi là 2 và có điểm là 3, 4, 5
- Hiển thị các sinh viên có điểm thấp hơn điểm trung bình của bảng điểm
- Tìm tên của các môn và sinh viên có tên “Huy” có điểm >5
- Tìm tên của các môn mà sinh viên có tên “Huy” có lần thi lại là 2 và điểm > 5
- Đếm số lần thi của từng sinh viên
- Hiển thị tên và số lần thi của từng sinh viên
- Hiển thị họ tên, lần thi và điểm cao nhất trong các lần thi theo môn của từng sinh viên
- Hiển thị họ tên sinh viên, môn thi, điểm cao nhất của môn , tổng số lần thi
Bài thực hành số 4:
- Hiển thị tên, điểm cao nhất theo từng môn
- Hiển thị Masv, Điểm trung bình của các sinh viên theo môn
- Hiển thị danh sách Họ đệm, Tên sinh viên, tên môn và điểm của sinh viên
- Hiển thị Masv, Họ đệm, Tên , Điểm trung bình của sinh viên theo môn
- Tìm tên sinh viên có lần thi là 1 và môn học là môn “Tin văn phòng”
- Tìm tên sinh viên có lần thi là 1và môn học là môn “Toán rời rạc” và Điểm >=5
- Hiển thị Masv, họ đệm, tên sinh viên phải thi lại ít nhất 1 môn