1. Trang chủ
  2. » Giáo án - Bài giảng

Chương 4 Mô hình dữ liệu quan hệ

46 1K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 46
Dung lượng 1,22 MB

Nội dung

Lược đồ quan hệ Relation schemaDomain : là 1 tập hợp các giá trị cho phép của 1 hay nhiều thuộc tính, thường là 1 tập con cuả kiểu dữ liệu.. Điển hình Quan hệ relation instance Quan

Trang 1

Chương 4

Mô hình dữ lịêu quan hệ

Trang 3

Mô hình dữ liệu quan hệ

(Relational data model)

Được đề xuất bởi E.F Codd năm 1970

Hầu hết các DBMS đều dựa theo mô hình này

Nhưng hiện nay DBMS bắt đầu theo

hướng đối tượng

Trang 4

Mô hình dữ liệu quan hệ

(Relational data model)

Mô hình quan hệ được xây dựng trên 1 cấu trúc toán học tự nhiên và đơn giản: quan hệ (relation)

Các quan hệ (relation) có 1 tập hợp các

toán tử mạnh mức cao và các ngôn ngữ tạo

dữ liệu (manipulation language) dựa vào

nền tảng vững chắc của logic toán học

Trang 5

Mô hình dữ liệu quan hệ

(Relational data model)

 Theo nguyên lý toán học thì các biểu thức quan hệ

có thể phân tích được Vì vậy, bất kỳ biểu thức nào cũng có thể được chuyển đổi ( bởi DBMS) sang 1 biểu thức tương đương khác có thể thực thi hiệu

quả hơn Quá trình biến đổi này gọi là tối ưu hóa truy vấn (query optimization)

 Các lập trình viên ứng dụng không cần phải nghiên cứu kỹ chi tiết bên trong của mỗi CSDL và cũng

không cần phải biết bộ đánh giá truy vấn làm việc như thế nào.

 Các lập trình viên ứng dụng chỉ cần xây dựng truy

Trang 6

Tập hợp (set) là gì?

Các phép toán về tập hợp?

Quan hệ (Relation) là gì?

Trang 7

Tập hợp (set)

A set is an unordered collection of objects, called its elements

Ví dụ:

Trang 8

Các phép toán về tập hợp

Trang 9

Các phép toán về tập hợp

Trang 10

Các phép toán về tập hợp

Điều kiện để thực hiện phép toán giao,

Trang 11

Quan hệ (relation) là gì?

A relation is just any subset of the

cartesian product

R AxB

R = {(a,b) | student a is enrolled in class b}

N u A có 10 student, B có 4 class thì s có ếu A có 10 student, B có 4 class thì sẽ có ẽ có

t t c 10 x 4 = 40 ph n t c a AxB nh ng ất cả 10 x 4 = 40 phần tử của AxB nhưng ả 10 x 4 = 40 phần tử của AxB nhưng ần tử của AxB nhưng ử của AxB nhưng ủa AxB nhưng ưng

sô student h c l p b có t i đa là 10 và có ọc lớp b có tối đa là 10 và có ớp b có tối đa là 10 và có ối đa là 10 và có

th không có student nào ể không có student nào.

Trang 12

Ví dụ về quan hệ và tích Descartes

Cho 2 tập hợp D1={1,3}, D2={2,4,6}

Tích D = D1 x D2 =

{(1,2), (1,4), (1,6), (3,2), (3,4), (3,6)}

Xác định quan hệ r chứa các cặp có thứ tự với thành phần thứ 2 là 6

r={(x,y)| x  D1 và y = 6} = {(1,6), (3,6)}

 Xác định quan hệ s có thành phần thứ 2 gấp đôi thành phần thứ 1

s = {(x,y)| x  D1 và y  D2 và y = 2x}

= {(1,2),(3,6)}

Trang 13

Các khái niệm cơ bản

Mô hình quan hệ có 2 khái niệm cơ bản:

◦ Relation instance ( điển hình quan hệ): thường được gọi tắt là quan hệ ( relation)

◦ Relation Schema ( lược đồ quan hệ)

Trang 14

Lược đồ quan hệ (Relation schema)

Lược đồ quan hệ bao gồm:

Trang 15

Lược đồ quan hệ (Relation schema)

Domain : là 1 tập hợp các giá trị cho phép của 1 hay nhiều thuộc tính, thường là 1

tập con cuả kiểu dữ liệu Ký hiệu dom(A)

 miền trị của thuộc tính A

Trang 16

Lược đồ quan hệ (relation schema)

Cho A1, A2, , An là tên các thuộc tính

thuộc các miền D1, D2, , Dn

Lược đồ quan hệ R với 1 tập thuộc tính

{A1, A2, , An}

R(A1, A2, , An)

Gọi U={A1, A2, , An} là tập các thuộc

tính của lược đồ quan hệ R

Trang 17

Biểu diễn lược đồ quan hệ

Biểu diễn 1 lược đồ quan hệ:

TÊN_QUAN_HỆ( thuộc tính 1, thuộc tính 2,…)

Ví dụ : lược đồ quan hệ Employee có 3 thuộc tính

EMPLOYEE(Emp_ID, Name, Dept_Name, Salary)

Trang 18

Điển hình Quan hệ (relation

instance)

Quan hệ chính là 1 bảng gồm các hàng và cột

◦ Hàng (row) được gọi là tuple, không thể có 2

tuple giống nhau trong cùng 1 quan hệ, tương

tự như các record trong 1 file Thứ tự các tuple trong 1 quan hệ là không quan trọng.

 Relation instance is a set of unique tuples

◦ Cột (column) hay còn gọi là attribute Mỗi cột đều có tên gọi riêng Thứ tự các cột là không

quan trọng.

Trang 19

◦ Quan hệ r là một thể hiện quan hệ (relation

instance) của R tại 1 một thời điểm

◦ Mỗi ánh xạ của quan hệ là 1 bộ của quan hệ và được ký hiệu (A1:d1, A2: d2,…,An:dn) với di 

Di, 1 ≤ i ≤ n

Trang 20

Biểu diễn quan hệ theo lược đồ

Ví dụ : lược đồ quan hệ Employee có 3

thuộc tính

EMPLOYEE(Emp_ID, Name, Dept_Name, Salary)

Biểu diễn 1 tuple trong 1 quan hệ:

Ví dụ: Nhân viên Magaret mã NV 100 ở

phòng Marketing với mức lương 48000 USD

t = (100, ‘Magaret’, ‘Marketing’, 48000)

Trang 21

STUDENT Table Attribute Values

Trang 22

Cơ sở dữ liệu quan hệ

(Relational database)

Cơ sở dữ liệu quan hệ (relational

database):

◦ Là 1 tập hợp hữu hạn các quan hệ (relations)

◦ Dữ liệu được lưu trữ trong các quan hệ (bảng)

◦ Có nhiều mối quan hệ giữa các bảng

Trang 23

Cấu trúc dữ liệu quan hệ (tt)

Bậc (degree): là số lượng các thuộc tính của quan hệ

Số thuộc tính Bậc của quan hệ

1 quan hệ nhất phân (unary relation)

2 quan hệ nhị phân (binary relation)

3 quan hệ tam phân (ternary relation)

n quan hệ n phân (ternary relation)

Trang 24

Cấu trúc dữ liệu quan hệ (tt)

Lượng số (cardinality): số lượng các bộ

của quan hệ Lượng số sẽ thay đổi khi

thêm hay xoá các tuple (hàng)

Trang 25

Khoá quan hệ (Relational

Keys)

Siêu khoá ( superkey) là một thuộc tính

hoặc một tập các thuộc tính dùng để xác định duy nhất một bộ của quan hệ

◦ Một siêu khoá có thể chứa thêm các thuộc tính không cần thiết để xác định duy nhất một bộ

◦ Siêu khoá hiển nhiên là tập tất cả các thuộc

tính của quan hệ

Trang 26

Ví dụ siêu khóa

Xét 1 lược đồ quan hệ

STUDENT (StudentID, FirstName, LastName,

BirthDate, Major, SSN, ClassID)

Xác định các siêu khóa có thể có của R???

Trang 27

Khoá quan hệ (Relational Keys)

Khoá dự tuyển (candidate key): là một

siêu khoá K mà không có một tập con

thực sự bất kỳ K’  K lại là một siêu khoá

◦ Tính duy nhất ( uniqueness): các giá trị của K trong các bộ của r là duy nhất

◦ Tính tối giản (irreducibility hay minimality)

không có tập con thực sự K’  K lại có tính

duy nhất.

Ví dụ: khóa dự tuyển của quan hệ

Trang 28

Khoá quan hệ (Relational Keys)

Thuộc tính khoá ( key attribute, prime

attribute): là thuộc tính tham gia vào khoá

dự tuyển

Thuộc tính không khóa (non-key

attribute): là thuộc tính không tham gia

vào khóa dự tuyển

Khóa phức hợp (composite key): là khóa

có nhiều hơn một thuộc tính

Trang 29

Khoá quan hệ (Relational Keys)

Khóa chính (primary key): là một khóa dự tuyển được chọn để xác định duy nhất một

bộ của quan hệ Khóa chính có thể chỉ có

1 thuộc tính hay khóa phức hợp

Ví dụ: khóa chính của quan hệ

STUDENT???

Trang 30

Khoá quan hệ (Relational Keys)

Khóa (key) của R(U) với U={A1,

A2, ,Am} là một tập con K= {Aj1, Aj2,

…, Ajn} với j1, j2, jn là các số nguyên

phân biệt nằm trong khoảng từ 1 đến m, phải thỏa mãn đồng thời 2 điều kiện sau:

◦ r(R),  t1, t2 r, nếu t1 t2 thì t[K1]  t[K2]

◦ Không tồn tại K’  K sao cho K’ thỏa mãn điều kiện (1)

Trang 31

Khoá quan hệ (Relational Keys)

Các khóa dự tuyển (candidate key) còn lại sau khi chọn khóa chính được gọi là khóa khác (alternate key)

Khóa ngoại ( foreign key): là 1 thuộc tính hay 1 tập thuộc tính của 1 quan hệ tham chiếu đến khóa dự tuyển của 1 quan hệ

khác hay của cùng 1 quan hệ

Khóa mượn (borrowed key): là 1 khóa dự tuyển có chứa khóa ngoại

Trang 32

Ví dụ

Xét các lược đồ quan hệ sau:

Employee(Emp_ID, Name, Dept_Name, Salary) Training(Emp_ID, Course, Date_Completed)

Department(Dept_Name, Location,Fax)

Xác định khóa chính, khóa ngoại ??

Trang 33

Các ràng buộc toàn vẹn

(Integrity constraints)

Một số ràng buộc dựa vào các quy tắc

trong phần requirement Document của

ứng dụng

◦ Nhân viên không thể có lương cao hơn giám

đốc

◦ Sinh viên phải thỏa mãn các điều kiện tiên

quyết mới được đăng ký môn học đó

Các ràng buộc khác thường là ràng buộc

type và domain, xuất hiện trong sơ đồ

Trang 34

Các ràng buộc toàn vẹn

(Integrity constraints)

Ngay khi các ràng buộc đã được xác định trong lược đồ thì trách nhiệm của các

DBMS là phải bảo đảm sao cho chúng

không bị vi phạm khi có bất kỳ giao dịch (transaction) nào được thực thi trong

CSDL đó

Trang 35

Toàn vẹn dữ liệu

(Data integrity)

Mục đích của ràng buộc (constraint): để duy trì tính chính xác (accurary) và toàn

vẹn dữ liệu (data integrity) trong CSDL

Các loại toàn vẹn dữ liệu :

◦ Entity integrity

◦ Domain integrity

◦ Referential integrity

◦ User-defined integrity

Trang 36

Bảo toàn thực thể

(Entity Integrity)

Bảo toàn thực thể dùng để bảo đảm tính

◦ Để bảo toàn thực thể thì mỗi quan hệ có 1 khóa chính và giá trị của khóa chính phải luôn hợp lệ

◦ “Trong một quan hệ cơ sở, mọi thuộc tính khóa chính không được có giá trị rỗng (null)”

Được thể hiện trong SQL server thông qua các ràng buộc sau:

Trang 37

Giá trị Null

Dùng để chỉ:

◦ Giá trị chưa biết của thuộc tính

◦ Giá trị đã biết nhưng đang bị thiếu

Giá trị null khác số 0 hay chuỗi rỗng “”

Trang 38

Bảo toàn miền

(Domain Integrity)

Bảo toàn miền để bảo đảm tính hợp lệ của

dữ liệu trong 1 thuộc tính

◦ “Tất cả giá trị xuất hiện trong 1 thuộc tính của

1 quan hệ phải cùng 1 miền trị”

Được thể hiện trong SQL server thông qua các ràng buộc sau:

◦ Kiểu dữ liệu (Data types)

◦ Ràng buộc CHECK

◦ Định nghĩa RULE, DEFAULT, NOT NULL.

Trang 39

Toàn vẹn tham chiếu

Referential integrity

 Toàn vẹn tham chiếu dùng để xác định mối quan

hệ giữa các bảng khi thêm hay xóa các hàng trong bảng

 Mục đích: duy trì tính nhất quán (consistency) giữa các bộ của 2 quan hệ.

 Trong SQL server, thì toàn vẹn tham chiếu dựa vào mối quan hệ giữa khóa ngoại và khóa chính của

 Nó bảo đảm giá trị khóa phải thống nhất

(consistent) giữa các bảng Không thể tham chiếu

Trang 40

Toàn vẹn tham chiếu

Referential integrity

Tính toàn vẹn tham chiếu được thể hiện

thông qua 3 quy tắc sau:

◦ Không thể thêm các bản ghi vào bảng quan hệ nếu không có bản ghi tương ứng trong bảng

chính.

◦ Không thể thay đổi giá trị trong bảng chính nếu làm cho các bản ghi tương ứng trong bảng quan

hệ bị mất tham chiếu

◦ Không thể xóa các bản ghi trong bảng chính

nếu nó được tham chiếu bởi 1 số bản ghi trong bảng quan hệ

Trang 41

Toàn vẹn tham chiếu

(Reference Integrity)

Mục đích: duy trì tính nhất quán

(consistency) giữa các bộ của 2 quan hệ

“ Nếu tồn tại 1 khóa ngoại trong 1 quan

hệ, thì mỗi giá trị khóa ngoại phải tương ứng với 1 giá trị khóa chính trong một

quan hệ khác (hoặc trong cùng quan hệ

này) hoặc giá trị khóa ngoại phải là giá trị rỗng”

Trang 42

Ví dụ về khóa ngoại

Trang 43

Tính toàn vẹn do người dùng xác định (User-defined integrity)

Tính toàn vẹn do người dùng xác định cho phép xác định các quy tắc nghiệp vụ của

tổ chức mà không thuộc vào các loại toàn vẹn khác

Mức độ hỗ trợ cho các toàn vẹn do người dùng xác định phụ thuộc vào mỗi DBMS

Được thể hiện trong SQL server thông

qua:

◦ Các ràng buộc mức bảng

◦ Stored procedure

◦ Trigger

Trang 44

Quan hệ có cấu trúc tốt

(Well-structured relation)

Là một quan hệ có dư thừa dữ liệu là tối thiểu và cho phép người sử dụng thêm,

xóa hay sửa đổi các bộ của quan hệ mà

không bị sai hay mâu thuẩn dữ liệu ( data inconsistency)

Trang 45

◦ Bất thường khi thêm vào

◦ Bất thường khi xóa bỏ

◦ Bất thường khi sửa đổi

Trang 46

Ví dụ về bất thường dữ liệu

Xét quan hệ:

Employee(Emp_ID, Name, Dept_Name, Salary,

Course, Date_Completed)

- Khi thêm 1 nhân viên mới mà nhân viên này

không tham gia bất kỳ khóa học nào

- Khi 1 nhân viên tham gia nhiều khóa học, xuất

hiện nhiều lần trong quan hệ, nếu nhân viên này được tăng lương

- Nếu 1 nhân viên chỉ tham gia 1 khóa học và khóa học này chỉ có duy nhất 1 nhân viên, nếu nhân

viên này bị xóa

 Employee có phải là quan hệ cấu trúc tốt???

Ngày đăng: 12/05/2014, 12:04

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w