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

Một phần của tài liệu Bài giảng cơ sở dữ liệu it06 Đại học mở hà nội (Trang 113 - 119)

3.1 Gii thiu

Mục tiêu của lý thuyết CSDL là tính độc lập của dữ liệu. Cấu trúc các hệ cơ sở dữ liệu phản ánh tính hiện thực, khách quan và tính toàn vẹn dữ liệu. Vì vậy trong quá trình chuẩn hóa dữ liệu và tìm kiếm thông tin, cần thiết phải thực hiện các phép tách lược

đồ quan hệ chưa chuẩn hóa về tập các lược đồ quan hệ đã được chuẩn hóa, sao cho quá trình tách không làm mất mát thông tin, theo nghĩa các quan hệ gốc được khôi phục chính xác từ phép kết nối tự nhiên của các quan hệ chiếu.

Tách – kết nối các lược đồ quan hệ có làm tổn thất thông tin hay không, có bảo toàn các phụ thuộc hay không đã được nhiều người nghiên cứu, giải quyết. A.V. Hom C. Beeri & J.D. Ullman giới thiệu thuật toán xác định phép kết nối giữa các lược đồ quan

hệ không có tổn thất thông tin với các giả thiết các phụ thuộc dữ liệu là các phụ thuộc hàm. Các ông cũng đã mở rộng vấn đề này cho các trường hợp phụ thuộc dữ liệu là phụ thuộc đa trị.

11 3.2 Phép tách

Định nghĩa: Phép tách các lược đồ quan hệ R = {A1, A2, .. An} là việc thay thế lược

đồ quan hệ R bằng tập các lược đồ con {R1, R2, .., Rk}, trong đó:

Ri ⊂ R, i = 1, …, k - Ri là các lược đồ con

và R = R1 ∪ R2 ∪ ... ∪ Rk

Không đòi hỏi các Ri phải là phân biệt.

Mục đích của phép tách: Loi b các d thường d liu

Trung tâm Đào tạo E-learning Cơ hi hc tp cho mi người      

Cơ sở dữ liệu - Bài 6 Trang 23

Ví dụ: Cho lược đồ quan hệ: S(MCTY, ĐC, MH, GIA) và tập PTH:

F = { MCTY → ĐC; MCTY, MH → GIA }

Dị thường: địa chỉ một công ty phải lưu nhiều lần vì một công ty có thể có nhiều mặt

hàng khác nhau.

Để giải quyết việc trùng lặp thông tin, lược đồ quan hệ trên có thể được tách thành 2 lược đồ khác là: S1( MCTY, ĐC) S2( MCTY, MH, GIA) như vậy sẽ không lưu

địa chỉ của một công ty nhiều lần

3.3 Tách – kết ni không mt mát thông tin

Giả sử R tách thành các lược đồ con R1, R2, .., Rk và F là một tập PTH.

Nói rằng phép tách R thành các lược đồ con R1, R2, …, Rk là tách - kết nối không

mất mát thông tin đối với F nếu với mỗi quan hệ r trên R thoả F thì r = ΠR1(r) * Π R2 (r) * ... * Π Rk(r)

Tức là r được tạo nên từ phép kết nối tự nhiên của các hình chiếu của nó trên các

Ri, i= 1 … k

Ví dụ: Lược đồ quan hệ quản lý phát hành báo chí QLBC gồm các thuộc tính: R =

{MK#, TK, DC, MB#, TB, GIA, SL} và

F = { MK# → TK; MK# → DC; MB# → TB; MB# → GIA; (MK#,MB#) → SL }. Trong đó:

MK#: Mã khách hàng TK : Tên khách hàng

DC : Địa chỉ khách hàng MB#: Mã báo, tạp chí

TB : Tên báo, tạp chí GIA: Đơn giá báo, tạp chí

SL : Số lượng báo, tạp chí khách đặt mua

MK# TK DC MB# TB GIA SL

KH1 Nguyễn Hằng Thanh Xuân MB1 Tiền phong 5000 20 KH1 Nguyễn Hằng Thanh Xuân MB2 Công an ND 6000 15 KH2 Phạm Huy Hoàng Đống Đa MB1 Tiền phong 5000 10 KH2 Phạm Huy Hoàng Đống Đa MB3 An ninh TĐ 4000 12 KH3 Trần Xuân Đức Hoàn Kiếm MB2 Công an ND 6000 7 KH3 Trần Xuân Đức Hoàn Kiếm MB1 Tiền phong 5000 15 KH3 Trần Xuân Đức Hoàn Kiếm MB3 An ninh TĐ 4000 10

Trung tâm Đào tạo E-learning Cơ hi hc tp cho mi người      

Cơ sở dữ liệu - Bài 6 Trang 24

Trong lược đồ quan hệ QLBC, các thông tin về tên khách (TK) , địa chỉ (DC), tên báo (TB) … lặp lại rất nhiều lần trong các quan hệ thể hiện, đó là nguyên nhân dẫn đến sự xuất hiện các bất thường, nhập nhằng thông tin. Phép tách φ được mô tả dưới đây, sẽ tách lược đồ QLBC thành 3 lược đồ chiếu. Lược đồ s3 = <R3, F3> chỉ cần lưu trữ thông tin về số lượng các loại báo của mỗi một khách hàng đặt mua. Lược đồ quan hệ s1 = <R1 , F1> lưu trữ thông tin về khách đặt mua báo, và tương tự trong lược đồ quan hệ s2 = <R2 , F2> lưu trữ thông tin về các loại báo. Có thể kiểm tra phép tách φ không tổn thất thông tin và bảo toàn được các phụ thuộc hàm.

Phép tách φ[R1 , R2 , R3]:

• R1 ={M#, TK,DC } , F1 ={MK# → TK, MK# → DC}.

• R2 ={MB#, TB, GIA } , F2 ={MB# → TB, MB# → GIA}.

• R3 ={M#, MB#, SL} , F3 ={(MK#,MB#) → SL}.

Ω1 = {M#, TK,DC } Ω3 = {M#, MB#, SL}

MK# TK DC MK# MB# SL

KH1 Nguyễn Hằng Thanh Xuân KH1 MB1 20

KH2 Phạm Huy Hoàng Đống Đa KH1 MB2 15

KH3 Trần Xuân Đức Hoàn Kiếm KH2 MB1 10

Ω2 = {MB#, TB, GIA } KH2 MB3 12

MB# TB GIA KH3 MB2 7

MB1 Tiền phong 5000 KH3 MB1 15

MB2 Công an ND 6000 KH3 MB3 10

MB3 An ninh TĐ 4000

Như vậy mục tiêu của phép tách lược đồ quan hệ là nhằm loại bỏ các dị thường thông tin khi thực hiện các phép lưu trữ như chèn thêm, loại bỏ hay sửa đổi thông tin trong trong các quan hệ lưu trữ. Tuy nhiên khi thực hiện phép tách, thông tin của lược đồ quan hệ có bị tổn thất hay không. Nói cách khác nếu kết nối tự nhiên các thành phần lược đồ quan hệ chiếu, liệu thông tin của lược đồ quan hệ gốc có tổn thất thông tin hay không, các phụ thuộc hàm có được bảo toàn hay không?

21 3.4 Thut toán kim tra tách không tn tht thông tin

Input:

- R = {A1, A2, .., An} – n thuộc tính với tập PTH F và

- phép tách p = (R1, R2, .., Rk) – k lược đồ con

Output: Kiểm tra phép tách có mất mát thông tin hay không ?

Trung tâm Đào tạo E-learning Cơ hi hc tp cho mi người      

Cơ sở dữ liệu - Bài 6 Trang 25

Thuật toán:

Bước 1: Tạo bảng với n+1 cột và k+1 hàng

- Cột thứ j tương ứng với thuộc tính Aj

- Hàng thứ i tương ứng với lược đồ Ri.

- Tại ô (i,j) điền kí hiệu aj nếu Aj ∈ Ri, ngược lại điền kí hiệu bij

A1 A2 An-1 An

R1 = A1…An a1 b12 … an-1 b1n

R2 … … … … …

… … … … …

Rk … … … … …

Bước 2: Lần lượt xét các PTH (X Y) ∈ F, áp dụng để thay đổi giá trị trên bảng theo nguyên tắc:

Nếu tồn tại các hàng mà tất cả các cột tương ứng với thuộc tính X có giá trị bằng nhau thì làm bằng nhau trên thuộc tính Y bằng cách điền lại giá trị tại các cột thuộc tính

Y theo nguyên tắc: nếu có một giá trị aj trong các cột tương ứng với các thuộc tính của Y thì đồng nhất các ký hiệu thành aj, nếu không thì đồng nhất thay bằng ký hiệu

bij với bij nhỏ nhất

Tiếp tục áp dụng tất cả các phụ thuộc hàm cho bảng (k c lp li các ph thuc hàm

đã áp dng) cho tới khi không làm thay đổi gì trên bảng nữa.

Bước 3: Xem xét kết quả và đánh giá

Nếu trong bảng xuất hiện một hàng gồm toàn kí hiệu a1, a2, .. , an thì phép tách-kết nối là không mất mát thông tin, ngược lại là phép tách-kết nối có mất mát thông tin.

Ví dụ: Cho quan hệ: CungCap(S#, Sname, Add, Item, Price)

Tập phụ thuộc hàm: S# → Sname,Add và Sname,Item → Price

Kiểm tra phép tách CC(S#, Sname, Add, Item, Price) thành hai sơ đồ con Cty{S#, Sname, Add} và MatHang{S#, Item, Price} có mất mát thông tin?

Các bước thực hiện:

Lập bảng gồm 3 hàng và 6 cột

S# Sname Add Item Price

S#, Sname, Add a1 a2 a3 b14 b15

Trung tâm Đào tạo E-learning Cơ hi hc tp cho mi người      

Cơ sở dữ liệu - Bài 6 Trang 26

S#, Item, Price a1 b22 b23 a4 a5

Xét PTH S# Sname, Add:

- Có cả hai hàng bằng nhau tại thuộc tính S#

- Làm bằng nhau các kí hiệu đối với thuộc tính Sname và Add

# làm b22 thành a2

# làm b23 thành a3

Ta có bảng như sau

Bảng có một hàng bao gồm các ký hiệu a. Vì vậy, phép tách không mất mát thông tin

Ví dụ: Cho quan hệ R = ABCDE, Tập phụ thuộc hàm F = {A → C, B → C, C → D,

DE → C, CE → A}

Tách thành các quan hệ: R1 = AD, R2 = AB, R3 = BE, R4 = CDE, R5 = AE

Kiểm tra phép tách trên có mất mát thông tin không?

• Lập bảng 6 hàng – 6 cột

• Xét PTH: A C

o Có các hàng 1, 2, 5 bằng nhau trên thuộc tính A

o Làm bằng nhau các ký hiệu đối với các thuộc tính C, cụ thể: b23, b53

thành b13

Trung tâm Đào tạo E-learning Cơ hi hc tp cho mi người      

Cơ sở dữ liệu - Bài 6 Trang 27

! Xét PTH: B C

o Có các hàng 2, 3 bằng nhau trên thuộc tính B

o Làm bằng nhau các ký hiệu đối với các thuộc tính C, cụ thể: b33 thành b13

! Xét PTH: C D

o Có các hàng 1, 2, 3, 5 bằng nhau trên thuộc tính C

o Làm bằng nhau các ký hiệu đối với các thuộc tính D, cụ thể: b24, b34, b54 thành a4

! Xét PTH: DE C

o Có các hàng 3, 4, 5 bằng nhau trên thuộc tính DE

Trung tâm Đào tạo E-learning Cơ hi hc tp cho mi người      

Cơ sở dữ liệu - Bài 6 Trang 28

o Có thể làm bằng nhau các ký hiệu đối với các thuộc tính C, thay b13 thành a3

! Xét PTH: CE A

o Có các hàng 3, 4, 5 bằng nhau trên thuộc tính CE

o Có thể làm bằng nhau các ký hiệu đối với các thuộc tính A, thay b31, b41 thành a1

Kết quả: Có dòng 3 chứa các ký hiệu a. Vậy phép tách – kết nối không mất mát

thông tin.

Một phần của tài liệu Bài giảng cơ sở dữ liệu it06 Đại học mở hà nội (Trang 113 - 119)

Tải bản đầy đủ (PDF)

(124 trang)