ĐẠ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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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

Học viên

ai công bố trong bất kỳ công trình nào khác.

Ngô Văn Định

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

i

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

2.2. Phép dịch chuyển lƣợc đồ khối ............................................................ 43

ii

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

TÀI LIỆU THAM KHẢO ............................................................................... 69

iii

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

Dom(A) cơ sở dữ liệu 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

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

phụ thuộc hàm

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

PTH x(i) = (x, Ai) 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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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

iv

Trang

DANH MỤC CÁC HÌNH

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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

1

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

dịch chuyển lƣợc đồ quan hệ (LĐQH). Trong mô hình cơ sở dữ liệu dạng

2

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

- Phƣơng pháp nghiên cứu lý luận.

3

- 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ô

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

hình dữ liệu dạng khối.

4

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

mới bằng thao tác tạo lập mẫu tin hoặc tạo lập tập hợp.

5

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

khối hiểu theo nghĩa của lý thuyết tập hợp. Khối đƣợc định nghĩa nhƣ sau:

6

Đị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) t = {ti: 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á).

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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

7

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:

với t = {ti: id Dom(Ai)} i=1..n

ở đây .

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 id thì lát cắt r(R1/2014) có dạng nhƣ sau:

ma c_luong gia ten r(R1/2014):

A01 TB 300 A

A02 Tot 400 B

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

A03 Cao 550 C

8

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.

0, t2

0,…, tn

0)

Khi chèn thêm một phần tử t0 vào khối r, ta có:

0)

r = r INSERT(r, t1 {t0}, ở đó t0 = (t1 0,…, tn 0, t2

- Phép loại bỏ (delete) [4], [7]

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Cho lƣợc đồ khối R = (id; A1, A2,…, An), r(R) là một khối trên R.

9

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.

0,…, tn 0) 0,…, tn = tn

0)

r = r - {t0}, t0 = (t1 DEL(r, t1 = t1 Chẳng hạn, loại phần tử t0 vào khối r(R), có dạng: 0, t2 0, t2 = t2

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

0, t2=t2

0,…, tn = tn

0 để

tn). Nghĩa là, ta phải thực hiện các phép so sánh: t1 = t1

xác định phần tử t0 nhƣ ở trên.

- Phép sửa đổi (change)[4], [7]

0,…, tn

0,…, t’n

0),

Phép sửa đổi phần tử t0 thành phần tử t’0 có dạng. 0), t’0 = (t’1

0, t2 0; t1 = t’1

0, t2 = t’2

0, t’2 0,…, t’n = tn

0)

r = r - {t0} CH(r, t1 = t1 {t’0}, với t0 = (t1 0,…, tn = tn 0, t2 = t2

Đố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 s là một

khối gồm các phần tử thuộc khối r hoặc thuộc khối s đã cho.

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Ta có: r s = {t | t r hoặc t s}

10

ma

ten

ma

ten

ten

ma

A

A01

A

t1

A

A01

B

A01

A02

A

t1

A01

t1

B

A02

A02

B

B

2/2014

A02

C

2/2014

A03

B

B

A02

t2

C

Ví dụ 1.3

t2

t2

1/2014

A03

1/2014

C

A03

2/2014

C

t3

1/2014

A03

A02

s r s r

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}

ten

ma

ma

ten

A

A01

A

A

t1

A01

A01

ma

ten

A

t1

A01

A

A02

B

A01

B

A02

A

Ví dụ 1.4

t2

2/2014

A01

B

A02

t2

B

1/2014

A02

B

A02

C

2/2014

2/2014

A03

B

C

t2

t3

A02

1/2014

1/2014

t1

A03

r r s s

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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

11

- 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 r và t s}

Ta thấy: r s = r – (r – s)

ten

ma

ma

ten

ten

ma

A01

B

A

A02

A01

t2

A

B

A

A01 A01

A02

t1

ten

A

t1

A02

B

2/2014

C

B

2/2014

A02

A03

t2

B

A02

C

1/2014

t2

A02

B

A03

1/2014

A03

C

t3 2/2014

C

1/2014

t3

A03

Ví dụ 1.5

r r - s

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 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.

r s = {t | t(R) r và t(S) s},

trong đó:

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

t = (t1, t2,…, tn, tn+1,…, tn+m), t(R) = (t1, t2,…, tn), t(S) = (tn+1,…, tn+m).

12

- 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

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

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

r

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.

s: r và ts

r), ts = (t1

r,…, tn

s, t2

r, t2

s),

Cụ thể hơn, giả sử có 2 phần tử là tr s,…, tn tr = (t1

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

id s = {t | tj1

s và r s} đƣợc:trsj1 r và trsj2 r và tj2

- 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

p(r), là một khối có

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

lƣợc đồ P và mỗi phần tử thuộc khối này có dạng:

Trong đó: tij {t1, t2,…, tn} với j = 1..h và (t1, t2,…, tn) r

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

- Phép chọn

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Cho lƣợc đồ khối R = (id; A1, A2,…, An), và khối r(R).

13

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.

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Ta có thể mở rộng khái niệm kết nối nhƣ sau:

14

Giả sử Aik {A1, A2,…, An}, Bik {B1, B2,…, Bm} và Dom(Aik) =

k Dom(Bik), 1 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à

ik, 1 k h},

khối t(T), khối này đƣợc định nghĩa là:

ik = ts

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

r), ts = (t1

s, t2

s,…, tm

s).

t(T) = {t | r, t2 trong đó tr = (t1 tr r,…, tn

ik, 1

Thay cho ký hiệu r ⨝ s, ở đây ta ký hiệu rõ hơn:

ik = ts

k h] s. t(T) = r [tr

- 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ý

hiệu r s, là một khối gồm các phần tử t = (t1, t2, …, tn-h) sao cho:

u = (u1, u2, …, uh), u s thì phần tử tu r,

ở đây phần tử tu có dạng:tu = (t1, t2, …, tn-h, u1, u2, …, uh).

Biểu diễn hình thức của phép chia: r s = {t | u s, tu 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’ = r và k s:

mà ta có với t t = (t1, t2, …, tn), k = (k1, k2, …, kn)

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

u = (u1, u2, …, un) vớiuh: id id’ Dom(Ah)sao cho:

15

, và ký hiệu uh = th *id kh, h = 1..n

Những phần tử u = (u1, u2, …, un) 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:

1.2.3. Khái niệm phụ thuộc hàm

id)

Để đơn giản, ta sử dụng các ký hiệu: x(i) = (x; Ai); id(i) = (x(i)| x Ta gọi x(i) (x 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]

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

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

mọi t1, t2 R sao cho t1(X)= t2(X) thì t1(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 X Y}.

Nếu X = {x(m)} id(m), Y = {y(k)} id(k) thì ta ký hiệuPTHX Y đơn

giản làx(m) y(k).

Khối r thỏa x(m) y(k) nếu với mọi mọi t1, t2 r sao cho t1(x(m))= t2(x(m))

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

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

16

Trong đó:

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

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

, X 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 Y. Khi đó, nếu id = {x} thì: r(R)

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

thànhPTH trong mô hình dữ liệu quan hệ.

Mệnh đề 1.3[4], [7]

là một khối trên R,

Cho R = (id; A1, A2,…, An), r(R) id(m),x(k) id(k). Khi đó, nếu r thỏaPTHx(m) x(m) x(k) thì đối với mọi y

id, r thỏa y(m) y(k)

Mệnh đề 1.4[4], [7]

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

x(m),y(m) id(m),x(k),y(k) id(k). Khi đó, nếu r thỏa cácPTHx(m) y(m) và x(m)

y(k) thì r thỏa x(m) y(k).

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 , ta định nghĩa bao đóng của X đối với F, ký hiệu

X+ nhƣ sau:

X+ = {x(i), 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:

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

, Y = , A, B {1, 2,… n}, x id}, Fh = {X Y|X =

17

Y }, với x ∈ id và kí hiệu Fhx= Fhx = {X Fh | X, Y

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,

, M = , x A id. Rx tƣơng ứng, M , Mx , 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 đó

A) 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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

A). đối với các tậpPTH tƣơng ứng Fhx (x

18

Mệnh đề 1.5[4], [7]

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

, M = , x A id. Rx tƣơng ứng, M , Mx , Mx

x A d, Khi đó, nếu M+ là bao đóng của M đối với Fh thì

M+ là bao đóng của Mx = M đối với Fhx.

Mệnh đề 1.6[4], [7]

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

, M = , x A id. Rx tƣơng ứng, M , Mx , Mx

+ là bao đóng của Mx đối với Fhx thì

là bao đóng Khi đó nếu Mx

của M = đối với Fh.

Từ hai mệnh đề trên, ta rút ra điều kiện cần và đủ sau:

Mệnh đề 1.7[4], [7]

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

, M = , x A id. Rx tƣơng ứng, M , Mx , Mx

+ =M+

Khi đó, M+ là bao đóng của M đối với Fh khi và chỉ khi:

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Mx là bao đóng của Mx đối với Fhx.

19

Thuật toán 1.2(Tìm bao đóngcủa tập thuộc tính X của lƣợc đồ khối)[4],

[7]

Algorithm BAODONG2

Format: BAODONG2(X, Fh, R)

Input: - tập thuộc tính X,

- tậpPTH Fh

- lược đồ khối R.

Output: X+, bao đóng của X đối với Fh trên R.

Method

X+ := ;

For each x id do

begin

Y := X ;

; Fhx :=

if Y then X+ := X+ BAODONG(Y,Fhx,R);

end; return(X+)

End BAODONG2;

1.2.5. Khóa của lược đồ khối R đối với tập F trên R

Định nghĩa 1.6[4], [7]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập cácPTH trên R, K

. K gọi là khóa của lƣợc đồ R đối với F nếu F thỏa 2 điều kiện:

a. K x(i) F+, x id, i = 1..n.

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

b. K’ K thì K’ không có tính chất a.

20

Nếu K là khóa và K K’’ thì K’’ gọi là siêu khóa của lƣợc đồ R đối

với F.

Từ định nghĩa của khóa, ta có thuật toán tìm khóa của lƣợc đồ khối R

đối với tập cácPTH F trên R nhƣ sau:

Thuật toán 1.3(Tìm một khóa của lƣợc đồ khối)[4], [7]

Algorithm KHOA

Format: KHOA (R, F)

Input: - Lược đồ R = (id; A1, A2,…, An),

- tập cácPTHF trên R.

Output: K là khóa của R đối với F.

Method

K := {x(i) | x id, i {1, 2, …, n}};

For each x in id do

For each i in {1, 2, …, n} do

ifK - {x(i)} K then K:=K–{x(i)};

return(K);

End KHOA;

Mệnh đề 1.8[4], [7]

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

, x Rx tƣơng ứng, K id. Khi đó, nếu K là khóa của R đối với Fh thì

x id, Kx = K là khóa của Rx đối vớiFhx.

Chứng minh

Giả sử K là khóa của R đối với Fh, khi đó, theo định nghĩa khóa thì bao

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

đóng K+ của K thỏa mãn K+ = và mọiK’ K không có tính chất này.

21

+ =

Khi đó, K+ là bao đóng của Kx = K đối với Fhx.

Nhƣ vậy Kx

+ =

Để có Kx là khóa của Rx đối với Fhx, ta còn phải chứng minh rằng:

+ là bao đóng của Nx

Nx Kx thì không xảy ra Nx (ở đây Nx

+ =

đối với Fhx).

, khi đó có bao đóng là Thật vậy, giả sử Nx

mà , mâu thuẫn với tính chất khóa của K.

Mệnh đề 1.9[4], [7]

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

, x Rx tƣơng ứng, Kx id. Khi đó, nếu Kx là khóa của Rx đối với Fhx

thì K = là khóa của R đối vớiFh.

Chứng minh

+=

Theo giả thiết, ta có: x x id, id, Kx là khóa của Rx đối với Fhx

. Do đó, = . Mặt khác, theo điều kiện cần và đủ về Kx

bao đóng ở trên, ta lại có: K+ = K+ = .

Giả sử có K’ K, mà K’+ = .

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Khi đó, (K’ ) (K ), x id.

22

id sao cho = (K’ ) (K ). Mà Nhƣ vậy, x0

theo giả thiết thì = , còn = K’+ = Mâu

thuẫn với giả thiết là khóa của đối với .

Từ các mệnh đề 1.13 và 1.14, ta rút ra điều kiện cần và đủ sau:

Mệnh đề 1.10[4], [7]

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

, x Rx tƣơng ứng, K id. Khi đó, nếu K là khóa của R đối với Fh khi

và chỉ khi Kx = K là khóa của Rx đối với Fhx.

Hệ quả 1.1

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

, x id. Khi đó, nếu với A {1, 2, …, n}là Rx tƣơng ứng, K

khóa của Rx đối với Fhx thì là khóa của lƣợc đồ R đối vớiFh.

1.2.6.1. Các dạng chuẩn

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

Định nghĩa 1.7[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. Ta

gọi lƣợc đồ khối R thuộc dạng chuẩn 1 nếu và chỉ nếu toàn bộ các miền giá trị của các thuộc tính x(i), x {1, 2, …,n} đều chỉ chứa các giá trị id, i

nguyên tố.

Mệnh đề 1.11[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. R

thuộc dạng chuẩn 1. Khi đó, nếu id = {x} thì lƣợc đồ khối R suy biến thành

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

LĐQH ở dạng chuẩn 1 trong mô hình dữ liệu quan hệ.

23

Định nghĩa 1.8[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R; X, Y

. Ta nói Y phụ thuộc hàm đầy đủ vào X nếu Y là phụ thuộc hàm vào

X nhƣng không phụ thuộc hàm vào bất kỳ một tập con thực sự nào của X.

Định nghĩa 1.9[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. Ta

gọi lƣợc đồ khối R thuộc dạng chuẩn 2 nếu nó ở dạng chuẩn 1 và mọi thuộc

tính không khóa của R đều là PTH đầy đủ vào khóa.

Mệnh đề 1.12[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. R

thuộc dạng chuẩn 2. Khi đó, nếu id = {x} thì lƣợc đồ khối R suy biến thành

LĐQH ở dạng chuẩn 2 trong mô hình dữ liệu quan hệ.

Mệnh đề 1.13[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), và Fh là tập các PTH trên R.

R thuộc dạng chuẩn 2. Khi đó, R thuộc dạng chuẩn 2 thì với mọi x id, Rx

cũng ở dạng chuẩn 2.

Định nghĩa 1.10[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. Ta gọi lƣợc đồ khối R thuộc dạng chuẩn 3 nếu nó ở dạng chuẩn 2 và mọi thuộc

tính không khóa của R đều là không PTH bắc cầu vào khóa.

Mệnh đề 1.14[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. R

thuộc dạng chuẩn 3. Khi đó, nếu id = {x} thì lƣợc đồ khối R suy biến thành

LĐQH ở dạng chuẩn 3 trong mô hình dữ liệu quan hệ.

Mệnh đề 1.15[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), và Fh là tập các PTH trên R.

R thuộc dạng chuẩn 3. Khi đó, R thuộc dạng chuẩn 3 thì với mọi x id, Rx

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

cũng ở dạng chuẩn 3.

24

Định nghĩa 1.11[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R; X

. Ta gọi lƣợc đồ khối R thuộc dạng Boye-Codd nếu X x(i) thỏa trên

R, x(i) X, x id, i {1, 2, …, n} thì X là một khóa của R.

Mệnh đề 1.16[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. R

thuộc dạng chuẩn Boye-Codd. Khi đó, nếu id = {x} thì lƣợc đồ khối R suy

biến thành LĐQH ở dạng chuẩn Boye-Codd trong mô hình dữ liệu quan hệ.

Mệnh đề 1.17[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. Khi

đó, R thuộc dạng chuẩn Boye-Codd thì R ở dạng chuẩn 3.

Mệnh đề 1.18[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), Fh là tập các PTH trên R.

Khi đó, R thuộc dạng chuẩn Boye-Codd thì x id, Rx cũng ở dạng chuẩn

1.2.6.2. Các dạng tựa chuẩn

Boye-Codd.

Định nghĩa 1.12[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. Ta

gọi lƣợc đồ khối R thuộc dạng tựa chuẩn 2 (tựa chuẩn 3) nếu và chỉ nếu x

id, lát cắt Rx thuộc dạng chuẩn 2 (chuẩn 3).

Định nghĩa 1.13[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. Ta

gọi lƣợc đồ khối R thuộc dạng tựa chuẩn Boye-Codd nếu và chỉ nếu x id,

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

lát cắt Rx thuộc dạng chuẩn Boye-Codd.

25

Mệnh đề 1.19[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. Khi

đó, nếu x id sao cho Rx thuộc dạng chuẩn 2 (dạng chuẩn 3, dạng chuẩn

Boye-Codd) thì y id, ta có Ry thuộc dạng chuẩn 2 (dạng chuẩn 3, dạng

chuẩn Boye-Codd).

Mệnh đề 1.20[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. Khi

đó, nếu x id sao cho Rx thuộc dạng tựa chuẩn 2 (dạng tựa chuẩn 3, dạng

tựa chuẩn Boye-Codd) thì y id, ta có Ry thuộc dạng tựa chuẩn 2 (dạng tựa

chuẩn 3, dạng tựa chuẩn Boye-Codd).

Mệnh đề 1.21[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. Khi

đó, nếu R thuộc dạng tựa chuẩn 2 thì R thuộc dạng tựa chuẩn 1.

Mệnh đề 1.22[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. Khi

đó, nếu R thuộc dạng tựa chuẩn 3 thì R thuộc dạng chuẩn 2.

Mệnh đề 1.23[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. Khi

đó, nếu R thuộc dạng tựa chuẩn Boye-Codd thì R thuộc dạng chuẩn 3.

Mệnh đề 1.24[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R. Khi

đó, nếu x id sao cho Rx thuộc dạng chuẩn 2 (chuẩn 3, chuẩn Boye-Codd)

thì R thuộc dạng tựa chuẩn 2 (dạng tựa chuẩn 3, dạng tựa chuẩn Boye-Codd).

Mệnh đề 1.25[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), Fh là tập các PTH trên R. Khi

đó, nếu x id sao cho mọi thuộc tính Rx đều là thuộc tính khóa thì R thuộc

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

dạng chuẩn 3.

26

1.2.6.3. Tựa chuẩn hóa lược đồ khối

Định nghĩa 1.14[3]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R.

Phép tách lƣợc đồ khối R là thay thế nó bởi một tập các lƣợc đồ khối =

{R1, R2,…, Rk}, ở đây Ri, i = 1..k là các lƣợc đồ khối con của R có dạng Ri =

(id; Ai1, Ai2, …, Aij) với {Ai1, Ai2, …, Aij} {A1, A2,…, An}

a. Phép tách không mất mát thông tin

= Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập các PTH trên R,

{R1, R2,…, Rk} là một phép tách của R. Khi đó, ta nói phép tách này là không

mất thông tin đối với F nếu với mọi khối r trên R thỏa F thì:

(1) r = R1(r)* R2(r)*…* Rk(r)

Nói cách khác, khối r là kết nối tự nhiên của các khối là phép chiếu của

nó trên mỗi Ri.

Ta ký hiệu m (r) là vế phải của (1), khi đó điều kiện để một phép tách

không mất thông tin là r = m (r).

Mệnh đề 1.26[3]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), r là một khối trên R, ri = Ri(r).

Khi đó ta có:

a) r m (r).

b) Nếu s = m (r) thì Ri(r) = ri.

c) m ( m (r) ) = m (r).

b. Kiểm tra phép không mất mát thông tin

Định nghĩa 1.15[3]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), Fh là tập các PTH trên R. Fh

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

là nhƣ nhau x id. đƣợc gọi là tập đầy đủ các PTH nếu Fhx =

27

Mệnh đề 1.27[3]

+.

Cho lƣợc đồ khối R = (id; A1, A2,…, An), Fh là tập các PTH trên R,

khi đó luôn tồn tại một tập đầy đủ các PTH F*h thỏa mãn: Fh F*h Fh

Chứng minh

, x id, khi đó: Ta có Fhx =

Nếu Fhx là nhƣ nhau x id thì ta chỉ việc chọn F*h = Fh.

id) không giống nhau thì ta tiến hành nhƣ sau: Nếu các Fhx (x

Y , + Lần lƣợt duyệt từng Fhx, với mỗi phụ thuộc X Fhx, X =

Y = , A, B Y’ {1, 2, …, n} ta bổ sung vào các Fhy PTH X’ Fhy,

X’ = , Y’ =

. + Sau cùng, ta đặt F*h =

+.

Khi đó F*h chính là tập đầy đủ các PTH thỏa mãn:

Fh F*h Fh

Thuật toán 1.4(Khẳng định phép tách có mất thông tin hay không)

Để kiểm tra tính bảo toàn thông tin của phép tách trên lƣợc đồ khối, ta

chuyển về kiểm tra tính bảo toàn thông tin trên một lát cắt tùy ý.

Input: Lƣợc đồ khối R = (id; A1, A2,…, An), tập đầy đủ các PTH Fh trên

R, phép tách = {R1, R2,…, Rk}, Ri = (id; Xi), Xi {A1, A2,…, An}, i = 1..k.

Output: Khẳng định phép tách có mất thông tin hay không?

Phương pháp

Xây dựng bảng gồm n cột, k hàng: hàng i tƣơng ứng với lƣợc đồ Ri, cột

j tƣơng ứng với thuộc tính Aj. Tại vị trí có tọa độ (i, j), nếu Aj thuộc Xj thì ta

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

ghi aj, ngƣợc lại ta ghi bj.

28

Y Ta xét Fhx với một x nào đó, với mỗi PTH X Fhx, nếu tồn tại hai

hàng mà tất cả các cột tƣơng ứng với các thuộc tính của X có giá trị nhƣ nhau

thì ta làm cho các cột ứng với các thuộc tính của Y cũng có giá trị nhƣ nhau

trong hai hàng này theo nguyên tắc: Nếu có một ký hiệu aj trong các cột ứng

với các thuộc tính của Y thì đồng nhất các ký hiệu là aj, ngƣợc lại đồng nhất

bằng một trong các ký hiệu bij. Tiếp tục áp dụng các PTH cho bảng (kể cả

việc lặp lại các PTH đã áp dụng) cho tới khi không thể thay đổi đƣợc giá trị

nào trong bảng nữa.

Nếu trong bảng có một hàng gồm các ký hiệu a1, a2, ..., an thì phép tách

không bảo toàn thông tin.

x = {R1x, R2x, ..., Rkx}, Rix = (x; Xi), Xi

id có phép tách bảo toàn thông tin Theo thuật toán trên, ta có Rx, x

{A1, A2, ..., An}, i = 1..k.

Mặt khác, Fh là tập đầy đủ các PTH nên Fhx là nhƣ nhau đối với mọi lát

cắt Rx. Nhƣ vậy, các phép tách x = {R1x, R2x, ..., Rkx} cũng là nhƣ nhau đối

với mọi lát cắt Rx.

Khi đó, phép tách = là phép tách bảo toàn thông tin trên lƣợc đồ

khối R = (id; A1, A2,…, An).

Mệnh đề 1.28[3]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), Fh là tập đầy đủ các PTH trên R,

= {R1, R2} là một phép tách trên R, R1 = (id; A11, A12,…, A1i), R2 = (id; A21,

A22,…, A2j), trong đó {A11, A12,…, A1i}, {A21, A22,…, A2j} {A1, A2,…, An}.

Phép tách là không mất mát thông tin nếu và chỉ nếu:

{A11, A12,…, A1i} {A21, A22,…, A2j} {A11, A12,…, A1i} \ {A21, A22,…, A2j}

hoặc

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

{A11, A12,…, A1i} {A21, A22,…, A2j} {A11, A12,…, A1j} \ {A21, A22,…, A2i}

29

Chứng minh

Bằng cách chuyển về xét trên lát cắt Rx, thì khi đó Rx là một quan hệ và

điều kiện cần và đủ nêu trong mệnh đề này chính là nội dung của định lý

Risanen (1977) đã biết trong mô hình quan hệ. Từ tổ hợp của các phép tách

trên các lát cắt (các phép tách này giống nhau) tạo thành phép tách trên khối.

Ta suy ra điều cần chứng minh.

Hệ quả 1.2

Cho lƣợc đồ khối R = (id; A1, A2,…, An), Fh là tập đầy đủ các PTH trên

+ thì phép tách

R, và X, Y {A1, A2,…, An}, nếu X Y thuộc Fh = {R1,

R2} với R1 = {id; XY}, R2 = {id; XZ} trong đó Z = {A1, A2,…, An} \ XY là

1.2.6.4. Phép tách bảo toàn PTH

phép tách không mất thông tin.

Cho lƣợc đồ khối R = (id; A1, A2,…, An), Fh là tập đầy đủ các PTH trên

R, = {R1, R2,...,Rk} là một phép tách của R. Fhi là hình chiếu của Fh lên Ri, ký

Y hiệu Ri(Fh), là tập tất cả các PTH X Fh sao cho XY là tập thuộc tính

của Ri. Khi đó, ta nói phép tách này bảo toàn tập PTH Fh nếu hợp của tất cả các

PTH trong Ri(Fh) với i = 1..k suy diễn logic ra tất cả các PTH trong Fh.

Mệnh đề 1.29[3]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), Fh là tập đầy đủ các PTH trên

R, = {R1, R2,..., Rk} là một phép tách không mất thông tin của R đối với Fh.

Với mỗi i = 1, 2, ..., k, ta gọi Fhi là hình chiếu của Fh lên Ri và đặt = (S1, S2,

..., Sm) là một phép tách không mất thông tin của Ri đối với Fhi. Khi đó, phép

tách R thành (R1, R2,..., Ri-1, S1, S2, ..., Sm, Ri+1, ..., Rk) là không mất thông tin

đối với Fh.

Giả sử có R, Fh, nhƣ đã nói ở trên, = (R1, R2,..., Rk, Rk+1,..., Rn) là

một phép tách của R chứa các lƣợc đồ của thì là một phép tách không mất

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

thông tin.

30

Thuật toán 1.5(Tách không mất thông tin về dạng tựa chuẩn Boye-

Codd)[3]

Ta sẽ chuyển thành phép tách không mất thông tin về dạng chuẩn

Boye-Codd trên các lát cắt.

Input: Lƣợc đồ khối R = (id; A1, A2,…, An), Fh là tập đầy đủ các PTH

trên R.

Output: Phép tách = {R1, R2,..., Rk} không mất thông tin, Ri với mọi i

= 1, 2, ..., k đều ở dạng tựa chuẩn Boye-Codd với các PTH là hình chiếu của

Fh lên các Ri.

Phương pháp

x sẽ đƣợc tách tiếp với một phép tách không mất mát thông tin đối với Fhx.

Xây dựng phép tách x đối với Rx theo phƣơng pháp lặp, sau mỗi lần lặp,

Ban đầu, phép tách x chỉ gồm Rx. Tiếp theo, nếu S là một LĐQH trong

x không ở dạng chuẩn Boye-Codd, ta xét một PTH X

A của S, với điều

kiện X không chứa khóa của S và A X. Khi đó, thay thế S bởi S1, S2 với

S1= (x, AX), S2 = (x, Y), trong đó Y là các thuộc tính còn lại của S sau khi

loại bỏ A.

Tiếp tục quá trình cho đến khi mọi lƣợc đồ con đều ở dạng chuẩn Boye-

Codd. Nhƣ vậy, ta xây dựng đƣợc phép tách không mất mát thông tin chuẩn

hóa Rx về dạng chuẩn Boye-Codd. Với phép tách x = {R1x, R2x,..., Rkx}.

Khi đó, phép tách , i=1..k chính là = {R1, R2,..., Rk} với Ri =

phép tách cần tìm, các khối Ri đều ở dạng tựa chuẩn Boye-Codd.

Thuật toán 1.6(Tách bảo toàn tập PTH và chuyển về dạng tựa chuẩn 3)

Input: Lƣợc đồ khối R = (id; A1, A2,…, An), Fh là tập đầy đủ các PTH

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

trên R, không mất tính tổng quát, ta giả sử Fh là phủ tối thiểu.

31

Output: Phép tách = {R1, R2,..., Rk} bảo toàn tập PTH, Ri với mọi i =

1, 2, ..., k đều ở dạng tựa chuẩn 3 với các PTH là hình chiếu của Fh lên các Ri.

Phương pháp

Xây dựng phép tách x đối với Rx theo cách sau:

Nếu có những thuộc tính nào đó của Rx nhƣng không xuất hiện trong

bất kỳ vế trái hoặc phải của một PTH nào trong Fhx thì có thể tạo một lƣợc đồ

riêng xác định trên những thuộc tính này và loại nó ra khỏi R.

Nếu có PTH liên quan tới tất cả các thuộc tính của Rx thì kết quả chính

là Rx.

Ngoài ra, kết quả bao gồm các lƣợc đồ (x, XA) đối với một PTH (x, X)

(x, A) trong Fhx. Trong trƣờng hợp có các PTH X A1, X A2, ..., X

An thì ta sử dụng lƣợc đồ (x,XA1A2 ...An) thay cho (x, Ai) với i=1..n.

Phép tách = {R1x, R2x,..., Rkx} vừa xây dựng đã chuẩn hóa Rx về dạng

chuẩn 3.

Khi đó, phép tách , i=1..k chính là = {R1, R2,..., Rk}, với Ri =

phép tách cần tìm, các khối Ri đều ở dạng tựa chuẩn 3.

1.2.7. Khái niệm về phủ và phủ tối thiểu của tập phụ thuộc hàm

Định nghĩa 1.16[3], [5]

Lƣợc đồ khối R = (id; A1, A2,…, An), F và G là các tập PTH trên R. Ta

nói F tƣơng đƣơng với G và ký hiệu F G nếu F+ = G+.

Nếu F và G là tƣơng đƣơng thì ta nói F phủ G hay G phủ F.

Định nghĩa 1.17[3], [5]

Lƣợc đồ khối R = (id; A1, A2,…, An), tập F các PTH đƣợc gọi là không dƣ

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

thừa nếu không có tập con thực sự F’ của F mà F’ F. Ngƣợc lại F là dƣ thừa.

32

Định nghĩa 1.18[3], [5]

Y F, X Lƣợc đồ khối R = (id; A1, A2,…, An), F là các PTH, X

Y là một PTH đầy đủ trong F nếu X’ X sao cho F (F-{X Y} {X’

Y}). Khi đó, Y đƣợc gọi là phụ thuộc đầy đủ vào X.

Định nghĩa 1.19[3], [5]

Lƣợc đồ khối R = (id; A1, A2,…, An), tập F là các PTH là tối thiểu nếu:

 Vế phải của các PTH trong F chỉ có một thuộc tính (không có thuộc

tính nào ở vế phải là dƣ thừa).

 Không tồn tại X Y F và X’ X sao cho: F (F-{X Y} {X’

Y}) (không có thuộc tính nào ở vế trái dƣ thừa)

 Không tồn tại X Y F sao cho: F (F-{X Y}) (không có PTH

nào dƣ thừa).

Mệnh đề 1.30[3], [5]

là các tập Cho lƣợc đồ khối R = (id; A1, A2,…, An), Fh và Fhx =

PTH trên R, Rx tƣơng ứng, Fh’ là phủ tối thiểu của Fh. Khi đó, Fhx’ =

là phủ tối thiểu của Fhx.

Mệnh đề 1.31[3], [5]

Cho lƣợc đồ khối R = (id; A1, A2,…, An), Fh và Fhx là các tập PTH trên

, A R, Rx tƣơng ứng, Fh = id, Fhx’ là phủ tối thiểu của Fhx. Khi đó, Fh’

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

= là phủ tối thiểu của Fh.

33

Định lý[3], [5]

là các tập Cho lƣợc đồ khối R = (id; A1, A2,…, An), Fh và Fhx =

PTH trên R, Rx tƣơng ứng, Fh’ là phủ tối thiểu của Fh khi và chỉ khi Fhx’ =

là phủ tối thiểu của tập Fhx.

Kết luận chƣơng 1

Các nội dung chính đã trình bày trong chƣơng này bao gồm: 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... và các đặc trƣng cơ bản khối và lƣợc đồ khối.

Tác giả cũng đã trình bày các khái niệm về bao đóng, khóa,PTH...

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.

Một số vấn đề về các dạng chuẩn, các dạng tựa chuẩn, tựa chuẩn hóa

trên lƣợc đồ khối; các khái niệm về phủ và phủ tối thiểu của tập PTH cũng

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

đƣợc tác giả trình bày trong chƣơng này.

34

CHƢƠNG 2. PHÉP DỊCH CHUYỂN LƢỢC ĐỒ KHỐI

Mô hình dữ liệu dạng khối là một mở rộng của mô hình dữ liệu quan

hệ. Mô hình mở rộng này đƣợc xây dựng trên cơ sở kế thừa cơ sở toán học

chặt chẽ từ mô hình quan hệ và mở rộng và bổ sung các đặc trƣng cần thiết.

Lý thuyết về phép dịch chuyển LĐQH nhằm nâng cao hiệu quả của các

thuật toán tìm bao đóng và tìm khóa phục vụ cho các quá trình chuẩn hóa

LĐQH. Qua đó cũng giúp tìm hiểu sâu hơn về các đối tƣợng khác trong quản

lý về cơ sở dữ liệu .

Phép dịch chuyển lƣợc đồ khối đƣợc đề xuất với mục đích tƣơng tự với

phép dịch chuyển LĐQH trong mô hình quan hệ. Trƣớc khi tìm hiểu phép

dịch chuyển lƣợc đồ khối, chúng ta cùng tìm hiểu phép dịch chuyển LĐQH và

một số vấn đề liên quan.

2.1. Phép dịch chuyển lƣợc đồ quan hệ

2.1.1. Định nghĩa

Định nghĩa 2.1 [2]

Cho hai LĐQH a = , b = và tập thuộc tính M U. Ta nói

LĐQH b nhận đƣợc từ LĐQH a qua phép dịch chuyển theo tập thuộc tính M,

nếu sau khi loại bỏ mọi xuất hiện của các thuộc tính của M trong sơ đồ a thì

thu đƣợc sơ đồ b.

Nếu sau khi thực hiện phép dịch chuyển theo M cho LĐQH a ta thu

đƣợc LĐQH b thì ta viết b = a\M.

Thao tác loại bỏ M đƣợc thực hiện trên sơ đồ a = để thu đƣợc sơ

đồ b= nhƣ sau:

1. Tính V = U\M có độ phức tạp O(n) với n là số lƣợng thuộc tính

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

trong U.

35

2. Mỗi PTH X Y trong F ta tạo ra PTH X\M Y\M cho G. Thủ

tục này ký hiệu là G=F\M. Tính F\M đòi hỏi độ phức tạp O(mn) với m

là số lƣợng PTH trong F.

Nhƣ vậy, b=a\M = đƣợc thực hiện với độ phức tạp O(mn),

tức là tuyến tính theo chiều dài dữ liệu vào (của LĐQHa).

Sau khi thực hiện thủ tục G = F\M nếu:

+ G chứa các PTH tầm thƣờng (dạng X Y, X Y) thì ta loại các PTH

này khỏi G.

+ G chứa các PTH trùng lặp thì ta bớt các PTH này.

Nhận xét: Phép dịch chuyển thoả tính hợp thành và giao hoán, cụ thể

nếu a là LĐQH trên tập thuộc tính U và X, Y là hai tập con rời nhau của U thì

a\XY = (a\X)\Y = (a\Y)\X

2.1.2. Thuật toán dịch chuyển lược đồ quan hệ

Thuật toán dƣới đây mô tả phép dịch chuyển một LĐQH với độ phức

tạpO(mn)

Thuật toán 2.1[2](Thuật toán dịch chuyển LĐQH)

Algorithm Translation

Format: Translation(a,M)

Input:

- LĐQH a=

- Tập thuộc tính M U

Output:

- LĐQH b= = a\M, V=U\M, G = F\M.

Method

V:=U\M;

G:=

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

For each FD L R in F do

36

G:=G {L\M R\M};

Endfor;

G:=Natural_Reduced(G);

Return ;

End Translation;

Phủ thu gọn tự nhiên (Natural_Reduced) [2]

Định nghĩa: Cho hai PTH F và G trên cùng một tập thuộctínhU. G

làphủ thu gọn tự nhiên của F nếu:

1. G là một phủ của F

2. G có dạng thu gọn tự nhiên theo nghĩa sau:

2a. Hai vế trái và phải của mọi PTH trong G rời nhau (không

giao nhau) f G: LS(f) LS(f) =

2b. Các vế trái của mọi PTH trong G khác nhau đôi một.

f, g G: f g LS(f) LS(g)

Thuật toán 2.2 (Tìm phủ thu gọn tự nhiên) Format: Natural_Reduced(F) Input: - Tập PTH F Output - Một phủ thu gọn tự nhiên G của F

(i). G F

(ii). L→R G: L R =

(iii). Li→Ri, Lj→Rj G: i j Li→Lj

Method

G:= ; for each FD L→R in F do Z:= R\L

then

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

ifZ if there is an FD L→Y in G then Replace L→Y in G by L→YZ

37

else add L→Z to G; end if;

end if;

endfor; Return G;

End Natural_Reduced;

Thủ tục Natural_Reduced(G) đƣa tập phụ thuộc hàm G về dạng thu gọn

tự nhiên bằng cách loại khỏi G những phụ thuộc hàm tầm thƣờng (có vế trái

chứa vế phải), chuyển đổi mỗi phụ thuộc hàm có hai vế trái phải rời nhau và

gộp các phụ thuộc hàm có cùng vế trái.

Định lý sau đây thiết lập công thức biểu diễn bao đóng của tập thuộc

tính theo phép dịch chuyển LĐQH.

Định lý 2.1[2] (Định lý công thức biểu diễn bao đóng theo phép dịch

chuyển LĐQH).

F = XY+

F\X

Cho LĐQH a= và hai tập con rời nhau X và Y trong U. Khi đó (XY)+

Chứng minh

Đặt V=U\X và G=F\X và để ý rằng do X Y= và X không xuất hiện

trong V và G nên theo định nghĩa bao đóng của tập thuộc tính ta có

G= . Ta chứng minh bằng quy nạp theo số bƣớc xây dựng các dãy (XY)(h) và Y(h), h =0,1,... theo thuật toán bao đóng của các tập thuộc tính XY và Y tƣơng

X Y+

ứng với các tập PTH F và G cụ thể ta chứng minh bất biến.

(XY)(h) = XY(h), h = 0,1,... Cơ sở: h = 0. Ta có (XY)(0) = XY và Y(0) = Y, do đó (XY)(0) = XY(0) =

XY

Quy nạp: Giả sử với h 0 ta có (XY)(h) = XY(h). Ta cần chứng minh:

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

(XY)(h+1) = XY(h+1)

38

Ta sẽ chỉ ra rằng khi chuyển từ bƣớc h sang bƣớc h+1 hai tập (XY)(h) và XY(h) sẽ đƣợc bổ sung thêm cùng một số thuộc tính. Trƣớc hết ta để ý rằng

do X Y= và X không có mặt trong LĐQH b=a\X = nên với mọi

h=0,1,2,... ta luôn có X Y(h) = . Ngoài ra do dãy (XY)(h) đơn điệu không

X nên với mọi h = 0,1,2,... ta luôn có (XY)h X. Từ

giảm và (XY)(0) = XY các nhận xét này và từ giả thiết quy nạp (XY)(h) = XY(h) ta suy ra

L U: L (XY)(h) = XY(h) L\X Y(h) và

Z U\X: Z Y(h) XZ XY(h) = (XY)(h)

Giả sử PTH L R F thoả tính chất L (XY)(h). Khi đó L\X R\X G

và L\X Y(h). Từ (XY)(h) = XY(h) ta suy ra R(XY)(h) = RXY(h) = (R\X)XY(h).

Ngƣợc lại, giả sử Z P G và Z Y(h). Theo định nghĩa của phép dịch

chuyển theo X, trong F tồn tại một PTH L R để Z = L\X và P = R\X. Khi đó

XZ XY(h) = (XY)(h) và do đó R(XY)(h) = RXY(h) = (R\X)XY(h) =

ta có L PXY(h).

Để ý rằng mọi tập X, ta có X = X và X = . Từ nhận xét này ta

suy ra hệ quả sau:

Hệ quả 2.1[2](Hệ quả công thức tính bao đóng cho một tập thuộc tính)

F = X(

F/X.

Cho LĐQH a = và tập X U. Khi đó X+ )+

Cho LĐQH a = ta nhắc lại các ký hiệu sau:

- Uo là các tập thuộc tính không khoá, hay phi nguyên thuỷ, tức là thuộc

tính không xuất hiện trong bất kỳ khoá nào của a.

- UK là tập thuộc tính khóa, hay nguyên thuỷ, tức là thuộc tính có trong

một khoá nào đó của a (hợp của các khoá).

- UI là tập các thuộc tính có trong mọi khoá tức là giao của các khoá

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

của a.

39

Rõ ràng UI UK

Ta cũng biết phân hoạch U=Uo|UK và K Key(a), X Uo

). (K UK) (K X = K Uo =

Ngoài ra theo tính chất của tập hợp X,Y U:X Y= X\Y = X

Để ý rằng nếu M là siêu khoá của LĐQH a = thì:

Z Uo ta có M\Z cũng là siêu khoá của a. Nói cách khác từ một siêu

khoá bất kỳ bỏ đi một số thuộc tính không khoá ta vẫn thu đƣợc siêu khoá.

2.1.3. Bổ đề về siêu khoá trong phép dịch chuyển lược đồ quan hệ

Bổ đề 2.1[2](Bổ đề về siêu khóa trong phép dịch chuyển LĐQH).

Cho hai LĐQHa = , b = và X U. Biết b=a\X. Khi đó:

i) Nếu M là siêu khóa của a thì M\X là siêu khoá của b.

ii) Nếu Z là siêu khoá của b thì ZX là siêu khoá của a. Nói riêng nếu

X Uo và Z là siêu khoá của b thì Z là siêu khoá của a.

Chứng minh

F\X. Từ đẳng thức

F = XP+

F (XP)+ ta suy ra P+

i) Giả sử M là siêu khoá của a. Đặt P=M\X, ta có X P= và M XP.

F\X = V. Vậy P = M\X là

F\X =

Vì M là siêu khoá của a, vận dụng tính đồng biến của bao đóng và công thức biểu diễn bao đóng ta có, U = XV = M+ F\X, X V= và X P+ XV= XP+

siêu khoá của b.

ii) Đảo lại, giả sử Z là siêu khóa của b = a\X. Khi đó Z X = và

G=V. Đặt M = XZ, ta có M+

F = (XZ)+

F = XZ+

F\X = XZ+

G = XV = U. Vậy XZ

Z+

là siêu khoá của a.

Nếu X Uo thì ta có thể loại bỏ trong XZ bộ phận thuộc tính không

khoá X để thu đƣợc Z là siêu khoá của a.

Hệ quả 2.2[2](Hệ quả về siêu khoá trong phép dịch chuyển LĐQH)

Cho LĐQH a = và tập thuộc tính X U. Khi đó nếu Z là siêu

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

khoá của sơ đồ a\X+ thì XZ là siêu khoá của sơ đồ a.

40

Chứng minh Đặt b = a\X+. Theo bổ đề về siêu khoá trong phép dịch chuyển LĐQH, nếu Z là siêu khoá của b thì X+Z là siêu khoá của a, ta có (X+Z)+ = U. Theo tính chất 5 của bao đóng của tập thuộc tính, (X+Z)+ = (XZ)+ = U. Từ đây suy

ra XZ là siêu khoá của a.

Để ý rằng hệ quả trên không hoàn toàn tƣơng tự nhƣ bổ đề về siêu khoá

trong phép dịch chuyển LĐQH. Điểm khác nhau chính là lƣợng dịch chuyển

trong bổ đề về siêu khoá là X, trong hệ quả này là bao đóng của X, X+ X.

Bổ đề 2.2[2](Bổ đề về khoá trong phép dịch chuyển LĐQH)

Cho hai LĐQH a = , b = và tập thuộc tính X Uo. Biết

b= a\X. Khi đó Key(a) = Key(b)

Chứng minh

Giả sử K Key(a). Khi đó nói riêng K là siêu khoá của a. Do K UK,

nên theo bổ đề về siêu khóa trong phép dịch chuyển X Uo, UK Uo =

LĐQH, K=K\X là siêu khoá của b. Giả sử K chứa siêu khoá M của b. Khi đó

lại theo bổ đề về siêu khoá trong phép dịch chuyển LĐQH ta có M là siêu

khoá của a. Do K là khoá của a, M là siêu khoá của a chứa trong K, nên theo

tính chất tối thiểu của khoá ta phải có M = K. Vậy K là khoá của b.

Đảo lại, nếu K là khóa của b thì K X= và theo bổ đề về siêu khoá

trong phép dịch chuyển LĐQH ta có M\X là siêu khoá của b. Do K là khoá

của b và K chứa M nên M = K. Vậy K là khoá của a.

2.1.4. Dịch chuyển lược đồ quan hệ về dạng cân bằng

2.1.4.1. Sơ đồ cân bằng[2]

LĐQH a = đƣợc gọi là cân bằng nếu tập PTH F trong a thoả 4

tính chất sau:

1. Hợp các vế trái, các vế phải của các PTH trong F đúng bằng tập

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

thuộc tính U: LS(F) = RS(F) = U

41

2. F không chứa các PTH tầm thƣờng, tức là các PTH có vế trái chứa

vế phải: X,Y U: X Y (X Y F)

3. Cả hai vế trái và phải của mọi PTH trong F rời nhau (không giao

nhau): f F: LS(f) RS(f) =

4. Các vế trái của mọi PTH trong F khác nhau đôi một:

f, g F: LS(f) = LS(g) f = g

Trong đó:

LS(F): Tập các thuộc tính xuất hiện trong vế trái.

RS(F): Tập các thuộc tính xuất hiện trong vế phải.

Cụ thể là:

Nhóm tính chất 2-4 cho biết F có dạng thu gọn tự nhiên. Nhƣ vậy

LĐQH là cân bằng khi và chỉ khi tập PTH có dạng thu gọn tự nhiên và mọi

thuộc tính đều xuất hiện ít nhất một lần ở vế trái, một lần ở vế phải.

2.1.4.2. Một số tính chất của sơ đồ cân bằng

Ngoài 4 tính chất trên sơ đồ cân bằng (SĐCB)có những tính chất sau

đây[2]:

5. Nếu tập PTH F trong LĐQH a = ở dạng thu gọn tự nhiên và

chỉ có một PTH thì a không thể là SĐCB. Thật vậy, nếu F ={X Y} và F ở

dạng thu gọn tự nhiên thì LS(F) = X Y = RS(F), vi phạm tính chất 1.

6. Từ tính chất 5 ta suy ra LĐQH chỉ có một thuộc tính thì không thể là

SĐCB. Thật vậy, gọi thuộc tính duy nhất là A, ta chỉ thấy có 4 khả năng tạo

các PTH sau đây:

a. A A (Tầm thƣờng)

b. A (Tầm thƣờng)

c. (Tầm thƣờng)

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

d. A

42

Nhƣ vậy chỉ có thể chọn U=A và F= hoặc F={ A}.

Trƣờng hợp thứ nhất U=A, F= cho ta LS(F) = RS(F) = U.

Trƣờng hợp thứ hai U=A, F={ A} cho ta LS(F)=

U=RS(F). Cả hai trƣờng hợp đều không cho SĐCB.

Để ý rằng trƣờng hợp U= và F= ta có SĐCB ( , ).

7. Trong SĐCB a = , tập giao các khoá UI= . Thật vậy theo

công thức tính giao các khoá và theo tính chất 3 f F:RS(f) LS(f)= ta

suy ra:

f F: RS(f)\LS(f) = RS(f) do đó

theo tính 1 ta có RS(F)=U,

. do đó UI = U\M = U\U =

2.1.4.3. Thuật toán dịch chuyển lược đồ quan hệ về dạng cân bằng

Thuật toán 2.3[2](Thuật toán dịch chuyển LĐQH về dạng cân bằng)

Thuật toán BS dƣới đây thực hiện phép dịch chuyển một LĐQH về

dạng cân bằng.

Algorithm BS

//Dịch chuyển LĐQH về dạng cân bằng

Format: BS(a)

Input: - LĐQH a =

Output: - SĐCB b =

Method

1. Đưa F về dạng thu gọn tự nhiên

G:=Natural_Reduced(F);

2. Tính giao các khoá UI:= U\RS(G);

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

3. Tính lượng dịch chuyển M

43

+

3.1. P:= RS(G)\LS(G)

3.2. M:= (PUI)G

3.3. Tạo LĐQH b = ; V:=U; G:=F;

4. while M do

4.1. Dịch chuyển b theo M b:=b\M; //b=

; V:=V\M; G:=G\M

4.2. Loại khỏi G các PTH dạng X

4.3. Nhóm các PTH có cùng vế trái trong G

X Y1, X Y2,....,X Yk thành X Y1Y2...YK;

4.4. M:=V\LS(G);

Endwhile;

5. return(b);

End BS.

Lý thuyết về phép dịch chuyển LĐQH nhằm nâng cao hiệu quả của các

thuật toán tìm bao đóng và tìm khoá phục vụ cho các quá trình chuẩn hoá

LĐQH. Qua đó cũng giúp tìm hiểu sâu hơn về các đối tƣợng khác trong quản

lý về cơ sở dữ liệu.

2.2. Phép dịch chuyển lƣợc đồ khối

2.2.1. Định nghĩa

Nhƣ chúng ta đã biết, 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 thì phép

dịch chuyển LĐQH đã đƣợc đề xuất. 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ũng đƣợc đề xuất ở đây. Nhờ việc dịch chuyển

lƣợc đồ khối mà trong nhiều trƣờng hợp việc tính bao đóng và khóa của khối

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

trở nên đơn giản hơn.

44

Định nghĩa 2.2[4]

Cho hai lƣợc đồ khối =(R,F), = (S,G), X , X = {x(i), x id, i

A}, A {1, 2, ..., n}. Ta nói lƣợc đồ nhận đƣợc từ lƣợc đồ qua phép

dịch chuyển theo tập thuộc tính X, nếu sau khi loại bỏ các thuộc tính trong X

ở lƣợc đồ thì ta thu đƣợc lƣợc đồ .

Để ký hiệu phép dịch chuyển từ lƣợc đồ thành lƣợc đồ theo tập

thuộc tính X, ta viết = \ X.

Thao tác loại bỏ X từ lƣợc đồ thành lƣợc đồ nhƣ sau:

- Tính S = R\X, R = (id; A1, A2,…, An), ở đây, ta loại bỏ các thuộc tính

A) trong R, thủ tục này có độ phức tạp là O(nk), với k là số phần tử Ai (i

của A.

- Với mỗiPTH từ M N trong F, với M, N , ta tạo mộtPTH

mới M\X N\X trong G. Thủ tục này đƣợc ký hiệu là G = F \X và có độ

phức tạp O(mnk) với m là số lƣợng các PTH trong F.

Từ đó, ta thấy độ phức tạp của phép dịch chuyển = \ X = (R\X,F\X)

là O(mnk), do vậy nó là tuyến tính theo chiều dài của dữ liệu vào.

Sau khi thực hiện thủ tục F = F\X thì:

+ Nếu G chứa các PTH tầm thƣờng (dạng X Y, X Y) thì ta loại bỏ

chúng khỏi G.

+ Nếu G chứa các PTH trùng nhau thì ta loại bỏ bớt các PTH này (G

không chứa các PTH trùng nhau).

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Nhận xét:

45

1. Cho hai lƣợc đồ khối =(R,F), = (S,G), X , X = {x(i), x

id, i A}, A {1, 2, ..., n}. Lƣợc đồ nhận đƣợc từ lƣợc đồ qua phép dịch

chuyển theo tập thuộc tính X: = \ X. Khi đó, nếu id = {x}, thì lƣợc đồ khối

suy biến thành LĐQH và phép dịch chuyển theo tập thuộc tính X trong lƣợc

đồ khối này trở thành phép dịch chuyển theo tập thuộc tính X từ LĐQH về

LĐQH trong mô hình dữ liệu quan hệ.

2. Cho hai lƣợc đồ khối =(R,F), = (S,G), X , X = {x(i), x

id, i A}, A {1, 2, ..., n}. Khi đó, nếu lƣợc đồ nhận đƣợc từ lƣợc đồ

qua phép dịch chuyển theo tập thuộc tính X: = \ X thì:

\X. S = R\X, Gh = Fh \ X =

), x id. Từ đó, ta có: Ghx = Fhx \ (X

Nhƣ vậy, việc dịch chuyển trên khối trong trƣờng hợp này lại đƣợc

chuyển về việc dịch chuyển trên các lát cắt, mà trong mỗi lát cắt thì việc này

lại chính là việc dịch chuyển LĐQH trong mô hình dữ liệu quan hệ.

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ệ

Phép dịch chuyển lƣợc đồ khối thực chất là một mở rộng của phép dịch

chuyển LĐQH nên hầu hết các nghiên cứu liên quan đến phép dịch chuyển

lƣợc đồ khối đều cần kế thừa kết quả từ các nghiên cứu phép dịch chuyển

LĐQH.

Xét lƣợc đồ khối =(R, F), X , X = {x(i), x id, i A}, A

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

{1, 2, ..., n}. Lƣợc đồ = (S,G) là lƣợc đồ kết quả phép dịch chuyển của từ

46

lƣợc đồ qua theo tập thuộc tính X: = \ X. Khi đó, nếu id = {x}, thì lƣợc

đồ khối suy biến thành LĐQH và phép dịch chuyển theo tập thuộc tính X

trong lƣợc đồ khối này trở thành phép dịch chuyển theo tập thuộc tính X từ

LĐQH về LĐQH trong mô hình dữ liệu quan hệ.

Việc dịch chuyển trên khối có thể đƣợc chuyển về việc dịch chuyển

trên các lát cắt, mà trong mỗi lát cắt thì việc này lại chính là việc dịch chuyển

LĐQH trong mô hình dữ liệu quan hệ.

Phép dịch chuyển LĐQH a = theo tập thuộc tính M đƣợc thực

hiện với độ phức tạp tuyến tính theo chiều dài dữ liệu vào: O(mn) (với n là số

lƣợng thuộc tính trong U; m là số lƣợng PTH trong F).

Phép dịch chuyển lƣợc đồ khối α = (R, F) theo tập thuộc tính X có độ

phức tạp O(mnk) (với n là số lƣợng thuộc tính trong R; m là số lƣợng các

PTH trong F; k là số phần tử của A).

Phép dịch chuyển lƣợc đồ khối có thể đƣợc thực hiện thông qua tập

PTH Fh hoặc thông qua tập PTH Fhx nghĩa là có thể đƣợc thực hiện trên khối

hoặc thông qua các lát cắt.

2.2.3 Một số thuật toán dịch chuyển lược đồ khối

Thuật toán 2.4(Phép dịch chuyển 1)[4]

Algorithm Dich_chuyen_1

Format: Dich_chuyen_1( , X)

Input:

- Lược đồ khối = (R,F),

- X , X = {x(i), x id, i A}, A

{1, 2, ..., n}.

Output: = \ X = (V,G), V = R\X, G = F\X.

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Method

47

V:=R\X;

G := ;

For each L R in F do

G := G (L\X R\X);

Endfor;

G:= Rutgon(G);

Return(V,G);

End Dich_chuyen_1;

Thủ tục Rutgon(G) sẽ đƣa G về dạng rút gọn tự nhiên, nghĩa là loại bỏ

các PTH tầm thƣờng, đƣa các PTH về dạng có vế phải và trái rời nhau, gộp

các PTH có cùng vế trái.

Trong trƣờng hợp tập PTH F có dạng Fh thì việc dịch chuyển lƣợc đồ

khối lại chính là dịch chuyển lƣợc đồ của các lát cắt trong khối. Từ đó, ta có

thuật toán sau:

Thuật toán 2.5(Phép dịch chuyển 2)[4]

Algorithm Dich_chuyen_2

Format: Dich_chuyen_2( , X)

Input:

- Lược đồ khối = (R, Fh),

- X , X = {x(i), x id, i A}, A

{1, 2, ..., n}.

Output: = \ X = (V,G), V = R\X, G = F\X.

Method

V:=R\X;

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

G := ;

48

For each x in id do

For each L R in Fhx do

G := G (L\X R\X);

Endfor;

Endfor;

G:= Rutgon(G);

Return(V,G);

End Dich_chuyen_2;

Bản chất của phép dịch chuyển lƣợc đồ khối là loại bỏ khỏi lƣợc đồ

ban đầu một số thuộc tính không quan trọng theo nghĩa chúng không làm

ảnh hƣởng đến kết quả tính toán các đối tƣợng đang quan tâm nhƣ bao đóng,

khóa, phản khóa... Mặc dù lƣợc đồ khối thu đƣợc qua phép dịch chuyển

không tƣơng đƣơng với lƣợc đồ ban đầu, nhƣng ta có thể thu đƣợc các đối

tƣợng cần tìm bằng những phép toán đơn giản nhƣ loại bỏ hoặc thêm một số

thuộc tính. Sau khi loại bỏ một số thuộc tính thì một số PTH sẽ đƣợc loại bỏ

theo, vì chúng trở thành các PTH tầm thƣờng (có vế trái chứa về phải) hoặc

mang thông tin tiền định.

Nhƣ vậy, sau khi thực hiện phép dịch chuyển, ta thu đƣợc lƣợc đồ với

kích thƣớc nhỏ hơn và có thể có số FTH ít hơn lƣợc đồ ban đầu.

Một nhận xét tự nhiên là nếu kích thƣớc của lƣợc đồ càng nhỏ thì các

thao tác tìm khóa, tìm bao đóng càng đơn giản. Sau đây chúng ta cùng tìm

hiểu các kỹ thuật biểu diễn bao đóng và khóa của lƣợc đồ khối ban đầu thông

qua lƣợc đồ dịch chuyển.

2.2.4. Biểu diễn bao đóng qua phép dịch chuyển

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Mệnh đề 2.1[4]

49

, X = Cho lƣợc đồ khối =(R,Fh), R = (id; A1, A2,…, An), X, Y

{x(i), x id, i A}, Y = {x(i), x id, i B}, A,B {1, 2, ..., n}, A B= .

Khi đó:

Fh = X(Y)+

Fh\X

a) (XY)+

Fh = X(

+ Fhx\X).

b) (XY)+

Fh =

+ Fhx\X].

c) (XY)+

Chứng minh

- Trƣớc hết, ta chứng minh c)

Dựa vào điều kiện cần và đủ của bao đóng trên lƣợc đồ khối, ta có:

Fh =

+ Fhx.

(XY)+

Mặt khác, theo giả thiết, ta có: A B =

Suy ra: = , x id.

Tiếp theo, ta chứng minh:

+ Fhx =

+ Fhx.

(1)

, Khi đó, Để ngắn gọn, ta ký hiệu: Xx = , Yx =

Fhx =Xx (Yx)+

Fhx\X

(2) đẳng thức (1) trở thành: (XxYx)+

Mặt khác, theo công thức tính bao đóng của tập XxYx dựa vào phép

dịch chuyển LĐQH theo tập Xx trong lát cắt Rx đã đƣợc chứng minh, ta có:

Fhx = Xx(Yx)+

Fhx\Xx

(3) (XxYx)+

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Tuy nhiên: Fhx\X = Fhx\Xx

50

Fhx\Xx = Xx(Yx)+

Fhx\X

(4) Do đó (XxYx)+

Fhx\X nghĩa là (1) đã đƣợc chứng minh.

Từ (3) và (4) ta có: Fhx = Xx(Yx)+ (XxYx)+

+ Fhx=

+ Fhx\X].

Từ(1) ta có:

Fh =

+ Fhx\X]

Suy ra (XY)+

- Ta chứng minh b)

Theo chứng minh c) ở trên, ta có

+ Fhx\X].

Fh =

(XY)+

Mà X =

Fh = X(

+ Fhx\X).

Suy ra: (XY)+

- Ta chứng minh a)

Fh = X(

Fhx\X).

Theo kết quả ở phần b), ta có: (XY)+ )+

Đựa vào điều kiện cần và đủ của bao đóng trên lƣợc đồ khối, ta có:

Fh\X =

+ Fhx\X).

(Y)+

Fh = X(Y)+

Fh\X

Vậy: (XY)+ a) đƣợc chứng minh.

Từ các kết quả trên, ta có hệ quả sau:

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Hệ quả2.3[4] (Biểu diễn bao đóng thông qua phép dịch chuyển)

51

, X = Cho lƣợc đồ khối =(R, Fh), R = (id; A1, A2,…, An), X

{x(i), x id, i A}, A {1, 2, ..., n}. Khi đó:

Fh = X(

Fh\X.

a) (X)+ )+

Fh = X(

Fhx\X).

b) (X)+ ( )+

Chứng minh

Sử dụng kết quả a) và b) ở trên với trƣờng hợp đặc biệt Y = ta có

ngay điều phải chứng minh.

2.2.5. Biểu diễn khóa qua phép dịch chuyển

Cho lƣợc đồ khối = (R, Fh), R = (id; A1, A2,…, An) và X, U0, UK, UI,

là các tập thuộc tính chỉ số ; đối với lƣợc đồkhối , ta ký hiệu:

- U0 là tập hợp các thuộc tính không khóa.

- UK là tập hợp các thuộc tính khóa

- UI là tập hợp các thuộc tính nằm trong mọi khóa.

Cho các lƣợc đồ khối = (S,G), = (R, Fh), R = (id; A1, A2,…, An),

x = (Rx, Fhx) là lƣợc đồ lát cắt của

= \X. Khi đó, ta ký hiệu:

= (R, Fh) tại điểm x,

x = (Sx, Gx) là lƣợc đồ lát cắt của

= (S, G) tại điểm x,

Mệnh đề 2.2[4]

Cho lƣợc đồ khối = (R, Fh), R = (id; A1, A2,…, An) và X, Y, Q

, X = {x(i), x id, i A}, Y = {x(i), x id, i B}, Q = {x(i), x id, i

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

C}; A, B, C {1, 2, .., n}, = (S, G), = \X. Khi đó:

52

a) Nếu Y là siêu khóa của thì Y\X là siêu khóa của .

x =(Sx,Gx),

b) Nếu Y là siêu khóa của thì Yx\ Xx là siêu khóa của

B}. x id, ở đây Xx = {x(i), i A}, Yx = {x(i), i

x, x id, ở đây

c) Nếu Q là siêu khóa của thì XxQx là siêu khóa của

C}. Trƣờng hợp X chỉ gồm các thuộc tính không khóa của và Qx = {x(i), i

Q là siêu khóa của thì Qx chính là siêu khóa của x, x id.

Chứng minh

a) Giả sử Y là siêu khóa của , đặt P = Y\X P Q = và Y XP.

Theo giả thiết Y là siêu khóa của , do đó:

Fh

Fh = X(P)+

Fh\X.

X( \X)= =Y+ (XP)+

Fh\X =

Fh\X =

Mà: X ( \X) = , X P+ P+ \X(1)

Từ (1), ta thấy P = Y\X chính là siêu khóa của = \X.

b) Giả sử Y là siêu khóa của , theo kết quả của a) ta có Y\X là siêu

khóa của = id. \X. Từ đó, ta có: Yx\Xx là siêu khóa của x = (Sx, Gx), x

Fh\X=

c) Giả sử Q là siêu khóa của thì: Q X= , Q+ \X

Fh = X(Q)+

Fh\X =X(

Suy ra: (XQ)+ \X) =

Vậy, XQ là siêu khóa của .

Nếu X chỉ gồm các thuộc tính không khóa của thì việc loại bỏ từ siêu

khóa XQ các thuộc tính không khóa X vẫn cho ta siêu khóa Q của .

d) Giả sử Q là siêu khóa của , thì theo c) ta có XQ là siêu khóa của .

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Từ đó, ta có XxQx là siêu khóa của x, x id.

53

Trƣờng hợp X chỉ gồm các thuộc tính không khóa của , thì suy ra Xx là

x, do đó Qx = XxQx\Xx chính là siêu khóa

tập các thuộc tính không khóa của

của x, x id.

Mệnh đề 2.3[4]

Cho lƣợc đồ khối , = (R, Fh), R = (id; A1, A2,…, An) và X, Q

X = {x(i), x id, i A}, Q = {x(i), x id, i C}; A, C {1, 2, .., n}, = (S,

G), = \X+. Khi đó, nếu Q là siêu khóa của thì:

a) XQ là siêu khóa của .

b) XxQx là siêu khóa của x, x id.

Chứng minh

a) Giả sử Q là siêu khóa của , theo mệnh đề 2.2, ta có X+Q là siêu

khóa của , khi đó (X+Q)+ = .

Mà ta có: (XQ)+ = (X+Q)+ = XQ là siêu khá của .

b) Giả sử Q là siêu khóa của thì theo a) ta có XQ là siêu khóa của .

Từ đó, ta có: XxQx là siêu khóa của x, x id.

Mệnh đề 2.4[4]

Cho lƣợc đồ khối , = (R, Fh), R = (id; A1, A2,…, An) và X, K

X = {x(i), x id, i A}, K={x(i), x id, i B}; A, B {1, 2, .., n}, = (S, G),

= \X.

Khi đó,

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

a) Nếu K là khóa của thì K\X là khóa của .

54

b) Nếu K là khóa của id. Ở thì Kx\Xx là khóa của x = (Sx, Gx), x

A}. đây, Kx = {x(i), i B}, Xx = {x(i), i

Chứng minh

a) Giả sử, K là khóa của K là siêu khóa của , theo mệnh đề 2.2, ta

có K\X là siêu khóa của . Nếu K\X không phải là khóa của thì M K\X

là siêu khóa của , theo mệnh đề 5.2 ta lại có XM là siêu khóa của .

Mà XM X(K\X)=K, điều này mâu thuẫn với giả thiết K là khóa của

. Do đó, K\X là khóa của .

b) Giả sử K là khóa của , khi đó, theo a) ta có K\X là khóa của . Vậy

ta có Kx\Xx là khóa của x, x id.

Mệnh đề 2.5[4]

Cho lƣợc đồ khối , = (R, Fh), R = (id; A1, A2,…, An) và X, K

X = {x(i), x id, i A}, K = {x(i), x id, i B}; A, B {1, 2, .., n}, X U0,

= (S, G), = \X. Khi đó,

thì K là khóa của

B}, x id thì K là a) Nếu K là khóa của b) Nếu Kx là khóa của x = (Sx, Gx), Kx = {x(i), i

khóa của .

Chứng minh

a) Giả sử K là khóa của K là siêu khóa của theo mệnh đề 2.2,

ta có K là siêu khóa của (vì giả thiết X U0). Ta chứng minh K là khóa của

.

Giả sử K không là khóa của , khi đó K’ K mà K’ là siêu khóa của

, . Theo mệnh đề 2.2, ta có K’ =K’\X (vì giả thiết X U0) là siêu khóa của

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

điều này mâu thuẫn với giả thiết K là siêu khóa của . Vậy K là khóa của .

55

B}, x id, khi đó, b) Giả sử Kx là khóa của x= (Sx, Gx), Kx = {x(i), i

ta có K là khóa của , từ đó, dựa vào kết quả của a) ta có K là khóa của .

Mệnh đề 2.6 (điều kiện cần và đủ)[4]

Cho lƣợc đồ khối , = (R, Fh), R = (id; A1, A2,…, An) và X, K

X = {x(i), x id, i A}, K = {x(i), x id, i B}; A, B {1, 2, .., n}, X U0,

= (S, G), = \X. Khi đó,

a) K là khóa của khi và chỉ khi thì K là khóa của

x = (Sx, Gx), Kx =

b) K là khóa của khi và chỉ khi Kx là khóa của

{x(i), i B}, x id.

Chứng minh

a) K là khóa của K là khóa của

Thật vậy, từ giả thiết K là khóa của , X U0 và mệnh đề 2.4 ta suy ra

K =K\X là khóa của

K là khóa của K là khóa của

Giả sử K là khóa của theo mệnh đề 2.5 ta suy ra K là , vì X U0

khóa của

b) Giả sử K là khóa của theo kết quả của câu a) ta suy ra K là khóa

của B}, x id. ta có Kx là khóa của x = (Sx, Gx), Kx = {x(i), i

B}, x id. Ngƣợc lại, nếu Kx là khóa của x = (Sx, Gx), Kx = {x(i), i

ta có K là khóa của

Từ đó, áp dụng kết quả của câu a) K là khóa của .

2.2.6. Ví dụ

Cho lƣợc đồ khối = (R, F), với R = (id; A1A2A3A4A5A6); id = {1, 2}

F={ {1(1), 2(1), 1(5), 2(5) } {1(4) , 2(4)},

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

{1(2), 2(2), 1(3), 2(3) } {1(5) , 2(5)},

56

{1(5) , 2(5)} {1(2), 2(2), 1(3), 2(3) } }

Fh, (X2)+

Fh

X1 = {1(1), 2(1), 1(5), 2(5), 1(6), 2(6)}; X2 = {1(6), 2(6)} Tính (X1)+

Bài giải

Fh = X1(

Fh\X1

)+ Theo hệ quả 2.3 về công thức tính bao đóng cho mọi tập thuộc tính (X1)+

Ta tính 1 = (S1, G1) =

\X1 {1(4) , 2(4)}, {1(2), 2(2), 1(3), 2(3) } (loại), G1 = F\X1={

{ {1(2), 2(2), 1(3), 2(3) } }

{ {1(2), 2(2), 1(3), 2(3), 1(4) , 2(4) }

Fh/X1= {1(2), 2(2), 1(3), 2(3), 1(4) , 2(4) }

Từ đây ta tính đƣợc ( )+

Fh = X1(

Fh\X1 = {1(1), 2(1), 1(5), 2(5), 1(6), 2(6), 1(2), 2(2), 1(3), 2(3),

)+ (X1)+

Fh = X2(

Fh\X2

)+ 1(4), 2(4) } = R (X2)+

\X2

{1(4) , 2(4)}, {1(2), 2(2), 1(3), 2(3) } (loại), Ta tính 2 = (S2, G2) = G2={ {1(1), 2(1)}

{1(2), 2(2), 1(3), 2(3) } }

= { {1(1), 2(1)} {1(4) , 2(4)}, {1(2), 2(2), 1(3), 2(3) }}

)+

Fh = X2(

Fh/X2= {1(2), 2(2), 1(3), 2(3)} Fh\X2 = {1(2), 2(2), 1(3), 2(3), 1(6), 2(6)}

Từ đây ta tính đƣợc ( )+ (X2)+

Kết luận chƣơng 2

Trong chƣơng này, luận văn đã trình bày một số vấn đề về phép dịch

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

chuyển trong LĐQH và lƣợc đồ khối và giới thiệu cácthuật toán dịch chuyển

57

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

bao đóng và khóa của lƣợc đồ khối thông qua phép dịch chuyển.

58

CHƢƠNG 3. CHƢƠNG TRÌNH THỬ NGHIỆM

Luận văn tập trung nghiên cứu tìm hiểu mô hình cơ sở dữ liệu dạng

khối và phép dịch chuyển lƣợc đồ khối. Việc cài đặt chƣơng trình thử nghiệm

nhằm mục đích mô phỏng các kết quả nghiên cứu đƣợc của học viên. Chƣơng

trình có giao diện đơn giản, dễ sử dụng, dễ hiểu và đƣợc viết bởi ngôn ngữ lập

trình C#, một ngôn ngữ có hƣớng đối tƣợng, khá phổ biến... và cho phép tạo

giao diện nhanh, dễ dàng.

3.1. Bài toán thử nghiệm

Trên thực tế, có rất nhiều bài toán phân tích thiết kế, xây dựng chƣơng

trình cần phải chuẩn hóa cơ sở dữ liệu. Vì dữ liệu dùng để xây dựng chƣơng

trình nếu không đƣợc chuẩn hóa sẽ dẫn đến dƣ thừa, gây khó khăn cho việc

quản lý, sử dụng, xử lý dữ liệu của ứng dụng. Trong quá trình đó, ngƣời thiết

kế thƣờng gặp một số vấn đề sau:

Khi xác định một số đặc điểm của đối tƣợng đƣợc lƣu trữ, ngƣời thiết kế

sẽ liệt kê tất cả các thuộc tính cần quản lý của đối tƣợng mà không quan tâm

đến vấn đề liệu khi thêm thuộc tính đó thì có bị trùng lặp thông tin không, dữ

liệu có nhất quán không. Chẳng hạn, trong hệ thống bán hàng, chúng ta lƣu trữ

thông tin của nhà cung cấp để đặt hàng thì một số thông tin ta cần là: mã nhà

cung cấp, tên nhà cung cấp, địa chỉ, số điện thoại, mã hàng, tên hàng... Với đối

tƣợng nhà cung cấp nếu ta quản lý rằng mỗi nhà cung cấp chỉ cung cấp một

mặt hàng thì ta biết đƣợc nhà cung cấp nào cung cấp mặt hàng tên gì nhƣng dữ

liệu về tên mặt hàng không nhất quán. Khi nhập liệu ta có thể nhập nhƣ sau:

Mã nhà cung cấp … Mã hàng Tên hàng

01 01 Abc

02 02 Abc

Bảng 1. Quan hệ nhà cung cấp

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Điều đó sẽ gây khó khăn cho ta trong quá trình truy xuất thông tin.

59

Để khắc phục đƣợc vấn đề trên, đầu tiên ngƣời thiết kế phải dựa vào

các qui tắc quản lý (phụ thuộc hàm), áp dụng hệ luật dẫn Amstrong trên các

phụ thuộc hàm để xác định mối liên hệ giữa các thuộc tính trong một đối

tƣợng hoặc giữa các đối tƣợng trong một CSDL. Sau đó, sử dụng thuật toán

tìm khóa của đối tƣợng. Dựa vào khóa và các phụ thuộc hàm, ngƣời thiết kế

sẽ đi xác định dạng chuẩn để đánh giá tính chất của LĐQH hay là đối tƣợng

cần quản lý. Trong thực tế, ngƣời ta chỉ đánh giá cao các LĐQH đạt từ dạng

chuẩn 3 trở lên vì ở dạng chuẩn này CSDL sẽ tránh trùng lắp thông tin. Do

đó, khi LĐQH không đạt đƣợc dạng chuẩn 3, ngƣời thiết kế phân rã LĐQH

đó thành những lƣợc đồ con đảm bảo dạng chuẩn cao hơn, dữ liệu không bị

trùng lắp mà vẫn giữ đƣợc tính bảo toàn, tính chính xác của dữ liệu, không

gây mất thông tin.

Trong mô hình cơ sở dữ liệu dạng khối, khi thiết kế các CSDL, ngƣời

ta cũng gặp phải vấn đề tƣơng tự nhƣng độ phức tạp lớn hơn nhiều, đặc biệt là

đối với những CSDL lớn.

Trong chƣơng 3,tác giả xây dựng một chƣơng trìnhsử dụng các thuật

toán dịch chuyển nhằm thu gọnlƣợc đồ và phƣơng pháp biểu diễn khóa của

lƣợc đồ khối thông qua phép dịch chuyển nhằm mô phỏng các kết quả nghiên

cứu của luận văn.

3.2. Phân tích và thiết kế chƣơng trình thử nghiệm

3.2.1. Thủ tục dịch chuyển

Trong chƣơng 2 của luận văn, tác giả đã giới thiệu 2 thuật toán dịch

chuyển lƣợc đồ khối. Cả 2 thủ tục này đều có thông tin vào là lƣợc đồ khối

= (R, Fh) và tập thuộc tính chỉ số X, thông tin ra là lƣợc đồ dịch chuyển theo

tập thuộc tính chỉ số X của : = \ X = (V,G) với V = R\X, G = F\X.

Xác định V: Ở cả 2 thủ tục dịch chuyển, việc xác định tập V:=R\X đều

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

giống nhau, nghĩa là V thu đƣợc từ việc loại bỏ khỏi R các thuộc tính trong X

60

Việc xác định tập FTH G: Đối với thủ tục dịch chuyển sử dụng thuật

toán 2.1, ta sẽ tiến hành thực hiện trực tiếp trên các FTH của khối ban đầu.

Còn thủ tục dịch chuyển sử dụng thuật toán 2.2, ta sẽ tiến hành thực hiện trên

các lát cắt.

Việc thực hiện thao tác G:= Rutgon(G) ta thực hiện 2 việc:

+ Loại bỏ các PTH tầm thƣờng (dạng X Y, X Y)

+ Loại bỏ bớt các PTH trùng nhau.

3.2.2. Biểu diễn khóa qua phép dịch chuyển

Theo mệnh đề 2.26, việc xác định khóa của lƣợc đồ khối α có thể đƣợc

thực hiện thông qua việc tìm khóa của lƣợc đồ β = α\X với X U0; Việc xác

định khóa của lƣợc đồ khối β có thể đƣợc thực hiện thông qua việc tìm khóa

id, mỗi lát cắt lại có thể coi là một LĐQH. Vậy, việc tìm Kxcủa lát cắt βx, x

khóa của lƣợc đồ khối lại trở thành việc tìm khóa của LĐQH.

3.2.3. Thiết kế chương trình

Chƣơng trình cần có một số chức năng chính sau:

+ Nhập dữ liệu: cho phép ngƣời sử dụng nhập các lƣợc đồ khối, các

phụ thuộc hàm và các thuộc tính chỉ số. Việc nhập dữ liệu có thể đƣợc thực

hiện thông qua tệp hoặc nhập trực tiếp.

+ Thực hiện thủ tục dịch chuyển lƣợc đồ khối: Cho phép ngƣời sử dụng

lựa chọn áp dụng một trong 2 thuật toán dịch chuyển lƣợc đồ khối đầu vào,

hiển thị kết quả ra màn hình.

+ Biểu diễn khóa qua phép dịch chuyển

3.3. Cài đặt và thực hiện chƣơng trình thử nghiệm

3.3.1. Yêu cầu hệ thống

Chƣơng trình thử nghiệm đƣợc viết bằng ngôn ngữ lập trình Visual C#

trên nền tảng .Net của bộ công cụ lập trình Visual Studio 2013. Để có thể sử

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

dụng chƣơng trình, trên máy tính cần cài đặt Dotnet Framework 4.5

61

3.3.2. Hệ thống dữ liệu vào/ra

Với mục tiêu của bài toán là thực hiện phép dịch chuyển lƣợc đồ khối

theo tập thuộc tính chỉ số, dữ liệu đầu vào của hệ thống bao gồm:

+ Lƣợc đồ khối = (R,F), với:

R = (id; A1, A2,…, An);

F: tập phụ thuộc hàm có dạng L R, trong đó:

L, R , id(i) = (x(i)| x id); x(i) = (x; Ai);

+ Tập thuộc tính chỉ số X , X = {x(i), x id, i A}, A {1, 2,

..., n}.

Thông tin thu đƣợc từ bài toán là:

+ Lƣợc đồ khối = \ X = (V,G), V = R\X, G = F\X.

+ Biểu diễn khóa của lƣợc đồ khối .

3.3.3. Hệ thống giao diện

Giao diện chính:

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

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

62

Giao diện nhập khối ban đầu, các phụ thuộc hàm, tập thuộc tính:

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

3.3.4. Kết quả thử nghiệm chương trình và đánh giá

Ví dụ 3.1

Cho lƣợc đồ khối = (R,F), với

R = (id; A1A2A3A4A5A6); id = {1} F={ {1(1), 1(5) } {1(4)}, {1(1)} {1(4), 1(6)},

{1(2), 1(3) } {1(5)}, {1(5)} {1(2), 1(3)} }

X = {1(1), 1(4), 1(6)}

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Xác định = \ X = (V,G), V = R\X, G = F\X

63

V=R\X = {1(2), 1(3), 1(5)}

G = { {1(5) } (loại), (loại),

{1(2), 1(3)} {1(5)}, {1(5)} {1(2), 1(3)} }

= { {1(2), 1(3)} {1(5)}, {1(5)} {1(2), 1(3)} }

Lƣợc đồ khối = \ X thu đƣợc có dạng:

= (V,G) với

V = (id; A2A3A5); id = {1} G = { {1(2), 1(3)} {1(5)}, {1(5)} {1(2), 1(3)} }

Kết quả thực hiện trong chƣơng trình:

Trong ví dụ này, id ={1}, lƣợc đồ khối suy biến thành LĐQH, phép

dịch chuyển lƣợc đồ khối trở thành phép dịch chuyển trong mô hình quan hệ.

Ví dụ3.2

Cho lƣợc đồ khối = (R,F), với

R = (id; ABCDEHKI); id ={1}

F = { {(1; A), (1; B)} {(1; C)},

{(1; C)} {(1; D), (1; E) (1; H)},

{(1; H)} {(1;K)}}

X = {(1; B), (1; I)}

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Hãy xác định = \ X

64

Kết quả thực hiện trên phần mềm:

Ta dịch chuyển α theo X, ta đƣợc sơ đồ β =

V = ({1}; ACDEHK)

G = { {(1; A)} {(1; C)},

{(1; C)} {(1; D), (1; E) (1; H)},

{(1; H)} {(1; K)} }

Ví dụ 3.3

Cho lƣợc đồ khối = (R,F), với

R = (id; A1A2A3A4A5A6); id = {1, 2} F={ {1(1), 2(1), 1(5), 2(5)} {1(4), 2(4)}, {1(1), 2(1)} {1(3), 2(3)},

{1(5), 2(5)} {1(2), 2(2), 1(3), 2(3)}, {1(5), 2(5), 1(6), 2(6)} {1(1), 2(1)},

{1(1), 2(1), 1(3), 2(3)} {1(5), 2(5), 1(6), 2(6)},{1(2), 2(2), 1(4),2(4)} {1(3), 2(3)}

X = {1(2), 2(2), 1(3), 2(3), 1(5), 2(5)}

+ Xác định = \ X = (V,G), V = R\X, G = F\X

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

+ Tìm một khóa của lƣợc đồ khối

65

Kết quả thực hiện trên phần mềm:

Áp dụng thuật toán 2.4 V=R\X = {1(1), 1(4), 1(6), 2(1), 2(4), 2(6)}

G = F\X ={ {1(1),2(1)} {1(4), 2(4)}, {1(1), 2(1)} (loại),

(loại), {1(6), 2(6)} {1(1), 2(1)},

{1(1),2(1)} {1(6),2(6)}, {1(4), 2(4)} (loại) }

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Thu gọn G, ta đƣợc:

66

G ={ {1(1), 2(1)} {1(4), 2(4), 1(6), 2(6)}, {1(6), 2(6)} {1(1), 2(1)} }

Vậy = \ X thu đƣợc có dạng:

= (V,G) với

V = (id; A1A4A6); id = {1,2} G ={ {1(1), 2(1)} {1(4), 2(4), 1(6), 2(6)}, {1(6), 2(6)} {1(1), 2(1)} }

Áp dụng thuật toán 2.5

id = {1, 2} nên R có 2 lát cắt

{1(4)}, {1(1)} {1(3)},

R1 = ({1}; A1A2A3A4A5A6); với tập FTH Fh1={ {1(1), 1(5) } {1(5)} {1(2), 1(3)} , {1(5), 1(6) } {1(1)},

{1(1), 1(3) } {1(5), 1(6) }, {1(2), 1(4) } {1(3)}}

{2(4)}, {2(1)} {2(3)},

R2 = ({2}; A1A2A3A4A5A6); với tập FTH Fh1={ {2(1), 2(5) } {2(5)} {2(2), 2(3)} , {2(5), 2(6) } {2(1)}, {2(1), 2(3) }

{2(5), 2(6) }, {2(2), 2(4) } {2(3)} }

1 = (R1,Fh1) trên tập thuộc tính X1 = {1(2), 1(3), 1(5)}, 2 = (R2,Fh2) trên tập thuộc tính X2 = { 2(2), 2(3), 2(5)}

Ta cần thực hiện phép dịch chuyển trên 2 lát cắt với các lƣợc đồ tƣơng ứng

Ta có:

1 = 1\ X1 = (V1,G1) V1=R1\X1 = {1(1), 1(4), 1(6)} G1 = Fh1\X1 = { {1(1)} {1(6)}

{1(4)}, {1(1)} (loại), (loại),

{1(1)}, {1(1)} {1(6) }, {1(4)} (loại) }

Thu gọn G1, ta đƣợc

{1(1)} {1(4),1(6) }, {1(6)} {1(1)} } G1 = {

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

Tƣơng tự, ta có

67

2 = 2\ X2 = (V2,G2) V2=R2\X2 = {2(1), 2(4), 2(6)}

{2(1)} {2(4),2(6) }, {2(6)} {2(1)} } G2 = {

Vậy = \ X thu đƣợc có dạng:

= (V,G) với

V = (id; A1A4A6); id = {1,2} {1(1)} G = { {1(4),1(6) }, {1(6)} {1(1)},

{2(1)} {2(4),2(6) }, {2(6)} {2(1)} }

={ {1(1), 2(1)} {1(4), 2(4), 1(6), 2(6)}, {1(6), 2(6)} {1(1), 2(1)} }

Nhƣ vậy, qua một số ví dụ, các kết quả thử nghiệm trên phần mềm hoàn toàn trùng khớp với việc thực hiện thuật toán trên giấy. Việc áp dụng 2 thuật toán dịch chuyển lƣợc đồ khối có kết quả tƣơng tự nhau.

Kết luận chƣơng 3

Trong chƣơng này,tác giả đã tiến hành xây dựng một chƣơng trình trên

ngôn ngữ lập trình C# trên nền tảng Visual Studio 2013,sử dụng các thuật

toán dịch chuyển nhằm thu gọnlƣợc đồ và áp dụng phƣơng pháp biểu diễn

khóa của lƣợc đồ khối trong ứng dụng trên.

Tác giả cũng đã đƣa ra một số ví dụ đơn giản để thử nghiệm kết quả

thực hiện chƣơng trình với việc thực hiện thuật toán trên giấy với kết quả

trùng khớp. Tuy nhiên, đây mới chỉ là ứng dụng hết sức đơn giản, chỉ dừng lại

ở mức độ mô phỏng kết quả nghiên cứu của tác giả. Việc xây dựng chƣơng

trình có tính ứng dụng trong thực tế cần phải đầu tƣ nhiều hơn nữa thời gian

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

và công sức.

68

KẾT LUẬN

Qua tìm hiểu và nghiên cứu về 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 hiện đƣợc một số kết quả chính

sau đây:

- Tìm hiểu về 1 mô hình dữ liệu mới, đó là mô hình dữ liệu dạng khối.

Mô hình này là một mở rộng của mô hình dữ liệu quan hệ do E.Codd đề xuất

năm 1970.

- Trình bày một số kết quả nghiên cứu về bao đóng, khóa và phụ thuộc

hàm trong mô hình này đồng thời cũng giới thiệu các tính chất về khóa, thuật

toán tìm khóa, các dạng chuẩn và tựa chuẩn... Mối liên quan giữa mô hình dữ

liệu dạng khối với mô hình quan hệ.

- Tìm hiểu và giới thiệu phép dịch chuyển lƣợc đồ khối trên mô hình dữ

liệu dạng khối và một số thuật toán liên quan; ứng dụng các thuật toán trên

vào việc xây dựng chƣơng trình demo cho phép thực hiện một số thao tác trên

mô hình dữ liệu dạng khối.

Trên đây là một số kết quả mà luận văn đã tìm đƣợc đối với phép dịch

chuyển lƣợc đồ khối trong mô hình dữ liệu dạng khối. Tuy nhiên, đó chỉ là

những kết quả bƣớc đầu, việc nghiên cứu tiếp về mô hình dữ liệu này vẫn còn

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

là những vấn đề mở cần đƣợc nghiên cứu tiếp.

69

TÀI LIỆU THAM KHẢO

A. Tiếng Việt

[1] Nguyễn Kim Anh (2002), “Đại số khối trên các cơ sở dữ liệu đa

chiều”, Tạp chí Tin học và Điều khiển học, 18(2), tr. 149-154.

[2] Nguyễn Xuân Huy (2006), Các phụ thuộc logic trong cơ sở dữ liệu,

Nhà xuất bản Thống kê, Hà Nội.

[3] Lê Văn Phùng (2010), Cơ sở dữ liệu quan hệ và Công nghệ phân

tích-Thiết kế, Nhà xuất bản Thông tin và Truyền thông, Hà Nội.

[4] Trịnh Đình Thắng (2011), Mô hình dữ liệu dạng khối, Nhà xuất bản

Lao Động, Hà Nội.

[5]Vũ Đức Thi (1997), Cơ sở dữ liệu: Kiến thức và thực hành, NXB

Thống Kê, Hà Nội.

[6] Vũ Đức Thi (2010), Giáo trình Cơ sở dữ liệu nâng cao, Nhà xuất

bản Đại học Thái Nguyên, Thái Nguyên.

[7] Trịnh Đình Vinh (2011), Một số phụ thuộc dữ liệu trong cơ sở dữ

liệu dạng khối, Luận án tiến sĩ toán học, Hà Nội.

B. Tiếng Anh

[8] C. Stolte, D. Tang, and P. Hanrahan. Polaris (2002): “A System for

Query, Analysis, and Visualization of Multi-dimensional Relational

Databases”. In IEEE Trans. On Visualization and Computer Graphics, 8(1),

pp. 52-65.

[9] Demetrovics J, Ho Thuan, Nguyen Xuan Huy, Le Van Bao (1986),

Translations of relation schemes, balanced relation scheme and the problem

of key representation, EIK, Berlin.

[10] E. Rundensteiner, M. Ward, J. Yang, and P. Doshi. XmdvTool

(2002): “VisualInteractive Data Exploration and Trend Discovery of High-

dimensional Data Sets”. In Proc. ACM SIGMOD 2002.

[11] Harinarayan V., Rajaraman A., and Ullman J. D. (1996),

Số hóa bởi Trung tâm Học liệu – ĐHTN

http://www.lrc.tnu.edu.vn

“Implementing data cubes efficiently”, SIGMOD.