Mô hình CSDL quan hệ lần đầu tiên được E.F.Codd và tiếp sau đó được công ty IBM giới thiệu vào năm 1970. Ngày nay, hầu hết các tổ chức đã áp dụng CSDL quan hệ để quản lý dữ liệu trong đơn vị mình.
Bạn đang xem: Candidate key là gì
Mô hình cơ sở dữ liệu quan hệ
Cấu trúc dữ liệu: dữ liệu được tổ chức dưới dạng quan hệ hay còn gọi là bảng.
Thao tác dữ liệu: sử dụng những phép toán mạnh (bằng ngôn ngữ SQL).
Các thành phần cơ bản của mô hình
Một số khái niệm của mô hình quan hệ
Mô hình quan hệ là cách thức biểu diễn dữ liệu dưới dạng các quan hệ (các bảng). Một quan hệ là một bảng dữ liệu 2 chiều (cột và dòng), mô tả một thực thể. Mỗi cột tương ứng với một thuộc tí;nh của thực thể. Mỗi dòng chứa các giá trị dữ liệu của một đối tượng cụ thể thuộc thực thể
Một số khái niệm cơ bản
Lược đồ quan hệ: R(A1,…,An), trong đó R là tên quan hệ, Ai là các thuộc tí;nh, mỗi Ai có miền giá trị tương ứng dom(Ai).
Lược đồ quan hệ được sử dụng để mô tả một quan hệ, bao gồm: Tên quan hệ, các thuộc tí;nh và bậc của quan hệ (số lượng các thuộc tí;nh)
Quan hệ
Một quan hệ r của R(A1,…,An), ký hiệu r(R) là một tập hợp n-bộ r={ t1, …, tm} Trong đó:
Mỗi ti =, vi ∈ dom(Ai).
r(R) ⊆ dom(A1) x …. x dom(An)
r = { (vi1,vi2,…,vin) / i=1,…,m}
v11 v12 V1n
v21 v22 v2n
……
vm1 vm2 vmn
A1 A2 Am
Ta có Ai là các thuộc tí;nh và miền giá trị của Ailà:
D1=dom(A1), D2=dom(A2),…., Dn=dom(An).
Các tập (D1,D2,…,Dn) là tập các miền trị của R n được gọi là bậc của quan hệ r. m được gọi là lực lượng của r. Quan hệ bậc 1 là quan hệ nhất nguyên, bậc 2 là quan hệ nhị nguyên, bậc n là quan hệ n nguyên.>
Quan hệ EMPLOYEE trên tập các thuộc tí;nh R={SSN, Name, BDate, Address, Salary} là một quan hệ 5 ngôi.
SSN | Name | BDate | Address | Salary | |
Đỗ Hoàng Minh | 1960 | Hà nội | 425 | t1 | |
002 | Đỗ Như Mai | 1970 | Hải Phòng | 390 | t2 |
003 | Đặng Hoàng Nam | 1973 | Hà nội | 200 | t3 |
t1(001, ‘Đỗ Hoàng Minh’, 1960, ‘Hà nội’ , 425) = t1(R) là một bộ của quan hệ EMPLOYEE
Các tí;nh chất của một quan hệ
Giá trị đưa vào cột là đơn nhất Các giá trị trong cùng một cột phải thuộc cùng một miền giá trị (cùng kiểu) Thứ tự dòng cột tuỳ ý.
Các ràng buộc toàn vẹn trên quan hệ
Ràng buộc là những quy tắc được áp đặt lên trên dữ liệu đảm bảo tí;nh tin cậyvà độ chí;nh xáccủa dữ liệu. Các luật toàn vẹn được thiết kế để giữ cho dữ liệu phù hợp và đúng đắn.
Có 4 kiểu ràng buộc chí;nh: Ràng buộc miền giá trị (Domain Constraints), Ràng buộc khoá (Key Constraints), Ràng buộc thực thể (Entity Integrity Constraints), và Ràng buộc toàn vẹn tham chiếu (Referential Integrity Constraints).
Ràng buộc miền giá trị
Là một hợp các kiểu dữ liệu và những giá trị giới hạn mà thuộc tí;nh có thể nhận được. Thông thường việc xác định miền giá trị của các thuộc tí;nh bao gồm một số các yêu cầu sau: Tên thuộc tí;nh, Kiểu dữ liệu, Độ dài dữ liệu, khuôn dạng của dữ liệu, các giá trị giới hạn cho phép, ý nghĩa, có duy nhất hay không, có cho phép giá trị rỗng hay không.
Ràng buộc khoá
Khóa chí;nh (Primary Key)
Khóa chí;nh là một (hoặc một tập) các thuộc tí;nh đóng vai trò là nguồn của một phụ thuộc hàm mà đí;ch lần lượt là các thuộc tí;nh còn lại.
R={SSN, Name, BDate, Address, Salary}
SSN→ Name, BDate, Address, Salary
(Nguồn)→ (Đí;ch)
Ta thấy, từ SSN ta có thể suy ra toàn bộ các thuộc tí;nh ứng. Vậy SSN được gọi là khóa chí;nh.
Một số gợi ý khi chọn khóa
Khóa không nên là tập hợp của quá nhiều thuộc tí;nh. Trong trường hợp khóa có nhiều thuộc tí;nh, có thể thêm một thuộc tí;nh “nhân tạo” thay chúng làm khóa chí;nh cho quan hệ. Nếu khóa chí;nh được cấu thành từ một số thuộc tí;nh, thì các thành phần nên tránh sử dụng thuộc tí;nh có giá trị thay đổi theo thời gian: như tên địa danh, phân loại.
Khóa dự tuyển (Candidate Key)
Trong tập hợp các thuộc tí;nh của một bảng, có thể có nhiều thuộc tí;nh có thể dùng được làm khóa chí;nh. Các thuộc tí;nh đó được gọi là khóa dự tuyển.
Khóa dự tuyển cần thỏa mãn 2 tí;nh chất sau:
Xác định duy nhất. Không dư thừa: Khi xóa đi bất kỳ một thuộc tí;nh nào của khóa đều phá hủy tí;nh xác định duy nhất của khóa.
Khóa ngoại (Foreign Key)
Trong nhiều trường hợp, khóa chí;nh của một bảng được đưa sang làm thuộc tí;nh bên bảng khác, thuộc tí;nh đó gọi là khóa ngoại. Khóa ngoại đóng vai trò thể hiện liên kết giữa 2 bảng.
Khóa phụ (Second Key)
Đóng vai trò khi ta muốn sắp xếp lại dữ liệu trong bảng.
Ta có bảng SINHVIEN (MaSV, Hoten, GioiTinh, Diem).
Muốn sắp xếp lại danh sách sinhviên theo thứ tự a, b, c.. của Họ tên. Khi đó thuộc tí;nh Hoten được gọi là khóa phụ.
Ràng buộc thực thể
Mỗi một lược đồ quan hệ R, chúng ta phải xác định khoá chí;nh của nó. Khoá chí;nh trong lược đồ quan hệ được gạch chân ở phí;a dưới của thuộc tí;nh.
Sau đây là danh sách các lược đồ quan hệ trong cơ sở dữ liệu COMPANY sau khi xác định ràng buộc thực thể
Lược đồ cơ sở dữ liệu COMPANY
Một thể hiện của cơ sở dữ liệu COMPANY Ràng buộc khoá và ràng buộc thực thể được xác định cho từng quan hệ.
Ràng buộc toàn vẹn tham chiếu
Một bộ giá trị trong một quan hệ tham chiếu tới một bộ giá trị đã tồn tại trong một quan hệ khác.
Ràng buộc toàn vẹn tham chiếu phải xác định trên 2 quan hệ: quan hệ tham chiếu (referencing relation) và quan hệ được tham chiếu (referenced relation).
Ràng buộc toàn vẹn tham chiếu
Ràng buộc toàn vẹn tham chiếu còn được gọi là ràng buộc khoá ngoại.
Thuộc tí;nh DNo của quan hệ EMPLOYEE tham chiếu tới thuộc tí;nh DNumber của quan hệ DEPARTMENT.
Các ràng buộc tham chiếu trong cơ sở dữ liệu COMPANY
Các phép toán trên CSDL quan hệ
Phép toán cập nhật
Phép chèn (INSERT): Là phép bổ xung thêm một bộ vào quan hệ r cho trước.
+ Biểu diễn: INSERT(r; A1=d1,A2=d2,…,An=dn) với Ailà thuộc tí;nh, di thuộc dom(Ai), i=1,..,n.
Nếu thứ tự các trường là cố định, có thể biểu diễn phép chèn dưới dạng không tường minh INSERT(r; d1,d2,…, dn).
Xem thêm: Clear Là Gì
Chèn thêm một bộ t4=(‘004’, ‘Hoàng Thanh Vân’,1969, ‘Hà nội’, 235) vào quan hệ EMPLOYEE(SSN, Name, BDate, Address, Salary) ta có thể viết:
INSERT(EMPLOYEE; SSN= ‘004’, Name= ‘Hoàng Thanh Vân’, BDate=1969, Address= ‘Hà nội’, Salary=235).
Kết quả của phép chèn có thể gây ra một số sai sót là
– Bộ mới được thêm không phù hợp với lược đồ quan hệ cho trước
– Một số giá trị của một số thuộc tí;nh nằm ngoài miền giá trị của thuộc tí;nh đó.
– Giá trị khoá của bộ mới có thể là giá trị đã có trong quan hệ đang lưu trữ.
Phép loại bỏ (DEL): Là phép xoá một bộ ra khỏi một quan hệ cho trước.
– Biểu diễn : DEL(r; A1=d1,A2=d2,…,An=dn) hay DEL((r, d1,d2,…, dn).
Nếu K=(E1,E2,…,Em) là khoá thì có thể viết DEL(r; E1=e1,E2=e2,…,Em=em)
+ Để xoá bộ t1 ra khỏi quan hệ r:
DEL(EMPLOYEE; SSN= ‘004’, Name= ‘Hoàng Thanh Vân’, BDate=1969, Address= ‘Hà nội’, Salary=235).
+ Cần loại bỏ một nhân viên trong quan hệ EMPLOYEE mà biết SSN đó là ‘004’ thì chỉ cần viết: DEL(EMPLOYEE; SSN= ‘004’)
Phép cập nhật (UPDATE): Là phép tí;nh dùng để sửa đổi một số giá trị nào đó tại một số thuộc tí;nh.
+ Biểu diễn :
UPD (r; A1=d1,A2=d2,…,An=dn; B1=b1,B2=b2,…,Bk=bk)
Với {B1,B2,…,Bk} là tập các thuộc tí;nh mà tại đó các giá trị của bộ cần thay đổi. {B1,B2,…,Bk} ứng với tập thuộc tí;nh {A1,A2,…,An}
Hay UPD(r; E1=e1,E2=e2,…,Em=e; B1=b1,B2=b2,…,Bk=bk) với K=(E1,E2,…,Em) là khoá.
Để thay đổi tên nhân viên có SSN= ‘003’ trong quan hệ EMPLOYEE thành Nguyễn Thanh Mai ta có thể viết :
CH (EMPLOYEE; SSN= ‘03’; Name= ‘Nguyễn Thanh Mai’)
Phép toán đại số quan hệ
Đại số quan hệ gồm một tập các phép toán tác động trên các quan hệ và cho kết quả là một quan hệ.
Có 8 phép toán được chia làm 2 nhóm : Nhóm các phép toán tập hợp (hợp, giao, trừ, tí;ch đề các), nhóm các phép toán quan hệ ( chọn, chiếu, kết nối, chia).
Định nghĩa : Hai quan hệ r và s được gọi là khả hợp nếu chúng được xác định trên cùng một tập các miền giá trị (Có nghĩa là chúng được xác đinh trên cùng một tập các thuộc tinh).
Phép hợp
– Phép hợp của hai quan hệ khả hợp r U s = {t / t thuộc r hoặc t thuộc s}
Phép hợp
– Phép hợp của hai quan hệ là phép gộp các bộ của hai bảng của một quan hệ thành một bảng và bỏ đi các bộ trùng.
Minh họa dữ liệu phép hợp 2 quan hệ
Phép giao
– Phép giao của hai quan hệ khả hợp r ∩ s ={t / t thuộc r và t thuộc s}
Phép giao
– Phép giao của hai quan hệ là lấy ra các bộ cùng có mặt ở cả hai bảng của một quan hệ.
EMPLOYEE1 ∩ EMPLOYEE2 = 002, Thiện, P002
Phép trừ
– Phép trừ của hai quan hệ khả hợp r – s = {t / t thuộc r và t không thuộc s}
Phép trừ
– Phép trừ của hai quan hệ A và B là lấy các bộ có trong bảng A mà không có trong bảng B.
EMPLOYEE1 – EMPLOYEE2 = 001, Hoàng, P001
EMPLOYEE2 – EMPLOYEE1
EMPLOYEE2 – EMPLOYEE1
Phép tí;ch đề các
– Cho quan hệ r(R), R={A1,A2,…,An} và quan hệ s(U), U={B1,B2,…,Bm}
– Tí;ch đề các :
r x s ={t=(a1,a2,…,an, b1,b2,…,bm) /a1,a2,…,an Єr và b1,b2,…,bmЄs}
Phép tí;ch đề các
Bậc k = bậc r + bậc s , lực lượng k = lực lượng r x lực lượng s
Phép tí;ch đề các là phép toán đắt nhất trong các phép toán của đại số quan hệ.
Phép chọn (cắt ngang) – một ngôi
– Là phép toán lọc ra một tập con các bộ của quan hệ đã cho theo biểu thức chọn F.
– Biểu thức chọn F là một tổ hợp logic các toán hạng, mỗi toán hạng là một phép so sánh đơn giản giữa hai thuộc tí;nh hoặc giữa một thuộc tí;nh và một giá trị hằng.
– Phép toán logic: AND (và), OR (hoặc), NOT (phủ định).
– Phép toán so sánh : , =, >=,
– Phép chọn trên quan hệ r với biểu thức chọn F
σF(r) = { t thuộc r / F(t) đúng}
Ví; dụ Phép chọn (cắt ngang) – một ngôi
Bậc r = bậc r”; lực lượng của r >= lực lượng của r”
-Phép chọn trên quan hệ là lấy ra các dòng của bảng quan hệ thoả mãn một điều kiện nào đó trên tập các cột thuộc tí;nh.
Chọn trên quan hệ EMPLOYEE3 các nhân viên thuộc phòng có DNo=P001
Quan hệ Employee
Phép chiếu (cắt dọc ) – 1 ngôi
– Là phép toán loại bỏ đi một số thuộc tí;nh và chỉ giữ lại một số thuộc tí;nh được chỉ ra của một quan hệ.
– Cho quan hệ r(R), X là tập con của tập thuộc tí;nh R. Phép chiếu của quan hệ r trên X : ΠX(r) = { t/ thuộc r}; t là bộ t lấy trên tập thuộc tí;nh X.
Phép chiếu (cắt dọc ) – 1 ngôi
– Bậc của r > bậc của k. Lực lượng của r > lực lượng của k
– Phép chiếu trên quan hệ là lấy một số cột (thuộc tí;nh) nào đó của bảng quan hệ.
Xem thêm: Vương Quốc Sủng Vật : Liệt Hỏa & Cầu Vồng, Tải Game Vương Quốc Sủng Vật
Lấy danh sách mã NV của quan hệ NHANVIEN
Phép kết nối – 2 ngôi
a.Phép kết nối
– Cho hai quan hệ r(R), R={A1,A2,…,An} và quan hệ s(U), U={B1,B2,…,Bm}.
– Phép xếp cạnh nhau: cho hai bộ d = (d1,d2,…,dn) và e = (e1,e2,…,em) phép xếp cạnh nhau của d và e là : (d^e) = (d1,d2,…,dn, e1,e2,…,em)
– Phép kết nối giữa quan hệ r có thuộc tí;nh A và quan hệ s có thuộc tí;nh B với một phép so sánh θ là :
r >
Quan hệ r và s trong ví; dụ phép tí;ch đề các
– Lực lượng của phép kết nối k”
Lực lượng của phép kết nối Để phép kết nối có nghĩa, miền trị dom(A) phải so sánh đ Nếu phép so sánh θ là “=” thì phép kết nối gọi là kết nối bằng.
b. Phép kết nối tự nhiên
Phép toán kết nối bằng trên những thuộc tí;nh cùng tên của hai quan hệ và sau khi kết nối thì cắt bỏ đi một thuộc tí;nh cùng tên bằng phép chiếu của đại số quan hệ được gọi là phép kết nối tự nhiên ký hiệu *.
Phép kết nối tự nhiên
Cho hai quan hệ NHANVIEN và PHONG
Minh họa dữ liệu phép kết nối tự nhiên 2 quan hệ
Phép chia
– Cho r là một quan hệ n- ngôi, s là quan hệ m- ngôi (n>m, s khác rỗng). Phép chia quan hệ r cho quan hệ s là tập tất cả các n-m bộ t sao cho với mọi bộ u thuộc s thì bộ (t^u) thuộc r : r ÷ s = {t / với mọi u thuộc s thì (t^u) thuộc r}
Phép chia Ví; dụ với hai quan hệ : PRODUCT và SUPPORT
Minh họa dữ liệu phép chia 2 quan hệ
Chuyên mục: Hỏi Đáp