Tải bản đầy đủ (.pdf) (52 trang)

Phép tách không mất thông tin 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.27 MB, 52 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI 2

PHAN THỊ THU HẰNG

PHÉP TÁCH KHÔNG MẤT THÔNG TIN
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

HÀ NỘI, 2015


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC SƢ PHẠM HÀ NỘI 2

PHAN THỊ THU HẰNG

PHÉP TÁCH KHÔNG MẤT THÔNG TIN
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 01 01

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

HÀ NỘI, 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ầy cô trƣờng Đại học Sƣ phạm Hà Nội 2.
Tôi xin chân thành cảm ơn các thầy cô trƣờng Đại học Sƣ phạm Hà Nội 2 đã
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ầy TS 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.
Vĩnh Phúc, ngày 10 tháng 12 năm 2015
Học viên

Phan Thị Thu Hằng


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.Tôi cũng xin cam đoan rằng mọi
sự giúp đỡ cho việc thực hiện luận văn này đã đƣợc cảm ơn và các thông tin
trích dẫn trong luận văn đã đƣợc chỉ rõ nguồn gốc

Học viên

Phan Thị Thu Hằng


MỤC LỤC
LỜI CẢM ƠN
LỜI CAM ĐOAN
DANH MỤC CÁC BẢNG BIỂU, HÌNH VẼ
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

MỞ ĐẦU ....................................................................................................... 1
1. Lý do chọn đề tài..................................................................................... 1
2. Mục đích nghiên cứu............................................................................... 1
3. Nhiệm vụ nghiên cứu .............................................................................. 1
4. Đối tƣợng và phạm vi nghiên cứu ........................................................... 2
5. Phƣơng pháp nghiên cứu ......................................................................... 2
6. Những đóng góp mới của đề tài .............................................................. 2
7. Cấu trúc của luận văn .............................................................................. 2
CHƢƠNG 1. CÁC MÔ HÌNH DỮ LIỆU ....................................................... 4
1.1. Mô hình thực thể - liên kết ................................................................... 4
1.2. Mô hình dữ liệu quan hệ....................................................................... 4
1.3. Mô hình dữ liệu dạng khối ................................................................... 5
1.3.1. Các khái niệm chung nhất về khối và lƣợc đồ khối ........................ 5
1.3.2. Đại số quan hệ trên khối ................................................................ 8
1.3.3.Các thuật toán cài đặt .................................................................... 15
Kết luận chƣơng 1 ..................................................................................... 21
CHƢƠNG 2. PHÉP TÁCH KHÔNG MẤT THÔNG TIN TRONG MÔ HÌNH
DỮ LIỆU DẠNG KHỐI .............................................................................. 22
2.1 Các dạng chuẩn cho lƣợc đồ khối ........................................................ 22
2.1.1 Dạng chuẩn 1 ................................................................................ 22
2.1.2 Dạng chuẩn 2 ................................................................................ 22
2.1.3 Dạng chuẩn 3 ................................................................................ 23
2.1.4. Dạng chuẩn Boye-Codd ............................................................... 23


2.2 Các dạng tựa chuẩn ............................................................................. 24
2.2.1 Dạng tựa chuẩn 2 .......................................................................... 24
2.2.2 Dạng tựa chuẩn 3 .......................................................................... 24
2.2.3 Dạng tựa chuẩn boye – Codd ........................................................ 25
2.3 Phép tách không mất thông tin ........................................................... 26

2.3.1. Khái niệm phép tách không mất thông tin .................................... 26
2.3.2. Phƣơng pháp tách không mất thông tin ........................................ 26
2.3.3. Thuật toán tách bảo toàn tập phụ thuộc hàm và chuyển về dạng tựa
chuẩn ba ................................................................................................ 30
Kết luận chƣơng 2 ..................................................................................... 31
CHƢƠNG 3. CHƢƠNG TRÌNH THỬ NGHIỆM PHÉP TÁCH KHÔNG
MẤT THÔNG TIN TRONG MÔ HÌNH DỮ LIỆU DẠNG KHỐI .............. 32
3.1. Mô tả bài toán .................................................................................... 32
3.2.Kết quả thử nghiệm và đánh giá .......................................................... 35
3.2.1. Môi trƣờng thử nghiệm ................................................................ 35
3.2.2. Chƣơng trình thử nghiệm kiểm tra phép tách có mất thông tin hay
không..................................................................................................... 35
KẾT LUẬN .................................................................................................. 42
TÀI LIỆU THAM KHẢO ............................................................................ 43


DANH MỤC CÁC BẢNG BIỂU HÌNH VẼ
DANH MỤC HÌNH
Hình 1.1. Biểu diễn khối điểm học viên DiemHV ( R) . ............................................ 6
Hình 1.2. Biểu diễn 2 khối r , s khả hợp. ................................................................ 8
Hình 1.3. Biểu diễn các khối r , s, r  s. ................................................................. 9
Hình 1.4. Biểu diễn các khối r , s, r  s . ................................................................ 10
Hình 1.5. Biểu diễn các khối: r , s, s \ r . ................................................................ 11
Hình 3.1 Minh họa bài toán với 10 phân xƣởng (n=10) ......................................... 33
DANH MỤC BẢNG
Bảng 1.1. Biểu diễn lát cắt r(RHọc kỳ I). ....................................................................... 7


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

Dom(A)

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

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.

x(i) = (x, Ai)

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



id(i)= {x(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

id, i = 1..n)



1

MỞ ĐẦU
1. Lý do chọn đề tài
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
một mô hình dữ liệu mới đã đƣợc đề xuất, đó là mô hình dữ liệu dạng khối.
Mô hình dữ liệu này có thể xem là phần mở rộng của mô hình dữ liệu quan
hệ. Đã có một số loại mô hình đƣợc sử dụng trong các hệ thống cơ sở dữ liệu
trong đó mô hình quan hệ đƣợc quan tâm hơn cả. Sở dĩ mô hình quan hệ đƣợc
quan tâm nhƣ vậy là vì nó đƣợc xây dựng trên một cơ sở toán học chặt chẽ đó là lí thuyết toán học về các quan hệ có áp dụng rộng rãi các công cụ đại số
và logic.
Tôi mạnh dạn chọn đề tài cho luận văn thạc sĩ của mình là “Phép tách
không mất thông tin trong mô hình dữ liệu dạng khối” để phần nào mô tả chi
tiết hơn về mô hình dữ liệu dạng khối. Trên cơ sở đó có thể đƣa mô hình này
ứng dụng vào các bài toán quản lý hệ thống thông tin quản lý theo mô hình dữ
liệu dạng khối.
2. Mục đích nghiên cứu
Nghiên cứu về phép tách đảm bảo không mất thông tin trong mô hình
dữ liệu dạng khối
3. Nhiệm vụ nghiên cứu
1. Tổng quan về lý thuyết phép phân rã một sơ đồ quan hệ trong mô
hình dữ liệu quan hệ
2. Nghiên cứu về các dạng chuẩn và tựa chuẩn trong mô hình dữ liệu
dạng khối
3. Nghiên cứu về phép tách một lƣợc đồ khối bảo đảm không mất thông
tin


2


4. Vận dụng kết quả nghiên cứu cho một bài toán quản lý hệ thống
thông tin quản lý theo mô hình dữ liệu dạng khối
4. Đối tƣợng và phạm vi nghiên cứu
Đối tƣợng nghiên cứu của đề tài là sơ đồ khối trong mô hình dữ liệu
dạng khối
Phạm vi nghiên cứu của đề tài là phép tách sơ đồ khối bảo đảm không
mất thông tin
5. Phƣơng pháp nghiên cứu
- Phƣơng pháp tổng hợp phân tích các vấn đề liên quan đến đề tài,
- Phƣơng pháp thống kê kết hợp với phƣơng pháp chuyên gia
- Phƣơng pháp kết hợp lý thuyết với thực nghiệm trên máy tính
6. Những đóng góp mới của đề tài
- Tổng quan về mô hình dữ liệu dạng khối
- Tổng hợp về các loại chuẩn, tựa chuẩn trong mô hình dữ liệu dạng
khối
- Xây dựng đƣợc quy trình tách một lƣợc đồ khối phức tạp thành nhiều
lƣợc đồ khối đơn giản hơn nhƣng vẫn bảo toàn dữ liệu
- Góp phần làm đơn giản quá trình giải quyết bài toán thực tế có mô
hình dữ liệu khối
7. Cấu trúc của luận văn
Luận văn gồm: Lời mở đầu, ba chƣơng nội dung, phần kết luận và tài
liệu tham khảo.
Chƣơng 1: Trình bày các khái niệm cơ bản nhất về các mô hình dữ liệu: Mô
hình thực thể - liên kết, mô hình dữ liệu quan hệ, mô hình dữ liệu dạng khối,
các khái niệm chung nhất về khối và lƣợc đồ khối, đại số quan hệ trên khối,
và các thuật toán cài đặt
Chƣơng 2: Trình bày về phép tách không mất thông tin trong mô hình dữ liệu



3

dạng khối: Các dạng chuẩn cho lƣợc đồ khối, các dạng tựa chuẩn, khái niệm
về phép tách không mất thông tin và phƣơng pháp tách không mất thông tin.
Chƣơng 3: Chƣơng trình thử nghiệm phép tách không mất thông tin trong mô
hình dữ liệu dạng khối.


4

CHƢƠNG 1
CÁC MÔ HÌNH DỮ LIỆU
1.1. Mô hình thực thể - liên kết
Thuật ngữ “thực thể” (entity) không có một định nghĩa hình thức, cũng
giống nhƣ các thuật ngữ “điểm” và “đƣờng” trong hình học ngầm đƣợc định
nghĩa bằng các tiên đề về các đặc tính của chúng. Ta có thể nói rằng: thực thể
là một sự vật tồn tại và phân biệt đƣợc, nghĩa là có thể phân biệt thực thể này
với thực thể khác.
Một nhóm bao gồm tất cả các thực thể “tƣơng tự” tạo ra một tập thực thể
(entity set). Tính “tƣơng tự” ít nhất cũng đòi hỏi rằng có thể tìm đƣợc một tập
các đặc tính chung cho tất cả các phần tử của một tập thực thể.
Các đặc tính của tập thực thể gọi là các thuộc tính.
Ngoài ra trong mô hình còn có nhiều khái niệm cơ bản khác nhƣ: hóa,
phân cấp isa, mối liên hệ, sơ đồ thực thể - liên kết... Mục đích của mô hình
này là cho phép mô tả lƣợc đồ khái niệm của một tổ chức mà không cần chú ý
đến tính hiệu quả hoặc các chi tiết thiết kế cơ sở dữ liệu vật lý.
1.2. 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ó 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 mô hình thực thể - liên kết đƣợc biểu diễn bởi hai loại
quan hệ :


5

- Một tập thực thể E có thể đƣợc biểu diễn bởi một quan hệ mà lƣợc đồ
quan hệ 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ƣợc đồ quan hệ 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.3. Mô hình dữ liệu dạng khối
1.3.1. Các khái niệm chung nhất về 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 cơ sở dữ liệu dạng khối
(gọi tắt là mô hình 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
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 tập 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ọ các ánh xạ
từ tập chỉ số id đến các miền trị của các thuộc tính Ai ,(i  1...n). Nói một
cách khác: t  r ( R)  t  {t i : id  dom(Ai )}i 1...n .

Ta kí hiệ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:Ta xây dựng khối điểm học viên kí hiệu DiemHV ( R) hình 1.1


6

để quản lý điểm của học viên trong một trƣờng học nhƣ sau:
Cho lƣợc đồ khối R  (id ; A1, A2 , A3, A4 , A5 ) , trong đó: id = {Học kỳ I , Học
kỳ II ....., và các thuộc tính là A1 = MaHV (mã học viên), A2 = TenHV (tên
học viên), A3 = GT (giới tính), A4 = Triet (triết), A5 = Anh (anh)
Với khối DiemHV ( R) . ở hình 1.1, ta thấy nó gồm 3 phần tử: t1, t2 , t3 .

Hình 1.1. Biểu diễn khối điểm học viên DiemHV ( R) .
Khi đó ta có:
* Điểm Triet của học viên t2 ở thời điểm Học kỳ I là:
t2 (Học kỳ I , Triet) = 5,0 .

* Tên của học viên t1 ở Học kỳ II là:
t1 (Học kỳ II , TenHV) = A .

* Điểm Anh của học viên t3 ở thời điểm Học kỳ II là:
t3 (Học kỳ II , Anh) = 6,4 .


7

* Mã số của học viên t3 ở thời điểm Học kỳ I là:

t3 (Học kỳ I , MaHV) = S 03 .

Định nghĩa 1.2
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:

t x  r ( Rx )  t x  {t xi  t i }i 1..n, t  r ( R),
x
ở đây t xi ( x)  t i ( x) với i  1...n.
Khi đó r ( 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 DiemHV ( R) đã cho ở trên, R  (id ; A1, A2 , A3, A4 , A5 )
trong đó: id = {Học kỳ I , Học kỳ II }.
A1  MaHV, A2  TenHV, A3  GT, A4  Triet, A5  Anh.

Nếu x = Học kỳ I  id thì lát cắt r(RHọc kỳ I) có dạng nhƣ sau:
r(RHọc kỳ I)

MaHV

TenHV

GT

Triet

Anh

S 01

A


F

7,4

6,9

S 02

B

F

5,0

6,4

S 03

C

M

8,7

6,8

Bảng 1.1. Biểu diễn lát cắt r(RHọc kỳ I).
Nhận xét
Cho lƣợc đồ khối 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 chỉ
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 ) .


8

Mệnh đề 1.1
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ệ 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.3.2. Đại số quan hệ trên khối
Cho r là một khối trên R  (id ; A1, A2 ,..., An ) , ở đây ta giả thiết rằng r
là một khối gồm một tập hữu hạn các phần tử. Cũng tƣơng tự nhƣ đại số quan
hệ trong mô hình cơ sở dữ liệu quan hệ, ở đây các phép toán của đại số quan
hệ lại đƣợc áp dụng cho các khối; bên cạnh đó còn có thêm phép toán mới
đƣợc xây dựng đó là: Tích Đề-các theo tập chỉ số.
Đối với các phép hợp, giao và trừ thì hai khối tham gia phải là khả hợp
(nghĩa là chúng có cùng một lƣợc đồ khối).
Cho 2 khối r ( R) và s( R) nhƣ hình vẽ dƣới đây ta thấy hai khối này
cùng lƣợc đồ khối: R  (id ; A1, A2 , A3, A4 ) ; id  {x1, x2}

Hình 1.2. Biểu diễn 2 khối r , s khả hợp.


9


a. Phép hợp.
Cho 2 khối r và s khả hợp, khi đó hợp của r và s , kí hiệu r  s là
một khối gồm các phần tử thuộc một trong hai khối r và s đã cho. Ta có:

r  s {t t  r hoặc t s} .
Ví dụ 1.3.Cho 2 khối r và s nhƣ sau:

Hình 1.3. Biểu diễn các khối r, s, r  s.


10

b. Phép giao
Cho hai khối r và s khả hợp, khi đó giao của r và s là một khối, kí
hiệu r  s , là một khốimà 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.

Hình 1.4. Biểu diễn các khối r, s, r  s .
c. Phép trừ
Cho hai khối r và s khả hợp, khi đó hiệu của r và s là một khối, kí
hiệu là 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  r và t s}.
Ta có mối quan hệ giữa phép giao và phép trừ: r  s  r \ (r \ s).


11

Ví dụ 1.5.


Hình 1.5. Biểu diễn các khối: r , s, s \ r .

d. Tích Đề các
Cho R  (id ; A1, A2 ,..., An ), S  (id ; B1, B2 ,..., Bm ) , ở đây
{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  s , khối này có khung R  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 .
Biểu diễn hình thức của Tích Đề-các có dạng:

x  s  {t t ( R)  r và t ( S ) s), trong đó: t  (t1, t 2 ,..., t n , t n 1,..., t n  m ), t ( R)

 (t1, t 2 , t n ) và t (S )  (t n 1,..., t n  m ).


12

e. Tích Đề các theo tập chỉ số
Cho 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, t 2 ,..., t n ) với t i :id

id '  Ai với i 1...n, mỗi ánh xạ này đƣợc cảm

sinh từ 2 á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à tr s :

tr  (t1r , tr2 ,..., trn ), ts  (t1s , ts2 ,..., tsn ),
Khi đó ta có ánh xạ cảm sinh của tr và ts , phần tử cảm sinh của tr và
t s , kí hiệu là trs. .

Gọi j1 :id

id ' , j2 : id '  id

id ' là các phép nhúng thì ta đƣợc:

trs j1  r và trs j2 s, và r id s  {t tj1r và tj2  s} .

g. 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, Ai 2 ,..., 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 khối r trên lƣợc đồ con P , kí hiệu  P (r ) là một
khối có 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 )


, trong đó: t ij {t1, t 2 ,..., t n} với j  1..h

id ' và (t1, t 2 ,..., t n )  r.
Biểu diễn hình thức của phép chiếu có dạng:


13

 P (r )  {(t i1, t i 2 ,..., t ih ) t ij {t1, t 2 ,..., t n }, j =1..h,(t1, t 2 ,..., t n )  r}

id '
h. Phép chọn
Cho 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 lôgic 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 .
i. Phép kết nối
Cho R  (id ; A1, A2 ,..., An ) và s  (id ; B1, B2 ,..., Bm ), cùng với hai khối

r ( R) và s( S ) tƣơng ứng.
Gọi T  (id ; C1, C2 ,..., C p ), trong đó:
{C1, C2 ,..., C p}={A1, A2 ,..., An} {B1, B2 ,..., Bm}.

Phép kết nối của 2 khối r và s , kí hiệu r


s là khối t (T ) định nghĩa

nhƣ sau: t (T ) {t  t r  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à


14

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 cơ sở dữ liệu 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.

Mệnh đề 1.2.
Giả sử r ( R), r ' ( R), q(Q), s(S ) là các khối đã cho, khi đó ta có:
* (q

r)

s q

(r

).

* (r  r ' )


s  (r

s )  (r '

s).

* (r  r ' )

s  (r

s )  (r '

s).

* (r  r ' )

s  (r

s)  (r '

s).

Ta có thể mở rộng khái niệm kết nối nhƣ sau:
Giả sử Aik {A1, A2 ,..., An}, Bik {B1, B2 ,..., Bm} và dom ( Aik )  dom( Bik ),

1  k  h, (ở đây Aik và Bik không nhất thiết phân biệt).
Khi đó kết nối của r và s theo Ai1, Ai 2 ,..., Aih và Bi1, Bi 2 ,..., Bih là
khối t (T ), khối này đƣợc định nghĩa là:


t (T )  {t  t r  r và ts  s sao cho t ( R)  tr , t (s)  ts , trik  tsik , 1  k  h},
trong đó: tr  (t1r , tr2 ,..., trn ), ts  (t1s , ts2 ,..., tsm ).
Thay cho kí hiệu r

s ở đây ta kí hiệu rõ hơn:

ik
t (T )  r [t ik
r = t s , 1  k  h] s .

k. Phép chia
Cho hai khối r (id ; A1, A2..., An ) và s(id ; Ai1, Ai 2 ,..., Aih ), trong đó
Aik  {A1, A2 , ..., An},  k =1..h. Khi đó phép chia của khối r cho khối s , kí

hiệu r  s , là một khối gồm các phần tử t  (t1, t 2 ,..., t n h ) sao cho  u 


15

(u1, u 2 , ..., u h ), u  s thì phần tử tu  r , ở đây phần tử tu có dạng:
tu  (t1, t 2 ,..., t n h , u1, u 2 ,..., u h ).
Biểu diễn hình thức của phép chia có dạng: r  s  {t u s, tu r}.
1.3.3.Các thuật toán cài đặt
a. Thuật toán hợp
Algorithm hop
Input: hai khối khả hợp p(R) và q(R).
Output: khối r(R) = { x: x p  x  q }.
Format: hop(p,q)
Begin
r:= create(R);

for each x in p do
add x to r;
for each y in q do
if y in p then label y in p
else add y ro r;
return(r)
end;
b. Thuật toán giao
Algorithm giao
Input: hai khối khả hợp p(R) và q(R).
Output: Output: khối r(R) = { x: x  p  x  q }.
Format: giao(p,q)
Begin
r:= create(R);
for each x in p do


16

if x in q then
begin
add x to r;
label x in q;
end;
return(r)
end;
c. Thuật toán trừ
Algorithm tru
Input: hai khối khả hợp p(R) và q(R).
Output: Output: khối r(R) = { x: x  p  x  q }.

Format: tru(p,q)
Begin
r:= create(R);
for each x in p do
ifxy in q then label x in q
else add x ro r;
return(r)
end;
d. Thuật toán chiếu
Algorithm chieu
Input: khối r(R) với R = ( id; A1,A2,...,An ) và
P = ( id’;

,

, ... ,

),

 { A1, A2, ..., An },  j = 1..h.
Output: khối s(P) = { x.P  x r }.
Format: chieu(r,P)


17

Begin
s:= create(P);
for each x in r do
if not (x.P in s) then add x.P to s;

return (s)
end;
ở đây phần tử x.P có dạng: x.P = (
id’
trong đó

,
id’

,…,

)

id’

 { x1 , x2 ,…, xn }, j = 1..h, và x = (x1,x2,…,xn ).

e. Thuật toán chọn
Algorithm chon
Input: khối r(R) và tiêu chuẩn F.
Output: khối s(R) = { x r(R)  test (x,F) }.
Format: chon(r,F)
Begin
S:= create(R);
For each x in r do
If test(x,F) then add x to s;
Return(s)
End;
f. Thuật toán kết nối tự nhiên
Algorithm ketnoi

Input: hai khối r(R) và s(S), R = (id; A1, A2,..., An ),
S = (id;B1, B2,..., Bm ) với A1 = B1,..., Ah,..., Ah = Bh.
Output: khối t(T) = { z  z.R  r(R)  z.S  s(S)}.


×