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

Tài liệu Chương III: DATABASE(P2) pdf

34 277 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Mô hình Cơ Sở Dữ Liệu Quan Hệ
Trường học Trường Đại học Bách Khoa Hà Nội
Chuyên ngành Kỹ Thuật Phần Mềm
Thể loại Tài liệu giảng dạy
Thành phố Hà Nội
Định dạng
Số trang 34
Dung lượng 216,5 KB

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

Nội dung

x Dn được gọi là quan hệ n-ngôi  Các thành phần của các bộ trong quan hệ gọi là các thuộc tính attributes  Sự khác nhau giữa miền và thuộc tính:  Một thuộc tính biểu thị cách sử dụ

Trang 1

KỸ THUẬT PHẦN MỀM

Chương III: DATABASE

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

Khoa Điện tử Viễn Thông – Bộ môn Điện tử Tin học

Trang 3

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

Khái niệm toán học của mô hình quan hệ:

hiểu theo nghĩa lý thuyết tập hợp, đó là tập con của tích

Đề-Các của các miền

Miền (domain) là một tập các giá trị

Ví dụ của miền:

tập các số nguyên

tập các xâu ký tự tạo thành tên các tỉnh, thành phố ở Việt Nam có

độ dài không quá 30 ký tự

tập hai giá trị {True, False}

Trang 4

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

Trang 5

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

Một tập con của tích Đề-Các của một hoặc nhiều miền

Như vậy, mỗi quan hệ có thể là vô hạn

ở đây luôn luôn giả thiết rằng, quan hệ là một tập hữu hạn

Quan hệ là tập con của tích Đề-Các D1 x D2 x x Dn được

gọi là quan hệ n-ngôi

Các thành phần của các bộ trong quan hệ gọi là các thuộc

tính (attributes)

Sự khác nhau giữa miền và thuộc tính:

Một thuộc tính biểu thị cách sử dụng một miền trong một quan hệ

Trang 6

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

Quan hệ được định nghĩa một cách hình thức như sau:

Gọi R = {A1, A2, , An} là tập hữu hạn của các thuộc tính, mỗi thuộc tính Ai với i = 1, 2, , n có miền giá trị tương ứng là dom(Ai) (các miền không nhất thiết là phải khác nhau)

Quan hệ r trên tập thuộc tính R = {A1, A2, , An} là tập con của tích Đề - Các được biểu diễn như sau:

r dom (A1) x dom (A2) x dom (An)

Ví dụ: Hình 3.6, ba quan hệ được gọi là S, P, SP

Quan hệ P là quan hệ 5-ngôi được định nghĩa trên 5 miền:

P#, PNAME, COLOR, WEIGHT, CITY

Ví dụ, miền COLOR là tập của tất cả các màu sắc hợp lệ của các mặt hàng

Ta có p1 = (P1, Nut, Red, 12, London) là một bộ (tuple, row) của

Trang 7

Hình 3.6 Dữ liệu mẫu trong dạng quan hệ.

S S# SNAME STATUS CITY

CITY

P1 Nut Red 12 London

P2 Bolt Green 17 Paris

P3 Screw Blue 17 Rome

SP S# P# QT

Y S1 P1 300 S1 P2 200 S1 P3 400 S2 P1 300 S2 P2 400 S3 P2 200

Trang 8

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

2 Miền và thuộc tính.

Cần phân biệt rõ sự khác nhau giữa miền và các

thuộc tính - hay còn gọi là các cột - được rút ra từ miền này

Một thuộc tính biểu thị sự sử dụng một miền trong

một quan hệ (các thành phần của các bộ trong quan

hệ gọi là các thuộc tính)

Để nhấn mạnh sự khác nhau này, chúng ta có thể

đặt tên cho thuộc tính khác với tên của miền đã cho,

ví dụ như trên Hình 2.1

Trang 9

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

Ví dụ: Hình 3.7, Khai báo lược đồ mẫu

DOMAIN PARTNO CHARACTER (6)

DOMAIN PARTNAME CHARACTER (20)

DOMAIN COLOR CHARACTER (6)

DOMAIN WEIGHT NUMERIC (4)

DOMAIN ADDRESS CHARACTER (15)

RELATION

PART (P# PNAME DOMAIN DOMAIN PARTNO PARTNAME

COLOR DOMAIN COLOR

WEIGHT DOMAIN WEIGHT

CITY DOMAIN ADDRESS)

Trang 10

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

 Hình 3.7 là một phần của lược đồ khái niệm,

trong đó có:

 Năm miền (P#, PNAME, COLOR, WEIGHT, CITY)

 Một quan hệ (PART) đã được khai báo

 Quan hệ PART này được định nghĩa với năm thuộc tính:

Trang 11

 Để thuận tiện, người ta thường bỏ qua phần khai báo tên miền ("DOMAIN name") khi khai báo thuộc tính nếu tên thuộc tính giống tên miền

 Tuy nhiên, không phải luôn có thể đặt tên thuộc tính trùng với tên miền

Hình 3.8 Quan hệ COMPONENT

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

Trang 12

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

 Trong ví dụ này, chúng ta có một quan hệ với ba thuộc tính nhưng chỉ có hai miền khác nhau

 ý nghĩa của một bộ (tuple) trong quan hệ COMPONENT là một mặt hàng chính (MAJOR_P#) có kèm theo mặt hàng phụ (MINOR_P#) và

số lượng các mặt hàng phụ này (QUANTITY)

 Ví dụ này cũng minh hoạ một sự thuận tiện thông thường khác:

 Cách tạo tên thuộc tính khác nhau bằng cách đặt phần tiền tố (MAJOR, MINOR) trước tên miền chung (P#) để phân biệt vai trò của các thuộc

tính có cùng chung một miền (P#)

Trang 13

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

 Khái niệm "chuẩn hoá":

 Mô hình quan hệ chỉ chấp nhận duy nhất các quan hệ

thoả mãn điều kiện “Mọi giá trị trong quan hệ - nghĩa

là tất cả các giá trị của các thuộc tính trong tất cả các

bộ - đều phải là nguyên tố (atomic) (nghĩa là không

chia nhỏ được nữa)”

 Nói một cách khác, tại mỗi vị trí cắt nhau của một hàng

và một cột trong bảng tồn tại đúng một giá trị và không

bao giờ là một tập các giá trị.

Quan hệ thoả mãn điều kiện trên được gọi là “đã được

chuẩn hoá”

Trang 14

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

Ví dụ:

Trang 15

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

 Luôn có thể chuyển một quan hệ chưa chuẩn hoá sang

dạng chuẩn hoá tương đương

 Quan hệ BEFORE (hình 2.3) được định nghĩa trên các miền:

 S# (Supplier number: số hiệu hãng cung cấp) và

 PQ (Part-Quantity: mặt hàng - số lượng)

 Các phần tử của PQ chính là các quan hệ được định nghĩa trên các miền:

 P# (số hiệu mặt hàng) và

 QTY (Quantity: số lượng hàng)

 ⇒ do đó, quan hệ BEFORE là chưa được chuẩn hoá

 Quan hệ AFTER là quan hệ tương đương đã được chuẩn hoá

 Về mặt toán học: BEFORE là quan hệ hai ngôi nhưng không phải tất cả các

miền đều là đơn giản (Miền đơn giản là miền mà trong đó tất cả các phần tử

là nguyên tố)

 AFTER là quan hệ ba ngôi tương đương về mặt ngữ nghĩa với quan hệ BEFORE nhưng tất cả các miền của các thuộc tính của nó đều là đơn giản.

Trang 16

3.2.2 Khoá

1 Khoá chính (Primary key).

2 Khóa ứng cử (Candidate key).

3 Khóa ngoại lai (Foreign key).

4 Khóa phụ (Sub-Key).

Trang 17

3.2.2 Khóa

Khóa chính là một thuộc tính hoặc một kết hợp tối

thiểu các thuộc tính cho phép ta nhận diện duy nhất một thực thể riêng biệt nào đó.

Tính “nhận diện duy nhất”:

• Trong một quan hệ đã cho luôn có một thuộc tính hoặc một kết hợp các thuộc tính với các giá trị cho phép nhận dạng duy nhất các

bộ của quan hệ này.

• Trong lược đồ quan hệ có thể có rất nhiều khoá

• Việc tìm tất cả các khoá của lược đồ quan hệ là rất khó khăn

Tính “tối thiểu”:

 Không phải thường xuyên cần đến tất cả các thuộc tính.

Trang 18

3.2.2 Khóa

2 Khoá ứng cử (Candidate key)

 Khóa ứng cử là thuộc tính hoặc kết hợp các thuộc tính có tính chất như khóa chính.

 Đôi khi có thể gặp một quan hệ trong đó có hơn một kết hợp các thuộc tính có khả năng nhận diện duy nhất và tối thiểu như khóa chính

⇒ do đó có hơn một khoá ứng cử (candidate key)

Trang 19

Ví dụ: Giả thiết, tên hãng cung cấp là duy nhất

=> Khóa ứng cử: S#; SNAME

3.2.2 Khóa

Trang 20

3.2.2 Khóa

3 Khoá ngoại lai (Foreign key)

Một thuộc tính của quan hệ R1 được gọi là một khoá ngoại lai nếu

nó không phải là khoá chính của quan hệ R1 nhưng các giá trị của nó là các giá trị của khoá chính trong một quan hệ R2 nào đó

Các khoá chính và khoá ngoại lai cho ta các phương tiện để biểu

diễn các liên kết giữa các bộ.

Tuy nhiên, cần lưu ý là không phải tất cả các thuộc tính có thể biểu

diễn các liên kết như vậy đều là khoá

Trang 21

3.2.2 Khóa

4 Khoá phụ (Secondary key)

 Dùng để xắp sếp hoặc tìm kiếm

Lưu ý: khi sử dụng một ngôn ngữ con dữ liệu dạng

quan hệ không nên giới hạn việc truy nhập vào một

quan hệ là "chỉ có thể thông qua khoá chính"

Trang 22

3.2.2 Khóa

 Theo lý thuyết quan hệ, khoá (key) của một quan hệ r trên tập thuộc tính R = {A1, , An} là tập con K ⊆ {A1

An} thoả mãn các tính chất sau đây:

 Với bất kỳ hai bộ t1, t2 ∈ r đều tồn tại một hoặc một kết hợp các thuộc tính A ∈ K sao cho t1(A) ≠ t2(A)

 Điều kiện này có thể viết t1(K) ≠ t2(K) Do vậy mỗi giá trị của K là xác định duy nhất

 Để có thể định nghĩa khoá một cách tốt hơn, lưu ý rằng, nếu K' là khoá của quan hệ r(A1, , An) thì K' ⊆ K ⊆ R,

K cũng là khoá của r, nghĩa là với bất kỳ t1, t2 ∈ r với t1

Trang 23

3.2.2 Khóa

 Lưu ý:nếu K' là khoá của quan hệ r(A1, , An) thì K' ⊆ K

⊆ R, K cũng là khoá của quan hệ r Để đảm bảo tính

không dư thừa của khoá chính ta có định nghĩa sau về

khoá chính:

 Khoá chính của quan hệ r trên tập thuộc tính R = {A1, , An} là tập con K ⊆ R sao cho bất kỳ hai bộ khác nhau t1, t2 ∈ r luôn thoả t1(K) ≠ t2(K) và bất kỳ tập con thực sự K' ⊂ K nào đó đều không có tính chất đó a r, nghĩa là với bất kỳ t1, t2 ∈ r với t1

(K') ≠ t2 (K') luôn có t1 (K) ≠ t2 (K)

Trang 24

 Nhất thiết phải chỉ rõ đặc điểm "thay đổi theo thời gian"

để cho phép thực hiện các phép toán chèn (insert), xoá

(delete) và cập nhật (update) các bộ của quan hệ.

Trang 25

3.2.3 Kết luận

Lược đồ khái niệm

Trang 26

3.2.3 Kết luận

Trang 27

3.2.3 Kết luận

 Theo các khái niệm truyền thống, một quan hệ tạo nên

một file, một bộ tạo nên một bản ghi (thể hiện chứ không phải là kiểu) và một thuộc tính tạo nên một trường (kiểu chứ không phải thể hiện)

• Nói một cách khác, các quan hệ có thể được coi như các file mang tính quy tắc cao (highly disciplined files)

 Tính quy tắc này dẫn đến sự đơn giản hoá mong muốn cho các cấu trúc

dữ liệu liên quan đến người sử dụng và do đó dẫn đến sự đơn giản hoá

tương ứng trong các phép toán cần thiết để thao tác dữ liệu

Trang 28

3.2.4 Các phép toán trên CSDL quan hệ

 Chèn (insert)

 Loại bỏ (delete)

 Thay đổi (change)

 Trong mô hình CSDL quan hệ được nêu trên, các phép toán này được áp dụng cho từng bộ của các quan hệ lưu trữ trong

máy

Trang 29

3.2.4 Các phép toán trên CSDL quan hệ

 Trong đó: - Ai với i = 1, , n là tên các thuộc tính và

di với di ∈ dom(Ai) là các giá trị thuộc miền trị tương ứng của thuộc tính Ai

 Ví dụ:

 Để thêm một bộ t4 = (S4, Clark, 20, London) vào quan hệ S trong hình 1.2 ta làm như sau:

Trang 30

3.2.4 Các phép toán trên CSDL quan hệ

 Nếu xem thứ tự các trường là cố định, khi đó có thể biểu diễn phép chèn dưới dạng không tường minh như sau:

 Bộ mới cần thêm vào không phù hợp với lược đồ quan hệ đã cho

 Một số giá trị của một số thuộc tính nằm ngoài miền giá trị của thuộc tính đó

 Giá trị khoá của bộ mới có thể là giá trị đã có trong quan hệ đang lưu trữ

Trang 31

3.2.4 Các phép toán trên CSDL quan hệ

2 Phép loại bỏ (DEL)

 Phép loại bỏ (DEL) là phép xoá một bộ ra khỏi một

quan hệ cho trước

 Giống như phép chèn, phép loại bỏ có dạng:

Trang 32

3.2.4 Các phép toán trên CSDL quan hệ

 Tuy nhiên, không phải lúc nào phép loại bỏ cũng cần đầy đủ tất cả các loại thông tin của bộ cần loại bỏ

 Nếu có giá trị về bộ đó tại các thuộc tính khoá K = {B1, B2, , Bj} thì phép loại bỏ chỉ cần viết:

DEL (r; B1 = f1, B2 = f2, , Bi = fj)

 Ví dụ, trong phép loại bỏ nêu trên, vì (S#, P#) là khoá của quan hệ SP nên ta chỉ cần viết:

DEL (SP; S# = S3, P# = P2)

Trang 33

3.2.4 Các phép toán trên CSDL quan hệ

3 Phép thay đổi (CHANGE hoặc UPDATE)

 Trong thực tế không phải lúc nào cũng chỉ dùng phép

chèn hoặc loại bỏ đi một bộ mà nhiều khi chỉ cần sửa đổi một số giá trị nào đó tại một số thuộc tính, lúc đó cần thiết phải sử dụng phép thay đổi ("Change" hay viết tắt là CH)

 Gọi tập {C1, , Cp} ⊆ {A1, , An} là tập các thuộc

tính mà tại đó các giá trị của bộ cần thay đổi, khi đó phép thay đổi có dạng:

r = r \ t ∪ t'

 Hay ta có thể biểu diễn chi tiết phép loại bỏ như sau:

Trang 34

3.2.4 Các phép toán trên CSDL quan hệ

 Nếu K = {B1, , Bm} là khoá của quan hệ, khi đó chỉ cần viết:

CH (r; B1 = f1, B2 = f2, , Bm = fm; C1 = e1, C2 = e2, , Cp = ep)

 Ví dụ: Cần thay đổi địa chỉ hãng cung cấp S1 từ

London thành Amsterdam trong quan hệ S Khi đó

phép thay đổi có dạng như sau:

Ngày đăng: 23/12/2013, 03:15

HÌNH ẢNH LIÊN QUAN

Hình 3.6 Dữ liệu mẫu trong dạng quan hệ. - Tài liệu Chương III: DATABASE(P2) pdf
Hình 3.6 Dữ liệu mẫu trong dạng quan hệ (Trang 7)
Hình 3.8  Quan hệ COMPONENT - Tài liệu Chương III: DATABASE(P2) pdf
Hình 3.8 Quan hệ COMPONENT (Trang 11)

TỪ KHÓA LIÊN QUAN

w