Bộ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI 2
NGUYỄN VĂN SƠN
NGHIÊN CỨU BAO ĐÓNG TRONG MÔ HÌNH DỬ LIỆU DẠNG
KHỐI
LUẬN VĂN THẠC Sĩ MÁY TÍNH
HÀ NỘI, 2014
Bộ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI 2
• • • •
NGUYỄN VĂN SƠN
NGHIÊN CỨU BAO ĐÚNG TRONG MÔ HÌNH DỮ LIỆU DẠNG
KHỐI
Chuyên ngành: KHOA HỌC MÁY TÍNH Mã sổ: 60 48 01 01
LUÃN VĂN THAC SĨ MÁY TÍNH • •
Để hoàn thành luận văn này em xin chân thành gửi lời cảm ơn đến quý
thầy cô trong trường Đại học Sư phạm Hà Nội 2, các thầy trong Viện Công
nghệ thông tin thuộc Viện Hàn lâm Khoa học và Công nghệ Việt Nam, các anh
chị thư viện Viện Công nghệ thông tin thuộc Viện Hàn lâm Khoa học và Công
nghệ Việt Nam, thư viện trường Đại học Công nghệ thông tin và truyền thông -
Đại học Thái Nguyên, trung tâm học liệu Đại học Thái Nguyên, thư viện Đại
học Công nghệ - Đại học Quốc gia Hà Nội đã quan tâm giúp đỡ trong quá trình
thực hiện đề tài. Nhờ đó tôi đã tiếp thu được nhiều ý kiến đóng góp và nhận xét
quý báu của quý thầy, cô thông qua các buổi trao đổi thông tin và bảo vệ đề
cương.
Em xin gửi lời cảm ơn sâu sắc nhất đến TS. Trịnh Đình Vinh đang công
tác tại trường Đại học Sư Phạm Hà Nội II đã trực tiếp hướng dẫn, định hướng
chuyên môn, quan tâm giúp đỡ tận tâm chỉ bảo trong quá trình thực hiện luận
văn.
Em xin bày tỏ sự biết ơn sâu sắc đến gia đình đã tạo mọi điều kiện tốt nhất
để em có thể hoàn thành tốt mọi công việc trong quá trình thực hiện luận văn.
Bên cạnh đó, em cũng xin gửi lời cảm ơn của mình tới bạn bè và đồng nghiệp,
luôn quan tâm, chia sẻ, động viên em trong suốt thời gian thực hiện luận văn.
Mặc dù đã rất cố gắng trong quá trình thực hiện nhưng luận văn không thể
tránh khỏi những thiếu sót. Em xin mong nhận được sự góp ý của quý thầy cô,
quý đồng nghiệp và bạn bè.
Hà Nội, ngày 22 tháng 12 năm 2014
Hoc viên
Nguyễn Văn Sơn
Tôi xin cam đoan toàn bộ nội dung được trình bày trong bản luận văn này là
kết quả tìm hiểu và nghiên cứu của riêng tôi, đây là công trình nghiên cứu của
tôi dưới sự hướng dẫn khoa học của TS. Trịnh Đình Vinh. Các số liệu, kết quả
nêu trong luận văn là trung thực, rõ ràng. Tôi cũng xin cam đoan rằng mọi sự
giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các thông tin trích
LỜI CẢM ƠN
dẫn trong luận văn đã được chỉ rõ nguồn gốc. Tôi xin chịu hoàn toàn trách
nhiệm với những nội dung được viết trong luận văn này.
Hà Nội, ngày 22 thángl2 năm 2014 Học viên
Nguyễn Văn Sơn
LỜI CẢM ƠN
MỤC LỤC
Trang
LỜI CAM ĐOAN
LỜI CẢM ƠN
MỤC LỤC
BẢNG KÍ HIỆU CÁC CHỮ CÁI VIẾT TẮT
DANH MỤC CÁC BẢNG
DANH MỤC CÁC HÌNH
DANH MỤC CÁC KÝ HIỆU, CHỮ CÁI VIÉT TẮT
Trong luận án này dùng thống nhất các kí hiệu và các chữ viết tắt sau:
Kí hiệu ý nghĩa
CSDL Cơ sở dữ liệu.
LĐQH Lược đồ quan hệ.
PTH Phụ thuộc hàm.
А, В, С Thuộc tính.
X, Y, z Tập thuộc tính.
XY XuY (hợp của 2 tập thuộc tính X YỠ Y).
ABC [А, В, С] (tập thuộc tính gồm 3 phàn tử А, в, C).
Dom(A) Miền giá trị của thuộc tính A.
r hoặc r(R) Khối r trên tập R.
(i) ,
X = (x, A.) Các thuộc tính chỉ sô của 1-ợc đô khôi (xeid, i = l „
(i) (i)|
id = {x I xeid } Tập các thuộc tính chỉ sô của 1-ợc đô khôi.
|r| Số phần tử của khối r.
|r|' Số phần tò của khối con r’ của khối r.
Œ Là con.
=2 Chứa,
e Thuộc.
3 Tồn tại.
È Không tồn tại.
Ể Không thuộc.
V Với mọi.
0 Rỗng.
n Phép giao,
u Phép hợp.
cj: Không thuộc tập con
DANH MỤC CÁC BẢNG
•
DANH MUC CÁC HÌNH
•
MỞ ĐẦU
1. Lý do chọn đề tài:
Cơ sở dữ liệu (CSDL) là một trong những lĩnh vực được tập trung
nghiên cứu và phát triển của công nghệ thông tin, nhằm giải quyết các bài toán
quản lý, tìm kiếm thông tin trong những hệ thống lớn, đa dạng, phức tạp cho
nhiều người sử dụng trên máy tính. Từ những năm 70 của thế kỉ trước, mô hình
dữ liệu quan hệ do Edgar Frank Codd (Nhà khoa học máy tính người Anh) đưa
ra với cấu trúc hoàn chỉnh đã tạo nên cơ sở nền tảng cho các vấn đề nghiên cứu
lý thuyết về CSDL.
Để có thể xây dựng được một hệ thống cơ sở dữ liệu tốt, người ta
thường sử dụng các mô hình dữ liệu thích hợp. Ngoài những mô hình được sử
dụng trong hệ thống cơ sở dữ liệu đã có từ lâu và được rộng rãi trên Thế giới
như: mô hình thực thể - liên kết, mô hình mạng, mô hình dữ liệu, mô hình phân
cấp, mô hình quan hệ
Trong những năm gần đây, việc nghiên cứu tìm ra các mô hình mới đáp
ứng các ứng dụng phức tạp, các cơ sở dữ liệu có cấu trúc tuyến tính và phi
tuyến tính được các nhà nghiên cứu trong và ngoài nước quan tâm. Một trong
những mô hình mới này là mô hình dữ liệu dạng khối. Mô hình dữ liệu này có
thể xem là một mở rộng của mô hình dữ liệu quan hệ.
Để góp phần hoàn chỉnh thêm về mô hình dữ liệu dạng khối tôi chọn đề
tài là “ N g h i ê n c ứ u b a o đ ó n g t r o n g m ô h ì n h d ữ l i ệ u d ạ n g
k h ố i ”cho luận văn của mình.
Bao đóng có vai trò rất quan trọng trong cơ sở dữ liệu. Với mục tiêu tìm
hiểu về bao đóng trong mô hình dữ liệu dạng khối cũng như các khái niệm liên
quan, trong đề tài nghiên cứu đã tìm hiểu sâu về bao đóng trong mô hình dữ
liệu dạng khối và tính chất mở rộng của bao đóng trong mô hình dữ liệu dạng
khối.
2. Mục đích nghiên cứu
7
Tìm hiểu khái quát về mô hình dữ liệu dạng khối sau đó đi sâu và nghiên
cứu các tính chất mở rộng của bao đóng trong mô hình dữ liệu dạng khối.
Trình bày và chứng minh các tính chất của bao đóng trong mô hình dữ
liệu dạng khối, đặc biệt là tính chất mở rộng của bao đóng trong mô hình dữ
liệu dạng khối.
3. Nhiệm vụ nghiền cứu
Nghiên cứu lý thuyết về mô hình dữ liệu dạng khối. Cụ thể là các tính
chất mở rộng của bao đóng trong mô hình mô hình dữ liệu dạng khối.
4. Đổi tượng và phạm vỉ nghiên cứu
- Đối tượng : Bao đóng trong mô hình dữ liệu dạng khối
- Phạm vi: Các tính chất của bao đóng trong mô hình dữ liệu dạng khối
5. Phương pháp nghiên cứu
Phương pháp tổng hợp phân tích các vấn đề có liên quan đến đề tài.
Phương pháp lý luận
Phương pháp suy luận và chứng minh
6. Giả thiết khoa hoc
Phát biểu và chứng minh một số tính chất mở rộng của bao đóng trong
mô hình dữ liệu dạng khối.
KẾT QUẢ ĐẠT ĐƯỢC TRONG LUẬN VĂN
Luận văn bao gồm: Lời mở đầu, 3 chương và phần kết luận. Các kết quả đạt
được của luận văn được trình bầy trong chương 3.
Chương I: Mô hình dữ liệu quan hệ.
Chương này đã trình bày một số các khái niệm cơ bản nhất trong mô hình dữ
liệu quan hệ. Trình bày các phép toán cơ bản, các khái niệm về phụ thuộc hàm,
bao đóng, khóa cùng với các tính chất của chúng. Ngoài ra các thuật toán tìm
8
khoá, bao đóng và phép dịch chuyển lược đồ trong mô hình dữ liệu quan hệ
cũng được trình bày trong chương này.
Chương II: Mô hình dữ liệu dạng khối.
Nội dung chương này trình bày các khái niệm cơ bản trong mô hình dữ liệu
dạng khối như : khái niệm về khối, lược đồ khối, lát cắt. Trình bầy các phép
toán cơ bản trên khối, khái niệm về bao đóng của tập phụ thuộc hàm, bao đóng
của tập thuộc tính chỉ số, khóa của lược đồ khối cùng với các thuật toán tìm
bao đóng, tìm khóa của lược đồ khối. Ngoài ra chương này còn trình bầy phép
dịch chuyển của lược đồ khối.
Chương III: Tính chất mở rộng của bao đóng trong mô hình dữ liệu
dạng khối.
Phát biểu và chứng minh tính chất của bao đóng, tính chất mở rộng của bao
đóng tập thuộc tính chỉ số trong mô hình dữ liệu dạng khối, xây dựng chương
trình Demo minh họa thuật toán tìm bao đóng của tập thuộc tính chỉ số trong
mô hình dữ liệu dạng khối.
Kết quả đạt được:
- Tìm hiểu về mô hình dữ liệu dạng khối cũng là một mở rộng tự nhiên của mô
hình dữ liệu quan hệ trong đó tìm hiểu kĩ hơn về bao đóng của tập chỉ số và
một vài tính chất cơ bản của nó trong mô hình dữ liệu dạng khối.
- Phát biểu và chứng minh các tính chất mở rộng của bao đóng tập thuộc tính chỉ
số trong mô hình dữ liệu dạng khối.
Giới thiệu bài toán và xây dựng chương trình Demo tính
bao đóng của tập thuộc tính chỉ số trong mô hình dữ liệu
dạng khối.
CHƯƠNG I: MÔ HÌNH DỮ LIỆU QUAN HỆ
l.l. Các khái niêm cơ bản:
1.1.1 Thuộc tính và miền thuộc tính: [6,7]
- Thuộc tính là các đặc điểm riêng của một đối tượng, quan hệ . Mỗi thuộc tính
có một tên gọi và phải thuộc về một kiểu dữ liệu nhất định, kiểu dữ liệu đó có
thể là vô hướng (là các kiểu dữ liệu cơ bản như chuỗi, số, logic, ngày tháng )
hoặc các kiểu có cấu trúc được định nghĩa dựa trên các kiểu dữ liệu có sẵn.
9
V í d ụ : SINHVIEN (MaSV, Hoten, NgSinh, Đchi).
Đối tượngSINHVIEN có các thuộc tính mã sinh viên, họ tên, ngày sinh, địa
chỉ.
- Mỗi một thuộc tính có thể chỉ chọn lấy những giá trị trong một tập hợp con của
kiểu dữ liệu. Tập họp các giá trị mà thuộc tính A có thể nhận được gọi là miền
giá trị của thuộc tính A, thường được kí hiệu là Dom(A) hay viết tắt là
D A ,
Ví dụ: Dom(MaSV) = {char(4)}; Dom(Hoten) = {char(3)};
Dom(NgSinh) = {date}; Dom(Đchi) = {‘HN\ ‘VP\ ‘BN’
1.1.2. Quan hệ và lược đồ quan hệ :
Quan hệ:
Cho u = {Ai,A
2
, , A
n
} là một tập hữu hạn không rỗng các thuốc tính.
Mỗi thuộc tính Aj (i = 1,2, ,n) có miền giá trị là D
A
. .Khi đó, r là một tập các
bộ {hi, h
2
, h
m
} được gọi là quan hệ trên R với hj (j=l, 2 , m ) là một hàm:
hj = u —> Da ., Ai eU I hj (Ai) e D
A
.(i = l,2, ,n)
Ta có thể xem một quan hệ như một bảng mà trong đó mỗi hàng (phần tò) là
một bộ và mỗi cột tương ứng YỚi một thuộc tính. Biểu diễn bảng quan hệ r
như sau:
Bảng 1.1. Ví dụ về quan hệ r
Bộ của quan hệ[6]
Một bộ giá trị là các thông tin của một đối tượng thuộc quan hệ. Bộ giá trị
cũng thường được gọi là một mẫu tin hay bản ghi, dòng của bảng.
1
Ai A2
An
hi(Ai) hi(A
2
)
hi(A
n
)
h2(Ai) h2(A
2
)
h2(A
n
)
hm(Ai) h
m
(A
2
)
h
m
(A
n)
Một bộ q là một vectơ gồm n thành phần thuộc tập hợp con của tích Đề-Các
miền giá ừị của các thuộc tính và thỏa mãn tân từ đã cho của quan hệ.
Ví dụ : Xét bảng SINHVIEN ta có:
Bảng 1.2. Quan hệ SINHVIEN Bộ giá trị: (T001,
Nguyễn Lan Anh, TIN1, 7) là một bộ.
Nếu một bộ t = (di, d
2
, dm) £ r, r xác định trên tập thuộc tính u, X c u thì
t(X) được gọi là giá trị của tập thuộc tính X trên bộ t. Nếu X = {A
l5
A
2
,
A
K
) thì t.x = (di, d
2
, d
K
) .
Lược đồ quan hệ[6,7]
1
Mã sv
Họ và tên Lớp Điêm TB
T001 Nguyên Lan Anh TIN1 7
T002 Nguyên Văn Bình TIN1 6
T003 Trân Thị Trang TIN2 8
T004 Lưu Văn Nam TIN3 4
Tât cả các thuộc tính trong một quan hệ cùng với mối liên hệ giữa
chúng được gọi là lược đồ quan hệ
Lược đồ quan hệ R với tập thuộc tính u = {Ai, A
2
, . . A
n
} được viết là R(U)
hoặc R{A
1?
A
2
, A
n
}
1.2. Các phép toán đại số trên lược đồ quan hệ:
1.2.1. Phép hợp[6]:
Hai quan hệ r và s được gọi là khả hợp nếu như hai quan hệ này xác định
cùng tập thuộc tính và các thuộc tính cùng tên có cùng miền giá trị.
Cho hai quan hệ r và s khả hợp. Hợp của r và s ký hiệu r u s là một quan hệ
gồm tất cả các bộ thuộc r hoặc thuộc s hoặc thuộc cả hai quan hệ. Ta có:
r u s = { t | t e r hoặc t es}
Ví dụ : Cho hai bảng
Bảng 1.3. Biểu diễn quan hệ sinhvienlu sinhvien2
1
Sinhvienl u Sinhvien2
MaSV Địa chỉ
KT01 HN
KT02 HN
KT03 LS
MaSV Địa chỉ
KT01 HN
KT04 YB
và Sinhvien2
MaSV Địa chỉ
KT01 HN
KT02 HN
KT03 LS
KT04 YB
1.2.2. Phép giao[6] :
Cho hai quan hệ r và s khả hợp. Giao của r và s ký hiệu r n s là một quan hệ
gồm tất cả các bộ thuộc r và thuộc s. Ta có: r n s = { t | t e r v à t es}
Ví dụ : Cho hai bảng: Sinhvienl
Bảngl.4.Biểu diễn quan hệ sinhvienln sinhvien2
1.2.3. Phép trừ [6]:
Cho hai quan hệ r và s khả hợp. Hiệu của r và s ký hiệu là r - s là tập tất cả
các bộ thuộc r nhưng không thuộc s. Ta có: r- s = {t I te r vàt Ể }
1
và Sinh viên
MaSV Địa chỉ
KT01 HN
KT02 HN
KT03 LS
MaSV Địa chỉ
KT01 HN
KT04 YB
MaSV Địa chỉ
KT01 HN
Sinhvienl n Sinhvien2
Ví dụ : Cho bảng Sinhvienl
MaSV Địa chỉ
KT01 HN
KT02 HN
KT03 LS
MaSV Địa chỉ
KT01 HN
KT04 YB
Sinh viên
2
Bảngl.5. Biếu diễn quan hệ Sinhvienl-
Sinhvien2 Sinhvien2 - Sinhvienl
Bảng 1.6.Biểu diễn quan hệ Sinhvien2-Sinhvienl
1.2.4. Tích Đề - các [6]:
Cho hai quan hệ r và s bất kỳ có tập thuộc tính lần lượt là Ui và u
2
với UiO
Ư2 = .Tích đề các của r và s ký hiệu là: r X s là một quan hệ trên UiO u
2
gồm tập tất cả các bộ ghép được từ các bộ của r và s. Ta có: r X s = |t =
(u,v)/Vu e r, V € sj Ví dụ : cho hai bảng
Tích đề - các của 2 bảng trên là r X s :
1
MaSV Địa chỉ
KT02 VP
KT03 LS
Sinhvienl - Sinhvien2
MaSV Địa chỉ
KT04 YB
MaSV MaMH Diem
TIN001 LTP 6
TIN002 CTDL 7
TIN003 MANG 8
MaMH TenMH MaMH
LTP Lập trình pascal LTP
CTDL Câu trúc dữ liệu CTDL
và bảng s
1.2.5. Phép chiếu[6]
Cho quan hệ r xác định trên tập thuộc tính u và xcu. Phép chiếu của quan hệ r
trên tập thuộc tính X, kí hiệu là n
x
(r) là tập các bộ của r xác định trên X, ta
có : n
x
(r) = {t.x 11 e r}
Thực chất của phép chiếu là phép toán giữ lại một số thuộc tính càn thiết của
quan hệ và loại bỏ những thuộc tính không cần thiết (trùng lặp).
Ví dụ : Cho bảng r gồm những thuộc tính sau:
càn lấy một số thuộc tính tên sinh viên mà chỉ quan tâm đến mã số, lớp và
Điểm TB thì phép chiếu sẽ được sử dụng như sau: H
m ã
s v, lớp Điểm ra(sinh
viên) = q u a n h ệ k ế t q u ả
1
MaSV MaMH Dỉem MaMH TenMH
TIN001 LTP 6 LTP Lập trình Pascal
TIN001 LTP 6 CTDL Câu trúc dữ liệu
TIN002 CTDL 7 LTP Lập trình Pascal
TIN002 CTDL 7 CTDL Câu trúc dữ liệu
TIN003 MANG 8 LTP Lập trình Pascal
TIN003 MANG 8 CTDL Câu trúc dữ liệu
Bảng 1.7. Biểu diễn quan hệ r X s
Ta có :
В
D
1
2
2
4
8
5
6
và Ta có :n
BD
(r)
A
В
С
D
a
1
i
2
b
2
g
4
D
Mã sv
Họ và tên Lớp Điêm TB
T001 Nguyên Lan Anh TIN1 7
T002 Nguyên Văn Bình TIN1 6
T003 Trân Thị Trang TIN2 8
T004 Lưu Văn Nam TIN3 4
cụ thể : Cho
bảng Sinhvien
Mã sv
Lớp Điêm TB
T001 TIN1 7
T002 TIN1 6
T003 TIN2 8
T004 TIN3 4
ketqua
Bảng 1.8. Biểu diễn phép chiếu : n
mẫSY ỉởp Đi
i
m
ra
(sinh viên).
1.2.6. Phép chọn [6]:
Phép chọn là phép toán lọc lấy ra một tập con các bộ của quan hệ đã cho thoả
mãn một điều kiện xác định. Điều kiện đó được gọi là điều kiện chọn hay biểu
thức chọn.
Biểu thức chọn F được định nghĩa là một tổ hợp logic 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 thuộc tính hoặc
giữa một biến là một thuộc tính và một giá trị hằng. Biểu thức chọn F cho giá
trị đúng hoặc sai đối với mỗi bộ đã cho của quan hệ khi kiểm tra riêng bộ đó.
- Các phép toán so sánh trong biểu thức F: >, <, =, >, #, <.
1
- Các phép toán logic trong biểu thức F: A (và), V (hoặc), -1 (phủ
định). Cho r là một quan hệ và F là một biểu thức logic trên các thuộc tính của
r. Phép chọn trên quan hệ r với biểu thức chọn F, kí hiệu làỗ
F
(r) , là tập tất cả
các bộ của r thoả mãn F. Ta có: ỗ
F
(r) = {11 ter aF(í) = đúng}.
Ví dụ : Cho bảng
1.2.7. Phép kết nối [6]:
Phép kết nối là một phép ghép các bộ giá trị của hai quan hệ có điều kiện (chú
ý: tích đề các không có điều kiện). Ký hiệu:
r
[><]
s
Kết quả của phép kết nối r và s qua điều kiện F là tập tất cả các bộ giá trị từ
những bộ giá trị của hai quan hệ tham gia và bộ giá trị vừa được ghép thỏa mãn
điều kiện cho trước.
r >< s = {t = (u, v) / u e r Y es F(t) đúng}
F
Do đó, phép kết nối chính là một phép chọn trên tích đề các.
1
Chọn sinh viên có Điểm TB > 5. ta làm như sau : ỗQiểmTB
>5(Sinhvien) Kết quả là:
Sinhvien
Mã sv
Họ và tên Lớp Điêm TB
T001 Nguyên Anh TIN1 7
T002 Nguyên Bình TIN1
6
T003 Trân Trang TIN2
8
T004 Lưu Nam TIN3 4
Sinhvie
n
Mã sv
Họ và tên Lớp Điêm TB
T001 Nguyên Anh TIN1 7
T002 Nguyên Bình TIN1
6
T003 Trân Trang TIN2 8
Bảng 1.9. Biểu diễn phép chọn : ỗĐiểm TB
>5(Sinhvien)
r [X] s = ô
F
(r X s)
F
Điều kiện kết nối F là tổ hợp logic của các toán hạng trong đó mỗi toán hạng là
một phép so sánh giữa thuộc tính của r và s.
Tùy theo tính chất của biểu thức điều kiện và yêu cầu của kết quả mà có thể
chia phép nối thành phép nối tự nhiên, nối bằng, nối so sánh, nửa nối và tự nối.
Trong đại số quan hệ, các phép toán là tương đương khi chúng cho cùng kết
quả. Phép nối tương đương YỚi kết quả của hai phép đại số quan hệ là phép
nhân và phép hạn chế.
Ví dụ : Cho 2 quan hệ
1
Mã sv
Lớp Điêm TB
T001 TIN1 7
T002 TIN1 6
T003 TIN2 8
Mã sv
Họ và tên
T001 Nguyên Lan Anh
T002 Nguyên Văn Bình
Và bangma
Phép nối tự nhiên giữa 2 quan hệ trên sẽ có kết quả
sau : Sinhvienl
Mã sv
Họ và tên Lớp Điêm TB
T001 Nguyên Lan Anh TIN1 7
T002 Nguyên Văn Bình TIN1 6
T003 TIN2 8
Bảng 1.10. Biểu diễn phép nối tự nhiên giữa 2 quan hệ Bảng biểu
diễn phép kết nối tự nhiên giữa quan hệ Sinhvien và bangma.Phép nối tự nhiên
ngoài tạo ra bảng sinhvienl và có thêm dòng ứng với giá trị:
1
Ma sv là T003 nhưng cột: Họ và tên nhận giá trị rỗng.
1.2.8. Phép chia[6,7]:
Cho hai quan hệ r(U) và r(V) = {A
1
,A
2
, ,A
n
}, Ve u. Phép chia của quan hệ r
cho quan hệ s ký hiệu là : r -ỉ- s là một quan hệ trên u - V gồm các bộ t sao
cho tồn tại bộ ue s và ghép t với u ta được bộ thuộc r: r -7- s ={ 11 V ues,
(t,u)er}
Ví dụ : Cho quan hệ sau và tìm sinh viên có Điểm các môn học 1 và 2 > 6
điểm(một trong 2 môn không có điểm nào dưới 5điểm)
Sinhviendapung HÕterĩ
Tạ Hông Linh
1.3. Phu thuôc hàm
• •
Định nghĩa 1.1[6]
Cho lược đồ quan hệ R xác định trên tập thuộc tính u. Cho X, Y là hai
tập con của Ư. Nói rằng X xác định hàm Y hay Y phụ thuộc hàm vào X
và ký
2
Diemcanti
Họ tên Điêm MI Điêm M2 Điêm M3
Nguyên Hải Anh 4 8 9
Trân Bích Hăng 7 3 8
Tạ Hông Linh 6 7 9
ĐiêmMl Điêm M2
6 7
hiệu X -ỉ- Y nếu với mọi quan hệ r xác định trên R và với 2 bộ ti, t
2
bất kỳ mà
t
1
(X) = t
2
(X)thìt
1
(Y) = t
2
(Y).
Ví dụ :Quan hệ SINHVIEN
Bảng 1. 11. Quan hệ SINHVIEN Trong quan hệ
SINHVIEN, dựa vào định nghĩa phụ thuộc hàm của quan hệ ta có : {Tinh}
{Khuvuc}
{MaSV} — > ■ {Hoten, Diachi, Tinh, Khuvuc}
Khái niệm phụ ứiuộc hàm miêu tả một loại ràng buộc (phụ thuộc dữ liệu) xảy
ra tự nhiên nhất giữa các tập thuộc tính.
1.4. Hệ tiền đề Armstrong
Gọi F là tập xác định của các phụ thuộc hàm đối với lược đồ quan hệ R và X
- * Y là một phụ thuộc hàm. X, Y != R. Nói rằng X Y được suy diễn logic từ F
nếu mỗi quan hệ r trên R đều thỏa mãn phụ thuộc hàm của F thì cũng thỏa
mãn X -í- Y. Chẳng hạn F = {A - f - B, B -í- C} thì A c suy diễn logic từ F. Gọi
F
+
là bao đóng của F, tức là tập tất cả các phụ thuộc hàm được suy diễn logic
từ F. Neu F = F
+
ứiì F là họ đầy đủ của các phụ thuộc hàm.
Đe có thể xác định khóa của một lược đồ quan hệ và các suy diễn logic giữa
các phụ thuộc hàm cần thiết phải tính được F
+
từ F. Do đó đòi hỏi phải có các
hệ tiên đề. Tập các quy tắc của hệ tiên đề được Armstrong đưa ra ( 1974 )
thường được gọi là hệ tiên đề Armstrong.
Hệ tiên đề Armstrong^6]
Cho R = {A
b
A
2
, . . A
n
} là tập các thuộc tính, X, Y, z £ R.
Hệ tiên đề Armstrong có 3 tính chất cơ bản sau ( suy diễn theo tiên đề ):
- AI ( phản xạ ): Nếu Y £ X thì X - * Y
2
MaSV Hoten Diachi Tinh Khuvuc
T001 Nguyên Lan Anh Sông Lô Vĩnh Phúc 2
T002 Nguyên Văn Bình Sóc Sơn Hà Nội 1
T003 Trân Thị Trang Chí Linh Hải Dương 1
T004 Lưu Văn Nam Yên Lạc Vĩnh Phúc 2
- A2 ( tăng trưởng ): Neu z £ R và X ->■ Y thì xz YZ
- A3 ( bắc cầu ): Neu X -> Y và Y -> z thì X -í z
Trong đó ký hiệu xz là hợp của hai tập X và z thay cho ký hiệu X Ư z.
1.5. Bao đóng trong lược đồ quan hệ :
1.5.1. Bao đóng của tập phụ thuộchàm[6,7]:
Đ ị n h n g h ĩ a 1 . 2 : Cho tập phụ thuộc hàm F, bao đóng của tập phụ thuộc
hàm F ký hiệu F
+
: là tập lớn nhất chứa các phụ thuộc hàm được suy diễn từ các
phụ thuộc hàm F.
Vậy: F
+
= {f I F |=f}
Các tỉnh chất:
• Tính chất phản xạ: Với mọi tập phụ thuộc hàm F ta luôn có F Ç F
+
• Tính chất đơn điệu: Nếu FçG thì F
+
ç= G
+
• Tính chất lũy đẳng: Với mọi tập phụ thuộc hàm F ta luôn có F
++
= F
+
Ví dụ :
Cho F = {A -> в, с -> X, вх —» Z}. Khi đó AC —> z e F
+
?
-Vi A - > B => AX —> BX.
- Từ AX —> BX , kết hợp BX ->z, suy га AX -> z.
-Tù c ^ x 4 AC AX.
- Áp dụng tính chất bắc cầu, AC —> AX và A X - ^ Z suy ra AC ->ZEF
+
.
1.5.2. Bao đóng của tập thuộc tính [6,7]:
Đ ị n h n g h ĩ a 1 . 3 : Cho lược đồ quan hệ R xác định trên tập thuộc tính
U , X c
u. Bao đóng của tập thuộc tính X ký hiệu là x
+
: là tập tất cả các thuộc tính A
mà X—»A được suy diễn từ F. Ta có: x
+
= {A IX -» A e F
+
}
C á c t ỉ n h c h ấ t c ủ a b a o đ ó n g : á ự d L vào các tính chất của phụ thuộc
hàm ta có các tính chất của bao đóng tập thuộc tính sau :
• Tính phản xạ: X с x
+
• Tính đơn điệu: Neu X c Y thì x
+
c= Y
+
• Tính lũy đẳng: x
++
= x
+
• X
+
Y
+
c (XY)
+
2
• (X
+
Y)
+
= (Xì^)
+
= (X
+
Y
+
)
+
=(XY)
+
• X Y ^ Y
4-
d X
• X -> x
+
và X
+
-> X
•X
+
= ^^ X^Yvà Y^X Thuật toán
tìm bao đóng :
Tính liên tiếp tập các tập thuộc tính Xo,Xl,X2>— theo phương pháp sau:
Bước 1 : Xo = X
Bước 2: lần lượt xét các phụ thuộc hàm của F. Nếu Y —> z có Y £ Xi thì
X
i+
1 = Xi u z. Loại phụ thuộc hàm Y —> z khỏi F.
Bước 3: Nếu ở bước 2 không tính được x
i+1
thì Xi chính là bao đóng của X.
Ngược laị lặp lại bước 2 Ví dụ: Cho lược đồ quan hệ Q(ABCDEGH) và tập
phụ thuộc hàm F,
F={ fi:B -> A; f
2
:DA -> CE ; f
3
: D -> H; f
4
: GH —> с ;f
5
: AC —> D } Tìm
bao đóng của các tập X = {AC} dựa trên F.
Giải: - Bl: X
0
= AC
- B2: Do f
b
f
2
, f
3
, f
4
không thoả mãn. f
5
thoảmãn vì x
+
□ AC Xi =
АС u D = ACD Lặp lại bước 2:
fi không thoả, f
2
thoả YÌ Xj2 AD,
X 2 = ACD u CE = ACDE. f 3 thoả vì x
2
3 D, X3 =ACDE и H =
ACDEH. f 4 không thỏa, f5 không xét vì đã thỏa.
Lặp lại bước 2: f2,ß khôngxét vì đã thoả, fl,f4 không thoả,f5 không xét
vì đã thỏa. Trong bước này X3 không thay đổi => X
+
= X3={ACDEH} là bao
đóng của X.
Đ ị n h l ý l . 4 : Thuật toán tìm bao đóng cho kết quả Xj = x
+
Ví dụ: Cho tập thuộc tính и = {А, B, c, D, E, G, H} và tập phụ thuộc hàm
F
= {A -> D, AB -> DE, CE -> G, E -> H}
2
Tính (AB)
+
f
Bước
0: x
0
= AB
Bước 1 : Xi = X
0
U {D} vì CÓ A —> D thỏa mãn điều kiện
Bước 2: x
2
= {E} vì có AB —» DE thỏa mãn điều
kiện
Bước 3: x
3
= X
2
U {H} vì có E —> H thỏa mãn điều kiện
Bước 4: X4 = x
3
=ABDEH.
Do đó, tất cả các phụ thuộc hàm có thể xác định từ AB:
(AB —> D, AB -» E, AB —> H, AB —> AB)
Vậy (AB)
+
f = ABDEH
H ệ q u ả :
• Q là lược đồ quan hệ. F là tập phụ thuộc hàm, A là thuộc tính chỉ xuất hiện ở
vế phải của các phụ thuộc hàm trong F thì x
+
= (X - A)
+
и А
• Q là lược đồ quan hệ. F là tập phụ thuộc hàm, X là tập con của Q
+
và Y là
thuộc tính chỉ xuất hiện ở vế phải của các phụ thuộc hàm trong F thì x
+
c X
u Y.
Đánh giá độ phức tạp tính toán : Độ phức tạp thời gian của thuật toán trên là
đa thức theo kích thước của lược đồ quan hệ
1.6. Khóa của lược đồ quan hệ Định nghĩa
7.5[6]
Cho s = < Ư, F > là 1 lược đồ quan hệ, и là tập thuộc tính khác rỗng và F
là tập các phụ thuộc hàm. Cho tập con bất kỳ V K Ç U . Ta nói rằng к là
khóa của lược đồ quan hệ s khi và chỉ khi nó thỏa mãn 2 điều kiện sau:
- (K ^ U) e F
+
- Không tồn tại z <z К sao cho ( z —► и ) G F
+
Hai điều kiện trên khẳng định các thuộc tính không khóa phụ thuộc đầy đủ
vào khóa. Từ định nghĩa trên có thể suy ra rằng к là khóa của lược đồ quan
hệ khi và chỉ khi nó thỏa mãn 2 điều kiện:
- K
+
= U
2
■ ( K - A )
+
í U , VA ẽ K Các tính
chất của khóa trong lược đồ quan hệ Đ ị n h l ý
1 . 6 [ 6] ( Đặc trưng của các thuộc tính khóa)
Cho К là 1 khóa của LĐQH а = ( Ư,F ). Khi đó với mọi tập con X của к ta
có x
+
n К = X
Đ ị n h l ý 1 . 7[6]( Công thức tính giao các khóa)
Cho LĐQH а = ( и,F ) với n thuộc tính trong и và m PTH trong F. Gọi ƯI
là giao các khóa của a. Khi đó có thể xác định giao các khóa bằng 1 thuật
toán tuyến tính theo mn qua công thức:
u
x
= u \
u
( R \ L )
L->R<=F
Đ ị n h l ý 1 . 8 [ 6 ] ( Định lý về khóa duy nhất )
Cho LĐQH а = ( и,F ). Gọi Ui là giao của các khóa trong a. Khi đó a có
một khóa duy nhất khi và chỉ khi ƯI
+
= u.
Thuật toán xác định một khoá của lược đồ quan hệ :
Input: U = { U i , U
2
, . . , U
n
} Ф 0
F = { f : Aj —► Bj Aj, Bj£ Ư }
A = u Aj và B = u Bj AjC= u BjC= u A n
B ={ Uj!, u
j2
Ujk}
Output: Xác định một khoá K của lược đồ quan hệ Phương pháp: Khoá
của lược đồ quan hê R — < U,F > chỉ khác nhau trên các thuộc tính của A n
B, vì vậy chỉ cần kiểm tra và loại dần những phần tử U i Ẽ A Í Ì B sao cho
(K\u)
+
= R .
• Neu (U \ B)
+
= u =>(Ư \ B) là khoá duy nhất của lược đồ quan
hệ R = < u, F >.
• Neu (U \ B)
+
Ỷ u lược đồ quan hệ có khóa không tầm thường.
• K = (U \B ) u( A n B ).
Kiểm tra (K \ Uji)
+
.
Begin
2