Download as pdf or txt
Download as pdf or txt
You are on page 1of 84

LỜI MỞ ĐẦU

Cơ sở dữ liệu là linh hồn của hệ thống thông tin. Cơ sở dữ liệu chiếm tới 70% linh hồn
của một hệ thống máy tính. Một chương trình tốt nếu không có một cơ sở dữ liệu tốt sẽ không
phát huy được tối đa vai trò và khả năng của nó trong hệ thống. Từ khi ra đời cho đến nay, cơ
sở dữ liệu đã trải qua nhiều giai đoạn phát triển với thăng trầm khác nhau. Từ những năm 70
của thế kỉ XX, cơ sở dữ liệu quan hệ ra đời đánh dấu thời kỳ phát triển đỉnh cao và nhiều hệ
quản trị ra đời phục vụ cho mô hình cơ sở dữ liệu này.
Tuy nhiên ngày nay với sự tiến bộ của kỹ thuật, nhiều ứng dụng mới của cơ sở dữ liệu
cũng đang được phát triển mạnh mẽ. Lúc này, cơ sở dữ liệu quan hệ đôi khi không còn phù
hợp với những yêu cầu của hệ thống và sự phát triển mở rộng của hệ thống. Vì thế, nhu cầu
cần phải có cơ sở dữ liệu mới hơn, hợp thời hơn và phục vụ cho nhiều mục đích lưu trữ và
quản trị khác nhau của hệ thống thông tin hay hệ thống phân tán. Do đó, vào những năm 90
của thế kỉ XX khi có sự bùng nổ của mạng Internet và lập trình hướng đối tượng, cơ sở dữ
liệu phân tán, cơ sở dữ liệu hướng đối tượng đã ra đời và ngày càng được sử dụng rộng rãi
trong thời đại cách mạng công nghệ 4.0 đang bùng nổ như hiện nay.
Bải giảng Cơ sở dữ liệu nâng cao nhằm trang bị cho sinh viên những kiến thức cơ bản
về cơ sở dữ liệu phân tán và hướng đối tượng, mô hình cơ sở dữ liệu ER và những thao tác kỹ
năng giúp sinh viên làm việc tốt hơn với hệ quản trị cơ sở dữ liệu SQL Server. Bài giảng bao
gồm 3 chương:
Chương I: Mô hình cơ sở dữ liệu
Chương II: Cơ sở dữ liệu phân tán (Distributed Database)
Chương III: Cơ sở dữ liệu hướng đối tượng (Oriented Object Database)

1
MỤC LỤC
LỜI MỞ ĐẦU ......................................................................................................................................1

MỤC LỤC ............................................................................................................................................2

CHƯƠNG 1 ..........................................................................................................................................5

MÔ HÌNH CƠ SỞ DỮ LIỆU ...............................................................................................................5

1.1 Khái niệm mô hình cơ sở dữ liệu ................................................................................5

1.2 Các loại mô hình cơ sở dữ liệu........................................................................................5

1.2.1 Mô hình phân cấp (Hierarchical Models) .................................................................8

1.2.2 Mô hình mạng (Network Model) ..............................................................................8

1.2.3 Mô hình quan hệ (Ralationship Model) ....................................................................9

1.2.4 Mô hình thực thể liên kết (ER – Entity Relationship Model) ................................10

1.2.5 Mô hình hướng đối tượng (OO – Object Oriented Model) ....................................11

1.3 Mô hình cơ sở dữ liệu thực thể - liên kết ......................................................................12

1.3.1 Các thành phần cơ bản của mô hình ER .................................................................12

1.3.2 Thiết kế mô hình ER ...............................................................................................21

1.5 Chuyển mô hình ER sang mô hình quan hệ ..................................................................24

CHƯƠNG 2 ........................................................................................................................................27

CƠ SỞ DỮ LIỆU PHÂN TÁN ..........................................................................................................27

2.1. Khái niệm cơ sở dữ liệu phân tán.................................................................................27

2.3 Đặc điểm của cơ sở dữ liệu phân tán ............................................................................28

2.4 Ưu điểm của cơ sở dữ liệu phân tán..............................................................................31

2.5 Cấu trúc của một cơ sở dữ liệu phân tán .......................................................................32

2.6 Hệ quản trị cơ sở dữ liệu phân tán ................................................................................35

2.7 Tính trong suốt phân tán ...............................................................................................38

2.7.1 Trong suốt phân đoạn .............................................................................................38

2
2.7.2 Trong suốt vị trí ......................................................................................................39

2.7.3 Sự trong suốt ánh xạ địa phương ............................................................................40

2.8 Thiết kế cơ sở dữ liệu phân tán ....................................................................................40

2.8.1 Các bước thiết kế cơ sở dữ liệu phân tán ................................................................40

2.8.2 Công việc cần làm khi thiết kế hệ thống phân tán ..................................................41

2.8.3 Các chiến lược phân tán dữ liệu .............................................................................41

2.8.4 Các chiến lược thiết kế ...........................................................................................42

2.8.5 Mục tiêu thiết kế cơ sở dữ liệu phân tán .................................................................45

2.8.6 Thiết kế phân đoạn..................................................................................................46

2.8.7 Định vị và nhân bản dữ liệu ....................................................................................52

CHƯƠNG 3 ........................................................................................................................................61

CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG ........................................................................................61

3.1 Nhu cầu về hệ thống cơ sở dữ liệu hướng.....................................................................61

3.2 Khái niệm về hướng đối tượng .....................................................................................64

3.3 Cơ sở dữ liệu hướng đối tượng .....................................................................................67

3.2.1 Các nguyên lý áp dụng cho cơ sở dữ liệu hướng đối tượng .................................68

3.2.2 Hệ quản trị cơ sở dữ liệu hướng đối tượng ...........................................................70

3.4 Ưu điểm của cơ sở dữ liệu hướng đối tượng ...............................................................72

3.5 Thiết kế cơ sở dữ liệu hướng đối tượng ........................................................................73

3.6 Phân tích, thiết kế cơ sở dữ liệu hướng đối tượng với UML ......................................75

3.6.1 Thiết kế mô hình khái niệm – Biểu đồ lớp .............................................................75

3.6.2 Thiết kế sơ đồ cơ sở dữ liệu chuẩn .........................................................................77

3.7 Tính chất của cơ sở dữ liệu hướng đối tượng ...............................................................79

3.8 Xây dựng CSDL hướng đối tượng ...............................................................................80

3
3.9 Chuyển đổi cơ sở dữ liệu quan hệ sang cơ sở dữ liệu đối tượng ..................................81

3.6.1 Ánh xạ từ UML sang ERM ....................................................................................82

3.6.2 Ánh xạ từ ERM sang UML ....................................................................................83

4
CHƯƠNG 1
MÔ HÌNH CƠ SỞ DỮ LIỆU
1.1 Khái niệm mô hình cơ sở dữ liệu
Các loại cấu trúc cơ sở dữ liệu và mối liên hệ giữa chúng đóng vai trò rất lớn trong việc
xác định tính hiệu quả của hệ quản trị cơ sở dữ liệu. Vì vậy, thiết kế cơ sở dữ liệu trở thành
hoạt động chính trong môi trường cơ sở dữ liệu.
Việc thiết kế cơ sở dữ liệu được thực hiện đơn giản hơn nhiều khi ta sử dụng các mô
hình. Các mô hình là sự trừu tượng đơn giản của các sự kiện trong thế giới thực. Các trừu
tượng như vậy cho phép khảo sát các đặc điểm của các thực thể và mối liên hệ được tạo ra
giữa các thực thể đó. Việc thiết kế các mô hình tốt sẽ đưa ra các cơ sở dữ liệu tốt, và trên cơ
sở đó có các ứng dụng tốt nhất. Ngược lại, mô hình không tốt sẽ đưa đến thiết kế cơ sở dữ
liệu tồi từ đó đến các ứng dụng không đúng.
Một mô hình cơ sở dữ liệu là một tập hợp các khái niệm dùng để biểu diễn các cấu trúc
của cơ sở dữ liệu. Cấu trúc của một cơ sở dữ liệu là các kiểu dữ liệu, các mối liên kết và các
ràng buộc phải tuân theo trên các dữ liệu. Nhiều mô hình còn có thêm một tập hợp các phép
toán cơ bản để đặc tả các thao tác trên cơ sở dữ liệu. Mô hình cơ sở dữ liệu sẽ làm nền tảng
cho cấu trúc của một cơ sở dữ liệu, nghĩa là liên quan đến phương pháp tổ chức dữ liệu trong
một cơ sở dữ liệu khái niệm hoặc liên quan đến cấu trúc logic của dữ liệu trong một cơ sở dữ
liệu. Trong đó, những mô hình cơ sở dữ liệu này thường thông qua mô hình dữ liệu phân cấp,
mô hình mạng, và cơ sở dữ liệu quan hệ.
1.2 Các loại mô hình cơ sở dữ liệu
Có thể phân loại các mô hình dữ liệu dựa trên khái niệm mà chúng sử dụng để mô tả các
cấu trúc cơ sở dữ liệu. Các mô hình dữ liệu bậc cao hoặc mô hình dữ liệu mức quan niệm
cung cấp các khái niệm gắn liền với cách cảm nhận dữ liệu của nhiều người sử dụng. Các mô
hình này tập trung vào bản chất logic cảu biểu diễn dữ liệu, nó quan tâm đến nội dung được
biểu diễn bên trong cơ sở dữ liệu chú không phải cách biểu dữ liệu. Mô hình ER sử dụng các
khái niệm thực thể, thuộc tính, mối liên kết để diễn đạt các đối tượng thế giới thực là một mô
hình dữ liệu bậc cao. Một mô hình dữ liệu bậc cao khác là mô hình dữ liệu hướng đối tượng.
Nó sử dụng các khái niệm như lớp, thừa kế, phương thức, thông điệp, ….

5
Các mô hình dữ liệu bậc thấp hoặc mô hình dữ liệu vật lý cung cấp các khái niệm mô tả
chi tiết về việc các dữ liệu được lưu trữ trong máy tính như thế nào. Các mô hình dữ liệu vật
lý mô tả cách lưu trữ dữ liệu trong máy tính, giới thiệu các thông tin như khuôn dạng bản ghi,
sắp xếp bản ghi, đường truy cập …. Các khái niệm do mô hình dữ liệu vật lý cung cấp nói
chung có ý nghĩa đối với các chuyên gia máy tính chứ không có ý nghĩa đối với người sử
dụng dữ liệu thông thường.
Giữa hai loại mô hình này là lớp các mô hình dữ liệu thể hiện, chúng cung cấp những
khái niệm mà người sử dụng có thể hiểu được. Mô hình dữ liệu thể hiện còn được gọi là mô
hình dữ liệu mức logic. Các mô hình dữ liệu thể hiện che dấu một số chi tiết về việc lưu trữ
dữ liệu, nhưng có thể được cài đặt trực tiếp trên hệ thống máy tính. Các mô hình dữ liệu thể
hiện là các mô hình được sử dụng thường xuyên nhất trong các hệ cơ sở dữ liệu thương mại.
Ba mô hình nổi tiếng thuộc loại này là mô hình quan hệ, mô hình mạng và mô hình phân cấp.
Các mô hình mạng và phân cấp ra đời trước và được sử dụng rộng rãi trước năm 1970. Vào
những năm 70 của thế kỷ 20, mô hình dữ liệu quan hệ ra đời, do tính ưu việt của nó, mô hình
quan hệ dần dần thay thế các mô hình mạng và phân cấp.
Sử dụng mô hình bậc cao trong thiết kế cơ sở dữ liệu:

6
Hình 1-1 Sử dụng mô hình bậc cao trong thiết kế CSDL
Bước đầu tiên là tập hợp các yêu cầu và phân tích. Trong bước này, người thiết kế
cơ sở dữ liệu phỏng vấn những người sử dụng cơ sở dữ liệu để hiểu và làm tài liệu về các
yêu cầu về dữ liệu của họ. Kết quả của bước này là một tập hợp ghi chép súc tích về các yêu
cầu của những người sử dụng. Những yêu cầu sẽ được đặc tả càng đầy đủ và chi tiết càng
tốt. Song song với việc đặc tả các yêu cầu dữ liệu, cần phải đặc tả các yêu cầu về chức năng
của ứng dụng: đó là các thao tác do người sử dụng định nghĩa sẽ được áp dụng đối với cơ sở
dữ liệu.
Mỗi khi tất cả các yêu cầu đã được thu thập và phân tích, bước tiếp theo là tạo ra lược
đồ quan niệm cho cơ sở dữ liệu bằng cách sử dụng mô hình dữ liệu quan niệm mức cao.
Bước này gọi là thiết kế quan niệm. Lược đồ quan niệm là một mô tả súc tích về các yêu cầu
dữ liệu của những người sử dụng. Nó bao gồm các mô tả chi tiết của các kiểu thực thể, kiểu
liên kết và các ràng buộc, chúng được biểu diễn bằng các khái niệm do các mô hình dữ liệu
bậc cao cung cấp. Vì những khái niệm này không chứa các chi tiết cài đặt, chúng thường dễ
hiểu và có thể sử dụng chúng để giao lưu với những người sử dụng. Lược đồ quan niệm
mức cao cũng có thể được sử dụng như một dẫn chứng để đảm bảo rằng tất cả các đòi hỏi
của người sử dụng đều thỏa mãn và các đòi hỏi này không chứa các mâu thuẫn. Giải pháp
này cho phép những người thiết kế cơ sở dữ liệu tập trung vào việc đặc tả các tính chất của
dữ liệu mà không cần quan tâm đến các chi tiết lưu trữ. Một thiết kế cơ sở dữ liệu quan niệm
tốt sẽ làm dễ cho công việc của những người thiết kế cơ sở dữ liệu.
Trong quá trình (hoặc sau khi) thiết kế lược đồ quan niệm, chúng ta có thể sử dụng các
phép toán cơ bản của mô hình dữ liệu để đặc tả các thao tác của người sử dụng được xác
định trong khi phân tích chức năng. Điều đó cũng giúp khẳng định rằng lược đồ quan niệm
thỏa mãn mọi yêu cầu chức năng được xác định. Nếu có một số yêu cầu chức năng không thể
nêu ra được trong lược đồ ban đầu thì ở bước này có thể có sự sửa đổi lược đồ quan niệm cho
phù hợp.
Bước tiếp theo trong việc thiết kế cơ sở dữ liệu là việc cài đặt một cơ sở dữ liệu bằng
cách sử dụng một hệ quản trị cơ sở dữ liệu có sẵn. Hầu hết các hệ quản trị cơ sở dữ liệu sử
dụng một mô hình dữ liệu cài đặt (thể hiện), chẳng hạn như mô hình quan hệ hoặc đối tượng,
vì vậy lược đồ quan niệm được chuyển từ mô hình dữ liệu bậc cao thành mô hình dữ liệu cài
7
đặt. Bước này gọi là thiết kế logic hoặc là ánh xạ mô hình dữ liệu. Kết quả của bước này là
một lược đồ cơ sở dữ liệu dưới dạng một mô hình dữ liệu cài đặt của hệ quản trị cơ sở dữ
liệu.
Bước cuối cùng trong thiết kế cơ sở dữ liệu là thiết kế vật lý. Trong bước này ta phải
chỉ ra các cấu trúc bên trong, các đường dẫn truy cập, tổ chức tệp cho các tệp cơ sở dữ liệu.
Song song với các hoạt động đó, các chương trình ứng dụng cũng được thiết kế và cài đặt
như là các giao tác (transaction) cơ sở dữ liệu tương ứng với các đặc tả giao tác mức cao.
1.2.1 Mô hình phân cấp (Hierarchical Models)
Mô hình phân cấp là sự kết hợp của nhiều cấp độ cơ bản có liên quan. Trong thực tế, nó
là một cây theo thứ tự. Mô hình phân cấp lưu trữ dữ liệu bằng các cấp độ giống như mỗi bộ
phận phù hợp với cấu trúc của một cây như rễ, cành và lá.

Hình 1-2 Dữ liệu biểu diễn dưới dạng phân cấp


Một cơ sở dữ liệu phân cấp là một tập các cây. Trong mỗi cây chỉ chứa một và chỉ môt
xuất hiện của bản ghi gốc, gọi là bản ghi đỉnh, và dưới nó là tập các xuất hiện của các bản ghi
phụ thuộc.
1.2.2 Mô hình mạng (Network Model)
Mô hình mạng là sự tập hợp các cấp độ cơ bản đã được kết nối, là mô hình thực thể
quan hệ, trong đó các mối liên kết bị hạn chế trong kiểu một – một và nhiều – một. Trong mô
hình mạng, dữ liệu được biểu diễn trong các bản ghi liên kết với nhau bằng các mối nối liên
kết tạo thành một đồ thị có hướng. Cơ sở dữ liệu mạng có cấu trúc tổng quát hơn so với cấu
trúc phân cấp. Mỗi một xuất hiện của bản ghi có thể có rất nhiều xuất hiện kiểu bản ghi trên

8
nó và các xuất hiện bản ghi dưới nó. Ngoài các kiểu bản ghi biểu diễn dữ liệu còn có kiểu bản
ghi các phần tử kết nối, biểu diễn sự kết hợp giữa các biểu diễn cơ sở dữ liệu. Cho phép mô
hình hóa tương ứng nhiều – nhiều.

Hình 1-3 Mô hình mạng


Loại cấu trúc này có thể được xem như là loại cấu trúc phân cấp có nhiều mạng kết nối.
Mô hình giúp tiết kiệm được thời gian tìm kiếm, nhưng mối quan hệ giữa các dữ liệu lại phức
tạp, còn cấu trúc thì không thể nhìn thấy một cách rõ ràng. Trong mô hình mạng và mô hình
phân cấp, việc truy cập tuyến dữ liệu một cách cẩn thận là rất cần thiết. Một khi nó đã được
xác định thì tuyến dữ liệu không thể thay đổi được. Kết quả hiện hữu của các mối quan hệ
phức hợp trong thực tế giữa các dữ liệu thường là không thể mô tả chúng bằng một mô hình
mạng hay một mô hình phân cấp cố định. Vì vậy, khái niệm của một mô hình quan hệ đã
được hình thành.
1.2.3 Mô hình quan hệ (Ralationship Model)
Mô hình quan hệ liên quan đến sự tập hợp nhiều mối quan hệ hiện hữu giữa các dữ liệu.
Mô hình quan hệ sử dụng một tập hợp các bảng để biểu diễn cả dữ liệu lẫn mối liên hệ giữa
những dữ liệu này. Mỗi bảng có nhiều cột và mỗi cột có một tên duy nhất. Mỗi bảng đều chứa
các mẫu tin cùng kiểu. Mỗi mẩu tin định nghĩa một số trường hay thuộc tính nhất định, các
cột của bảng tương ứng với các thuộc tính của kiểu mẫu tin.

9
Bảng 1.1 Thông tin về các loại cáp lắp đặt trên tuyến cáp

Bảng 1.2 Danh mục các loại cáp

Bảng 1.3 Thông tin về các tuyến cáp


Mỗi một mối quan hệ tương đương với một “bảng hai chiều”. Vậy tính đơn giản trong
cấu trúc là một đặc điểm chính của mô hình quan hệ, nó có thể mô tả cấu trúc dữ liệu của mô
hình mạng hay một số mô hình phân cấp bằng một loạt các mối quan hệ có cấu trúc đơn giản.
Thuận lợi của mô hình quan hệ là được hình thức hóa toán học chặt chẽ, do đó các xử lý, thao
tác với dữ liệu dễ dàng, có tính độc lập dữ liệu cao. Cấu trúc dữ liệu đơn giản mềm dẻo trong
xử lý và dễ dàng cho người sử dụng. Đặc biệt các phép tính cập nhật dữ liệu cho mô hình
quan hệ nói chung là ít phức tạp hơn nhiều so với các mô hình khác.
1.2.4 Mô hình thực thể liên kết (ER – Entity Relationship Model)
Mô hình thực thể liên kết dựa trên quan niệm về thế giới thực bao gồm các đối tượng
được gọi là các thực thể (entity) và mối quan hệ giữa chúng. “Thực thể” là một vật hoặc một

10
đối tượng trong thế giới thực mà ta có thể phân biệt được chúng với nhau. Các thực thể được
mô tả trong cơ sở dữ liệu bởi một tập các thuộc tính (Attributes hay Features).
Mô hình quan hệ thực thể luôn luôn khống chế nội dung trong cơ sở dữ liệu làm cho cơ
sở dữ liệu luôn luôn nhất quán. Điểm mạnh nhất của nó là khả năng hỗ trợ thiết kế và tổ chức
thông tin cũng như tính tương thích lớn của nó đối với mô hình dữ liệu quan hệ. Ngoài các
thực thể và mối liên hệ, mô hình này cũng biểu diễn một số ràng buộc mà nội dung của một
cơ sở dữ liệu phải tuân thủ. Một ràng buộc quan trọng là lượng ánh xạ biểu diễn số lượng các
thực thể mà một thực thể bên kia có thể được kết hợp thông qua một tập các mối quan hệ.

Hình 1-4 Mô hình hóa thực thể theo điểm quản lý

Hình 1-5 Mô hình thực thể quan hệ theo quan điểm nghề nghiệp công việc
1.2.5 Mô hình hướng đối tượng (OO – Object Oriented Model)
Mô hình hướng đối tượng dựa trên cơ sở các gói dữ liệu và mã liên quan tới đối tượng.
Mọi sự tương tác của người sử dụng với các đối tượng được quản lý này đều thông qua các
thông điệp, hoặc sự tương tác giữa đối tượng này với đối tượng khác đều phải thông qua
thông điệp. Đối tượng bao giờ cũng có mã thao tác, những mã này được gọi là những phương
pháp. Những đối tượng có chung kiểu giá trị và cùng phương pháp thì được gộp vào một lớp.
11
Thực thể là một vật thực hay một đối tượng tồn tại một cách khách quan, chúng ta có thể
phân biệt chúng nhờ chỉ số của chúng trong máy tính. Nếu các thực thể không có chỉ số thứ tự
tự nhiên thì chúng ta phải tạo ra các chỉ số cho chúng. Thuộc tính hay còn gọi là tính chất của
các thực thể được biểu thị trong các trường (cột) của bảng. Giữa các thực thể có các mối quan
hệ với nhau. Các quan hệ giữa các thực thể có thể là 1 – 1, 1 – nhiều, và nhiều – nhiều.
1.3 Mô hình cơ sở dữ liệu thực thể - liên kết
Mô hình ER (Entity – Relationship Model) là mô hình dữ liệu mức quan niệm, nó tập
trung vào việc mô tả các cấu trúc dữ liệu và các ràng buộc, ánh xạ và những tác động qua lại
của thế giới thực phức tạp được mô tả bằng các khái niệm lược đồ. Từ sơ đồ mô hình thực thể
liên kết ta có thể chuyển thành lược đồ khái niệm mô hình cơ sở dữ liệu quan hệ. Mô hình ER
là một mô tả logic chi tiết dữ liệu của một tổ chức hay một lĩnh vực nghiệp vụ. Nó giúp người
thiết kế cơ sở dữ liệu mô tả thế giới thực gần gũi với quan niệm và cách nhìn nhận bình
thường của con người. Nó là công cụ để phân tích thông tin nghiệp vụ. Mô hình ER được sử
dụng với mục đích sau:
- Làm thống nhất quan điểm về dữ liệu của những người tham gia hệ thống: người quản
trị, người dùng cuối, người thiết kế hệ thống.
- Xác định về xử lý dữ liệu cũng như các ràng buộc trên các dữ liệu
- Giúp đỡ việc thể hiện cơ sở dữ liệu về mặt cấu trúc: Sử dụng thực thể và các mối liên
kết giữa các thực thể. Biểu diễn mô hình quan hệ thực thể bằng một sơ đồ.
1.3.1 Các thành phần cơ bản của mô hình ER
Trong mô hình ER cấu trúc của dữ liệu được biểu diễn dưới dạng đồ thị như là một
“lược đồ liên kết – thực thể” sử dụng các thành phần cơ bản sau:
1.3.1.1 Thực thể và thuộc tính
Đối tượng được trình bày trong mô hình ER là thực thể. Thực thể là một “vật” trong
thế giới thực, có sự tồn tại độc lập. Một thực thể có thể là cụ thể, tức là chúng ta có thể cảm
nhận được bằng các giác quan, hoặc có thể là trừu tượng, tức là cái mà chúng ta không cảm
nhận được bằng các giác quan nhưng có thể nhận biết được bằng nhận thức. Một cái ô tô,
một nhân viên,… là những thực thể cụ thể. Một đơn vị công tác, một trường học … là những
thực thể trừu tượng.

12
ví dụ về thực thể
Mỗi một thực thể có các thuộc tính, đó là các đặc trưng cụ thể mô tả thực thể đó. Ví dụ,
một thực thể Nhânviên được mô tả bằng Họtên, Tuổi, Địachỉ, Lương… của nhân viên đó.
Một thực thể cụ thể sẽ có một giá trị cho mỗi thuộc tính của nó. Ví dụ, nhân viên nv1 có các
giá trị cho các thuộc tính Họtên, Tuổi, Địachỉ, Lương của nó là “ Lê Vân”, 32, “Hà nội”,
500000. Các giá trị thuộc tính mô tả mỗi thực thể sẽ trở thành 1 phần chính của các dữ liệu
sẽ được lưu giữ trong cơ sở dữ liệu. Trong mô hình ER có mặt nhiều kiểu thuộc tính: thuộc
tính đơn, thuộc tính phức hợp, thuộc tính đơn trị, thuộc tính đa trị, thuộc tính được lưu trữ,
thuộc tính suy diễn được, thuộc tính có giá trị không xác định, thuộc tính phức tạp.

ví dụ về thuộc tính của thực thể


Thuộc tính đơn là thuộc tính không thể phân chia ra được thành các thành phần nhỏ
hơn. Ví dụ, thuộc tính Tuổi của một nhân viên là một thuộc tính đơn. Thuộc tính phức hợp là
thuộc tính có thể phân chia được thành các thành phần nhỏ hơn, biểu diễn các thuộc tính cơ
bản hơn với các ý nghĩa độc lập. Ví dụ, thuộc tính Họtên của thực thể nhân viên có thể phân
chia thành các tính Họđệm và Tên. Giá trị của một thuộc tính là sự kết hợp kết hợp các
giá trị của các thuộc tính thành phần tạo nên nó. Việc phân chia một thuộc tính phức hợp
thành các thuộc tính đơn tùy thuộc vào hoàn cảnh cụ thể.

bảng phân cấp của thuộc tính phức hợp


Những thuộc tính có giá trị duy nhất cho một thực thể cụ thể gọi là các thuộc tính đơn
trị. Ví dụ, Họtên là một thuộc tính đơn trị của thực thể nhân viên, mỗi nhân viên có một
13
họ tên duy nhất. Trong một số trường hợp, một thuộc tính có thể có một tập giá trị cho cùng
một thực thể. Những thuộc tính như vậy gọi là thuộc tính đa trị. VD, thuộc tính Bằngcấp
của một người. Một người có thể không có bằng cấp nào, người khác có thể có 1 bằng,
người khác nữa có thể có nhiều bằng. Như vậy, người khác nhau có thể có 1 số giá trị khác
nhau cho thuộc tính Bằngcấp. Thuộc tính Bằngcấp là một thuộc tính đa trị.
Thuộc tính được lưu trữ là các thuộc tính mà giá trị của nó được nhập vào khi cài đặt cơ
sở dữ liệu. Trong một số trường hợp, hai hay nhiều thuộc tính có giá trị liên quan đến nhau.
Thuộc tính Tuổi và thuộc tính Ngàysinh của một người. Với một người cụ thể, ta có thể tính
tuổi của anh ta bằng cách lấy năm hiện tại trừ đi năm của Ngàysinh. Thuộc tính mà giá trị
của nó có thể tính được thông qua giá trị của các thuộc tính khác gọi là thuộc tính suy diễn
được.
Các giá trị không xác định (null values): Trong một số trường hợp, một thực thể cụ thể
có thể không có các giá trị áp dụng được cho một thuộc tính.
Các thuộc tính phức tạp: Là sự kết hợp của các thuộc tính phức hợp và đa trị.

các ký hiệu của các loại thuộc tính


Mỗi thuộc tính trong thực thể luôn có giá trị, một bộ giá trị của một thực thể được gọi là
một bản ghi.
1.3.1.2 Kiểu thực thể, tập thực thể, khóa và tập giá trị
Các kiểu thực thể và các tập thực thể: Một cơ sở dữ liệu thường chứa những nhóm thực
thể như nhau. Ví dụ, một công ty thuê hàng trăm nhân viên và lưu giữ những thông tin tương
tự liên quan đến mỗi nhân viên. Các thực thể nhân viên này chia sẻ các thuộc tính giống nhau
nhưng mỗi thực thể có các giá trị riêng cho các thuộc tính đó. Một kiểu thực thể là một tập
hợp các thực thể có các thuộc tính như nhau. Một kiểu thực thể trong cơ sở dữ liệu được mô
tả bằng tên và các thuộc tính. VD: NHÂNVIÊN (Họtên, Tuổi, Lương), CÔNGTY (Tên,
Địađiểm, Giámđốc). Một tập hợp các thực thể của một kiểu thực thể cụ thể trong cơ sở dữ
liệu tại một thời điểm được gọi là một tập thực thể, nó thường được tham chiếu đến bằng
14
cách sử dụng tên của kiểu thực thể. Ví dụ, NHÂNVIÊN vừa dùng để chỉ một kiểu thực thể,
vừa để chỉ tập hợp hiện tại của tất cả các thực thể nhân viên trong cơ sở dữ liệu.
Một kiểu thực thể được biểu diễn trong lược đồ ER như là một hộp hình chữ nhật có
chứa tên kiểu thực thể. Các thuộc tính được đặt trong các hình ô van và được nối với các
kiểu thực thể bằng các đường thẳng. Các thuộc tính phức hợp cũng được nối với các
thuộc tính thành phần của nó bằng đường thẳng. Các thuộc tính đa trị được hiển thị trong các
hình ô van đúp.
Một kiểu thực thể mô tả một lược đồ (hoặc một mục đích) cho một tập các thực thể
chia sẻ cùng một cấu trúc. Tập hợp các thực thể của một kiểu thực thể cụ thể được nhóm vào
một tập thực thể và được gọi là một thể hiện của một kiểu thực thể.

NHÂNVIÊN CÔNGTY
(Họtên, Tuổi, Lương) (Tên, Địadiểm, Giámđốc)
Nv1 Ct1

(Lê Lan, 30, 800000) (CT Phần mềm, Hà nội, Vũ An)


Nv2 Ct2
(Trần Bá, 45, 1000000) (CT Hoa quả, Hải phòng, Lê Hà)
Hình 1-1. Kiểu thực thể và tập thực thể
Nv3 Ct3
(Hoàng Vân, 25, 600000) (CT Máy tính, Hà nội, Phan
Anh)
Thuộc tính khóa của một kiểu thực thể: Một ràng buộc quan trọng trên các thực thể
.
của một kiểu thực thể là khóa. Một kiểu thực thể thường có một thuộc tính mà các giá trị
.
của nó là khác nhau đối với mỗi thực thể tiêng biệt trong một tập thực thể. Thuộc tính
.
như vậy gọi là thuộc tính khóa và các giá trị của nó có thể dùng để xác định từng thực
.
thể một cách duy nhất. Ví dụ, thuộc tính Tên của kiểu thực thể CÔNGTY là khóa của kiểu
.
thực thể đó vì mỗi thực thể công ty có một tên duy nhất. Đôi khi, nhiều thuộc tính kết hợp
.
với nhau tạo thành một khóa, nghĩa là tổ hợp các giá trị của các thuộc tính này phải khác
nhau đối với mỗi thực thể. Trong trường hợp như vậy ta có một thuộc tính khóa phức hợp.
Chú ý rằng khóa phức hợp phải tối thiểu, nghĩa là tất cả các thuộc tính thành phần phải có
mặt trong thuộc tính phức hợp để thỏa mãn tính chất duy nhất. Trong biểu đồ đồ họa của mô
15
hình ER, thuộc tính khóa được biểu diễn bằng cách gạch ngang dưới tên của nó.
Khi chỉ ra rằng một thuộc tính là khóa của một kiểu thực thể nghĩa là tính chất duy nhất
nêu trên phải được thỏa mãn đối với đối với mỗi mở rộng của kiểu thực thể. Như vậy, ràng
buộc khóa cấm hai thực thể bất kỳ có giá trị cho thuộc tính khóa như nhau tại cùng một thời
điểm. Đó là một ràng buộc trên tất cả các thể hiện của thực thể.
Một kiểu thực thể có thể có nhiều hơn một thuộc tính khóa. Ví dụ, nếu một công ty có
một mã số duy nhất và một tên duy nhất thì các thuộc tính Mãsốcông ty và Têncôngty đều là
các thuộc tính khóa. Một kiểu thực thể cũng có thể không có khóa. Một thực thể không có
khóa được gọi là kiểu thực thể yếu.
Miền giá trị của các thuộc tính: Mỗi thuộc tính đơn của một kiểu thực thể được kết
hợp với một miền giá trị. Đó là một tập các giá trị có thể gán cho thuộc tính này đối với
mỗi thực thể riêng biệt. Các miền giá trị không hiển thị trong các sơ đồ ER.
Một cách toán học, một thuộc tính A của kiểu thực thể E có tập giá trị V có thể được
định nghĩa như là một hàm từ E vào tập hợp lực lượng P(V) của V:
A: E → P(V)
Ta ký hiệu giá trị của thuộc tính A đối với thực thể e là A(e). Định nghĩa ở trên đúng
cho các thuộc tính đơn trị, đa trị và thuộc tính không xác định. Một giá trị không xác định
được biểu diễn bằng một tập rỗng. Với các thuộc tính đơn trị, A(e) là một giá trị đơn cho
thực thể e. Các thuộc tính đa trị không có các hạn chế trên A(e). Với một thuộc tính phức
hợp A, tập giá trị V là tích Đề các của P(V1)x P(V2)x….xP(Vn), trong đó V1, V2, …, Vn
là tập các giá trị cho các thành phần đơn của A.
1.3.1.3 Kiểu liên kết, tập liên kết và các thể hiện
Liên kết (Relationship) là sự kết hợp của hai hay nhiều thực thể phân biệt theo một ý
nghĩa nào đó. VD: nhân viên A tham gia dự án X. Nhân viên A giám sát nhân viên B.
Một kiểu liên kết R giữa n kiểu thực thể E1, E2, …, En xác định một tập liên kết giữa
các thực thể của các kiểu đó. Cũng như các kiểu thực thể và tập thực thể, một kiểu liên kết
và tập liên kết tương ứng với nó cũng có tên chung là R. Một cách toán học, tập liên kết
R là một tập hợp các thể hiện liên kết ri, i= 1,2,… trong đó mỗi ri liên kết n thực thể riêng
biệt e1,e2,…,en và mỗi một thực thể ej trong ri là một thành phần của kiểu thực thể Ej , 1≤ j

16
≤ n. Như vậy, một kiểu liên kết R là một quan hệ toán học trên E1, E2, …, En hoặc có thể
định nghĩa như là một tập con của tích Đề các E1 x E2 x …x En. Mỗi kiểu thực thể E1, E2,
…, En được gọi là tham gia vào kiểu liên kết R, và tương tự, mỗi thực thể riêng biệt e1, e2,
…, en được gọi là tham gia vào thể hiện liên kết ri = ( e1, e2, …, en).
Một cách không hình thức, mỗi thể hiện liên kết ri trong R là một sự kết hợp của các
thực thể, mỗi thực thể thuộc về một kiểu thực thể tham gia vào liên kết. Mỗi liên kết ri
như vậy diễn đạt một sự kiện rằng các thực thể tham gia trong ri có mối quan hệ với nhau
theo một cách nào đó ở trong thế giới thực. Ví dụ, trong thực tế, các nhân viên làm việc cho
các đơn vị, như vậy, có một kiểu liên kết liên kết làm việc cho, liên kết giữa kiểu thực thể
NHÂNVIÊN và kiểu thực thể ĐƠNVỊ.
Trong sơ đồ ER, kiểu liên kết được biểu diễn bằng một hình thoi nối trực tiếp với các
hình chữ nhật biểu diễn các kiểu thực thể tham gia vào liên kết. Hình II-4 minh họa kiểu liên
kết và thể hiện liên kết
a) Kiểu liên kết

b) Thể hiện liên kết

Hình 1- 5. Kiểu liên kết và thể hiện kiểu liên kết


1.3.1.4 Cấp liên kết, tên vai trò và kiểu liên kết đệ quy
Cấp của một kiểu liên kết là số các kiểu thực thể tham gia vào kiểu liên kết đó. Một kiểu
liên kết có thể có cấp 1, 2, 3 …. Ví dụ, kiểu liên kết <làm việc cho> giữa kiểu thực thể Nhân
vien và kiểu thực thể Đơn vị là một kiểu liên kết cấp 2. Kiểu liên kết <biết trước> giữa kiểu
thực thể Môn học với chính nó là một kiểu liên kết cấp 1.

17
Đôi khi chúng ta có thể coi một kiểu liên kết như một thuộc tính của một kiểu thực thể.
Ví dụ, nếu kiểu thực thể Nhân viên có thuộc tính Đơn vị để chỉ ra tên đơn vị mà nhân viên
làm việc cho, thì thuộc tính Đơn vị biểu thị một kiểu liên kết. Nói cách khác, một thuộc tính
của một kiểu thực thể hoặc có chức năng biểu thị một đặc trưng của kiểu thực thể, hoặc có
chức năng biểu thị một kiểu liên kết giữa kiểu thực thể đó với các kiểu thực thể khác. Các
thuộc tính biểu thị một kiểu liên kết có thể đơn trị hoặc đa trị tuỳ theo bản chất của mối liên
kết.
Quan hệ cấp 1 của kiểu liên kết: là mối quan hệ giữa cùng 1 kiểu thực thể

Quan hệ cấp 2 của kiểu liên kết: là mối quan hệ giữa hai kiểu thực thể khác nhau

Quan hệ cấp 3 của kiểu liên kết: là mối quan hệ giữa ba kiểu thực thể khác kiểu

Các tên vai trò và các kiểu liên kết đệ quy: Mỗi một kiểu thực thể tham gia vào một
kiểu liên kết có một vai trò cụ thể trong liên kết. Tên vai trò dùng để chỉ rõ vai trò của các
thực thể của kiểu thực thể tham gia liên kết, nó giúp đỡ việc giải thích ý nghĩa của liên kết.
Ví dụ, trong kiểu liên kết NHÂNVIÊN <làm việc cho > ĐƠNVỊ, vai trò của các thực thể
của kiểu thực thể NHÂNVIÊN là nhân viên hoặc công nhân còn vai trò của các thực thể của

18
kiểu thực thể ĐƠNVỊ là đơn vị hoặc nơi thuê công nhân. Nếu các kiểu thực thể tham gia vào
kiểu liên kết là khác nhau thì tên vai trò là hoàn toàn không cần thiết bởi vì có thể sử dụng
tên các kiểu thực thể làm tên vai trò. Tuy nhiên, trong một số trường hợp, một kiểu thực thể
có thể tham gia vào một kiểu liên kết với các vai trò khác nhau. Trong những trường hợp
như vậy, tên vai trò trở nên cần thiết để phân biệt ý nghĩa của mỗi sự tham gia. Các kiểu liên
kết như vậy gọi là kiểu liên kết đệ quy. Ví dụ, trong số các nhân viên làm việc cho một đơn
vị, có các nhân viên được phân công giám sát các nhân viên khác. Như vậy sẽ có một
kiểu liên kết giữa các thực thể của kiểu thực thể NHÂNVIÊN: NHÂNVIÊN <giám sát>
NHÂNVIÊN. Kiểu thực thể NHÂNVIÊN tham gia hai lần vào kiểu liên kết <giám sát>,
một lần với vai trò người giám sát, một lần với vai trò người bị giám sát.
1.3.1.5 Các ràng buộc trên các kiểu liên kết
Các kiểu liên kết thường có một số ràng buộc để hạn chế số các tổ hợp có thể của các
thực thể có thể tham gia trong tập hợp liên kết tương ứng. Các ràng buộc này được xác định
từ tình trạng của thế giới thực mà kiểu liên kết biểu diễn. Ví dụ, nếu công ty có quy chế là
một nhân viên chỉ làm việc cho một đơn vị thì chúng ta phải mô tả ràng buộc này trong
lược đồ. Có hai loại ràng buộc chính: tỷ số lực lượng và sự tham gia.
Tỷ số lực lượng: Tỷ số lực lượng cho một kiểu liên kết chỉ ra số các thể hiện liên kết mà
một thực thể có thể tham gia. Với các kiểu liên kết cấp 2, có thể có các tỷ số lực lượng 1:1,
1:N, và M:N. Một kiểu liên kết có tỷ số lực lượng 1:1 giữa hai kiểu thực thể A và B có nghĩa
là trong kiểu liên kết đó, một thực thể của kiểu A chỉ liên kết với một thực thể của kiểu B và
ngược lại, một thực thể của kiểu B chỉ liên kết với một thực thể của kiểu A. Tỷ số lực lượng
1:N có nghĩa là một thực thể của kiểu A có thể liên kết với nhiều thực thể của kiểu B nhưng
một thực thể của kiểu B chỉ liên kết với một thực thể của kiểu A. Trong kiểu liên kết có
tỷ số lực lượng M:N, mỗi thực thể của kiểu A có thể liên kết với nhiều thực thể của
kiểu B và ngược lại, mỗi thực thể của kiểu B có thể liên kết với nhiều thực thể của kiểu A.
Trong biểu diễn của lược đồ ER, các tỷ số lực lượng được biểu diễn bằng cách ghi 1, N, M
trên các hình thoi biểu diễn kiểu liên kết.

19
Hình 1-6. Tỷ số lực lượng của các kiểu liên kết
Các ràng buộc tham gia và sự phụ thuộc tồn tại: Ràng buộc tham gia chỉ ra rằng có
phải sự tồn tại của một kiểu thực thể phụ thuộc vào một kiểu thực thể khác thông qua một
kiểu liên kết hay không. Có hai kiểu ràng buộc tham gia: ràng buộc tham gia toàn bộ và ràng
buộc tham gia bộ phận. Tham gia toàn bộ nghĩa là tất cả các thực thể của kiểu thực thể phải
tham gia vào kiểu liên kết còn tham gia bộ phận nghĩa là chỉ một bộ phận các thực thể của
kiểu thực thể tham gia vào kiểu liên kết. Ví dụ, xét kiểu liên kết NHÂNVIÊN <quản lý>
ĐƠNVỊ. Trong thực tế, mỗi đơn vị phải có một người quản lý (là một nhân viên) nhưng
không phải nhân viên nào cũng quản lý một đơn vị. Như vậy, sự tham gia của các thực
thể đơn vị vào kiểu liên kết là toàn bộ còn sự tham gia của các thực thể nhân viên vào kiểu
liên kết là bộ phận. Sự tham gia toàn bộ còn được gọi là sự phụ thuộc tồn tại.
1.3.1.6 Thuộc tính của các kiểu liên kết
Các kiểu liên kết cũng có thể có các thuộc tính, giống như các thuộc tính của các kiểu
thực thể. Ví dụ, kiểu liên kết <làm việc trên> giữa các kiểu thực thể NHÂNVIÊN và DỰÁN
có thể có thuộc tính Sốgiờ để ghi lại số giờ làm việc của một nhân viên trên một dự án. Các
thuộc tính của kiểu liên kết cũng được biểu diễn bằng một hình oval và được nối với kiểu liên
kết. Ví dụ:

1.3.1.7 Các kiểu thực thể yếu


Các kiểu thực thể không có các thuộc tính khoá cho chính mình được gọi là các kiểu
thực thể yếu. Ngược lại, các kiểu thực thể thông thường (nghĩa là có thuộc tính khoá) được
gọi là kiểu thực thể mạnh. Các thực thể của một kiểu thực thể yếu được xác định bằng cách
liên kết với các thực thể cụ thể của một kiểu thực thể khác phối hợp với một số giá trị thuộc

20
tính của nó. Ta gọi kiểu thực thể khác đó là kiểu thực thể xác định hoặc kiểu thực thể chủ. Ta
gọi kiểu liên kết giữa kiểu thực thể yếu và kiểu thực thể chủ của nó là liên kết xác định của
thực thể yếu. Một kiểu thực thể yếu luôn luôn có một ràng buộc tham gia toàn bộ (tồn tại
phụ thuộc) vào liên kết xác định của nó bởi vì một kiểu thực thể yếu không thể được xác định
mà không có kiểu thực thể chủ. Ví dụ, trong một công ty, con của nhân viên và nhân viên có
thể hưởng chế độ bảo hiểm theo nhân viên. Như vậy, sẽ có một kiểu liên kết NHÂNVIÊN
<có> < CON>. Đây là một kiểu liên kết có tỷ số lực lượng 1:N. Các thuộc tính của kiểu
thực thể CON là Họtên, Ngaysinh, Giớitính. Hai người con của hai nhân viên khác nhau có
thể có cùng giá trị cho các thuộc tính nhưng nó là hai thực thể khác nhau. Chúng chỉ được
xác định như hai thực thể khác nhau sau khi xác định một thực thể nhân viên cụ thể có liên
quan đến từng người phụ thuộc. Mỗi thực thể của kiểu thực thể NHÂNVIÊN được gọi là chủ
của các thực thể của kiểu thực thể CON liên kết với nó.
Thông thường, các kiểu thực thể yếu có một khoá bộ phận, đó là một tập hợp các thuộc
tính có thể xác định một cách duy nhất các thực thể yếu liên kết với cùng một thực thể chủ.
Ví dụ, nếu hai người con của một nhân viên không bao giờ có tên giống nhau thì thuộc tính
Họtên của kiểu thực thể CON là một khoá bộ phận. Trong trường hợp xấu nhất, thuộc tính
phức hợp gồm tất cả các thuộc tính của thực thể yếu sẽ là một khoá bộ phận
1.3.2 Thiết kế mô hình ER
1.3.2.1 Ký hiệu và quy ước đặt tên trong mô hình ER
- Ký hiệu

21
- Quy tắc đặt tên

1.3.2.2 Các bước xây dựng lược đồ ER


- Liệt kê, chính xác hóa và lựa chọn thông tin cơ sở
+ Xác định một từ điển bao gồm tất cả các thuộc tính

22
+ Chính xác hóa thông tin thuộc tính đó. Thêm các từ cần thiết để thuộc tính đó mang
đầy đủ ý nghĩa, không gây nhầm lẫn, hiểu nhầm
+ Để lựa chọn các đặc trưng cần thiết, ta duyệt từ trên xuống và chỉ giữ lại những
thuộc tính đảm bảo yêu cầu sau: Thuộc tính cần phải đặc trưng cho một lớp các đối tượng
được xét; Chọn một thuộc tính một lần, nếu lặp lại thì bỏ qua; Một thuộc tính phải là sơ cấp
(nếu giá trị của nó có thể suy ra từ các thuộc tính khác thì bỏ qua)
- Xác định các thực thể và các thuộc tính của nó, sau đó xác định thuộc tính định danh
cho từng thực thể
+ Duyệt danh sách các thuộc tính từ trên xuống để tìm ra thuộc tính tên gọi. Mỗi
thuộc tính tên gọi sẽ tương ứng với một thực thể
+ Gán các thuộc tính cho từng thực thể
+ Xác định các thuộc tính định danh cho từng thực thể
- Xác định các mối quan hệ các thuộc tính riêng của nó: Xét danh sách các thuộc tính
còn lại, tìm tất cả các động từ (ứng với thuộc tính đó). Với mỗi động từ, trả lời các câu hỏi:
Ai? Cái gì? Ở đâu? Khi nào? Bằng cách nào?
- Vẽ sơ đồ mô hình ER, xác định lực lượng tham gia liên kết cho các thực thể
- Chuẩn hóa sơ đồ và thu gọn sơ đồ
+ Vẽ sơ đồ
+ Chuẩn hóa sơ đồ, nếu trong đó còn có chứa: các thuộc tính lặp, nhóm lặp và các
thuộc tính phụ thuộc thời gian  sơ đồ chỉ còn các thực thể đơn và các thuộc tính đơn.
+ Thu gọn sơ đồ: Nếu một thực thể có tất cả các đặc trưng: Là thực thể treo (thực thể
chỉ tham gia vào một mối quan hệ và chỉ chứa một thuộc tính duy nhất thực sự là nó có thể có
thuộc tính thứ hai thêm định danh); Mối quan hệ là bậc hai và không có thuộc tính riêng; Mối
quan hệ là 1:N và 1:1

lược đồ trước khi thu gọn

23
lược đồ sau khi thu gọn
1.5 Chuyển mô hình ER sang mô hình quan hệ
Mục đích: thiết kế lược đồ quan hệ dựa trên thiết kế mức khái niệm
Quy tắc 1: chuyển đổi các tập thực thể thông thường (không phải là tập thực thể yếu)
thành một quan hệ. Quan hệ mới được chuyển đổi này sẽ lấy tên của tập thực thể làm tên của
quan hệ, thuộc tính là thuộc tính đơn trị, thuộc tính đơn và thuộc tính phức hợp của quan hệ
đó. Thuộc tính khóa của tập thực thể cũng là khóa của quan hệ đó.

quan hệ tương ứng EMPLOYEE(SSN, fname,


mint, Lname, bdate, sex, address, salary).

quan hệ tương ứng DEPARTMENT(Name, number)


Quy tắc 2: Nếu trong mô hình ER tồn tại tập thực thể yếu thì mỗi thực thể này tạo thành
một quan hệ R, tất cả thuộc tính đơn giản của tập thực thể thành thuộc tính của R, thuộc tính
khóa của thực thể chủ sẽ trở thành khóa ngoài của quan hệ R. Khóa chính của R là sự kết hợp
giữa thuộc tính khóa của tập thực thể chủ và thuộc tính định danh của tập thực thể yếu.

24
quan hệ DEPENDENT(ESSN, Dep_name, sex,
bdate, relationship)
Quy tắc 3: nếu mối kết hợp giữa hai tập thực thể là 1-1, xác định một quan hệ A_B, tập
thực thể tham gia toàn bộ vào kiểu liên kết sẽ trở thành A, tập thực thể còn lại trở thành B,
đưa khóa của B sang thành khóa ngoại của A, thuộc tính của mối liên kết A_B trở thành thuộc
tính của A.
Quy tắc 4: nếu giữa hai tập thực thể là kiểu liên kết 1-N, chuyển khóa chính của quan hệ
phía 1 thành khóa ngoại của quan hệ phía N.
Quy tắc 5: Nếu mối kết hợp là M-N thì sinh ra một quan hệ R mới, chuyển khóa chính
của hai phía M và N thành khóa ngoại của quan hệ R. Khóa chính của R là sự kết hợp của hai
khóa ngoại.
Quy tắc 6: nếu trong tập thực thể có thuộc tính đa trị, chuyển thuộc tính đa trị thành
quan hệ mới, thuộc tính khóa của tập thực thể chính chuyển thành khóa ngoại của quan hệ
mới. Khóa chính của quan hệ mới là khóa chính của quan hệ và khóa ngoại mới được chuyển
sang.
Quy tắc 7: nếu quan hệ giữa các tập thực thể > 2, tạo một quan hệ mới, khóa chính của
các tập thực thể tham gia liên kết được đưa làm khóa ngoại của quan hệ mới, các khóa ngoại
đồng thời đóng vai trò làm khóa chính của quan hệ mới này.
Quy tắc 8: tiến hành chuẩn hóa và chuyên biệt hóa quan hệ. Chuyển đổi mỗi chuyên
biệt hóa có m lớp con {S1, S2, …, Sn} và lớp cha C, thuộc tính của C là {k, a1, a2, …, an},
có thể thực hiện theo 1 trong 4 lựa chọn sau:
- Tạo quan hệ L cho lớp cha C với các thuộc tính T(C) = {k, a1, a2, …, an} và khóa
chính của C là PK(C) = k. Tạo quan hệ Li cho mỗi lớp con tương ứng Si với các
25
thuộc tính T(Li) = {k}U{thuộc tính của Si} và PK(Li) k
- Tạo một quan hệ cho Li cho mỗi lớp con Si, với các thuộc tính T(Li) = {k, a1, a2, …,
an}U{thuộc tính Si} và PK(Li) = k.
- Tạo một quan hệ L với các thuộc tính T(L) = {k, a1, a2, …, an} U {thuộc tính của
S1} U … U{thuộc tính của Sm} U{t} và PK(L) = k. Trong đó, t là thuộc tính phân
biệt chỉ ra bản ghi thuộc vào lớp con nào, miền giá trị của t = {1, 2, …, m}\
- Tạo một quan hệ L với các thuộc tính T(L) = {k, a1 , a2 , …, an } U {thuộc tính của
S1} U… U {thuộc tính của Sm} U {t1 , t2 , …, tmj} và PK(L) = k. Lựa chọn này
cho chuyên biệt hoá của các lớp con được nạp chồng (nhưng cũng áp dụng cho một
chuyên biệt tách rời), và với mỗi ti, 1≤ i ≤ m, là thuộc tính BOOLEAN chỉ ra bộ theo
lớp con Si.

26
CHƯƠNG 2
CƠ SỞ DỮ LIỆU PHÂN TÁN
2.1. Khái niệm cơ sở dữ liệu phân tán
Một cơ sở dữ liệu phân tán là một tập hợp dữ liệu thuộc về cùng một hệ thống một cách
logic, nhưng được trải ra trên các trạm của một mạng máy tính.
Định nghĩa này nhấn mạnh hai khía cạnh quan trọng của một CSDL phân tán:
- Tính phân tán: Toàn bộ dữ liệu của CSDL phân tán không được cư trú ở một nơi mà
cư trú ra trên nhiều trạm thuộc mạng máy tính, điều này giúp chúng ta phân biệt CSDL
phân tán với CSDL tập trung đơn lẻ.
- Tương quan logic: Toàn bộ dữ liệu của CSDL phân tán có một số các thuộc tính ràng
buộc chúng với nhau, điều này giúp chúng ta có thể phân biệt một CSDL phân tán với
một tập hợp CSDL cục bộ hoặc các tệp cư trú tại các vị trí khác nhau trong một mạng
máy tính.

Hình 2-1. Môi trường hệ cơ sở dữ liệu phân tán


Trong hệ thống cơ sở dữ liệu phân tán gồm nhiều trạm, mỗi trạm có thể khai thác các
giao tác truy nhập dữ liệu trên nhiều trạm khác. Với một ngân hàng có 3 chi nhánh đặt ở các vị
trí khác nhau. Tại mỗi chi nhánh có một máy tính điều khiển một số máy kế toán cuối cùng
(Teller terminal). Mỗi máy tính với cơ sở dữ liệu thống kê địa phương của nó tại mỗi chi nhánh
được đặt ở một vị trí của cơ sở dữ liệu phân tán. Các máy tính được nối với nhau bởi một mạng
truyền thông.
Hệ cơ sở dữ liệu phân tán được xây dựng dựa trên hai công nghệ cơ bản là cơ sở dữ liệu
và mạng máy tính. Trong cơ sở dữ liệu phân tán các tập tin dữ liệu được lưu trữ độc lập trên các
nút của mạng máy tính và phải có liên quan đến nhau vềm mặt logic và đòi hỏi chúng phải được
truy xuất đến qua một giao diện chung, thống nhất. Hiện nay khái niệm xử lý phân tán, tính toán

27
phân tán hoặc các thuật ngữ có từ “phân tán” hay được dùng để chỉ các hệ thống máy tính có bộ
đa xử lý hay là các xử lý trên mạng máy tính. Cơ sở dữ liệu phân tán là một khái niệm không
bao gồm các trường hợp xử lý dữ liệu trong các hệ thống sử dụng bộ nhớ chung, kể cả bộ nhớ
trong hay bộ nhớ thứ cấp, nhất thiết phải là một hệ có sử dụng giao tiếp mạng với các trạm làm
việc độc lập.

Hình 2-2 Các mô hình không phải hệ cơ sở dữ liệu phân tán

Hình 2-3 Mô hình hệ cơ sở dữ liệu phân tán


2.3 Đặc điểm của cơ sở dữ liệu phân tán
(1) Chia sẻ tài nguyên
Việc chia sẻ tài nguyên của hệ phân tán được thực hiện thông qua mạng truyền thông.
Để chia sẻ tài nguyên một cách có hiệu quả thì mỗi tài nguyên cần được quản lý bởi một
chương trình có giao diện truyền thông, các tài nguyên có thể được truy cập, cập nhật một cách
tin cậy và nhất quán. Quản lý tài nguyên ở đây là lập kế hoạch dự phòng, đặt tên cho các lớp tài
nguyên, cho phép tài nguyên được truy cập từ nơi này đến nơi khác, ánh xạ lên tài nguyên vào
địa chỉ truyền thông, ...
(2) Tính mở

28
Tính mở của hệ thống máy tính là dễ dàng mở rộng phần cứng (thêm các thiết bị ngoại
vi, bộ nhớ, các giao diện truyền thông ...) và các phần mềm (các mô hình hệ điều hành, các giao
thức truyền tin, các dịch vụ chung tài nguyên, ...)
Một hệ phân tán có tính mở là hệ có thể được tạo từ nhiều loại phần cứng và phần mềm
của nhiều nhà cung cấp khác nhau với điều kiện là các thành phần này phải theo một tiêu chuẩn
chung.
Tính mở của hệ phân tán được xem xét theo mức độ bổ sung vào các dịch vụ dùng chung
tài nguyên mà không phá hỏng hay nhân đôi các dịch vụ đang tồn tại. Tính mở được hoàn thiện
bằng cách xác định hay phân định rõ các giao diện chính của một hệ và làm cho nó tương thích
với các nhà phát triển phần mềm.
Tính mở của hệ phân tán dựa trên việc cung cấp cơ chế truyền thông giữa các tiến trình
và công khai các giao diện dùng để truy cập các tài nguyên chung.
(3) Khả năng song song
Hệ phân tán hoạt động trên một mạng truyền thông có nhiều máy tính, mỗi máy có thể
có 1 hay nhiều CPU. Trong cùng một thời điểm nếu có N tiến trình cùng tồn tại, ta nói chúng
thực hiện đồng thời. Việc thực hiện tiến trình theo cơ chế phân chia thời gian (một CPU) hay
song song (nhiều CPU)
Khả năng làm việc song song trong hệ PT được thực hiện do hai tình huống sau:
- Nhiều người sử dụng đồng thời ra các lệnh hay các tương tác với các chương trình ứng
dụng
- Nhiều tiến trình Server chạy đồng thời, mỗi tiến trình đáp ứng các yêu cầu từ các tiến trình
Client khác.
(4) Khả năng mở rộng
Hệ phân tán có khả năng hoạt động tốt và hiệu quả ở nhiều mức khác nhau. Một hệ phân
tán nhỏ nhất có thể hoạt động chỉ cần hai trạm làm việc và một File Server. Các hệ lớn hơn tới
hàng nghìn máy tính.
Khả năng mở rộng được đặc trưng bởi tính không thay đổi phần mềm hệ thống và phần
mềm ứng dụng khi hệ được mở rộng. Điều này chỉ đạt được mức dộ nào đó với hệ phân tán
hiện tại. Yêu cầu việc mở rộng không chỉ là sự mở rộng về phần cứng, về mạng mà nó trải trên
các khía cạnh khi thiết kế hệ phân tán.
29
(5) Khả năng thứ lỗi
Việc thiết kế khả năng thứ lỗi của các hệ thống máy tính dựa trên hai giải pháp:
- Dùng khả năng thay thế để đảm bảo sự hoạt động liên tục và hiệu quả.
- Dùng các chương trình hồi phục khi xảy ra sự cố.
Xây dựng một hệ thống có thể khắc phục sự cố theo cách thứ nhất thì người ta nối hai
máy tính với nhau để thực hiện cùng một chương trình, một trong hai máy chạy ở chế độ
Standby. Một giải pháp để giảm phí tổn là các Server riêng lẻ được cung cấp các ứng dụng quan
trọng để có thể thay thế nhau khi có sự cố xuất hiện. Khi không có các sự cố các Server hoạt
động bình thường, khi có sự cố trên một Server nào đó, các ứng dụng Clien tự chuyển hướng
sang các Server còn lại. Cách hai thì các phần mềm hồi phục được thiết kế sao cho trạng thái dữ
liệu hiện thời (trạng thái trước khi xảy ra sự cố) có thể đưọc khôi phục khi lỗi được phát hiện. Các hệ
phân tán cung cấp khả năng sẵn sàng cao để đối phó với các sai hỏng phần cứng.
(6) Đặc tính vô hình: là sự tách biệt về ngữ nghĩa ở mức độ cao của hệ thống với các vấn
đề cài đặt ở cấp độ thấp. Ưu điểm của hệ cơ sở dữ liệu vô hình là không cho người dùng nhìn
thấy các chi tiết cài đặt, hỗ trợ phát triển cho các ứng dụng phức tạp.
(7) Tính trong suốt
Tính trong suốt của một hệ phân tán được hiểu như là việc che khuất đi các thành phần
riêng biệt của hệ đối với người sử dụng và những người lập trình ứng dụng.
Tính trong suốt về vị trí: Người sử dụng không cần biết vị trí vật lý của dữ liệu. Người
sử dụng có quyền truy cập tới đến cơ sở dữ liệu nằm bất kỳ tại vị trí nào. Các thao tác lấy, cập
nhật dữ liệu tại một điểm dữ liệu ở xa được tự động thực hiện bởi hệ thống tại điểm đưa ra yêu
cầu, người sử dụng không cần biết đến sự phân tán của cơ sở dữ liệu trên mạng.
Tính trong suốt trong việc sử dụng: Việc chuyển đổi của một phần hay toàn bộ CSDL
do thay đổi về tổ chức hay quản lý, không ảnh hưởng tới thao tác người sử dụng.
Tính trong suốt của việc phân chia: Nếu dữ liệu được phân chia do tăng tải, nó không
được ảnh hưởng tới người sử dụng.
Tính trong suốt của sự trùng lặp: Nếu dữ liệu trùng lặp để giảm chi phí truyền thông
với CSDL hoặc nâng cao độ tin cậy, người sử dụng không cần biết đến điều đó.
Tính trong suốt mạng: Trong môi trường phân tán, hệ thống mạng là loại tài nguyên
quan trọng cần quản lý. Thông thường, người dùng cần được tách khỏi mọi chi tiết hoạt động
30
của mạng, thậm chí người ta mong muốn che dấu sự tồn tại của mạng nếu được. Khi đó đối với
người dùng sẽ không thấy được sự khác biệt giữa các ứng dụng chạy trên cơ sở dữ liệu tập
trung và các ứng dụng chạy trên CSDL phân tán.
Tính trong suốt nhân bản: Vì những lý do về hiệu năng, độ tin cậy và tính sẵn sang,
người ta mong muốn có thể nhân bản dữ liệu trên các mạng máy tính. Tuy nhiên việc nhân bản
sẽ gây khó khăn khi cập nhật cơ sở dữ liệu. Vì vậy việc nhân bản và quy mô nhân bản do các
ứng dụng quyết định.
Tinh trong suốt phân mảnh: Phân hoạch dữ liệu cho các vị trí khác nhau là yêu cầu tất
yếu của hệ phân tán. Khi các đối tượng của CSDL phân tán được phân mảnh, chiến lược xử lý
vấn tin là dựa trên các mảnh chứ không phải các quan hệ. Như vậy câu vấn tin toàn cục phải
được dịch thành câu vấn tin theo mảnh.
(7) Đảm bảo tin cậy và nhất quán
Hệ thống yêu cầu độ tin cậy cao: sự bí mật của dữ liệu phải được bảo vệ, các chức năng
khôi phục hư hỏng phải được đảm bảo. Ngoài ra yêu cầu của hệ thống về tính nhất quán cũng
rất quan trọng trong thể hiện: không được có mâu thuẫn trong nội dung dữ liệu. Khi các thuộc
tính dữ liệu là khác nhau thì các thao tác vẫn phải nhất quán.
2.4 Ưu điểm của cơ sở dữ liệu phân tán
Có nhiều nguyên nhân để phát triển cơ sở dữ liệu phân tán nhưng tựu trung lại chỉ gồm
những điểm sau đây:
Lợi điểm về tổ chức và tính kinh tế: tổ chức phân tán nhiều chi nhánh và dùng cơ sở dữ
liệu phân tán phù hợp với các tổ chức kiểu này. Với vai trò là động lực thúc đẩy kinh tế thương
mại phát triển rộng hơn, thì việc phát triển các trung tâm máy tính phân tán ở nhiều vị trí trở
thành nhu cầu cần thiết.
Tận dụng những cơ sở dữ liệu sẵn có: Hình thành cơ sở dữ liệu phân tán từ các cơ sở dữ
liệu tập trung có sẵn ở các vị trí địa phương.
Thuận lợi cho nhu cầu phát triển: Xu hướng dùng cơ sở dữ liệu phân tán sẽ cung cấp khả
năng phát triển thuận lợi hơn và giảm được xung đột về chức năng giữa các đơn vị đã tồn tại và
giảm được xung đột giữa các chương trình ứng dụng khi truy cập đến cơ sở dữ liệu. Với hướng
tập trung hoá, nhu cầu phát triển trong tương lai sẽ gặp khó khăn.

31
Giảm chi phí truyền thông: Trong cơ sở dữ liệu phân tán chương trình ứng dụng đặt ở địa
phương có thể giảm bớt được chi phí truyền thông khi thực hiện bằng cách khai thác cơ sở dữ
liệu tại chỗ.
Tăng số công việc thực hiện: Hệ cơ sở dữ liệu phân tán có thể tăng số lượng công việc
thực hiện qua áp dụng nguyên lý xử lý song song với hệ thống xử lý đa nhiệm. Tuy nhiên cơ sở
dữ liệu phân tán cũng có tiện lợi trong việc phân tán dữ liệu như tạo ra các chương trình ứng
dụng phụ thuộc vào tiêu chuẩn mở rộng vị trí làm cho các nơi xử lý có thể hỗ trợ lẫn nhau. Do
đó tránh được hiện tượng tắc nghẽn cổ chai trong mạng truyền thông hoặc trong các dịch vụ
thông thường của toàn bộ hệ thống.
Tính dễ hiểu và sẵn sàng: Hướng phát triển cơ sở dữ liệu phân tán cũng nhằm đạt được
tính dễ hiểu và tính sẵn sàng cao hơn. Tuy nhiên để đạt được mục tiêu này không phải là dễ làm
và đòi hỏi sử dụng kỹ thuật phức tạp. Khả năng xử lý tự trị của các điểm làm việc khác nhau
không đảm bảo tính dễ sử dụng.
Hai nguyên nhân về mặt kỹ thuật đáp ứng cho sự phát triển hệ CSDL phân tán:
-Công nghệ tạo ra máy tính nhỏ và nền tảng phần cứng có khả năng phục vụ xây dựng hệ
thống thông tin phân tán.
-Kỹ thuật thiết kế hệ cơ sở dữ liệu phân tán được phát triển vững chắc dựa trên hai kỹ
thuật thiết kế chính là Top-down và Bottom-up từ những năm thập kỷ 60.
Kỹ thuật thiết kế cơ sở dữ liệu phân tán phức tạp nhưng hệ cơ sở dữ liệu phân tán cũng
cần thiết cho xu hướng phát triển kinh tế hiện nay.
2.5 Cấu trúc của một cơ sở dữ liệu phân tán
Đây không là kiến trúc tường minh cho tất cả các CSDL phân tán, tuy vậy kiến trúc
này thể hiện tổ chức của bất kỳ một CSDL phân tán nào.

32
Hình 2 -4 Sơ đồ CSDL phân tán
- Sơ đồ tổng thể: Định nghĩa tất cả các dữ liệu sẽ được lưu trữ trong CSDL phân tán.
Trong mô hình quan hệ, sơ đồ tổng thể bao gồm định nghĩa của các tập quan hệ tổng thể. Sơ đồ
tổng thể xác định tất cả dữ liệu có thể được chứa trong cơ sở dữ liệu phân tán như là cơ sở dữ
liệu tập trung. Vì lý do này, sơ đồ tổng thể có thể định nghĩa chính xác theo cách định nghĩa
một cơ sở dữ liệu không phân tán. Tuy nhiên, mô hình dữ liệu được sử dụng cho định nghĩa một
lược đồ toàn cục phải thích hợp cho việc định nghĩa ánh xạ tới các mức khác nhau của cơ sở dữ
liệu phân tán.
- Sơ đồ phân đoạn: Mỗi quan hệ tổng thể có thể chia thành một vài phần không gối lên
nhau được gọi là đoạn (fragments). Có nhiều cách khác nhau để thực hiện việc phân chia này.
Ánh xạ giữa các quan hệ toàn cục và các đoạn được định nghĩa trong lược đồ phân đoạn. Ánh
xạ này là một – nhiều, nghĩa là nhiều đoạn tương ứng với mỗi quan hệ toàn cục, nhưng chỉ duy
nhất một quan hệ toàn cục tương ứng với một đoạn. Các đoạn được chỉ ra bởi tên quan hệ toàn
cục và một chỉ số (chỉ số đoạn). Ví dụ: Ri chỉ ra đoạn thứ i của quan hệ toàn cục R.
- Sơ đồ định vị: Các đoạn là các phần logic của quan hệ tổng thể được định vị vật lý trên
một hoặc nhiều vị trí trên mạng. Sơ đồ định vị định nghĩa đoạn nào định vị tại các vị trí nào. Tất
cả các đoạn được liên kết với cùng một quan hệ tổng thể R và được định vị tại cùng một trạm j
cấu thành ảnh vật lý quan hệ tổng thể R tại trạm j. Do đó ta có thể ánh xạ một – một giữa một
ảnh vật lý và một cặp (quan hệ tổng thể, trạm). Các ảnh vật lý có thể chỉ ra bằng tên của một
33
quan hệ tổng thể và một chỉ mục trạm. Ký hiệu Ri để chỉ đoạn thứ i của quan hệ tổng thể R, Rj
để chỉ ảnh vật lý của quan hệ tổng thể R tại trạm j, vì vậy ký hiệu Rij để chỉ bản sao của đoạn i
thuộc quan hệ R tại trạm j. Lưu ý rằng kiểu ánh xạ được định nghĩa trong sơ đồ định vị quyết
định CSDL phân tán là dư thừa hay không.
- Sơ đồ ánh xạ địa phương: Thực hiện ánh xạ các ảnh vật lý lên các đối tượng được
thực hiện bởi DBMS địa phương. Tất cả các đoạn tương ứng với một quan hệ toàn cục R và
cùng được đặt tại trạm j tạo thảnh ảnh vật lý của quan hệ toàn cục R tại trạm j. Như vậy, có một
ánh xạ 1 -1 giữa một ảnh vật lý và một cặp (quan hệ toàn cục, trạm). Ta sử dụng ký hiệu Rj để
chỉ ảnh vật lý của quan hệ toàn cục R tại trạm j.

Hình 2- 5 Các đoạn và hình ảnh vật lý của một quan hệ tổng thể
Ba mức của cơ sở dữ liệu phân tán được đặt độc lập, vì vậy chúng không có sự phụ thuộc
vào mô hình dữ liệu của hệ quản trị cơ sở dữ liệu địa phương. Ở mức thấp cần thiết ánh xạ các
ảnh vật lý vào các đối tượng do các hệ quản trị cơ sở dữ liệu địa phương xử lý. Ánh xạ này
được gọi là lược đồ ánh xạ cục bộ và phụ thuộc vào kiểu của hệ quản trị cơ sở dữ liệu địa
phương. Bởi vậy, trong một hệ thống không thuần nhất, chúng ta có những kiểu ánh xạ cục bộ
khác nhau tại các trạm khác nhau. Ba mục tiêu quan trọng nhất làm động cơ thúc đẩy các đặc
trưng của kiến trúc này là sự tách biệt của phân đoạn dữ liệu và định dữ liệu, kiểm soát dư thửa
và sự độc lập với các hệ quản trị cơ sở dữ liệu địa phương. Ba yếu tố này tương ứng với ba mức
trong suốt tương ứng.
- Tách biệt khái niệm phân đoạn dữ liệu với khái niệm định vị dữ liệu: Sự phân biệt này cho
phép chúng ta phân biệt hai mức độ khác nhau của trong suốt phân tán được gọi là trong suốt
34
phân đoạn và trong suốt vị trí. Trong suốt phân đoạn là mức cao nhất của trong suốt, bao gồm
người sử dụng hoặc người lập trình ứng dụng làm việc trên những đoạn thay vì trên các quan hệ
toàn cục. Tuy nhiên, ta không thể biết các đoạn dữ liệu được đặt ở đâu. Sự tách biệt giữa khái
niệm phân đoạn và định vị phù hợp với thiết kế cơ sở dữ liệu phân tán, bởi sự xác định các phần
dữ liệu thích hợp phân biệt với những vấn đề định vị tối ưu. Phân đoạn dữ liệu, bao gồm những
công việc mà người lập trình ứng dụng làm việc với quan hệ tổng thể, phân chia quan hệ tổng
thể thành các đoạn. Thông qua tính trong suốt phân đoạn, người lập trình sẽ nhìn thấy được
những đoạn dữ liệu bị phân chia thế nào. Định vị dữ liệu lại liên quan đến các công việc của
người sử dụng và người lập trình ứng dụng trên các đoạn dữ liệu được định vị tại các trạm.
Thông qua tính trong suốt vị trí người lập trình sẽ biết được vị trí các đoạn trên các trạm.
- Kiểm soát dư thừa: Kiến trúc tham chiếu cung cấp một cách kiểm soát dư thừa ở mức độ
phân đoạn. Ví dụ, hai ảnh vật lý của đoạn tại hai trạm khác nhau trùng khớp nhau thì chúng
chứa dữ liệu chung. Việc định nghĩa phân đoạn thành các khối xây dựng của ảnh vật lý cho
phép chúng ta tham chiếu một cách rõ ràng tới phần trùng nhau này. Người lập trình ứng dụng
có thể biết được dư thừa dữ liệu ở các trạm.
- Độc lập với các hệ quản trị cơ sở dữ liệu địa phương: Đặc tính này gọi là trong suốt ánh
xạ địa phương, nó cho phép chúng ta nghiên cứu nhiều vấn đề về quản trị cơ sở dữ liệu phân tán
mà không cần tính đến các mô hình cụ thể các hệ quản trị cơ sở dữ liệu địa phương. Trong một
hệ thống không thuần nhất, trạm được định nghĩa bằng cách sử dụng cùng một mô hình dữ liệu
như là các hệ quản trị cơ sở dữ liệu địa phương, do vậy giảm độ phức tạp ánh xạ này. Một kiểu
trong suốt khác liên quan đến trong suốt vị trí là trong suốt nhân bản. trong suốt nhân bản có
nghĩa là người sử dụng không biết những bản sao của các phân đoạn. Trong suốt địa điểm kéo
theo trong suốt nhân bản.
2.6 Hệ quản trị cơ sở dữ liệu phân tán
Hệ quản trị CSDL phân tán (Distributed Database Management System - DBMS) được
định nghĩa là một hệ thống phần mềm cho phép quản lý các hệ CSDL (tạo lập và điều khiển các
truy nhập cho các hệ CSDL phân tán) và làm cho việc phân tán trở nên trong suốt với người sử
dụng. Đặc tính vô hình muốn nói đến sự tách biệt về ngữ nghĩa ở cấp độ cao của một hệ thống
với các vấn đề cài đặt ở cấp độ thấp. Sự phân tán dữ liệu được che dấu với người sử dụng làm

35
cho người sử dụng truy nhập vào CSDL phân tán như hệ CSDL tập trung. Sự thay đổi việc quản
trị không ảnh hưởng tới người sử dụng.
Việc phân bố cơ sở dữ liệu trong cơ sở dữ liệu phân tán được phân thành:
- Cơ sở dữ liệu phân tán thuần nhất: cơ sở dữ liệu có được bằng cách chia một cơ sở dữ
liệu thành một tập các cơ sở dữ liệu địa phương, mỗi cơ sở dữ liệu này được quản lý bởi cùng
một hệ quản trị cơ sở dữ liệu ngay cả khi máy tính hoặc hệ điều hành không giống nhau (thuận
lợi cho cách tiếp cận thiết kế trên xuống)
- Cơ sở dữ liệu không thuần nhất: cơ sở dữ liệu phân tán có được bằng cách tích hợp vào
một cơ sở dữ liệu duy nhất một tập các cơ sở dữ liệu địa phương được quản lý bởi các hệ quản
trị cơ sở dữ liệu khác nhau, hệ quản trị phải có chức năng chuyển đổi giữa các mô hình dữ liệu
khác nhau của các hệ quản trị cơ sở dữ liệu cục bộ khác nhau (thuận lợi cho cách tiếp cận thiết
kế dưới lên).
- Cơ sở dữ liệu liên hiệp (đa cơ sở dữ liệu): một tập hợp các cơ sở dữ liệu được ghép nối
yếu mà người dùng có thể thao tác nhờ vào một ngôn ngữ đặc biệt (ngôn ngữ đa cơ sở) cho
phép định nghĩa các dữ liệu đa cơ sở, các phụ thuộc giữa các cơ sở và các thao tác dữ liệu đa cơ
sở.

Hình 2-6 Cơ sở dữ liệu liên hiệp


- Cơ sở dữ liệu song song: Các dữ liệu được phân bố trên tập các nút của một máy tính
song song (bộ đa xử lý) để tăng hiệu quả việc xử lý dữ liệu. Một cơ sở dữ liệu song song là một
cơ sở dữ liệu phân tán thuần nhất mà các trạm là các nút của một máy tính song song và truyền
đạt bằng thông báo.
Để đạt được yêu cầu quản trị một cơ sở dữ liệu phân tán tốt, hệ quản trị cơ sở dữ liệu phân
tán cần đạt được các mục tiêu sau:
- Người dùng CSDLPT có thể không quan tâm tới sự phân tán của dữ liệu

36
- Thông tin về sự phân bố của dữ liệu được giữ trong từ điển dữ liệu và được hệ quản trị
cơ sở dữ liệu phân tán tham khảo để xác định vị trí các quan hệ có liên quan trong các câu hỏi
của người dùng. (Sự trong suốt đối với sự định vị trí của dữ liệu cung cấp tính độc lập vật lý đối
với môi trường phân tán)
- Tính độc lập đối với phân đoạn: Việc truy cập tới cơ sở dữ liệu thường được xác định
trên các quan hệ con được gọi là các đoạn. Các đoạn có thể được lưu trữ ở các trạm khác nhau.
Việc phân đoạn làm tăng tính hiệu quả của một cơ sở dữ liệu phân tán vì nó cho phép làm dễ
dàng truy nhập địa phương.
- Tính độc lập đối với việc nhân bản: Một đoạn được nhân bản khi nó có tồn tại hai hay
nhiều hơn các bản sao, mỗi bản được lưu giữ trên các trạm khác nhau. Nhân bản được điều
khiển bởi hệ thống làm dữ liệu có tính sẵn dùng cao, cải tiến hiệu năng truy nhập, tăng khả năng
xử lý địa phương. Tuy nhiên, việc duy trì các bản sao luôn giống nhau là phức tạp và tốn kém.
- Tính độc lập đối với các hệ quản tri cơ sở dữ liệu: Cho phép dấu sự kiện là các hệ quản
trị cơ sở dữ liệu địa phương có thể khác nhau. Mục tiêu này khó thực hiện hoàn toàn đối với hệ
cơ sở dữ liệu phân tán không thuần nhất.
- Tính mở rộng: Khả năng tăng trưởng bằng việc đưa thêm các trạm mới vào trong mạng
với tác động tối thiểu trên các cơ sở dữ liệu phân tán địa phương và các chương trình ứng dụng
hiện có.
- Hiệu năng: Vấn đề cốt yếu là phân đoạn và nhân bản dữ liệu sao cho khai thác tốt tính
song song
Các chức năng đặc thù của hệ quản trị cơ sở dữ liệu phân tán:
- Chương trình quản trị từ điển dữ liệu
- Đánh giá câu hỏi phân tán
- Quản trị giao dịch phân tán
- Các chức năng phục hồi và toàn vẹn dữ liệu
Hệ quản trị CSDL phân tán gồm 1 tập các phần mềm (chương trình) sau đây:
• Các chương trình quản trị các dữ liệu phân tán - DBMS
• Chứa các chương trình để quản trị việc truyền thông dữ liệu - DC
• Các chương trình để quản trị các CSDL địa phương. - LDBMS
• Các chương trình quản trị từ điển dữ liệu. – DD
37
Hình 2-7 Kiến trúc hệ quản trị cơ sở dữ liệu phân tán
Để tạo ra một hệ CSDL phân tán (Distributed Database System-DDBS) các tập tin không
chỉ có liên đới logic chúng còn phải có cấu trúc và được truy xuất qua một giao diện chung.
Môi trường hệ CSDL phân tán là môi trường trong đó dữ liệu được phân tán trên một số vị trí.
2.7 Tính trong suốt phân tán
Tính trong suốt của hệ phân tán được hiểu như là việc che khuất đi các thành phần riêng
biệt của hệ đối với người dùng và người lập trình ứng dụng.
Các loại trong suốt trong hệ phân tán:
- Trong suốt phân đoạn (Fragmentation transparency)
- Trong suốt về vị trí (Location transparency)
- Trong suốt ánh xạ địa phương (Local mapping transparency)
- Không trong suốt (No transparency)

Hình 2-10 Các tầng trong suốt cơ sở dữ liệu phân tán


2.7.1 Trong suốt phân đoạn
Khi dữ liệu được phân đoạn thì việc truy cập vào CSDL được thực hiện bình thường như
là chưa bị phân đoạn và không ảnh hưởng đến người sử dụng.
VD: Xét quan hệ tổng thể DAILY(ID, họ tên, tài khoản, điện thoại, địa chỉ) và các phân
đoạn được tách ra từ nó:

38
DAILY1(ID, họ tên, tài khoản, điện thoại, địa chỉ)
DAILY2(ID, họ tên, tài khoản, điện thoại, địa chỉ)
DAILY3(ID, họ tên, tài khoản, điện thoại, địa chỉ)
Giả sử DDBMS được cung cấp tính trong suốt về phân đoạn, khi đó ta có thể thấy tính
trong suốt được thể hiện như sau: Khi muốn tìm một người có ID = “ID1” thì chỉ cần tìm trên
quan hệ tổng thể DAILY mà không cần biết DAILY có bị phân đoạn hay không.

Hình 2 – 11 Trong suốt phân đoạn


2.7.2 Trong suốt vị trí
Người sử dụng không cần biết vị trí vật lý của dữ liệu mà có quyền truy cập CSDL tại bất
cứ vị trí nào. Các thao tác để lấy hoặc cập nhật một dữ liệu từ xa được tự động thực hiện bởi hệ
thống tại điểm đưa ra yêu cầu. Tính trong suốt về vị trí rất hữu ích, nó cho phép người sử dụng
bỏ qua các bản sao dữ liệu đã tồn tại ở mỗi vị trí. Do đó có thể di chuyển một bản sao dữ liệu từ
một vị trí này đến vị trí khác và cho phép tạo các bản sao mới mà không ảnh hưởng đến ứng
dụng.
VD: Với quan hệ tổng thể R và các phân đoạn như ví dụ trên nhưng DDBMS cung cấp
trong suốt vị trí nhưng không cung cấp trong suốt phân đoạn. Xét câu truy vấn tìm người có ID
= “ID1”:
Select * from DAILY1 where ID = “ID1” if not # found then
Select * from DAILY2 where ID = “ID1”
Đầu tiên hệ thống sẽ thực hiện tìm kiếm ở phân đoạn DAILY1, nếu DDBMS trả về biến
điều khiển #found thì một câu truy vấn tương tự được thực hiện trên phân đoạn DAILY2, …. Ở
đây DAILY2 được sao làm hai bản trên vị trí 2 và 3, ta chỉ cần tìm thông tin trên quan hệ
DAILY2 mà không cần quan tâm nó ở vị trí nào.

39
Hình 2- 12 Sự trong suốt vị trí
2.7.3 Sự trong suốt ánh xạ địa phương
Là một đặc tính quan trọng của một hệ thống DBMS không đồng nhất. Ứng dụng tham
chiếu đến các đối tượng có tên độc lập từ các hệ thống cục bộ địa phương. Ứng dụng được cài
đặt trên một hệ thống không đồng nhất nhưng được sử dụng như một hệ thống đồng nhất.

Hình 2 -13 Sự trong suốt ánh xạ địa phương


Ví dụ: Một công ty có văn phòng ở Paris, London, NewYork, Toronto. Công ty có các cơ
sở dữ liệu sau đây: EMP(Eno, Ename, Title); PROJ(Pno, Pname, Budget, Loc); Pay(Title, Sal);
ASG(Eno, Pno, Dur, Resp). Do tính phân tán của các văn phòng nên tại mỗi văn phòng có lưu
trữ dữ liệu tác nghiệp của chính các văn phòng đó, có thể là các nhân viên tại đó và các dự án
mà văn phòng đó đang quản lý. Ta có sơ đồ lưu trữ đã phân tán và phân mảnh giả định như sau:

Hình 2-14 Sơ đồ lưu trữ phân tán


2.8 Thiết kế cơ sở dữ liệu phân tán
2.8.1 Các bước thiết kế cơ sở dữ liệu phân tán
Một cơ sở dữ liệu phân tán là một cơ sở dữ liệu tập trung nhưng được phân đoạn và định
vị tại các trạm của một mạng máy tính. Việc thiết kế cơ sở dữ liệu phân tán bắt đầu bằng việc
thiết kế một cơ sở dữ liệu tập trung.

40
- Thiết kế lược đồ khái niệm: Mô tả cơ sở dữ liệu được tích hợp (tất cả các dữ liệu
được các ứng dụng cơ sở dữ liệu sử dụng)
- Thiết kế cơ sở dữ liệu vật lý tức là ánh xạ lược đồ khái niệm vào các vùng lưu trữ và
xác định các phương pháp truy cập thích hợp
Trong một cơ sở dữ liệu phân tán, hai vấn đề này trở thành thiết kế một lược đồ toàn cục
và thiết kế cơ sở dữ liệu vật lý địa phương tại mỗi trạm.
- Thiết kế phân đoạn: Xác định các quan hệ toàn cục được chia thành các đoạn như thế
nào
- Thiết kế định vị: Xác định các đoạn được ánh xạ vào các ảnh vật lý
Mặc dù thiết kế các chương trình ứng dụng được thực hiện sau khi thiết kế lược đồ, nhưng
việc hiểu các yêu cầu ứng dụng có ảnh hưởng đến việc thiết kế lược đồ do lược đồ phải có khả
năng hỗ trợ các ứng dụng một cách có hiệu quả.
Việc thiết kế cơ sở dữ liệu phân tán có nhiều điểm tương đồng với việc thiết kế hệ thống
tập trung. Điểm khác biệt cơ bản đối với hệ thống tập trung là hệ thống được phân bố trên một
số địa điểm khác nhau. Khi thiết kế cơ sở dữ liệu phân tán những yêu cầu về tính khả thi, chu
kỳ sống, tính mở, tính sẵn sàng, … phải đảm bảo. Về phần cứng: máy trạm, máy chủ, hệ thống
mạng và hệ tầng mạng là những nội dung cần quan tâm.
2.8.2 Công việc cần làm khi thiết kế hệ thống phân tán
- Xác định kiến trúc mô hình phân tán tổng thể
- Định vị các địa phương cần phân tán, loại hình phân tán sử dụng cho mỗi địa phương
(bản sao, toàn bộ, lai …)
- Tiến hành cân đối các yếu tố được phân tán bao gồm các phần tử dữ liệu và các hoạt
động xử lý trên mỗi trạm.
- Thiết kế cơ sở dữ liệu phân tán
- Thiết kế các chương trình ứng dụng
2.8.3 Các chiến lược phân tán dữ liệu
Việc định vị và phân tán dữ liệu ở các nút trong một mạng máy tính sẽ quyết định tính
đúng đắn và hiệu quả của hệ thống phân tán. Có 4 chiến lược phân tán dữ liệu: Tập trung dữ
liệu, chia nhỏ dữ liệu, sao lặp dữ liệu, phương thức lai.
2.8.3.1 Tập trung dữ liệu
41
Tất cả các dữ liệu được tập trung tại một chỗ. Cách này đơn giản nhưng có nhược điểm dữ
liệu không sẵn sàng cho người truy cập từ xa, chi phí truyền thông lớn, thường làm cực đại việc
truy nhập dữ liệu tới nơi tập trung, toàn bộ hệ thống ngừng khi CSDL bị sự cố.
2.8.3.2 Chia nhỏ dữ liệu
CSDL được chia thành các phần nhỏ liên kết nhau (không trùng lặp). Mỗi phần dữ liệu
được đưa đến các trạm một cách thích hợp để sử dụng.
2.8.3.3 Sao lặp dữ liệu
CSDL được nhân thành từng bản nhiều phần hoặc đầy đủ và được đặt ở nhiều trạm trên
mạng. Nếu bản sao của CSDL được lưu trữ tại mọi trạm của hệ thống ta có trường hợp sao lặp
đầy đủ. Hiện nay có kỹ thuật mới cho phép tạo bản sao không đầy đủ phù hợp với yêu cầu dữ
liệu ở mỗi trạm và một bản đầy đủ được quản lý ở Server.
2.8.3.4 Phương thức lai
CSDL được phân thành 2 phần: quan trong và ít quan trọng. Phần ít quan trọng được lưu
trữ một nơi. Phần quan trọng được lưu trữ ở nhiều nơi khác
2.8.4 Các chiến lược thiết kế
Có hai chiến lược thiết kế một cơ sở dữ liệu phân tán: tiếp cận top – down và tiếp cận
bottom – up.

42
Hình 2-15 Hướng thiết kế top – down
Phương pháp thiết kế Top – down là phương pháp thiết kế từ tổng thể đến riêng biệt, phân
rã một hệ thống lớn thành các hệ thống con, được bắt đầu bởi việc thiết kế sơ đồ tổng thể, tiếp
tục thiết kế phân đoạn cơ sở dữ liệu và sau đó cấp phát các đoạn này cho các vị trí, tạo hình ảnh
vật lý của dữ liệu Phân tích yêu cầu nhằm định nghĩa môi trường hệ thống và thu thập các yêu
cầu về dữ liệu, cũng như các nhu cầu xử lý của các trạm có sử dụng CSDL. Phân tích yêu cầu
cũng xác định xem hệ thống cuối cùng như thế nào so với các mục tiêu của DDBMS đã được
phân tích.
Có hai hoạt động song song là thiết kế khung nhìn và thiết kế khái niệm. Thiết kế khung
nhìn là định nghĩa các giao diện cho người sử dụng ở các trạm. Thiết kế khái niệm là một tiến

43
trình kiểm tra và xác định rõ hai nhóm quan hệ: phân tích chức năng và phân tích thực thể. Phân
tích chức năng là xác định các chức năng của hệ thống và đưa ra các chức năng cơ sở. Phân tích
thực thể là xác định các thực thể, các thuộc tính và mỗi quan hệ giữa chúng. Kết quả của thiết
kế khung nhìn và thiết kế khái niệm là hai quá trình cần đối chiếu qua lại, giúp chúng ta biết
được chức năng nào sẽ hoạt động trên thực thể nào. Trong các hoạt động thiết kế khái niệm và
thiết kế khung nhìn, người sử dụng cần phải đặc tả các thực thể dữ liệu và phải xác định các
ứng dụng sẽ chạy trên CSDL cũng như các thông tin thống kê về ứng dụng này. Thông tin
thống kê bao gồm đặc tả về tần số ứng dụng, khối lượng các thông tin khác nhau …. Lược đồ
khái niệm toàn cục và thông tin về kiểu mẫu truy xuất thu được trong thiết kế khung nhìn sẽ là
nguyên liệu cho bước thiết kế phân tán. Mục tiêu của giai đoạn này là thiết kế các lược đồ khái
niệm cục bộ bằng cách phân tán các thực thể cho các vị trí của hệ thống phân tán. Ta chia quan
hệ thành các mảnh và phân tán các mảnh này. Hoạt động thiết kế gồm hai bước: thiết kế và
phân tán. Hoàn thành hướng này qua việc thực hiện thiết kế vật lý dữ liệu để cấp phát cho dữ
liệu. Thiết kế vật lý là ánh xạ lược đồ khái niệm cục bộ sang thiết bị lưu trữ vật lý có sẵn tai các
vị trí tương ứng. Đối với hệ thống phát triển từ những hệ thống hỗn tạp thì phương pháp này có
sức hấp dẫn lớn vì nó cho phép thực hiện thiết kế dựa trên các giải pháp hợp lý theo từng
trường hợp.
Dùng thiết kế Bottom-up khi cơ sở dữ liệu phân tán được phát triển qua việc liên kết cơ sở
dữ liệu đã có sẵn. Thực tế, trong trường hợp này sơ đồ toàn thể được được tạo ra bởi sự thoả
hiệp giữa các loại mô tả dữ liệu có sẵn. Thậm chí có thể mỗi cặp cơ sở dữ liệu có sẵn không phụ
thuộc việc kết hợp với nhau khi sử dụng sơ đồ giải thích. Tuy nhiên dẫn tới các hệ thống trong
khái niệm khác nhau về kiến trúc tham chiếu.
Khi cơ sở dữ liệu có sẵn được liên kết với nhau thành cơ sở dữ liệu phân tán, các cơ sở dữ
liệu này có thể dùng hệ quản trị cơ sở dữ liệu địa phương ở vị trí đó. Để hệ thống đồng bộ cần
có thêm một số việc phức tạp như đồng bộ dữ liệu cần phải giải thích giữa các mẫu cơ sở dữ
liệu khác nhau. Trong trường hợp này có thể tạo bản giải thích 1:1 giữa hai hệ quản trị cơ sở dữ
liệu địa phương. Trong thực tế hầu hết các hệ thống đồng bộ đều sử dụng hướng thiết kế này để
ra chọn mô hình dữ liệu thông thường và sau đó chuyển sang mẫu cơ sở dữ liệu duy nhất đối
với sơ đồ khác nhau trong hệ quản trị CSDL.
Nói chung các yêu cầu của thiết kế Bottom-up gồm:
44
- Chọn mô hình cơ sở dữ liệu thông thường để thiết kế lược đồ toàn bộ của CSDL.
- Dịch chuyển mỗi lược đồ địa phương sang mô hình dữ liệu thông thường.
- Tích hợp sơ đồ địa phương sang sơ đồ toàn bộ thông thường.
Vì vậy thiết kế theo hướng Bottom-up đòi hỏi giải quyết một số vấn đề không đặc biệt đối
với cơ sơ dữ liệu phân tán nhưng cũng tồn tại trong hệ thống tập trung.
2.8.5 Mục tiêu thiết kế cơ sở dữ liệu phân tán
Trong thiết kế cơ sở dữ liệu phân tán cần đạt được các mục tiêu sau:
- Cục bộ xử lý: Việc phân tán dữ liệu là để cực đại hóa việc xử lý cục bộ phù hợp với
nguyên tắc đơn giản của việc đặt dữ liệu càng gần với các ứng dụng sử dụng chúng càng tốt.
Cách đơn giản nhất để xác định quá trình cục bộ xử lý là xem xét hai kiểu tham chiếu dữ
liệu: tham chiếu cục bộ và tham chiếu từ xa. Rõ ràng là khi đã biết các trạm gốc của ứng
dụng, tính cục bộ và tính từ xa của các tham chiếu chỉ phụ thuộc vào sự phân tán dữ liệu.
Việc thiết kế cơ sở dữ liệu phân tán để làm cực đại hóa xử lý cục bộ hoặc làm cực tiểu các
tham chiếu từ xa có thể được thực hiện bằng cách thêm vào một số tham chiếu cục bộ và tham
chiếu từ xa tương ứng với mỗi phân đoạn và định vị đoạn.
- Tính sẵn sàng sử dụng và tính đáng tin cậy: Tính sẵn sàng sử dụng đối với các ứng
dụng chỉ đọc đạt mức cao bằng cách lưu trữ nhiều bản sao cảu cùng một thông tin. Hệ thống
phải có khả năng chuyển sang một bản sao thay thế khi bản sao sẽ được truy cập dưới các
điều kiện bình thường là không sẵn sàng. Tính đáng tin cậy cũng đạt được bằng cách lưu trữ
nhiều bản sao của cùng một thông tin.
- Sự phân tán công việc: Sự phân tán công việc trên các trạm khác nhau là một đặc
trưng rất quan trọng của hệ thống các máy tính phân tán. Nó tận dụng sức mạnh của việc sử
dụng máy tính tại các trạm khác nhau và làm cực đại mức song song của việc thực hiện các
ứng dụng. Do sự phân tán công việc có thể ảnh hưởng xâu đến xử lý địa phương, việc xem
xét cân bằng giữa chúng trong thiết kế phân tán dữ liệu là cần thiết.
- Chi phí lưu trữ và tính sẵn sàng: Sự phân tán dữ liệu sẽ phản ánh chi phí và tính sẵn
sàng của lưu trữ tại các trạm khác nhau. Có thể có các trạm chuyên dụng trong mạng để lưu
trữ dữ liệu hoặc ngược lại có thể có các trạm không hỗ trợ lưu trữ nào. Thường chi phí lưu
trữ không đáng kể so với CPU, I/O và chi phí truyền ứng dụng, nhưng việc giới hạn lưu trữ
tại mỗi trạm cũng cần được xem xét.
45
2.8.6 Thiết kế phân đoạn
2.8.6.1 Lý do phân đoạn
Khung nhìn của các ứng dụng thường chỉ là một tập con của quan hệ. Vì thế đơn vị truy
xuất không phải là toàn bộ quan hệ nhưng chỉ là các tập con của quan hệ. Kết quả là xem tập
con của quan hệ là đơn vị phân tán sẽ là điều thích hợp duy nhất.
Việc phân rã một quan hệ thành nhiều mảnh, mỗi mảnh được xử lý như một đơn vị, sẽ cho
phép thực hiện nhiều giao dịch đồng thời. Ngoài ra việc phân mảnh các quan hệ sẽ cho phép
thực hiện song song một câu vấn tin bằng cách chia nó ra thành một tập các câu vấn tin con
hoạt tác trên các mảnh. Vì thế việc phân mảnh sẽ làm tăng mức độ hoạt động đồng thời và như
thế làm tăng lưu lượng hoạt động của hệ thống.
Hầu hết các hệ cơ sở dữ liệu phân tán được tạo mới cho nên chúng ta chỉ đề cập đến thiết
kế theo hướng Top down. Thiết kế phân đoạn là công việc đầu tiên phải giải quyết trong thiết
kế Top-down cơ sở dữ liệu phân tán. Mục đích của việc phân đoạn để nhận ra những đoạn
không trùng nhau (đoạn như vậy được gọi là đơn vị cấp phát logíc).
Rõ ràng, các bộ hoặc các thuộc tính của quan hệ không thể được xem như một đơn vị cấp
phát vì sẽ làm cho việc cấp phát trở lên phức tạp hơn. Thiết kế phân đoạn bao gồm công việc
nhóm các bộ trong trường hợp phân đoạn ngang hay nhóm các thuộc tính trong trường hợp
phân đoạn dọc có cùng đặc tính theo quan điểm cấp phát. Mỗi nhóm các bộ hoặc thuộc tính có
cùng đặc tính hay tính chất để thành lập một đoạn. ý cơ bản là nếu bất cứ hai đơn vị cấp phát
nào của cùng một đoạn thì có cùng đặc tính theo quan điểm cấp phát. Mỗi cách thức dùng để
cấp phát dữ liệu sẽ chọn lựa các đoạn này với nhau. Vì vậy các đoạn hình thành nhờ các
phương pháp này tạo ra các đơn vị cấp phát khác nhau.
Điểm chú ý ở trong công việc phân đoạn là vị trí cơ sở của mỗi chương trình ứng dụng
phải thích hợp để nhận biết đặc tính địa phương đối với công việc xác định vị trí thích hợp của
đoạn . Vì vậy cần quan niệm rằng chương trình ứng dụng thực hiện ở nhiều vị trí khác nhau có
vai trò như các chương trình ứng dụng khác nhau thậm chí ngay cả khi chúng thực hiện cùng
chức năng. Tiếp theo là mô tả công việc phân đoạn ngang, phân đoạn dọc và phân đoạn hỗn hợp
(chéo độc lập).
Đối với thiết kế cơ sở dữ liệu phân tán, việc phân đoạn cơ sở dữ liệu là điều không thể
thiếu. Tuy nhiên, vấn đề này vẫn gặp phải một vài nhược điểm sau:
46
- Nếu ứng dụng có những yêu cầu ngăn cản việc phân rã thành các mảnh để được sử dụng
độc quyền, thì những ứng dụng có các khung nhìn được định nghĩa trên nhiều mảnh sẽ bị giảm
hiệu suất hoạt động.
- Nếu một khung nhìn đòi hỏi thông tin ở nhiều mảnh thì việc truy xuất dữ liệu để nối lại sẽ
có chi phí cao
- Kiểm soát dữ liệu nghữ nghĩa: Do kết quả của phân mảnh, các thuộc tính tham gia vào
một phụ thuộc có thể bị phân rã vào các mảnh khác nhau và được cấp phát cho những vị trí
khác nhau.
Việc phân mảnh cơ sở dữ liệu đến mức nào là một quyết định rất quan trọng, có ảnh hưởng
năng đến vấn đề vấn tin. Mức độ phân mảnh có thể là từ thái cực không phân mảnh nào đến thái
cực phân mảnh thành từng bộ (trong trường hợp phân mảnh ngang) hoặc thành từng thuộc tính
(phân mảnh dọc).
2.8.6.2 Điều kiện phân đoạn
- Điều kiện đầy đủ: Tất cả dữ liệu của quan hệ toàn cục phải được ánh xạ thành các đoạn
nghĩa là không có trường hợp một mục dữ liệu thuộc về một quan hệ toàn cục không nằm trong
một phân đoạn nào. Nếu một thể hiện quan hệ R được phân rã thành các mảnh R1, R2,…,Rn, thì
mỗi mục dữ liệu có thể gặp trong R cũng có thể gặp một trong nhiều mảnh Ri. Đặc tính này
giống như tính chất phân rã nối không mất thông tin trong chuẩn hoá, cũng quan trọng trong
phân mảnh bởi vì nó bảo đảm rằng dữ liệu trong quan hệ R được ánh xạ vào các mảnh và không
bị mất.
- Điều kiện xây dựng lại: Phải luôn luôn có khả năng xây dựng lại một quan hệ toàn cục từ
những đoạn của nó. Hiển nhiên điều kiện này là cần thiết. Nếu một thể hiện quan hệ R được
phân rã thành các mảnh R1, R2,…,Rn, thì cần phải định nghĩa một toán tử quan hệ  sao cho
R=Ri, Ri  Fr
Toán tử  thay đổi tuỳ theo từng loại phân mảnh, tuy nhiên điều quan trọng là phải xác
định được nó. Khả năng tái thiết một quan hệ từ các mảnh của nó bảo đảm rằng các ràng buộc
được định nghĩa trên dữ liệu dưới dạng các phụ thuộc sẽ được bảo toàn.
- Điều kiện tách rời: Nếu quan hệ R được phân rã ngang thành các mảnh R1, R2,…,Rn, và
mục dữ liệu di nằm trong mảnh Rj, thì nó sẽ không nằm trong mảnh Rk khác (k≠j ). Tiêu chuẩn
này đảm bảo các mảnh ngang sẽ tách biệt (rời nhau). Nếu quan hệ được phân rã dọc, các thuộc
47
tính khoá chính phải được lặp lại trong mỗi mảnh. Vì thế trong trường hợp phân mảnh dọc, tính
tách biệt chỉ được định nghĩa trên các trường không phải là khoá chính của một quan hệ.
2.9.6.3 Phân đoạn ngang
Các yêu cầu về thông tin: Để phục vụ các hoạt động phân mảnh ta cần có các loại thông
tin sau:
- Thông tin về cơ sở dữ liệu: Đây là thông tin về lược đồ toàn cục, chỉ ra các mối liên kết
giữa các quan hệ. Mô hình hóa sự liên kết này bằng một đồ thị có hướng, các cung chỉ một liên
kết nối bằng, mỗi nút là một lược đồ quan hệ. Quan hệ ở đầu đường nối gọi là quan hệ chủ nhân
(Owner) còn quan hệ ở cuối đường nối gọi là quan hệ thành viên (Member). Ta định nghĩa hai
hàm Owner và Member từ tập các đường nối đến tập các quan hệ.
- Thông tin về ứng dụng: Thông tin về ứng dụng có hai loại: Thông tin định tính dùng để
phân mảnh và thông tin định lượng dùng để cấp phát. Thông tin định tính về cơ bản là các vị từ
dùng trong câu vấn tin, các vị từ được xây dựng dựa trên sự phân tích các ứng dụng.
Công việc xác định cách thức phân đoạn ngang của cơ sở dữ liệu là vấn đề có đặc tính
logic của dữ liệu, vị từ phân đoạn, thống kê đặc tính của dữ liệu, số lượng chương trình ứng
dụng tham chiếu đến các đoạn và tổ chức của mặt nào đó về mặt vật lý và thống kê. Trong phần
này, chúng ta bàn đến các khái niệm liên quan đến phân mảnh ngang (phân tán ngang). Có hai
chiến lược phân mảnh ngang cơ bản:
- Phân mảnh nguyên thuỷ (primary horizontal fragmentation) của một quan hệ được thực
hiện dựa trên các vị từ được định nghĩa trên quan hệ đó.
- Phân mảnh ngang dẫn xuất (derived horizontal fragmentation ) là phân mảnh một quan
hệ dựa vào các vị từ được định trên một quan hệ khác.
Phân mảnh ngang chia một quan hệ r theo các bộ, vì vậy mỗi mảnh là một tập con các bộ
t của quan hệ r.
Phân mảnh nguyên thuỷ (primary horizontal fragmentation) của một quan hệ được thực
hiện dựa trên các vị từ được định nghĩa trên quan hệ đó. Ngược lại phân mảnh ngang dẫn xuất
(derived horizontal fragmentation) là phân mảnh một quan hệ dựa vào các vị từ được định trên
một quan hệ khác. Như vậy trong phân mảnh ngang tập các vị từ đóng vai trò quan trọng.

48
Hình 2-16 Phân đoạn ngang quan hệ
Hình trên trình bày một cách biểu diễn các đường nối giữa các quan hệ. chú ý rằng
hướng của đường nối cho biết mối liên hệ một -nhiều. Chẳng hạn với mỗi chức vụ có nhiều
nhân viên giữ chức vụ đó, vì thế chúng ta sẽ vẽ một đường nối từ quan hệ CT (chi trả) hướng
đến NV (nhân viên). Đồng thời mối liên hệ nhiều- nhiều giữa NV và DA(dự án) được biểu
diễn bằng hai đường nối đến quan hệ PC (phân công). Quan hệ nằm tại đầu (không mũi tên )
của đường nối được gọi là chủ nhân (owner) của đường nối và quan hệ tại cuối đường nối (đầu
mũi tên) gọi là thành viên (member).
Mỗi đoạn ngang trên một quan hệ R có thể được chỉ ra bằng phép toán δ trong đại số
quan hệ. Một tập hợp các đoạn ngang mà điều kiện của chúng là C1, C2, … chứa tất cả các bộ
trong R, mỗi bộ trong R thỏa mãn điều kiện (C1 or C2 or … or Cn) được gọi là một phân đoạn
ngang đầy đủ của R. Trong nhiều trường hợp, một phân đoạn ngang đầy đủ cũng tách rời; nghĩa
là không có bộ nào trong R thỏa mãn Ci AND Cj với i ≠ j.
Trường hợp riêng của phân đoạn ngang là phân đoạn ngang dẫn xuất áp dụng cho sự
phân chia của quan hệ chính cho các quan hệ phụ có liên quan đến quan hệ chính thông qua
khóa ngoài. Phân mảnh ngang dẫn xuất được định nghĩa trên một quan hệ thành viên của đường
nối dựa theo phép toán chọn trên quan hệ chủ nhân của đường nối đó, hay ta còn gọi là sự phân
mảnh quan hệ thành viên dựa trên cơ sở phân mảnh quan hệ chủ nhân.
Như thế nếu cho trước một đường nối L, trong đó owner (L)=S và member(L)=R, và các
mảnh ngang dẫn xuất của R được định nghĩa là:
Ri=R|>< Si , 1 ≤ i ≤ w

49
Trong đó w là số lượng các mảnh được định nghĩa trên R, và Si=Fi(S) với Fi là công
thức định nghĩa mảnh ngang nguyên thuỷ Si.
Yêu cầu thông tin của phân mảnh ngang:
- Thông tin về cơ sở dữ liệu: Đây là thông tin về lược đồ dữ liệu toàn cục, chỉ ra các mối
liên kết giữa các quan hệ. Ta mô hình hóa sự liên kết này bằng một đồ thị có hướng, các
cung chỉ một liên kết nối bằng, các nút là một lược đồ quan hệ. Quan hệ ở đường đầu nối
gọi là chủ (Owner) còn quan hệ ở cuối đường nối gọi là thành viên (Member).
- Thông tin về ứng dụng: Thông tin định tính dùng để phân mảnh và thông tin định lượng
dùng để cấp phát.
Thông tin định tính về cơ bản là các vị từ dùng trong câu vấn tin, các vị từ này được xây
dựng dựa trên sự phân tích các ứng dụng. Vị từ được định nghĩa: Cho lược đồ R(A1, A2,
…, An) với thuộc tính Ai có miền xác định Di ta có vị từ đơn giản:
P: Ai  Value   (, ≤, =, >, ≥, ≠) và Value  D
Tập PRI chứa các vị từ đơn giản trên quan hệ R
2.9.6.4 Phân đoạn dọc
Xác định phân đoạn dọc của 3quan hệ R là chia nhóm các thuộc tính thành tập các thuộc
tính để các chương trình ứng dụng tham chiếu đến.
Tuy nhiên phải phân biệt vấn đề chia phần theo chiều dọc và theo cách này các tập không
liên kết với nhau từ những vấn đề chia nhóm theo chiều ngang. Điều kiện đúng đối với việc
chia theo chiều ngang là đòi hỏi mỗi thuộc tính của quan hệ R phải ít nhất thuộc về một tập mà
mỗi tập gồm có khoá của R hoặc một tập các minh chứng.
Mục đích của việc phân đoạn dọc là phân hoạch một quan hệ thành một tập các quan hệ
nhở hơn để nhận ra các phân đoạn Ri, như vậy nhiều chương trình ứng dụng có thể được thực
hiện thao tác trên dữ liệu mà chỉ cần sử dụng một đoạn. Một phân mảnh tối ưu là một phân
mảnh sinh ra một lược đồ phân mảnh cho phép giảm đến tối đa thời gian thực thi các ứng dụng
chạy trên mảnh đó. Phân mảnh dọc phức tạp hơn phân mảnh ngang. Điều này là do tổng số lựa
chọn có thể có của phân mảnh dọc là rất lớn. Vì vậy để giải quyết tối ưu bài toán phân mảnh
dọc thực sự rất khó, vì thế ta dùng phương pháp khám phá (Heuristic). Có hai bài toán heuristic
cho phan mảnh dọc quan hệ toàn cục:

50
- Nhóm thuộc tính: bắt đầu bằng cách gán mỗi thuộc tính cho một mảnh và tại mỗi bước,
nối một số mảnh lại cho đến khi thỏa mãn một yêu cầu nào đó.
- Tách mảnh: bắt đầu bằng một quan hệ và quyết định cách phân mảnh có lợi dựa trên
hành vi truy xuất của các ứng dụng trên các thuộc tính.
Việc nhân bản khóa của các quan hệ toàn cục trong các mảnh là đặc trưng của phân mảnh
dọc cho phép tái thiết lập quan hệ toàn cục và duy trì tính toàn vẹn ngữ nghĩa. Điều kiện đúng
đối với việc chia theo chiều ngang là đòi hỏi mỗi thuộc tính của R phải ít nhất thuộc về một tập
mà mỗi tập có khóa của R hoặc một tập các minh chứng.
Ví dụ, xem quan hệ R được phân đoạn dọc thành R1 và R2. Chương trình ứng dụng thích
hợp với phân đoạn dọc nếu các chương trình này có thể thực hiện qua việc sử dụng một trong
hai đoạn R1 và R2. Tuy nhiên nếu chương trình ứng dụng yêu cầu cả hai đoạn R1 và R2 thì cách
phân đoạn dọc không có lợi ích vì cần phải thêm một liên kết t vào để yêu cầu tạo lại quan hệ.
Tiêu chuẩn này cũng áp dụng cho cơ sở dữ liệu phân tán. Trong CSDL phân tán, tiện lợi của
việc phân đoạn dọc khi nhiều chương trình ứng dụng sử dụng R1 và nhiều chương trình ứng
dụng sử dụng R2 ở các vị trí khác nhau. Theo cách này đặt quan hệ R ở một vị trí có thể xung
đột giữa các chương trình ứng dụng khi cùng truy cập vào.
Công việc xác định cách phân đoạn cho quan hệ R không dễ dàng vì số lượng những phần
có khả năng phát triển có thể kết hợp với số lượng các thuộc tính của quan hệ R và số lượng các
bó có khả năng lớn thêm. Vì vậy thể hiện của quan hệ lớn, theo hướng tiếp cận heuristic cần
thiết để xác định các phần hay các nhóm thuộc tính để phân chia hợp lý. Có hai cách phân chia
các thuộc tính:
- Hướng chia từ trên xuống: quan hệ được liên tục chia thành các đoạn (không chọn lọc).
- Hướng nhóm từ dưới lên: các thuộc tính liên kết để tạo thành các đoạn (có chọn lọc).
Mỗi đoạn dọc trên một quan hệ R có thể được chỉ ra bằng một phép toán ∏ trong đại số
quan hệ. Một tập hợp các đoạn dọc mà các danh sách chiếu của chúng L1, L2, … chứa tất cả các
thuộc tính trong R nhưng chỉ chung thuộc tính khóa chính của R được gọi là một phân đoạn dọc
đầy đủ của R. Trong trường hợp này các danh sách chiếu thỏa mãn hai kiện sau đây:
- L1 U L2 U … U Ln = TT (R)
- L1 ∩ Lj = PK(R) với mọi i ≠ j trong đó TT(R) là tập hợp các thuộc tính của R và PK(R) là
khóa chính của R.
51
Để xây dựng lại quan hệ R từ một phân đoạn dọc đầy đủ, chúng ta áp dụng phép toán nối
cho các đoạn dọc.
2.9.6.5 Phân đoạn hỗn hợp
Trong đa số các trường hợp, phân mảnh ngang hoặc phân mảnh dọc đơn giản cho một
lược đồ CSDL không đủ đáp ứng các yêu cầu từ ứng dụng. Trong trường hợp đó phân mảnh
dọc có thể thực hiện sau một số mảnh ngang hoặc ngược lại, sinh ra một lối phân hoạch có cấu
trúc cây. Bởi vì hai chiến lược này được áp dụng lần lượt, chọn lựa này được gọi là phân mảnh
hỗn hợp.Cách đơn giản nhất để phân đoạn hỗn hợp gồm có
- Áp dụng phân đoạn ngang cho các đoạn phân chia theo chiều dọc.
- Áp dụng phân đoạn dọc cho các đoạn phân chia theo chiều ngang.
Mặc dù các công việc này có thể lặp lại, tạo ra cây phân đoạn phức tạp nào đó, có nghĩa
là có hai hay nhiều cấp phân đoạn sinh ra trong thực tế. 2 vấn đề trên cho phép cả 2 cách phân
đoạn được xem xét mỗi quan hệ và vì vậy không đạt được tiện lợi cần thiết. Cách phân đoạn lần
thứ hai có thể áp dụng cho đoạn con từ cách phân đoạn thứ nhất.
Một đoạn của quan hệ R được chỉ ra bằng một tổ hợp SELECT – PROJECT các phép toán
πL(δC(R)). Nếu C = TRUE nghĩa là tất cả các bộ được chọn và L ≠ TT(R) chúng ta nhận được
một đoạn dọc và nếu C≠ TRUE và L = TT(R) chúng ta nhận được một đoạn ngang, cuối cùng
nếu C ≠ TRUE và L ≠ TT(R) chúng ta nhận được một đoạn hỗn hợp.
Một lược đồ phân đoạn của một cơ sở dữ liệu là một định nghĩa của một tập hợp đoạn mà
nó chứa tất cả các thuộc tính và các bộ trong cơ sở dữ liệu và thỏa mãn điều kiện là toàn bộ cơ
sở dữ liệu có thể được xây dựng lại từ các đoạn bằng cách áp dụng một dãy các phép toán hợp
và nối.
2.8.7 Định vị và nhân bản dữ liệu
Nhân bản có lợi trong việc làm tăng sự sẵn sàng của dữ liệu. Trường hợp đặc biệt nhất là
nhân bản toàn bộ cơ sở dữ liệu tại mỗi trạm trong hệ thống phân tán, đó là việc tạo ra một cơ sở
dữ liệu phân tán được nhân bản đầy đủ. Điều đó có thể cải thiện sự sẵn sàng một cách đáng kể
bới hệ thống có thể tiếp tục thao tác chừng nào vẫn còn ít nhất là một trạm. Điều đó cũng làm
cải thiện thao tác rút thông tin ra đối với các truy vấn toàn thể bởi kết quả của một truy vấn có
thể nhận được dữ liệu từ một trạm bất kỳ. Nhược điểm của nhân bản đầy đủ là có thể làm chậm
các phép toán cập nhật bởi một cập nhật logic đơn phải được thực hiện trên mỗi bản sao của
52
CSDL để giữ sự nhất quán của các bản sao. Nhân bản đầy đủ làm cho sự kiểm tra cạnh tranh và
các kỹ thuật phục hồi đắt hơn nếu không có sự nhân bản.
Trái ngược với nhân bản đầy đủ là việc không có nhân bản, mỗi đoạn được lưu chính xác
tại một trạm. Trong trường hợp này tất cả các đoạn phải rời nhau, trừ việc lặp lại các khóa chính
trong số các đoạn dọc hoặc đoạn hỗn hợp. Việc đó được gọi là định vị không dư thừa.
Giữa hai cách nhân bản trên, ta có một chuỗi nhân bản bộ phần của dữ liệu, nghĩa là một
số đoạn của cơ sở dữ liệu có thể được nhân bản còn các đoạn khác thì không. Số các bản sao
của mỗi đoạn có thể đi khắp từ một đến tổng số các trạm trong hệ thống phân tán. Một mô tả
của việc nhân bản các đoạn gọi là một lược đồ nhân bản.
Mỗi đoạn hoặc mỗi bản sao của một đoạn, phải được gắn với mỗi trạm cụ thể trong hệ
thống phân tán. Quá trình đó gọi là sự phân tán dữ liệu hoặc sự định vị dữ liệu. Việc lựa chọn
các trạm và mức độ nhân bản phụ thuộc vào các mục đích thao tác và tính sẵn sàng, phụ thuộc
vào kiểu và tính thường xuyên của các giao tác được đưa ra tại mỗi trạm. Các CSDL được truy
cập ở nhiều trạm có thể được nhân bản ở các trạm đó. Nếu nhiều cập nhật được thưc hiện thì
việc hạn chế nhân bản có thể có lợi hơn.
2.8.7.1 Bài toán cấp phát
Giả sử có các tập mảnh FF = {F1, F2, …, Fn} và mạng bao gồm các vị trí SS = {S1, S2,
…, Sm} trên đó có các tập ứng dụng QQ = {Q1, Q2, …, Qn} đang chạy.
Bài toán cấp phát là tìm phân phối tối ưu FF cho SS. Một trong các điểm quan trọng cần
thảo luận là định nghĩa khái niệm tối ưu. Khái niệm tối ưu có thể định nghĩa tương ứng với hai
yếu tố:
- Chi phí nhỏ nhất: Hàm chi phí bao gồm có chi phí lưu mỗi mảnh Fi tại vị trí Sj, chi phí
vấn tin Fi tại vị trí Sj, chi phí cập nhật Fi tại tất cả vị trí chứa nó và chi phí truyền dữ
liệu. Bài toán cấp phát tìm lược đồ cấp phát với hàm chi phí tổ hợp nhỏ nhất.
- Hiệu năng: Chiến lược cấp phát được thiết kế nhằm duy trì hiệu năng hữu lượng. Các
chiến lược thiết kế đã biết là hạ thấp thời gian đáp ứng và tăng tối đa lưu lượng hệ thống
tại mỗi vị trí.
Một lược đồ cấp phát hoàn hảo là trả lời câu vấn tin trong thời gian ngắn nhất nhưng vẫn
đảm bảo chi phí xử lý thấp nhất. Chúng ta xét trường hợp cố định mảnh F  FF. Có thể đưa ra
một số giả thiết và định nghĩa nhằm mô hình hóa bài toán cấp phát này. Giả sử có thể sửa đổi
53
QQ để xác định được các vấn tin cập nhật và chỉ đọc, để định nghĩa các đại lượng sau cho mảnh
F
T = {T1, T2, …, Tm} với Ti là lưu lượng chỉ đọc sinh ra tại Si cho mảnh F và
U = {U1, U2, …, Um} với Ui là lưu lượng cập nhật sinh ra tại Si cho mảnh F
Giả sử chi phí truyền tại hai vị trí Si và Sj là cố định với mỗi đơn vị truyền. Ngoài ra cũng
giả sử rằng chúng khác nhau khi cập nhật và khi truy xuất chỉ đọc. Ta định nghĩa: cij là chi phí
truyền 1 đơn vị đối với các yêu cầu chỉ đọc giữa vị trí Si và Sj, c’ij là chi phí truyền một đơn vị
đối với yêu cầu cập nhật tại vị trí Si và Sj; và ký hiệu
C(T) = {c12, …, c1m, …, cm-1,m}
C’(U) = {c’12, …, c’1m, …, c’m-1,m}
Gọi chi phí lưu trữ mảnh F tại vị trí Si là di ký hiệu D = {d1, …, dm}
Giả thiết không có ràng buộc về khả năng lưu trữ cho các vị trí hoặc cho các đường truyền.
Khi đó bài toán cấp phát có thể được đặc tả là bài toán cực tiểu hóa chi phí, trong khi đó ta tìm
tập I  SS các vị trí lưu các bản sao của mảnh F. Ký hiệu xi là biến quyết định chọn nơi đặt
sao cho
𝑥𝑖 = 1 𝑛ế𝑢 𝐹 𝑝 ℎâ𝑛 𝑐ℎ𝑜 𝑆𝑖
{
0, 𝑛ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖
Bài toán cấp phát được phát biểu chính xác như sau:
𝑚

min [∑ (∑ 𝑥𝑗𝑢𝑗𝑐 ′ 𝑖𝑗 + 𝑡𝑖 min 𝑐𝑖𝑗) + ∑ 𝑥𝑗𝑑𝑗


𝐼 ∈𝑆𝑆 𝑆𝑗∈𝐼
𝑖=1 𝑆𝑗∈𝐼 𝑆𝑗∈𝑖

Số hạng thứ nhất tương ứng với chi phí truyền các cập nhật từ vị trí Si đến mọi vị trí có bản
sao của mảnh F và với chi phí thực hiện yêu cầu chỉ đọc tại vị trí Si nhưng với chi phí truyền là
thấp nhất. Số hạng thứ hai tính tổng chi phí lưu tất cả các bản sao của mảnh F.
2.8.7.2 Mô hình cấp phát
Trong phần này sẽ đề cập đến mô hình cấp phát làm giảm tổng chi phí xử lý và lưu trữ.
Mô hình có dạng sau min(tổng chi phí) với ràng buộc ràng buộc thời gian đáp ứng, ràng buộc
lưu trữ và ràng buộc xử lý.
𝑥𝑖𝑗 = 1, 𝑛ế𝑢 𝐹𝑖 𝑝ℎâ𝑛 𝑐ℎ𝑜 𝑆𝑗
Ký hiệu biến quyết định {
0, 𝑛ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖
Tổng chi phí
54
Hàm tổng chi phí có hai thành phần: phần xử lý và phần lưu trữ có thể biểu diễn là:

Với QPCi là chi phí xử lý vấn tin của ứng dụng qi, STCjk là chi phí lưu mảnh Fi tại Sj
Ta xét chi phí lưu trữ trước, nó được cho bởi:

và hai ký hiệu tổng là tìm tổng các chi phí lưu trữ tại tất cả vị trí cho tất cả các mảnh. Chi phí xử
lý vấn tin khó xác định hơn, ta tách QPCi thành hai phần chi phí xử lý PC và truyền TC: QPCi
= PCi + TCi
Thành phần xử lý PC gồm 3 hệ số chi phí: chi phí truy xuất AC, chi phí toàn vẹn IE và chi
phí điều khiển đồng thời CC: PCi = ACi + IEi + CCi
Mô tả chi tiết cho mỗi hệ số chi phí phụ thuộc thuật toán dùng để hoàn tất các tác vụ đó.
Chi tiết về chi phí truy xuất AC như sau:

Hai số hạng đầu trong công thức trên tính số truy xuất của vấn tin qi đến mảnh Fj. Chú ý
rằng:

là tổng số các truy xuất cập nhật và đọc mảnh Fj. Giả thiết chi phí xử lý là giống nhau với mọi
mảnh. Ký hiệu tổng cho biết tổng số các truy xuất cho tất cả các mảnh qi được tham chiếu.
Nhân với PLCk cho ra chi phí của truy xuất này tại vị trí Sk. Ta dùng xjk để tách giá trị chi phí
cho các vị trí có lưu các mảnh. Hệ số chi phí duy trì tính toàn vẹn cơ sở dữ liệu có thể mô tả
giống thành phần xử lý ngoại trừ chi phí xử lý cục bộ một đơn vị cần được thay đổi nhằm phản
ánh chi phí thực sự để duy trì tính toàn vẹn. Hàm chi phí truyền dữ liệu có thể biểu diễn giống
hàm chi phí truy xuất. Tuy nhiên tổng chi phí truyền dữ liệu cho cập nhật và cho yêu cầu chỉ
đọc sẽ khác nhau hoàn toàn. Trong vấn tin cập nhật, ta cần cho tất cả mọi vị trí biết nơi có các
bản sao, còn trong vấn tin chỉ đọc thì chỉ cần truy xuất đến 1 trong các bản sao là đủ. Ngoài ra
vào lúc yêu cầu vấn tin cập nhật thì không cần truyền dữ liệu ngược lại cho vị trí đưa ra vấn tin

55
ngoài một thông báo xác nhận, còn trong vấn tin chỉ đọc có thể phải có nhiều thông báo truyền
dữ liệu.
Thành phần cập nhật hàm truyền dữ liệu:

Số hạng thứ 1 để gửi thông báo cập nhật từ vị trí gốc o(i) của qi đến tất cả bản sao cần cập nhật.
Số hạng thứ hai dành cho thông báo xác nhận. Thành phần chi phí chỉ đọc là:

Số hạng thứ 1 trong TCR biểu thị chi phí truyền yêu cầu chỉ đọc đến những vị trí có bản
sao của mảnh cần truy xuất. Số hạng thứ 2 biểu thị chi phí để truyền kết quả từ những vị trí này
đến nơi yêu cầu. Phương trình này khẳng định rằng trong số các vị trí có bản sao của cùng một
mảnh, chỉ vị trí có chi phí truyền thấp nhất mới được chọn để thực hiện thao tác này. Hàm chi
phí truyền dữ liệu của câu vấn tin qi có thể được tính là: TCi = TCUi + TCRi
Ràng buộc
Ràng buộc thời gian đáp ứng cần được đặc tả là:
Thời gian thực thi của qi ≤ thời gian đáp ứng lớn nhất của qi, qi  QQ
Người ta thường đặc tả số đo chi phí của hàm theo thời gian vì nó đơn giản.
Ràng buộc lưu trữ là:

Ràng buộc cấp phát là:

2.8.7.3 Chi phí truyền dữ liệu của xử lý truy vấn phân tán
Trong hệ thống phân tán, có nhiều nhân tố thêm vào làm phức tạp cho việc xử lý truy vấn.
Trước tiến là chi phí truyền dữ liệu trên mạng. Các dữ liệu có trong các tệp tin trung gian được
truyền sang trạm khác để xử lý tiếp, cũng như các tệp tin kết quả cuối cùng cũng có thể phải
chuyển đến trạm mà ở đó cần kết quả truy vấn. Mặc dù các chi phí này là không cao, nếu các
tram được nối với nhau thông qua mạng cục bộ tốc độ cao, chúng trở nên có nghĩa trong các
kiểu mạng khác. Như vậy, các thuật toán tối ưu truy vấn của hệ quản trị cơ sở dữ liệu phân tán
56
xem mục tiêu giảm số truyền dữ liệu như là một tiêu chuẩn tối ưu trong việc chọn một chiến
lược thực hiện truy vấn phân tán.
Ví dụ: ta có cơ sở dữ liệu sau:
NV( MNV, TênNV, Chức vụ)
PC (MNV, MDA, Nhiệm vụ, Thời gian)
Và một câu vấn tin đơn giản sau:
“Cho biết tên của các nhân viên hiện đang quản lý một dự án”
Biểu thức vấn tin bằng phép tính quan hệ theo cú pháp của SQL là:
SELECT TênNV FROM NV, PC WHERE NV.MNV=PC.MNV
AND Nhiệmvụ=”Quảnlý”
Hai biểu thức tương đương trong đại số quan hệ:
TênNV( Nhiệmvụ=”Quảnlý” NV.MNV=PC.MNV (NV x PC))
Và TênNV(NV|><|MNV(Nhiệmvụ=”Quảnlý” (PC)))
Chúng ta giả sử rằng các quan hệ NV và PC được phân mảnh ngang như sau:
NV1=MNV  “E3”(NV)
NV2=MNV > “E3”(NV)
PC1=MNV  “E3”(PC)
PC2=MNV  “E3”(PC)
Các mảnh PC1, PC2, NV1, NV2 theo thứ tự được lưu tại các vị trí 1, 2, 3 và 4 và kết quả
được lưu tại vị trí 5.

57
Chiến lược 1

Chiến lược 2
Mũi tên từ vị trí i đến vị trí j có nhãn R chỉ ra rằng quan hệ R được chuyển từ vị trí i đến
vị trí j. Chiến lược A sử dụng sự kiện là các quan hệ EMP và ASG được phân mảnh theo cùng
một cách để thực hiện song song các phép toán chọn và nối. chiến lược B tập trung tất cả các dữ
liệu tại vị trí lưu kết quả trước khi xử lý câu vấn tin.
Để đánh giá việc tiêu dùng tài nguyên của hai chiến lược này, chúng ta sử dụng một mô
hình chi phí đơn giản sau. Chúng ta giả sử rằng thao tác truy xuất một bộ (tuple access) được ký
hiệu là tupacc, là một đơn vị và thao tác truyền một bộ (tuple transfer) tuptrans là 10 đơn vị.
Đồng thời chúng ta cũng giả sử là các quan hệ NV và PC tương ứng có 400 và 1000 bộ, và có
20 giám đốc dự án thống nhất cho các vị trí. Cuối cùng chúng ta giả sử rằng các quan hệ PC và
NV được gom tụ cục bộ tương ứng theo các thuộc tính Nhiệmvụ và MNV. Vì vậy có thể truy
xuất trực tiếp đến các bộ của PC dựa trên giá trị của thuộc tính Nhiệmvụ (tương ứng là MNV
cho NV)
* Tổng chi phí của chiến lược A có thể được tính như sau:
1.Tạo ra PC’ bằng cách chọn trên PC cần (10+10)* tupacc = 20
2. Truyền PC’ đến vị trí của NV cần (10+10)*tuptrans = 200
3. Tạo NV’ bằng cách nối PC’ và NV’ cần (10+10)*tupacc*2 = 40
4. Truyền NV’ đến vị trí nhận kết quả cần (10+10)*tuptrans = 200
Tổng chi phí 460
* Tổng chi phí cho chiến lược B có thể được tính như sau:
1. Truyền NV đến vị trí 5 cần 400*tuptrans = 4.000
2. truyền PC đến vị trí 5 cần 1000*tuptrans =10.000
3. Tạo ra PC’ bằng cách chọn trên PC cần 1000*tupacc = 1.000
4. Nối NVvà PC cần 400*20*tupacc = 8.000
58
Tổng chi phí là 23.000
Trong chiến lược B, chúng ta đã giả sử rằng các phương pháp truy xuất các quan hệ NV
và PC dựa trên các thuộc tính Nhiệm vụ và MNV bị mất tác dụng do việc truyền dữ liệu. Đây là
một giả thiết hợp lý trong thực tế. Chiến lược A tốt hơn với hệ số 50. Hơn nữa nó đưa ra một
cách phân phối công việc giữa các vị trí. Khác biệt còn cao hơn nữa nếu chúng ta giả thiết là tốc
độ truyền chậm hơn và/ hoặc mức độ phân mảnh cao hơn. Chỉ số đánh giá tiêu dùng tài nguyên
là tổng chi phí (total cost) phải trả khi xử lý truy vấn. Tổng chi phí là tổng thời gian cần để xử
lý các phép toán truy vấn tại các vị trí khác nhau và truyền dữ liệu giữa các vị trí. Một công cụ
khác là thời gian đáp ứng của câu truy vấn, là thời gian cần thiết để chạy câu truy vấn. Vì các
phép toán có thể được thực hiện song song tại các vị trí khác nhau, thời gian đáp ứng có thể nhỏ
hơn nhiều so với tổng chi phí của nó. Trong môi trường CSDL phân tán, tổng chi phí cần phải
giảm thiểu là chi phí CPU, chi phí xuất nhập và chi phí truyền. Chi phí CPU là chi phí phải trả
khi thực hiện các thao tác trên dữ liệu trong bộ nhớ chính. Chi phí xuất nhập là thời gian cần
thiết cho các thao tác xuất nhập đĩa. Chi phí truyền tin là thời gian cần để trao đổi dữ liệu giữa
các vị rí tham gia vào trong quá trình thực thi câu vấn tin. Chi phí này phải trả khi phải xử lý
các thông báo (định dạng/giải định dạng) và khi truyền dữ liệu trên mạng. Chi phí truyền có lẽ
là yếu tố quan trọng nhất được xét đến trong CSDL phân tán.
Xử lý truy vấn phân tán sử dụng phép nửa nối
Tư tưởng đằng sau xử lý truy vấn phân tán sử dụng phép toán nửa nối là làm giảm số các
bộ giá trị trong một quan hệ trước khi chuyển nó đến trạm khác. Một cách trực quan, tư tưởng
gửi một cột nối của một quan hệ R đến trạm mà ở đó quan hệ S được định vị, sau đó cột này
được nối với S. Các thuộc tính nối cùng với các thuộc tính được đòi hỏi trong kết quả được
chiếu ra và được nhập trở lại trạm ban đầu và được nối với R. Như vậy, chỉ có cột nối của R là
được chuyển theo một hướng và một tập con của S với các bộ hoặc các thuộc tính được chuyển
theo một hướng khác. Nếu chỉ 1 phần nhỏ các bộ trong S tham gia vào phép nối, thì đó là một
cách giải quyết có hiệu quả để làm cực tiểu việc chuyển DL.
Để diễn đạt chiến lược này, người ta sử dụng phép toán nửa nối. Một phép toán nửa nối
(R), trong đó A, B là các thuộc tính phù hợp miền của R và S tương ứng, tạo ra kết quả giống
như biểu thức đại số quan hệ (). Trong một môi trường phân tán, trong đó R và S nằm ở hai

59
trạm khác nhau, phép toán nửa nối thường được thực hiện bằng cách: đầu tiên chuyển F = đến
trạm có R và sau đó nối với R.
2.8.7.4 Phân tách truy vấn và cập nhật
Trong một hệ quản trị cơ sở dữ liệu không trong suốt, phân tán, user diễn đạt một truy vấn
một cách trực tiếp giới hạn của các đoạn cụ thể. Ví dụ: có câu truy vấn “Đưa ra tên và số giờ
làm việc theo tuẩn đối với mỗi nhân viên làm việc trên một số dự án được đơn vị 5 kiểm soát”
được chỉ ra trên cơ sở dữ liệu phân tán Công ty trong đó các quan hệ ở trạm 1 là trạm trung tâm,
trạm 2 lưu trữ các thông tin về đơn vị 5. Một user đặt ra một truy vấn như vậy phải chỉ rõ nó
tham chiếu các quan hệ dự án 5 và làm việc 5 ở trạm 2 hoặc các quan hệ dự án và làm việc ở
trạm 1. User phải duy trì tính ổn định của các mẫu dữ liệu được nhân bản khi cập nhật một hệ
quản trị cơ sở dữ liệu không trong suốt nhân bản. Mặt khác, một hệ quản trị cơ sở dữ liệu hỗ trợ
nhân bản, phân đoạn, phân tán một cách đầy đủ cho phép user chỉ ra một truy vấn hoặc một yêu
cầu cập nhật trên lược đồ cơ sở dữ liệu giống như hệ quản trị cơ sở dữ liệu là tập trung. Với các
truy cập, hệ quản trị cơ sở dữ liệu có trách nhiệm duy trì sự cố kết giữa các mẫu được nhân bản
bằng cách sử dụng một trong các thuật toán kiểm tra cạnh tranh phân tán. Với các truy vấn, một
module phân tách truy vấn phải tách một truy vấn thành các truy vấn con có thể được thực ở
một trạm con. Thêm nữa, một chiến lược để tổ hợp các kết quả của các truy vấn con để tạo nên
kết quả truy vấn cũng được sinh ra. Khi mà hệ quản trị cơ sở dữ liệu xác định rằng một mục
được tham chiếu đến trong truy vấn là được nhân bản, nó phải chọn hoặc cụ thể hóa bản sao
trong khi thực hiện truy vấn.
Để xác định bản sao nào chứa các mục dữ liệu được tham chiếu trong một truy vấn, hệ
quản trị cơ sở dữ liệu tham chiếu đến thông tin phân tán, nhân bản và phân đoạn được lưu trữ
trong danh mục hệ quản trị cơ sở dữ liệu. Với phân đoạn dọc, danh sách thuộc tính cho mỗi một
đoạn được giữ trong danh mục. Với phân đoạn ngang, điều kiện phân đoạn đôi khi còn gọi là
bảo vệ được giữ cho mỗi đoạn. Đó là một điều kiện chọn chỉ ra những nào có ở trong đoạn, nó
được gọi là một bảo vệ bởi vì chỉ có các bộ thỏa mãn điều kiện này là được cho phép lưu trữ
trong đoạn. Với phân đoạn hỗn hợp, cả danh sách thuộc tính và điều kiện bảo vệ được lưu trữ
trong danh mục.

60
CHƯƠNG 3
CƠ SỞ DỮ LIỆU HƯỚNG ĐỐI TƯỢNG
3.1 Nhu cầu về hệ thống cơ sở dữ liệu hướng đối tượng
Nhìn chung hệ quản trị CSDL quan hệ được sử dụng nhiều nhưng chưa đáp ứng được
hết các yêu cầu của thực thế. Bên cạnh mô hình quan hệ, mô hình mạng và phân cấp vẫn
tồn tại. Một số hạn chế của hệ quản trị CSDL quan hệ.
3.1.1 Các đối tượng phức tạp
Một cách hình thức, một đối tượng nhằm xác định một cấu trúc phức tạp. Ví dụ: Các đối
tượng có cấu trúc phức tạp thường thấy là một siêu văn bản, một lược đồ, bức ảnh hay
chương trình. Sự phức tạp của các đối tượng này thể hiện qua: - Cấu trúc của đối tượng - Mô
hình hóa các đối tượng; - Ngôn ngữ hỏi trên các đối tượng.
Bình thường, CSDL quan hệ xử lý các loại dữ liệu quen thuộc như số, chữ, ngày tháng,
logic. Với các loại dữ liệu này, chưa thể thể hiện các loại dữ liệu định tính hay một danh sách.
Chính vì vậy người ta đòi hỏi mô hình hóa các đối tượng phức tạp và xử lý chúng trong hệ
quản trị nhờ ngôn ngữ chương trình. Các đối tượng phức tạp được coi như các kí tự, các dữ
liệu phức. Trong chương trình, chúng được mô tả theo các kiểu đặc biệt. Giải pháp này
đụng chạm đến các khái niệm cũng quan trọng khác là hiện tượng dư thừa mã khi mô tả các
đối tượng phức tạp trong chương trình ứng dụng, đụng chạm đến sự phụ thuộc chương
trình/dữ liệu. Như vậy việc xử lý các dữ liệu phức, có kích thước lớn theo giải pháp đó là
không hiệu quả. Hơn nữa, do cấu trúc dữ liệu hiện tại là quá đơn giản, không thể dùng cho
mô hình hóa các đối tượng phức tạp, thí dụ đối tượng trong hệ thống phân cấp hay đồ thị.
Ví dụ Một đối tượng phức tạp, chẳng hạn trong CAD, thường được phân rã và đặt trong các
quan hệ nhỏ; chính vì vậy mà thông tin ngữ nghĩa sẵn có trong một vấn đề bị chia nhỏ ra,
phân tán dưới dạng các giá trị trong các quan hệ. Điều này khiến người sử dụng phải nhìn
thế giới của bài toán theo cách nhìn của CSDL quan hệ. Để có thể khôi phục các ngữ nghĩa
ban đầu, không tránh được việc yêu cầu các phép kết nối quan hệ, là phép toán tốn kém tài
nguyên để thực hiện.
Ngoài việc mô hình hóa, việc truy vấn CSDL thông qua ngôn ngữ cũng cần phải xem xét.
Khó có thể có ngôn ngữ lý tưởng trên các đối tượng phức tạp. Cũng có thể sử dụng các
ngôn ngữ lập trình để giải quyết nhưng sẽ gặp khó khăn về sự khác biệt giữa kiểu dữ liệu và
61
cách khai thác dữ liệu của ngôn ngữ lập trình và ngôn ngữ CSDL. Ngôn ngữ truy vấn
CSDL thì dựa trên cơ sở tập hợp, trong khi ngôn ngữ lập trình dựa trên các thủ tục.
Các ứng dụng về CSDL được nhìn nhận theo hai khía cạnh:
- Khía cạnh tĩnh: thể hiện qua các dữ liệu.
- Khía cạnh động: thể hiện qua các phép xử lý tác động lên dữ liệu.
Người ta thấy những đối tượng được hệ quản trị CSDL quan hệ xử lý đặc biệt là dữ liệu
tĩnh. Phần tác động của chúng, tức các hoạt động, được mô tả riêng biệt thông qua các
chương trình ứng dụng tác động lên các dữ liệu. Người lập trình phải biết cấu trúc quan hệ
của các đối tượng, bởi lẽ hệ quản trị CSDL quan hệ không đáp ứng những nhu cầu về các đối t
ượng động.
3.1.2. Quản lý các tri thức
Một quan hệ được tổ chức như một tập các n-bộ, thể hiện những sự kiện. Một
HQTCSDLQH cho phép xử lý các sự kiện, các tri thức dưới dạng tổng quát và trừu tượng.
Người ta sử dụng tri thức này theo hai khía cạnh, ứng với hai cách suy luận:
- Đưa ra sự kiện mới, dựa trên các sự kiện và các tri thức đã biết.
- Sử dụng để trả lời các câu hỏi cần đến suy luận.
Do vậy việc quản lý các tri thức trong CSDL là nhu cầu thực tế, nhất là đối với các ứng
dụng cần đến các kiến thức chuyên gia. HQTCSDL sử dụng các điều kiện toàn vẹn. Điều kiện
ràng buộc dưới dạng các tri thức cần giới thiệu loại dữ liệu đặc biệt là tri thức trong cả các
chức năng quản trị và ngôn ngữ người sử dụng. Khi đưa tri thức vào ngôn ngữ hỏi dữ liệu hay
ngôn ngữ chương trình người ta cần giải quyết:
- Tri thức được mã hóa trong chương trình ứng dụng thường hay mắc nhược điểm là mô
tả dữ liệu trùng lặp.
- Việc quản lý mối liên hệ giữa những người sử dụng có dùng tri thức khó có thể tốt như
việc quản lý trong trường hợp chỉ sử dụng các dữ liệu định lượng.
- Việc suy luận với khối lượng lớn các thông tin như các sự kiện và tri thức trong hệ
quản trị CSDL có thể nặng nề, dẫn đến việc làm mất tính hiệu quả của toàn bộ hệ thống.
3.1.3. Quản trị các dữ liệu phân tán
Một hệ quản trị CSDL thông thường được tổ chức như một phần mềm cổ điển và được
cài đặt trên một máy tính tập trung. Hiện nay môi trường tin học phục vụ các công tác đa
62
dạng với các đối tượng phức tạp hơn, khiến người ta phải dùng đến hệ thống không tập
trung và xử lý song song. Như vậy cần có công cụ khác là hệ quản trị CSDL phân tán.
Hệ phân tán tạo lập do việc tập hợp các máy nối nhau theo mạng truyền thông dùng cho
một công việc tổng thể và được quản lý trên địa bàn rộng lớn. Yêu cầu đặt ra ở đây là quản
trị và xử lý những dữ liệu phân tán tại các máy độc lập. Các trạm độc lập ấy đ ã có các hệ quản
trị, nhưng không hoàn toàn giống nhau.
Để khai thác dữ liệu theo hệ thống quản trị CSDL phân tán, ng ười ta không thể không
thay đổi hệ quản trị cũ. Ít ra cũng phải mở rộng hệ quản trị CSDL tập trung. Hệ thống phân
tán cũng đ òi hỏi các chức năng xử lý song song.
Các hệ thống với các chức năng xử lý song song được thiết lập để khai thác các khả năng
xử lý song song của máy đa bộ xử lý. Đi đôi với các thiết bị cho phé p xử lý dữ liệu một cách
song song, cũng có các ngôn ngữ bậc cao cho phép mô tả dữ liệu phân tán v à mô tả song
song các chức năng xử lý. Nhược điểm của các hệ quản trị CSDL thế hệ hai đòi hỏi đưa ra các
hệ thống tiên tiến. Đó là các CSDL hướng đối tượng, CSDL suy diễn và CSDL phân tán.
2.1.4. Nhu cầu về hệ thống CSDL hướng đối tượng
Các thí dụ về CSDL thường lấy từ lĩnh vực xử lý dữ liệu truyền thống. Một ứng dụng xử
lý dữ liệu có đặc trưng là dùng các tệp dữ liệu, xử lý dữ liệu tệp để đáp ứng các yêu cầu. Các
công nghệ CSDL quan hệ, mạng hay phân cấp đều thể hiện các tiếp cận khác nhau nhằm tích
hợp các tệp dữ liệu để đáp ứng nhu cầu ứng dụng. Các điểm mạnh của CSDL quan hệ đ ã
khiến chúng chiếm ưu thế trên thị trường CSDL. Tuy nhiên việc tăng tính khái quát, trừu
tượng của các kiểu dữ liệu do máy xử lý lại là điểm yếu của công nghệ quan hệ. Trước khi
đề cập vấn đề hướng đối tượng trong CSDL, bên cạnh các hạn chế của CSDL quan hệ,
người ta còn thấy các hạn chế nêu trên về hệ thống CSDL nói chung, về phạm vi ngữ nghĩa,
về cấu trúc dữ liệu, về tính chủ động và tính toàn vẹn dữ liệu.
1. Phạm vi ngữ nghĩa: Lý thuyết quan hệ chỉ hỗ trợ một phần các khái niệm ngữ nghĩa.
Nhiều khái niệm về ngữ nghĩa không thể hiện qua mô hình quan hệ được.
2. Cấu trúc dữ liệu: Các hệ thống quan hệ bị hạn chế bớt về cấu trúc dữ liệu. Trong hệ
thống quan hệ các dữ liệu được tổ chức thành bảng gồm các thuộc tính đơn. Nhiều kiểu
thông tin không phù hợp với cách thể hiện này.
3. Tính thụ động của dữ liệu: Trong hệ thống quan hệ, dữ liệu hầ u hết là thụ động. Các
63
chương trình ứng dụng có vai trò kích hoạt các dữ liệu này, để dữ liệu trở nên linh động.
Trong mô hình hướng đối tượng, người ta có thể biết được hành vi cũng như cấu trúc dữ liệu.
4. Toàn vẹn ngữ nghĩa: Đảm bảo tính toàn vẹn ngữ nghĩa là có thể giữ được tính bền
vững của ngữ nghĩa CSDL dưới tác động của các chương trình. Hệ thống quan hệ quản lý
hành vi của dữ liệu theo các chương trình ứng dụng. Cùng một dữ liệu có thể mang các hành
vi khác nhau, nên dữ liệu cần có ý nghĩa khác nhau tùy theo chương trình sử dụng, dễ gây
nên tình trạng vi phạm tính toàn vẹn dữ liệu. Những tình huống kém khả năng như vậy của
CSDL quan hệ sẽ được CSDL hướng đối tượng khắc phục, nhất là đối với các đối tượng dữ
liệu phức tạp và có khối lượng lớn các thông tin ngữ nghĩa. Các lĩnh vực điển hình cần đến
CSDL hướng đối tượng là:
- CSDL đa phương tiện, cần lưu trữ khối lượng lớn các tín hiệu âm thanh, hình ảnh và
văn bản; cần liên kết nhiều kiểu dữ liệu.
- Các hệ thống thông tin địa lý, cần xử lý nhiều loại d ữ liệu thống kê, bản đồ; các dữ liệu
được thu thập từ nhiều vùng khác nhau.
- Các CSDL phục vụ thiết kế gồm các sơ đồ, nhiều thành phần dữ liệu phức tạp liên kết
nhau. Một thiết kế đòi hỏi xử lý qua nhiều giai đoạn, nhiều thế hệ.
3.2 Khái niệm về hướng đối tượng
Để thấy quan điểm về hướng đối tượng, hãy xét một vật trong thế giới thực là chiếc ghế.
Ghế là một phần tử, hay là một thể hiện của lớp rộng hơn gọi là đồ đạc. Một tập các thuộc
tính liên kết với đối tượng trong lớp đồ đạc, chẳng hạn giá thành, kích thước, trọng lượng, vị
trí và mầu sắc. Những điều này được áp dụng mỗi khi người ta nói về cái bàn hay cái ghế, tủ
…. Bởi vì ghế là thành viên của lớp đồ đạc, nó thừa kế tất cả các thuộc tính đã xác định cho
lớp.
Mỗi đối tượng trong lớp đồ đạc có thể được xử lý theo nhiều cách. Mỗi phép xử lý này
sẽ thay đổi một hay nhiều thuộc tính của đối tượng và chúng được gọi là dịch vụ hay phương
pháp trên đối tượng.
Các đối tượng sẽ bao bọc:
- Dữ liệu thông qua giá trị thuộc tính.
- Các phép toán như các hoạt động có tác dụng thay đổi giá trị thuộc tính.
- Các đối tượng khác, như là các đối tượng phức tạp.
64
- Các hằng số, như các giá trị mặc định.
- Các thông tin liên quan.
3.2.1. Đối tượng
Khái niệm về đối tượng là khái niệm sinh ra từ việc nhận thức thế giới thực. Một đối t
ượng có các đặc tính sau:
- Mang tên duy nhất, không thay đổi.
- Thuộc về một lớp.
- Có thể gửi các thông báo đến các đối tượng khác.
- Có trạng thái riêng.
Định nghĩa 2.1. Đối tượng là một thực thể có vai trò xác định rõ ràng trong lĩnh vực ứng
dụng, có trạng thái, hành vi và được xác định tên.
Ví dụ về các đối tượng thuộc lớp Người. Chúng liên lạc với nhau thông qua thông báo.
Thông báo là dạng các thao tác áp dụng lên đối tượng. Thao tác trong môi trường hướng đối
tượng được gọi là phương pháp. Chẳng hạn phương pháp kết hôn tác động lên đối tượng để
biết đối tượng này kết hôn với ai.
Định nghĩa 2.2. Trạng thái bao gồm tính chất của đối tượng, như là thuộc tính và các mối
quan hệ, và những giá trị gán cho các tính chất đó.
Định nghĩa 2.3. Phép toán là một hàm số hay một dịch vụ mà tất cả các thể hiện của
lớp đều chấp nhận.
Định nghĩa 2.4. Phương pháp là việc thực hiện của một phép toán.
Hành vi và cấu trúc của một đối tượng trong môi trường lập trình hướng đối tượng hoàn
toàn do lớp đối tượng xác định. Lớp là khái niệm cơ bản trong tiếp cận hướng đối tượng.
Định nghĩa 2.5. Hành vi là thể hiện cách thức tác động của một một đối tượng.
3.2.2. Lớp đối tượng
Một lớp đối tượng có giao diện và miền riêng. Giao diện của đối tượng là cái mà các đối
tượng khác thấy được. Giao diện lớp đối tượng gồm hai thành phần sau:
1. Thuộc tính của lớp: Trong chừng mực nào đó các thuộc tính của lớp được coi tương
đương với các thuộc tính của quan hệ. Đương nhiên thông qua thuộc tính lớp người ta có thể
thể hiện các liên kết giữa các đối tượng, hay trong lớp cũng có thuộc tính ảo, chẳng hạn thuộc
tính tuổ i có giá trị tùy thuộc vào thuộc tính ngày sinh. Đối với lớp, không có hạn chế gì về
65
cách thức cấu trúc thuộc tính hay cách liên kết với nhau. Các thuộc tính có thể là đối tượng,
dùng để tạo đối tượng phức tạp hơn. Người ta không xử lý trực tiếp các giá trị thuộc tính
của đối tượng mà xử lý thông qua các phương pháp liên kết với lớp đối tượng.
2. Phương pháp gắn với lớp đối tượng: Các thông báo chuyển đến lớp đối tượng nhờ
phương pháp gắn với lớp đối tượng. Chúng thường có dạng các phép toán, các hàm với các
tham số. Các đối tượng trong một lớp chỉ có thể được truy cập thông qua các phương pháp.
Tại mức giao diện, phần hiện rõ là tên phương pháp và các tham số cần cho phương pháp này.
Định nghĩa 2.6. Lớp đối tượng là tập các đối tượng có chung cấu trúc và hành vi.
Định nghĩa 2.7. Sơ đồ lớp cho biết cấu trúc tĩnh của mô hình hướng đối tượng, đó là các
lớp đối tượng, cấu trúc bên trong của chúng, và mối quan hệ mà chúng tham gia.
Miền riêng của lớp đối tượng là phần xác định lớp, nhưng không hiện ra cho đối tượng
khác thấy. Miền này có thể gồm các thông tin chi tiết về cấu trúc của lớp đối tượng. Trong
chương trình người ta có thể cài đặt che giấu các giá trị, ngay cả các liên kết cũng bị che
giấu, cũng như không thấy được các thông báo. Việc bảo vệ thông tin l àm việc bên trong
cùng với các giá trị đối tượng trước các sử dụng thông thường này được gọi là che dấu thông
tin.
Khái niệm lớp con là khái niệm cơ bản của cơ sở dữ liệu hướng đối tượng. Ví dụ: Trong
Nhân viên được chia thành: kỹ sư, giáo viên, kỹ thuật viên …. Tập các đối tượng trong nhóm
đó là một tập con của Nhân viên. Chúng ta gọi mỗi nhóm đó là lớp con của Nhân viên. Nhân
viên là lớp cha. Ta gọi quan hệ giữa lớp con và lớp cha là kiểu liên kết cha/con. Kiểu liên kết
cha/con thường là kiểu liên kết IS_A (là một)
Một khái niệm quan trọng trọng trong OOP là bao bọc, có nghĩa mọi vấn đề về đối tượng
đều được nhận biết thông qua định nghĩa lớp đối tượng. Người ta truy cập khái niệm nhờ
giao diện lớp và xác định các hành vi thông qua việc xác định lớp.
Định nghĩa 2.8. Sơ đồ đối tượng là đồ thị gồm các thể hiện của đối tượng, tương thích với
sơ đồ lớp.
Định nghĩa 2.9. Bao gói, hay bao bọc là kĩ thuật che giấu, làm ẩn những chi tiết về cài
đặt bên trong của đối tượng đối với các truy cập từ bên ngoài.
3.2.3. Cá thể
Cá thể hóa là quá trình khẳng định sự tồn tại của các đối tượng trong môi trường hướng
66
đối tượng, bằng việc xác định lớp của chúng. Mỗi đối t ượng là một cá thể của lớp; thường
được dùng với thuật ngữ thể hiện của lớp.
3.2.4. Kế thừa
Khái niệm kế thừa là khái niệm quan trọng trong tiếp cận hướng đối tượng. Người ta
thường dụng thuật ngữ này khi chỉ định lớp đối tượng này tiếp thụ, thừa kế các thuộc tính của
lớp đối tượng khác. Tuy nhiên mỗi lớp con có thể mạng một số thuộc tính hay phương pháp
riêng.
Định nghĩa 2.l0. Kế thừa là tính chất cho phép các lớp con kế thừa những thuộc tính,
phép toán của lớp cha. Việc kế thừa nhiều lần xẩy ra khi một lớp kế thừa từ nhiều lớp.
3.3 Cơ sở dữ liệu hướng đối tượng
Hiện nay có một lớp các ứng dụng mới trong các lĩnh vực khác nhau như: Các ứng dụng
thiết kế có máy tính trợ giúp, các hệ thống đa phương tiện, trí tuệ nhân tạo, hệ thống tin học văn
phòng …. Đối với những ứng dụng này, các hệ quản trị CSDL đối tượng được xem là phù hợp
với các đặc trưng:
- Chúng phải lưu trữ và thao tác với các kiểu dữ liệu trừu tượng và khả năng cho phép
người dùng định nghĩa kiểu mới.
- Biểu diễn các đối tượng ứng dụng có cấu trúc bằng mô hình quan hệ phẳng làm mất đi
cấu trúc tự nhiên vốn có đối với các ứng dụng. Mô hình quan hệ tồn tại giữa các đối tượng
không dễ diễn đạt nhưng trong mô hình đối tượng lại rất dễ thể hiện.
- Các hệ thống đối tượng, các ứng dụng phức tạp có thể được viết bằng một ngôn ngữ lập
trình CSDL đối tượng xác định.
Dù có nhiều ngôn ngữ hướng đối tượng, đa số CSDL hướng đối tượng dựa trên C++.
Lựa chọn này là do tính hiệu quả và thông dụng của C++. Thực tế CSDL hướng đối tượng có
các ưu điểm
- Cho phép xét các liên kết đối tượng dưới dạng các phép lưu trữ với các đối tượng.
- Các đối tượng được phép dùng chung cho nhiều người sử dụng.
- Khả năng phát triển kho tri thức bằng cách thêm các đối tượng mới và các phép xử lý
kèm theo.
- Phát triển hệ quản trị CSDL dựa trên việc xử lý các đối tượng phức tạp, thiết kế giao
diện chương trình, mô tả đối tượng động và trừu tượng.
67
Mô hình cơ sở dữ liệu hướng đối tượng là chiến lược tổ chức các hệ thống như là tuyển
tập các đối tượng tương tác, phối hợp với nhau về dữ liệu và các hành vi ứng xử. Mô hình dữ
liệu hướng đối tượng là một mô hình luận lý của dữ liệu để biểu diễn ngữ nghĩa của các dữ
liệu dùng trong một ngôn ngữ lập trình hướng đối tượng. Trong đó, đối tượng là thể hiện một
đại biểu của một lớp. Lớp là một mô tả về một nhóm các đối tượng có những tính chất giống
nhau, có cùng mối liên quan với các đối tượng khác nhau và có chung ngữ nghĩa trong hệ
thống. Theo đó các thuộc tính thể hiện thông tin về trạng thái của đối tượng, còn các phương
thức được xem là những đặc tính mô tả hành vi của chúng. Thuộc tính và phương thức đối
tượng là một trong những khái niệm trung tâm của mô hình cơ sở dữ liệu hướng đối tượng.
3.2.1 Các nguyên lý áp dụng cho cơ sở dữ liệu hướng đối tượng
a. Bao gói che giấu thông tin
Các thuộc tính và phương thức được gộp vào trong một cấu trúc lớp cho phép quản lý
truy cập. Một chương trình (đối tượng) có thể trao đổi với các đối tượng khác (phần mềm
khác) bằng cách gửi và nhận thông điệp (message). Các phương thức được cung cấp bởi các
đối tượng sẽ xác định một tập thông điệp cần trao đổi với nhau.

Hình 3-1 Che giấu thông tin trong CSDL HĐT


b. Sự kế thừa và sử dụng lại
Những lớp mới có thể mở rộng, kế thừa những lớp khác có sẵn. Ngoài những thuộc tính,
phương thức được kế thừa, ta có thể bổ sung thêm những thuộc tính, phương thức mới để mô
tả đúng những lớp các đối tượng của bài toán ứng dụng. Quan hệ kế thừa là quan hệ kiểu
thành viên (is - a), nghĩa là một đối tượng của lớp con cũng là đối tượng của lớp cha và ngược
lại đối tượng của lớp cha đại diện cho một đối tượng của lớp con. Quan hệ kế thừa tuân theo
quy luật 100% có nghĩa là các đối tượng của lớp con đều có tất cả các mối quan hệ giống như
đối tượng của lớp cha đối với các lớp khác. Có hai loại kế thừa cơ bản:
- Kế thừa đơn: Sự kế thừa hình thành từ cấu trúc phân cấp. Một lớp cơ sở tồn tại trong
một phân cấp quan hệ với lớp dẫn xuất của nó. Một lớp có thể tồn tại chắc chắn bởi chính nó,

68
nhưng khi một lớp được sử dụng với cơ chế của sự kế thừa thì lớp trở thành hoặc một lớp cơ
sở cung cấp thuộc tính và hành vi cho lớp khác, hoặc trở thành lớp dẫn xuất kế thừa các thuộc
tính và hành vi

Hình 3-2 Kế thừa đơn

Hình 3-3 Cây phân cấp kế thừa đơn


- Kế thừa bội: Một lớp có thể dẫn xuất từ nhiều lớp cơ sở, sự dẫn xuất như vậy được gọi
là đa kế thừa. Đa kế thừa có nghĩa là một lớp dẫn xuất kế thừa các thành viên của các lớp cơ
sở khác nhau.

Hình 3-4 Cây kế thừa bội


c. Tính đa hình
Thể hiện thông qua việc gửi các thông điệp (message), một thông điệp có nhiều nội dung
thực hiện khác nhau, mỗi đối tượng nhận được sẽ thực hiện theo ngữ cảnh riêng của mình.
69
Khái niệm này liên quan chặt chẽ đến khái niệm kế thừa. Các phương thức của lớp dân xuất
có thể định nghĩa lại những phương thức của lớp cha. Trong một lớp có thể có những phương
thức cùng tên nhưng cho phép định nghĩa nhiều nội dung thực hiện khác nhau theo cơ chế nạp
chồng. Việc gửi các thông điệp này có thể so sánh như việc gọi các hàm bên trong của một
đối tượng. Các phương thức dùng trả lời cho một thông điệp sẽ tùy theo đối tượng mà thông
điệp đó được gửi tới sẽ có phản ứng khác nhau. Người lập trình có thể định nghĩa một đặc
tính (chẳng hạn thông qua tên của các phương thức) cho một loạt các đối tượng gần nhau
nhưng khi thi hành thì dùng cùng một tên gọi mà sự thi hành của mỗi đối tượng sẽ tự động
xảy ra tương ứng theo đặc tính của từng đối tượng mà không bị nhầm lẫn. Thí dụ khi định
nghĩa hai đối tượng “hinh_vuong” và “hinh_tron” thì có một phương thức chung là “chu_vi”.
Khi gọi phương thức này thì nếu đối tượng là “hinh_vuong” nó sẽ tính theo công thức khác
với khi đối tượng là “hinh_tron”.
3.2.2 Hệ quản trị cơ sở dữ liệu hướng đối tượng
Hệ quản trị cơ sở dữ liệu hướng đối tượng là một hệ thống hỗ trợ và cung cấp các công cụ
cho việc thiết kế và môi trường thực thi của một cơ sở dữ liệu hướng đối tượng. Hệ quản trị
CSDL hướng đối tượng là hệ quản trị cho phép lưu trữ và chia sẻ các đối tượng với nhiều ứng
dụng. Hệ thống hướng đối tượng là sự mở rộng có ý nghĩa của lập trình hướng đối tượng.
Trong môi trường OOP các đối tượng được coi như các biến chương trình, chỉ tồn tại với
vòng đời của chương trình đã tạo ra và sử dụng đối tượng. Còn trong hệ thống CSDL hướng
đối tượng, các đối tượng là bền vững hơn. Thuật ngữ bền vững được dùng với nghĩa đối
tượng tồn tại không lệ thuộc vào vòng đời của chương trình tạo ra nó. Chương trình khác có
thể truy cập hay hủy bỏ đối tượng này. Hệ thống CSDL hướng đối tượng có các nét đặc trưng
sau:
- Ngôn ngữ CSDL có khả năng mô tả lớp đối tượng, tạo sinh, lưu trữ và xóa đối tượng.
- Các đối tượng cho phép chương trình ứng dụng truy cập. Mỗi đối tượng trong kho các
đối tượng có tên duy nhất OID. Khái niệm OID khác với khái niệm khóa chính trong c ơ sở dữ
liêu quan hệ. Khóa chính là tập các thuộc tính xác định duy nhất bộ dữ liệu, mang giá trị có thể
thay đổi đ ược. Trong hệ thống hướng đối tượng, OID thường là chuỗi 64, 128bit hoặc cao
hơn và mang giá trị không thay đổi.. Một đối tượng cũng có thể có các thuộc tính mang vai
trò như khóa chính trong CSDL quan hệ. Điều này hoàn toàn phụ thuộc vào việc xác định
70
lớp. Việc gán OID hoàn toàn do hệ quản trị CSDL hướng đối tượng thực hiện. Kho đối tượng
là nơi chứa dữ liệu tạo nên CSDL hướng đối tượng. HQTCSDL hướng đối tượng cần có các
chức năng cơ bản như HQTCSDL bình thường, như điều khiển tương tranh, an toàn dữ liệu,
toàn vẹn dữ liệu… Thực ra, HQTCSDL hướng đối tượng hoạt động như hệ quản trị thường,
với sự tham giá của phần mềm hướng đối tượng để truy cập các đối tượng.
Một số Hệ quản trị tiêu biểu:
- UniSQL/X(1992) hợp nhất hệ cơ sở dữ liệu quan hệ và hệ cơ sở dữ liệu hướng đối tượng
- OpenODB
- Montage System (1993): phiên bản thương mại đầu tiên của Object relational Postgres
- SQL 3, Illustra, Oracle 8, OSMOS, DB2 Version 3, …
Nhược điểm của cơ sở dữ liệu hướng đối tượng:
- Thiếu cơ sở lý thuyết và chuẩn hóa: Các hệ cơ sở dữ liệu quan hệ được thiết kế và xây
dựng dựa trên mô hình đại số rất chuẩn mực, trong khi các hệ quản trị cơ sở dữ liệu hướng đối
tượng được cài đặt nhưng thiếu cơ sở lý thuyết hình thức. Hậu quả là các sản phẩm quản trị cơ
sở dữ liệu hướng đối tượng rất khác nhau và gây ra nhiều trở ngại cho quá trình phát triển ứng
dụng khi không muốn phụ thuộc vào các hãng sản xuất phần mềm hệ thống.
- Có thể sửa đổi làm sai lệch cơ sở dữ liệu: Một số hệ quản trị cơ sở dữ liệu thực hiện
trong không gian của tiến trình ứng dụng, kết quả là cơ sở dữ liệu có thể là chủ điểm dẫn đến
vi phạm tính an ninh hoặc dữ liệu bị sửa đổi bởi những con trỏ, tham chiếu lạ.
- Khó mở rộng logic: Các sản phẩm hiện nay đều không có sự độc lập dữ liệu cần thiết
và chưa có các quan sát cơ sở dữ liệu tương tự như các hệ quản trị cơ sở dữ liệu quan hệ
- Chưa hỗ trợ các siêu ứng dụng: Một số hệ quản trị cơ sở dữ liệu hướng đối tượng dựa
vào C++ không thực hiện được liên kết động, liên kết lúc thực hiện, mà chỉ cung cấp liên kết
tĩnh, liên kết lúc dịch chương trình ứng dụng.
Các hệ quản trị cơ sở dữ liệu hướng đối tượng là thích hợp với những ứng dụng
mới:
- Những ứng dụng thiết kế công nghệ: Các hệ quản trị cơ sở dữ liệu hướng đối tượng rất
phù hợp cho những chương trình thiết kế ứng dụng, như thiết kế với sự trợ giúp máy tính, chế
tạo với sự trợ giúp máy tính, chế tạo tích hợp với máy tính và kỹ nghệ phần mềm với sự trợ
giúp của máy tính.
71
- Các ứng dụng đa phương tiện như Jasmine: Các hệ quản trị cơ sở dữ liệu hướng đối
tượng rất thích hợp cho những ứng dụng đa phương tiện với những đồ họa, audio, video phức
hợp
- Các cơ sở tri thức: Các luật của hệ chuyên gia rất khó lưu giữ trong các hệ cơ sở dữ
liệu quan hệ. Mỗi khi có một luật mới cần bổ sung thì phải kiểm tra toàn bộ cơ sở luật xem
tính phí mâu thuẫn dư thừa của hệ thống có bị vi phạm hay không. Hệ quản trị cơ sở dữ liệu
hướng đối tượng có thể hỗ trợ để thực hiện công việc trên ở mức thấp nhất
- Những ứng dụng đòi hỏi xử lý phân tán và tương tranh: Hệ quản trị cơ sở dữ liệu cho
phép thực hiện những truy nhập cần thiết vào các dịch vụ mức thấp
- Các phần mềm nhúng: Hệ quản trị cơ sở dữ liệu hướng đối tượng thích hợp để tạo ra
những phần mềm nhúng vào các thiết bị điện, các thiết bị điều khiển, …
Các chuẩn phát triển hệ quản trị cơ sở dữ liệu hướng đối tượng: Các chuẩn phát
triển được phát triển bởi ODMG (Object Database Management Group) từ năm 1991. Chuẩn
mới (ODMG Standard) được xây dựng dựa trên SQL-92 và ANSI để định nghĩa mô hình
khung ứng dụng cho các Hệ quản trị cơ sở dữ liệu hướng đối tượng. Trong đó, ODMG-93 trả
lời theo SQL và là mở rộng của COBRA President Object Service. ODMG-93 có 3 thành
phần chính: ODL, OQL, và ngôn ngữ lập trình (C++ và Smalltalk). ODMG 2.0 (tháng 6 năm
1997) áp dụng cho các hãng công nghiệp cơ sở dữ liệu hướng đối tượng. Trong phiên bản
này, ODMG liên kết mới cho Java, được chuẩn hóa và đơn giản hóa trong việc lưu trữ các đối
tượng Java trong các cơ sở dữ liệu. Xây dựng mô hình siêu ngữ nghĩa (metamodel) cung cấp
những mô tả sơ đồ cơ sở dữ liệu độc lập với ngôn ngữ để tạo ra các công cụ và các ứng dụng.
Nâng cấp mối liên kết giữa C++ và SmallTalk.
3.4 Ưu điểm của cơ sở dữ liệu hướng đối tượng
- Hỗ trợ những kiểu dữ liệu được định nghĩa bởi người sử dụng: Cơ sở dữ liệu hướng
đối tượng có khả năng lưu trữ những kiểu dữ liệu phức hợp, kiểu được định nghĩa bởi người
sử dụng, các lớp và thao tác trên chúng một cách dễ dang.
- Cung cấp một hình mẫu phát triển cơ sở dữ liệu cho cả phân tích, thiết kế và cài đặt
ứng dụng.
- Cải tiến đáng kể về chất lượng dữ liệu: Có thể đưa ra nhiều ràng buộc vào cấu trúc dữ
liệu. Mô hình còn cho phép thể hiện cả những ràng buộc không cấu trúc để chương trình phải
72
thỏa mãn khi nó thực hiện trong cơ sở dữ liệu. Một cơ sơ dữ liệu hướng đối tượng có thể
chuyển đổi về một cơ sở dữ liệu quan hệ được chuẩn hóa
- Tốc độ phát triển phần mềm nhanh hơn: Cấu trúc cơ sở dữ liệu nhất quán và rõ ràng
giúp cho lập trình ứng dụng trở nên đơn giản và nhanh hơn. Những người phát triển ứng dụng
có kinh nghiệm thường sử dụng những câu lệnh phức tạp của hệ quản trị cơ sở dữ liệu thay
cho những đoạn chương trình của người sử dụng
- Tích hợp dễ dàng: Việc tích hợp với nhiều hệ thống độc lập có thể giảm bớt sự sao
chép dữ liệu của con người và mở rộng những câu truy vấn có thể trả lời. Mô hình hướng đối
tượng cung cấp cách biểu diễn thống nhất làm thuận tiện hơn cho việc tìm hiểu và tích hợp
thông tin.
3.5 Thiết kế cơ sở dữ liệu hướng đối tượng
Một CSDL hướng đối tượng gồm các đối tượng; tất cả các thứ thuộc về lớp. Để xây
dựng mô hình khái niệm cho CSDL hướng đối tượng, người ta cần xác định tập các lớp đối
tượng. Lớp đối tượng được xác định nhờ các thuộc tính và phương thức thức. Người ta cũng
phải xác định sự tương tác giữa các lớp. Khái niệm về lớp cũng tương tự như kiểu dữ liệu đã
giới thiệu trước đây.
3.5.1 Phân lớp
Quá trình phân lớp liên quan đến việc định tên đối tượng với các thuộc tính, hành vi
tương tự nhau và nhóm các đối tượng vào cùng một lớp. Theo thí dụ về sơ đồ người ta xác
định sơ đồ với các thuộc tính tên, ngày tạo, hình vẽ. Các phép toán chung là lưu trữ tìm kiếm,
vẽ.
Trong đoạn chương trình trên, danh sách các trường và các kiểu dữ liệu đơn giản dùng
cho các sơ đồ được liệt kê trong mục thuộc tính. Tiếp theo là các phương thức, có tên và các
tham số. Có một số phương thức như tạo mới, xóa… áp dụng cho tất cả các đối tượng trong
CSDL.
Tất cả các định nghĩa về giao diện lớp đối tượng cần có phép toán tạo mới và hủy bỏ đối
tượng. Quá trình phân lớp sẽ tạo ra lớp của các đối tượng có các thuộc tính, phương thức
chung, và một vài đối tượng có thuộc tính và phương thức riêng. Lúc đó người ta cần đến
khái niệm tổng quát hóa và chuyên biệt hóa.
3.5.2. Tổng quát hóa và đặc biệt hóa
73
Tổng quát hóa là quá trình xác định lớp đối tượng mang các thuộc tính tương tự và
theo sự tương tự này người ta có thể trừu tượng hóa để được lớp cao hơn, hay lớp cha.
Chẳng hạn ban đầu người ta xác định lớp hình tam giác, hình vuông, hình chữ nhật, và
hình tròn rồi trừu tượng hóa thành lớp cao hơn về sơ đồ, gồm các thuộc tính chung của tất cả
các sơ đồ.
Định nghĩa 2.11. Lớp trừu tượng là lớp không có thể hiện trực tiếp, nhưng các thành
phân sau nó có thể có thể hiện trực tiếp.
Định nghĩa 2.12. Lớp cụ thể là lớp có thể có các thể hiện trực tiếp.
Sơ đồ

Hình chữ nhật Hình tam giác Hình tròn

Hình vuông Tam giác đều


Hình 3-5 Kế thừa của các lớp
Chuyên biệt hóa là quá trịnh ngược lại với tổng quát hóa. Bắt đầu từ lớp s ơ đồ, người ta
có thể xác định lớp con để phân biệt các loại sơ đồ khác nhau; mỗi lớp con chia sẻ thuộc
tính và phương thức chung trong lớp sơ đồ nhưng có các thuộc tính và phương thức dùng
riêng.
Người ta dùng cây phân cấp để thể hiện quá trình tổng quát hóa. Phân cấp nả rất có ý
nghĩa trong hệ thống hướng đối tượng, để chỉ ra dãy các thừa kế. Khi mô tả các lớp, người ta
cần chỉ ra sự tham gia của lớp vào dãy kế thừa này.
Hai định nghĩa lớp đối tượng này đều tham chiếu đến lớp đối tượng cha bằng câu lệnh kế
thừa. Lớp tam giác thừa kế tất cả các thuộc tính và phương thức của sơ đồ. Các thuộc tính bổ
sung cũng được mô tả ngay. Phương thức tạo mới được mô tả lại, tính đến các đặc trưng
riêng của hình tam giác. Phương thức Diện tích cũng là phương thức dùng riêng cho hình tam
giác. Còn lớp đối tượng Hình đều cạnh thì thừa kết tính chất củ lớp Tam giác. Điều này có
74
nghĩa nó thừa kết các tính chất của lớp tam giác và lớp so đồ. Lớp đối tượng này cũng có
thuộc tính riêng. Người ta mô tả lại các phương thức để phù hợp với loại hình này.
3.5.3. Gộp
Gộp là quá trình liên kết các lớp đối tượng với nhau để tạo lên một lớp gộp. Chẳng hạn
CSDL ngân hàng gồm khách hàng, tài khoản, chi nhánh và mối quan hệ giữa chúng. Khi thực
hiện CSDL này theo kĩ thuật quan hệ, người ta tạo các các quan hệ tách biệt đối với mỗi thực
thể v à dùng khái niệm khóa ngoài để thể hiện mối quan hệ 1-n. Người ta cũng dùng quan hệ
khác có khóa ngoài để thể hiện quan hệ m-n giữa khách hàng và tài khoản. Để thiết lập khung
nhìn về tất cả thông tin liên quan đến một tài khoản nào đó, người ta cần nối 4 bảng cơ sở.
Trong CSDL hướng đối tượng người ta giải quyết vấn đề này nhở lớp đối tượng gộp. Lớp
đăng ký được tạo, liên kết các đối tượng kiểu khác hàng, tài khoản, và chi nhánh. Mỗi đối
tượng đăng ký sẽ liên kết một khách hàng với một tài khoản, có thuộc tính đặc biệt cho
biết thời gian thực hiện đăng ký này.
3.6 Phân tích, thiết kế cơ sở dữ liệu hướng đối tượng với UML
Quá trình thiết kế cơ sở dữ liệu có thể thực hiện theo 3 bước:
- Thiết kế mô hình (sơ đồ) khái niệm
- Thiết kế sơ đồ cơ sở dữ liệu chuẩn
- Cài đặt cơ sở dữ liệu ứng dụng: chọn ngôn ngữ và hệ quản trị cơ sở dữ liệu hướng đối
tượng thích hợp.

Hình 3-6 Các bước thiết kế OOD


3.6.1 Thiết kế mô hình khái niệm – Biểu đồ lớp
Biểu đồ lớp mô tả cấu trúc tĩnh, mô tả hình khái niệm, bao gồm các lớp đối tượng và các
mối quan hệ của chúng trong hệ thống hướng đối tượng. Phân tích các yêu cầu của bài toán ứng
dụng để xác định các lớp đối tượng, mối quan hệ của chúng để xây dựng biểu đồ lớp.

75
Hình 3-7 Các khái niệm cơ bản của phương pháp hướng đối tượng
Một lớp miêu tả cho một nhóm đối tượng có chung thuộc tính, phương thức, ngữ nghĩa và
các mối quan hệ với các đối tượng khác. UML thể hiện lớp bằng hình chữ nhật có 3 thành phần:

Hình 3-8 Lớp trong UML


- Tên lớp:Thường là danh từ đặc tả đối tượng
- Thuộc tính: Là bộ phận thông tin liên kết với lớp sử dụng để mô tả những đặc điểm của
đối tượng. Thuộc tính thường được xác định trong một phạm vi cho trước các giá trị, một phạm
vi là một tập các giá trị xác định.
- Thao tác: Là hành vi kết hợp với mỗi lớp. Thao tác xác định trách nhiệm của lớp, thao
tác được sử dụng để xử lý thay đổi các thuộc tính cũng như thực hiện các công việc khác
Mỗi lớp bao gói thông tin và hành vi nhờ các thuộc tính và hành vi của nó. Thuộc tính của
lớp trong UML có 3 cấp:
- Public: Bất kì lớp trong hệ thống đều có thể sử dụng các thành phần lớp với cấp này
- Private: Chỉ các thành phần của lớp này là có thể sử dụng các thành phần này
- Protected: Bất kì các lớp kế thừa hoặc các thành phần của lớp này đều có thể sử dụng các
thành phần này
Giữa các lớp có mối quan hệ:
- Kết hợp: là một mối quan hệ miêu tả một tập hợp các nối kết, trong khi một nối kết được
định nghĩa là một sự liên quan về ngữ nghĩa giữa một nhóm các đối tượng.
- Kết tập: Là một dạng đặc biệt của kết hợp, biểu thị quan hệ giữa các lớp dựa trên nền
tảng nguyên tắc “một tổng thể được tạo thành bởi các bộ phận”. Lớp A có quan hệ kết tập với
lớp B nếu 1 đối tượng trong A có quan hệ với nhiều đối tượng trong B.
76
- Tổng quát hóa: Xét lớp A, B, C. Tổng quát hóa gộp các thành phần chung của tập lớp B
và lớp C để hình thành lớp tổng quát hóa hơn là lớp A. Mỗi lớp cấp thấp B, C có thể có thuộc
tính, thao tác, quan hệ riêng để bổ sung vào các thành phần mà nó kế thừa.
- Quan hệ hiện thực: Là quan hệ chỉ ra mối quan hệ giữa lớp tham số và lớp hiện thực.
Lớp tham số có các tham số hình thức, các tham số này dùng để tạo ra các lớp thực sự. Lớp
hiện thực được tạo ra từ lớp tham số bằng cách thay thế tham số hình thức đó bằng các giá trị.
3.6.2 Thiết kế sơ đồ cơ sở dữ liệu chuẩn
Một đặc tính quan trọng của cơ sở dữ liệu hướng đối tượng là các đối tượng được lưu lại
sau khi chương trình kết thúc. Những đối tượng được tự động lưu vào CSDL được gọi là đối
tượng bền vững, những đối tượng không được lưu lại gọi là đối tượng tạm thời.

Hình 3-9 Đối tượng bền vững và tạm thời trong CSDL hướng đối tượng
Để chuyển đổi các kiểu đối tượng này trong UML thì mỗi lớp bền vững phải được chuyển
đổi sang lớp trong ODL (Object Definition Language) thể hiện được cả hành vi trừu tượng lẫn
các trạng thái trừu tượng. Việc đọc dữ liệu CSDL hướng đối tượng được thực hiện như sau:
- Các đối tượng trong CSDL hướng đối tượng được lưu trữ và có mối quan hệ với nhau
thông qua định danh ID
- Một đối tượng có thể tham chiếu tới nhiều ID đối tượng, nghĩa là mối quan hệ giữa các
đối tượng có dạng tổng quát là n:m
- Mối quan hệ tham chiếu giữa các đối tượng được hệ quản trị CSDl hướng đối tượng thiết
lập.
Chuyển đổi các lớp đối tượng bền vững sang lớp của ODL

77
Hình 3-10 Chuyển đổi lớp bền vững sang lớp ODL
Chuyển đổi các quan hệ kết hợp: Quan hệ kết hợp nhị nguyên được chuyển sang mối quan
hệ liên kết Relationship trong ODL.

Hình 3-11 Chuyển đổi các quan hệ kết hợp


Chuyển đổi các quan hệ kế thừa: Quan hệ kết hợp nhị nguyên được chuyển đổi sang mối
quan hệ liên kết Relationship trong ODL.

Hình 3-12 Chuyển đổi các quan hệ kế thừa


Chuyển đổi các quan hệ kết tập: Quan hệ kết tập giữa bộ phận và tổng thể. Quan hệ này
thể hiện như là lớp cấu trúc gồm hầu như là hai lớp khác nhau.
78
Hình 3-13 Chuyển đổi các quan hệ kết tập
3.7 Tính chất của cơ sở dữ liệu hướng đối tượng
- Tính nhất quán của dữ liệu hướng đối tượng: Mô hình dữ liệu đối tượng hỗ trợ kế thừa
bội, cho phép một lớp được kế thừa từ một hay nhiều lớp. Chính cơ chế này sẽ dẫn đến nhiều
vấn đề nhập nhằng về kiểu dữ liệu và các phương thức sử dụng.

Hình 3-14 Mô hình kế thừa bội


Tính chất của quá trình kế thừa kiểu lớp trong lược đồ dữ liệu đối tượng chỉ ra rằng quan
hệ kế thừa sẽ tạo ra một thứ tự bộ phận; phép hội kiểu của T1T2 nếu nó xác định thì kết quả là
kiểu con chung lớn nhất của T1 và T2; một lược đồ đối tượng có thể xảy ra xung đột về kiểu
khi có ít nhất một cặp kiểu cha của một kiểu con (được kế thừa bội) và không tương thích với
nhau; lược đồ đối tượng có thể biểu diễn dưới dạng s-đồ thị đối tượng; s-đồ thị có xung đột kiểu
khi và chỉ khi có ít nhất 2 đường đi tựa tương đẳng cùng bắt đầu từ một đỉnh và dẫn đến 2 đỉnh
đích là 2 kiểu không tương thích với nhau.
- Chuyển đổi tương đương giữa các mô hình dữ liệu: Luôn tồn tại nhiều hệ thống dữ liệu
với nhiều mô hình khác nhau, do đó việc chuyển đổi giữa các mô hình luôn được quan tâm.
- Mẫu thiết kế dựa trên mã nguồn mở: Việc sử dụng những mẫu, thư viện lập trình, và các
thành phần có sẵn giúp rút ngắn quá trình sản xuất và nâng cao năng suất lao động. Các

79
Framework thường chỉ bao gồm các cấu trúc cơ bản như kiến trúc hệ thống, các mẫu thiết kế tối
ưu hay các giải pháp mang tính lý thuyết còn thư viện thường bao gồm 1 tập hợp các giải pháp
cụ thể (giải thuât, cấu trúc dữ liệu, mã nguồn) cho một vấn đề cụ thể. Hướng đối tượng hỗ trợ
để tạo ra các mẫu thiết kế cho các thiết kế phần mềm, nhất là các mẫu thiết kế theo mã nguồn
mở. Mẫu thiết kế hướng đối tượng mô tả tường minh cho các mối quan hệ và sự tương tác giữa
các lớp đối tượng mà không cần phải xác định những ứng dụng cụ thể. Mẫu thiết kế được dựa
trên nguyên lý thiết kế hướng đối tượng và nó được xem như là công cụ để phát hiện và mô tả
bài toán ở mức trừu tượng cao mà vẫn bao hàm đầy đủ ngữ nghĩa của bài toán ứng dụng.
3.8 Xây dựng CSDL hướng đối tượng
Một số điều liên quan đến lược đồ CSDL hướng đối tượng xuất hiện khi phân lớp đối
tượng, tổng quát hóa, đặc biệt hóa và gộp. Các vấn đề này xảy ra song song. Người ta không
trình bày quá trình chuyển từ mô hình thực thể E/R sang mô hình hướng đối tượng bởi lẽ
không có điểm tương tự giữa một bên là thực thể và mối quan hệ, một bên là lớp đối tượng.
Hơn nữa, mô hình E/R hầu như hướng dữ liệu chứ không cho biết về hành vi của thực thể
khi dựa vào hạng của quan hệ mà thực thể tham gia. Việc chuyển hóa mô hình đối tượng
ngữ nghĩa sang CSDL hướng đối tượng được thực hiện như sau
- Đối với mỗi đối tượng ngữ nghĩa, người ta tạo một lớp đối tượng.
- Khi có quan hệ cha con giữa hai đối tượng ngữ nghĩa, người ta thực hiện liên kết thừa kế
giữa lớp đối tượng thể hiện kiểu con và lớp đối tượng thể hiện kiểu cha.
- Tiến hành gộp và liên kết các đối tượng ngữ nghĩa về kiểu đối tượng để được các lớp
đối tượng gộp.
- Giữ tính toàn vẹn về hạng giữa các đối tượng ngữ nghĩa, duy trì việc hợp nhóm của
các đối tượng ngữ nghĩa và phân rã kiểu con bằng các phương thức.
Vòng đời phát triển hướng đối tượng gồm ba pha:
- Pha phân tích: người ta phát triển mô hình ứng dụng trên thế giới thực, chỉ ra các thuộc
tính quan trọng. Cần xác định các khái niệm trừu tượng về mô hình xuất phát từ lĩnh vực
ứng dụng và các mô tả về hệ thống. Người ta xác định các hành vi chức năng của hệ
thống, độc lập với môi trường sẽ thực hiện hướng đối tượng.
- Pha thiết kế: Cho phép xác định cách thức sẽ thực hiện mô h ình phân tích hướng đối
tượng.
80
- Pha thực hiện: Người ta xác định và khảo sát tất cả các kết quả của việc thực hiệ n thiết
kế. Tất cả các quyết định thiết kế chiến lược, như là cách thức tích hợp hệ quản trị
CSDL, cách liên lạc giữa các đối tượng, cách xử lý sai sót… đều được triển khai. Tiếp
theo người ta tích hợp các quyết định này vào mô hình thiết kế ban đầu, rồi hình thức
hóa mô hình thiết kế để các đối tượng có thể tương tác với các đối tượng khác theo các
kịch bản.
3.9 Chuyển đổi cơ sở dữ liệu quan hệ sang cơ sở dữ liệu đối tượng
Để chuyển đổi dữ liệu từ mô hình quan hệ sang đối tượng, điều kiện tiên quyết là biên
dịch các lược đồ quan hệ sang biểu đồ đối tượng mà vẫn đảm bảo được ngữ nghĩa và các ràng
buộc của dữ liệu. Ngoài chuyển đổi mô hình thì vấn đề chuyển đổi dữ liệu cũng cần phải được
thực hiện, bao gồm việc chuyển các bộ trong quan hệ vào các tệp có cấu trúc thích hợp và tái
nạp chúng vào các tệp được tổ chức theo các đối tượng. Các phương pháp này bảo toàn được
các ràng buộc của cơ sở dữ liệu quan hệ thông qua ánh xạ các phụ thuộc dữ liệu tương đương.
Một vấn đề quan trọng cần nhắc tới là các phương pháp, ngôn ngữ truy vấn đối với các mô hình
dữ liệu khác nhau cũng rất khác nhau. Việc nghiên cứu các phương pháp chuyển đổi và tối ưu
hóa các câu truy vấn từ mô hình quan hệ sang mô hình hướng đối tượng hay ngược lại cũng
được nhiều người quan tâm.
UML đang ngày càng phổ biến, được sử dụng nhiều trong phân tích, thiết kế hướng đối
tượng. Một thiết kế cơ sở dữ liệu cũng có thể được dẫn xuất ra từ những phép chuyển đổi các
đối tượng sang các thực thể. Các lớp đối tượng trong một ứng dụng có thể được lưu trữ trong cơ
sở dữ liệu hướng đối tượng hay cơ sở dữ liệu quan hệ. Mặt khác, ERM là lựa chọn tốt nhất để
biểu diễn mô hình dữ liệu trực quan và nhiều nhà thiết kế hệ thống đã quen sử dụng ERM để
thiết kế cơ sở dữ liệu. Mục đích chính của quá trình chuyển đổi là phát triển một môi trường đa
mô hình, đa công cụ thiết kế, cho phép nhiều công cụ phân tích, thiết kế và lập trình khác nhau,
có khả năng dựa trên những mô hình khác nhau ….

81
Hình 3-1 Quy trình chuyển đổi giữa UML và EER
3.6.1 Ánh xạ từ UML sang ERM
Biểu đồ lớp là trọng tâm của mô hình UML, thể hiện các thành phần và mối quan hệ logic
giữa các thành phần trong hệ thống. Trong ERM có các khái niệm như: các thực thể và các
thuộc tính, thuộc tính khóa và các mối quan hệ liên kết giữa các thực thể được thể hiện bằng các
ký pháp đồ họa thành các biểu đồ thực thể liên kết tương ứng. Thuật toán chuyển đổi biểu đồ
lớp sang biểu đồ thực thể liên kết được thực hiện theo các bước sau:
- Với mỗi biểu đồ lớp chính tắc (lớp không liên kết) trong biểu đồ lớp tạo ra một kiểu thực
thể tương ứng
+ Tên của kiểu thực thể được xác định từ tên của lớp
+ Các thuộc tính của lớp chuyển sang các thuộc tính của các thực thể
+ Những thuộc tính có tên là tên một lớp thì bổ sung thêm “.ID” vào thành tên của thuộc
tính trong kiểu thực thể và đánh dấu là khóa nguyên thủy
- Với mỗi quan hệ kế thừa giữa hai lớp, tạo ra một kiểu quan hệ “is - a” (kiểu con) giữa
hai kiểu thực thể tương ứng
- Với mỗi quan hệ kết nhập, quan hệ liên kết tạo ra một kiểu quan hệ tương ứng với những
lớp có liên quan, trong đó:
+ Nếu có các tên của vai diễn ở mỗi phía của quan hệ thì chuyển chúng sang kiểu quan hệ
kết quả tương ứng
+ Nếu có các bản số xác định số các đối tượng tham gia ở mỗi phía của quan hệ thì chuyển
tương ứng sang kiểu quan hệ kết quả với các vị trí đối nhau

82
Kết quả của thuộc tính là biểu đồ thực thể liên kết tương đương với biểu đồ lớp trong
UML.
3.6.2 Ánh xạ từ ERM sang UML
Kỹ thuật mô hình đối tượng là dạng phát triển của ERM với việc bổ sung thêm một số
khái niệm mới. UML lại là dạng phát triển mở rộng của kỹ thuật mô hình đối tượng. Thuật toán
chuyển đổi từ ERM sang UML bao gồm các bước sau:
- Với mỗi kiểu thực thể trong biểu đồ thực thể liên kết, tạo ra một lớp tương ứng trong
UML có cùng tên và có cùng tập các thuộc tính như nhau
- Với mỗi kiểu quan hệ:
+ Nếu là dạng quan hệ “is - a”, tạo ra tương ứng quan hệ kế thừa giữa hai lớp biểu diễn
cho hai kiểu thực thể tương ứng.
+ Nếu là quan hệ xác định thì tạo ra liên kết một chiều giữa các lớp tương ứng, ngược lại
tạo ra quan hệ liên kết (hai chiều) giữa chúng
+ Nếu có các tên gọi của vai diễn của mỗi đầu quan hệ thì chuyển chúng sang các quan hệ
kết quả
+ Nếu có các bản số trên mỗi đầu cảu quan hệ thì chuyển sang quan hệ kết quả với chiều
đổi nhau

83

You might also like