Các khái niệm Mô hình dữ liệu quan hệ: quan hệ, các thuộc tính cùng với các ràng buộc thực Miền giá trị Domain là một tập hợp các giá trị nguyên tố... Address, OfficePhone, Age, GPA
Trang 2Chương 3: Mô hình dữ liệu
quan hệ
Các khái niệm về mô hình dữ liệu quan hệ:
Trang 3Các khái niệm
Mô hình dữ liệu quan hệ:
quan hệ, các thuộc tính cùng với các ràng buộc
thực
Miền giá trị (Domain) là một tập hợp các giá trị nguyên tố
Trang 4Address, OfficePhone, Age, GPA)
Mỗi thuộc tính của quan hệ có một miền giá trị ký hiệu là dom(Ai)
Bậc của quan hệ là số thuộc tính của lược đồ quan hệ tương ứng
Trang 5Các khái niệm (3)
Trạng thái của quan hệ (Relation State) của
một lược đồ quan hệ R(A 1 , A 2 , , A n) là một
Giá trị null đại diện cho giá trị chưa biết hoặc
Trang 6Các khái niệm (4)
Các thuật ngữ tương đương
Trang 7Các khái niệm (5)
Ví dụ:
Trang 8Định nghĩa toán học
Về mặt toán học:
Giả sử có hai tập hợp D1, D2 với D 1 = {2, 4},
Trang 12Đặc trưng của quan hệ
Các tuple trong quan hệ không cần thứ tự
Thứ tự của các giá trị trong từng tuple là
quan trọng
Nếu định nghĩa mỗi tuple là một tập các cặp (thuộc tính, giá trị) thì thứ tự không còn quan trọng
Mỗi giá trị trong từng tuple phải là giá trị
nguyên tố (không cho phép thuộc tính phức hợp hay thuộc tính đa trị)
Trang 13Ký hiệu mô hình quan hệ
Lược đồ quan hệ R: R(A 1 , A 2 , , A n )
Trạng thái của quan hệ (hay quan hệ): r(R)
Bộ n giá trị: t = <v 1 , v 2 , , v n >, trong đó vi là giá trị tương ứng với thuộc tính Ai
Ai trong t
Một thuộc tính A trong quan hệ R có thể
được tham khảo bằng ký hiệu R.A
Trang 14Lược đồ CSDL quan hệ
Lược đồ CSDL quan hệ S là một tập các
lược đồ quan hệ S = {R1, R2, , Rm} và một tập các ràng buộc toàn vẹn (integrity
constraint) IC
Trạng thái của CSDL quan hệ DB của S là
một tập các trạng thái quan hệ DB = {r1,
r2, , rm}:
trong IC
Trang 15Ràng buộc miền giá trị
Giá trị của mỗi thuộc tính A phải là một giá trị nguyên tố thuộc miền giá trị dom(A) hoặc là giá trị NULL
NULL đại diện cho giá trị chưa biết hoặc
không tồn tại
Trang 16Ràng buộc NOT NULL
Một thuộc tính khi mang ràng buộc này thì
thuộc tính đó không được mang giá trị NULL
Trang 17Ràng buộc UNIQUE
Một thuộc tính khi mang ràng buộc UNIQUE thì giá trị thuộc tính này của tất cả các tuple phải khác nhau, tuy nhiên có thể có một tuple được mang giá trị NULL
Trang 18Ràng buộc CHECK
Kiểm tra xem dữ liệu nhập cho một thuộc
tính có thỏa mãn một điều kiện cho trước hay không
Trang 19t1[SK] ≠ t2[SK]
Mọi tập con thuộc tính như vậy được gọi là siêu khóa (superkey)
Trang 20 Siêu khóa có ràng buộc duy nhất (unique)
Một quan hệ luôn có ít nhất 1 siêu khóa (là
tập tất cả thuộc tính của quan hệ)
Khóa (key) là siêu khóa tối tiểu: không thể bỏ bớt thuộc tính nào của khóa mà vẫn giữ
được tính chất duy nhất của nó
Ví dụ:
Giá trị của khóa không được thay đổi
Trang 21 Quan hệ có thể có nhiều khóa, mỗi khóa
được gọi là khóa dự tuyển (candidate key)
Khóa chính (primary key) là một khóa dự
tuyển được chọn
Một số thuộc tính không được nhận giá trị
null – ràng buộc not null
Trang 22 Ví dụ: quan hệ CAR với hai khóa dự tuyển
LicenseNumber và EngineSerialNumber
Trang 23Ràng buộc toàn vẹn thực thể
Ràng buộc toàn vẹn thực thể (entity integrity constraint) là trạng thái mà thuộc tính khóa không có giá trị NULL
Trang 24r2(R2) hoặc là giá trị null t1[FK] = t2[PK] R1 là quan
Trang 25Ràng buộc toàn vẹn tham
chiếu
Ràng buộc toàn vẹn tham chiếu (referential integrity constraint)
quan hệ khác phải tham chiếu đến một dòng đã tồn tại