33
1 Chương 2 Chương 2 CÁC MÔ HÌNH DỮ LIỆU CÁC MÔ HÌNH DỮ LIỆU Quá trình thiết kế một cơ sở dữ liệu Quá trình thiết kế một cơ sở dữ liệu bắt đầu với một sự phân tích những thông tin bắt đầu với một sự phân tích những thông tin nào của thế giới thực cơ sở dữ liệu phải lưu nào của thế giới thực cơ sở dữ liệu phải lưu trữ và các mối quan hệ giữa các thành phần của trữ và các mối quan hệ giữa các thành phần của những thông tin này. Thông thường cấu trúc cơ những thông tin này. Thông thường cấu trúc cơ sở dữ liệu hay còn gọi là sơ đồ cơ sở dữ liệu sở dữ liệu hay còn gọi là sơ đồ cơ sở dữ liệu được đặc tả bởi một ngôn ngữ đặc biệt hay một được đặc tả bởi một ngôn ngữ đặc biệt hay một tập các ký hiệu thích hợp để biểu thị một thiết tập các ký hiệu thích hợp để biểu thị một thiết kế cơ sở dữ liệu. kế cơ sở dữ liệu. Mô hình dữ liệu là một hình thức toán Mô hình dữ liệu là một hình thức toán học với một tập các ký hiệu được mô tả dữ liệu học với một tập các ký hiệu được mô tả dữ liệu và một tập các phép toán được sử dụng để thao và một tập các phép toán được sử dụng để thao tác dữ liệu này. tác dữ liệu này.

Chương 2 CÁC MÔ HÌNH DỮ LIỆU

  • Upload
    ziva

  • View
    35

  • Download
    2

Embed Size (px)

DESCRIPTION

Chương 2 CÁC MÔ HÌNH DỮ LIỆU. - PowerPoint PPT Presentation

Citation preview

Page 1: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

11

Chương 2Chương 2

CÁC MÔ HÌNH DỮ LIỆUCÁC MÔ HÌNH DỮ LIỆU

Quá trình thiết kế một cơ sở dữ liệu bắt đầu với một Quá trình thiết kế một cơ sở dữ liệu bắt đầu với một

sự phân tích những thông tin nào của thế giới thực cơ sở dữ sự phân tích những thông tin nào của thế giới thực cơ sở dữ

liệu phải lưu trữ và các mối quan hệ giữa các thành phần của liệu phải lưu trữ và các mối quan hệ giữa các thành phần của

những thông tin này. Thông thường cấu trúc cơ sở dữ liệu hay những thông tin này. Thông thường cấu trúc cơ sở dữ liệu hay

còn gọi là sơ đồ cơ sở dữ liệu được đặc tả bởi một ngôn ngữ còn gọi là sơ đồ cơ sở dữ liệu được đặc tả bởi một ngôn ngữ

đặc biệt hay một tập các ký hiệu thích hợp để biểu thị một thiết đặc biệt hay một tập các ký hiệu thích hợp để biểu thị một thiết

kế cơ sở dữ liệu.kế cơ sở dữ liệu.

Mô hình dữ liệu là một hình thức toán học với một Mô hình dữ liệu là một hình thức toán học với một

tập các ký hiệu được mô tả dữ liệu và một tập các phép toán tập các ký hiệu được mô tả dữ liệu và một tập các phép toán

được sử dụng để thao tác dữ liệu này.được sử dụng để thao tác dữ liệu này.

Page 2: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

22

2.1. Mô hình thực thể liên kết (Mô hình ER)2.1. Mô hình thực thể liên kết (Mô hình ER)

Mô hình thực thể liên kết dựa trên cơ sở nhận thức của Mô hình thực thể liên kết dựa trên cơ sở nhận thức của

thế giới thực bao gồm tập các đối tượng cơ sở được gọi là các thế giới thực bao gồm tập các đối tượng cơ sở được gọi là các

thực thể và một tập các liên kết giữa các đối tượng này. Mô thực thể và một tập các liên kết giữa các đối tượng này. Mô

hình dữ liệu ER là một trong các mô hình dữ liệu ngữ nghĩa. hình dữ liệu ER là một trong các mô hình dữ liệu ngữ nghĩa.

Khía cạnh ngữ nghĩa của mô hình ở chổ cố gắng biểu diễn các Khía cạnh ngữ nghĩa của mô hình ở chổ cố gắng biểu diễn các

ngữ nghĩa của dữ liệu trong thế giới thực.ngữ nghĩa của dữ liệu trong thế giới thực.

2.1.1. Các khái niệm cơ sở2.1.1. Các khái niệm cơ sở

Có 3 ký hiệu cơ bản mà mô hình thực thể liên kết sử Có 3 ký hiệu cơ bản mà mô hình thực thể liên kết sử

dụng: Các tập thực thể, các tập liên kết và các thuộc tính.dụng: Các tập thực thể, các tập liên kết và các thuộc tính.

Page 3: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

33

a. Các tập thực thểa. Các tập thực thể

Một thực thể là một đối tượng cụ thể hay trừu tượng Một thực thể là một đối tượng cụ thể hay trừu tượng

trong thế giới thực mà nó tồn tại và có thể phân biệt được với trong thế giới thực mà nó tồn tại và có thể phân biệt được với

các đối tượng khác. Chẳng hạn như một sinh viên trong một các đối tượng khác. Chẳng hạn như một sinh viên trong một

lớp học là một thực thể. Một nhóm các thực thể giống nhau tạo lớp học là một thực thể. Một nhóm các thực thể giống nhau tạo

thành một tập thực thể. Ví dụ như tập thực thể sinh viên.thành một tập thực thể. Ví dụ như tập thực thể sinh viên.

b. Các thuộc tính và khoáb. Các thuộc tính và khoá

Các tập thực thể có các đặc tính được gọi là các thuộc Các tập thực thể có các đặc tính được gọi là các thuộc

tính. Mỗi thuộc tính có một miền giá trị.tính. Mỗi thuộc tính có một miền giá trị.

Page 4: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

44

Việc lựa chọn các thuộc tính thích đáng đối với các Việc lựa chọn các thuộc tính thích đáng đối với các

tập thực thể là một bước quan trọng trong việc thiết kế sơ đồ tập thực thể là một bước quan trọng trong việc thiết kế sơ đồ

cơ sở dữ liệu khái niệm.cơ sở dữ liệu khái niệm.

Mỗi thuộc tính hay một tập các thuộc tính mà giá trị Mỗi thuộc tính hay một tập các thuộc tính mà giá trị

của nó xác định duy nhất mỗi thực thể trong tập thực thể được của nó xác định duy nhất mỗi thực thể trong tập thực thể được

gọi là khoá đối với tập thực thể này.gọi là khoá đối với tập thực thể này.

Về nguyên tắc, mỗi tập thực thể có một khoá do Về nguyên tắc, mỗi tập thực thể có một khoá do

chúng ta giả định rằng mỗi thực thể là phân biệt với các thực chúng ta giả định rằng mỗi thực thể là phân biệt với các thực

thể khác.thể khác.

Page 5: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

55

c. Các liên kếtc. Các liên kết

Một liên kết là một sự kết hợp giữa một số thực thể. Một liên kết là một sự kết hợp giữa một số thực thể.

Chẳng hạn, có thể xác định một liên kết mà nó kết hợp một sinh Chẳng hạn, có thể xác định một liên kết mà nó kết hợp một sinh

viên A với một lớp B. Liên kết này nói rằng sinh viên A là một viên A với một lớp B. Liên kết này nói rằng sinh viên A là một

thành viên của lớp B. Một tập liên kết là một tập các liên kết thành viên của lớp B. Một tập liên kết là một tập các liên kết

cùng kiểu.cùng kiểu.

Một cách hình thức, một liên kết giữa các tập thực Một cách hình thức, một liên kết giữa các tập thực

thể là một danh sách có thứ tự các tập thực thể, một tập thực thể là một danh sách có thứ tự các tập thực thể, một tập thực

thể có thể xuất hiện nhiều hơn một lần trong danh sách.thể có thể xuất hiện nhiều hơn một lần trong danh sách.

Page 6: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

66

d. Các phân cấp “is-a”d. Các phân cấp “is-a”

Chúng ta nói A là-một B, nếu tập thực thể B thực sự là Chúng ta nói A là-một B, nếu tập thực thể B thực sự là

tổng quát hoá của tập thực thể A, hay nói một cách khác A là tổng quát hoá của tập thực thể A, hay nói một cách khác A là

một kiểu đặc biệt của B. Mục đích của các liên kết “là-một” giữa một kiểu đặc biệt của B. Mục đích của các liên kết “là-một” giữa

các tập thực thể A và B là như vậy A có thể kế thừa các thuộc các tập thực thể A và B là như vậy A có thể kế thừa các thuộc

tính của B, nhưng A cũng có thể bổ sung thêm một số thuộc tính của B, nhưng A cũng có thể bổ sung thêm một số thuộc

tính riêng mà B không có.tính riêng mà B không có.

Ví dụ 2.1.Ví dụ 2.1. Một trường Đại học có tập thực thể Sinh viên với các Một trường Đại học có tập thực thể Sinh viên với các

thuộc tính như Mã sinh viên, Tên sinh viên, quê quán. Nếu thuộc tính như Mã sinh viên, Tên sinh viên, quê quán. Nếu

chúng ta xét tập thực thể sinh viên Khoa CNT trong tập thực thể chúng ta xét tập thực thể sinh viên Khoa CNT trong tập thực thể

Sinh viên trên thì những sinh viên này có thêm các thuộc tính Sinh viên trên thì những sinh viên này có thêm các thuộc tính

Khả năng lập trình, Thiết kế Web…… Như vậy ta nói Sinh viên Khả năng lập trình, Thiết kế Web…… Như vậy ta nói Sinh viên

CNTT “là-một” Sinh viên.CNTT “là-một” Sinh viên.

Page 7: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

77

2.1.2. Sơ đồ thực thể liên kết (sơ đồ ER)2.1.2. Sơ đồ thực thể liên kết (sơ đồ ER)

Việc tóm tắt những thông tin cần lưu trữ trong một cơ Việc tóm tắt những thông tin cần lưu trữ trong một cơ

sở dữ liệu đối với một thiết kế sử dụng các sơ đồ ER là rất có sở dữ liệu đối với một thiết kế sử dụng các sơ đồ ER là rất có

ích. Trong sơ đồ ER, chúng ta sử dụng các ký hiệu sau để biểu ích. Trong sơ đồ ER, chúng ta sử dụng các ký hiệu sau để biểu

diễn các thành phần của sơ đồ:diễn các thành phần của sơ đồ:

Các hình chữ nhật biểu diễn các tập thực thể.Các hình chữ nhật biểu diễn các tập thực thể.

Các hình Oval biểu diễn các thuộc tính, chúng được Các hình Oval biểu diễn các thuộc tính, chúng được

nối đến với các tập thực thể bởi các cạnh không định hướng. nối đến với các tập thực thể bởi các cạnh không định hướng.

Có thể gạch chân đối với thuộc tính khoá của tập thực thể.Có thể gạch chân đối với thuộc tính khoá của tập thực thể.

Các hình thoi biểu diễn các liên kết. Chúng được nối Các hình thoi biểu diễn các liên kết. Chúng được nối

đến các tập thực thể bởi các cạnh có thể định hướng hoặc đến các tập thực thể bởi các cạnh có thể định hướng hoặc

không định hướng.không định hướng.

Page 8: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

88

2.1.3. Chức năng của các liên kết2.1.3. Chức năng của các liên kết

a. Liên kết một-mộta. Liên kết một-một

Có nghĩa là với mỗi thực thể trong tập thực thể này có Có nghĩa là với mỗi thực thể trong tập thực thể này có

nhiều nhất mỗi thực thể trong tập thực thể kia và ngược lại.nhiều nhất mỗi thực thể trong tập thực thể kia và ngược lại.

Page 9: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

99

b. Liên kết một-nhiềub. Liên kết một-nhiều

Trong liên kết một-nhiều, một thực thể trong tập thực Trong liên kết một-nhiều, một thực thể trong tập thực

thể E1 được kết hợp với không hoặc nhiều thực thể trong tập thể E1 được kết hợp với không hoặc nhiều thực thể trong tập

thực thể E2, nhưng một thực thể trong tập thực thể E2 liên kết thực thể E2, nhưng một thực thể trong tập thực thể E2 liên kết

với duy nhất với một thực thể trong tập thực thể E1. Liên kết với duy nhất với một thực thể trong tập thực thể E1. Liên kết

này được gọi là một-nhiều từ E1 đến E2.này được gọi là một-nhiều từ E1 đến E2.

Khái niệm liên kết một-nhiều có thể được tổng quát Khái niệm liên kết một-nhiều có thể được tổng quát

hoá thành các liên kết giữa nhiều hơn hai tập thực thể.hoá thành các liên kết giữa nhiều hơn hai tập thực thể.

Page 10: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

1010

Page 11: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

1111

c. Liên kết nhiều-nhiềuc. Liên kết nhiều-nhiều

Trong liên kết nhiều-nhiều, một thực thể trong tập thực Trong liên kết nhiều-nhiều, một thực thể trong tập thực

thể E1 được kết hợp với không hoặc nhiều thực thể trong tập thể E1 được kết hợp với không hoặc nhiều thực thể trong tập

thực thể E2 và ngược lại một thực thể trong tập thực thể E2 liên thực thể E2 và ngược lại một thực thể trong tập thực thể E2 liên

kết với không hoặc thực thể trong tập thực thể E1.kết với không hoặc thực thể trong tập thực thể E1.

Trong khi các liên kết nhiều-nhiều xuất hiện khá thường Trong khi các liên kết nhiều-nhiều xuất hiện khá thường

xuyên trong thực tế, chúng ta phải xem xét các liên kết này xuyên trong thực tế, chúng ta phải xem xét các liên kết này

được biểu thị như thế nào trong sơ đồ khái niệm của cơ sở dữ được biểu thị như thế nào trong sơ đồ khái niệm của cơ sở dữ

liệu thực sự. Nhiều mô hình dữ liệu không cho phép biểu thị liệu thực sự. Nhiều mô hình dữ liệu không cho phép biểu thị

trực tiếp các liên kết nhiều-nhiều, thay vào đó đòi hỏi chúng trực tiếp các liên kết nhiều-nhiều, thay vào đó đòi hỏi chúng

phải được biến đổi thành một số liên kết một-nhiều bởi một số phải được biến đổi thành một số liên kết một-nhiều bởi một số

kỹ thuật nào đó.kỹ thuật nào đó.

Page 12: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

1212

Ví dụ.Ví dụ. Một giáo viên có thể dạy cho nhiều trường và một trường Một giáo viên có thể dạy cho nhiều trường và một trường

có nhiều giáo viên tham gia giảng dạy. Đây là một mối quan có nhiều giáo viên tham gia giảng dạy. Đây là một mối quan

hệ nhiều-nhiều.hệ nhiều-nhiều.

Bảng Danhsachgv(Magv,ten)Bảng Danhsachgv(Magv,ten)

Bảng Danhsachtruong(Matruong, Tentruong)Bảng Danhsachtruong(Matruong, Tentruong)

Page 13: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

1313

Page 14: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

1414

d. Xác định kiểu liên kết trong các sơ đồ ERd. Xác định kiểu liên kết trong các sơ đồ ER

Nếu R là liên kết một-một giữa tập thực thể A và tập Nếu R là liên kết một-một giữa tập thực thể A và tập

thực thể B, chúng ta vẽ các mũi tên từ R đến cả A và B.thực thể B, chúng ta vẽ các mũi tên từ R đến cả A và B.

Nếu R là liên kết nhiều-nhiều giữa tập thực thể A và tập thực Nếu R là liên kết nhiều-nhiều giữa tập thực thể A và tập thực

thể B, chúng ta vẽ các cạnh không định hướng từ R đến cả A thể B, chúng ta vẽ các cạnh không định hướng từ R đến cả A

và B.và B.

Nếu R là liên kết một-nhiều giữa tập thực thể A và tập thực Nếu R là liên kết một-nhiều giữa tập thực thể A và tập thực

thể B, chúng ta vẽ mũi tên từ R đến A và cạnh không định thể B, chúng ta vẽ mũi tên từ R đến A và cạnh không định

hướng từ R đến B.hướng từ R đến B.

Page 15: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

1515

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

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

a. Quan hệa. Quan hệ

Định nghĩa 2.1.Định nghĩa 2.1. Cho D1, D2, ….,Dn là n miền giá trị, r là một Cho D1, D2, ….,Dn là n miền giá trị, r là một

quan hệ trên các miền D1, D2,….,Dn nếu r là một tập con nào quan hệ trên các miền D1, D2,….,Dn nếu r là một tập con nào

đó các n-bộ được sắp có dạng (d1, d2,….dn) sao cho di đó các n-bộ được sắp có dạng (d1, d2,….dn) sao cho di Di Di

với i = 1..n.với i = 1..n.

Định nghĩa 2.2.Định nghĩa 2.2. Cho U ={A1, A2,….An} là một tập hữu hạn các Cho U ={A1, A2,….An} là một tập hữu hạn các

thuộc tính. Với mỗi thuộc tính Ai có miền giá trị tương ứng là thuộc tính. Với mỗi thuộc tính Ai có miền giá trị tương ứng là

Dom(Ai). Khi đó, r là quan hệ xác định trên tập thuộc tính U Dom(Ai). Khi đó, r là quan hệ xác định trên tập thuộc tính U

nếu: r nếu: r Dom(A1) Dom(A1) Dom(A2) Dom(A2) ……. ……. Dom(An)Dom(An)

Page 16: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

1616

b. Khoá và siêu khoáb. Khoá và siêu khoá

Định nghĩa 2.3.Định nghĩa 2.3. Cho r xác định trên tập thuộc tính U với Cho r xác định trên tập thuộc tính U với UU ={A1, ={A1,

A2,….An}. Một tập con K A2,….An}. Một tập con K U được gọi là siêu khoá của quan U được gọi là siêu khoá của quan

hệ r nếu với bất kỳ hai bộ t1, t2 thuộc r, t1 hệ r nếu với bất kỳ hai bộ t1, t2 thuộc r, t1 t2, đều tồn tại một t2, đều tồn tại một

thuộc tính A thuộc K sao cho t1[A] thuộc tính A thuộc K sao cho t1[A] t2[A]. t2[A].

Theo định nghĩa, nếu K là siêu khoá của một quan hệ Theo định nghĩa, nếu K là siêu khoá của một quan hệ

thì không tồn tại hai bộ thuộc quan hệ khác nhau mà có giá trị thì không tồn tại hai bộ thuộc quan hệ khác nhau mà có giá trị

bằng nhau trên mọi thuộc tính của K. Do đó, giá trị của K xác bằng nhau trên mọi thuộc tính của K. Do đó, giá trị của K xác

định duy nhất một bộ của quan hệ.định duy nhất một bộ của quan hệ.

Page 17: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

1717

Định nghĩa 2.4.Định nghĩa 2.4. Cho r xác định trên tập thuộc tính U với Cho r xác định trên tập thuộc tính U với UU ={A1, ={A1,

A2,….An}. Một tập con K A2,….An}. Một tập con K U được gọi là khoá của quan hệ r U được gọi là khoá của quan hệ r

nếu K là siêu khoá của r và bất kỳ tập con thật sự K’ của K nếu K là siêu khoá của r và bất kỳ tập con thật sự K’ của K

không là siêu khoá.không là siêu khoá.

Trong một quan hệ có thể có nhiều khoá, người ta chọn Trong một quan hệ có thể có nhiều khoá, người ta chọn

một khoá làm khoá chính, các khoá khác được xem là khoá dự một khoá làm khoá chính, các khoá khác được xem là khoá dự

tuyển.tuyển.

Định nghĩa 2.5.Định nghĩa 2.5. Một tập con K Một tập con K U được gọi là khoá ngoài của U được gọi là khoá ngoài của

quan hệ r xác định trên tập thuộc tính U tham chiếu đến quan quan hệ r xác định trên tập thuộc tính U tham chiếu đến quan

hệ r’ nếu K là khoá chính của quan hệ r’.hệ r’ nếu K là khoá chính của quan hệ r’.

Page 18: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

1818

2.2.2. Biến đổi các sơ đồ ER sang mô hình quan hệ2.2.2. Biến đổi các sơ đồ ER sang mô hình quan hệ

a. Biến đổi các tập thực thểa. Biến đổi các tập thực thể

Một tập thực thể E được biến đổi thành một quan hệ Một tập thực thể E được biến đổi thành một quan hệ

mà sơ đồ quan hệ của nó bao gồm các thuộc tính của tập thực mà sơ đồ quan hệ của nó bao gồm các thuộc tính của tập thực

thể. Mỗi bộ của quan hệ biểu diễn một thực thể trong thể hiện thể. Mỗi bộ của quan hệ biểu diễn một thực thể trong thể hiện

hiện thời của E.hiện thời của E.

Nếu E là một tập thực thể mà các thực thể của nó Nếu E là một tập thực thể mà các thực thể của nó

xác định thông qua một liên kết với một tập thực thể F nào đó xác định thông qua một liên kết với một tập thực thể F nào đó

thì sơ đồ quan hệ tương ứng với E chỉ chứa các thuộc tính thì sơ đồ quan hệ tương ứng với E chỉ chứa các thuộc tính

trong khoá của F.trong khoá của F.

Page 19: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

1919

b. Biến đổi các liên kếtb. Biến đổi các liên kết

Một liên kết R giữa các tập thực thể E1, E2, ….Ek được Một liên kết R giữa các tập thực thể E1, E2, ….Ek được

biến đổi thành một quan hệ mà sơ đồ quan hệ của nó bao gồm biến đổi thành một quan hệ mà sơ đồ quan hệ của nó bao gồm

các thuộc tính trong khoá của mỗi E1, E2, ….Ek.các thuộc tính trong khoá của mỗi E1, E2, ….Ek.

c. Các khoá của các sơ đồ quan hệc. Các khoá của các sơ đồ quan hệ

Nếu một sơ đồ quan hệ được biến đổi từ một tập thực Nếu một sơ đồ quan hệ được biến đổi từ một tập thực

thể, khoá của tập thực thể chính là khoá của sơ đồ quan hệ.thể, khoá của tập thực thể chính là khoá của sơ đồ quan hệ.

Nếu một sơ đồ quan hệ được biến đổi từ một liên kết Nếu một sơ đồ quan hệ được biến đổi từ một liên kết

nhiều-nhiều thì khoá của sơ đồ quan hệ thường là tập tất cả các nhiều-nhiều thì khoá của sơ đồ quan hệ thường là tập tất cả các

thuộc tính.thuộc tính.

Page 20: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

2020

Nếu một sơ đồ quan hệ được biến đổi từ một liên kết Nếu một sơ đồ quan hệ được biến đổi từ một liên kết

một-một giữa hai tập thực thể E và F thì khoá của E và khoá của một-một giữa hai tập thực thể E và F thì khoá của E và khoá của

F cả hai đều là khoá của sơ đồ quan hệ biểu diễn liên kết này.F cả hai đều là khoá của sơ đồ quan hệ biểu diễn liên kết này.

Nếu một sơ đồ quan hệ được biến đổi từ một liên kết Nếu một sơ đồ quan hệ được biến đổi từ một liên kết

một-nhiều từ Ek vào Ek-1, ….E1 thì tập các thuộc tính là hợp của một-nhiều từ Ek vào Ek-1, ….E1 thì tập các thuộc tính là hợp của

các khoá của Ek-1, ….E1 thường là khoá của sơ đồ quan hệ này.các khoá của Ek-1, ….E1 thường là khoá của sơ đồ quan hệ này.

d. Các sơ đồ quan hệ với khoá chungd. Các sơ đồ quan hệ với khoá chung

Khi hai sơ đồ quan hệ có khoá chung chúng ta có thể tổ Khi hai sơ đồ quan hệ có khoá chung chúng ta có thể tổ

hợp các thuộc tính của hai sơ đồ quan hệ và thay thế hai sơ đồ hợp các thuộc tính của hai sơ đồ quan hệ và thay thế hai sơ đồ

quan hệ này bởi một sơ đồ quan hệ mới với tập thuộc tính là hợp quan hệ này bởi một sơ đồ quan hệ mới với tập thuộc tính là hợp

của hai tập thuộc tính của hai sơ đồ quan hệ ban đầu.của hai tập thuộc tính của hai sơ đồ quan hệ ban đầu.

Page 21: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

2121

2.3. Mô hình dữ liệu mạng2.3. Mô hình dữ liệu mạng

Mô hình dữ liệu mạng là một mô hình sơ đồ thực thể liên Mô hình dữ liệu mạng là một mô hình sơ đồ thực thể liên

kết với tất cả các liên kết được hạn chế là liên kết một-nhiều. Hạn kết với tất cả các liên kết được hạn chế là liên kết một-nhiều. Hạn

chế này cho phép chúng ta sử dụng đồ thị có hướng đơn giản để chế này cho phép chúng ta sử dụng đồ thị có hướng đơn giản để

biểu diễn dữ liệu trong mô hình này.biểu diễn dữ liệu trong mô hình này.

Trong mô hình mạng, các tập thực thể được chuyển Trong mô hình mạng, các tập thực thể được chuyển

thành các kiểu bản ghi logic. Các kiểu bản ghi logic bao gồm một thành các kiểu bản ghi logic. Các kiểu bản ghi logic bao gồm một

tập các trường, mỗi trường chứa giá trị là một số nguyên hay một tập các trường, mỗi trường chứa giá trị là một số nguyên hay một

xâu ký tự…Tập tên các trường và các kiểu của chúng cấu thành xâu ký tự…Tập tên các trường và các kiểu của chúng cấu thành

qui cách bản ghi logic.qui cách bản ghi logic.

Page 22: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

2222

2.3.1. Định danh bản ghi2.3.1. Định danh bản ghi

Có thể có một sự tương tự gần gũi giữa các thuật ngữ Có thể có một sự tương tự gần gũi giữa các thuật ngữ

của mô hình mạng và các thuật ngữ trong mô hình quan hệ như của mô hình mạng và các thuật ngữ trong mô hình quan hệ như

sau:sau:

Qui cách bản ghi logicQui cách bản ghi logic Sơ đồ quan hệSơ đồ quan hệ

Bản ghi logicBản ghi logic BộBộ

Kiểu bản ghiKiểu bản ghi Tên quan hệTên quan hệ

Page 23: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

2323

2.3.2. Các móc nối2.3.2. Các móc nối

Trong mô hình mạng, các liên kết hai ngôi một-nhiều Trong mô hình mạng, các liên kết hai ngôi một-nhiều

được gọi là các móc nối. Chúng ta vẽ một đồ thị có hướng được được gọi là các móc nối. Chúng ta vẽ một đồ thị có hướng được

gọi là một mạng mà thực chất là một sơ đồ thực thể liên kết đơn gọi là một mạng mà thực chất là một sơ đồ thực thể liên kết đơn

giản hoá để biểu diễn các kiểu bản ghi và các móc nối của chúng. giản hoá để biểu diễn các kiểu bản ghi và các móc nối của chúng.

Các nút tương ứng với các kiểu bản ghi, nếu có một móc nối giữa Các nút tương ứng với các kiểu bản ghi, nếu có một móc nối giữa

hai kiểu bản ghi T1 đến T2 và móc nối này là một-nhiều từ T1 đến hai kiểu bản ghi T1 đến T2 và móc nối này là một-nhiều từ T1 đến

T2 thì chúng ta vẽ một cung từ nút T2 đến T1 và nói rằng móc nối T2 thì chúng ta vẽ một cung từ nút T2 đến T1 và nói rằng móc nối

này từ T2 đến T1. Các nút và các cung được gán nhãn bởi tên này từ T2 đến T1. Các nút và các cung được gán nhãn bởi tên

của các kiểu bản ghi và tên của móc nối.của các kiểu bản ghi và tên của móc nối.

Page 24: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

2424

2.4. Mô hình dữ liệu phân cấp2.4. Mô hình dữ liệu phân cấp

Một mô hình phân cấp đơn giản là một mô hình mạng mà Một mô hình phân cấp đơn giản là một mô hình mạng mà

là một rừng (tập các cây) trong đó tất cả các móc nối trỏ theo là một rừng (tập các cây) trong đó tất cả các móc nối trỏ theo

hướng từ con đến cha.hướng từ con đến cha.

2.4.1. Thuật toán biến đổi mô hình mạng đơn giản2.4.1. Thuật toán biến đổi mô hình mạng đơn giản

Chúng ta bắt đầu tại một nút có nhiều móc nối đi vào và Chúng ta bắt đầu tại một nút có nhiều móc nối đi vào và

không có móc nối đi ra và đặt nó là gốc của cây. Chúng ta gắn không có móc nối đi ra và đặt nó là gốc của cây. Chúng ta gắn

vào cây mọi nút có thể gắn. Khi chúng ta không thể thêm một nút vào cây mọi nút có thể gắn. Khi chúng ta không thể thêm một nút

nào khác vào cây đó, ta sẽ bắt đầu với một cây khác, một nút cha nào khác vào cây đó, ta sẽ bắt đầu với một cây khác, một nút cha

chưa được gắn sẽ được chọn làm nút gốc và gắn mọi nút vào chưa được gắn sẽ được chọn làm nút gốc và gắn mọi nút vào

cây mà chúng ta có thể. Thực tế, mỗi nút có thể xuất hiện trong cây mà chúng ta có thể. Thực tế, mỗi nút có thể xuất hiện trong

rừng này một hay nhiều lần trên các cây khác nhau. Đến đây rừng này một hay nhiều lần trên các cây khác nhau. Đến đây

chúng ta đã có một mô hình phân cấp.chúng ta đã có một mô hình phân cấp.

Page 25: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

2525

2.4.2. Sự lặp lại các kiểu bản ghi2.4.2. Sự lặp lại các kiểu bản ghi

Chúng ta có thể thấy việc biến đổi mô hình mạng đôi Chúng ta có thể thấy việc biến đổi mô hình mạng đôi

khi có những bản ghi có thể xuất hiện nhiều hơn một lần. Sự lặp khi có những bản ghi có thể xuất hiện nhiều hơn một lần. Sự lặp

lại này gây ra một số vấn đề như sau:lại này gây ra một số vấn đề như sau:

Chúng ta lãng phí không gian bộ nhớ vì chúng ta phải Chúng ta lãng phí không gian bộ nhớ vì chúng ta phải

lưu trữ lặp lại dữ liệu trong các bản ghi này một số lần.lưu trữ lặp lại dữ liệu trong các bản ghi này một số lần.

Tính không nhất quán tiềm tàng có thể xuất hiện nếu Tính không nhất quán tiềm tàng có thể xuất hiện nếu

chúng ta thay đổi giá trị trong một bản sao nào đó của một bản chúng ta thay đổi giá trị trong một bản sao nào đó của một bản

ghi nhưng lại quên không thay đổi giá trị của bản sao khác.ghi nhưng lại quên không thay đổi giá trị của bản sao khác.

Việc khắc phục phục và tránh những vấn đề nảy sinh ở Việc khắc phục phục và tránh những vấn đề nảy sinh ở

trên mà nguyên nhân chính là sự lưu trữ lặp lại một số dữ liệu trên mà nguyên nhân chính là sự lưu trữ lặp lại một số dữ liệu

trong cơ sở dữ liệu là một mục tiêu quan trọng của vấn đề thiết kế trong cơ sở dữ liệu là một mục tiêu quan trọng của vấn đề thiết kế

cơ sở dữ liệu.cơ sở dữ liệu.

Page 26: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

2626

2.5. Mô hình dữ liệu hướng đối tượng2.5. Mô hình dữ liệu hướng đối tượng

Hiện nay, có một số lớn các đề nghị và một số cài đặt của Hiện nay, có một số lớn các đề nghị và một số cài đặt của

các mô hình dữ liệu có khả năng nắm bắt bản chất của các ngôn các mô hình dữ liệu có khả năng nắm bắt bản chất của các ngôn

ngữ truy vấn hướng đối tượng. Các mô hình này được lấy các ngữ truy vấn hướng đối tượng. Các mô hình này được lấy các

tên gọi khác nhau như mô hình dữ liệu ngữ nghĩa, mô hình dữ tên gọi khác nhau như mô hình dữ liệu ngữ nghĩa, mô hình dữ

liệu chức năng. Đặc điểm chung của các mô hình này là chúng liệu chức năng. Đặc điểm chung của các mô hình này là chúng

hỗ trợ:hỗ trợ:

Định danh đối tượng. Định danh đối tượng.

Các đối tượng phức tạp Các đối tượng phức tạp

Sự phân cấp kiểu. Sự phân cấp kiểu.

Page 27: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

2727

2.5.1. Cấu trúc đối tượng2.5.1. Cấu trúc đối tượng

Tập các cấu trúc đối tượng có thể định nghĩa trong mô Tập các cấu trúc đối tượng có thể định nghĩa trong mô

hình của chúng ta là rất gần với tập các sơ đồ có thể của các cơ hình của chúng ta là rất gần với tập các sơ đồ có thể của các cơ

sở dữ liệu trong mô hình phân cấp. Chúng ta có thể định nghĩa sở dữ liệu trong mô hình phân cấp. Chúng ta có thể định nghĩa

một tập các kiểu đối tượng cho phép cùng với sự cài đặt vật lý dự một tập các kiểu đối tượng cho phép cùng với sự cài đặt vật lý dự

định của chúng một cách đệ qui như sau:định của chúng một cách đệ qui như sau:

Kiểu dữ liệu nguyên tố, có nghĩa là số nguyên, số thực Kiểu dữ liệu nguyên tố, có nghĩa là số nguyên, số thực

hay chuỗi ký tự có độ dài cố định hay độ dài thay đổi, là một kiểu hay chuỗi ký tự có độ dài cố định hay độ dài thay đổi, là một kiểu

đối tượng.đối tượng.

Page 28: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

2828

Nếu T là một kiểu đối tượng thì SETOF(T) cũng là một Nếu T là một kiểu đối tượng thì SETOF(T) cũng là một

kiểu đối tượng. Một đối tượng có kiểu là SETOF(T) là một tập kiểu đối tượng. Một đối tượng có kiểu là SETOF(T) là một tập

hợp các đối tượng có kiểu T. Do vậy, SETOF(T) còn được gọi là hợp các đối tượng có kiểu T. Do vậy, SETOF(T) còn được gọi là

kiểu tập.kiểu tập.

Nếu T1, T2…., Tk là các kiểu đối tượng thì Nếu T1, T2…., Tk là các kiểu đối tượng thì

TUPLEOF(T1, T2, ..Tk) là một kiểu đối tượng. Một kiểu đối tượng TUPLEOF(T1, T2, ..Tk) là một kiểu đối tượng. Một kiểu đối tượng

này là một k-bộ, trong đó thành phần thứ i của k-bộ có kiểu Ti. Do này là một k-bộ, trong đó thành phần thứ i của k-bộ có kiểu Ti. Do

vậy, TUPLEOF(T1, T2, ..Tk) còn được gọi là kiểu bộ.vậy, TUPLEOF(T1, T2, ..Tk) còn được gọi là kiểu bộ.

Page 29: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

2929

2.5.2. Các lớp và các phương thức2.5.2. Các lớp và các phương thức

Một mô hình dữ liệu hướng đối tượng không bị hạn chế Một mô hình dữ liệu hướng đối tượng không bị hạn chế

đối với ký hiệu của kiểu đối tượng. Ký hiệu cơ sở thực sự là lớp đối với ký hiệu của kiểu đối tượng. Ký hiệu cơ sở thực sự là lớp

mà nó là một kiểu đối tượng và một tập các phương thức hay các mà nó là một kiểu đối tượng và một tập các phương thức hay các

thao tác được thực hiện trên các đối tượng với cấu trúc đối tượng thao tác được thực hiện trên các đối tượng với cấu trúc đối tượng

của lớp này.của lớp này.

2.5.3. Sự phân cấp lớp2.5.3. Sự phân cấp lớp

Một thành phần chủ yếu khác trong mô hình dữ liệu Một thành phần chủ yếu khác trong mô hình dữ liệu

hướng đối tượng là ký hiệu của các lớp con và sự phân cấp giữa hướng đối tượng là ký hiệu của các lớp con và sự phân cấp giữa

các lớp, một sự hình thức hoá của các liê kết “là-một”.các lớp, một sự hình thức hoá của các liê kết “là-một”.

Page 30: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

3030

Giả sử chúng ta có một lớp C và chúng ta muốn định Giả sử chúng ta có một lớp C và chúng ta muốn định

nghĩa một lớp con D. Chúng ta bắt đầu với cùng cấu trúc đối nghĩa một lớp con D. Chúng ta bắt đầu với cùng cấu trúc đối

tượng với lớp con D như đối với lớp C và với cùng tập các tượng với lớp con D như đối với lớp C và với cùng tập các

phương thức đối với lớp con D như đối với lớp C. Sau đó chúng phương thức đối với lớp con D như đối với lớp C. Sau đó chúng

ta có thể thay đổi lớp C như sau:ta có thể thay đổi lớp C như sau:

Nếu cấu trúc đối với lớp C là một kiểu bộ có dạng: Nếu cấu trúc đối với lớp C là một kiểu bộ có dạng:

TUPLEOF(T1, T2, ..Tk) thì chúng ta có thể thêm một số thuộc TUPLEOF(T1, T2, ..Tk) thì chúng ta có thể thêm một số thuộc

tính đối với cấu trúc bộ này đặc trưng riêng cho các đối tượng tính đối với cấu trúc bộ này đặc trưng riêng cho các đối tượng

thuộc lớp con D.thuộc lớp con D.

Chúng ta có thể tạo các phương thức mới mà chỉ áp Chúng ta có thể tạo các phương thức mới mà chỉ áp

dụng đối với lớp con D.dụng đối với lớp con D.

Chúng ta có thể định nghĩa lại các phương thức của Chúng ta có thể định nghĩa lại các phương thức của

lớp C để nó có một ý nghĩa mới đối với lớp con D.lớp C để nó có một ý nghĩa mới đối với lớp con D.

Page 31: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

3131

2.6. Thiết kế cơ sở dữ liệu2.6. Thiết kế cơ sở dữ liệu

Một CSDL được thiết kế tốt cho phép người sử dụng truy Một CSDL được thiết kế tốt cho phép người sử dụng truy

cập nhanh chóng đến những thông tin cần tham khảo, giúp tiết kiệm cập nhanh chóng đến những thông tin cần tham khảo, giúp tiết kiệm

được thời gian truy xuất thông tin. Một CSDL thiết kế tốt giúp người được thời gian truy xuất thông tin. Một CSDL thiết kế tốt giúp người

sử dụng rút ra được những kết quả nhanh chóng và chính xác hơn.sử dụng rút ra được những kết quả nhanh chóng và chính xác hơn.

Khi bắt tay thiết kế CSDL, chúng ta phải xác định và phân Khi bắt tay thiết kế CSDL, chúng ta phải xác định và phân

tích các thông tin muốn lưu trữ thành các đối tượng riêng rẽ, sau đó tích các thông tin muốn lưu trữ thành các đối tượng riêng rẽ, sau đó

báo cho Hệ QTCSDL biết các đối tượng đó liên quan với nhau như báo cho Hệ QTCSDL biết các đối tượng đó liên quan với nhau như

thế nào. Dựa vào các quan hệ đó mà Hệ QTCSDL có thể liên kết thế nào. Dựa vào các quan hệ đó mà Hệ QTCSDL có thể liên kết

các đối tượng và rút ra các số liệu tổng hợp cần thiết.các đối tượng và rút ra các số liệu tổng hợp cần thiết.

Page 32: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

3232

CÁC BƯỚC THIẾT KẾ CSDLCÁC BƯỚC THIẾT KẾ CSDL

Bước 1:Bước 1: Xác định mục tiêu khai thác CSDL. Xác định mục tiêu khai thác CSDL.

Bước 2:Bước 2: Xác định các bảng dữ liệu cần thiết. Mỗi đối tượng Xác định các bảng dữ liệu cần thiết. Mỗi đối tượng

thông tin sẽ hình thành một bảng trong CSDL của chúng ta.thông tin sẽ hình thành một bảng trong CSDL của chúng ta.

Bước 3:Bước 3: Sau khi đã xác định xong các bảng cần thiết, tiếp đến Sau khi đã xác định xong các bảng cần thiết, tiếp đến

ta phải chỉ rõ thông tin nào cần quản lý trong mỗi bảng, đó là ta phải chỉ rõ thông tin nào cần quản lý trong mỗi bảng, đó là

xác định các trường. Mỗi loại thông tin trong bảng gọi là xác định các trường. Mỗi loại thông tin trong bảng gọi là

trường.trường.

Page 33: Chương 2 CÁC MÔ HÌNH DỮ LIỆU

3333

Bước 4:Bước 4: Xác định các mối quan hệ giữa các bảng. Xác định các mối quan hệ giữa các bảng.

Bước 5:Bước 5: Tinh chế, hiệu chỉnh lại thiết kế. Phân tích lại thiết kế Tinh chế, hiệu chỉnh lại thiết kế. Phân tích lại thiết kế

ban đầu để tim lỗi, tạo bảng dữ liệu và nhập vào vài bản ghi, ban đầu để tim lỗi, tạo bảng dữ liệu và nhập vào vài bản ghi,

thử xem CSDL đó phản ánh thế nào với những yêu cầu truy thử xem CSDL đó phản ánh thế nào với những yêu cầu truy

xuất của chúng ta, có rút được kết quả đúng từ những bảng dữ xuất của chúng ta, có rút được kết quả đúng từ những bảng dữ

liệu đó không. Thực hiện các chỉnh sửa thiết kế nếu thấy cần liệu đó không. Thực hiện các chỉnh sửa thiết kế nếu thấy cần

thiết.thiết.