2.1 CÁC KHÁI NIỆM CỦA MÔ HÌNH
QUAN HỆ
Mô hình quan hệ là một cách tổ chức dữ liệu ở
dạng bảng hay các quan hệ gồm ba thành phần
sau:
• A. Cấu trúc dữ liệu: được tổ chức dưới dạng
bảng hay quan hệ
• B. Thao tác dữ liệu: Những phép toán mạnh
(ngôn ngữ truy vần - SQL) để thực hiện các thao
tác trên dữ liệu
• C. Tích hợp dữ liệu: các qui tắc nghiệp vụ nhằm
duy trì tính toàn vẹn dữ liệu khi chúng được thao
tác.
              
                                            
                                
            
 
            
                 29 trang
29 trang | 
Chia sẻ: phuongt97 | Lượt xem: 576 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Hệ quản trị Cơ sở dữ liệu - Chương II: Mô hình quan hệ - Nguyễn Nhật Minh, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG II: MÔ HÌNH QUAN HỆ
 Mô hình quan hệ được Ted Codd đưa ra đầu tiên vào năm 
 1970 và gây được chú ý ngay tức khắc vì tính đơn giản và 
 các cơ sở toán học của nó. Mô hình quan hệ sử dụng khái 
 niệm quan hệ toán học như là khối xây dựng cơ sở và có cơ 
 sở lý thuyết của nó trong lý thuyết tập hợp và logic vị từ bậc 
 nhất. Trong chương này chúng ta sẽ nghiên cứu các khái 
 niệm cơ bản về mô hình quan hệ
 2.1 CÁC KHÁI NIỆM CỦA MÔ HÌNH 
 QUAN HỆ
 Mô hình quan hệ là một cách tổ chức dữ liệu ở 
 dạng bảng hay các quan hệ gồm ba thành phần 
 sau:
• A. Cấu trúc dữ liệu: được tổ chức dưới dạng 
 bảng hay quan hệ
• B. Thao tác dữ liệu: Những phép toán mạnh 
 (ngôn ngữ truy vần - SQL) để thực hiện các thao 
 tác trên dữ liệu
• C. Tích hợp dữ liệu: các qui tắc nghiệp vụ nhằm 
 duy trì tính toàn vẹn dữ liệu khi chúng được thao 
 tác. 
 2.1.1 Quan hệ, thuộc tính, miền
• Quan hệ: là một bảng dữ liệu hai chiều. Mỗi quan hệ là 
 tập hợp các cột mỗi cột được đặt duy nhất một cái tên và 
 một số tuỳ ý các hàng không được đặt tên. Một quan hệ 
 là sự mô tả một tập hợp các đối tượng trong thế giới 
 thực ta gọi là thực thể.
• Thuộc tính:, các đối tượng được mô tả trong quan hệ 
 có chung những đặc trưng nào đó. Các cột trong quan 
 hệ nhằm mô tả các đặc trưng hay thuộc tính của các 
 thực thể, mỗi cột biểu thị một đặc trưng.
• Nhóm lặp là một hay một số thuộc tính có giá trị khác 
 nhau trên các hàng nhưng các giá trị ở các thuộc tính 
 khác lại trùng nhau 
• Bản ghi: Mỗi hàng trong quan hệ chứa dữ liệu biểu thị 
 thông tin của một đối tượng cụ thể, mỗi hàng của một 
 quan hệ được gọi là một bộ (tube) hay cũng gọi là bản 
 ghi (record).
 Ví dụ Quan hệ SINHVIÊN 
SINHVIÊN Họtên Mã số Ngàysinh Giớitính Lớp Môn Điểm 
 Lê Văn Vân 4515202 12/09/84 Nữ 49 KTLN Toán 7 
 Phạm Thế Anh 4610503 15/05/85 Nam 51 QTKD Toán 7 
 Hoàng Thanh Tùng 4516802 21/03/84 Nam 50 Kế toán Tin 9 
 Phạm Thế Anh 4610503 15/05/85 Nam 51 QTKD CSDL 8 
 Đỗ Trần Cung 4521402 20/01/84 Nam 50 Kế toán Triết 8 
• Lược đồ quan hệ: Khi thay đổi dữ liệu trong bảng 
 thì các tính chất của quan hệ không thay đổi, khi ta 
 loại bỏ tất cả các hàng dữ liệu ra khỏi bảng, khi đó 
 chúng ta có một bộ khung của quan hệ, bộ khung 
 này được gọi là lược đồ quan hệ. 
• Để mô tả một lược đồ quan hệ ta qui ước viết tên 
 của quan hệ bằng chữ in hoa và sau đó là danh 
 sách các thuộc tính trong dấu ngoặc đơn, các 
 thuộc tính được viết bằng chữ thường và phân 
 tách bởi dấu phẩy.
• Ví dụ quan hệ SINHVIEN trên ta có lược đồ quan 
 hệ 
SINHVIEN(Họtên, Mãsố, Ngàysinh, Giớitính, Lớp, Môn, Điểm)
• Miền giá trị: Mỗi thuộc tính trong lược đồ 
 quan hệ có thể nhận những giá trị dữ liệu 
 trên một tập nào đó, tập đó gọi là miền giá 
 trị (nói vắn tắt là miền trị) của thuộc tính.
• Ví dụ: Trong quan hệ SINHVIEN thì thuộc 
 tính Họtên là tập dẫy chữ cái có độ dài 
 nhỏ hơn 25; Giớitính là tập hai giá trị 
 “nam”, “nữ”; Điểm là tập hợp các số 
 nguyên từ 0 đến 10.
 2.1.2 Các đặc trưng của các quan hệ
• A. Giá trị đưa vào mỗi cột là đơn nhất: Giá trị dữ liệu đưa 
 vào một cột tương ứng với một hàng là đơn nhất thuộc 
 miền trị của thuộc tính. 
• B. Các giá trị đưa vào một cột phải thuộc cùng một 
 miền dữ liệu
• Ví dụ các dữ liệu đưa vào cột điểm phải là các số nguyên 
 từ 0 đến 10, không thể đưa vào các chữ như ”chín” hay 
 ”bảy”
• C. Mỗi dòng là duy nhất trong bảng
• D. Thứ tự các cột là không quan trọng: Các cột có thể 
 đổi chỗ cho nhau mà không làm thay đổi ý nghĩa của 
 chúng, cột được xác định bằng tên chứ không phải bởi thứ 
 tự của nó.
• E. Thứ tự các hàng không quan trọng: Các hàng đưa 
 vào bảng có thể có thứ tự tuỳ ý
Ví dụ về bảng không phải là một 
 quan hệ
 SINHVIÊN Họtên Mã số Ngàysinh Giớitính Lớp Môn Điểm 
 Lê Văn Vân 4515202 12/09/84 Nữ 49 KTLN Toán 7 
 Hoàng Thanh Tùng 4516802 21/03/84 Nam 50 Kế toán Tin 9 
 Phạm Thế Anh 4610503 15/05/85 Nam 51 QTKD CSDL, 8, 7 
 Toán 
 Đỗ Trần Cung 4521402 20/01/84 Nam 50 Kế toán Triết 8 
2.2 KHÁI NIỆM VỀ CÁC 
 DẠNG CHUẨN
 2.2.1. Quan hệ có cấu trúc tốt
• Một quan hệ có cấu trúc tốt là quan hệ có chứa số dư thừa dữ liệu ít 
 nhất và cho phép người dùng thêm, xoá, hay sửa đổi những hàng 
 trong bảng mà không gây ra lỗi hoặc sự không nhất quán.
 Một quan hệ không có cấu trúc tốt:
 SINHVIÊN Họtên Mã số Ngàysinh Giớitính Lớp Môn Điểm 
 Lê Văn Vân 4515202 12/09/84 Nữ 49 KTLN Toán 7 
 Phạm Thế Anh 4610503 15/05/85 Nam 51 QTKD Toán 7 
 Hoàng Thanh Tùng 4516802 21/03/84 Nam 50 Kế toán Tin 9 
 Phạm Thế Anh 4610503 15/05/85 Nam 51 QTKD CSDL 8 
 Đỗ Trần Cung 4521402 20/01/84 Nam 50 Kế toán Triết 8 
 2.2.2. Khái niệm về các dạng chuẩn
• Một dạng chuẩn của một quan hệ là một trạng 
 thái của nó có thể xác định được nhờ một số qui 
 tắc nhất định. Các qui tắc này liên quan đến việc 
 kiểm tra sự phụ thuộc giữa các thuộc tính trong 
 một quan hệ. Sự tồn tại một số quan hệ phụ 
 thuộc đặc biệt là nguyên nhân gây ra các dị 
 thường. Chuẩn hoá là việc đưa các lược đồ 
 quan hệ về các dạng chuẩn có cấu trúc tốt để 
 tránh các dị thường. Người ta đã xác định được 
 một số các dạng chuẩn mà chúng ta sẽ xem xét 
 sau đây. Trước hết ta cần một số khái niệm liên 
 quan. 
 a. Phụ thuộc hàm
• Cho quan hệ R và hai tập con khác nhau A và B 
 của tập thuộc tính. Ta nói rằng tập thuộc tính B 
 phụ thuộc hàm vào tập thuộc tính A hay A xác 
 đinh B nếu với mỗi hàng của quan hệ R các giá 
 trị của A xác định duy nhất các giá trị của B và 
 được ký hiệu A  B. 
Ta có thể định nghĩa sự phụ thuộc hàm một cách 
 hình thức như sau:
• Nếu X là tập con của tập thuộc tính, ta ký 
 hiệu ti[X] là các giá trị ở hàng ti trên tập thuộc 
 tính X, khi đó A  B nếu t1 và t2 là hai hàng bất 
 kỳ của R mà có t1[A]=t2[A] kéo theo t1[B]=t2[B]
 Hệ tiên đề Armstrong (Tham khảo)
 Gọi R(U) là lược đồ quan hệ với U ={A1, A2, ,An} là tập thuộc 
 tính. X, Y, Z,WU. Hệ tiên đề Armstrong phát biểu như sau:
• 1. Phản xạ: Nếu Y  X thì X  Y (A1)
• 2. Tăng trưởng: Nếu Z  U và X Y thì X  Z  Y  Z (A2)
• 3. Bắc cầu: Nếu X Y và Y Z thì X Z (A3)
Từ hệ tiên đề Armstrong có thể suy ra một số luật sau:
• 4. Luật hợp: nếu X  Y và X  Z thì X  YZ
• 5. Luật tựa bắc cầu: nếu X  Y và WY  Z thì XW  Z
• 6. Luật tách: Nếu X  Y và Z  Y thì X  Z
b. Khoá dự tuyển, khoá chính và khoá ngoại
 Khoá dự tuyển – Candidate key
 Khoá dự tuyển của một quan hệ là một hay một tập con 
 các thuộc tính mà giá trị của nó xác định duy nhất mỗi 
 hàng của quan hệ. Các thuộc tính này được gọi là thuộc 
 tính khoá
 Khoá dự tuyển có hai tính chất sau:
 • Tính xác định duy nhất: Với mỗi hàng giá trị trên khoá 
 dự tuyển là duy nhất (không có hai hàng có giá trị trên 
 các thuộc tính khoá trùng nhau), trong khi đó các các 
 thuộc tính không phải là khoá phụ thuộc hàm vào các 
 thuộc tính khoá.
 • Tính không dư thừa: Nếu bỏ đi bất kỳ thuộc tính khoá 
 nào của khoá dự tuyển thì sẽ phá huỷ tính duy nhất của 
 nó.
• Khoá chính - primary key: Là khoá dự tuyển được chọn làm khoá 
 của quan hệ. 
 Trong số khoá dự tuyển nêu trên của quan hệ SINHVIEN, rõ ràng 
 nếu ta chọn (Mãsv) làm khoá thì tốt hơn.
Để chọn một khoá chính ta nên theo nguyên tắc sau:
• Khoá nên có số ít nhất các thuộc tính. Nếu tốt nhất là chỉ gồm một 
 thuộc tính
• Nếu khoá có nhiều thuộc tính, nên tạo ra thuộc tính thay chúng làm 
 kháo cho quan hệ.
• Nếu khoá cấu tạo từ nhiều thuộc tính, nên tránh sử dụng các thuộc 
 tính dễ thay đổi theo thời gian như tên địa danh chẳng hạn.
 Như vậy khoá chính dùng để tính nhận dạng duy nhất bản ghi trong 
 quan hệ.
Khoá ngoại - foreign key: 
 Một khoá được dùng trong một quan hệ (bảng) 
 để làm đại diện cho giá trị của khoá chính trong 
 một bảng có liên hệ. 
 Trong khi khoá chính thì chỉ chứa các giá trị duy 
 nhất thì khoá ngoại có thể chứa các giá trị giống 
 nhau. 
 Ví dụ, mã sinh viên (MãSV) là khoá chính trong 
 bảng SINHVIEN (mỗi sinh viên có một mã duy 
 nhất), còn MãSV trong bảng SINHVIEN_MON 
 được xem như là khoá ngoại, mỗi sinh viên có 
 thể tham gia nhiều môn, vì vậy giá trị MASV 
 trong bảng SINHVIEN_MON có thể trùng lặp.
 Các dạng chuẩn cơ bản
Người ta đã xác định có ba dạng chuẩn cơ bản gồm:
• Dạng chuẩn thứ nhất (1NF): Không có nhóm lặp 
 trong bảng
• Dạng chuẩn thứ hai (2NF):
 + Là chuẩn 1
 + Không có trường không khoá có thể phụ thuộc vào 
 một phần của khoá chính.
• Dạng chuẩn thứ ba (3FN):
 + Là chuẩn 2.
 + Không có thuộc tính không khoá nào có thể phụ 
 thuộc vào các thuộc tính không khoá khác. Nói cách 
 khác, mỗi thuộc tính trong một bản ghi sẽ chứa thông 
 tin về thực thể được xác định bởi khoá chính.
2.2.3. Chuẩn hoá các lược đồ quan hệ
Chuẩn hoá là quá trình chuyển một quan 
hệ có cấu trúc phức hợp thành các quan 
hệ có cấu trúc đơn giản hơn. Thc hiện quá 
trình chuẩn hoá, ta bắt đầu việc kiểm tra 
dạng chuẩn từ thấp đến cao và thực hiện 
việc tách quan hệ phức hợp thành các 
quan hệ đơn giản hơn
 Nếu quan hệ không là chuẩn 1
 Có nghĩa là QH có chứa các thuộc tính 
 lặp. Khi đó ta tách thành hai quan hệ :
• Quan hệ thứ nhất : Gồm các thuộc tính 
 lặp và phần khoá xác định chúng.
• Quan hệ thứ hai : gồm các thuộc tính 
 còn lại và toàn bộ khoá nhưng không 
 chứa thuộc tính lặp.
Ví dụ, cho lược đồ quan hệ: 
DONHANG(sốđơn, mãkhách, tênkh, địachỉkh, ngàyđặt, mãhàng*, 
tênhàng*, đơnvịtính*, môtả*, sốlượng*)
Trong quan hệ ta đánh dấu * các thuộc tính lặp.
Để xác định khoá ta xác định các phụ thuộc hàm :
• (mãkhách) ( tênkh, địachỉkh)
• ( mãhàng) ( tênhàng, đơnvịtính, môtả)
• (sốđơn, mãhàng) ( sốlượng)
• (sốđơn) (mãkhách, ngàyđặt, mãhàng)
Từ đó ta suy ra khoá gồm các thuộc tính bên trái của các phụ thuộc 
 hàm : (sốđơn, mãkhách,mãhàng)
Quan hệ DONHANG được tách thành hai quan hệ sau :
• Quan hệ 1: gồm các thuộc tính các thuộc tính lặp và phần khoá xác 
 định chúng 
 HÀNGĐẶT(sốđơn, mãhàng, tênhàng, đơnvịtính, môtả, sốlượng)
• Quan hệ 2: Gồm các thuộc tính còn lại và phần khoá xác định 
 chúng: 
 DONHANG(sốđơn, mãkhách, tênkh, địachỉkh, ngàyđặt)
 Nếu quan hệ không là chuẩn 2, 
 Có nghĩa là QH có chứa các thuộc tính 
 không khoá phụ thuộc vào một phần của 
 khoá. Khi đó ta tách thành hai quan hệ :
• Quan hệ thứ nhất: Gồm các thuộc tính 
 không khoá phụ thuộc vào một phần khoá 
 và phần khoá xác định chúng.
• Quan hệ thứ hai: Gồm các thuộc tính còn 
 lại và toàn bộ khoá chính.
Ví dụ: Quan hệ DONHANG(sốđơn, mãkhách, tênkh, 
 địachỉkh, ngàyđặt) là quan hệ ở dạng chuẩn 1 nhưng 
 chưa là chuẩn 2.
Các phụ thuộc hàm:
• (sốđơn) (mãkhách, ngàyđặt) ; (mãkhách)  (tênkh, 
 địachỉkh). Kéo theo khoá quan hệ này là (sốđơn, 
 mãkhách).
• Phụ thuộc hàm (mãkhách)  (tênkh, địachỉkh) này cho 
 thấy hai thuộc tính không khoá phụ thuộc vào một 
 phần khoá.
Vậy quan hệ DONHANG(sốđơn, mãkhách, tênkh, địachỉkh, 
 ngàyđặt) được tách thành hai quan hệ:
 (1) KHÁCH(mãkhách, tênkh, địachỉkh)
 (2) DONHANG(sốđơn, mãkhách, ngàyđặt)
 Nếu quan hệ không là chuẩn 3,
Khi quan hệ ở dạng chuẩn 2 nhưng chưa ở dạng 
 chuẩn 3, có nghĩa là trong quan hệ tồn tại các 
 thuộc tính không khoá phụ thuộc vào các thuộc 
 tính không khoá khác. Để đưa về dạng chuẩn 3 
 ta tách quan hệ như sau:
• Quan hệ thứ nhất: Gồm các thuộc tính không 
 khoá và các thuộc tính không khoá khác (gọi là 
 thuộc tính cầu) xác định chúng.
• Quan hệ thứ hai: Gồm các thuộc tính còn lại và 
 thuộc tính gọi là thuộc tính cầu nói trên.
Ví dụ: cho lược đồ VẬNCHUYỂN(sốvậnđơn, 
 khohàng, nơiđến, khoảngcách)
• Các phụ thuộc hàm: (sốvậnđơn)  ( khohàng, 
 nơiđến, khoảngcách) ; 
 ( khohàng, nơiđến) ( khoảngcách).
Xác định được khoá là (vậnđơn).
• Rõ ràng trong quan hệ này (khoảngcách) là 
 thuộc tính không khoá nhưng lại phụ thuộc vào 
 các thuộc tính không khoá khác là (khohàng, 
 nơiđến). Do đó, lược đồ được tách thành hai 
 lược đồ:
(1) HÀNHTRÌNH(khohàng, nơiđến, khoảngcách)
(2) VẬNCHUYỂN(sốvậnđơn, khohàng, nơiđến)
 2.3 CÁC RÀNG BUỘC QUAN 
HỆ, LƯỢC ĐỒ CSDL QUAN HỆ
 Trong phần này chúng ta thảo luận về các 
 hạn chế trên các dữ liệu trong một lược đồ 
 cơ sở dữ liệu quan hệ. Các hạn chế đó 
 được gọi là các ràng buộc. Có các loại ràng 
 buộc : ràng buộc miền, ràng buộc khoá, ràng 
 buộc toàn vẹn thực thể và ràng buộc toàn 
 vẹn tham chiếu.
 2.3.1 Các ràng buộc miền
• Các ràng buộc miền chỉ ra rằng 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ị thuộc 
 kiểu dữ liệu nào đó. 
Các kiểu dữ liệu liên kết với các miền bao gồm: 
• các kiểu dữ liệu số chuẩn cho các số nguyên ( short 
 integer, integer, long integer), 
• các số thực ( float, double precision float ). 
• Ngoài ra còn các kiểu dữ liệu ký tự (dãy ký tự với độ dài 
 cố định, dãy ký tự với độ dài thay đổi ), 
• ngày, thời gian (Date, Time)
• tiền tệ. (currency)
• Các loại miền khác có thể là các miền con của một kiểu 
 dữ liệu hoặc một kiểu dữ liệu đếm được trong đó mọi giá 
 trị có thể được liệt kê rõ ràng 
 2.3.2 Ràng buộc khoá
Thông thường, có tồn tại các tập con của các thuộc tính của một 
 lược đồ quan hệ có tính chất là không có hai bộ nào ở trong 
 mọi trạng thái quan hệ r của R có cùng một tổ hợp giá trị cho 
 các thuộc tính của nó. 
Giả sử chúng ta ký hiệu một tập con như vậy là SK; khi đó với hai 
 bộ khác nhau bất kỳ t1 và t2 trong một trạng thái quan hệ r của 
 R chúng ta có ràng buộc là t1[SK]  t2[SK] . Tập hợp thuộc 
 tính SK như vậy được gọi là một siêu khoá (superkey) của 
 lược đồ quan hệ R. Một siêu khoá SK xác định rõ một ràng 
 buộc về tính duy nhất , phát biểu rằng không có hai bộ khác 
 nhau trong một trạng thái r của R có cùng một giá trị cho SK. 
 Mỗi quan hệ có it nhất là một siêu khoá mặc định, đó là tập 
 hợp tất cả các thuộc tính của nó
Một khoá K của một lược đồ quan hệ R là một siêu khoá của R 
 với tính chất là nếu bỏ đi bất kỳ thuộc tính A nào ra khỏi K thì 
 sẽ còn lại một tập K không phải là siêu khoá của R
 2.3.4 Toàn vẹn thực thể, toàn vẹn 
 tham chiếu và khoá ngoài
• Ràng buộc toàn vẹn thực thể được phát biểu là: 
 khoá chính phải luôn luôn có giá trị xác định, 
 nghĩa là không được phép có giá trị null. 
 Các ràng buộc khoá và ràng buộc toàn vẹn thực 
 thể được chỉ ra trên các quan hệ riêng rẽ. 
• Ràng buộc toàn vẹn tham chiếu được chỉ ra 
 giữa hai quan hệ để duy trì sự tương ứng giữa 
 các bộ của hai quan hệ. 
 Lược đồ và sơ đồ tham chiếu
NHÂNVIÊN( Họđệm,Tên, MãsốNV, Ngàysinh, Địachỉ, Giớitính,Lương, MãsôNGS, MãsốĐV) 
 ĐƠNVỊ ( TênĐV, MãsốĐV, MãsốNQL, Ngàybắtđầu) 
 ĐƠNVỊ_ĐỊAĐIỂM( MãsốĐV, ĐịađiểmĐV) 
 DỰÁN( TênDA, MãsốDA, ĐịađiểmDA, Mã sốĐV) 
 NHÂNVIÊN_DỰÁN( MãsốNV, MãsốDA, Sốgiờ) 
 PHỤTHUỘC( MãsốNV, TênCon, Giớitính, Ngàysinh) 
            Các file đính kèm theo tài liệu này:
 bai_giang_he_quan_tri_co_so_du_lieu_chuong_ii_mo_hinh_quan_h.pdf bai_giang_he_quan_tri_co_so_du_lieu_chuong_ii_mo_hinh_quan_h.pdf