DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮTLuận văn này dùng thống nhất các ký hiệu và chữ viết tắt sau: CSDL cơ sở dữ liệu DomA miền giá trị của thuộc tính A LĐQH lược đồ quan hệ r hoặc rR k
Trang 1ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGÔ VĂN ĐỊNH
PHÉP DỊCH CHUYỂN LƯỢC ĐỒ KHỐI
TRONG MÔ HÌNH DỮ LIỆU DẠNG KHỐI
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2015
Trang 2ĐẠ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
Trang 3LỜ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ủathầ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áiNguyên đã tạo điều kiện học tập, nghiên cứu và giúp đỡ tôi rất nhiều trong
quá trình làm luận văn Đặc biệt tôi xin cảm ơn thầyTS Lê Văn Phùng đã tận
tình hướng dẫn, chỉ bảo tôi trong suốt quá trình học tập, nghiên cứu đề tài vàgiúp đỡ tôi hoàn thành bản luận văn này
Thái Nguyên, ngày 15 tháng 5 năm 2015
Học viên
Ngô Văn Định
Trang 4LỜ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
Trang 5MỤ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
Trang 62.2.1 Định nghĩa 43
2.2.2 Sự khác biệt giữa phép chuyển dịch lược đồ khối so với phép dịch chuyển lược đồ quan hệ 45
2.2.3 Một số thuật toán dịch chuyển lược đồ khối 46
2.2.4 Biểu diễn bao đóng qua phép dịch chuyển 48
2.2.5 Biểu diễn khóa qua phép dịch chuyển 51
2.2.6 Ví dụ 55
Kết luận chương 2 56
CHƯƠNG 3 CHƯƠNG TRÌNH THỬ NGHIỆM 58
3.1 Bài toán thử nghiệm 58
3.2 Phân tích và thiết kế chương trình thử nghiệm 59
3.2.1 Thủ tục dịch chuyển 59
3.2.2 Biểu diễn khóa qua phép dịch chuyển 60
3.2.3 Thiết kế chương trình 60
3.3 Cài đặt và thực hiện chương trình thử nghiệm 60
3.3.1 Yêu cầu hệ thống 60
3.3.2 Hệ thống dữ liệu vào/ra 61
3.3.3 Hệ thống giao diện 61
3.3.4 Kết quả thử nghiệm chương trình và đánh giá 62
Kết luận chương 3 67
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 69
Trang 7DANH 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:
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
x(i) = (x, Ai)
id(i)= {x(i)|x id}
các thuộc tính chỉ số của lược đồ khối (x id, i = 1 n)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
Trang 8DANH 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
Trang 91 Lí do chọn lựa đề tài
MỞ ĐẦU
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âydự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àonhữ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ìnhthự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á caohơ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ìnhquan 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 theothời gian, không gian…) có khả năng đáp ứng tốt đối với nhiều lớp bài toánphứ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épdịch chuyển lược đồ quan hệ (LĐQH) Trong mô hình cơ sở dữ liệu dạng
Trang 10khố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ênphép dịch chuyển lược đồ khối và phương pháp biểu diễn bao đóng và khóacủ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ớiphương pháp tìm bao đóng và khóa thông thường Đồng thời, nghiên cứuthuậ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áckhố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áiniệ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ệudạ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:
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
Trang 11- 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ácphé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ạngkhố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 3chươ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éptí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ốitrong mô hình dữ liệu dạng khối Đưa ra phương pháp biểu diễn bao đóng vàkhóa của lược đồ khối thông qua phép dịch chuyển
Chương 3 Chương trình thử nghiệm
Tiến hành cài đặt các thuật toán dịch chuyển lược đồ khối trong môhình dữ liệu dạng khối
Trang 12CHƯƠ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ácmiề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ìnhquan hệ Khi đó, các dữ liệu của sơ đồ thực thể-liên kết được biểu diễn bởi hailoạ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ĐQHcủ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ểudiễ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 đặtlạ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àychỉ 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ểumới bằng thao tác tạo lập mẫu tin hoặc tạo lập tập hợp
Trang 13Phâ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ượnglà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ườngtrong 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 concủ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 đốitượ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 theocủ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áckhối hiểu theo nghĩa của lý thuyết tập hợp Khối được định nghĩa như sau:
Trang 14Đị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ùngmộ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ộtcô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
Trang 151 n , t
i i
r R x t x {t x t }i r(R),
ti (x),i 1 nx
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) = A02Tên của sản phẩm t3 ở thời điểm tháng 3 năm 2014 là:
t3(3/2014, ten) = CGiá 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:
t x
xvới t = {ti: id Dom(Ai)} i=1 n
ở đây ti
(x) 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:
r(R1/2014): ma ten c_luong gia
Trang 16Nhậ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ủakhố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ụngcho 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ó:
Trang 17Phé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, t2 0 0,…, tn )
DEL(r, t1 = t10, t2 = t2 0 0,…, tn = tn )
Ở đâ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 = t1 0 0 0, t2=t2 ,…, tn = tn đểxác định phần tử t0 như ở trên
- Phép sửa đổi (change)[4], [7]
* Đạ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ộtkhố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}
Trang 18t 1 2/2014
t
A02 A03
A02 B C C
B t1
2/2014
t 2
A01 A A02 B
A02 B 1/2014 2
A03 1/2014
A03
t3 C A03
C 1/2014 2/2014
A02
A01 A A B
t 1 A01
A A01
A B
B t2
C 2/2014 C
A02
B A02 1/2014
Trang 19ma ten
B A02
t 3 2/2014
r s = {t | t(R) r và t(S) s},
trong đó: t = (t1, t2,…, tn, tn+1,…, tn+m),
t(R) = (t1, t2,…, tn), t(S) = (tn+1,…, tn+m)
Trang 20i1 i 2 ih ij 1 2 n 1 2 n
P (r) {(t ,t , ,t ) | t {t ,t , ,t }, j=1 h, (t ,t , ,t ) r}
- 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
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:
Biểu diễn theo hình thức của phép chiếu có dạng:
- Phép chọn
id '
Cho lược đồ khối R = (id; A1, A2,…, An), và khối r(R)
Trang 21Cho 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ủakhố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ảngiữa hai biến là hai giá trị điểm của hai ánh xạ thành phần nào đó hoặcgiữ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ácphé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:
Nếu hai tập {A1, A2,…, An}và {B1, B2,…, Bm} không giao nhau thì r* strở 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:
Trang 22Khi đó, 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à:
ik ik
t(T) = {t | tr r và ts s sao cho t(R) =tr, t(S) = ts, tr = ts , 1 k h},trong đó tr = (t1 r r r s s s s, t2 ,…, tn ), t = (t1 , t2 ,…, tm )
Thay cho ký hiệu r ⨝ s, ở đây ta ký hiệu rõ hơn:
ik
t(T) = r [trik = ts
- Phép chia
, 1 k h] s
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:
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:
Trang 23t h , u h k h , h 1 n
1,n j 1,n j 1,n
{u (u j ) | (u j j ) r và (u jn ) s}
i 1 (i
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 id)
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 n id ,
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:
Trang 24Cho 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) x(k) thì đối với mọi y
id, r thỏa y(m) y(k)
Mệnh đề 1.4[4], [7]
Cho R=(id; A1, A2,…, An), r(R) là một khối trên R,
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)
id , ta định nghĩa bao đóng của X đối với F, ký hiệu
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 = x(i ) , A, B {1, 2,… n}, x id},
Trang 25Khi đó, dựa vào thuật toán tính bao đóng ở trên, ta có thể tính bao đóng
M+ của M đối với Fh Từ quá trình tính bao đóng của M đối với Fh, ta thấy đóchính là các quá trình tính bao đóng của các tập thuộc tính chỉ số Mx (x A)đối với các tậpPTH tương ứng Fhx (x A)
Trang 27i 1
Mx+ =M+
n
x (i) là bao đóng của Mx đối với Fhx
Trang 28i 1
end;
if Y then X+ := X+ BAODONG(Y,Fhx,R);
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
Trang 29Nếu K là khóa và K K’’ thì K’’ gọi là siêu khóa của lược đồ R đối
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]
K là khóa của Rx đối vớiFhx
Giả sử K là khóa của R đối với Fh, khi đó, theo định nghĩa khóa thì bao
nđóng K+ của K thỏa mãn K+ = id(i ) và mọiK’ K không có tính chất này
Trang 30nNhư vậy Kx+ = x (i )
Để có Kx là khóa của Rx đối với Fhx, ta còn phải chứng minh rằng:
Rx tương ứng, Kx id , x id Khi đó, nếu Kx là khóa của Rx đối với Fhx
thì K = K x là khóa của R đối vớiFh.
x
K+ =id(i )
nGiả sử có K’ K, mà K’+ = id(i )
Khi đó, (K’
n
x ) (K
n
x ), x id
Trang 310
(i ) ) Mà
theo giả thiết thì K ' =
thuẫn với giả thiết K ' là khóa của
K là khóa của Rx đối với Fhx
Cho lược đồ khối R = (id; A1, A2,…, An), Fh, Fhx là tập cácPTH trên R,
Rx tương ứng, K n id , x id Khi đó, nếux với A {1, 2, …, n}là(i)khóa của Rx đối với Fhx thì
(i )
là khóa của lược đồ R đối vớiFh
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 Tagọ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 id, i {1, 2, …,n} đều chỉ chứa các giá trị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 Rthuộc dạng chuẩn 1 Khi đó, nếu id = {x} thì lược đồ khối R suy biến thành
Trang 32LĐQH ở dạng chuẩn 1 trong mô hình dữ liệu quan hệ.
Trang 33i 1
Đị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, Yn
id(i ) 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 Tagọ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ộctí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 Rthuộc dạng chuẩn 2 Khi đó, nếu id = {x} thì lược đồ khối R suy biến thànhLĐ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, Rxcũ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 Tagọ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ộctí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 Rthuộc dạng chuẩn 3 Khi đó, nếu id = {x} thì lược đồ khối R suy biến thànhLĐ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, Rxcũng ở dạng chuẩn 3
Trang 34i 1
Đị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 n
id(i ) 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 Rthuộc dạng chuẩn Boye-Codd Khi đó, nếu id = {x} thì lược đồ khối R suybiế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ẩnBoye-Codd
Trang 35Mệ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ẩnBoye-Codd) thì y id, ta có Ry thuộc dạng chuẩn 2 (dạng chuẩn 3, dạngchuẩ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ạngtựa chuẩn Boye-Codd) thì y id, ta có Ry thuộc dạng tựa chuẩn 2 (dạng tựachuẩ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ộcdạng chuẩn 3
Trang 36a 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ôngmất thông tin đối với F nếu với mọi khối r trên R thỏa F thì:
r = R1(r)* R2(r)*…* Rk(r) (1)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
Trang 37Nếu Fhx là như nhau x id thì ta chỉ việc chọn F*h = Fh.
Nếu các Fhx (x id) không giống nhau thì ta tiến hành như sau:
+ Lần lượt duyệt từng Fhx, với mỗi phụ thuộc X Y Fhx, X = x ,
x , A, B {1, 2, …, n} ta bổ sung vào các Fhy PTH X’ Y’ Fhy,
y , Y’ = y
+ Sau cùng, ta đặt F*h = Fhx .
xKhi đó 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, tachuyể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
Trang 38id x
Ta xét Fhx với một x nào đó, với mỗi PTH X Y Fhx, nếu tồn tại haihà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ư nhauthì 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ư nhautrong hai hàng này theo nguyên tắc: Nếu có một ký hiệu aj trong các cột ứngvớ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ấtbằ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áchkhông bảo toàn thông tin
Theo thuật toán trên, ta có Rx, x id có phép tách bảo toàn thông tin
x = {R1x, R2x, , Rkx}, Rix = (x; Xi), Xi {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átcắt Rx Như vậy, các phép tách x = {R1x, R2x, , Rkx} cũng là như nhau đốivới mọi lát cắt Rx
Trang 39Chứ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áchtrê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
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ý hiệu Ri(Fh), là tập tất cả các PTH X Y Fh sao cho XY là tập thuộctí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éptá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ấtthông tin