lOMoARcPSD| 58968691
QUẢN LÝ THƯ VIỆN
3 loại thực thể:
1/ Cơ bản:
Cách 1:
SACH(MASACH, TENSACH, NamXB, SLHienCo, TheLoai)
S001 PT&QTCSDL 2024 1000 Tin hoc
=> Nhập 1 dòng
Cách 2:
SACH(MASACH, TENSACH, NamXB, SLHienCo, TheLoai)
S001 PT&QTCSDL 2024 1 Tin hoc
S002 PT&QTCSDL 2024 1 Tin hoc
Tin hoc => Nhập 1000 dòng
Nhà trường nhập về 200 máy chiếu:
Cách 1:
THIETBI(MATB, TENTB, NamSD, SL)
Pr001 Epson 2024 200 => Nhập 1 dòng sẽ lưu 200 máy chiếu Cách 2:
THIETBI(MATB, TENTB, NamSD) Pr001
Epson 2024
Pr002 Epson 2024
=> Nhập 200 dòng
+ THELOAI(MATL, TENTL)
+ MUCPHAT(MAMP, TENMP, PhanTram) 2/
Đối tượng ngoài:
NV(MANV, HO, TEN, PHAI, NgSinh, CV, SoDT)
DOCGIA(MADG, HOTEN, DiaChi, Email)
NXB(MANXB, DCNXB, DTNXB, Website, EmailNXB)
3/ Nghiệp vụ:
THETV(MATHE, NgayCap, HanSD, TinhTrang)
PHIEUMS(SOPMS, NgayMuon, NgayTra)
PHIEUPHAT(SOPP, NgayLap, NoiDungPhat, PhiPhat)
Mô hình ERD (Enty Relaonship Diagram) - mô hình thực thể kết hợp.
Là mô hình bao gồm các loại thực thể và mối kết hợp ngữ nghĩa giữa các loại thực thể và cặp bản số
tương ứng.
Từ đó người ta mới chuyển được sang mô hình quan hệ (RD: danh sách các loại quan hệ, các thuộc
nh, khóa chính và khóa ngoại tương ứng. Khi cài đặt trong hệ quản trị CSDL, các loại quan hệ tương
đương với các Table). Bản số của mối kết hợp:
Quan hệ 1-1:
(0,1)-(1,1): quan hệ 1-1. Khi tạo bảng, lấy PK bên đầu min=0 bỏ qua đầu min=1 làm FK và unique.
(0,1)-(0,1) hoặc (1,1)-(1,1): quan hệ 1-1, Khi tạo bảng, ta gom 2 loại thực thể này chung lại với
nhau, khóa chính là 1 trong 2 khóa của 2 loại quan hệ.
Quan hệ 1-n (Cha-Con): Loại thực thể phía max=n là Cha.
(0,1)-(0,n)
(0,1)-(1,n)
(1,1)-(0,n)
lOMoARcPSD| 58968691
(1,1)-(1,n)
=> 4 dạng bản số này gọi quan hệ Cha-Con. Cha là phía đầu max=n, Con là phía đầu min=0
hoặc min=1.
Quan hệ n-n (Nhiều-Nhiều):
(0,n)-(0,n)
(0,n)-(1,n)
(1,n)-(0,n)
(1,n)-(1,n)
=> 4 dạng bản số này gọi là quan hệ Nhiều-Nhiều. Khi tạo bảng, ta tạo thêm bảng mới có khóa
chính là cặp khóa chính của cả 2 bảng ban đầu.
* MKH mở rộng:
Đệ quy (recurse).
Viết CT con nh n! với n nguyên dương.
long GiaiThua(int n)
{
long GT;
if (n==0)
GT=1; else for(int
i=1;i<=n;i++) GT=GT*i;
return GT;
}
=> đệ quy:
long GiaiThua(int n)
{
return n*GiaiThua(n-1);
}
NHANVIEN(MSNV, HoTen, NTNS, PHAI)
Gom 2 bảng này lại thành CHUCVU:
THUKY(TĐĐM)
CANBO(ThamNien)
CHUCVU(MACV, TenCV)
Mô hình ERD:
NHANVIEN CHUCVU
Thêm vào NHANVIEN 1 thuộc nh mới có tên là KhaNang, lưu trữ TĐĐM hoạc ThamNien.
Tạo bảng: Ta tạo 2 bảng (nếu số  chuyên biệt hóa >2)
CHUCVU(MACV, TenCV)
(1
1)
(1
,n
lOMoARcPSD| 58968691
CV1 Cán bộ
CV2 Thư ký
NHANVIEN(MSNV, HoTen, NTNS, PHAI, MACV (FK), KhaNang)
Cách khác: chỉ tạo ra 1 bảng (nếu số thuộc nh chuyên biệt hóa <=2)
NHANVIEN(MSNV, HoTen, NTNS, PHAI, LOAINV, ThamNien, TĐĐM) Với
ràng buộc: LOAINV là “Cán bộ” hoặc “Thư ký”.
Viết 1 ràng buộc kiểm tra: nếu là CB thì TĐĐM là NULL, ngược lại nếu
là ”Thư ký” thì ThamNien là NULL.
--
MÔ HÌNH QUAN HỆ
Từ mô hình ERD, ta chuyển ERD thành mô hình quan hệ (bao gồm các
loại quan hệ cùng thuộc tính tương ứng). Quy tắc:
Lần lượt chuyển các loại thực thể thành các loại quan hệ, gạch chân i
khóa chính, gạch nét đứt dưới khóa ngoại.
(0,1)-(1,1): quan hệ 1-1, ta lấy khóa chính bên min=0 bỏ qua min=1 làm
khóa ngoại và thiết lập unique.
(0,1)-(0,n) | (0,1)-(1,n) | (1,1)-(0,n) | (1,1)-(1,n): đây là quan hệ Cha-Con, ta
lấy khóa chính bên phía Cha (max=n) bỏ sang Con làm khóa ngoại.
(0,n)-(0,n) | (0,n)-(1,n) | (1,n)-(0,n) | (1,n)-(1,n): đây là quan hệ Nhiều-Nhiều,
ta tạo loại quan hệ mới, đặt tên là ChiTiet___, có khóa chính là cặp khóa
chính của Cha và Mẹ nó. Bổ sung thêm các thuộc tính riêng cần thiết. --
dụ: Chuyển mô hình ERD sau thành mô hình quan hệ.
HOADON(MAHD, NgayLap, TongTien, SLMua, GiaBan, ThanhTien) => Ko biết mua gì???
HD01 16/9/24 40000 4 ? ?
MATHANG(MAMH, TenMH, DVT, GiaMua, SLMua, GiaBan, ThanhTien) =>
MH01
Chai
8000
2
10000
20000
lOMoARcPSD| 58968691
MH02
Ly
12000
1
15000
15000
MH01
Chai
8000
1
10000
10000 ???
1/ Identifying Relationship: Quan hệ định danh
2/ None-Identifying Relationship: Quan hệ không định danh (Cha-Con)
3/ Relationship M:N: Quan hệ Nhiều-Nhiều
---
Các loại thực thể ban đầu: ERD
KHACH(MAKH, TENKH)
THETV(SOTHE, NgayCap, HanSD, DiemTL)
HOADON(MAHD, NgayLap, TongTien)
MATHANG(MAMH, TenMH, DVT, GiaMua, SLTon)
LOAIHANG(MALH, TenMLH)
=> Chuyển sang mô hình quan hệ: Lúc này mới đưa FK vào.
KHACH(MAKH, TENKH) => Giữ nguyên
THETV(SOTHE, NgayCap, HanSD, DiemTL, MAKH) => MAKH là Unique
T01 12/9/24 4 0 KH01
T02 12/9/24 4 0 KH02
T03 13/9/24 4 0 KH01 Cho nhập ko??? Đúng hay sai?
HOADON(MAHD, NgayLap, TongTien, MAKH, SOTHE)
MATHANG(MAMH, TenMH, DVT, GiaMua, MALH) LOAIHANG(MALH,
TenMLH) => Giữ nguyên
Chứa => CTHD(MAHD, MAMH, SLMua, GiaBan, ThanhTien) => MAHD, MAMH là PFK.
--Chú ý:
THETV(MADG, Ho, Ten, SoDT) => Đúng hay sai? Thiếu tt ThoiGian.
DOCGIA(MADG, Ho, Ten, SoDT) => Đúng, nhưng lại thiếu Thẻ.
Tạo 2 loại thực thể:
DOCGIA(MADG, Ho, Ten, SoDT)
THETV(SOTHE, NgayCap, HanSD)
--Quản lý Thư viện:
Câu 1:
1/ Loại tt cơ bản:
SACH(MASACH, TENSACH, NamXB, SL)
THELOAI(MATL, TenTL)
2/ Loại tt đối tượng ngoài:
NV(MANV, HoNV, TenNV, PhaiNV, CV) DOCGIA(MADG,
TenDG)
NXB(MANXB, TenNXB, DiaChi, DT, website, email, Fax)
3/ Loại tt nghiệp vụ:
THETV(MATHE, NgayCap, HanSD)
PHIEUMS(SOPMS, NgayMuon, NgayTra)
PHIEUPHAT(SOPP, NgayPhat, LyDo, SoTienPhat)
Câu 2: Xác định các MKH giữa các loại thực thể cùng bản số tương ứng.
Lưu ý:
Giữa 2 loại thực thể có thể có nhiều mối kết hợp. Mỗi mối kết hợp chỉ mang 1 ý nghĩa duy
nhất. Ví dụ: xét mô tả bài quản lý nhân sự sau đây.
lOMoARcPSD| 58968691
Công ty có nhiều NV, thông tin của NV gồm: MSNV, Ho, Ten, NTNS, Phai, NoiSinh,
QueQuan và CV. Nơi sinh và quê quán lưu thông tin của tỉnh/TP. 1 NV có thể không quản lý
ai hoặc nếu có thì chỉ quản lý 1 NV khác.
Hãy:
1/ Xác định các loại thực thể cùng thuộc tính tương ứng, gạch chân dưới khóa chính, sau
đó vẽ mô hình ERD có đầy đủ các loại thực thể, mối kết hợp và bản số tương ứng.
2/ Chuyển ERD ở câu 1 sang mô hình quan hệ, gạch chân dưới khóa chính, gạch nét đt
ới khóa ngoại.
3/ Mô hình quan hệ ở câu 2 đạt dạng chuẩn mấy, giải thích?
Gii:
1/ Loại tt cơ bản: TINH_TP(MATTP, TenTTP), CV(MACV, TenCV)
Loại tt đối tượng ngoài: NV(MSNV, Ho, Ten, NTNS, Phai)

Preview text:

lOMoAR cPSD| 58968691 QUẢN LÝ THƯ VIỆN 3 loại thực thể: 1/ Cơ bản: Cách 1: SACH(MASACH, TENSACH, NamXB, SLHienCo, TheLoai) S001 PT&QTCSDL 2024 1000 Tin hoc => Nhập 1 dòng Cách 2:
SACH(MASACH, TENSACH, NamXB, SLHienCo, TheLoai) S001 PT&QTCSDL 2024 1 Tin hoc S002 PT&QTCSDL 2024 1 Tin hoc … … … … Tin hoc => Nhập 1000 dòng
Nhà trường nhập về 200 máy chiếu: Cách 1:
THIETBI(MATB, TENTB, NamSD, SL)
Pr001 Epson 2024 200 => Nhập 1 dòng sẽ lưu 200 máy chiếu Cách 2:
THIETBI(MATB, TENTB, NamSD) Pr001 Epson 2024 Pr002 Epson 2024 … … … => Nhập 200 dòng + THELOAI(MATL, TENTL)
+ MUCPHAT(MAMP, TENMP, PhanTram) 2/ Đối tượng ngoài:
NV(MANV, HO, TEN, PHAI, NgSinh, CV, SoDT)
DOCGIA(MADG, HOTEN, DiaChi, Email)
NXB(MANXB, DCNXB, DTNXB, Website, EmailNXB) 3/ Nghiệp vụ:
THETV(MATHE, NgayCap, HanSD, TinhTrang)
PHIEUMS(SOPMS, NgayMuon, NgayTra)
PHIEUPHAT(SOPP, NgayLap, NoiDungPhat, PhiPhat)
Mô hình ERD (Entity Relationship Diagram) - mô hình thực thể kết hợp.
Là mô hình bao gồm các loại thực thể và mối kết hợp ngữ nghĩa giữa các loại thực thể và cặp bản số tương ứng.
Từ đó người ta mới chuyển được sang mô hình quan hệ (RD: danh sách các loại quan hệ, các thuộc
tính, khóa chính và khóa ngoại tương ứng. Khi cài đặt trong hệ quản trị CSDL, các loại quan hệ tương
đương với các Table). Bản số của mối kết hợp: • Quan hệ 1-1:
(0,1)-(1,1): quan hệ 1-1. Khi tạo bảng, lấy PK bên đầu min=0 bỏ qua đầu min=1 làm FK và unique.
(0,1)-(0,1) hoặc (1,1)-(1,1): quan hệ 1-1, Khi tạo bảng, ta gom 2 loại thực thể này chung lại với
nhau, khóa chính là 1 trong 2 khóa của 2 loại quan hệ.
• Quan hệ 1-n (Cha-Con): Loại thực thể phía max=n là Cha. (0,1)-(0,n) (0,1)-(1,n) (1,1)-(0,n) lOMoAR cPSD| 58968691 (1,1)-(1,n)
=> 4 dạng bản số này gọi là quan hệ Cha-Con. Cha là phía đầu max=n, Con là phía đầu min=0 hoặc min=1.
• Quan hệ n-n (Nhiều-Nhiều): (0,n)-(0,n) (0,n)-(1,n) (1,n)-(0,n) (1,n)-(1,n)
=> 4 dạng bản số này gọi là quan hệ Nhiều-Nhiều. Khi tạo bảng, ta tạo thêm bảng mới có khóa
chính là cặp khóa chính của cả 2 bảng ban đầu. * MKH mở rộng: Đệ quy (recurse).
Viết CT con tính n! với n nguyên dương. long GiaiThua(int n) { long GT; if (n==0) GT=1; else for(int i=1;i<=n;i++) GT=GT*i; return GT; } => đệ quy: long GiaiThua(int n) { return n*GiaiThua(n-1); }
NHANVIEN(MSNV, HoTen, NTNS, PHAI)
Gom 2 bảng này lại thành CHUCVU: THUKY(TĐĐM) CANBO(ThamNien) CHUCVU(MACV, TenCV) Mô hình ERD: (1 1) (1 ,n Có NHANVIEN CHUCVU
Thêm vào NHANVIEN 1 thuộc tính mới có tên là KhaNang, lưu trữ TĐĐM hoạc ThamNien.
Tạo bảng: Ta tạo 2 bảng (nếu số tt chuyên biệt hóa >2) CHUCVU(MACV, TenCV) lOMoAR cPSD| 58968691 CV1 Cán bộ CV2 Thư ký …
NHANVIEN(MSNV, HoTen, NTNS, PHAI, MACV (FK), KhaNang)
Cách khác: chỉ tạo ra 1 bảng (nếu số thuộc tính chuyên biệt hóa <=2)
NHANVIEN(MSNV, HoTen, NTNS, PHAI, LOAINV, ThamNien, TĐĐM) Với
ràng buộc: LOAINV là “Cán bộ” hoặc “Thư ký”.
Viết 1 ràng buộc kiểm tra: nếu là CB thì TĐĐM là NULL, ngược lại nếu
là ”Thư ký” thì ThamNien là NULL. -- MÔ HÌNH QUAN HỆ
Từ mô hình ERD, ta chuyển ERD thành mô hình quan hệ (bao gồm các
loại quan hệ cùng thuộc tính tương ứng). Quy tắc:
• Lần lượt chuyển các loại thực thể thành các loại quan hệ, gạch chân dưới
khóa chính, gạch nét đứt dưới khóa ngoại.
• (0,1)-(1,1): quan hệ 1-1, ta lấy khóa chính bên min=0 bỏ qua min=1 làm
khóa ngoại và thiết lập unique.
• (0,1)-(0,n) | (0,1)-(1,n) | (1,1)-(0,n) | (1,1)-(1,n): đây là quan hệ Cha-Con, ta
lấy khóa chính bên phía Cha (max=n) bỏ sang Con làm khóa ngoại.
• (0,n)-(0,n) | (0,n)-(1,n) | (1,n)-(0,n) | (1,n)-(1,n): đây là quan hệ Nhiều-Nhiều,
ta tạo loại quan hệ mới, đặt tên là ChiTiet___, có khóa chính là cặp khóa
chính của Cha và Mẹ nó. Bổ sung thêm các thuộc tính riêng cần thiết. --Ví
dụ: Chuyển mô hình ERD sau thành mô hình quan hệ.
HOADON(MAHD, NgayLap, TongTien, SLMua, GiaBan, ThanhTien) => Ko biết mua gì??? HD01 16/9/24 40000 4 ? ?
MATHANG(MAMH, TenMH, DVT, GiaMua, SLMua, GiaBan, ThanhTien) => MH01 Aqua Chai 8000 2 10000 20000 lOMoAR cPSD| 58968691 MH02 Café Ly 12000 1 15000 15000 MH01 Aqua Chai 8000 1 10000 10000 ???
1/ Identifying Relationship: Quan hệ định danh
2/ None-Identifying Relationship: Quan hệ không định danh (Cha-Con)
3/ Relationship M:N: Quan hệ Nhiều-Nhiều ---
Các loại thực thể ban đầu: ERD KHACH(MAKH, TENKH)
THETV(SOTHE, NgayCap, HanSD, DiemTL)
HOADON(MAHD, NgayLap, TongTien)
MATHANG(MAMH, TenMH, DVT, GiaMua, SLTon) LOAIHANG(MALH, TenMLH)
=> Chuyển sang mô hình quan hệ: Lúc này mới đưa FK vào.
KHACH(MAKH, TENKH) => Giữ nguyên
THETV(SOTHE, NgayCap, HanSD, DiemTL, MAKH) => MAKH là Unique T01 12/9/24 4 0 KH01 T02 12/9/24 4 0 KH02 T03 13/9/24 4 0
KH01 Cho nhập ko??? Đúng hay sai?
HOADON(MAHD, NgayLap, TongTien, MAKH, SOTHE)
MATHANG(MAMH, TenMH, DVT, GiaMua, MALH) LOAIHANG(MALH, TenMLH) => Giữ nguyên
Chứa => CTHD(MAHD, MAMH, SLMua, GiaBan, ThanhTien) => MAHD, MAMH là PFK. --Chú ý:
THETV(MADG, Ho, Ten, SoDT) => Đúng hay sai? Thiếu tt ThoiGian.
DOCGIA(MADG, Ho, Ten, SoDT) => Đúng, nhưng lại thiếu Thẻ. Tạo 2 loại thực thể: DOCGIA(MADG, Ho, Ten, SoDT) THETV(SOTHE, NgayCap, HanSD) --Quản lý Thư viện: Câu 1: 1/ Loại tt cơ bản:
SACH(MASACH, TENSACH, NamXB, SL) THELOAI(MATL, TenTL)
2/ Loại tt đối tượng ngoài:
NV(MANV, HoNV, TenNV, PhaiNV, CV) DOCGIA(MADG, TenDG)
NXB(MANXB, TenNXB, DiaChi, DT, website, email, Fax) 3/ Loại tt nghiệp vụ: THETV(MATHE, NgayCap, HanSD)
PHIEUMS(SOPMS, NgayMuon, NgayTra)
PHIEUPHAT(SOPP, NgayPhat, LyDo, SoTienPhat)
Câu 2: Xác định các MKH giữa các loại thực thể cùng bản số tương ứng. Lưu ý:
Giữa 2 loại thực thể có thể có nhiều mối kết hợp. Mỗi mối kết hợp chỉ mang 1 ý nghĩa duy
nhất. Ví dụ: xét mô tả bài quản lý nhân sự sau đây. lOMoAR cPSD| 58968691
Công ty có nhiều NV, thông tin của NV gồm: MSNV, Ho, Ten, NTNS, Phai, NoiSinh,
QueQuan và CV. Nơi sinh và quê quán lưu thông tin của tỉnh/TP. 1 NV có thể không quản lý
ai hoặc nếu có thì chỉ quản lý 1 NV khác. Hãy:
1/ Xác định các loại thực thể cùng thuộc tính tương ứng, gạch chân dưới khóa chính, sau
đó vẽ mô hình ERD có đầy đủ các loại thực thể, mối kết hợp và bản số tương ứng.
2/ Chuyển ERD ở câu 1 sang mô hình quan hệ, gạch chân dưới khóa chính, gạch nét đứt dưới khóa ngoại.
3/ Mô hình quan hệ ở câu 2 đạt dạng chuẩn mấy, giải thích? Giải:
1/ Loại tt cơ bản: TINH_TP(MATTP, TenTTP), CV(MACV, TenCV)
Loại tt đối tượng ngoài: NV(MSNV, Ho, Ten, NTNS, Phai)