1. Trang chủ
  2. » Tất cả

Bài giảng hệ cơ sở dữ liệu chương 5 2 ts lê thị tú kiên

20 0 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

Tiêu đề Thiết kế cơ sở dữ liệu quan hệ ở mức khái niệm
Tác giả TS. Nguyễn Thị Kim Ngân
Trường học Đại Học Bách Khoa Hà Nội
Chuyên ngành Hệ Cơ Sở Dữ Liệu
Thể loại Bài giảng
Thành phố Hà Nội
Định dạng
Số trang 20
Dung lượng 395,38 KB

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

Nội dung

CHƢƠN V THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ Ở MỨC KHÁI NIỆM TS Nguyễn Thị Kim Ngân Nội dung  Dư thừa và dị thường dữ liệu  Phụ thuộc hàm  Hệ tiên đề Armstrong  Bao đóng của tập thuộc tính  Phủ của một[.]

Trang 1

CHƯƠN V THIẾT KẾ CƠ SỞ DỮ LIỆU QUAN HỆ

Ở MỨC KHÁI NIỆM

TS Nguyễn Thị Kim Ngân

Trang 2

Nội dung

 Dư thừa và dị thường dữ liệu

 Phụ thuộc hàm

 Hệ tiên đề Armstrong

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

 Phủ của một tập PTH

 Xác định khóa của lược đồ quan hệ

 Chuẩn hóa lược đồ quan hệ

 Các phép tách lược đồ quan hệ

 Chuyển đổi mô hình thực thể liên kết sang mô hình quan hệ

Trang 3

Các phép tách lược đồ quan hệ

Định nghĩa phép tách lược đồ quan hệ

 Phép tách kết nối không tổn thất về BCNF

 Phép tách bảo toàn phụ thuộc về 3NF

Trang 4

Các phép tách lược đồ quan hệ

Định nghĩa phép tách lược đồ quan hệ

 Phép tách kết nối không tổn thất về chuẩn BCNF

 Phép tách bảo toàn phụ thuộc về chuẩn 3NF

Trang 5

Định nghĩa phép tách lược đồ quan hệ

Cho lược đồ quan hệ R=<U, F>

U1, U2, …, Uk là các tập con của U sao cho U1  U2 …  Uk=U

Fi= Ui(F)={{XY| XY F+, XYUi}, i=1, ,k

Phép tách lược đồ R là việc thay thế R=<U, F> bằng các lược đồ con R1 =<U1 , F1>, R2 =<U2 , F2>, …, Rk=<Uk, Fk>

Kí hiệu phép tách: =(R1, R2, …, Rk) hoặc =(U1, U2, …, Uk)

Trang 6

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

Cho lược đồ quan hệ R=<U, F>

r là một quan hệ bất kỳ trên R thỏa mãn F

U1, U2, …, Uk là các tập con của U sao cho U=U1  U2 …  Uk

Fi= Ui(F)={XY| XY F+, XYUi}, i=1, ,k

Ri=<Ui,Fi>, i=1, ,k

ri=Ui(r), i=1, ,k

Phép tách R thành {R1, R2, …, Rk} được gọi là tách kết nối không

tổn thất (Lossless Join Decomposition) đối với tập phụ thuộc hàm

F nếu r=r1 * r2 *…* rk

Trang 7

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

Bổ đề

Cho, R=<U,F> là một lược đồ quan hệ,

r là một quan hệ trên R thỏa F

U1, U2, …, Uk là các tập con của U sao cho U=U1  U2  …  Uk

Fi= Ui(F)={X  Y| X  Y  F + , X  Y  Ui},  i=1, ,k

Ri=<Ui,Fi>,  i=1, ,k

 =(R1, R2, …, Rk) là một phép tách của R

ri= Ui(r),  i=1, ,k

m(r)=r1 * r2 *…* rk

Khi đó i) r  m(r)

ii) Nếu s=m(r) thì Ui(s)=ri,  i=1, ,k

iii) m(m(r))=m(r)

Trang 8

Kiểm tra tính kết nối không tổn thất của một phép tách

Bài toán

Cho lược đồ R <U, F>, trong đó, U={A1, A2, …, An} là tập các thuộc

tính, F là tập các phụ thuộc hàm,

U1, U2, …, Uk là các tập con của U sao cho U1  U2 …  Uk=U Kiểm tra phép tách =(U1, U2, …, Uk) có phải là phép tách kết nối

không tổn thất hay không?

Trang 9

Kiểm tra tính kết nối không tổn thất của một phép tách

Thuật toán

Vào: U={A1, A2, …, An}, F,  =(U1, U2, …, Uk)

Ra: Kết luận  có phải là phép tách kết nối không tổn thất hay không?

Phương pháp:

Bước 1: Lập bảng kxn,

Tại dòng i, cột j ta kí hiệu là aj nếu Aj Ui, ngược lại, ta kí hiệu là bij

Bước 2: Với mỗi X Y  F, xét các dòng có kí hiệu bằng nhau trên tập X Các dòng này sẽ được thay đổi kí hiệu để chúng mang giá trị bằng nhau trên tập Y, theo quy tắc:

- Nếu tồn tại một kí hiệu có dạng aj thì các kí hiệu còn lại được đổi thành aj

- Nếu không có giá trị nào có dạng aj thì lấy tùy ý một ký hiệu bij để làm bằng

Bước 2 được lặp lại cho đến khi không có thay đổi nào trên bảng nữa

Nếu tại bước kết thúc, bảng có một dòng gồm toàn ký hiệu dạng aj thì  là phép tách kết nối không tổn thất, ngược lại  là phép tách kết nối tổn thất

Trang 10

Kiểm tra tính kết nối không tổn thất của một phép tách

Ví dụ

Cho R=<U, F>, trong đó U={S, A, I, P} và F={SA, SI  P}

Kiểm tra =(SA, SIP) có là phép tách không tổn thất hay không? Bảng khởi tạo

S A I P

Trang 11

Kiểm tra tính kết nối không tổn thất của một phép tách

Ví dụ 1:

Cho U={S, A, I, P} và F={SA, SI  P}

Kiểm tra =(SA, SIP) có là phép tách không tổn thất hay không?

Xét SA

S A I P

S A I P

Trang 12

Kiểm tra tính kết nối không tổn thất của

một phép tách

Ví dụ 1:

Cho U={S, A, I, P} và F={SA, SI  P}

Kiểm tra =(SA, SIP) có là phép tách không tổn thất hay không?

Xét SI  P

S A I P

S A I P

S A I P

Trang 13

Kiểm tra tính kết nối không tổn thất của

một phép tách

Ví dụ 1:

Cho U={S, A, I, P} và F={SA, SI  P}

Kiểm tra =(SA, SIP) có là phép tách không tổn thất hay không?

Xét SI  P

=(SA, SIP) là phép tách kết nối không tổn thất

S A I P

S A I P

S A I P

Trang 14

Kiểm tra tính kết nối không tổn thất của một phép tách

Định lý

Giả sử =(U1, U2) là một phép tách của lược đồ quan hệ R=<U,F> Khi đó,  là phép tách kết nối không tổn thất

F U

U U

U

F U

U U

U

1 2

2 1

2 1

2 1

\

\

Trang 15

Kiểm tra tính kết nối không tổn thất của một phép tách

Chứng minh định lý

Giả sử U={A1, A2, …, Ai-1, Ai …, Aj, Aj+1…, An}

U1={A1, A2, …, Ai-1, Ai …, Aj}

U2={Ai , …, Aj,Aj+1 …, An}

Bảng khởi tạo

A 1 A 2 … A i-1 A i … A j A j+1 … A n

U1 a1 a2 … ai-1 ai … aj b1j+1 … b1n

U2 b21 b22 … bi-1 ai … aj aj+1 … an

Trang 16

Kiểm tra tính kết nối không tổn thất của một phép tách

Chứng minh định lý

Giả sử U={A1, A2, …, Ai-1, Ai …, Aj, Aj+1…, An}

U1={A1, A2, …, Ai-1, Ai …, Aj}

U2={Ai , …, Aj,Aj+1 …, An}

Nếu U1U2 U1\U2 F+ => Ai, Ai+1 …, Aj A1, A2, …, Ai-1 F+

A 1 A 2 … A i-1 A i … A j A j+1 … A n

U1 a1 a2 … ai-1 ai … aj b1j+1 … b1n

U2 b21 b22 … bi-1 ai … aj aj+1 … an

A 1 A 2 … A i-1 A i … A j A j+1 … A n

U1 a1 a2 … ai-1 ai … aj b1j+1 … b1n

U2 a1 a2 … ai-1 ai … aj aj+1 … an

Trang 17

Kiểm tra tính kết nối không tổn thất của một phép tách

Chứng minh định lý

Giả sử U={A1, A2, …, Ai-1, Ai …, Aj, Aj+1…, An}

U1={A1, A2, …, Ai-1, Ai …, Aj}

U2={Ai , …, Aj,Aj+1 …, An}

Nếu U1U2 U1\U2 F+ => Ai, Ai+1 …, Aj A1, A2, …, Ai-1 F+

=(U1, U2) là phép tách kết nối không tổn thất

A 1 A 2 … A i-1 A i … A j A j+1 … A n

U1 a1 a2 … ai-1 ai … aj b1j+1 … b1n

U2 b21 b22 … bi-1 ai … aj aj+1 … an

A 1 A 2 … A i-1 A i … A j A j+1 … A n

U1 a1 a2 … ai-1 ai … aj b1j+1 … b1n

U2 a1 a2 … ai-1 ai … aj aj+1 … an

Trang 18

Kiểm tra tính kết nối không tổn thất của một phép tách

Chứng minh định lý

Giả sử U={A1, A2, …, Ai-1, Ai …, Aj, Aj+1…, An}

U1={A1, A2, …, Ai-1, Ai …, Aj}

U2={Ai , …, Aj,Aj+1 …, An}

Nếu U1U2 U2\U1 F+ => Ai, Ai+1 …, Aj Aj+1,…, Ai-1 F+

A 1 A 2 … A i-1 A i … A j A j+1 … A n

U1 a1 a2 … ai-1 ai … aj b1j+1 … b1n

U2 b21 b22 … bi-1 ai … aj aj+1 … an

A 1 A 2 … A i-1 A i … A j A j+1 … A n

U1 a1 a2 … ai-1 ai … aj aj+1 … an

U2 b21 b22 … bi-1 ai … aj aj+1 … an

Trang 19

Kiểm tra tính kết nối không tổn thất của một phép tách

Chứng minh định lý

Giả sử U={A1, A2, …, Ai-1, Ai …, Aj, Aj+1…, An}

U1={A1, A2, …, Ai-1, Ai …, Aj}

U2={Ai , …, Aj,Aj+1 …, An}

Nếu U1U2 U2\U1 F+ => Ai, Ai+1 …, Aj Aj+1,…, Ai-1 F+

=(U1, U2) là phép tách kết nối không tổn thất

A 1 A 2 … A i-1 A i … A j A j+1 … A n

U1 a1 a2 … ai-1 ai … aj b1j+1 … b1n

U2 b21 b22 … bi-1 ai … aj aj+1 … an

A 1 A 2 … A i-1 A i … A j A j+1 … A n

U1 a1 a2 … ai-1 ai … aj aj+1 … an

U2 b21 b22 … bi-1 ai … aj aj+1 … an

Trang 20

Kiểm tra tính kết nối không tổn thất của một phép tách

Định lý

Giả sử =(U1, U2) là một phép tách của lược đồ quan hệ R=<U,F> Khi đó,  là phép tách kết nối không tổn thất

=>  là phép tách kết nối tổn thất

F U

U U

U

F U

U U

U

1 2

2 1

2 1

2 1

\

\



F U

U U

U

F U

U U

U

1 2

2 1

2 1

2 1

\

\

Ngày đăng: 24/02/2023, 09:43

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