1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Hệ quản trị cơ sở dữ liệu - Chương 4, 5: Mô hình quan hệ và đại số quan hệ

68 40 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 68
Dung lượng 1,79 MB

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

Nội dung

Chương 4 và 5 giới thiệu về mô hình quan hệ và đại số quan hệ. Thông qua chương này người học có thể nắm bắt được các khái niệm về mô hình quan hệ và đại số quan hệ, biết được các ràng buộc của quan hệ và lược đồ CSDL quan hệ, biết được các phép toán đại số quan hệ cơ bản,... Mời các bạn cùng tham khảo.

Trang 1

CHƯƠNG 4

MÔ HÌNH QUAN HỆ (Relational Model)

Trang 2

Khái niệm mô hình quan hệ

• Mô hình quan hệ (Relational Model) sử dụng một tập các quan hệ (Relational ) để biểu diễn

dữ liệu và mối quan hệ giữa các dữ liệu

• Mô hình quan hệ là sự kết hợp của 3 thành

phần: Cấu trúc, toàn vẹn và thao tác.

Trang 3

Khái niệm mô hình quan hệ

hợp các quan hệ (Relations)

duy trì trong mô hình quan hệ bằng cách sử dụng khóa chính và khóa ngoại

dữ liệu như phép toán tập hợp, phép toán quan hệ

Trang 4

Khái niệm mô hình quan hệ

• Quan hệ (Relation): là một bảng giá trị gồm hai thành phần: lược đồ quan hệ ( relation schema) và thể hiện của quan hệ ( relation instance)

của quan hệ, tên và kiểu dữ liệu của thuộc tính của quan hệ Ký hiệu: R(A1, A2, …, An)

• A1, A2, …, An: danh sách các thuộc tính.

• R là tên của quan hệ

Trang 5

Khái niệm mô hình quan hệ

bảng giá trị gồm các dòng và các cột

Ví dụ: lược đồ quan hệ Student

Students(sid: string, name: string, login: string, age: integer , gpa: real)

Trang 6

Khái niệm mô hình quan hệ

– Miền giá trị (Domain): là tập giá trị hợp lệ của

một thuộc tính trong một quan hệ

• Lược đồ quan hệ R(A1, A2, …, An)

• D: miền giá trị của Ai ký hiệu dom(Ai)

– Ràng buộc miền giá trị (Domain constraint): là

điều kiện mà các thể hiện của quan hệ phải thỏa mãn Mỗi giá trị trong domain là nguyên tố

Ví dụ:

• Số CMND là tập các số từ 0 đến 9

Trang 7

Khái niệm mô hình quan hệ

– Các thành phần trong một quan hệ:

Trang 8

Khái niệm mô hình quan hệ

• Một quan hệ (relation) r của một lược đồ quan hệ R(A1, A2, …, An) được ký hiệu là r(R),

là một tập n-tuples r = {t1, t2, , tm}.

– Mỗi n-tuples t là một danh sách có thứ tự của n giá trị t = <v1, v2, , vn>, với vi, 1 ≤ i ≤ n, là một phần tử của dom(A) hoặc một giá trị đặc biệt null.– Giá trị thứ i trong bộ t tương ứng với thuộc tính Ai được biểu diễn bằng t[Ai]

Trang 9

Các ràng buộc của quan hệ

• Ràng buộc khóa (Key Constraints): một quan

hệ được định nghĩa như là một tập hợp các bộ (tuples) Tất cả các bộ trong một quan hệ phải

là duy nhất.

Trang 10

Các ràng buộc của quan hệ

• Khóa (key): Một thuộc tính hoặc một tập các thuộc tính dùng để xác định một dòng trong một quan hệ Khóa được chia thành 3 loại:

– Siêu khóa (Super key)

– Khóa dự tuyển (Candidate key)

– Khóa chính (Primary key)

Trang 11

Các ràng buộc của quan hệ

• Siêu khóa (Subper key) của R: là một tập thuộc tính SK của R sao cho không có hai bộ hợp lệ bất kỳ trong thể hiện của quan hệ r(R)

có giá trị trùng nhau tại tập thuộc tính SK.

– Cho hai bộ bất kỳ t1 và t2 trong r(R) thì ta có

t1[SK]  t2[SK].

Trang 12

Các ràng buộc của quan hệ

– Khóa K (Key) của một lược đồ quan hệ R là một siêu khóa của R mà khi loại bỏ bất kỳ thuộc tính A

từ K thì được một tập các thuộc tính K’ mà không

là siêu khóa của R nữa

Ví dụ:

• Super key: {SSN, Name, Age}

• Key: {SSN}

Trang 13

Các ràng buộc của quan hệ

• Khóa dự tuyển (Candidate key): Trong một lược đồ quan hệ có thể có nhiều hơn một khóa, mỗi khóa được gọi là khóa dự tuyển.

• Khóa chính (Primary key): một trong các khóa

dự tuyển được chọn là khóa tiêu biểu.

Trang 14

Các ràng buộc của quan hệ

• Khóa ngoại (Foreign key): tập các trường (field) hoặc thuộc tính trong một quan hệ được sử dụng để "tham chiếu” đến một bộ trong quan hệ khác.

Trang 15

Lược đồ CSDL quan hệ

• Một lược đồ cơ sở dữ liệu quan hệ (relational

database schema) 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 constraints IC).

Ví dụ: lược đồ cơ sơ dữ liệu COMPANY =

PROJECT, WORKS_ON, DEPENDENT}

Trang 16

Lược đồ CSDL quan hệ

Trang 18

• Ràng buộc toàn vẹn thực thể (Entity Integrity constraint): cho lược đồ cơ sở dữ liệu quan hệ

S = {R1, R2, , Rn}

– Các thuộc tính khóa chính (primary key attributes)

PK của mỗi lược đồ quan hệ R trong S không chứa giá trị null trong bất kỳ bộ nào của r(R), vì giá trị của khóa chính dùng để xác định một bộ riêng biệt

t[PK]  null với mọi bộ t trong r(R)

Trang 19

Lược đồ CSDL quan hệ

• Ràng buộc toàn vẹn tham chiếu (The referential integrity constraint) được xác định giữa hai quan hệ.

– Được sử dụng để duy trì sự nhất quán giữa các bộ trong hai quan hệ: quan hệ tham chiếu (the referencing relation) và quan hệ được tham chiếu (the referenced relation)

khóa ngoại FK (foreign key) tham chiếu đến khóa

Trang 20

Lược đồ CSDL quan hệ

R2 nếu t1[FK] = t2[PK]

– Ràng buộc tham chiếu biểu diễn trong lược đồ cơ

sở dữ liệu quan hệ bằng một đường cong từ khóa ngoại đến khóa chính

Trang 21

Lược đồ CSDL quan hệ

Trang 22

– Delete: Xóa các bộ trong quan hệ.

– Update (or Modify): thay đổi giá trị của các thuộc tính trong các bộ.

• Khi các thao tác trên được áp dụng vào một quan hệ có thể vi phạm các ràng buộc của quan hệ.

Trang 23

Các thao tác cập nhật và xử lý vi phạm

ràng buộc

– Thao tác insert có thể vi phạm 4 ràng buộc sau:

• Ràng buộc miền giá trị (Domain constraint)

• Ràng buộc khóa (Key constraints).

• Ràng buộc toàn vẹn thực thể (Entity integrity)

• Ràng buộc toàn vẹn tham chiếu (Referential integrity).

Trang 24

Các thao tác cập nhật và xử lý vi phạm

ràng buộc

– Thao tác Delete: chỉ có thể vi phạm toàn vẹn tham

chiếu, nếu bộ bị xóa được tham chiếu bởi các khóa ngoại từ các bộ dữ liệu khác trong cơ sở dữ liệu

– Thao tác Update: thay đổi giá trị của một hoặc

nhiều thuộc tính trong một bộ của quan hệ Cần phải xác định điều kiện trên thuộc tính để chọn bộ muốn cập nhật

Trang 25

CHƯƠNG 5: ĐẠI SỐ QUAN HỆ

(The Relational Algebra )

Trang 26

Các phép toán đại số quan hệ cơ bản

• Tập các phép toán trên mô hình quan hệ gọi là đại số quan hệ Các phép toán này cho phép người dùng truy xuất dữ liệu theo yêu cầu, kết quả của phép toán là một quan hệ mới

• Có thể chia thành 3 nhóm:

– Nhóm thao tác CSDL: Select, Project

– Kết hợp (Combined set): Cartesian (x), Join( )

– Phép toán tập hợp (Set operations): Union,

Intersection, rename, Set Difference, Division.

Trang 27

Phép toán quan hệ một ngôi

các bộ từ một quan hệ mà nó thỏa mãn điều kiện được chỉ định

–  (sigma): toán tử select

– <Điều kiện chọn>: biểu thức kiểu Boolean

<Điều kiện chọn>Điều kiện chọn>(R)

<Điều kiện chọn>Điều kiện chọn>(R)

Trang 28

Phép toán quan hệ một ngôi

Trang 29

Phép toán quan hệ một ngôi

– Thuộc tính của phép toánSELECT:

• Phép toán SELECT tạo ra một quan hệ mới S có cùng lược

đồ với quan hệ R.

• Có tính giao hoán (commutative)

• Nếu có một chuỗi các phép toán SELECT thì có thể thực hiện theo một trình tự bất kỳ.

<condition1> <condition1>((<condition2> <condition2>(R))=))= (R))=))= <condition2> <condition2>((<condition1> <condition1> (R))=))(R))=))

 <condition1>>( < condition2> > ( <condition3>> ( R))=))

=  <condition2> > (< condition3>> ( < condition1>> ( R))=)))

 <condition1>>( < condition2> > ( <condition3>> ( R))=))

=  <condition2> > (< condition3>> ( < condition1>> ( R))=)))

Trang 30

6.1 Unary relational operations

• Một chuỗi phép toán SELECT có thể thay thế bằng một phép toán đơn với sự kết hợp của tất cả các điều kiện.

Ví dụ:

 <condition1>>( < condition2> > ( <condition3>> ( R))=))

=  <condition1>> AND < condition2> > AND < condition3>> ( R))=)))

Trang 31

Phép toán quan hệ một ngôi

bảng và loại bỏ các cột khác.

– Ký hiệu

•  : Ký hiệu phép toán Project

<Điều kiện chọn>danh sách thuộc tính>: các thuộc tính trích ra từ các

thuộc tính của R.

<danh sách thuộc tính>(R)danh sách thuộc tính>(R)R))

Trang 32

Phép toán quan hệ một ngôi

Ví dụ: Xem thông tin của các nhân viên gồm các field

first name, last name và salary

LNAME, FNAME,SALARY (EMPLOYEE)

Trang 33

Phép toán quan hệ một ngôi

– Tính chất của phép toán Project:

• Phép tóa Project loại bỏ các bộ trùng lắp.

• Số bộ trong kết quả luôn <= số bộ trong R.

• Nếu danh sách các thuộc tính bao gồm khóa của R thì

số bộ trong kết quả luôn bằng với số bộ trong R

• <Điều kiện chọn>list1>(<Điều kiện chọn>list2>>(R)) = <Điều kiện chọn>list1> (R)

Trang 34

Phép toán quan hệ một ngôi

Ví dụ: xem thông tin của nhân viên làm việc ở phòng DNO=5, thông tin bao gồm first name, last name, và salary:

Cách 1:

FNAME, LNAME, SALAR)Y(R) DNO=5 (R)EMPLOYEE))

Cách 2:

R)ESULTFNAME, LNAME, SALAR)Y (R)DEP5_EMPS)

Trang 35

Phép toán quan hệ một ngôi

• Ví dụ:

Trang 36

Phép toán quan hệ một ngôi

• Sự tuần tự của các toán tử và toán tử rename

– Để áp dụng một loạt các phép toán đại số quan

hệ, có thể thực hiện một trong hai cách:

• Viết các phép toán thành một biểu thức đơn với các phép toán lòng nhau.

• Mỗi phép toán tạo một quan hệ kết quả trung gian, sử dụng phép toán Rename đặt tên cho quan hệ kết quả trung gian.

Trang 37

Phép toán quan hệ một ngôi

• Phép toán Rename :

– : kết quả là một quan hệ với tên là S dựa trên

quan hệ R với các cột là B1, B1, , Bn

– (B1, B2, …, Bn) (R): Một quan hệ mới với các cột là B1,

S (B1, B2, …, Bn) (R)

Trang 38

Các phép toán đại số quan hệ từ lý thuyết

của các thuộc tính tương ứng phải tương thích nhau

Trang 39

Các phép toán đại số quan hệ từ lý thuyết

tập hợp

• UNION R)S: Xác định một quan hệ chứa tất

cả các bộ thuộc R hoặc thuộc S hoặc thuộc cả

R và S, loại bỏ các bộ trùng nhau.

– Ví dụ:

Trang 40

Các phép toán đại số quan hệ từ lý thuyết

tập hợp

Ví dụ: Xem SSN của tất cả nhân viên hoặc là làm việc

ở phòng ban số 5 hoặc là giám sát của nhân viên làm

ở phòng ban 5

R)ESULT2(R)SSN) SUPER)SSN (R)DEP5_EMPS)

Trang 41

Các phép toán đại số quan hệ từ lý thuyết

tập hợp

R)ESULT1  R)ESULT2

Trang 42

Các phép toán đại số quan hệ từ lý thuyết

Trang 43

Các phép toán đại số quan hệ từ lý thuyết

tập hợp

Ví dụ: STUDENT  INTRUCTOR

STUDENT  INTRUCTOR

Trang 44

Các phép toán đại số quan hệ từ lý thuyết

Trang 45

Các phép toán đại số quan hệ từ lý thuyết

tập hợp

• Phép trừ (Set difference hoặc MINUS) R - S : Xác định một quan hệ chứa tất cả các bộ thuộc R nhưng không thuộc S

– Biểu thức:

– Ví dụ:

Trang 46

Các phép toán đại số quan hệ từ lý thuyết

tập hợp

Ví dụ: INSTRUCTOR - STUDENT

INSTRUCTOR - STUDENT

Trang 47

Các phép toán đại số quan hệ từ lý thuyết

tập hợp

– Hai toán hạng phải tương thích

– Phép toán MINUS không giao hoán : R – S ≠ S – R

STUDENT-INSTR)UCTOR)

INSTR)UCTOR)-STUDENT

Trang 48

Các phép toán đại số quan hệ từ lý thuyết

tập hợp

• Phép chia (DIVISION) R(Z) S(X)

– Với X Z, Y = Z - X (Z = X  Y);

– Y là tập thuộc tính thuộc R mà không thuộc S

– Kết quả của phép DIVISION là quan hệ T(Y) bao

tR[Y]=t, và tR [X] = ts với mọi bộ ts trong S

– Với một bộ t xuất hiện trong quan hệ kết quả T của phép chia, giá trị trong t phải xuất hiện trong R kết hợp với bộ trong S

Trang 49

Các phép toán đại số quan hệ từ lý thuyết

tập hợp

• Ví dụ:

Trang 50

Các phép toán đại số quan hệ từ tập

Trang 51

Các phép toán đại số quan hệ từ tập

kết hợp (Combined set)

• Example:

Trang 52

Các phép toán đại số quan hệ từ tập

kết hợp (Combined set)

• Phép JOIN : Kết hợp hai quan hệ R(A1, A2, ,

An) và S(B1, B2, , Bm) tạo một quan hệ mới.

Trang 53

Các phép toán đại số quan hệ từ tập

kết hợp (Combined set)

bằng

Ex:

Trang 54

Các phép toán đại số quan hệ từ tập

Trang 55

Các phép toán đại số quan hệ từ tập

kết hợp (Combined set)

Ví dụ:

Trang 56

Các phép toán đại số quan hệ từ tập

kết hợp (Combined set)

Example:

Trang 57

Các phép toán đại số quan hệ từ tập

kết hợp (Combined set)

field liên kết giữa hai quan hệ, những giá trị không

so trùng sẽ có giá trị null trong bảng còn lại Có 3 loại kết outer join

• Full outer join

• Left outer join

• Right outer join

Trang 58

Các phép toán đại số quan hệ từ tập

kết hợp (Combined set)

– Outer Join:

Trang 59

Các phép toán đại số quan hệ từ tập

kết hợp (Combined set)

– Outer Join

Trang 60

Các phép toán đại số quan hệ từ tập

kết hợp (Combined set)

– Outer Join:

Trang 61

Các phép toán đại số quan hệ từ tập

kết hợp (Combined set)

– Outer Join

Trang 62

Tập đầy đủ các phép toán quan hệ

• Tập các phép toán: select, project, union, set difference, và Cartesian product gọi là tập đầy

đủ tất cả các biểu thức đại số quan hệ đều được kết hợp bởi 5 phép toán này.

Ví dụ:

R)  S = (R)R)  S ) – (R)(R)R) - S)  (R)S - R)))

– R ⨝ <join condition>S =  <join condition> (R)R) X S)

Trang 63

Chức năng tổng hợp và Phân nhóm

• Một loại yêu cầu mà không thể thực hiện bằng các phép toán đại số quan hệ cơ bản là thực hiện các chức năng tổng hợp trên một tập giá trị từ CSDL.

• Các hàm tổng hợp được áp dụng cho một tập giá trị bao gồm: SUM, AVERAGE, MAXIMUM, MINIMUM, COUNT.

Trang 64

Chức năng tổng hợp và Phân nhóm

Ví dụ:

Trang 66

6.5 Additional Relational Operations

bình của từng phòng ban

Trang 67

Examples of Queries in Relational Algebra

• QUERY 1: Retrieve the name and address of all

employees who work for the 'Research' department.

RESEARCH_DEPT DNAME = ’Research’ (DEPARTMENT)

RESEARCH_EMPS (RESEARCH_DEPT ⨝ DNUMBER= DNOEMPLOYEE EMPLOYEE)

RESULT   FNAME, LNAME, ADDRESS (RESEARCH_EMPS)

Trang 68

Examples of Queries in Relational Algebra

• QUERY 2>: For every project located in

'Stafford', list the project number, the controlling department number, and the department manager's last name, address, and birth date.

STAFFORO_PROJS  PLOCATION=' STAFFORD' (PROJECT)

PROJ_DEPT_MGR (CONTR_DEPT NMGRSSN=SSN EMPLOYEE)

RESULT   PNUMBER, DNUM, LNAME, ADDRESS BDATE (PROJ_DEPT_MGR)

Ngày đăng: 11/05/2021, 01:29

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm