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.. có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
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
CHỦ ĐỀ: BÀI BÁO CÁO TIỂU LUẬN CUỐI KÌ
Nhóm: 12 GVHD: NGUYỄN ĐỨC CƯƠNG
Lớp HP: DHTMDT17A – 420300391607
Thành phố Hồ Chí Minh, tháng 5 năm 2023
Trang 2MỤC L C Ụ
BẢNG PHÂN CÔNG NHIỆM VỤ 3
Phần A Xây dựng mô hình ER và tạo CSDL- 6
1 Xây dựng mô hình ER 7
2 Chuyển sang lược đồ quan hệ 8
3 Cài đặt lược đồ quan hệ vào trong hệ ản trị CSDL SQL Server – qu nhập liệu mỗi bảng ít nhất 5 record 8
4 Tự suy nghĩ ra mỗi thành viên 2 câu hỏi truy vấn (không trùng nhau) và giải đáp bằng lệnh SQL (Xem ví dụ minh họa các câu hỏi trong bài tập 1) 8
Phần B: Chuẩn hóa dữ ệu cá nhânli 11
Câu 2: 11
Câu 3: 11
Câu 4: 13
Câu 5: 13
Câu 6: 14
Câu 7: 14
Câu 8: 15
Câu 10: 16
Câu 11: 19
Bài tập tổng hợp 23
Câu 2: 23
Trang 3BẢNG PHÂN CÔNG NHIỆM VỤ
MSSV Họ và Tên Công việc được phân Mức độ hoàn
thành
21072671 Trần Tấn Đạt Tạo bảng NHANVIEN,
KYNANG, NHACUNGCAP Đặtcâu hỏi và trả lời 2 câu select
90%
21009321 Nguyễn Thị Bích Lý Tạo bảng VOCHONG,
CONGVIEC, PHONGBAN,
DUAN Đặtcâu hỏi và trả lời 2 câu update
90%
21000731 Phan Trần Hà My
(NT)
Tạo bảng PHONGBAN_NHACUNGCAP, THANHPHO_DUAN, nhập dữ
liệu Đặt câu hỏi và trả lời 2 câu delete
100%
21014451 Huỳnh Thị Quyến Vẽ mô hình ER
Đặtcâu hỏi và trả lời 2 câu truy
vấn lồng
90%
21092421 Phạm Trần Quốc Thắng Xây dựng mô hình ER
Chuyển sang lược đồ quan hệ; Đặtcâu hỏi và trả lời 2 câu sub query
90%
Trang 4Tìm phủ tối thiểu của F
10/ Xác định phủ tối thiểu củ ập phụ a t thuộc hàm sau:
Hãy tìm tất cả các khóa của Q
2/ Kiểm tra dạng chuẩn Q(C,S,Z), F={CS Z;Z → → C}
Trang 5Huỳnh Thị Quyến
3/ Cho lược đồ quan hệ Q và tập phụ thuộc hàm F
a) F={AB→E;AG→I;BE→I;E→G;GI→ H} chứng minh rằng AB → GH
b) F={AB→C;B→D;CD→E;CE→GH;G→A} chứng minh rằng AB E; AB → → G} 7/ Q(A,B,C,D,E,H) F={A → E; C → D; E DH} chứng minh K={A,B,C} là khóa →duy nhất của Q
Trang 6Phần A Xây dựng mô hình ER và tạo CSDL
-Bài 7:
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 mã nhân viên xác định duy nhất trong toàn công ty, họ tên và ngày sinh có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ườ ợ hoặc ồng đó và ngày kết hôn củi v ch 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ệ ống chỉ cần nắth 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ộ ố điện thoại Một nhân viên chỉ t s thuộc một phòng ban
Để có được nhiều loại thiế ị dụng cụ khác nhau, mỗi phòng ban có quan hệ vớt b i nhiều nhà cung cấp Mỗi nhà cung cấp cung cấp thiế bị cho nhiều phòng ban Hệ t 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ộ ự án trong mỗt d 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ỗ ỹ năng đượi k 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ả ử dụng hết các kỹ i snă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
Trang 71 Xây dựng mô hình ER
Trang 82 Chuyển sang lược đồ quan hệ
NHANVIEN(MANV , HO , TEN , BORNDATE,TENPB)
KYNANG(MAKN,CHUTHICH,MANV , MADA)
VOCHONG(TEN , MANV,NGAYKETHON)
CONGVIEC(MACV , TENCV , MANV)
PHONGBAN(TENPB, SĐT , MANV)
PHONGBAN_NHACUNGCAP(TENPB,MANCC , NGAYLAMVIEC)
NHACUNGCAP(MANCC , TEN , DIA CHI)
THANHPHO( THANH PHO,TIEUBANG,DANSO, MADA,MANV)
DUAN(MADA,TONGCHIPHI , TENTP , THANH PHO,TIEUBANG)
CHÚ THÍCH:
MAUDO : KHÓA CHÍNH
IN NGHIÊNG : KHÓA NGOẠI
3 Cài đ t lược đồ quan hệ vào trong hệ ặ qu ản trị CSDL SQL Server – nhập
4 Tự suy nghĩ ra mỗi thành viên 2 câu hỏi truy vấn (không trùng nhau) và
Câu hỏi 1: Danh sách nhân viên trong công ty bao gồm tên, mã nhân viên, ngày
select n.HO, n.TEN, n.MANV, n.BORNDATE, c.TENCV
from [dbo].[NHANVIEN] n, [dbo].[CONGVIEC] c
where n.MANV = c.MANV
KQ = 5 rows
SELECT [HO], [TEN]
FROM [dbo].[NHANVIEN]
Trang 9WHERE [HO] LIKE 'Tran'
KQ = 1 rows
Câu hỏi 3: Cập nhật ngày kết hôn của nhân viên có MANV=1 thành 01'?
'2022-05-UPDATE VOCHONG SET NGAYKETHON = '2022-05-01' WHERE MANV = 1
UPDATE PHONGBAN SET SDT = '0987654321' WHERE TENPB = 'Phong IT'
DELETE FROM NHACUNGCAP WHERE MANCC = 2
DUAN?
DELETE FROM DUAN WHERE TONGCHIPHI < 100000000
cụ thể
SELECT NV.MANV, NV.HO, NV.TEN, CV.TENCV
FROM NHANVIEN NV
INNER JOIN CONGVIEC CV ON NV.MANV = CV.MANV
INNER JOIN PHONGBAN PB ON NV.MANV = PB.MANV
WHERE PB.TENPB = 'Phong IT'
Trang 10Truy vấn sub query:
SELECT HO, TEN,
Trang 11Phần B: Chuẩn hóa dữ ệu cá nhân li
- Tùy theo s lưố ợng thành viên trong nhóm – mỗi thành viên chọn 2 câu bấ ỳ trongt kphần B để thực hiện
xét f6 vì BE X1 X2 = BDEG C = BCDEG, loạ i f6
xét f7 vì CG X2 X3 = BCDEG BD = BCDEG, loại f7
G}
a) AB > E (từ - F)
E -> G (từ F)
Do đó, ta có AB -> G (1 )
Trang 13-Câu 4: Cho quan hệ r
Các phụ thuộc không thỏa là :
- A → B Vì t2 [A] = t4 [A] nhưng t2 [B] khác t4 [B]
- A → C Vì t2 [A] = t4 [A] nhưng t2 CB] khác t4 [C]
OFFICE , DIVIDENT khác Q+ ( LOẠI ) INVESTOR
, STOCK
BROKER,INVESTOR
, STOCK
BROKER,INVESTOR , STOCK ,
DIVIDENT , QUANTITY , OFFICE
INVESTOR , STOCK
Trang 14Câu 6: Xét lược đồ quan hệ và tập phụ thuộc dữ liệu:
Q(C,T,H,R,S,G)
f={ f1: C->T; f2: HR->C; f3: HT->R; f4: CS->G; f5: HS->R}
Tìm phủ tối thiểu của F
Bước 1: Tìm tập đóng F+ của F bằng cách sử dụng thuật toán Armstrong
f1: C->T, f2: HR->C, f3: HT->R+ , f5: HS->R+ ,f4: CS->G+
Ta có F+ = {C -> T, HR -> C, HT -> R, HS -> R, CS -> G}
Bước 2: Loại bỏ các phụ thuộc dư thừa
Bước 2.1: Tìm tất cả các tập con của mỗi bên của các phụ thuộc trong F
-Bước 2.3: Loại bỏ các phụ thuộc dư thừa
Sau khi áp dụng các quy tắc trên, ta nhận được F mới:
f1: C -> T f2: HR -> C f3: HT -> R f5: HS -> R f4: CS -> G
Phủ tối thiểu của F là F mới này
khóa duy nhất của Q
𝑋𝑖∪𝑇𝑁 (𝑋𝑖∪𝑇𝑁)+ Siêu khóa Khóa
ACBE ABCDEH = 𝑅+ ACBE
Trang 15=> K = { A ; B ; C } Là khóa duy nhấ ủa Q t c
Xi X i TN (Xi TN)+ Siêu khóa khóa
Vậy kết qu cuả ối cùng là:
Khóa: {A, B, C, D, AB, AC, AD, BC, BD, CD}
Trang 16Câu 10: Xác định phủ tố i thiểu c ủa tập phụ thuộc hàm sau:
Trang 18Thêm các phụ thuộc hàm dư thừa vào F:
B->A: thêm A >B vào F
-C->B: thêm B >C vào F Các phụ - thuộc hàm mới: A->B,A >C,B >A,C >A,B >C,A- - - -
->B,B->C
Tìm tập đóng của F+ bằng cách thêm các phụ thuộc hàm mới vào F cho đến khi không
có phụ thuộc nào thêm được nữa:
Bước 2: Loại bỏ các phụ thuộc hàm dư thừa
Bỏ các phần tử không cần thiết khỏi các phụ thuộc hàm:
A->B: loại bỏ B
B->C: loại bỏ C
Các phụ thuộc hàm mới: A->B
Tập phụ thuộc hàm mới là F'={A >B} Đây là phủ tố- i thiểu của F vì các phụ thuộc hàm còn lại có thể được suy ra từ phụ thuộc hàm duy nhất trong F'
Trang 19Câu 11: Xác đ ịnh phủ tố i thiểu c ủa các tập phụ thuộc hàm sau:
-Nếu bỏ A: {B}+ = B không chứa C => A dư thừa
Nếu bỏ B: {A}+ = AH không chứa C => B dư thừa
Xét: BC→D:
-Nếu bỏ B: {C}+ = C không chứa D => B dư thừa
Nếu bỏ C: {B}+ = B không chứa D => C dư thừa
Vậy F2 = {A→H, AB→C, BC→D, G→B}
Bước 3: Loại bỏ phủ tối thiểu dư thừa:
Nếu xóa A→H khỏi F2 thì:
{A}+ = A không chứa H =>A→H không dư thừa
Nếu xóa AB→C khỏi F2 thì:
{AB}+ = ABH không chứa C => AB→C không dư thừa
Nếu xóa BC→D khỏi F2 thì:
{BC}+ = BC không chứa D => BC→D không dư thừa
Nếu xóa G→B khỏi F2 thì:
{G}+ = G không chứa B => G→B không dư thừa
b)
Trang 20Bước 1: Phân rã
F1 = {S→A, AX→B, S→B, BY→C, CZ→X}
Bước 2: Loại bỏ vế trái dư thừa:
Xét: AX→B:
-Nếu bỏ A: {X}+ = X không chứa B => A dư thừa
Nếu bỏ X: {A}+ = A không chứa B => X dư thừa
Xét: BY→C:
-Nếu bỏ B: {Y}+ = Y không chứa C => B dư thừa
Nếu bỏ Y: {B}+ = B không chứa C => Y dư thừa
Xét: CZ→X:
-Nếu bỏ C: {Z}+ = Z không chứa X => C dư thừa
Nếu bỏ Z: {C}+ = C không chứa X => Z dư thừa
Vậy F2 = {S→A, AX→B, S→B, BY→C, CZ→X}
Bước 3: Loại bỏ phủ tối thiểu dư thừa:
Nếu xóa S→A khỏi F2 thì:
{S}+ = SB không chứa A =>S→A không dư thừa
Nếu xóa AX→B khỏi F2 thì:
{AX}+ = AX không chứa B =>AX→B không dư thừa
Nếu xóa S→B khỏi F2 thì:
{S}+ = SA không chứa B =>S→B không dư thừa
Nếu xóa BY→C khỏi F2 thì:
{BY}+ = BY không chứa C =>BY→C không dư thừa
Nếu xóa CZ→X khỏi F2 thì:
{CZ}+ = CZ không chứa X =>CZ→X không dư thừa
c)
Bước 1: Phân rã
F1 = {BG→D, G→J, AI→C, CE→H, BD→G, JH→A, D→I}
Bước 2: Loại bỏ vế trái dư thừa:
Xét: BG→D:
Trang 21-Nếu bỏ B: {G}+ = GJ không chứa D => B dư thừa
Nếu bỏ G: {B}+ = B không chứa D => G dư thừa
Xét: AI→C:
-Nếu bỏ A: {I}+ = I không chứa C => A dư thừa
Nếu bỏ I: {A}+ = A không chứa C => I dư thừa
Xét: CE→H:
-Nếu bỏ C: {E}+ = E không chứa H => C dư thừa
Nếu bỏ E: {C}+ = C không chứa H => E dư thừa
Xét: BD→G:
-Nếu bỏ B: {D}+ = DI không chứa G => B dư thừa
Nếu bỏ D: {B}+ = B không chứa G => D dư thừa
Xét: JH→A:
-Nếu bỏ J: {H}+ = H không chứa A => J dư thừa
Nếu bỏ H: {J}+ = J không chứa A => H dư thừa
Vậy F2 = {BG→D, G→J, AI→C, CE→H, BD→G, JH→A, D→I}
Bước 3: Loại bỏ PTH dư thừa:
Nếu xóa BG→D khỏi F2 thì:
{BG}+ = BGJ không chứa D =>BG→D không dư thừa
Nếu xóa G→J khỏi F2 thì:
{G}+ = G không chứa J =>G→J không dư thừa
Nếu xóa AI→C khỏi F2 thì:
{AI}+ = AI không chứa C =>AI→C không dư thừa
Nếu xóa CE→H khỏi F2 thì:
{CE}+ = CE không chứa H =>CE→H không dư thừa
Nếu xóa BD→G khỏi F2 thì:
{BD}+ = BDI không chứa G =>BD→G không dư thừa
Nếu xóa JH→A khỏi F2 thì:
{JH}+ = JH không chứa A =>JH→A không dư thừa
Nếu xóa D→I khỏi F2 thì:
{D}+ = D không chứa I =>D→I không dư thừa
Trang 22Kết luận: F tối thiểu = { BG→D, G→J, AI→C, CE→H, BD→G, JH→A, D→I } d)
Bước 1: Phân rã
F1 = {BH→I, GC→A, I→J, AE→G, D→B, I→H}
Bước 2: Loại bỏ vế trái dư thừa:
Xét: BH→I:
-Nếu bỏ B: {H}+ = H không chứa I => B dư thừa
Nếu bỏ H: {B}+ = B không chứa I => H dư thừa
Xét: GC→A:
-Nếu bỏ G: {C}+ = C không chứa A => G dư thừa
Nếu bỏ C: {G}+ = G không chứa A => C dư thừa
Xét: AE→G:
-Nếu bỏ A: {E}+ = E không chứa G => A dư thừa
Nếu bỏ E: {A}+ = A không chứa G => E dư thừa
Vậy F2 = {BH→I, GC→A, I→J, AE→G, D→B, I→H}
Bước 3: Loại bỏ PTH dư thừa:
Nếu xóa BH→I khỏi F2 thì:
{BH}+ = BH không chứa I =>BH→I không dư thừa
Nếu xóa GC→A khỏi F2 thì:
{GC}+ = GC không chứa A =>GC→A không dư thừa
Nếu xóa I→J khỏi F2 thì:
{I}+ = IH không chứa J =>I→J không dư thừa
Nếu xóa AE→G khỏi F2 thì:
{AE}+ = AE không chứa G =>AE→G không dư thừa
Nếu xóa D→B khỏi F2 thì:
{D}+ = D không chứa B =>D→B không dư thừa
Nếu xóa I→H khỏi F2 thì:
{I}+ = IJ không chứa H =>I→H không dư thừa
Trang 23Bài tập t ng h ổ ợp
Để kiểm tra dạng chuẩn của một tập hợp thuộc tính Q(C, S, Z) với tập luật chức năng
F = {CS > Z, Z > C}, ta cần xác định xem Q(C, S, Z) có thỏa mãn các điều kiện sau - không:
-Q bao gồm tấ ả các thuột c c tính xuất hiện trong F: C, S, Z (Q(C, S, Z) chứa tất c các ả thuộc tính)
Q không được ch a bứ ất kỳ phụ thuộc không cần thiết nào:
• CS -> Z Q không chứa bấ kỳ phụ t thuộc không cần thiết nào vì Z đã xuất hiện trong Q
• Z -> C Q cũng không chứa bất kỳ phụ thuộc không cần thiết nào vì C đã xuất hiện trong Q
Vì vậy, dạng chuẩn Q(C, S, Z) với F = {CS > Z, Z > C} đã đượ- - c kiểm tra và không chứa bất kỳ phụ thuộc không cần thiết nào
- Kết quả khóa của lư c đợ ồ quan hệ trên là SC và CZ K={SC, CZ}
- Tấ ả các thuộc tính đều là thuộc tính khóa t c
- Vậy Q đạt 3NF