1. Trang chủ
  2. » Tất cả

chuong-5-dai-so-quan-he

51 16 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 51
Dung lượng 1,11 MB

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

Nội dung

Ngôn ngữ quan hệ  Ngôn ngữ phi thủ tục non-procedural language cho phép người dùng chỉ ra cái what họ muốn mà không cần chỉ ra cách thực hiện như thế nào how để được kết quả đó • SQL l

Trang 1

Chương 3

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

Trang 3

Ngôn ngữ quan hệ

 Ngôn ngữ phi thủ tục (non-procedural

language) cho phép người dùng chỉ ra cái (what) họ muốn mà không cần chỉ ra cách thực hiện như thế nào (how) để được kết quả đó

• SQL là ngôn ngữ phi thủ tục

 Đại số quan hệ là một ngôn ngữ thủ tục

mức cao (high-level procedure language) cho phép DBMS tạo 1 quan hệ mới

Trang 4

Đại số quan hệ (Relational Algebra)

 Đại số quan hệ là ngôn ngữ tập hợp (set language) bao gồm các toán tử (operator) thao tác trên 1 hay nhiều quan hệ để tạo

ra 1 quan hệ khác mà không làm thay đổi các quan hệ ban đầu.

 Các toán hạng và kết quả đều là quan hệ

 Kết quả của 1 phép toán có thể trở thành toán hạng cho 1 phép toán khác  tính

bao đóng (closure)

Trang 5

Đại số quan hệ và SQL

các toán tử của đại số quan hệ Kết quả của query cũng là 1 quan hệ

Trang 6

Đại số quan hệ và SQL

query của họ

query, dịch nó thành 1 biểu thức của đại số quan hệ, đơn giản hơn nhưng

ít hiệu quả hơn về giải thuật Query optimizer biến đổi biểu thức đại số

này thành 1 biểu thức tương đương nhưng ít tốn thời gian thực thi hơn 

Trang 7

SQL query

Relational algebra Expression

Query Execution Plan

Executable Code

Parser

Query Optimizer

Code generator

Trang 9

3 phép toán suy dẫn (Derived operator)

của các phép toán cơ bản

• Intersection

• Division

Trang 10

5 phép toán cơ bản

quan hệ r trên lược đồ quan hệ R và điều kiện F

giá trị true/false, nó bao gồm:

• Các toán hạng là hằng hoặc tên thuộc

tính

• Các phép toán so sánh =, ≠ , <, ≤,>, ≥

• Các phép toán luận lý not (¬ ), and ( ∧ ),

or ( ∨ )

Trang 11

Phép chọn (selection)

hệ bao gồm các bộ của r thỏa mãn

Trang 12

Ví dụ

Trang 13

Selection

Trang 14

Phép chiếu (Projection)

và tập con các thuộc tính X={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

cho kết quả là 1 quan hệ

Trang 16

Phép tích Descartes

A2, ,Am) và s trên lược đồ S(B1,B2,

Trang 17

Ví dụ

PRODUCT x STORE

Trang 18

Phép tích Descartes

 Nếu các quan hệ có tên trùng nhau ?

 Hướng giải quyết:

• Đặt tên quan hệ trước thuộc tính bị trùng tên

STUDENT Id Name PROFESSOR Id DeptId

Trang 19

Phép tích Descartes

• Đặt tên quan hệ trước thuộc tính bị trùng

Trang 21

Union

Trang 22

Intersect(giao)

Trang 23

 Cho quan hệ r trên R, quan hệ s trên S

Gọi T = R ∪ S, các thuộc tính của R khác với các thuộc tính của S, θ là 1 phép so

sánh A ∈ R và B ∈ S là 2 thuộc tính có thể

so sánh với nhau bởi phép θ

 Phép kết θ của r và s trên 2 thuộc tính A

và B, cho kết quả là 1 quan hệ q trên lược

đồ quan hệ T bao gồm các bộ t

Q(T) = {t | ∃ tr ∈ r và ts ∈ s với t[R] = tr

và t[S] = ts và t[A] θ t[B] }

Trang 25

Ví dụ

Trang 26

Ví dụ

Trang 28

Ví dụ

học mùa thu 2007 (semester

=‘F2007’)

ΠName(PROFESSOR Id=ProfId σSemester=‘F2007’

(TEACHING))

Trang 29

Ví dụ

môn học được dạy trong mùa thu

2007

(TEACHING))

Trang 30

 Phép kết bằng của r và s trên các thuộc

tính A1, A2,…, Ak và B1, B2,… Bk cho kêt quả là 1 quan hệ trên T bao gồm các bộ:

 Q(T) = {t | ∃ tr ∈ r và ts ∈ s với t[R] = tr

và t[S] = ts và t[Ai] = t[Bi],

Trang 32

Phép kết tự nhiên

(Natural join)

s cho kết quả là 1 quan hệ q trên

gồm các bộ t như sau:

Trang 33

Phép kết tự nhiên

(Natural join)

thức R.A1 = S.A1, R.A2 = S.A2,…,

sẽ là tích Descartes

sinh viên đã từng học 1 môn học

cùng với Id của giáo sư

Trang 34

= TEACHING.Semester

điều kiện ngầm định của kết tự nhiên

Trang 35

So sánh phép kết tự nhiên

và kết bằng

StudId, CrsCode, Semester, Grade,

TEACHING.Semester, Grade, ProfId

 Không hoàn toàn giống nhau

Trang 36

Nếu muốn tìm sinh viên đăng ký học

Trang 38

Phép kết ngoài (Outer join)

hiện trong kết quả của phép kết cho

dù chúng kết được với các bộ của

quan hệ khác hay không

Trang 39

Phép kết ngoài (Outer join)

là 1 quan hệ q trên T bao gồm:

Trang 41

quan hệ bao gồm các bộ của r mà

Trang 42

Phép chia (Division)

 Phép kết tuy là phép suy diễn nhưng đặc biệt thông dụng được dùng để trả lời query

 Phép chia cũng là phép toán đặc biệt do

rất khó hiểu và sử dụng đúng

 Xét các query sau:

• Tên môn học nào mà tất cả các giáo sư của

khoa CS (computer Science) đều dạy?

• Tìm tất cả các sinh viên đã học tất cả các môn

học được dạy bởi các giáo sư của khoa CS?

 Cần tìm ra các bộ của 1 quan hệ khớp

(match) với tất cả các bộ của 1 quan hệ

Trang 43

Phép chia (Division)

An,B1, , Bm) và s trên S(B1,…,Bm)

hệ q trên T (A1, …, An) bao gồm các

bộ <a> sao cho đối với mỗi bộ <b> của s , thì bộ <a,b> thuộc r

Trang 44

A B

-b -a -b -c -a -b -c

-a B _a _b _c

Trang 45

Ví dụ phép chia

101 555

CrsCode CS305

783 009 121 555 101 900 101

M123 M123 EE101 CS305 CS315 MA23 CS305

Kết quả của PROFCOURSES/PROFCS

Môn học mà tất cả giáo sư CS đều dạy

Trang 47

Hệ quản trị cơ sở dữ liệu(Database Management System – DBMS)

 Các quy tắc cơ bản: để đánh giá 1 hệ thống

có phải là 1 DBMS quan hệ hay không?

Một hệ thống được xem là 1 DBMS quan hệ nếu hệ thống này có thể quản lý toàn bộ DB thông qua các khả năng quan hệ

rule)

Nếu 1 hệ thống quan hệ có ngôn ngữ mức thấp, thì các ràng buộc toàn vẹn trong ngôn ngữ quan hệ mức cao phải được kiểm tra ở mức thấp

tin

Trang 48

Hệ quản trị cơ sở dữ liệu(Database Management System – DBMS)

 Các quy tắc cấu trúc (structural rules)

 Quy tắc 1 – Biểu diễn thông tin

( information representation)

Tất cả thông tin trong CSDL quan hệ phải

được biểu diễn rõ ràng ở mức luận lý và

theo một cách duy nhất thông qua các giá trị trong các bảng

 Quy tắc 6 – Cập nhật view

Tất cả các view có thể được cập nhật về mặt

lý thuyết thì chúng cũng có thể được cập nhật bởi hệ thống

Trang 49

Hệ quản trị cơ sở dữ liệu(Database Management System – DBMS)

 Các quy tắc toàn vẹn (integrity rules)

• Quy tắc 3 – Xử lý ngữ nghĩa của các giá trị null

Các giá trị null được dùng để biểu diễn thông tin

bị thiếu và thông tin không có theo cùng một cách thống nhất, độc lập với kiểu dữ liệu

• Quy tắc 10 – Độc lập toàn vẹn

Các ràng buộc toàn vẹn trong 1 CSDL riêng biệt phải được định nghĩa bởi 1 ngôn ngữ con dữ liệu quan hệ và được lưu trữ trong danh mục

mà không phải trong các chương trình ứng

dụng

Trang 50

Hệ quản trị cơ sở dữ liệu(Database Management System – DBMS)

• Quy tắc 2 – Truy xuất được bảo đảm

• Quy tắc 4 – Danh mục trực tuyến động

dựa trên mô hình quan hệ

• Quy tắc 5 – Ngôn ngữ con dữ liệu thông

minh

• Quy tắc 7 – Thêm vào, cập nhật, xóa bỏ

ở mức cao

Ngày đăng: 21/05/2017, 23:56

w