Một số dạng biểu diễn của khóa qua phép dịch chuyển lược đồ quan hệ 19 CHƯƠNG 2.. Ở mô hình này, các khái niệm cơ bản của khối được mở rộng từ các quan hệ trong mô hình quan hệ, các khối
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2 VIỆN CÔNG NGHỆ THÔNG TIN
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2 VIỆN CÔNG NGHỆ THÔNG TIN
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là khóa luận tốt nghiệp nghiên cứu độc lập của riêng tôi Các định nghĩa, trích dẫn đã có nguồn gốc rõ ràng, được công bố đúng theo quy định của pháp luật Các ví dụ, nghiên cứu trong khóa luận tốt nghiệp do tôi
tự tìm hiểu một cách trung thực, khách quan Nếu có tranh chấp gì, tôi xin được chịu hoàn toàn trách nhiệm
Sinh viên nghiên cứu
Bùi Nhƣ Ngọc
Trang 4LỜI CẢM ƠN
Trân trọng cảm ơn giảng viên hướng dẫn PGS.TS Trịnh Đình Thắng,
các thầy giáo, cô giáo giảng viên khoa Công nghệ thông tin trường Đại học Sư phạm Hà Nội 2 đã tạo điều kiện tốt nhất để tôi có thể thực hiện khóa luận tốt nghiệp
Sinh viên nghiên cứu
Bùi Nhƣ Ngọc
Trang 51.4 Bao đóng của tập phụ thuộc hàm và tập thuộc tính 13
1.7 Một số dạng biểu diễn của khóa qua phép dịch chuyển lược đồ quan hệ 19
CHƯƠNG 2 MÔ HÌNH DỮ LIỆU DẠNG KHỐI 22
2.2 Các phép toán đại số trên mô hình dữ liệu dạng khối 26
2.4 Bao đóng của tập thuộc tính chỉ số trong lược đồ khối 35
CHƯƠNG 3 KHÓA QUA PHÉP DỊCH CHUYỂN LƯỢC ĐỒ KHỐI 39
3.2 Biểu diễn khóa qua phép dịch chuyển lược đồ khối 413.3 Một số tính chất mở rộng của khóa qua phép dịch chuyển lược đồ khối 44
Trang 6DANH MỤC KÝ HIỆU VÀ CHỮ CÁI VIẾT TẤT
Trang 7Bảng 1.7 Biểu diễn quan hệ ∏ e 8 Bảng 1.8 Biểu diễn quan hệ Tienluong>6.000.000(Nhanvien) 9
Trang 8DANH MỤC CÁC HÌNH VẼ
Trang 9Để đáp ứng các nhu cầu sử dụng đa dạng, rất nhiều mô hình dữ liệu đã được ra nghiên cứu và ứng dụng Một số mô hình đang được sử dụng phổ biến trong hệ thống cơ sở dữ liệu toàn cầu như: mô hình thực thể - liên kết, mô hình mạng, mô hình phân cấp, mô hình quan hệ, Trong đó, mô hình quan hệ được đánh giá cao hơn do nó được xây dựng trên cơ sở toán học chặt chẽ Tuy nhiên
mô hình này chưa đủ đáp ứng với các ứng dụng phức tạp
Vì vậy, người ta đã nghiên cứu và ứng dụng rộng rãi mô hình dữ liệu dạng khối Ở mô hình này, các khái niệm cơ bản của khối được mở rộng từ các quan
hệ trong mô hình quan hệ, các khối có thể biểu diễn dữ liệu dưới dạng động, có khả năng giải quyết các bài toán phức tạp hơn
Trong mô hình dữ liệu quan hệ cũng như mô hình dữ liệu dạng khối, việc xác định khóa là vô cùng quan trọng Phép dịch chuyển lược đồ được đề xuất và nghiên cứu nhằm giảm tính phức tạp trong việc tìm ra khóa Để góp phần hoàn
thiện thêm về mô hình dữ liệu dạng khối, em xin chọn đề tài: Các dạng biểu diễn của khóa qua phép dịch chuyển lƣợc đồ khối
2 Mục đích nghiên cứu
Tìm hiểu khái quát về mô hình dữ liệu dạng khối, sau đó đi sâu tìm hiểu
và nghiên cứu một số dạng biểu diễn của khóa qua phép dịch chuyển lược đồ khối
Trang 102
3 Nhiệm vụ nghiên cứu
- Tìm hiểu về mô hình dữ liệu dạng khối
- Tìm hiểu về các dạng biểu diễn của khóa qua phép dịch chuyển lược đồ khối
- Phát biểu và chứng minh một số dạng biểu diễn mới của khóa qua phép dịch chuyển lược đồ khối
- Minh họa một số ví dụ
4 Đối tượng và phạm vi nghiên cứu
Đối tượng: Khóa và phép dịch chuyển lược đồ khối
Phạm vi: Mô hình dữ liệu dạng khối
5 Ý nghĩa khoa học và thực tiễn của đề tài
- Biểu diễn của khóa qua phép dịch chuyển lược đồ khối
- Bổ sung thêm một số tính chất về biểu diễn khóa qua phép dịch chuyển lược đồ khối
- Có thể sử dụng các kết quả đã có trong việc xây dựng CSDL thực tế
6 Phương pháp nghiên cứu
Phương pháp tổng hợp, phân tích các vấn đề liên quan đến đề tài
Phương pháp lý luận và chứng minh
Trang 113
CHƯƠNG 1 MÔ HÌNH DỮ LIỆU QUAN HỆ
Chương 1 trình bày một số khái niệm cơ bản nhất trong mô hình dữ liệu quan hệ, các phép toán cơ bản , định nghĩa về phụ thuộc hàm, bao đóng của tập phụ thuộc hàm, bao đóng của tập thuộc tính, các tính chất của khóa cùng với thuật toán tìm khoá Các vấn đề trình bày ở chương 1 được tham khảo trong các tài liệu [5], [6]
Đối tượng Nhân viên (NV) có các thuộc tính như: Mã nhân viên (MaNV),
Họ tên (Hoten), Ngày sinh (NS), Địa chỉ (DC)
Miền giá trị của các thuộc tính của đối tượng NV:
Trang 124
Ta có thể xem một quan hệ như một bảng, trong đó mỗi hàng (phần tử) là một bộ và mỗi cột tương ứng với một thành phần gọi là thuộc tính Biểu diễn quan hệ r như sau:
MaNV: mã nhân viên Hoten: họ tên
NS: ngày sinh DC: địa chỉ
Bộ giá trị: (NV01, Nguyễn Thị A, 20/11/88, Hà Nội) là 1 phần tử của quan
hệ Nhanvien
Định nghĩa 1.3
Tập 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ệ
Trang 13Cho hai quan hệ r và s khả hợp Hợp của r và s ký hiệu r s là một quan
hệ gồm tất cả các phần tử thuộc r hoặc thuộc s Ta có: r s = {t | t r t s}
Ví dụ 1.3
Cho hai quan hệ NV1 và NV2
NV01 Nguyễn Thị A NV02 Đỗ Văn B
NV01 Nguyễn Thị A NV03 Vũ Thị C
Bảng 1.3 Biểu diễn quan hệ NVl NV2
NV01 Nguyễn Thị A NV02 Đỗ Văn B NV03 Vũ Thị C
1.2.2 Phép giao
Cho hai quan hệ r và s khả hợp Giao của r và s ký hiệu r ∩ s là một quan
hệ gồm tất cả các bộ thuộc r và thuộc s Ta có: r ∩ s = { t | t r ∧ t s}
Trang 14Bảng 1.4 Biểu diễn quan hệ NVl ∩ NV2
NV01 Nguyễn Thị A NV02 Đỗ Văn B NV03 Vũ Thị C NV04 Phạm Văn D
NV01 Nguyễn Thị A NV03 Vũ Thị C
Bảng l.5 Biểu diễn quan hệ NVl - NV2
NV02 Đỗ Văn B NV04 Phạm Văn D
Trang 157
1.2.4 Tích Đề - các
Cho hai quan hệ r và s bất kỳ có tập thuộc tính lần lượt là U1 và U2 với
U1 ∩ U2 = Ø Tích Đề - các của r và s ký hiệu là: r x s là một quan hệ trên
U1 U2 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) | u r, v s }
Ví dụ 1.6
Cho 2 quan hệ r và s
NV01 Nguyễn Thị A Văn thư NV02 Đỗ Văn B Phó phòng
Bảng l.6 Biểu diễn quan hệ r x s
Trang 16NV01 Nguyễn Thị A Văn thư 4.500.000 NV02 Đỗ Văn B Phó phòng 6.300.000 NV03 Vũ Thị C Trưởng phòng 7.000.000 NV04 Phạm Văn D Kế toán 5.700.000
Bảng 1.7 Biểu diễn quan hệ ∏
NV01 Nguyễn Thị A 4.500.000 NV02 Đỗ Văn B 6.300.000 NV03 Vũ Thị C 7.000.000 NV04 Phạm Văn D 5.700.000
1.2.6 Phép chọn
Phép chọn là phép toán lọc lấy ra một tập con các phần tử 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, thường kí hiệu là F
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: >, <, =, >=, <=, < >
Trang 179
- Các phép toán logic trong biểu thức F: (và), v (hoặc), (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
NV01 Nguyễn Thị A Văn thư 4.500.000 NV02 Đỗ Văn B Phó phòng 6.300.000 NV03 Vũ Thị C Trưởng phòng 7.000.000 NV04 Phạm Văn D Kế toán 5.700.000
Bảng 1.8 Biểu diễn quan hệ Tienluong>6.000.000 (Nhanvien)
NV02 Đỗ Văn B Phó phòng 6.300.000 NV03 Vũ Thị C Trưởng phòng 7.000.000
1.2.7 Phép kết nối
Cho quan hệ r(U) và s(V) Đặt M=U ∩V Phép kết nối tự nhiên hai quan
hệ r(U) và s(V), ký hiệu r*s, cho ta quan hệ gồm các bộ được dán từ các bộ u của quan hệ r với mỗi bộ v của quan hệ s sao cho các trị trên miền thuộc tính chung M của hai bộ này giống nhau
r*s = {u*v│u r, v s, u.M=v.M}
Nếu M = U ∩V = Ф, r*s sẽ cho ta tích Đề - các, trong đó mỗi bộ của quan
hệ r sẽ được ghép với mọi bộ của quan hệ s
Trang 18Bảng 1.9 Biểu diễn quan hệ r*s
Trang 19Cho lược đồ quan hệ R xác định trên tập thuộc tính U; X,Y U; r là quan
hệ trên U Ta nói rằng X xác định hàm Y hay Y phụ thuộc hàm vào X và ký hiệu
X → Y nếu t1, t2 r mà t1(X) = t2(X) thì t1(Y) = t2(Y)
Ví dụ 1.11
Cho quan hệ
Trang 2012
Trong quan hệ Nhanvien, dựa vào định nghĩa phụ thuộc hàm của quan hệ,
ta có quan hệ Nhanvien thỏa mãn 2 phụ thuộc hàm sau:
Trang 2113
1.4 Bao đóng của tập phụ thuộc hàm và tập thuộc tính
1.4.1 Bao đóng của tập phụ thuộc hàm
Định nghĩa 1.5
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 trong tập F, kí hiệu F+
= {f │F╞ f }
Các tính chất của bao đóng của tập phụ thuộc hàm:
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+
Trang 221.4.3 Thuật toán tìm bao đóng của tập thuộc tính
Cho tập phụ thuộc hàm F trên tập thuộc tính U và một tập con các thuộc tính X trong U Để xác định bao đóng X+ của tập thuộc tính X ta xây dựng dãy bao nhau X(0) X(1) … X(i) như sau
Xuất phát: Đặt X(0)
= X, Với i > 0, ta đặt X(i+1)
= X(i) R Nếu X(i+1)
= X(i) thì dừng thuật toán và cho kết quả X+ = X(i)Algorithm Baodong
Format: Baodong(X,F)
Input: - Tập phụ thuộc hàm F trên U
- Tập con thuộc tính X của U
return Y;
EndBaodong
Thuật toán trên có độ phức tạp theo chiều dài dữ liệu đầu vào O(mn2
),
Trang 23Vậy từ (1) và (2) ta suy ra Y→ A ⇒ A Y+
3 Giả sử X+ =A1A2 Ak
Do A1 X+
nên X → A1 Tương tự: X → A2
X → Ak
Theo luật hợp ta có X → A1A2 Ak ⇒X → X+
4 Để chứng minh X++ = X+ ta đi chứng minh X+ X++và ngược lại
X++ X+
Theo tính chất 1 ta có X+
X++ Ta cần chứng minh X++
X+Lấy A X++, chứng minh A X+
Trang 25
Các tính chất của khóa trong lƣợc đồ quan hệ
Định lý 1.1 (Đặc trưng của các thuộc tính khóa)
Cho K là khóa của LĐQH R = (U, F) Khi đó X K ta có X+ ∩ K = X
Trang 2618
Định nghĩa 1.8
Cho hai LĐQH a = (U, F), b = (V, G) và tập thuộc tính M U, ta nói lược
đồ quan hệ b nhận được từ lược đồ quan hệ a qua phép dịch chuyển theo tập thuộc tính M, nếu sau khi loại bỏ các thuộc tính của M và các phụ thuộc hàm liên quan đến M trong lược đồ quan hệ a thì thu được lược đồ b
Nếu sau khi thực hiện phép dịch chuyển theo M đối với lược đồ quan hệ a
ta thu được lược đồ quan hệ b thì ta viết: b = a\M
Thao tác loại bỏ M được thực hiện trên lược đồ quan hệ a = (U, F) để thu được lược đồ b = (V, G) như sau:
- Tính V = U\M có độ phức tạp O(n) với n là số lượng thuộc tính trong U
- Với mỗi PTH X →Y trong F tạo ra một PTH X\M → Y\M cho G Thủ tục này được 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
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 lược bớt các PTH này
Như vậy b = a\M = (U\M, F\M) được thực hiện với độ phức tạp là O(mn)
Ví dụ 1.13
Cho LĐQH a = (U, F), U = ABCDEH, F = {AE → D, A → DH, BC → E,
E → BC}, với M = ADH, Hãy xác định b = (V, G) = a\M
Theo giả thiết, ta có: a = (U, F) ⟹ b = \M = {(U\M, F\M)
V = U\M = ABCDEH\ADH = BCE; G = F\M= {BC → E, E → BC}
Nhận thấy phép dịch chuyển lược đồ thỏa tính hợp thành, cụ thể là nếu a
là LĐQH trên tập thuộc tính U và X, Y là 2 tập con của U thì: a\(XY) = (a\X)\Y trong trường hợp X và Y là hai tập con rời nhau của U ta có:
a\XY = (a\X)\Y = (a\Y)\X
Trang 2719
Thuật toán dịch chuyển lƣợc đồ quan hệ
Thuật toán Translation dưới đây mô tả phép dịch chuyển một LĐQH với
LĐQH b = (V, G) = a\M Method:
V := U\M;
G: = ∅ ; For each FD L→R in F do
1.7 Một số dạng biểu diễn của khóa qua phép dịch chuyển lƣợc đồ quan hệ 1.7.1 Dạng biểu diễn thứ nhất của khóa
Định lý 1.3
Cho LĐQH а = (U, F), X U và LĐQH b = a\X thì:
a) Key(a) = Key(b) khi và chỉ khi X Uo
b) Key(a) = X ⊕ Key(b) khi và chỉ khi X Ui
Trang 2820
Ví dụ 1.14
Cho LĐQH а = (U, F) với U = ABCDEH
F = {AE → D, BC → E}
Ta tính được giao các khóa UI = ABCDEH\DE = ABCH
Đặt b = (V, G) với V = U\ABCH = DE,
G = F\ABCH = {E → D, ∅ → E}
Ta có b = a\ABCH và tính được Key(a) = ABCH ⊕ Key(b) = {ABCH} Với lược đồ đã cho ta tính được UK = ABCH nên:
U0 = U\UK = BCDEH\ANCH = DE
Đặt с = a\DE = (P, W) ta có P = U\DE = ABCH,
W = F\DE = {A → ∅ (loại), BC → ∅ (loại)} ≡ ∅
và do đó Key(c) = ABCH Theo định lý về dạng biểu diễn thứ nhất của khóa, vì
U0 = DE nên Key(a) = Key(c) = ABCH
1.7.2 Dạng biểu diễn thứ hai của khóa
Định lý 1.4
Cho LĐQH а = (U, F) Khi đó mọi khóa K của a đều biểu diễn được dưới dạng K = LM trong đó L là một vế trái cực tiểu của F và M là khóa của LĐQH a\L+
, ta có V = ABCDEH\EBC = ADH, F = {A → D,
A → Ø (loại), Ø → Ø (loại), H → A , A → H , D → Ø (loại)} = {A → D,
H → A, A → H} ≡ {A → DH, H → A} Dễ thấy H là một khóa của b Như vậy
EH là khóa của a, trong đó E là vế trái cực tiểu, H là khóa của b = a\E+
Trang 29
21
Kết luận chương 1
Chương này đã trình bày một số các khái niệm cơ bản trong mô hình dữ liệu quan hệ Đó là các phép toán đại số quan hệ, các khái niệm về phụ thuộc hàm, bao đóng Bên cạnh đó các thuật toán tìm bao đóng của tập thuộc tính và thuật toán tìm khóa của lược đồ quan hệ cũng được trình bày ở trong chương này
Trang 3022
CHƯƠNG 2 MÔ HÌNH DỮ LIỆU DẠNG KHỐI
Chương 2 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, 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 R cùng với các thuật toán tìm bao đóng, tìm khóa của lược đồ khối Các vấn đề trình bày ở chương 2 được tham khảo trong các tài liệu [3], [4], [7]
số id đến các miền trị của các thuộc tính Ai (i = ̅̅̅̅̅)
Nói một cách khác:
t r(R) ⇔ t = {ti : id → dom(Ai)} (i= ̅̅̅̅̅
Ta kí hiệu khối đó là r(R) hoặc r(id; A1, A2, , An), hoặc 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ụ 2.1
Công ty sản xuất và phân phối nước hoa BONSWEET có các đại lý bán hàng trên toàn miền bắc Các đại lý cùng bán các loại nước hoa của nhà sản xuất là: Spring (kí hiệu SP), Summer (kí hiệu SU), Autumn (kí hiệu AU), Winter (kí hiệu WI) Mỗi quý công ty lập biểu đồ theo dõi số lượng hàng được bán theo từng loại nước hoa tại mỗi đại lý (trên cơ sở số lượng bán hàng ra hàng ngày)
Trang 3123
Căn cứ vào các biểu đồ theo dõi của mỗi loại mặt hàng tại các đại lý này mà công ty điều chỉnh số lượng sản phẩm phân cho các đại lý phù hợp hơn Để đáp ứng yêu cầu trên công ty BONSWEET đã tiến hành xây dựng khối dữ liệu với tên gọi BANHANG, cụ thể như sau:
Hình 2.1: Biểu diễn một phần khối BANHANG(R)
Với khối BANHANG(R) ở hình 2.1, ta thấy nó gồm 3 phần tử: t1, t2, t3
Với khối BANHANG(R) trên, ta thấy
- Ở Đại lý 1 (DL1), trong tháng 1, số lượng sản phẩm Spring bán được là 40
Trang 32A1 = madl ; A2 = SP; A3 = SU; A4 = AU; A5: WI
Nếu x = 2/2018 id thì r(R2/2018) có dạng như sau:
Bảng 2.1 Biểu diễn lát cắt r(R 2/2018 )
Cho lược đồ khối R = (id, Al, A2, , An), r(R) là một khối trên R, với mỗi x
∊ id thì lát cắt r(Rx) là một quan hệ Trong trường hợp tập chỉ số id chỉ gồm một phần tử thì r(R) trở thành một quan hệ
Như vậy mỗi quan hệ r(A1, A2, , An) là một trường hợp đặc biệt của khối,
đó chính là khối r(R) = ({x}, A1, A2, , An)
Mệnh đề 2.1
Cho lược đồ khối R = (id; Al, A2, , An), r(R) là một khối trên R, với mỗi
x id thì lát cắt r(Rx) là một quan hệ Trong trường hợp tập chỉ số id chỉ gồm