1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu học tập Cơ sở dữ liệu: Phần 2 - Trường ĐH Kinh tế kỹ thuật công nghiệp

80 52 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 1,3 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nội dung của tài liệu bao gồm 4 chương, trình bày cụ thể như sau: Cơ sở dữ liệu quan hệ; Ngôn ngữ truy vấn dữ liệu; Lý thuyết thiết kế cơ sở dữ liệu; Bảo mật và toàn vẹn dữ liệu. Mời các bạn cùng tham khảo nội dung tài liệu phần 2 dưới đây.

Trang 1

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

CHƯƠNG 3

LÝ THUYẾT THIẾT KẾ CƠ SỞ DỮ LIỆU

Mục tiêu: Chương này sẽ trình bày những khái niệm cơ bản nhất về lý thuyết cơ sở dữ

liệu quan hệ do E.F Codd đề xuất, đó là các khái niệm về quan hệ, về khóa của lược đồ quan hệ Những khái niệm này có vai trò quan trọng trong việc thiết kế và cài đặt các

hệ cơ sở dữ liệu quan hệ và các hệ quản trị cơ sở dữ liệu

Nội dung của chương bao gồm các phần:

Phụ thuộc hàm Bao đóng Phủ tối thiểu Khóa của lược đồ quan hệ Phép tách – kết nối

Các dạng chuẩn của lược đồ quan hệ Các phương pháp chuẩn hóa lược đồ quan hệ

3.1 Phụ thuộc hàm

3.1.1 Định nghĩa phụ thuộc hàm

Cho một quan hệ R xác định trên tập thuộc tính U, kí hiệu là R(U) X, Y là các tập con của U, ta nói rằng X xác định Y hay Y phụ thuộc hàm vào X, kí hiệu X  Y nếu trên quan hệ R ta có mọi bộ giá trị t1, t2 bất kỳ mà giá trị của tập thuộc tính X trên

bộ t1 (kí hiệu t1[X]) bằng giá trị của tập thuộc tính X trên bộ t2 (kí hiệu là t2[X]) thì t1[Y])

= t2[Y])

Phụ thuộc hàm ký hiệu là FD Cần chú ý rằng chỉ xét các phụ thuộc hàm thỏa mãn cho mọi quan hệ trên lược đồ tương ứng của nó Không thể xem xét một phụ thuộc hàm thỏa mãn một quan hệ r đặc biệt ( ví dụ quan hệ rỗng) của lược đồ R rồi sau đó qui nạp rằng phụ thuộc hàm đó là thỏa trên R

Trang 2

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

S (S# STATUS CITY) P (P# PNAME COLOR WEIGHT CITY)

SP (S# P# QTY)

Trong quan hệ S của hàng cung ứng, mỗi một trong số các thuộc tính SNAME, STATUS, CITY đều phụ thuộc hàm vào thuộc tính S# Mỗi giá trị S# tồn tại vừa đúng một giá trị tương ứng đối với từng thuộc tính SNAME, STATUS, CITY

Khi đó có thể viết:

S# → SNAME, S# → STATUS và S# → CITY

3.1.2 Phụ thuộc hàm đầy đủ và không đầy đủ

 Phụ thuộc hàm (FD) đầy đủ: Một FD X Y là một phụ thuộc hàm đầy đủ nếu loại bỏ bất kỳ thuộc tính A nào ra khỏi X thì FD không còn đúng nữa

Trang 3

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Gọi R(U) là lược đồ quan hệ với U= {A 1 , … , A n } là tập các thuộc tính X,Y, Z,

W U Hệ tiên đề Armstrong bao gồm :

 A1(phản xạ): nếu YX thì X→Y

 A2(tăng trưởng):nếu ZU và X→Y thì XZ→YZ trong đó ký hiệu XZ là tập hợp của 2 tập X và Z thay cho ký hiệu X∪Z

 A3(bắc cầu): nếu X→Y và Y→Z thì X→Z

Ví dụ : AB→C, C→A

Cần chứng minh rằng BC→ABC Thật vậy từ :

1 C→A ( giả thiết)

2 BC→AB ( luật tăng trưởng (1) thêm B)

3 AB→C ( giả thiết)

4 AB→ABC ( tăng trưởng (3) thêm AB)

5 BC→ABC ( bắc cầu từ (2) và (4))

Định lý :

Hệ tiên đề Armstrong là đúng Có nghĩa là F là tập các phụ thuộc hàm đúng trên quan hệ r nếu X→Y là một phụ thuộc hàm được suy diễn từ F nhờ hệ tiên đề Armstrong thì X→Y là đúng trên quan hệ r

Chứng minh :

Lần lượt kiểm tra tính đúng đắn của ba tiên đề A1, A2, A3

A1 : Tiên đề A1 rõ ràng là đúng vì không thể có hai bộ bằng nhau trên X mà lại không bằng nhau trên tập con của nó

A2 : Giả sử rằng quan hệ r thỏa mãn X→Y Tồn tại hai bột, u ∈r sao cho

t[XZ] = u[ZX] mà t[YZ] ≠ u[YZ] Vì rằng t[Z] = u[Z] nên để có t[YZ] ≠ u[YZ] thì t[Y] ≠ u[Y] Nhưng vì t[X] = u[X] nên t[Y] ≠ u[Y] là trái với giả thiết X→Y Vì vậy A2 đúng

Trang 4

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

A3 : Cho X→Y và Y→Z đúng trên quan hệ r Giả sử tồn tại hai bộ t, u∈r sao cho t[Y]

= u[Y] Nhưng lại có t[Y] = u[Y] và t[Z] ≠ u[Z] là trái với giả thiết Y→Z Do vậy t[Z]

= u[Z] Suy ra X→Z đúng trên quan hệ r

Từ hệ tiên đề Armstrong suy ra một số luật sau đây :

Định lý :

a Luật hợp: nếu X→Y và X→Z thì X→YZ

b Luật tựa bắc cầu: nếu X→Y và WY→X thì XW→Z

c Luật tách: nếu X→Y và ZY thì X→Z

3.1.4.1 Bao đóng của tập các phụ thuộc hàm

Định nghĩa: Cho quan hệ R xác định trên tập thuộc tính U, F là tập các phụ thuộc hàm

Tập hợp tất cả các phụ thuộc hàm được suy diễn logic từ tập F được gọi là bao đóng của

Trang 5

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

4 AB  D (bắc cầu (2) và (3))

CM tương tự có: AC E, AB E

Vậy: F+ ={AI, ACD, BC, DE, ABD, ACE, ABE}

3.1.4.2 Bao đóng của tập các thuộc tính

Định nghĩa: Cho quan hệ R xác định trên tập các thuộc tính U, gọi F là tập các

phụ thuộc hàm trên tập U, X  U, X+ là bao đóng của X trên tập F được định nghĩa như sau:

Nếu tồn tại phụ thuộc hàm Y  Z thuộc F+ mà A  Z, Y  Xi

Do X  U mà U hữu hạn nên i hữu hạn, khi đó X+ = Xi+1

Ví dụ: Cho quan hệ R xác định trên U,

Trang 6

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

3.1.5 Phủ tối thiểu

Phủ của tập các phụ thuộc hàm :

Gọi F và G là các tập của các phụ thuộc hàm Nói rằng F, G là tương đương nếu

F+ = G+ Nếu F, G là tương đương đôi khi còn nói F phủ G (và G phủ F) Dễ dàng kiểm tra liệu F và G có tương đương với nhau hay không Phương pháp kiểm tra:

Lấy mỗi phụ thuộc hàm Y→Z thuộc F, kiểm tra xem liệu Y→Z có thuộc G+

không ? Dùng thuật toán 3.1 để tính Y+ và kiểm tra liệu Z⊆ Y+ hay không ?

Nếu tồn tại một phụ thuộc hàm Y→Z thuộc F mà không phụ thuộc G+ thì chắc chắn F+ ≠ G+ Nếu mỗi phụ thuộc hàm thuộc F cũng thuộc G+ thì mỗi phụ thuộc hàm V→W thuộc F+ cũng thuộc G+

Để kiểm tra mỗi phụ thuộc G là thuộc F+ quá trình làm hoàn toàn tương tự Do

đó F và G là tương đương khi và chỉ khi mỗi phụ thuộc hàm thuộc F là thuộc G+ và mỗi phụ thuộc hàm thuộc G thuộc F+

Định lý :

Mỗi tập các phụ thuộc hàm F đều được phủ bằng tập các phụ thuộc hàm G mà

vế phải các phụ thuộc hàm đó bao gồm không quá một thuộc tính

Gọi tập các phụ thuộc hàm F là tối thiểu nếu:

a Mỗi vế phải của một phụ thuộc hàm thuộc F chỉ có một thuộc tính

b Không tồn tại một phụ thuộc hàm X→A thuộc F mà

F+ = (F- {X→A}) +

Trang 7

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

c Không tồn tại một phụ thuộc hàm X→A thuộc F và một tập hợp con

Z của X mà F+= (F- {X→A}∪ {Z→A}) +

Thực vậy, điều kiện b đảm bảo cho tập F không có một phụ thuộc hàm nào mà

dư thừa, điều kiện C đảm bảo không có thuộc tính nao tham gia phía trái của phụ thuộc hàm là dư thừa Vế phải của phụ thuộc hàm ở điều kiện a chỉ có một thuộc tính đảm bảo chắc chắn không có một thuộc tính nào trên vế phải là dư thừa

Nếu (F- {X→Y}) + =F+ thì loại bỏ X→Y khỏi F

Chú ý rằng các phụ thuộc hàm được sắp theo một thứ tự khác nhau thì sẽ cho

ra kết quả khác nhau

Ví dụ:

Cho tập F gồm:

A→B, A→C, B→C, B→A, C→A

Có thể loại bỏ F : B→A và A→C hoặc loại bỏ B→C nhưng không thể đồng thời loại bỏ cả ba phụ thuộc hàm

Như vậy điều kiện b được thỏa Cần kiểm tra điều kiện c cho tập các phụ thuộc còn lại của F Ở đây cũng cần lưu ý tới thứ tự các thuộc tính xuất hiện bên vế trái của các phụ thuộc hàm

Loại bỏ các thuộc tính vế trái của các phụ thuộc hàm sao cho tập các thuộc tính vẫn là tương đương Quá trình tiếp tục cho đến khi không thể loại bỏ phụ thuộc hàm nào được nữa Như vậy tập các phụ thuộc hàm còn lại của F sẽ tạo nên F’ và thỏa ba điều kiện của một tập tối thiểu

Trang 8

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Tìm phủ tối thiểu

 B1: Tách các thuộc tính ở vế phải của mỗi phụ thuộc hàm thành nguyên tử (Vế

phải của mỗi phụ thuộc hàm chỉ có 1 thuộc tính)

 B2: Loại bỏ phụ thuộc hàm dư thừa

Giả sử: Xét phụ thuộc hàm XY

 Tính X+ trên tập F’ (F’ đã loại bỏ FD XY ) Nếu X+ Y thì loại XY khỏi tập F

 B3: Loại bỏ các thuộc tính dư thừa ở vế trái

Giả sử: Xét phụ thuộc hàm XYZ (Loại X hoặc loai Y?)

Xét XZ tính X+ (trên tập F) nếu Y X+  Loại Y

Xét YZ tính Y+ (trên tập F) nếu X Y+  Loại X

Vậy, tập các phụ thuộc hàm còn lại là phủ tối thiểu cần tìm

Trang 9

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

 F={X→Z, XY→W, XY →P, XY→Z, XY → Q, XZ → R}

+ Xét XY→Z vì (XY)+=XYZWPQ (Tính (XY)+ trên F-{ XY→Z})

Ta thấy Z ⊂ (XY)+ vì vậy loại XY→Z  F: = {X→Z, XY →W, XY →P, XY → Q, XZ → R}

B3 Loại bỏ các thuộc tính vế trái dư thừa: xét tất cả các phụ thuộc hàm mà

VT có từ 2 thuộc tính trở lên:

+ Xét XY→W:

X→W có X+=XZR không chứa Y nên Y ko dư thừa Y→W có Y+=Y không chứa X nên X ko dư thừa Tương tự xét: XZ → R

Có X+=XZR chứa Z nên Z dư thừa

Ta có phủ tối thiểu:

G: = {X→Z, XY →W, XY →P, XY → Q, X → R}

3.1.6 Khóa

 Thuật toán tìm tất cả các khóa

 Tìm tập thuộc tính nguồn (TN): Chứa tất cả các thuộc tính xuất hiện ở vế trái (VT) và không xuất hiện ở vế phải (VP) của các phụ thuộc hàm và những thuộc tính không xuất hiện ở VT lẫn VP của các phụ thuộc hàm

 Tập thuộc tính trung gian (TG): Chứa tất cả những thuộc tính xuất hiện ở cả VT lẫn VP của các phụ thuộc hàm

 Thuật toán:

 B1: Tạo tập TN và TG

 B2: Nếu TG =  thì lược đồ quan hệ chỉ có một khóa K = TN  Kết thúc,

Trang 10

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Ngược lại, chuyển sang B3

 B3: Tìm tất cả các tập con Xi của tập trung gian TG

 B4: Tìm tất cả các siêu khoá Si bằng cách với  Xi : Nếu (TN  Xi )+ = Tập thuộc tính của R

Thì Si = TN  Xi

 B5: Tìm khóa bằng cách loại bỏ các siêu khóa không tối thiểu

Si, Sj  S, nếu Si  Sj thì Loại Sj ra khỏi tập siêu khoá S; Si còn lại chính

Trang 11

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Ở đây không đòi hỏi các lược đồ 𝑅𝑖 phải là phân biệt Mục tiêu của phép tách chủ yếu là loại bỏ các dị thường dữ liệu

3.2.2 Phép tách-kết nối tự nhiên

Cho lược đồ quan hệ người cung cấp: S(SNAME, ADD, PRO, PRICE)

và giả sử có các phụ thuộc hàm :

SNAME → ADD SNAME → PRO, SNAME → PRICE

Lược đồ S có thể thay thế bằng hai lược đồ khác là S1(SNAME, ADD) và S2 (SNAME, PRO, PRICE)

Như vậy rõ ràng ở S1 mỗi nhà cung cấp chỉ cần một lần lưu địa chỉ tương ứng của họ chứ không phải lặp đi lặp lại như ở lược đồ S

Vấn đề đặt ra là liệu một cơ sở dữ liệu r thỏa mãn trên S, khi tách ra S1 và S2

có phù hợp không?

Hai hình chiếu r[𝑆1] và r[𝑆2] có còn phù hợp k? Hai hình chiếu r[𝑆1] và có còn giữ được cùng thông tin với r? Nói cách khác, nếu kết nối 2 hình chiếu r[𝑆1] và r[𝑆2] thành 1 quan hệ mới, ví dụ s = r[𝑆1] * r[𝑆2] liệu r # s hay r=s? để nghiên cứu các điều kiện cho kết quả phép kết nối tự nhiên nêu trên là duy nhất và bằng quan hệ ban đầu,

cần thiết phải nghiên cứu 3.2.3 Phép tách - kết nối không mất mát thông tin

3.2.3 Phép tách - kết nối không mất mát thông tin

a Kết nối không mất thông tin

Nếu R là một lược đồ quan hệ được tách thành các lược đồ con 𝑅1,𝑅2…𝑅𝑘 và D

là tập các phụ thuộc dữ liệu, nói rằng phép tách là tách - kết nối không mất mát thông tin (lossless Join decomposition) đối với D nếu mối quan hệ r trên R thỏa D:

r = Π𝑅1(𝑟) ∗ Π𝑅2(𝑟) ∗ … ∗ Π𝑅𝑘(𝑟) tức là r được tạo nên từ phép nối tự nhiên của các hình chiếu của nó trên các 𝑅𝑖,

i= 1…,k

Sau đây xem xét một số tính chất của kết nối không mất mát thông tin

Trang 12

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Tập các lược đồ 𝜌 = (R1, …., Rk) được thay thế cho lược đồ R Gọi m𝜌 là ánh

xạ xác định nhờ m𝜌(𝑟) = Π𝑅𝑖(𝑟) có nghĩa là m𝜌(𝑟) là kết nói của phép chiếu của r trên các lược đồ con trong 𝜌 Điều kiện để kết nói không mất mát thông tin đối với D được biểu diễn như sau:

Với mọi r thỏa D, r= m𝜌(𝑟)

b Kiểm tra phép kết nối không làm mất mát thông tin

Liệu một phép tách có phép kết nối không mất mát thông tin hay không đối với tập các phụ thuộc hàm được kiểm tra qua thuật toán sau đây:

Thuật toán: Kiểm tra kết nối không mất mát thông tin

Input : Lược đồ quan hệ R, tập các phụ thuộc hàm F và phép tách

Output : Kết luận phép tách có phải là không mất mát thông tin ? Phương pháp :

Thiết lập một bảng với n cột và k hàng, cột thứ j ứng với thuộc tính Aj, hàng thứ

i ứng với lược đồ Ri Tại hàng j và cột j điền ký hiêu aj nếu Aj ∈Ri, nếu không điền ký hiệu bij

Bây giờ xem xét đến các phụ thuộc hàm từ F áp dụng cho bảng vừa thiết lập được Giả sử xem xét (X→Y) ∈F Xét các hàng nếu có giá trị bằng nhau trên thuộc tính

X thì làm bằng các giá trị của chúng trên Y Chú ý khi làm bằng giá trị trên Y, nếu một trong hai giá trị là aj thì ưu tiên làm bằng ký hiệu là aj Ngoài ra làm bằng chúng bằng một trong các ký hiệu bij

Trang 13

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Tiếp tục áp dụng thuật toán cho các phụ thuộc hàm, kể cả các phụ thuộc hàm đã

áp dụng cho tới khi không còn áp dụng được nữa

Xem xét lại bảng kết quả: Nếu xuất hiện một hàng gồm các ký hiệu a1…an thì phép kết nối không làm mất thông tin Trường hợp ngược lại là kết nối mất mát thông tin (lossy join)

Ví dụ: Cho R(U) , U = {A, B, C, D}

Trang 14

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Áp dụng phụ thuộc hàm : A  C

Áp dụng phụ thuộc hàm: B C

Trang 15

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Áp dụng phụ thuộc hàm: CD

Kết luận: Dòng (hàng) thứ 3 xuất hiện toàn giá trị a (a1,a2,a3,a4) nên phép tách không

bị mất mát thông tin

Định lý

Nếu 𝜌= (R 1 , R 2 ) là một phép tách của R và F là tập hợp phụ thuộc hàm thì 𝜌 là

phép tách không mất mát thông tin đối với F khi và chỉ khi :

3.3.1.1 Dạng chuẩn thứ nhất (1NF – First Normal Form)

Một lược đồ quan hệ R được gọi là ở dạng chuẩn một nếu và chỉ nếu toàn bộ các miền có mặt trong R đều chỉ chứa các giá trị nguyên tố

Từ định nghĩa này cho ta thấy rằng bất kỳ quan hệ chuẩn hóa nào cũng ở dạng 1NF và tất nhiên điều đó đúng

Trang 16

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Ví dụ: SV (MSSV,Hoten, Ngsinh, ngoaingu)

Quan hệ SV chưa ở dạng chuẩn 1 vì có thuộc tính ngoại ngữ là đa trị

Ví dụ 1: Cho lược đồ quan hệ R(SAIP) với các phụ thuộc hàm SI→P và S→A

R là không ở dạng 3NF, thậm chí không ở dạng 2NF

Giả sử X= SI, Y= S, A là thuộc tính không khóa vì chỉ có 1 khóa là SI Vì X→Y và Y→A nhưng lại có Y→X tức là S→SI là không thỏa Chú ý rằng trong trường hợp này X→Y và Y→A không chỉ thỏa trên R mà là những phụ thuộc đã cho Điều đó là đủ để nói rằng X→Y, Y→A suy ra từ tập các phụ thuộc hàm

Như vậy A là phụ thuộc bắc cầu vào khóa chính SI

Ví dụ 2: Cho phụ lược đồ quan hệ R(CSZ) với các phụ thuộc hàm CS→Z, Z→C Trong lược đồ này mọi thuộc tính đều là thuộc tính khóa Do vậy R là ở dạng 3NF

Ví dụ 3: Cho R (A, B, C, D, E, F)

F= {AB CD, ABE, E F}

Trang 17

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

 Quan hệ R không ở dạng chuẩn 3

Vì thuộc tính F phụ thuộc bắc cầu vào khóa AB

Định nghĩa : Lược đồ quan hệ R là ở dạng chuẩn thứ ba (3NF) nếu nó là 2NF và mỗi

thuộc tính không khóa của R là không phụ thuộc hàm bắc cầu vào khóa chính

3.3.1.4 Dạng chuẩn Boye- Codd (BCNF)

Lược đồ quan hệ R với tập các phụ thuộc hàm được gọi là ở dạng chuẩn BCNF nếu X→A thỏa trên R, AX thì X là một khóa của R

Ví dụ 1: Trong ví dụ R(CSZ) nêu trên, rõ ràng R không ở BCNF mà là ở 3NF vì rằng Z→C nhưng không phải là khóa của R

Ví dụ 2: cho R (A1,A2,A3,A4,A5) Với các phụ thuộc hàm:

A1,A2→ A3,A4,A5 A4→ A2

 R vi phạm dạng chuẩn BCNF

Vì có thuộc tính khóa (A2) phụ thuộc hàm vào thuộc tính không khóa (A4)

Từ ví dụ này thấy rằng một lược đồ quan hệ có thể có 3NF nhưng không phải BCNF Do đó mỗi lược đồ quan hệ ở BCNF là 3NF Để khẳng định điều đó có định lý sau đây

Định lý : Nếu một lược đồ quan hệ R với tập phụ thuộc hàm F là ở BCNF thì nó là ở

3NF

Chứng minh:

Trang 18

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Giả sử rằng lược đồ quan hệ R là ở dạng BCNF nhưng không ở dạng 3NF Như vậy sẽ tồn tại một phụ thuộc hàm bắc cầu hoặc phụ thuộc hàm thành phần X→ Y→A trong đó X là khóa của R, A ∉X hoặc A ∉Y Và Y→X ∉ F+

Do vậy Y không phải là một khóa của R Nhưng A∉ Y, do đó Y→A là một phụ thuộc hàm cho nên vi phạm điều kiện BCNF (tức là Y phải là khóa)

3.3.2 Chuẩn hóa qua phép tách không làm mất mát thông tin

a Phép tách lược đồ quan hệ thành BCNF

Định lý :

a Giả sử R là một lược đồ quan hệ với tập phụ thuộc hàm F

Gọi 𝛒 =(R1, … , Rk) là một phép tách không mất mát thông tin của R đối với

F Gọi Fi là hình chiếu của F trên Ri, i=1…k, tức là tập của (X→Y) ∈ F + sao cho X⊆ Ri và Y⊆ Ri

Gọi 𝛅 =(S1,……,Sm) là phép tách không mất mát thông tin của Ri đối với

Fi Khi đó phép tách của R thành (R1,… , Ri-1, S1… ,Sm, Ri+1… , Rk) đối với F

là không mất mát thông tin

b Giả sử R, F và 𝝆 như ở mục (a)

Gọi t= (R1,… , Rk, Rk+1, ……, Rn) là một phép tách của R thành tập các lược

đồ bao gồm cả 𝛒 thì t cũng là phép tách không làm mất mát thông tin đối với F

Thuật toán: Tách một lược đồ quan hệ thành BCNF

Input : Lược đồ quan hệ R và tập phụ thuộc hàm F Output : Phép tách của R không làm mất mát thông tin sao cho mỗi lược đồ quan

hệ trong phép tách đều ở dạng BCNF đối với phép chiếu của F trên lược đồ đó

Phương pháp:

Trang 19

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Cấu trúc phép tạch 𝝆 trên R theo phương pháp lặp liên tiếp Tại mỗi bước phép tách 𝝆 là đảm bảo không mất mát thông tin đối với F

Bước đầu: 𝝆 chỉ bao gồm R

Các bước tiếp theo : Nếu S là một lược đồ thuôc 𝝆 , S chưa ở dạng BCNF, chọn X→A là phụ thuộc hàm thỏa trên S, trong đó X không chứa khóa của S, A∉ X Rõ ràng cần phải có một số thuộc tính khác của S vừa không phải A, vừa không thuộc X hoặc nếu không thuộc X thì phải chứa một khóa của S Thay thế S trong 𝝆 bởi S1và S2 với S1=XA, S2= S - A

Theo định lý, phép tách S thành S1 và S2 là không mất mát thông tin đối với tập phụ thuộc hàm trên S vì rằng S1 ∩ S2 = X, X→S1 –S2 = A

Theo bổ đề phần (a) được thay S bằng S1 và S2 là không mất mát thông tin Mỗi lược đồ đều có số thuộc tính ít hơn S

Quá trình tiếp tụ cho tới khi tất cả các lược đồ đều ở BCNF Chú ý rằng tại mọi thời điểm 𝝆 luôn đảm bảo không mất mát thông tin, vì rằng 𝝆 ban đầu là R, mà bước thay đổi 𝝆 đều bảo toàn tính chất đó

Giải :

Khóa của R là HS

Tách lược đồ R thành lược đồ BCNF:

Trang 20

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Xét CS→G cho R Vi phạm điều kiện BCNF vì CS không chưa khóa Do vậy, dùng thuật toán 3.3 để tách R thành R1(CSG) và R2(CTHRS) Bước tiếp theo cần tính F+ và chiếu xuống R1 và R2, sau đó kiểm tra các lược đồ đã ở BCNF hay chưa Có thể biểu diễn quá trình tách qua sơ đồ sau :

b Phép tách lược đồ quan hệ thành 3NF

Tương tự như phép tách không mất mát thông tin một lược đồ quan hệ thành BCNF, ở đây sẽ đưa ra thuật toán tách thành 3NF

Thuật toán: Tách một lược đồ thành 3NF

Input : Lược đồ quan hệ R, tập các phụ thuộc hàm F, để không làm mất tín tổng

quát, ta giả sử rằng nó là phủ tối thiểu

Output : Phép tách không làm mất mát thông tin trên R bảo toàn các phụ thuộc

hàm sao cho mỗi lược đồ con đều ở 3NF

R (CTHRSG) Khóa = HS

C→ T HR→ C TH→ R

CS→G HS→R

C→T HHS→C R→C

TH→R HS→R

CH→R HR→C C→T

CH→R, HR→C R→C

C→T

R1 (CSG) Khóa = CS CSG

R2 (CTHRS) Khóa = SH

R21 (CT) Khóa = C

R22 (CHRS) Khóa = HS

R221 (CHR) Khóa = CH, HR

R222 (CHS) Khóa = SH

Trang 21

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Chú ý : Tại mỗi bước kiểm tra lược đồ R, nếu mỗi thuộc tính không khóa không phụ

thuộc bắc cầu vào khóa chính, khi đó R sẽ ở dạng 3NF, ngược lại cần áp dụng bước (iii)

để tách tiếp

Ví dụ: Cho lược đồ quan hệ R(CTHRSG) với tập phụ thuộc hàm tối thiểu C→F, HR→C,

HT→R, CS→ G và HS→R dùng thuật toán trên cho tập lược đồ ở dạng chuẩn 3NF:

R1(CT), R2(CHR), R3(RHT), R4(CGS) và R5(HRS)

3.3.3 Chuẩn hóa nhờ phép tổng hợp

Trong phần 3.3.2 đã xem xét quá trình chuẩn hóa một lược đồ quan hệ thành 3NF nhờ phép tách không mất mát thông tin đối với các phụ thuộc hàm Trong phần này sẽ trình bày quá trình chuẩn hóa nhờ phép tổng hợp Điều khác nhau cơ bản ở phép tổng hợp so với phép tách là thông tin ban đầu gồm tập các thuộc tính (hiểu theo nghĩa người

sử dụng chỉ biết tên các thuộc tính) và tập các phụ thuộc hàm, còn trong phương pháp tách, thông tin ban đầu là một lược đồ rất cụ thể Qua phép tổng hợp (hoặc phép tách) kết quả đều cho một tập các lược đồ đều ở 3NF

Để làm rõ thuật toán, ở đây nhắc lại khái niệm phụ thuộc hàm dư thừa và phủ không dưa thừa Một FD X→Y là dư thừa trong tập phụ thuộc hàm F nếu F+ = (F-

Trang 22

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

{X→Y}) + G là phủ không dư thừa của F nếu G+ = F+ và G không chứa một FD nào dư thừa

Một thuộc tính thuộc vế trái một phụ thuộc hàm được gọi là dư thừa nếu loại bỏ

nó không làm thay đổi bao đóng của tập các phụ thuộc hàm, tức là:

Nếu X→Y∈F, A∈X, A là dư thừa nếu (X→A)→Y ∈F+

Định lý :

Gọi F là tập các phụ thuộc hàm trên R (X→Y)F Nếu (V→W)F + và X→Y được sử dụng cho một dẫn xuất nào đó của h từ F nhờ hệ tiên đề Armstrong thì

(V→X)F +

Thuật toán Tổng hợp thành các lược đồ ở 3NF

Input : Tập các thuộc tính An, tập các phụ thuộc hàm F

Output : Tập các lược đồ quan hệ ở 3NF

Phương pháp:

Tìm phủ không dư thừa H của F (tức là loại bỏ các phụ thuộc hàm dư thừa) Phân chia tập phụ thuộc hàm H thành các nhóm sao cho các phụ thuộc hàm trong một nhóm là có cùng vế trái

Mỗi cặp nhóm, ví dụ H1 và H2 có vế trái là X và Y mà tồn tại song ảnh (X↔Y)(∈

H+ (tức là X→Y và Y→X) thì hòa hai nhóm đó lại với nhau Với mỗi A∈Y (nếu X→A)∈

H thì loại bỏ nó khỏi H Tương tự cho mỗi (Y→B)∈H với B∈X

Ở mỗi nhóm đạt được cấu trúc các lược đồ quan hệ bao gồm tất cả các thuộc tính xuất hiện trong nhóm đó Mỗi tập thuộc tính xuất hiện ở vế trái của một FD trong nhóm

là một khóa của lược đồ quan hệ Các khóa tìm được gọi là khóa được tổng hợp Mỗi tập được cấu trúc như trên là một lược đồ quan hệ

Trang 23

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

{A1,…., An} sao cho K→X, X→K và X→Ai là thuộc F+ và Ai∈X

Cần chứng minh rằng R là ở 3NF, nói cách khác, giả thiết tồn tại phụ thuộc bắc cầu nêu trên là vô lý

Trước hết xem xét Ai là phụ thuộc bắc cầu vào một khóa được tổng hợp của R Gọi Z là khóa của R xuất hiện ở vế trái của một phụ thuộc hàm (Z→X)(∈ F+ vì Z là khóa của R Hơn nữa X→Z vì nếu X→Z thì X→Z và Z→K suy ra Z→K trái với giả thiết là X→K nếu trên Do vậy Z→X, X→Z và X→Ai là một phụ thuộc hàm bắc cầu

Gọi H là một phủ không dư thừa của F được tính toán qua thuật toán Cần chỉ ra rằng Z→Ai xuất hiện trong H là dư thừa Để đạt được điều đó chỉ cần đủ để chỉ ra rằng Z→X và X→Ai không thể cả hai phụ thuộc hàm được suy dẫn từ H - {Z→Ai}

Thật vậy, vì chỉ những phụ thuộc hàm được sử dụng trong quá trình tổng hợp của

R có dạng Z→Ai, cho nên Z→Xk là thỏa trong H với mọi Xk∈X Vì Ai∉ X nên (Z→Xk)∈ H- {Z(∈ Ai} Giả sử tồn tại một cách suy dẫn cho X→Ai trong H mà có dùng tới Z→Ai Theo bổ đề suy ra X→Z Nhưng như trên đã chỉ rõ X→Z Như vậy X→Ai là có thể suy dẫn được mà không cần sử dụng tới Z→Ai

Vì Z→X và X→Ai, cả hai phụ thuộc hàm đều được suy dẫn từ H- {Z- Ai} cho nên Z→Ai là dư thừa trong H

Điều đó là trái với giả thiết H là không dư thừa Có nghĩa là giả thiết có tồn tại phụ thuộc bắc cầu là không đúng

Trang 24

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Ví dụ 1: Cho quan hệ R(A,B,C,D,E,G,H) và tập phụ thuộc hàm:

F={AD,ABDE, CEG, EH}

Xi Xi U TN (Xi U TN)+ Siêu Khóa Khóa

E ABCE ABCDEGH ABCE

Trang 25

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

B3: Tách thành các lược đồ con:

R1(XZR), R2(XYWPQ) → R1(XZR), R2(XYWPQ)

R1, R2 đã ở 3NF

Trang 26

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

BÀI TẬP CHƯƠNG III

CÂU HỎI TRẮC NGHIỆM

Câu 1: Cho R(U) là sơ đồ quan hệ với U là tập thuộc tính X, Y, Z là tập con của U Tính chất tăng trưởng (augmentation) của hệ tiên đề Amstrong: với điều kiện nào dưới đây thì YZ là phụ thuộc hàm vào XZ?

a X là phụ thuộc hàm vào Y

b Y là phụ thuộc hàm vào X

c X không là phụ thuộc hàm vào Y

d Y không là phụ thuộc hàm vào X

Câu 2: Cho R(U) là sơ đồ quan hệ với U là tập thuộc tính X, Y, Z là tập con của U Tính chất: nếu Y là phụ thuộc hàm vào X, Z là phụ thuộc hàm vào Y thì Z là phụ thuộc vào X là tính chất gì trong hệ tiên đề Amstrong?

a X là con của Y

b Y là con của X

c X không là con của Y

d Y không là con của X

Trang 27

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Câu 4: Một quan hệ có chứa một miền giá trị của một thuộc tính nào đó là không nguyên tố được gọi là

a Quan hệ chuẩn hóa

b Quan hệ không chuẩn

c Quan hệ chuẩn hóa loại 1

d Quan hệ chuẩn hóa loại 2

Câu 5: Cho R(U) là sơ đồ quan hệ với U là tập thuộc tính X, Y, Z là tập con của U Luật hợp: Nếu Y là phụ thuộc hàm vào X, Z là phụ thuộc hàm vào X thì :

Trang 28

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Câu 8: Phát biểu nào đúng với khái niệm Phụ thuộc hàm?

a Cho R(U) X, Y là các tập con của U, ta nói rằng X  Y nếu trên quan hệ R

Câu 9: Chọn phát biểu đúng để tìm tập nguồn (TN)?

a Tập TN chứa tất cả các thuộc tính xuất hiện ở vế trái (VT) và không xuất hiện ở vế phải (VP) của các phụ thuộc hàm

b Tập TN chứa tất cả các thuộc tính xuất hiện ở vế trái (VT) và vế phải (VP) của các phụ thuộc hàm

c Tập TN chứa tất cả các thuộc tính không xuất hiện ở VT lẫn VP của các phụ thuộc hàm

d Cả đáp án a và c

Câu 10: Chọn phát biểu đúng để tìm tập trung gian (TG)?

a Tập TG chứa tất cả những thuộc tính xuất hiện ở cả VT lẫn VP của các phụ thuộc hàm

b Tập TG chứa tất cả những thuộc tính không xuất hiện ở cả VT lẫn VP của các phụ thuộc hàm

c Tập TG chứa tất cả những thuộc tính xuất hiện ở VT của các phụ thuộc hàm

d Tập TG chứa tất cả những thuộc tính xuất hiện ở VP của các phụ thuộc hàm

Trang 29

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Câu 13: Hệ tiên Amstrong có các hệ quả là:

a Luật hợp, luật bắc cầu, luật tách

b Luật hợp, luật tựa bắc cầu, luật tăng trưởng

c Luật hợp, luật tựa bắc cầu, luật tách

d Luật phản xạ, luật tựa bắc cầu, luật tách

Câu 14: Khẳng định nào là phụ thuộc hàm:

a Họ và tên → Thành phố

b Họ và tên → Địa chỉ

c Họ và tên → Số chứng nhân dân

d Số chứng nhân dân → Họ và tên

Câu 15: Trong thuật toán tìm tất cả các khóa của lược đồ quan hệ R(U)

Sau khi tạo tập TN và tập TG Nếu TG = ϴ Thì:

a Lược đồ quan hệ chỉ có một khóa K = TG

Trang 30

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

b Lược đồ quan hệ chỉ có một khóa K = TN

c Lược đồ quan hệ chỉ có một khóa K = ϴ

d Lược đồ quan hệ chỉ có một khóa K = U

Câu 16: Chọn phát biểu đúng cho khái niệm dạng chuẩn 1(1NF)?

a Một quan hệ được gọi là ở dạng chuẩn 1 (1NF) nếu giá trị của mỗi thuộc tính trong một bộ giá trị là một giá trị nguyên tử (đơn, không phân chia được) lấy từ miền giá trị của thuộc tính đó

b Một quan hệ được gọi là ở dạng chuẩn 1(1NF) nếu tồn tại thuộc tính phụ thuộc một phần vào khóa

c Một quan hệ được gọi là ở dạng chuẩn 1 (1NF) nếu giá trị của mỗi thuộc tính trong một bộ giá trị có thể phân chia ra được

d Một quan hệ được gọi là ở dạng chuẩn 1(1NF) nếu tồn tại thuộc tính phụ thuộc bắc cầu vào khóa

Câu 17: Chọn phát biểu đúng cho khái niệm dạng chuẩn 2(2NF)?

a Một quan hệ được gọi là ở dạng chuẩn 2(2NF) nếu nó ở dạng chuẩn 1 và không tồn tại thuộc tính phụ thuộc bắc cầu vào khóa

b Một quan hệ được gọi là ở dạng chuẩn 2(2NF) nếu nó ở dạng chuẩn 1 và không tồn tại thuộc tính phụ thuộc một phần vào khóa

c Một quan hệ được gọi là ở dạng chuẩn 2 (2NF) nếu giá trị của mỗi thuộc tính trong một bộ giá trị là một giá trị nguyên tử (đơn, không phân chia được) lấy từ miền giá trị của thuộc tính đó

d Một quan hệ được gọi là ở dạng chuẩn 2(2NF) nếu nó ở dạng chuẩn 1 và không tồn tại thuộc tính khóa phụ thuộc hàm vào thuộc tính không phải là khóa

Trang 31

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Câu 18: Chọn phát biểu đúng cho khái niệm dạng chuẩn 3(3NF)?

a Một quan hệ được gọi là ở dạng chuẩn 3(3NF) nếu nó ở dạng chuẩn 2 và không tồn tại thuộc tính khóa phụ thuộc hàm vào thuộc tính không phải là khóa

b Một quan hệ được gọi là ở dạng chuẩn 3 (3NF) nếu giá trị của mỗi thuộc tính trong một bộ giá trị là một giá trị nguyên tử (đơn, không phân chia được) lấy từ miền giá trị của thuộc tính đó

c Một quan hệ được gọi là ở dạng chuẩn 3(3NF) nếu nó ở dạng chuẩn 2 và không tồn tại thuộc tính phụ thuộc bắc cầu vào khóa

d Một quan hệ được gọi là ở dạng chuẩn 3(3NF) nếu nó ở dạng chuẩn 2 và không tồn tại thuộc tính khóa phụ thuộc hàm vào thuộc tính không phải là khóa

Câu 19: Chọn phát biểu đúng cho khái niệm dạng chuẩn Boyce – Codd (BCNF)?

a Một quan hệ được gọi là ở dạng chuẩn BCNF nếu nó ở dạng chuẩn 3 và không tồn tại thuộc tính khóa phụ thuộc hàm vào thuộc tính không phải là khóa

b Một quan hệ được gọi là ở dạng chuẩn BCNF nếu giá trị của mỗi thuộc tính trong một bộ giá trị là một giá trị nguyên tử (đơn, không phân chia được) lấy

từ miền giá trị của thuộc tính đó

c Một quan hệ được gọi là ở dạng chuẩn BCNF nếu nó ở dạng chuẩn 3 và không tồn tại thuộc tính phụ thuộc bắc cầu vào khóa

d Một quan hệ được gọi là ở dạng chuẩn BCNF nếu nó ở dạng chuẩn 3 và không tồn tại thuộc tính khóa phụ thuộc hàm vào thuộc tính không phải là khóa

Câu 20: Phát biểu nào sau đây đúng với Phụ thuộc hàm đầy đủ?

a Một phụ thuộc hàm X Y là một phụ thuộc hàm đầy đủ nếu loại bỏ bất kỳ thuộc tính A nào ra khỏi X thì phụ thuộc hàm luôn đúng

Trang 32

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

b Một phụ thuộc hàm X Y là một phụ thuộc hàm đầy đủ nếu loại bỏ bất kỳ thuộc tính A nào ra khỏi X thì phụ thuộc hàm không còn đúng nữa

c Một phụ thuộc hàm X Y là một phụ thuộc hàm đầy đủ nếu thêm bất kỳ thuộc tính A nào ra khỏi X thì phụ thuộc hàm luôn đúng

d Một phụ thuộc hàm X Y là một phụ thuộc hàm đầy đủ nếu thêm bất kỳ thuộc tính A nào ra khỏi X thì phụ thuộc hàm không còn đúng nữa

Câu 21: Phát biểu nào sau đây đúng với Phụ thuộc hàm bộ phận?

a Một phụ thuộc hàm X Y là phụ thuộc hàm bộ phận nếu có thể bỏ đi 1 thuộc tính A  X ra khỏi X mà phụ thuộc hàm vẫn còn đúng

b Một phụ thuộc hàm X Y là một phụ thuộc hàm đầy đủ nếu loại bỏ bất

kỳ thuộc tính A nào ra khỏi X thì phụ thuộc hàm không còn đúng nữa

c Một phụ thuộc hàm X Y là một phụ thuộc hàm đầy đủ nếu thêm bất

kỳ thuộc tính A nào ra khỏi X thì phụ thuộc hàm luôn đúng

d Một phụ thuộc hàm X Y là một phụ thuộc hàm đầy đủ nếu thêm bất

kỳ thuộc tính A nào ra khỏi X thì phụ thuộc hàm không còn đúng nữa Câu 22: Tìm phủ tối thiểu (Phủ không dư thừa) có mấy bước?

Trang 33

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Câu 24: Cho R (A, B, C, D, E, F); Khóa là AB Tập phụ thuộc hàm F= {AB CD, ABE, E F}

Quan hệ trên ở dạng chuẩn nào?

Trang 34

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Cho R(U), U={H, I, K, L, M, N},

F={I→LM, HI→K, K→N, KN→I}

Tìm tất cả các khóa của R?

Bài 5

Cho R(U), U={ A, B, C, D, E, F}

F={A→B, BC→D, CE→D, AE→F, CD→A}

Tìm tất cả các khóa của R?

Bài 6 Cho R(U), U={A, B, C, D , E, G}

F= {D →G, C→A, CD→E, A→B}

Tìm phủ tối thiểu?

Bài 7 Cho R(U), U={B, O, I, S, Q}

F={ B→I, O→ I, I→S, SQ→I, IQ→B}

Tìm phủ tối thiểu?

Bài 8 Cho R(U), U = {A, B, C, D, E, F}

F = { A B, BC D, CE D, AE F, CD A}

Tìm phủ tối thiểu?

Trang 35

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Cho R(U), U={H, I, K, L, M, N},

F={I→LM, HI→K, K→N, KN→I}

Chuẩn hóa quan hệ về 3NF?

Bài 11

Cho R(U), U={ A, B, C, D, E, F}

F={A→B, BC→D, CE→D, AE→F, CD→A}

Chuẩn hóa quan hệ về 3NF?

Bài 12 Cho R(U), U={A, B, C, D , E, G}

F= {D →G, C→A, CD→E, A→B}

Phép tách  ={GD, AC, CDE, AB} Kiểm tra phép tách có bị mất mát thông tin hay không?

Bài 13 Cho R(U), U={C, T, H, R, S, G}

F= {C→T, HT→R, HS→R, CS→G, HR→C}

Phép tách  =(CSG, CT, CHR, CHS) Kiểm tra phép tách có bị mất mát thông tin hay không?

Bài 14 Cho R(U), U={A, B, I, H, K}, F={ B→I, A→ I, I→H, HK→I, IK→B}

Phép tách  = {BI, IH, AK, AI, BK} Kiểm tra phép tách có làm mất mát thông tin hay không?

Trang 36

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

CHƯƠNG IV TỐI ƯU HÓA CÂU HỎI TRUY VẤN

Mục tiêu: Tối ưu hóa câu hỏi là quá trình lựa chọn phương pháp sao cho khi thực hiện

các câu hỏi truy vấn có hiệu quả nhất, có thể đánh giá được các khả năng xử lý câu hỏi

từ nhiều chiến lược khác nhau, đặc biệt là cho những câu hỏi phức tạp Một phương pháp khi thực hiện có chi phí thấp, tức là tối ưu về thời gian truy xuất thông tin và tối

ưu về không gian lưu trữ mà vẫn bảo đảm được tính độc lập và toàn vẹn dữ liệu

Nội dung của chương gồm các phần sau:

Khái quát về tối ưu hóa câu hỏi Nguyên tắc tối ưu hóa

Kỹ thuật tối ưu hoá các biểu thức đại số quan hệ Một số nhận xét khi tối ưu hóa câu hỏi

Tối ưu hóa câu hỏi bằng khung nhìn

4.1 Mở đầu

Ngôn ngữ con dữ liệu là một tập các phép toán có cấu trúc quan hệ được dùng để thao tác trên các dữ liệu dưới dạng quan hệ Kết quả của các phép toán được biểu diễn duy nhất bằng một quan hệ Các thuộc tính và các bộ của nó được rút ra từ một hay nhiều quan hệ cho trước, vì vậy trước khi thực hiện các câu hỏi cần thiết phải biến đổi hợp lý sao cho chi phí thời gian thực hiện các phép toán là ít nhất Quá trình biến đổi này được gọi là quá trình tối ưu hoá các câu hỏi truy vấn dữ liệu

Tối ưu hoá câu hỏi rất có ý nghĩa khi tìm kiếm và truy xuất dữ liệu tại các thiết bị đầu cuối Nâng cao hiệu suất các phiên làm việc của người sử dụng Không những tối

ưu về thời gian truy xuất thông tin mà là nhân tố quan trọng trong việc bảo đảm tính độc lập của dữ liệu với các chiến lược tìm kiếm, truy xuất dữ liệu Có nhiều kỹ thuật khác

Trang 37

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

nhau để tối ưu hoá các câu hỏi, trong đó có kỹ thuật phân rã câu hỏi dựa trên ngôn ngữ của đại số quan hệ

4.2 Tổng quan về tối ưu hóa câu hỏi

Xét cơ sở dữ liệu quản lý mạng cáp gồm các quan hệ sau:

a Thông tin về các tuyến cáp: TUYEN (T#, TC, DAI)

b Thông tin về các loại cáp: CAP (M#, MC, GIA, NSX)

c Thông tin về các loại cáp đã được lắp đặt: L_DAT (T#, M#, SL, NG)

Trong đó:

T# ký hiệu mã tuyến TC Tên gọi tuyến cáp, DAI Độ dài tuyến cáp M# Mã cáp

MC Tên gọi cáp GIA Đơn giá

NSX Nước sản xuất SL Số lượng cáp lắp đặt

NG Ngày lắp đặt cáp

Để có được cách nhin tổng quát của việc tối ưu hoá câu hỏi, xét ví dụ sau:

liệt kê tên tất cả các tuyến cáp có lắp đặt cáp Việt nam

Biểu thức đại số quan hệ và cây đại số quan hệ được biểu diễn như sau :

1 TTC ( σ MC# =’Việt nam’ (TUYEN X L_DAT) X CAP))

Cây đại số quan hệ chưa tối ưu hoá

Trang 38

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Biểu thức trên mô tả quá trình thực hiện câu hỏi như sau: Trước hết, biểu thức tạo ra quan hệ TUYEN X L_DAT X CAP trung gian, bằng cách kết nối tự nhiên hoặc thực hiện tích Đề các các quan hệ TUYEN, L_DAT và CAP với một số lượng bản ghi bằng tích số lượng các bản ghi và các thuộc tính bao gồm các thuộc tính của 3 quan hệ trên Như vậy sau bước này, quan hệ tạm có lực lượng khá lớn và chiều dài của một bản ghi cũng không phải là nhỏ, nếu kích cỡ các quan hệ nguồn lớn Tuy nhiên kết quả câu hỏi chỉ quan tâm đến thuộc tính tên tuyến cáp TTC và các bộ dữ liệu có tên loại cáp trùng với “Việt nam”

Như vậy sau khi tính tích Đề các, hệ thống sẽ thực hiện các phép chọn và phép chiếu để đưa ra quan hệ kết quả Trong cách biểu diễn này, số lượng các phép toán thực hiện tương đối lớn, chi phí thời gian quá cao và chi phí lưu trữ tốn kém

Chú ý rằng, câu hỏi chỉ quan tâm đến các bộ dữ liệu cáp “Việt nam” Thông tin này được chứa trong các quan hệ L_DAT, và CAP (trong nhật ký lắp đặt là mã các loại cáp Việt nam và trong danh mục là chuỗi “Việt nam”)

Như vậy có thể thực hiện các phép chọn trong các quan hệ L_DAT và CAP Kết quả trung gian các phép chọn sẽ làm giảm đáng kể số lượng các bản ghi, kích cỡ của quan hệ của phép kết nôi tự nhiên của 2 thành phần trung gian trên với quan hệ TUYEN Càng dễ dàng khi thực hiện phép chiếu trên thuộc tính tên tuyến cáp TTC Có thể biến đổi biểu thức đại số ban đầu tối ưu hơn, bằng cách thực hiện các phép chiếu và chọn, tiếp sau mới thực hiện phép kết nối Kết quả biến đổi như sau:

TTC (σ MC# =’Việt nam’ (L_DAT) X (σ MC# =’Việt nam’( CAP ) X TUYEN))

Biểu thức này tương đương như biểu thức đại số ban đầu, nhưng nó tạo ra các quan hệ trung gian có kích cỡ nhỏ hơn nhiều so với kích cỡ của TUYEN X L_DAT X CAP

Trang 39

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

Cây đại số được tối ưu hóa

Như vậy, biến đổi một biểu thức đại số quan hệ về một biểu thức đại số quan hệ tương đương tối ưu theo nghĩa sẽ cho cùng một kết quả nhưng với chi phí thời gian thực hiện và sử dụng bộ nhớ ít hơn rất nhiều

4.3 Nguyên tắc tối ưu hoá

 Ưu tiên thực hiện các phép chiếu và chọn, nhằm giới hạn khối lượng dữ liệu trung gian Giảm chi phí truy nhập bộ nhớ

 Trước khi phải thực hiện phép tích Đề các, hãy tìm chiến lược truy nhập tốt nhất vào CSDL Ví dụ như sử dụng các phép sắp xếp, hoặc chọn chỉ số trên thành phần tham gia vào tích Đề các

 Thực hiện các phép kết nối cân bằng chi phí sẽ rẻ hơn nhiều so với chi phí thực hiện phép tích Đề các

 Nhóm các phép toán chọn và chiếu liên tiếp thành một phép toán duy nhất

 Nhóm các phép tích và chiếu liên tiép thành một phép toán duy nhất Trong khi thi thực hiện phép tích có thể giới hạn chi phí thực hiện bằng phép chiếu

Trang 40

KHOA CNTT – TRƯỜNG ĐẠI HỌC KINH TẾ KỸ THUẬT CÔNG NGHIỆP

 Tìm biểu thức chung trong một biểu thức Nếu kết quả là một quan hệ không lớn lắm nhưng tần xuất xuất hiện nhiều lần, nên có biểu thức con chung

 Đánh giá sơ bộ trước khi thực hiện câu hỏi Số phép toán thực hiện, tổng chi phí thực hiện: thời gian, bộ nhớ

Ví dụ: Tên các loại cáp sử dụng trên tuyến “T03”

a) Ngôn ngữ đại số quan hệ Cách 1:

Cách 2:

b) Biểu diễn bằng ngôn ngữ SQL:

CREATE VIEW KQ

AS SELECT R M# , R MC FROM CAP R, L_DAT S WHERE S.T# = “T03” and R.M# = S.M#

//Kiểm tra kết quả

SELECT * FROM KQ

Ngày đăng: 28/02/2022, 09:52

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. Nguyễn Tuệ, Giáo trình Nhập môn CSDL, NXBGD, 2009 Sách, tạp chí
Tiêu đề: Giáo trình Nhập môn CSDL
Nhà XB: NXBGD
2. Phạm Thế Quế, Cơ sở dữ liệu, Tài liệu đào tạo Đại học từ xa, Học viện Công nghệ Bưu chính Viễn thông, 2006 Sách, tạp chí
Tiêu đề: Cơ sở dữ liệu
3. Đỗ Trung Tuấn, Cơ sở dữ liệu, NXB ĐHQGHN, 2006 Sách, tạp chí
Tiêu đề: Cơ sở dữ liệu
Nhà XB: NXB ĐHQGHN
4. Nguyễn Thị Ngọc Mai, Cơ sở dữ liệu, NXB Lao động - Xã hội, 12-2007 Sách, tạp chí
Tiêu đề: Cơ sở dữ liệu
Nhà XB: NXB Lao động - Xã hội
5. Đỗ Trung Tuấn, Nhập môn Cơ sở dữ liệu, Học viện Công nghệ Bưu chính Viễn thông, 2006 Sách, tạp chí
Tiêu đề: Nhập môn Cơ sở dữ liệu

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm