




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)