1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÀI GIẢNG Mô hình dữ lịêu quan hệ

40 326 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 40
Dung lượng 435 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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

Trang 1

Chương 3

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 vấn (query) theo cách tự nhiên và đơn giản, rồi để cho bộ tối ưu hóa truy vấn tìm

truy vấn tương đương để thực thi 1 cách hiệu quả

Trang 6

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 ( thể hiện quan hệ): thường được gọi tắt

là quan hệ ( relation)

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

Trang 7

 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 8

Quan hệ (relation) (tt)

 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

 Ví dụ: thuộc tính Address của quan hệ STUDENT có

domain là tập hợp các chuỗi Thuộc tính điểm có domain là các số thực trong phạm vi từ 0 đến 10.

Trang 9

STUDENT Table Attribute Values

Trang 10

 Các ràng buộc bảo toàn ( integrity

constraint): là các hạn chế trên các quan

hệ của lược đồ này.

Trang 11

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

 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)

 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 12

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 13

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 14

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 17

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

 Vị từ (predicate) của R(U) là một phát biểu cho biết ngữ nghĩa của R trong thế giới thực, ký hiệu ||R(U)||

Trang 18

Lược đồ quan hệ

(relation schema)

 Ví dụ: vị từ của lược đồ quan hệ Employee là:

“Một nhân viên có các thuộc tính gồm mã nhân viên Emp_ID duy nhất, tên nhân viên Name, làm tại

phòng Dept_Name và có tiền lương Salary”

Trang 20

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 21

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.

Trang 22

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 23

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

Trang 24

Khoá quan hệ (Relational Keys)

 Định nghĩa khóa theo quan hệ toán học:

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:

1 ) ∀ r(R), ∀ t1, t2∈ r, nếu t1≠ t2 thì t[K1] ≠ t[K2]

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

Trang 25

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 26

Ví dụ

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

Employee(Emp_ID, Name, Dept_Name, Salary)

Training(Emp_ID, Course, Date_Completed)

Department(Dept_Name, Location,Fax)

Trang 27

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 nghiệp vụ Các ràng buộc này thường nằm 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ơ đồ thiết kế và được thiết

kế bởi nhà thiết kế CSDL

Trang 28

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 30

Bảo toàn thực thể

(Entity Integrity)

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

của mỗi hàng trong bảng

 Để 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:

 Ràng buộc khóa chính (primary key)

Trang 31

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 32

Bảo toàn miền

Trang 33

Toàn vẹn tham chiếu

 Bảng chứa khóa chính: được gọi là bảng chính (primary table)

 Bảng chứa khóa ngoại: được gọi là bảng quan hệ (related table)

 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 đến 1 giá trị không tồn tại và nều giá trị khóa thay đổi thì tất cả tham chiếu đến giá trị khóa này cũng

phải đồng loạt thay đổi theo

Trang 34

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 35

Toàn vẹn tham chiếu

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

Trang 36

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

Trang 37

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:

Trang 38

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 39

Bất thường dữ liệu

(Data anomaly)

 Bất thường là 1 lỗi sai hay sự không nhất quán xảy

ra khi dư thừa dữ liệu

 Ba loại bất thường:

 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 40

- 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: 25/08/2017, 09:50

TỪ KHÓA LIÊN QUAN