..
ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGÔ VĂN ĐỊNH
PHÉP DỊCH CHUYỂN LƢỢC ĐỒ KHỐI
TRONG MƠ HÌNH DỮ LIỆU DẠNG KHỐI
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
Thái Ngun - 2015
Số hóa bởi Trung tâm Học liệu – ĐHTN
ĐẠ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
CHUN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60 48 0101
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
Ng-êi h-íng dÉn khoa häc
TS LÊ VĂN PHÙNG
Thái Ngun - 2015
Số hóa bởi Trung tâm Học liệu – ĐHTN
LỜI CẢM ƠN
Để hồ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
q 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 q trình học tập, nghiên cứu đề tài và
giúp đỡ tơi hoàn thành bản luận văn này.
Thái Nguyên, ngày 15 tháng 5 năm 2015
Học viên
Ngơ Văn Định
Số hóa bởi Trung tâm Học liệu – ĐHTN
LỜI CAM ĐOAN
Tôi xin cam đoan đây là kết quả nghiên cứu của tôi dƣới sự hƣớng dẫn
khoa học của TS. Lê Văn Phùng.
Các số liệu, kết quả nêu trong luận văn là trung thực và chƣa từng đƣợc
ai công bố trong bất kỳ cơng trình nào khác.
Học viên
Ngơ Văn Định
Số hóa bởi Trung tâm Học liệu – ĐHTN
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
2.2. Phép dịch chuyển lƣợc đồ khối ............................................................ 43
Số hóa bởi Trung tâm Học liệu – ĐHTN
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 tốn thử nghiệm ............................................................................. 58
3.2. Phân tích và thiết kế chƣơng trình thử nghiệm .................................... 59
3.2.1. Thủ tục dịch chuyển ...................................................................... 59
3.2.2. Biểu diễn khóa qua phép dịch chuyển ........................................... 60
3.2.3. Thiết kế chƣơng trình .................................................................... 60
3.3. Cài đặt và thực hiện chƣơng trình thử nghiệm ..................................... 60
3.3.1. Yêu cầu hệ thống ........................................................................... 60
3.3.2. Hệ thống dữ liệu vào/ra ................................................................. 61
3.3.3. Hệ thống giao diện ......................................................................... 61
3.3.4. Kết quả thử nghiệm chƣơng trình và đánh giá .............................. 62
Kết luận chƣơng 3 ....................................................................................... 67
KẾT LUẬN ..................................................................................................... 68
TÀI LIỆU THAM KHẢO ............................................................................... 69
Số hóa bởi Trung tâm Học liệu – ĐHTN
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
cơ sở dữ liệu
Dom(A)
miền giá trị của thuộc tính A
LĐQH
lƣợc đồ quan hệ
r hoặc r(R)
khối r trên tập R
Rx
lát cắt của r(R) tại điểm x.
PTH
phụ thuộc hàm
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, i = 1..n)
id} tập các thuộc tính chỉ số của lƣợc đồ khối.
Fh
tập các phụ thuộc hàm trên R
Fhx
tập các phụ thuộc hàm trên Rx
Số hóa bởi Trung tâm Học liệu – ĐHTN
iv
DANH MỤC CÁC HÌNH
Trang
Hình 1.1 Biểu diễn khối SANPHAM
7
Hình 1.2Ví dụ về phép hợp
10
Hình 1.3Ví dụ về phép giao
10
Hình 1.4 Ví dụ về phép trừ
11
Hình 3.1 Giao diện chính của chƣơng trình
61
Hình 3.2 Giao diện nhập dữ liệu
62
Số hóa bởi Trung tâm Học liệu – ĐHTN
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 tốn
phức tạp.
Trong mơ hình quan hệ, để giảm tính phức tạp của việc xác định bao
đóng, khóa trong các cơ sở dữ liệu lớn, phức tạp, ngƣời ta đã đề xuất phép
dịch chuyển lƣợc đồ quan hệ (LĐQH). Trong mơ hình cơ sở dữ liệu dạng
Số hóa bởi Trung tâm Học liệu – ĐHTN
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 tốn và cài đặt chƣơng trình thử nghiệm với thuật tốn dịch chuyển lƣợc
đồ khối và biểu diễn khóa của lƣợc đồ khối qua phép dịch chuyển.
2. Mục đích nghiên cứu
Mơ hình dữ liệu dạng khối là một mở rộng của mô hình quan hệ với các
khối cho phép biểu diễn các dữ liệu có tính chất động (biểu diễn các dữ liệu
có thuộc tính thay đổi theo thời gian). Tuy nhiên, các nghiên cứu về mơ hình
dữ liệu này cịn chƣa nhiều.
Đối với các cơ sở dữ liệu khối lớn và phức tạp, việc xác định khóa và
bao đóng là một việc khó. Nhờ việc dịch chuyển lƣợc đồ khối, việc tính bao
đóng và khóa có thể trở nên đơn giản hơn.
3. Nhiệm vụ nghiên cứu
- Nghiên cứu tổng quan về mơ hình dữ liệu dạng khối; một số khái
niệm và thuật toán liên quan.
- Nghiên cứu phép dịch chuyển lƣợc đồ khối trong mơ hình dữ liệu
dạng khối và một số thuật toán dịch chuyển lƣợc đồ khối.
- Áp dụng thuật toán dịch chuyển trong bài toán thực tế
4. Đối tƣợng và phạm vi nghiên cứu:
Đối tƣợng nghiên cứu: Mô hình dữ liệu dạng khối.
Phạm vi nghiên cứu: Phép dịch chuyển lƣợc đồ khối nhằm giảm
nhẹ độ phức tạp trong việc tính bao đóng và khóa của khối.
5. Phƣơng pháp nghiên cứu
- Phƣơng pháp nghiên cứu lý luận.
Số hóa bởi Trung tâm Học liệu – ĐHTN
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 tố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 tố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 tố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 tốn dịch chuyển lƣợc đồ khối trong mơ
hình dữ liệu dạng khối.
Số hóa bởi Trung tâm Học liệu – ĐHTN
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 tốn học làm nền tảng cho mơ hình quan hệ là các quan hệ
theo lý thuyết tập hợp. Đó là tập con của tích Đề-Các của một danh sách các
miền, mỗi miền đơn giản là một tập các giá trị. Ta có thể xem một quan hệ
nhƣ một bảng, trong đó mỗi hàng là một bộ và mỗi cột là một thuộc tính.
Ta cũng có thể biểu diễn một sơ đồ thực thể-liên kết trong mơ hình
quan hệ. Khi đó, các dữ liệu của sơ đồ thực thể-liên kết đƣợc biểu diễn bởi hai
loại quan hệ:
- Một tập thực thể E có thể đƣợc biểu diễn bởi một quan hệ mà LĐQH
của nó chứa tất cả các thuộc tính của tập thực thể đó. Mỗi bộ của quan hệ biểu
diễn một thực thể trong thể hiện của E.
- Mối liên hệ giữa các tập E1, E2,.., Ek đƣợc biểu diễn bởi một quan hệ
có LĐQH chứa các thuộc tính trong các khóa của E1, E2,.., Ek. Bằng cách đặt
lại tên cho các thuộc tính nếu cần, ta đảm bảo rằng khơng có hai tập thực thể
trong danh sách có các thuộc tính cùng tên, ngay cả khi hai tập thực thể này
chỉ là một.
1.1.2. Mơ hình hướng đối tượng
Mơ hình dữ liệu hƣớng đối tƣợng có một số đặc điểm sau:
Đặc tính nhận dạng đối tƣợng (Object identity): Các thành phần chúng
xử lý điển hình là những mẩu tin, có địa chỉ duy nhất giống nhƣ trong mơ
hình mạng và mơ hình phân cấp.
Các đối tƣợng phức (Complex object): cho phép xây dựng một kiểu
mới bằng thao tác tạo lập mẫu tin hoặc tạo lập tập hợp.
Số hóa bởi Trung tâm Học liệu – ĐHTN
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
khối hiểu theo nghĩa của lý thuyết tập hợp. Khối đƣợc định nghĩa nhƣ sau:
Số hóa bởi Trung tâm Học liệu – ĐHTN
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á).
Hình 1.1 Biểu diễn khối SANPHAM
Số hóa bởi Trung tâm Học liệu – ĐHTN
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:
tx
r Rx
tx
{t ix
t i }i
1..n
, t r(R),
x
với t = {ti: id
Dom(Ai)} i=1..n
ở đây t ix (x) t i (x),i 1..n .
Khi đó, t(Rx) đƣợc gọi là một lát cắt trên khối r(R) tại điểm x.
Ví dụ 1.2
Với khối SP(R) đã cho ở trên, R = (id; A1, A2, A3, A4) trong đó:
id = {1/2014, 2/2014, 3/2014, ..., 12/2014} và các thuộc tính A1 = ma (mã),
A2 = ten (tên), A3 = c_luong (chất lƣợng), A4 = gia (giá).
Nếu x = 1/2014
r(R1/2014):
id thì lát cắt r(R1/2014) có dạng nhƣ sau:
ma
ten
c_luong
gia
A01
A
TB
300
A02
B
Tot
400
A03
C
Cao
550
Số hóa bởi Trung tâm Học liệu – ĐHTN
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.
Khi chèn thêm một phần tử t0 vào khối r, ta có:
r=r
{t0}, ở đó t0 = (t10, t20,…, tn0)
INSERT(r, t10, t20,…, tn0)
- Phép loại bỏ (delete) [4], [7]
Cho lƣợc đồ khối R = (id; A1, A2,…, An), r(R) là một khối trên R.
Số hóa bởi Trung tâm Học liệu – ĐHTN
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.
Chẳng hạn, loại phần tử t0 vào khối r(R), có dạng:
r = r - {t0}, t0 = (t10, t20,…, tn0)
DEL(r, t1 = t10, t2 = t20,…, tn = tn0)
Ở đây, để xác định phần tử cần loại bỏ, ta phải dùng bộ ánh xạ (t1, t2,…,
tn). Nghĩa là, ta phải thực hiện các phép so sánh: t1 = t10, t2=t20,…, tn = tn0 để
xác định phần tử t0 nhƣ ở trên.
- Phép sửa đổi (change)[4], [7]
Phép sửa đổi phần tử t0 thành phần tử t’0 có dạng.
{t’0}, với t0 = (t10, t20,…, tn0), t’0 = (t’10, t’20,…, t’n0),
r = r - {t0}
CH(r, t1 = t10, t2 = t20,…, tn = tn0; t1 = t’10, t2 = t’20,…, t’n = tn0)
Đố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.
Ta có: r
s = {t | t
r hoặc t
Số hóa bởi Trung tâm Học liệu – ĐHTN
s}
10
Ví dụ 1.3
ma
A
A01
B
A02
C
t2
A03
B
A02
1/2014
C
A03
2/2014
C
t3
r
B
2/2014
C
t2
1/2014
A01
A02
2/2014
A03
A02
A
B
A02
B
t2
A
A01
t1
B
A02
t1
ten
ten
ma
A
A01
t1
ma
ten
1/2014
A03
s
r
s
Hình 1.2.Ví dụ về phép hợp
- Phép giao
Cho hai khối r và s khả hợp, khi đó giao của r và s, ký hiệu r
s là một
khối gồm các phần tử của nó thuộc đồng thời cả hai khối r và s đã cho.
Ta có: r
s = {t | t
r và t
s}
Ví dụ 1.4
ten
ma
ma
ma
t1
ten
A
A01
A02
B
2/2014
A02
1/2014
t3
C
A03
B
2/2014
t2
C
A03
r
A
A01
A02
B
A02
B
A
A01
B
t2
A
A02
t2
A01
t1
A
A01
A01
t1
ten
A
B
1/2014
A02
2/2014
1/2014
s
r
s
Hình 1.3Ví dụ về phép giao
Số hóa bởi Trung tâm Học liệu – ĐHTN
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}
s = r – (r – s)
Ta thấy: r
Ví dụ 1.5
ma
A01
A01
A
t2
B
A02
t2
B
A02
A02
t1
B
t3
A03
C
C
t3
A01
C 2/2014
A03
B
A02
ten
ma
A
t1
ten
ma
ten
t2
1/2014
A
A
B
A02
C
A03
A01
A02
B
2/2014
1/2014
2/2014
1/2014
A03
r
s
r-s
Hình 1.4Ví dụ về phép trừ
- Tích Đề-các
Cho lƣợc đồ khối R = (id; A1, A2,…, An), S = (id; B1, B2,…, Bm),
và {A1, A2,…, An}
{B1, B2,…, Bm} =
.
Khi đó, tích Đề-các của hai khối r(R) và s(S) là một khối, ký hiệu r
khối này có khung R
s,
S = (id; A1, A2,…, An, B1, B2,…, Bm), mỗi phần tử
thuộc khối này là một bộ gồm n + m ánh xạ, trong đó n ánh xạ đầu có dạng
một phần tử thuộc r, cịn m ánh xạ sau có dạng một phần tử thuộc s.
r
s = {t | t(R)
trong đó:
r và t(S)
s},
t = (t1, t2,…, tn, tn+1,…, tn+m),
t(R) = (t1, t2,…, tn), t(S) = (tn+1,…, tn+m).
Số hóa bởi Trung tâm Học liệu – ĐHTN
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
r
id
s, khối này có khung R
id
S=(id ∐ id’; A1, A2,…, An), với id ∐ id’ là
ký hiệu tích rời rạc của hai tập chỉ số id và id’. Mỗi phần tử thuộc khối này
là một bộ gồm n ánh xạ(t1, t2,…, tn) với ti: id ∐ id’ → Ai, với i = 1..n, mỗi ánh
xạ này đƣợc cảm sinh từhai ánh xạ thứ i tƣơng ứng của r và s.
Cụ thể hơn, giả sử có 2 phần tử là tr r và ts s:
tr = (t1r, t2r,…, tnr), ts = (t1s, t2s,…, tns),
khi đó, ta có ánh xạ cảm sinh của tr và ts, phần tử cảm sinh của tr và ts,
ký hiệu là trs.
Gọi j1: id → id ∐ id’; j2: id → id ∐ id’ là các phép nhúng, thì ta
đƣợc:trsj1 r và trsj2 s và r
id
s = {t | tj1 r và tj2 s}
- Phép chiếu
Cho lƣợc đồ khối R = (id; A1, A2,…, An), r là một khối trên R. Khi đó,
ta gọi P = (id’; Ai1, Ai2,…, Aih) là lƣợc đồ con của lƣợc đồ R nếu:
id'
id, Aij {A1, A2,…, An}, j = 1..h
Một phép chiếu của r trên lƣợc đồ con P, ký hiệu
p(r),
là một khối có
lƣợc đồ P và mỗi phần tử thuộc khối này có dạng:
(t i1 , t i2 ,..., t ih )
id '
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:
P
(r) {(t i1 ,t i2 ,...,t ih ) | t ij {t1,t 2 ,...,t n }, j=1..h,(t1,t 2 ,...,t n ) r}
id '
- Phép chọn
Cho lƣợc đồ khối R = (id; A1, A2,…, An), và khối r(R).
Số hóa bởi Trung tâm Học liệu – ĐHTN
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 tốn logic trong F là: , , .
Biểu diễn hình thức của phép chọn có dạng:
F(r)
= {t
r | F(t)},
Trong đó F(t) là giá trị của biểu thức Boole F tại phần tử t
r.
- Phép kết nối
Cho lƣợc đồ khối R = (id; A1, A2,…, An), S = (id; B1, B2,…, Bm), cùng
với hai khối tƣơng ứng r(R), s(S).
Gọi T = (id; C1, C2,…, Cp), trong đó:
{C1, C2,…, Cp} = {A1, A2,…, An}
{B1, B2,…, Bm}.
Phép kết nối của hai khối r và s, ký hiệu r ⨝s là khối t(T) định nghĩa
nhƣ sau:
t(T) = {t |
tr r và ts s sao cho t(R) =tr, t(S) = ts}
Phép kết nối này cũng gọi là phép kết nối tự nhiên của hai khối r(R) và
s(S), đôi khi sử dụng ký hiệu r*s.
Đặc biệt, khi các khối r(R) và s(S) có tập chỉ số id trong lƣợc đồ khối
của chúng chỉ gồm một phần tử thì các khối này trở thành các quan hệ và
phép kết nối tự nhiên của hai khối lại trở thành phép kết nối tự nhiên của hai
quan hệ trong mơ hình CSDL quan hệ.
Nếu hai tập {A1, A2,…, An}và {B1, B2,…, Bm} không giao nhau thì r* s
trở thành tích Đề-các của hai khối đã cho.
Ta có thể mở rộng khái niệm kết nối nhƣ sau:
Số hóa bởi Trung tâm Học liệu – ĐHTN
14
Giả sử Aik {A1, A2,…, An}, Bik
Dom(Bik), 1
{B1, B2,…, Bm} và Dom(Aik) =
h (ở đây Aik và Bik không nhất thiết phải phân biệt).
k
Khi đó, phép kết nối của r và s theo Ai1, Ai2,…, Aih và Bi1, Bi2,…, Bih là
khối t(T), khối này đƣợc định nghĩa là:
t(T) = {t |
tr
r và ts
s sao cho t(R) =tr, t(S) = ts, trik = tsik, 1 k h},
trong đó tr = (t1r, t2r,…, tnr), ts = (t1s, t2s,…, tms).
Thay cho ký hiệu r ⨝s, ở đây ta ký hiệu rõ hơn:
t(T) = r [trik = tsik, 1
k
h] s.
- Phép chia
Cho hai khối r(id; A1, A2,…, An) và s(id; Ai1, Ai2,…, Aih), trong đó,
Aik
{A1, A2,…, An}, k =1..h. Khi đó, phép chia của khối r cho khối s, ký
s, là một khối gồm các phần tử t = (t1, t2, …, tn-h) sao cho:
hiệu r
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’ =
mà ta có với t
r và k
s:
t = (t1, t2, …, tn), k = (k1, k2, …, kn)
t1
k1
id id '
t2
id id '
k2
id id '
id id '
..........................
tn
kn
id id '
id id '
thì khi đó, ta xây dựng đƣợc một phần tử mới có dạng:
u = (u1, u2, …, un) vớiuh: id id’ Dom(Ah)sao cho:
Số hóa bởi Trung tâm Học liệu – ĐHTN
15
uh
th ,
uh
h 1..n , và ký hiệu uh = th *id kh, h = 1..n
kh ,
id
id '
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:
r*id s {u
(u j ) j 1,n | (u j ) j 1,n
r và (u jn ) j 1,n
id
s}
id '
1.2.3. Khái niệm phụ thuộc hàm
Để đơn giản, ta sử dụng các ký hiệu:
x(i) = (x; Ai); id(i) = (x(i)| x
Ta gọi x(i) (x
id)
id, i = 1..n) là các thuộc tính chỉ số của lƣợc đồ khối R =
(id; A1, A2,…, An).
Định nghĩa 1.3[4], [7]
n
Cho R = (id; A1, A2,…, An), r(R) là một khối trên R, X, Y
id
(i)
,
i 1
X
Y là ký hiệu mộtphụ thuộc hàm (PTH). Một khối r thỏa X
mọi t1, t2
Y nếu với
R sao cho t1(X)= t2(X) thì t 1(Y)= t2(Y).
Định nghĩa 1.4[4], [7]
Cho lƣợc đồ khối R = (id; A1, A2,…, An), F là tập cácPTH trên R.
Khi đó, bao đóng của F, ký hiệu F+ đƣợc xác định nhƣ sau:
F+ = {X
Y| F
Nếu X = {x(m)}
giản làx(m)
X
Y}.
id(m), Y = {y(k)}
id(k) thì ta ký hiệuPTHX
Y đơn
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))
thì t1(y(k))= t2(y(k)).
Số hóa bởi Trung tâm Học liệu – ĐHTN
16
t1(x(m))= t1(x; Am), t2(x(m))= t2(x; Am),
Trong đó:
t1(y(k))= t1(x; Ak), t2(y(k))= t2(x; Ak),
Mệnh đề1.2[4], [7]
n
Cho R = (id; A1, A2,…, An), r(R) là một khối trên R, X, Y
id
(i)
,X
i 1
Y. Khi đó, nếu id = {x} thì: r(R)
Y là ký hiệu mộtPTH. Giả sử r(R) thỏaPTHX
n
trở thành quan hệ r(A1, A2,…, An) vàPTH X
Y, (X, Y
id
(i)
) trở
i 1
thànhPTH trong mơ hình dữ liệu quan hệ.
Mệnh đề 1.3[4], [7]
Cho R = (id; A1, A2,…, An), r(R) là một khối trên R,
x(m) id(m),x(k) id(k). Khi đó, nếu r thỏaPTHx(m)
id, r thỏa y(m)
x(k) thì đối với mọi y
y(k)
Mệnh đề 1.4[4], [7]
Cho
R=(id;
A2,…,
A1,
An),
r(R)
là
một
x(m),y(m) id(m),x(k),y(k) id(k). Khi đó, nếu r thỏa cácPTHx(m)
y(k) thì r thỏa x(m)
khối
trên
R,
y(m) và 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.
n
Với mỗi X
id
(i)
, ta định nghĩa bao đóng của X đối với F, ký hiệu
i 1
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:
Fh = {X
Y|X =
x
(i)
,Y=
i A
Số hóa bởi Trung tâm Học liệu – ĐHTN
x
(i)
, A, B
{1, 2,… n}, x id},
j B
17
n
Fhx = {X
Y
x
Fh | X, Y
(i )
}, với x ∈ id và kí hiệu Fhx= Fh
i 1
n
x(i )
i 1
Thuật tốn 1.1(Tìm bao đóng của tập thuộc tính X của lƣợc đồ
khối)[4], [7]
Algorithm BAODONG1
Format: BAODONG1(X, F, R)
Input: Tập thuộc tính X, tập phụ thuộc hàm F và
lược đồ khối R
Output: X+, bao đóng của X đối với F trên R
Method
Tepcu :=
; tepmoi := X;
While tepmoi
tepcu do
Begin
Tepcu := tepmoi;
For each W
Z in F do
If tepmoi
W then tepmoi:=tepmoi Z;
End;
Return (tepmoi);
End BAODONG1;
Cho lƣợc đồ khối R = (id; A1, A2,…, An), Fh, Fhx là tập cácPTH trên R,
n
Rx tƣơng ứng, M
n
id(i) , M =
Mx , Mx
x
i 1
x A
i 1
(i)
, Mx
,x
A
id.
Khi đó, dựa vào thuật tốn tính bao đóng ở trên, ta có thể tính bao đóng
M+ của M đối với Fh. Từ q trình tính bao đóng của M đối với Fh, ta thấy đó
chính là các q trình tính bao đóng của các tập thuộc tính chỉ số Mx (x
đối với các tậpPTH tƣơng ứng Fhx (x
Số hóa bởi Trung tâm Học liệu – ĐHTN
A).
A)