Bài giảng Cơ sở dữ liệu – Database EE4253: Chương 2 - Các mô hình dữ liệu cung cấp cho các bạn những kiến thức về mô hình dữ liệu quan hệ gồm có khái niệm, ràng buộc trong dữ liệu quan hệ, biến đổi ER sang mô hình quan hệ.
Trang 1Cơ sở dữ liệu – Database
EE4253
Vũ Hải
2016
Trang 2Ôn bài
• Mô hình thực thể liên kết ?
• Thực thể, thực thể yếu ?
• Thuộc tính, các loại thuộc tính ?
• Liên kết, các loại liên kết ?
Trang 3Bài tập
Biểu diễn các tập thực thể (với các thuộc
tính và liên kết kèm theo) sau bằng mô hình ER:
1.Giáo viên, sinh viên, khoá học, môn học, lớp học
2.Công ty, nhân viên, dự án, chi nhánh
3.Thư viện, người đọc, sách
4.Cửa hàng, khách hàng, hàng, nhà phân phối
Trang 4• Sinh viên, khoá học, môn học, lớp học, Điểm thi, Giảng Viên, Khoa
Trang 5Công ty, nhân viên, dự án, chi nhánh
Dự án
Mã dự án
Tên dự án Địa điểm Ngày bắt đầu
Ngày hoàn thành
Trang 6Công ty, nhân viên, dự án, chi nhánh
Nhân viên
Mã nhân viên
Họ tên Ngày sinh Giới tính
Phòng ban/ Chi nhánh
Trang 7Công ty, nhân viên, dự án, chi nhánh
Mã Nhân viên
Số ngày công
Mã Công trình
Trang 8Số ngày công (1,n)
Trang 9Chương 2: Các mô hình dữ liệu
2.2 Mô hình dữ liệu quan hệ
• Mô hình quan hệ sử dụng lý thuyết tập hợp
và logic bậc nhất để biểu diễn dữ liệu
• Cho n loại dữ liệu: D1, D2, …, Dn.
• Mỗi loại dữ liệu có 1 miền giá trị dom(D1),
dom(D2), … dom(Dn)
Trang 102.2.1 Khái niệm cơ bản
• Tích đề các (Cartesian Product): Tích các () của n tập là tập tất cả các cách kếthợp của các thành phần trong n tập
đề-• Một quan hệ trên n loại dữ liệu, là một tậpcon của tích Đề-các trên n loại dữ liệu đó
r(R) R
R = dom(D1) x dom(D2) x … x dom(Dn)
Trang 11• Mỗi quan hệ được biểu diễn bằng một bảng(cột, hàng)
– Mỗi cột biểu diễn một kiểu dữ liệu
– Mỗi hàng tương ứng với một tập giá trị thực
tương ứng với tập dữ liệu
– Không có 2 hàng có tập giá trị trùng nhau.
– Thứ tự của các cột, các hàng là không quan trọng
2.2.1 Khái niệm cơ bản
Trang 12• Lược đồ/Sơ đồ (schema) quan hệ <=>
tên_quan_hệ(tên_cột1:kiểu, tên_cột_2:kiểu, … )
• Bậc (degree) của quan hệ: số cột
• Thể hiện (instance) của quan hệ <=> các bộ giá trị có thể có (tuples)
• Lực lượng (cardinality) của quan hệ: số dòng
2.2.1 Khái niệm cơ bản
Trang 13Ví dụ
• Bậc = ?
• Lực lượng = ?
• Lược đồ của quan hệ ?
– Đầy đủ: BOOK (id: integer, title: string, author:
string, pub-year: integer)
– Ngắn gọn: BOOK(id, title, author, pub-year)
1 The call of the wild Jack London 1903
2 The universe in a nutshell Stephen Hawking 2001
BOOK
Trang 142.2.2 Ràng buộc trong dữ liệu quan hệ
• Ràng buộc = quy tắc kiểm tra dữ liệu thỏa
mãn điều kiện nào đó:
– Ràng buộc về mặt ngữ nghĩa:
• Dữ liệu thuộc miền giá trị, < 1 giá trị, …
• Dữ liệu thuộc 1 định dạng cố định– Ràng buộc về khóa
– Ràng buộc thực thể– Ràng buộc tham chiếu
Trang 15Khóa (key)
• “Không có 2 hàng có tập giá trị trùng nhau”
=> Khóa là cách để xác định duy nhất một bộ giá trị trong quan hệ.
• Cho 1 quan hệ r xác định trên tập thuộc tính U = {A1, A2,
D2 20000980 Vũ Minh 30/4/1967 50000 0903132123
Trang 16Khóa (key)
đều không thể trở thành sieu khóa.
nhiều nhất 1 khóa chính.
EMPLOYEE
Department Eid Name Birthdate Salary CellPhone D1 20001234 Nguyễn Thành 22/11/1970 30000 0912304101 D1 20012322 Đỗ Văn Khôi 1/2/1978 27000 NULL
D2 20000980 Vũ Minh 30/4/1967 50000 0903132123 D3 19991323 Nguyễn Thành 10/10/1966 50000 NULL
Siêu khóa: {Name, Salary, Eid}, {Eid}, {Name, Birthdate, Eid}
Trang 17Ràng buộc thực thể, tham chiếu
• Ràng buộc thực thể: Không thuộc tính nào trong khóa chính được gán giá trị NULL
• Ràng buộc tham chiếu:
– Xác định giữa hai quan hệ
– Duy trì liên kết giữa các bộ giá trị thuộc hai quan hệ
Trang 18Khóa ngoài
không phải là khóa của quan hệ đó, mà lại là khóa chính của 1 quan hệ khác.
Trang 19Kiểm tra ràng buộc
• Dữ liệu trong CSDL quan hệ thay đổi liên tục theo thời gian
• Khi có thao tác trên CSDL => kiểm tra
Trang 20Kiểm tra ràng buộc
branchName balance accountNumber
branchName address assets
HaThanh Hai Ba Trung 900000000 DongDo Dong Da 400000000 ThangLong Hoan Kiem 500000000
BRANCH
customerNumber Name address homeBranch
111111 Anh Hai Ba Trung HaThanh
121314 Van Anh Hai Ba Trung Dong Do
515016 Son Hoan Kiem HaThanh
CUSTOMER
customer Number
accountNumb er
Trang 212.2.3 Biến đổi ER sang m.h quan hệ
• Thực thể => Quan hệ
EMPLOYEE(EID, Name, Address, Salary, Birthdate, Salary)
Trang 222.2.3 Biến đổi ER sang m.h quan hệ
• Thuộc tính phức hợp
EMPLOYEE(Eid, Name, Address, …)
EMPLOYEE(Eid, Name, Number, Street, City, …)
Trang 232.2.3 Biến đổi ER sang m.h quan hệ
• Thuộc tính đa trị
– Thêm 1 quan hệ mới là thuộc tính đa trị
EMPLOYEE(Eid, Name) EMP_DEGREES(Eid, Degree)
Trang 242.2.3 Biến đổi ER sang m.h quan hệ
• Thực thể yếu
EMPLOYEE(EID, Name, Address, …) EMP-DEPENDENT(EID, Name, Relationship, …)
Trang 252.2.3 Biến đổi ER sang m.h quan hệ
• Liên kết 1-1
Book(bid, name, author, publisher, pub_date) Design(dsid, color, shape)
- Sử dụng khóa ngoài:
- Design(dsid, color, shape, bid )
- Trộn: Book (bid, name, author, publisher, pub_date, color, shape )
Trang 262.2.3 Biến đổi ER sang m.h quan hệ
Trang 272.2.3 Biến đổi ER sang m.h quan hệ
• Liên kết n-n :
– Sinh ra một quan hệ phụ
Student(sid, name, birthday)
Class(cid, name, room, teacher)
Registration(sid, cid)
Trang 28Ví dụ
Trang 292.2.3 Biến đổi ER sang m.h quan hệ
- Copy khóa của thực thể tổng quát sang thực thể chi tiết
CUSTOMER (Customer_ID, Name, Address, )
CALL (Call_Identifier, Customer_Id, Source_Number, Destination_Number, TimeOfDay)
REGULAR_CALL (Call_Identifier, Duration)
Trang 30Sơ đồ CSDL
• Một mô hình quan hệ được biểu diễn dưới dạng sơ đồ
Trang 31Bài tập
• Biến đổi sang mô hình dữ liệu quan hệ