Tải bản đầy đủ (.doc) (79 trang)

Phép dịch chuyển lược đồ khối trong mô hình dữ liệu dạng khối

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.93 MB, 79 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGÔ VĂN ĐỊNH

PHÉP DỊCH CHUYỂN LƯỢC ĐỒ KHỐI
TRONG MÔ HÌNH DỮ LIỆU DẠNG KHỐI

LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH

Thái Nguyên - 2015


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGÔ VĂN ĐỊNH

PHÉP DỊCH CHUYỂN LƯỢC ĐỒ KHỐI
TRONG MÔ HÌNH DỮ LIỆU DẠNG KHỐI
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60 48 0101

LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH

Ng•êi h•íng dÉn khoa häc
TS LÊ VĂN PHÙNG

Thái Nguyên - 2015



LỜI CẢM ƠN

Để hoàn thành luận văn này tôi đã nhận được sự giúp đỡ tận tình của
thầy hướng dẫn khoa học, của các thầycô trường Đại học Công nghệ thông tin
và truyền thông - Đại học Thái Nguyên. Tôi xin chân thành cảm ơn các thầy
cô trường Đại học Công nghệ thông tin và truyền thông - Đại học Thái
Nguyên đã tạo điều kiện học tập, nghiên cứu và giúp đỡ tôi rất nhiều trong
quá trình làm luận văn. Đặc biệt tôi xin cảm ơn thầyTS Lê Văn Phùng đã tận
tình hướng dẫn, chỉ bảo tôi trong suốt quá trình học tập, nghiên cứu đề tài và
giúp đỡ tôi hoàn thành bản luận văn này.
Thái Nguyên, ngày 15 tháng 5 năm 2015
Học viên

Ngô Văn Định


LỜI CAM ĐOAN

Tôi xin cam đoan đây là kết quả nghiên cứu của tôi dưới sự hướng dẫn
khoa học của TS. Lê Văn Phùng.
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được
ai công bố trong bất kỳ công trình nào khác.
Học viên

Ngô Văn Định


MỤC LỤC
Trang
MỤC LỤC .......................................................................................................... i

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT .................................. iii
DANH MỤC CÁC HÌNH ................................................................................ iv
MỞ ĐẦU ........................................................................................................... 1
CHƯƠNG 1. MÔ HÌNH DỮ LIỆU DẠNG KHỐI .......................................... 4
1.1. Một số mô hình dữ liệu tiêu biểu ........................................................... 4
1.1.1. Mô hình dữ liệu quan hệ .................................................................. 4
1.1.2. Mô hình hướng đối tượng ................................................................ 4
1.1.3. Mô hình dữ liệu dạng khối .............................................................. 5
1.2. Khối, lược đồ khối và các đặc trưng cơ bản........................................... 5
1.2.1. Khái niệm khối và lược đồ khối ...................................................... 5
1.2.2. Các phép tính cơ bản trên khối ........................................................ 8
1.2.3. Khái niệm phụ thuộc hàm.............................................................. 15
1.2.4. Bao đóng của tập thuộc tính chỉ số................................................ 16
1.2.5. Khóa của lược đồ khối R đối với tập F trên R............................... 19
1.2.6. Các dạng chuẩn, tựa chuẩn và tựa chuẩn hóa trên lược đồ khối ... 22
1.2.7. Khái niệm về phủ và phủ tối thiểu của tập phụ thuộc hàm ........... 31
Kết luận chương 1 ....................................................................................... 33
CHƯƠNG 2. PHÉP DỊCH CHUYỂN LƯỢC ĐỒ KHỐI .............................. 34
2.1. Phép dịch chuyển lược đồ quan hệ....................................................... 34
2.1.1. Định nghĩa ..................................................................................... 34
2.1.2. Thuật toán dịch chuyển lược đồ quan hệ....................................... 35
2.1.3. Bổ đề về siêu khoá trong phép dịch chuyển lược đồ quan hệ ....... 39
2.1.4. Dịch chuyển lược đồ quan hệ về dạng cân bằng ........................... 40
2.2. Phép dịch chuyển lược đồ khối ............................................................ 43


2.2.1. Định nghĩa ..................................................................................... 43
2.2.2. Sự khác biệt giữa phép chuyển dịch lược đồ khối so với phép dịch
chuyển lược đồ quan hệ ........................................................................... 45
2.2.3 Một số thuật toán dịch chuyển lược đồ khối .................................. 46

2.2.4. Biểu diễn bao đóng qua phép dịch chuyển .................................... 48
2.2.5. Biểu diễn khóa qua phép dịch chuyển ........................................... 51
2.2.6. Ví dụ .............................................................................................. 55
Kết luận chương 2 ....................................................................................... 56
CHƯƠNG 3. CHƯƠNG TRÌNH THỬ NGHIỆM ......................................... 58
3.1. Bài toán thử nghiệm ............................................................................. 58
3.2. Phân tích và thiết kế chương trình thử nghiệm .................................... 59
3.2.1. Thủ tục dịch chuyển ...................................................................... 59
3.2.2. Biểu diễn khóa qua phép dịch chuyển ........................................... 60
3.2.3. Thiết kế chương trình .................................................................... 60
3.3. Cài đặt và thực hiện chương trình thử nghiệm..................................... 60
3.3.1. Yêu cầu hệ thống ........................................................................... 60
3.3.2. Hệ thống dữ liệu vào/ra ................................................................. 61
3.3.3. Hệ thống giao diện......................................................................... 61
3.3.4. Kết quả thử nghiệm chương trình và đánh giá .............................. 62
Kết luận chương 3 ....................................................................................... 67
KẾT LUẬN ..................................................................................................... 68
TÀI LIỆU THAM KHẢO............................................................................... 69


DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Luận văn này dùng thống nhất các ký hiệu và chữ viết tắt sau:
Ký hiệu

Ý nghĩa

CSDL

cơ sở dữ liệu


Dom(A)

miền giá trị của thuộc tính A

LĐQH

lược đồ quan hệ

r hoặc r(R)

khối r trên tập R

Rx

lát cắt của r(R) tại điểm x.

PTH

phụ thuộc hàm

(i)

x = (x, Ai)
(i)

(i)

id = {x |x

các thuộc tính chỉ số của lược đồ khối (x

id} tập các thuộc tính chỉ số của lược đồ khối.

Fh

tập các phụ thuộc hàm trên R

Fhx

tập các phụ thuộc hàm trên Rx

id, i = 1..n)


DANH MỤC CÁC HÌNH
Trang

Hình 1.1 Biểu diễn khối SANPHAM

7

Hình 1.2Ví dụ về phép hợp

10

Hình 1.3Ví dụ về phép giao

10

Hình 1.4 Ví dụ về phép trừ


11

Hình 3.1 Giao diện chính của chương trình

61

Hình 3.2 Giao diện nhập dữ liệu

62


MỞ ĐẦU
1. Lí do chọn lựa đề tài
Ngày nay, công nghệ thông tin đã trở thành một nhân tố không thể
thiếu được trong mọi lĩnh vực của đời sống xã hội. Sự bùng nổ nhu cầu xây
dựng các hệ thống thông tin, mà trước hết là các hệ thống thông tin quản lý đã
trở thành hướng nghiên cứu và quan tâm của rất nhiều nhà khoa học cũng như
người sử dụng. Các hệ thống cơ sở dữ liệu (CSDL) đã lần lượt xuất hiện. Vào
những năm 60, thế hệ đầu tiên của cơ sở dữ liệu ra đời dưới dạng các mô hình
thực thể - liên kết (có đặc điểm nhận dạng đối tượng), mạng phân cấp. Tiếp
đến là vào những năm 70 thế hệ thứ hai của CSDL ra đời. Đó là mô hình quan
hệ do E. F. Codd đề xuất. Loại mô hình này đã đánh dấu mốc quan trọng về
cơ sở lý thuyết của các hệ thống CSDL. Sở dĩ mô hình này được đánh giá cao
hơn cả vì nó được xây dựng dựa trên một cơ sở toán học chặt chẽ. Tuy nhiên,
do các quan hệ có cấu trúc phẳng (tuyến tính) nên mô hình này chưa đủ đáp
ứng đối với các ứng dụng phức tạp, các cơ sở dữ liệu có cấu trúc phi tuyến,…
Trong những năm gần đây, việc nghiên cứu nhằm mở rộng mô hình
quan hệ được nhiều nhà khoa học quan tâm. Theo hướng nghiên cứu này đã
có một số hướng mở rộng mô hình quan hệ được đề xuất nghiên cứu như: mô
hình dữ liệu đa chiều; khối dữ liệu; kho dữ liệu; mô hình dữ liệu dạng khối...

Trong đó, ở mô hình dữ liệu dạng khối, các khối là khái niệm cơ bản được mở
rộng từ các quan hệ trong mô hình quan hệ, các khối này có thể biểu diễn các
dữ liệu có tính chất động (biểu diễn các dữ liệu có thuộc tính thay đổi theo
thời gian, không gian…) có khả năng đáp ứng tốt đối với nhiều lớp bài toán
phức tạp.
Trong mô hình quan hệ, để giảm tính phức tạp của việc xác định bao
đóng, khóa trong các cơ sở dữ liệu lớn, phức tạp, người ta đã đề xuất phép
dịch chuyển lược đồ quan hệ (LĐQH). Trong mô hình cơ sở dữ liệu dạng


khối, việc xác định khóa và bao đóng càng khó khăn hơn, chính vì vậy mà
phép dịch chuyển lược đồ khối đã được đề xuất với mục đích tương tự.
Mục tiêu của đề tài là tìm hiểu kỹ thuật thu gọn lược đồ khối dựa trên
phép dịch chuyển lược đồ khối và phương pháp biểu diễn bao đóng và khóa
của lược đồ khối thông qua phép dịch chuyển với độ phức tạp thấp hơn so với
phương pháp tìm bao đóng và khóa thông thường. Đồng thời, nghiên cứu
thuật toán và cài đặt chương trình thử nghiệm với thuật toán dịch chuyển lược
đồ khối và biểu diễn khóa của lược đồ khối qua phép dịch chuyển.
2. Mục đích nghiên cứu
Mô hình dữ liệu dạng khối là một mở rộng của mô hình quan hệ với các
khối cho phép biểu diễn các dữ liệu có tính chất động (biểu diễn các dữ liệu
có thuộc tính thay đổi theo thời gian). Tuy nhiên, các nghiên cứu về mô hình
dữ liệu này còn chưa nhiều.
Đối với các cơ sở dữ liệu khối lớn và phức tạp, việc xác định khóa và
bao đóng là một việc khó. Nhờ việc dịch chuyển lược đồ khối, việc tính bao
đóng và khóa có thể trở nên đơn giản hơn.
3. Nhiệm vụ nghiên cứu
- Nghiên cứu tổng quan về mô hình dữ liệu dạng khối; một số khái
niệm và thuật toán liên quan.
- Nghiên cứu phép dịch chuyển lược đồ khối trong mô hình dữ liệu

dạng khối và một số thuật toán dịch chuyển lược đồ khối.
- Áp dụng thuật toán dịch chuyển trong bài toán thực tế
4. Đối tượng và phạm vi nghiên cứu:
Đối tượng nghiên cứu: Mô hình dữ liệu dạng khối.
Phạm vi nghiên cứu: Phép dịch chuyển lược đồ khối nhằm giảm
nhẹ độ phức tạp trong việc tính bao đóng và khóa của khối.
5. Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý luận.


- Phương pháp phân tích - tổng hợp.
- Phương pháp chuyên gia.
6. Những đóng góp mới của đề tài
- Hệ thống hóa các khái niệm cơ bản về mô hình dữ liệu dạng khối; các
phép toán và thuật toán liên quan trên mô hình dữ liệu dạng khối.
- Tìm hiểu phép dịch chuyển lược đồ khối trong mô hình dữ liệu dạng
khối và một số thuật toán dịch chuyển lược đồ khối.
- Áp dụng thuật toán đó trên để xây dựng chương trình minh họa khả
năng dịch chuyển khối và biểu diễn khóa qua phép dịch chuyển.
7. Cấu trúc luận văn
Các nội dung nghiên cứu của đề tài luận văn được cấu trúc thành 3
chương như sau:
Chương 1. Mô hình dữ liệu dạng khối
Giới thiệu tóm tắt về các mô hình dữ liệu. Các khái niệm cơ bản về mô
hình dữ liệu dạng khối như: Định nghĩa khối, lát cắt, lược đồ khối...; các phép
tính trên khối.
Một số khái niệm về bao đóng, khóa, phụ thuộc hàm... trong mô hình
dữ liệu dạng khối. Tìm hiểu một số thuật toán tìm bao đóng và khóa của lược
đồ khối.
Chương 2. Phép dịch chuyển lược đồ khối

Giới thiệu sơ lược về phép dịch chuyển LĐQH trong mô hình quan hệ
và một số vấn đề liên quan.
Tìm hiểu về phép dịch chuyển và thuật toán dịch chuyển lược đồ khối
trong mô hình dữ liệu dạng khối. Đưa ra phương pháp biểu diễn bao đóng và
khóa của lược đồ khối thông qua phép dịch chuyển.
Chương 3. Chương trình thử nghiệm
Tiến hành cài đặt các thuật toán dịch chuyển lược đồ khối trong mô
hình dữ liệu dạng khối.


CHƯƠNG 1. MÔ HÌNH DỮ LIỆU DẠNG KHỐI
1.1. Một số mô hình dữ liệu tiêu biểu
1.1.1. Mô hình dữ liệu quan hệ
Khái niệm toán học làm nền tảng cho mô hình quan hệ là các quan hệ
theo lý thuyết tập hợp. Đó là tập con của tích Đề-Các của một danh sách các
miền, mỗi miền đơn giản là một tập các giá trị. Ta có thể xem một quan hệ
như một bảng, trong đó mỗi hàng là một bộ và mỗi cột là một thuộc tính.
Ta cũng có thể biểu diễn một sơ đồ thực thể-liên kết trong mô hình
quan hệ. Khi đó, các dữ liệu của sơ đồ thực thể-liên kết được biểu diễn bởi hai
loại quan hệ:
- Một tập thực thể E có thể được biểu diễn bởi một quan hệ mà LĐQH
của nó chứa tất cả các thuộc tính của tập thực thể đó. Mỗi bộ của quan hệ biểu
diễn một thực thể trong thể hiện của E.
- Mối liên hệ giữa các tập E1, E2,.., Ek được biểu diễn bởi một quan hệ
có LĐQH chứa các thuộc tính trong các khóa của E1, E2,.., Ek. Bằng cách đặt
lại tên cho các thuộc tính nếu cần, ta đảm bảo rằng không có hai tập thực thể
trong danh sách có các thuộc tính cùng tên, ngay cả khi hai tập thực thể này
chỉ là một.
1.1.2. Mô hình hướng đối tượng
Mô hình dữ liệu hướng đối tượng có một số đặc điểm sau:

Đặc tính nhận dạng đối tượng (Object identity): Các thành phần chúng
xử lý điển hình là những mẩu tin, có địa chỉ duy nhất giống như trong mô
hình mạng và mô hình phân cấp.
Các đối tượng phức (Complex object): cho phép xây dựng một kiểu
mới bằng thao tác tạo lập mẫu tin hoặc tạo lập tập hợp.


Phân cấp theo kiểu (Type hierachy): Cho phép những kiểu có thể có
những kiểu con và có thuộc tính riêng.
Tất cả các cấu trúc đối tượng (object structure) được định nghĩa trong
mô hình này rất gần với tập các lược đồ cho các mẫu tin cơ sở dữ liệu trong
mô hình phân cấp.
Một mô hình hướng đối tượng không bị giới hạn trong khái niệm kiểu
đối tượng. Khái niệm cơ bản thực sự là lớp (class), đó là một kiểu đối tượng
làm cấu trúc dữ liệu nền tảng và một tập hợp các phương pháp (method), đó là
các thao tác được thực hiện trên các đối tượng có cấu trúc thuộc về lớp đó.
Mô hình hướng đối tượng gắn liền với mô hình phân cấp theo nghĩa là
nếu được cho trước một lược đồ phân cấp nào đó, ta có thể mô phỏng nó
trong mô hình hướng đối tượng bằng cách xem các con của một nút (gồm tất
cả các con là các kiểu mẫu tin ảo) trong lược đồ phân cấp như là các trường
trong một cấu trúc đối tượng ứng với n. Các cấu trúc đối tượng cho các con
của n lại có các con của chúng là các trường... Như vậy, mô hình hướng đối
tượng có thể diễn tả mọi cấu trúc của mô hình thực thể-liên kiết, tuy nhiên để
đảm bảo yêu cầu truy xuất hiệu quả các thông tin cần thiết trong các cấu trúc
đối tượng cũng không phải là một công việc đơn giản.
1.1.3. Mô hình dữ liệu dạng khối
Mô hình dữ liệu dạng khối là một mở rộng của mô hình quan hệ, khi
đó, mô hình quan hệ có thể được coi là một trường họp đặc biệt của mô hình
dữ liệu dạng khối. Các nội dung cụ thể sẽ được trình bày trong phần tiếp theo
của luận văn.

1.2. Khối, lược đồ khối và các đặc trưng cơ bản
1.2.1. Khái niệm khối và lược đồ khối
Khái niệm toán học làm nền tảng cho mô hình dữ liệu dạng khối là các
khối hiểu theo nghĩa của lý thuyết tập hợp. Khối được định nghĩa như sau:


Định nghĩa 1.1[4], [7]
Gọi R=(id;A1, A2,…, An) là một bộ hữu hạn các phần tử, trong đó id là
tập chỉ số hữu hạn khác rỗng, Ai (i=1..n) là các thuộc tính. Mỗi thuộc tính Ai
(i=1..n) có miền giá trị tương ứng là Dom(Ai). Một khối r trên R, ký hiệu r(R),
gồm một số hữu hạn phần tử mà mỗi phần tử là một họ ánh xạ từ tập chỉ số id
đến các miền giá trị của các thuộc tính Ai (i=1..n).
Nói một cách khác:
t r(R)

i

t = {t : id

Dom(Ai)} i=1..n

Ta ký kiệu khối đó là r(R) hoặc r(id; A1, A2,…, An), đôi khi nếu không
sợ nhầm lẫn, ta ký hiệu đơn giản là r.
Khi đó, khối r(R) được gọi là có lược đồ khối R. Như vậy, trên cùng
một lược đồ khối R, ta có thể xây dựng được nhiều khối khác nhau.
Ví dụ 1.1
Xây dựng khối sản phẩm (ký hiệu SP(R)) để quản lý sản phẩm của một
công ty: cho lược đồ khối R = (id; A1, A2, A3, A4) trong đó:
id = {1/2014, 2/2014, 3/2014, ..., 12/2014} và các thuộc tính A1 = ma
(mã), A2 = ten (tên), A3 = c_luong (chất lượng), A4 = gia (giá).


Hình 1.1 Biểu diễn khối SANPHAM


Với khối SP(R) ở hình trên thì nó gồm 3 phần tử t1, t2, t3.
Chất lượng của sản phẩm t1 ở thời điểm tháng 2 năm 2014 là:
t1(2/2014, c_luong) = Tot
Mã số của sản phẩm t2 ở thời điểm tháng 1 năm 2014 là:
t2(1/2014, ma) = A02
Tên của sản phẩm t3 ở thời điểm tháng 3 năm 2014 là:
t3(3/2014, ten) = C
Giá của sản phẩm t2 ở thời điểm tháng 1 năm 2014 là:
t2(1/2014, gia) = 400
Định nghĩa 1.2[4], [7]
Cho R = (id; A1, A2,…, An), r(R) là một khối trên R. Với mỗi x id, ta
ký hiệu r(Rx) là một khối với Rx = ({x}; A1, A2,…, An) sao cho:
tx r Rx

tx

i

với t = {t : id
ở đây t ix (x)

{ti x

i

t }1..n

i , t

r(R),

x

Dom(Ai)} i=1..n
i

t (x),i 1..n.

Khi đó, t(Rx) được gọi là một lát cắt trên khối r(R) tại điểm x.
Ví dụ 1.2
Với khối SP(R) đã cho ở trên, R = (id; A1, A2, A3, A4) trong đó:
id = {1/2014, 2/2014, 3/2014, ..., 12/2014} và các thuộc tính A1 = ma (mã),
A2 = ten (tên), A3 = c_luong (chất lượng), A4 = gia (giá).
Nếu x = 1/2014
r(R1/2014):

id thì lát cắt r(R1/2014) có dạng như sau:

ma

ten

c_luong

gia

A01


A

TB

300

A02

B

Tot

400

A03

C

Cao

550


Nhận xét
Cho R = (id; A1, A2,…, An), r(R) là một khối trên R. Với mỗi x id, thì
lát cắt r(Rx) là một quan hệ. Trong trường hợp tập chỉ số id gồm một phần tử
thì r(R) trở thành một quan hệ.
Như vậy, mỗi quan hệ r(A1, A2,…, An) là một trường hợp đặc biệt của
khối, đó chính là khối r(R) với R = ({x}; A1, A2,…, An).

Mệnh đề 1.1[4], [7]
Cho lược đồ khối R = (id; A1, A2,…, An), r(R) là một khối trên R, khi
đó tồn tại một họ quan hệ (hiểu theo nghĩa tập hợp) duy nhất biểu diễn họ
{r(Rx)}x

id

các lát cắt của khối r(R). Ngược lại không đúng, nghĩa là với một

họ quan hệ cho trước biểu diễn họ các lát cắt của một khối nào đó thì khối tìm
được không duy nhất.
1.2.2. Các phép tính cơ bản trên khối
Các phép tính cơ bản thường được áp dụng cho một cơ sở dữ liệu là:
- Phép chèn (insert)
- Phép loại bỏ (delete)
- Phép sửa đổi (change)
Trong mô hình dữ liệu dạng khối, các phép tính này cũng được áp dụng
cho từng phần tử của các khối lưu trữ trong máy. Cụ thể
- Phép chèn (insert)[4], [7]
Cho lược đồ khối R = (id; A1, A2,…, An), r(R) là một khối trên R.
Khi chèn thêm một phần tử t0 vào khối r, ta có:
r=r

1

2

n

{t0}, ở đó t0 = (t 0, t 0,…, t 0)

1

2

n

INSERT(r, t 0, t 0,…, t 0)
- Phép loại bỏ (delete) [4], [7]
Cho lược đồ khối R = (id; A1, A2,…, An), r(R) là một khối trên R.


Phép loại bỏ là phép xóa một phần tử ra khỏi một khối cho trước.
Chẳng hạn, loại phần tử t0 vào khối r(R), có dạng:
1

2

n

r = r - {t0}, t0 = (t 0, t 0,…, t 0)
1

1

2

2

n


n

DEL(r, t = t 0, t = t 0,…, t = t 0)
1

2

Ở đây, để xác định phần tử cần loại bỏ, ta phải dùng bộ ánh xạ (t , t ,…,
n

1

1

2

2

n

n

t ). Nghĩa là, ta phải thực hiện các phép so sánh: t = t 0, t =t 0,…, t = t 0 để
xác định phần tử t0 như ở trên.
- Phép sửa đổi (change)[4], [7]
Phép sửa đổi phần tử t0 thành phần tử t’0 có dạng.
r = r - {t0}
1

1


2

n

1

n

1

2

n

{t’0}, với t0 = (t 0, t 0 ,…, t 0 ), t’0 = (t’ 0, t’ 0,…, t’ 0),
1

2

2

n

1

2

2


n

n

CH(r, t = t 0, t = t 0,…, t = t 0; t = t’ 0, t = t’ 0,…, t’ = t 0)
Đối với các phép chèn, loại bỏ và sửa đổi nêu trên, khi khối r suy biến
thành một quan hệ, nghĩa là khi tập chỉ số id chỉ gồm một phần tử (id ={x})
thì chúng lại trở thành các phép chèn, loại bỏ và sửa đổi trên một quan hệ
trong mô hình dữ liệu quan hệ.
* Đại số trên khối [4], [7]
Cho r là một khối trên R = (id; A1, A2,…, An). Tương tự như đại số
quan hệ trong mô hình dữ liệu quan hệ, ở đây, các phép toán của đại số quan
hệ được áp dụng cho các khối như: phép hợp, phép giao,phép trừ, phép chiếu,
phép chọn, phép kết nối, phép chia. Ngoài ra, phép nối dài là phép toán mới
được xây dựng.
Hai khối r và s được gọi là khả hợp nếu chúng có cùng một lược đồ khối.
- Phép hợp
Cho hai khối r và s khả hợp, khi đó hợp của r và s, ký hiệu r
khối gồm các phần tử thuộc khối r hoặc thuộc khối s đã cho.
Ta có: r

s = {t | t

r hoặc t

s}

s là một



Ví dụ 1.3
ma

ma

A

A01

B

A02

A02

A02

A02
C

1/2014

C

A03

t3

r


B

A02

t2

A03

B

2/2014

C

t2

1/2014

A

A01

B

A03

A

A01


t1

B

2/2014

B

t2

A02

t1

ten

ten

A

A01

t1

ma

ten

C


A03

s

2/2014

1/2014

r

s

Hình 1.2.Ví dụ về phép hợp
- Phép giao
Cho hai khối r và s khả hợp, khi đó giao của r và s, ký hiệu r

s là một

khối gồm các phần tử của nó thuộc đồng thời cả hai khối r và s đã cho.
Ta có: r

s = {t | t

r và t

s}

Ví dụ 1.4
ten


ma

ma
t1

ten

B
B

A02

1/2014

r

A01
A01

A

t1

A02

t2

A

A02


t2

A

A01
A01

t1

2/2014

t3

ma

A

ten
A

A01
A

A01

B

B


A02
B

A02

t2
C

A03
C
A03

B

1/2014

A02

2/2014

1/2014

s
Hình 1.3Ví dụ về phép giao

r

s

2/2014



- Phép trừ
Cho hai khối r và s khả hợp, khi đó hiệu của r và s, ký hiệu r - s là một
khối mà các phần tử của nó thuộc r nhưng không thuộc s.
Ta có: r - s = {t | t
Ta thấy: r

r và t

s}

s = r – (r – s)

Ví dụ 1.5
ma
t1

A01
A

A01

A

A02

t2

B

B

A02

t1

B

A03

C

A03

B

A02

C
C

ten

ma

A02

t2

A03


A01

A01

t2

B

A02

1/2014

A

A

A02

2/2014

C

t3
t3

ten

ma


ten

B

2/2014

1/2014

2/2014

1/2014

A03

r

s

r-s

Hình 1.4Ví dụ về phép trừ
- Tích Đề-các
Cho lược đồ khối R = (id; A1, A2,…, An), S = (id; B1, B2,…, Bm),
và {A1, A2,…, An}

{B1, B2,…, Bm} =

.

Khi đó, tích Đề-các của hai khối r(R) và s(S) là một khối, ký hiệu r

khối này có khung R

s,

S = (id; A1, A2,…, An, B1, B2,…, Bm), mỗi phần tử

thuộc khối này là một bộ gồm n + m ánh xạ, trong đó n ánh xạ đầu có dạng
một phần tử thuộc r, còn m ánh xạ sau có dạng một phần tử thuộc s.
r

s = {t | t(R)

trong đó:

r và t(S)
1

2

s},
n

t = (t , t ,…, t , t
1

2

n+1
n


,…, t

n+m

),

t(R) = (t , t ,…, t ), t(S) = (t

n+1

,…, t

n+m

).


- Tích Đề-các theo tập chỉ số
Cho lược đồ khối R = (id; A1, A2,…, An), S =(id’; A1, A2,…, An). Khi
đó, tích Đề-các của hai khối r(R) và s(S) theo tập chỉ số là một khối, ký hiệu
r

id

s, khối này có khung R

id

S=(id ∐ id’; A1, A2,…, An), với id ∐ id’ là


ký hiệu tích rời rạc của hai tập chỉ số id và id’. Mỗi phần tử thuộc khối này
là một bộ gồm n ánh xạ(t1, t2,…, tn) với ti: id ∐ id’ → Ai, với i = 1..n, mỗi ánh
xạ này được cảm sinh từhai ánh xạ thứ i tương ứng của r và s.
Cụ thể hơn, giả sử có 2 phần tử là tr r và ts s:
1

2

n

1

2

n

tr = (t r, t r,…, t r), ts = (t s, t s,…, t s),
khi đó, ta có ánh xạ cảm sinh của tr và ts, phần tử cảm sinh của tr và ts,
ký hiệu là trs.
Gọi j1: id → id ∐ id’; j2: id → id ∐ id’ là các phép nhúng, thì ta
được:trsj1 r và trsj2 s và r

id

s = {t | tj1 r và tj2 s}

- Phép chiếu
Cho lược đồ khối R = (id; A1, A2,…, An), r là một khối trên R. Khi đó,
ta gọi P = (id’; Ai1, Ai2,…, Aih) là lược đồ con của lược đồ R nếu:
id'


id, Aij {A1, A2,…, An}, j = 1..h

Một phép chiếu của r trên lược đồ con P, ký hiệu

p(r),

là một khối có

n

r

lược đồ P và mỗi phần tử thuộc khối này có dạng:
(t i1 , t i 2 ,..., t ih )
id '

Trong đó: t

ij

1

2

n

1

2


{t , t ,…, t } với j = 1..h và (t , t ,…, t )

Biểu diễn theo hình thức của phép chiếu có dạng:
P

(r) {(t i1 ,t i 2,...,t ih )

| t ij {t 1 ,t 2 ,...,t n }, j=1..h, (t1 ,t2 ,...,tn ) r}
id '

- Phép chọn
Cho lược đồ khối R = (id; A1, A2,…, An), và khối r(R).


Cho một phép chọn, nghĩa là ta xây dựng một tập con các phần tử của
khối đã cho thỏa mãn biểu thức F cho trước. Biểu thức F được diễn tả bằng một
tổ hợp Boole của các toán hạng, mỗi toán hạng là một phép so sánh đơn giản
giữa hai biến là hai giá trị điểm của hai ánh xạ thành phần nào đó hoặc
giữa một biến là giá trị điểm của một ánh xạ thành phần và một hằng. Các
phép so sánh trong F là: <, >, =, , , , còn các phép toán logic trong F là: ,
, .
Biểu diễn hình thức của phép chọn có dạng:
F(r)

= {t

r | F(t)},

Trong đó F(t) là giá trị của biểu thức Boole F tại phần tử t


r.

- Phép kết nối
Cho lược đồ khối R = (id; A1, A2,…, An), S = (id; B1, B2,…, Bm), cùng
với hai khối tương ứng r(R), s(S).
Gọi T = (id; C1, C2,…, Cp), trong đó:
{C1, C2,…, Cp} = {A1, A2,…, An}

{B1, B2,…, Bm}.

Phép kết nối của hai khối r và s, ký hiệu r ⨝ s là khối t(T) định nghĩa
như sau:
t(T) = {t |

tr r và ts s sao cho t(R) =tr, t(S) = ts}

Phép kết nối này cũng gọi là phép kết nối tự nhiên của hai khối r(R) và
s(S), đôi khi sử dụng ký hiệu r*s.
Đặc biệt, khi các khối r(R) và s(S) có tập chỉ số id trong lược đồ khối
của chúng chỉ gồm một phần tử thì các khối này trở thành các quan hệ và
phép kết nối tự nhiên của hai khối lại trở thành phép kết nối tự nhiên của hai
quan hệ trong mô hình CSDL quan hệ.
Nếu hai tập {A1, A2,…, An}và {B1, B2,…, Bm} không giao nhau thì r* s
trở thành tích Đề-các của hai khối đã cho.
Ta có thể mở rộng khái niệm kết nối như sau:


Giả sử Aik {A1, A2,…, An}, Bik
Dom(Bik), 1


k

{B1, B2,…, Bm} và Dom(Aik) =

h (ở đây Aik và Bik không nhất thiết phải phân biệt).

Khi đó, phép kết nối của r và s theo Ai1, Ai2,…, Aih và Bi1, Bi2,…, Bih là
khối t(T), khối này được định nghĩa là:
t(T) = {t |
1

tr

r và ts

2

n

s sao cho t(R) =tr, t(S) = ts, trik = tsik, 1 k h},
1

2

m

trong đó tr = (t r , t r ,…, t r ), ts = (t s, t s,…, t s ).
Thay cho ký hiệu r ⨝ s, ở đây ta ký hiệu rõ hơn:
ik


t(T) = r [tr = tsik, 1

k

h] s.

- Phép chia
Cho hai khối r(id; A1, A2,…, An) và s(id; Ai1, Ai2,…, Aih), trong đó,
Aik

{A1, A2,…, An}, k =1..h. Khi đó, phép chia của khối r cho khối s, ký
1

hiệu r

2

n-h

s, là một khối gồm các phần tử t = (t , t , …, t ) sao cho:
1

2

h

u = (u , u , …, u ), u

s thì phần tử tu

1

2

r,
n-h

1

2

h

s = {t | u

s, tu

ở đây phần tử tu có dạng:tu = (t , t , …, t , u , u , …, u ).
Biểu diễn hình thức của phép chia: r

r}.

- Phép nối dài
Cho hai khối r(id; A1, A2,…, An), s (id’; A1, A2,…, An), ở đó, nếu id
id’ =

mà ta có với t
1

2


r và k

n

1

s:
2

n

t = (t , t , …, t ), k = (k , k , …, k )
t1

k

1

id id '

k

t2
id id '

id id '
2
id id '


..........................
t

n

k

id id '

n
id id '

thì khi đó, ta xây dựng được một phần tử mới có dạng:
1

2

n

h

h

u = (u , u , …, u ) vớiu : id id’ Dom(A )sao cho:


h

u


h

t ,

h

u

id

h

h

h

h 1..n, và ký hiệu u = t *id k , h = 1..n

h

k ,

id '

1

2

n


Những phần tử u = (u , u , …, u ) này tạo thành một khối mới, được ký
hiệu r *id s, gọi là khối nối dài của hai khối r và s.
Phép toán được xây dựng ở trên gọi là phép nối dài của hai khối r và s
đã cho.
Biểu diễn hình thức của phép nối dài có dạng:
r *id s {u

(u j )j 1,n | (u j )j 1,n
id

r và (u jn j) 1,n

s}

id '

1.2.3. Khái niệm phụ thuộc hàm
Để đơn giản, ta sử dụng các ký hiệu:
(i)

(i)

(i)

x = (x; Ai); id = (x | x
(i)

Ta gọi x (x

id)


id, i = 1..n) là các thuộc tính chỉ số của lược đồ khối R =

(id; A1, A2,…, An).
Định nghĩa 1.3[4], [7]
n

 id

Cho R = (id; A1, A2,…, An), r(R) là một khối trên R, X, Y

(i

,

i 1

X

Y là ký hiệu mộtphụ thuộc hàm (PTH). Một khối r thỏa X

mọi t 1, t2

Y nếu với

R sao cho t1(X)= t 2(X) thì t 1(Y)= t2(Y).

Định nghĩa 1.4[4], [7]
Cho lược đồ khối R = (id; A1, A2,…, An), F là tập cácPTH trên R.
+


Khi đó, bao đóng của F, ký hiệu F được xác định như sau:
+

F = {X

Y| F
(m)

Nếu X = {x }
giản làx

(m)

(m)

Y}.
(k)

id , Y = {y }

id

(k)

thì ta ký hiệuPTHX

Y đơn

(k)


y .

Khối r thỏa x
(k)

X

(k)

thì t1(y )= t2(y ).

(m)

(k)

y

(m)

(m)

nếu với mọi mọi t1, t2 r sao cho t1(x )= t2(x )


Trong đó:

(m)

(m)


(k)

(k)

t1(x )= t1(x; Am), t2(x )= t2(x; Am),
t1(y )= t1(x; Ak), t2(y )= t2(x; Ak),

Mệnh đề1.2[4], [7]
n

id

Cho R = (id; A1, A2,…, An), r(R) là một khối trên R, X,
Y
Y là ký hiệu mộtPTH. Giả sử r(R) thỏaPTHX

(i

,X

i 1

Y. Khi đó, nếu id = {x} thì: r(R)
n

trở thành quan hệ r(A1, A2,…, An) vàPTH X
Y

 id


Y, (X,

(i

) trở

i 1

thànhPTH trong mô hình dữ liệu quan hệ.
Mệnh đề 1.3[4], [7]
Cho R = (id; A1, A2,…, An), r(R) là một khối trên R,
(m)

x

(m)

id ,x

id, r thỏa y

(k)

(k)

id . Khi đó, nếu r thỏaPTHx

(m)


(m)

x

(k)

thì đối với mọi y

(k)

y

Mệnh đề 1.4[4], [7]
Cho
(m)

(m)

(m)

x ,y
(k)

y

R=(id;
(k)

A1,
(k)


(m)

An),

r(R)



một

(k)

id ,x ,y

thì r thỏa x

A2,…,

id . Khi đó, nếu r thỏa cácPTHx

(m)

khối
(m)

y

trên
và x


R,

(m)

(k)

y .

1.2.4. Bao đóng của tập thuộc tính chỉ số
Định nghĩa 1.5[4], [7]
Cho R = (id; A1, A2,…, An), F là tập cácPTH trên R.
Với mỗi X

n

id

(i

, ta định nghĩa bao đóng của X đối với F, ký hiệu

i 1

+

X như sau:
+

(i)


X = {x , x

id, i = 1..n | X

x

(i)

F}

Cho lược đồ khối R = (id; A1, A2,…, An), ta ký hiệu tập cácPTH trên R:
Fh = {X

Y|X =

x
i A

(i )

,Y=

x

j B

(i )

, A, B


{1, 2,… n}, x id},


Fhx = {X

Y

n

x

Fh | X, Y

(i )

i 1

}, với x ∈ id và kí hiệu Fhx= Fh
n

x ( i )
i 1

Thuật toán 1.1(Tìm bao đóng của tập thuộc tính X của lược đồ
khối)[4], [7]
Algorithm BAODONG1
Format: BAODONG1(X, F, R)
Input: Tập thuộc tính X, tập phụ thuộc hàm F và
lược đồ khối R

Output: X+, bao đóng của X đối với F trên R
Method
Tepcu :=

; tepmoi := X;

While tepmoi

tepcu do

Begin
Tepcu := tepmoi;
For each W

Z in F do

If tepmoi

W then tepmoi:=tepmoi Z;

End;
Return (tepmoi);
End BAODONG1;
Cho lược đồ khối R = (id; A1, A2,…, An), Fh, Fhx là tập cácPTH trên R,
n

Rx tương ứng, M

id(i , M = 
i 1


n

, Mx

x

(i )

, Mx

,x

A

id.

i 1

A

Mx
Khi đó, dựa vào thuật toán tính bao đóng ở trên, ta có thể tính bao đóng
+

M của M đối với Fh. Từ quá trình tính bao đóng của M đối với Fh, ta thấy đó
chính là các quá trình tính bao đóng của các tập thuộc tính chỉ số Mx (x
đối với các tậpPTH tương ứng Fhx (x

A).


A)


×