Transcript
Page 1: Bài 5: Chuẩn hóa cơ sở dữ liệu

Bài 5:CHUẨN HÓA CƠ SỞ DỮ LIỆU

Page 2: Bài 5: Chuẩn hóa cơ sở dữ liệu

Giới thiệu ngôn ngữ SQL

Giới thiệu Oracle SQL

Tìm hiểu các nhóm ngôn ngữ của SQL

Hệ thống bài cũ

Giới thiệu ngôn ngữ SQL

Giới thiệu Oracle SQL

Tìm hiểu các nhóm ngôn ngữ của SQL

Slide 5 -Chuẩn hóa cơ sở dữ liệu 2

Page 3: Bài 5: Chuẩn hóa cơ sở dữ liệu

Các bất thường khi cập nhật dữ liệu

Giải thích sự cần thiết phải chuẩn hóa dữ liệu

Tìm hiểu một số khái niệm:

Khóa của quan hệ

Phụ thuộc hàm

Tìm hiểu quy trình chuẩn hóa CSDL

Tìm hiểu 3 dạng chuẩn: 1NF, 2NF, 3NF

Trình tự chuẩn hóa theo 3 dạng chuẩn

Tìm hiểu khái niệm khử chuẩn

Mục tiêu bài học hôm nay

Các bất thường khi cập nhật dữ liệu

Giải thích sự cần thiết phải chuẩn hóa dữ liệu

Tìm hiểu một số khái niệm:

Khóa của quan hệ

Phụ thuộc hàm

Tìm hiểu quy trình chuẩn hóa CSDL

Tìm hiểu 3 dạng chuẩn: 1NF, 2NF, 3NF

Trình tự chuẩn hóa theo 3 dạng chuẩn

Tìm hiểu khái niệm khử chuẩn

Slide 5 -Chuẩn hóa cơ sở dữ liệu 3

Page 4: Bài 5: Chuẩn hóa cơ sở dữ liệu

Ví dụ với CSDL là bảng hóa đơn (INVOICE) cho khách hàng như

sau:

Các bất thường khi cập nhật dữ liệu

Slide 5 -Chuẩn hóa cơ sở dữ liệu 4

Page 5: Bài 5: Chuẩn hóa cơ sở dữ liệu

Bất thường khi thêm dữ liệu:

Không thể thêm một khách hàng vào CSDL nếu khách hàng

không mua một mặt hàng nào.

Bất thường khi cập nhật dữ liệu:

Muốn thay đổi địa chỉ của khách hàng, phải thay đổi địa chỉ trên

tất cả các hóa đơn của khách hàng đó bởi vì địa chỉ của khách

hàng lưu trữ dư thừa trong tất cả các hóa đơn của khách hàng.

Các bất thường khi cập nhật dữ liệu

Bất thường khi thêm dữ liệu:

Không thể thêm một khách hàng vào CSDL nếu khách hàng

không mua một mặt hàng nào.

Bất thường khi cập nhật dữ liệu:

Muốn thay đổi địa chỉ của khách hàng, phải thay đổi địa chỉ trên

tất cả các hóa đơn của khách hàng đó bởi vì địa chỉ của khách

hàng lưu trữ dư thừa trong tất cả các hóa đơn của khách hàng.

Slide 5 -Chuẩn hóa cơ sở dữ liệu 5

Page 6: Bài 5: Chuẩn hóa cơ sở dữ liệu

Bất thường khi xóa dữ liệu:

Nếu xóa hóa đơn cuối cùng của một khách hàng thì tất cả dữ

liệu về khách hàng đó bị mất.

Các bất thường khi cập nhật dữ liệu

Bất thường khi xóa dữ liệu:

Nếu xóa hóa đơn cuối cùng của một khách hàng thì tất cả dữ

liệu về khách hàng đó bị mất.

Slide 5 -Chuẩn hóa cơ sở dữ liệu 6

Page 7: Bài 5: Chuẩn hóa cơ sở dữ liệu

Mục đích của chuẩn hóa CSDL là nhóm các thuộc tính

vào các quan hệ nhằm giảm thiểu dư thừa dữ liệu,

loại bỏ các bất thường khi cập nhật CSDL.

-> Cần có các bước chuẩn hoá dữ liệu từ một CSDL chưa

chuẩn hóa sang chuẩn hóa.

Dạng chưa chuẩn hóa (unnormalized form - UNF): quan

hệ chưa chuẩn hóa là quan hệ chứa các bộ dữ liệu bị lặp

lại giá trị.

Sự cần thiết phải chuẩn hóa CSDL

Mục đích của chuẩn hóa CSDL là nhóm các thuộc tính

vào các quan hệ nhằm giảm thiểu dư thừa dữ liệu,

loại bỏ các bất thường khi cập nhật CSDL.

-> Cần có các bước chuẩn hoá dữ liệu từ một CSDL chưa

chuẩn hóa sang chuẩn hóa.

Dạng chưa chuẩn hóa (unnormalized form - UNF): quan

hệ chưa chuẩn hóa là quan hệ chứa các bộ dữ liệu bị lặp

lại giá trị.

Slide 5 -Chuẩn hóa cơ sở dữ liệu 7

Page 8: Bài 5: Chuẩn hóa cơ sở dữ liệu

Bảng hóa đơn (INVOICE) ở trên biểu diễn dưới dạng bảng như sau.

Bảng này ở dạng không chuẩn

Ví dụ

Slide 3 - Truy vấn cơ sở dữ liệu trên form 8

Page 9: Bài 5: Chuẩn hóa cơ sở dữ liệu

Bảng này được chuẩn hóa bằng cách tách thành hai bảng như sau:

Ví dụ

Slide 3 - Truy vấn cơ sở dữ liệu trên form 9

Page 10: Bài 5: Chuẩn hóa cơ sở dữ liệu

Khóa (Primary Key) là một (một nhóm) thuộc tính của

quan hệ cho phép xác định mỗi bộ khác nhau trong

quan hệ.

Ví dụ:

Trong quan hệ SINHVIEN: MaSV, HoTenSV, NgaySinh, DiaChi thì

thuộc tính khóa là MaSV.

Khái niệm khóa của quan hệ

Khóa (Primary Key) là một (một nhóm) thuộc tính của

quan hệ cho phép xác định mỗi bộ khác nhau trong

quan hệ.

Ví dụ:

Trong quan hệ SINHVIEN: MaSV, HoTenSV, NgaySinh, DiaChi thì

thuộc tính khóa là MaSV.

Slide 5 -Chuẩn hóa cơ sở dữ liệu 10

Page 11: Bài 5: Chuẩn hóa cơ sở dữ liệu

Cho hai thuộc tính A và B

B được gọi là phụ thuộc hàm vào A nếu có không quá

một giá trị của thuộc tính B liên kết với một giá trị của

thuộc tính A.

Khái niệm phụ thuộc hàm

Cho hai thuộc tính A và B

B được gọi là phụ thuộc hàm vào A nếu có không quá

một giá trị của thuộc tính B liên kết với một giá trị của

thuộc tính A.

Slide 5 -Chuẩn hóa cơ sở dữ liệu 11

Page 12: Bài 5: Chuẩn hóa cơ sở dữ liệu

Định nghĩa cách khác:

Cho r là một quan hệ được định nghĩa trên lượt đồ quan hệ R.

X và Y là hai tập con (khác rỗng) các thuộc tính của R. Ta nói X

xác định hàm Y, ký hiệu: X Y là một phụ thuộc hàm định

nghĩa trên R nếu: ∀ t1, t2 ∈ r(R): t1(X) = t2(X) ⇒ t1(Y) = t2(Y)

Ví dụ:Quan hệ SINHVIEN: MASV, HOTENSV, NAMSINH có phụ thuộc

MASV, HOTENSV NAMSINH

Khái niệm phụ thuộc hàm

Định nghĩa cách khác:

Cho r là một quan hệ được định nghĩa trên lượt đồ quan hệ R.

X và Y là hai tập con (khác rỗng) các thuộc tính của R. Ta nói X

xác định hàm Y, ký hiệu: X Y là một phụ thuộc hàm định

nghĩa trên R nếu: ∀ t1, t2 ∈ r(R): t1(X) = t2(X) ⇒ t1(Y) = t2(Y)

Ví dụ:Quan hệ SINHVIEN: MASV, HOTENSV, NAMSINH có phụ thuộc

MASV, HOTENSV NAMSINH

Slide 5 -Chuẩn hóa cơ sở dữ liệu 12

Page 13: Bài 5: Chuẩn hóa cơ sở dữ liệu

Quy trình chuẩn hóa dữ liệuQuan hệ chưa được

chuẩn hóa

Quan hệ ở dạngchuẩn I

Loại bỏ các thuộc tính lặp và đa trị

Loại bỏ các thuộc tính phụ thuộc bộphận

Slide 5 -Chuẩn hóa cơ sở dữ liệu 13

Quan hệ ở dạngchuẩn II

Quan hệ ở dạngchuẩn III

Quan hệ được chuẩnhóa hoàn toàn

Loại bỏ các thuộc tính phụ thuộc bộphận

Loại bỏ các thuộc tính phụ thuộcbắc cầu

Áp dụng các dạng chuẩn khác

Page 14: Bài 5: Chuẩn hóa cơ sở dữ liệu

Chuẩn hóa là quá trình phân rã lược đồ quan hệ dựa

trên một tập phụ thuộc hàm nhằm đảm các lược đồ

quan hệ thoả mãn 2 tính chất:

Trùng lắp dữ liệu ít nhất

Khả năng gây ra bất thường khi cập nhật được giảm thiểu.

Các dạng chuẩn:

Dạng chuẩn 1 (1NF)

Dạng chuẩn 2 (2NF)

Dạng chuẩn 3 (3NF)

Chuẩn hóa CSDLChuẩn hóa là quá trình phân rã lược đồ quan hệ dựa

trên một tập phụ thuộc hàm nhằm đảm các lược đồ

quan hệ thoả mãn 2 tính chất:

Trùng lắp dữ liệu ít nhất

Khả năng gây ra bất thường khi cập nhật được giảm thiểu.

Các dạng chuẩn:

Dạng chuẩn 1 (1NF)

Dạng chuẩn 2 (2NF)

Dạng chuẩn 3 (3NF)

Slide 5 -Chuẩn hóa cơ sở dữ liệu 14

Page 15: Bài 5: Chuẩn hóa cơ sở dữ liệu

Xét bảng dữ liệu đơnvị sau:

Ta thấy trường ĐịaĐiểm của đơn vị 5 chứa các thuộc tính đa trị

(nhiều hơn 1 giá trị) có 3 nơi là: Nam Định, Hà Nội, Bắc Ninh vì

vậy bảng dữ liệu này chưa đạt dạng chuẩn hóa.

Ví dụ 1 dạng chưa chuẩn

Xét bảng dữ liệu đơnvị sau:

Ta thấy trường ĐịaĐiểm của đơn vị 5 chứa các thuộc tính đa trị

(nhiều hơn 1 giá trị) có 3 nơi là: Nam Định, Hà Nội, Bắc Ninh vì

vậy bảng dữ liệu này chưa đạt dạng chuẩn hóa.

Slide 5 -Chuẩn hóa cơ sở dữ liệu 15

Page 16: Bài 5: Chuẩn hóa cơ sở dữ liệu

Xét bảng dữ liệu NHÂN VIÊN_DỰÁN:

Ta thấy nhóm thuộc tính {Tênnhânviên, sốgiờ} bị lặp lại nhiều lần

trong các dự án khác nhau. Vì vậy cơ sở dữ liệu này chưa đạt

chuẩn hóa.

Ví dụ 2 dạng chưa chuẩn

Xét bảng dữ liệu NHÂN VIÊN_DỰÁN:

Ta thấy nhóm thuộc tính {Tênnhânviên, sốgiờ} bị lặp lại nhiều lần

trong các dự án khác nhau. Vì vậy cơ sở dữ liệu này chưa đạt

chuẩn hóa.

Slide 5 -Chuẩn hóa cơ sở dữ liệu 16

Page 17: Bài 5: Chuẩn hóa cơ sở dữ liệu

Xét bảng dữ liệu Invoice

Đây là 1 hóa đơn của 1 khách hàng, Nếu có thêm 1 hóa đơn khác thì các

thuộc tính {Product No, Description, Quantity, Unit Price, Extended Mount}

sẽ lặp lại trong các hóa đơn khác vì vậy bảng này chưa đạt dạng chuẩn hóa.

Ví dụ 3 dạng chưa chuẩnXét bảng dữ liệu Invoice

Đây là 1 hóa đơn của 1 khách hàng, Nếu có thêm 1 hóa đơn khác thì các

thuộc tính {Product No, Description, Quantity, Unit Price, Extended Mount}

sẽ lặp lại trong các hóa đơn khác vì vậy bảng này chưa đạt dạng chuẩn hóa.

Slide 5 -Chuẩn hóa cơ sở dữ liệu 17

Page 18: Bài 5: Chuẩn hóa cơ sở dữ liệu

Khái niệm: Lược đồ quan hệ R được gọi là 1NF nếu và

chỉ nếu tất cả các thuộc tính của R thoả mãn cả 3 điều

kiện sau:

Là nguyên tố

Giá trị của các thuộc tính trên các bộ là đơn trị, không chứa

nhóm lặp.

Không có một thuộc tính nào có giá trị mà có thể tính toán được

từ một số thuộc tính khác.

Dạng chuẩn 1 (1NF)

Khái niệm: Lược đồ quan hệ R được gọi là 1NF nếu và

chỉ nếu tất cả các thuộc tính của R thoả mãn cả 3 điều

kiện sau:

Là nguyên tố

Giá trị của các thuộc tính trên các bộ là đơn trị, không chứa

nhóm lặp.

Không có một thuộc tính nào có giá trị mà có thể tính toán được

từ một số thuộc tính khác.

Slide 5 -Chuẩn hóa cơ sở dữ liệu 18

Page 19: Bài 5: Chuẩn hóa cơ sở dữ liệu

Ví dụ 1: Một lược đồ quan hệ đạt chuẩn 1NF

Dạng chuẩn 1 (1NF)

MSKH TÊNKH TP PVC MSMH TÊNMH ĐG SL

S1S1S1S2S2S3S4

An

An

An

Hòa

Hoà

Thanh

Trang

HCM

HCM

HCM

HN

HN

NT

NT

01

01

01

02

02

03

03

P1P2P3P1P3P2P2

Táo

Chanh

Táo

Chanh

Táo

Chanh

Chanh

650

500

450

650

450

500

500

300

200

400

100

300

200

210

Slide 5 -Chuẩn hóa cơ sở dữ liệu 19

S1S1S1S2S2S3S4

An

An

An

Hòa

Hoà

Thanh

Trang

HCM

HCM

HCM

HN

HN

NT

NT

01

01

01

02

02

03

03

P1P2P3P1P3P2P2

Táo

Chanh

Táo

Chanh

Táo

Chanh

Chanh

650

500

450

650

450

500

500

300

200

400

100

300

200

210

Page 20: Bài 5: Chuẩn hóa cơ sở dữ liệu

Ví dụ 2: Quan hệ sau được chuẩn hóa về dạng chuẩn 1

Dạng chuẩn 1 (1NF)

Họ Tên

Nguyễn VănTrần Duy

HưngAn

Họ và tên

Họ Tên

Không nguyên tốnguyên tố

Slide 5 -Chuẩn hóa cơ sở dữ liệu 20

Nguyễn VănTrần Duy

HưngAn

Họ và tênNguyễn Văn Hưng

Trần Duy An

Họ Tên

Nguyễn Văn

Trần Duy

Hưng

An

nguyên tố

Page 21: Bài 5: Chuẩn hóa cơ sở dữ liệu

Nguyên tắc chung: Loại bỏ thuộc tính lặp hoặc đa trịCác bước thực hiện:

Tách nhóm thuộc tính lặp / đa trị sang một bảng mới.

Khóa của bảng mới là Khóa của bảng ban đầu và khóa nhóm lặp

Bảng còn lại là bảng gồm có khóa và các thuộc tính còn lại.

Ví dụ: cho quan hệ

Với A1 là khóa chính của quan hệ, {A4,A5,A5} là thuộc tính lặp.Quan hệ R sẽ được tách thành 2 quan hệ R1, R2

Quy tắc chuyển bảng từ dạng chưa chuẩn về chuẩn 1 NF

Nguyên tắc chung: Loại bỏ thuộc tính lặp hoặc đa trịCác bước thực hiện:

Tách nhóm thuộc tính lặp / đa trị sang một bảng mới.

Khóa của bảng mới là Khóa của bảng ban đầu và khóa nhóm lặp

Bảng còn lại là bảng gồm có khóa và các thuộc tính còn lại.

Ví dụ: cho quan hệ

Với A1 là khóa chính của quan hệ, {A4,A5,A5} là thuộc tính lặp.Quan hệ R sẽ được tách thành 2 quan hệ R1, R2

Slide 5 -Chuẩn hóa cơ sở dữ liệu 21

Page 22: Bài 5: Chuẩn hóa cơ sở dữ liệu

Cho bảng ĐƠN VỊ

Ta có quan hệ sau R(MãsốĐV, TênDV, MãsốNQL, {Địa điểm} )Thuộc tính đa trị là {Địa điểm} quan hệ này được tách thành:R1(MãsốĐV, Địa điểm )R2(MãsốĐV, TênDV, MãsốNQL)

Ví dụ 1 đưa bảng dữ liệu về dạng chuẩn 1NF

Cho bảng ĐƠN VỊ

Ta có quan hệ sau R(MãsốĐV, TênDV, MãsốNQL, {Địa điểm} )Thuộc tính đa trị là {Địa điểm} quan hệ này được tách thành:R1(MãsốĐV, Địa điểm )R2(MãsốĐV, TênDV, MãsốNQL)

Slide 5 -Chuẩn hóa cơ sở dữ liệu 22

Page 23: Bài 5: Chuẩn hóa cơ sở dữ liệu

Cho bảng NHÂNVIÊN_DỰÁN

Quan hệ này là R(MãsốDA, TênDA, {Tênnhânviên, Số giờ} )Thuộc tính lặp là {Tênnhânviên, Số giờ} quan hệ được tách thành:R1(MãsốĐV, Tênnhânviên, Số giờ)R2(MãsốĐV, TênDA)

Ví dụ 2 đưa bảng dữ liệu về dạng chuẩn 1NF

Cho bảng NHÂNVIÊN_DỰÁN

Quan hệ này là R(MãsốDA, TênDA, {Tênnhânviên, Số giờ} )Thuộc tính lặp là {Tênnhânviên, Số giờ} quan hệ được tách thành:R1(MãsốĐV, Tênnhânviên, Số giờ)R2(MãsốĐV, TênDA)

Slide 5 -Chuẩn hóa cơ sở dữ liệu 23

Page 24: Bài 5: Chuẩn hóa cơ sở dữ liệu

Xét bảng INVOICE được viết thành quan hệ sau (thêm Invoice Number làmthuộc tính khóa cho bảng Invoice vì mỗi hóa đơn có Số hóa đơn là Khóa)

R(Invoice Number (PK), Customer Number, Customer Name, CustomerAddress, Customer City, Customer State, Customer Zip Code, CustomerPhone, Terms, Ship Via, Order Date, {Product Number, Product Description,Quantity, Unit Price, Extended Amount, Total Order Amount })

Thuộc tính lặp được bôi đỏ và đặt trong dấu { } quan hệ được táchR1-INVOICE (Invoice Number (PK), Product Number,Product Description, Quantity, Unit Price, Extended Amount,Total Order Amount)R2-INVOICE LINE ITEM (Invoice Number (PK), CustomerNumber, Customer Name, Customer Address, Customer City,Customer State, Customer Zip Code, Customer Phone, Terms,Ship Via, Order Date)

Ví dụ 3 đưa bảng dữ liệu về dạng chuẩn 1NF

Xét bảng INVOICE được viết thành quan hệ sau (thêm Invoice Number làmthuộc tính khóa cho bảng Invoice vì mỗi hóa đơn có Số hóa đơn là Khóa)

R(Invoice Number (PK), Customer Number, Customer Name, CustomerAddress, Customer City, Customer State, Customer Zip Code, CustomerPhone, Terms, Ship Via, Order Date, {Product Number, Product Description,Quantity, Unit Price, Extended Amount, Total Order Amount })

Thuộc tính lặp được bôi đỏ và đặt trong dấu { } quan hệ được táchR1-INVOICE (Invoice Number (PK), Product Number,Product Description, Quantity, Unit Price, Extended Amount,Total Order Amount)R2-INVOICE LINE ITEM (Invoice Number (PK), CustomerNumber, Customer Name, Customer Address, Customer City,Customer State, Customer Zip Code, Customer Phone, Terms,Ship Via, Order Date)

Slide 5 -Chuẩn hóa cơ sở dữ liệu 24

Page 25: Bài 5: Chuẩn hóa cơ sở dữ liệu

Kết quả bảng được tách thành hai bảng như sau

Ví dụ 3 đưa bảng dữ liệu về dạng chuẩn 1NF(tiếp)

Slide 5 -Chuẩn hóa cơ sở dữ liệu 25

Page 26: Bài 5: Chuẩn hóa cơ sở dữ liệu

Quan hệ R được gọi là đạt dạng chuẩn 2 nếu đã là 1NF và tất

cả các thuộc tính không khóa đều phụ thuộc hàm đầy đủ

vào khóa.

Thuộc tính không khóa: là thuộc tính không tham gia vào bất kỳ khoá

nào.

Dạng chuẩn 2 (2NF)

Quan hệ R được gọi là đạt dạng chuẩn 2 nếu đã là 1NF và tất

cả các thuộc tính không khóa đều phụ thuộc hàm đầy đủ

vào khóa.

Thuộc tính không khóa: là thuộc tính không tham gia vào bất kỳ khoá

nào.

Slide 5 -Chuẩn hóa cơ sở dữ liệu 26

Page 27: Bài 5: Chuẩn hóa cơ sở dữ liệu

Quy tắc chuẩn hóa từ 1NF - 2NF:

Bước 1: Loại bỏ các thuộc tính không khoá phụthuộc vào một bộ phận

khoá chính và tách thành ra một bảng riêng, khoá chính của bảng là bộ

phận khoá mà chúng phụ thuộc vào.

Bước 2: Các thuộc tính còn lại lập thành một quan hệ, khóa chính của nó

là khóa chính ban đầu.

Quy tắc chuẩn hóa từ 1NF - 2NF

Quy tắc chuẩn hóa từ 1NF - 2NF:

Bước 1: Loại bỏ các thuộc tính không khoá phụthuộc vào một bộ phận

khoá chính và tách thành ra một bảng riêng, khoá chính của bảng là bộ

phận khoá mà chúng phụ thuộc vào.

Bước 2: Các thuộc tính còn lại lập thành một quan hệ, khóa chính của nó

là khóa chính ban đầu.

Slide 5 -Chuẩn hóa cơ sở dữ liệu 27

Page 28: Bài 5: Chuẩn hóa cơ sở dữ liệu

Quy tắc chuẩn hóa từ 1NF - 2NF

Slide 5 -Chuẩn hóa cơ sở dữ liệu 28

Page 29: Bài 5: Chuẩn hóa cơ sở dữ liệu

Ví dụ: cho quan hệ R(MSKH, TÊNKH, TP, PVC, MSMH, TÊNMH, ĐG, SL) và

tập phụ thuộc hàm F được định nghĩa trên R:

Quan hệ này được tách thành các quan hệ sauR1(MSKH, TÊNKH, TP, PVC)R2(MSKH, MSMH, TÊNMH, ĐG, SL)Trong R2 chứa phụ thuộc hàm {MSMH} {TÊNMH, ĐG} tách thànhR21(MSMH, TÊNMH, ĐG)R22(MSKH, MSMH,SL)

Ví dụ 1 tách chuẩn từ 1NF-2NF

Ví dụ: cho quan hệ R(MSKH, TÊNKH, TP, PVC, MSMH, TÊNMH, ĐG, SL) và

tập phụ thuộc hàm F được định nghĩa trên R:

Quan hệ này được tách thành các quan hệ sauR1(MSKH, TÊNKH, TP, PVC)R2(MSKH, MSMH, TÊNMH, ĐG, SL)Trong R2 chứa phụ thuộc hàm {MSMH} {TÊNMH, ĐG} tách thànhR21(MSMH, TÊNMH, ĐG)R22(MSKH, MSMH,SL)

Slide 5 -Chuẩn hóa cơ sở dữ liệu 29

Page 30: Bài 5: Chuẩn hóa cơ sở dữ liệu

Tách thành các quan hệ sau

Ví dụ 1 tách chuẩn từ 1NF-2NF (tiếp)

Slide 5 -Chuẩn hóa cơ sở dữ liệu 30

Page 31: Bài 5: Chuẩn hóa cơ sở dữ liệu

Quan hệ này được tách thành các quan hệ sau

Ví dụ 2 tách chuẩn từ 1NF-2NF

Quan hệ này được tách thành các quan hệ sau

Slide 5 -Chuẩn hóa cơ sở dữ liệu 31

Page 32: Bài 5: Chuẩn hóa cơ sở dữ liệu

Kết quả tách ta được 3 bảng sau

Ví dụ 2 tách chuẩn từ 1NF-2NF

Slide 5 -Chuẩn hóa cơ sở dữ liệu 32

Page 33: Bài 5: Chuẩn hóa cơ sở dữ liệu

Xét Quan hệ INVOICE LINE ITEM:

(Invoice Number (PK), Product Number (PK), Product Description,

Quantity, Unit Price, Extended Amount)

Ta thấy có phụ thuộc hàm vào một phần của khóa như sau

{Product Number} -> {Product Description, Unit Price}

Quan hệ này được tách thành 2 quan hệ sau:

PRODUCT (Product Number,Product Description, Unit Price)INVOICE LINE ITEM (Invoice Number (PK), Product Number (PK),Quantity, ExtAmount)

Ví dụ 3 tách chuẩn từ 1NF-2NF

Xét Quan hệ INVOICE LINE ITEM:

(Invoice Number (PK), Product Number (PK), Product Description,

Quantity, Unit Price, Extended Amount)

Ta thấy có phụ thuộc hàm vào một phần của khóa như sau

{Product Number} -> {Product Description, Unit Price}

Quan hệ này được tách thành 2 quan hệ sau:

PRODUCT (Product Number,Product Description, Unit Price)INVOICE LINE ITEM (Invoice Number (PK), Product Number (PK),Quantity, ExtAmount)

Slide 5 -Chuẩn hóa cơ sở dữ liệu 33

Page 34: Bài 5: Chuẩn hóa cơ sở dữ liệu

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

R.

R được gọi là đạt dạng chuẩn 3 nếu thoả mãn các điều

kiện sau:

R phải đạt dạng chuẩn 2NF

Mọi thuộc tính không khoá không phụ thuộc bắc cầu vào khóa

(tức là tất cả các thuộc tính phải được suy ra trực tiếp từ khóa).

Dạng chuẩn 3 (3NF)

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

R.

R được gọi là đạt dạng chuẩn 3 nếu thoả mãn các điều

kiện sau:

R phải đạt dạng chuẩn 2NF

Mọi thuộc tính không khoá không phụ thuộc bắc cầu vào khóa

(tức là tất cả các thuộc tính phải được suy ra trực tiếp từ khóa).

Slide 5 -Chuẩn hóa cơ sở dữ liệu 34

Page 35: Bài 5: Chuẩn hóa cơ sở dữ liệu

Ví dụ: quan hệ R(MSKH, TÊNKH, TP, PVC), FR =

{MSKH } {TÊNKH, TP,PVC} MSKH là khóa chính

{TP} PVC}

chưa đạt chuẩn NF3 vì có thuộc tính PVC được suy ra từ

thuộc tính TP (không phải là khóa).

Dạng chuẩn 3 (3NF)

Ví dụ: quan hệ R(MSKH, TÊNKH, TP, PVC), FR =

{MSKH } {TÊNKH, TP,PVC} MSKH là khóa chính

{TP} PVC}

chưa đạt chuẩn NF3 vì có thuộc tính PVC được suy ra từ

thuộc tính TP (không phải là khóa).

Slide 5 -Chuẩn hóa cơ sở dữ liệu 35

Page 36: Bài 5: Chuẩn hóa cơ sở dữ liệu

Quy tắc chuẩn hóa về NF3:

Bước 1: Loại bỏ các thuộc tính phụ thuộc bắc cầu ra khỏi quan

hệ và tách chúng thành một quan hệ riêng có khoá chính là

thuộc tính bắc cầu.

Bước 2: Các thuộc tính còn lại lập thành một quan hệ có khóa

chính là quan hệ ban đầu.

Quy tắc chuẩn hóa về 3NF

Quy tắc chuẩn hóa về NF3:

Bước 1: Loại bỏ các thuộc tính phụ thuộc bắc cầu ra khỏi quan

hệ và tách chúng thành một quan hệ riêng có khoá chính là

thuộc tính bắc cầu.

Bước 2: Các thuộc tính còn lại lập thành một quan hệ có khóa

chính là quan hệ ban đầu.

Slide 5 -Chuẩn hóa cơ sở dữ liệu 36

Page 37: Bài 5: Chuẩn hóa cơ sở dữ liệu

Quy tắc chuẩn hóa về 3NF

Slide 5 -Chuẩn hóa cơ sở dữ liệu 37

Page 38: Bài 5: Chuẩn hóa cơ sở dữ liệu

Ví dụ: Quan hệ R(MSKH, TÊNKH, TP, PVC) được tách thành 2 bảngR-VC (TP, PVC)R-KHÁCHHÀNG (MSKH, TÊNKH, TP)

Ví dụ 1 chuyển sang chuẩn 3NF

Slide 5 -Chuẩn hóa cơ sở dữ liệu 38

Page 39: Bài 5: Chuẩn hóa cơ sở dữ liệu

Quan hệ này được tách thành các quan hệ sau

Ví dụ 2 chuyển sang chuẩn 3NF

Quan hệ này được tách thành các quan hệ sau

Slide 5 -Chuẩn hóa cơ sở dữ liệu 39

Page 40: Bài 5: Chuẩn hóa cơ sở dữ liệu

Ví dụ 2 chuyển sang chuẩn 3NF

Slide 5 -Chuẩn hóa cơ sở dữ liệu 40

Page 41: Bài 5: Chuẩn hóa cơ sở dữ liệu

Xét quan hệ INVOICE đã được tách như sau:

INVOICE: Invoice Number (PK), Customer Number, Customer Name,

Customer Address, Customer City, Customer State, Customer Zip Code,

Customer Phone, Terms, Ship Via, Order Date, Total Order Amount

Ta thấy có chứa thuộc tính bắc cầu sau{Customer Number} -> {Customer Name, Customer Address,Customer City, Customer State, Customer Zip Code, Customer Phone}Bảng này được tách thành hai bảng sau:

CUSTOMER (Customer Number, Customer Name, CustomerAddress, Customer City, Customer State, Customer Zip Code, CustomerPhone )

INVOICE (Invoice Number (PK), Customer Number, Terms, ShipVia, Order Date, Total Order Amount)

Ví dụ 3 chuyển sang chuẩn 3NF

Xét quan hệ INVOICE đã được tách như sau:

INVOICE: Invoice Number (PK), Customer Number, Customer Name,

Customer Address, Customer City, Customer State, Customer Zip Code,

Customer Phone, Terms, Ship Via, Order Date, Total Order Amount

Ta thấy có chứa thuộc tính bắc cầu sau{Customer Number} -> {Customer Name, Customer Address,Customer City, Customer State, Customer Zip Code, Customer Phone}Bảng này được tách thành hai bảng sau:

CUSTOMER (Customer Number, Customer Name, CustomerAddress, Customer City, Customer State, Customer Zip Code, CustomerPhone )

INVOICE (Invoice Number (PK), Customer Number, Terms, ShipVia, Order Date, Total Order Amount)

Slide 5 -Chuẩn hóa cơ sở dữ liệu 41

Page 42: Bài 5: Chuẩn hóa cơ sở dữ liệu

Cách làm:

Chuẩn hóa quan hệ INVOICE về dạng chuẩn 1NF

Tiếp tục chuẩn hóa về dạng 2NF

Chuẩn hóa về dạng 3NF

Ví dụ

Cách làm:

Chuẩn hóa quan hệ INVOICE về dạng chuẩn 1NF

Tiếp tục chuẩn hóa về dạng 2NF

Chuẩn hóa về dạng 3NF

Slide 5 -Chuẩn hóa cơ sở dữ liệu 42

Page 43: Bài 5: Chuẩn hóa cơ sở dữ liệu

Sau khi chuyển sang dạng chuẩn 1NF, CSDL sẽ gồm hai

quan hệ như sau:

Quan hệ INVOICE: Invoice Number (PK), Customer Number,

Customer Name, Customer Address, Customer City, Customer

State, Customer Zip Code, Customer Phone, Terms, Ship Via,

Order Date, Total Order Amount

Quan hệ INVOICE LINE ITEM: Invoice Number (PK), Product

Number (PK), Product Description, Quantity, Unit Price,

Extended Amount

Chuẩn hóa về 1NF

Sau khi chuyển sang dạng chuẩn 1NF, CSDL sẽ gồm hai

quan hệ như sau:

Quan hệ INVOICE: Invoice Number (PK), Customer Number,

Customer Name, Customer Address, Customer City, Customer

State, Customer Zip Code, Customer Phone, Terms, Ship Via,

Order Date, Total Order Amount

Quan hệ INVOICE LINE ITEM: Invoice Number (PK), Product

Number (PK), Product Description, Quantity, Unit Price,

Extended Amount

Slide 5 -Chuẩn hóa cơ sở dữ liệu 43

Page 44: Bài 5: Chuẩn hóa cơ sở dữ liệu

Ví dụ 2: Quan hệ INVOICE được phân rã về dạng 2NF

như sau:

INVOICE: Invoice Number (PK), Customer Number, Customer

Name, Customer Address, Customer City, Customer State,

Customer Zip Code, Customer Phone, Terms, Ship Via, Order

Date, Total Order Amount

INVOICE LINE ITEM: Invoice Number (PK), Product Number

(PK), Quantity, Sale Unit Price, Extended Amount

PRODUCT: Product Number (PK), Product Description, List Unit

Price

Chuẩn hóa về NF2

Ví dụ 2: Quan hệ INVOICE được phân rã về dạng 2NF

như sau:

INVOICE: Invoice Number (PK), Customer Number, Customer

Name, Customer Address, Customer City, Customer State,

Customer Zip Code, Customer Phone, Terms, Ship Via, Order

Date, Total Order Amount

INVOICE LINE ITEM: Invoice Number (PK), Product Number

(PK), Quantity, Sale Unit Price, Extended Amount

PRODUCT: Product Number (PK), Product Description, List Unit

Price

Slide 5 -Chuẩn hóa cơ sở dữ liệu 44

Page 45: Bài 5: Chuẩn hóa cơ sở dữ liệu

Quan hệ INVOICE được phân rã về dạng 3NF như sau:

INVOICE: Invoice Number (PK), Customer Number, Terms,

Ship Via, Order Date

INVOICE LINE ITEM: Invoice Number (PK), Product Number

(PK), Quantity, Sale Unit Price

PRODUCT: Product Number (PK), Product Description, List Unit

Price

CUSTOMER : Customer Number (PK), Customer Name,

Customer Address, Customer City, Customer State, Customer

Zip Code, Customer Phone

Chuẩn hóa về 3NF

Quan hệ INVOICE được phân rã về dạng 3NF như sau:

INVOICE: Invoice Number (PK), Customer Number, Terms,

Ship Via, Order Date

INVOICE LINE ITEM: Invoice Number (PK), Product Number

(PK), Quantity, Sale Unit Price

PRODUCT: Product Number (PK), Product Description, List Unit

Price

CUSTOMER : Customer Number (PK), Customer Name,

Customer Address, Customer City, Customer State, Customer

Zip Code, Customer Phone

Slide 5 -Chuẩn hóa cơ sở dữ liệu 45

Page 46: Bài 5: Chuẩn hóa cơ sở dữ liệu

Bài tập

Slide 5 -Chuẩn hóa cơ sở dữ liệu 46

Đáp án R1(F,I,J), R2(A,E,F,G,H), R3(A,B,C,D)

Bài tập về nhà: Giảng viên yêu cầu sinh viên làm chuẩn hóa cơ sơ dữ liệuUTLA Academic Tracking và Computer Books Company trong sáchsau đó nộp lại cho giảng viên.

Page 47: Bài 5: Chuẩn hóa cơ sở dữ liệu

Quá trình chuẩn hóa làm tăng thêm số lượng các bảng và các liên kết.

Khi người sử dụng CSDL gặp vấn đề về hiệu suất mà không thể được

giải quyết được bằng các phương tiện khác (chẳng hạn như điều chỉnh

các cơ sở dữ liệu hoặc nâng cấp phần cứng) -> Cần phải khử chuẩn.

Các bước khử chuẩn:

Kết hợp lại các quan hệ đã chia để thỏa mãn các quy tắc chuẩn hóa

Lưu trữ dữ liệu dư thừa trong các bảng

Lưu trữ dữ liệu tóm tắt trong các bảng

Khử chuẩn (Denormalization)

Quá trình chuẩn hóa làm tăng thêm số lượng các bảng và các liên kết.

Khi người sử dụng CSDL gặp vấn đề về hiệu suất mà không thể được

giải quyết được bằng các phương tiện khác (chẳng hạn như điều chỉnh

các cơ sở dữ liệu hoặc nâng cấp phần cứng) -> Cần phải khử chuẩn.

Các bước khử chuẩn:

Kết hợp lại các quan hệ đã chia để thỏa mãn các quy tắc chuẩn hóa

Lưu trữ dữ liệu dư thừa trong các bảng

Lưu trữ dữ liệu tóm tắt trong các bảng

Slide 5 -Chuẩn hóa cơ sở dữ liệu 47

Page 48: Bài 5: Chuẩn hóa cơ sở dữ liệu

Các thao tác trên dữ liệu (thêm, sửa, xóa) trên CSDL chưa chuẩn

hóa có thể gây ra các bất thường trên CSDL.

Chuẩn hóa CSDL để đảm bảo dữ liệu không dư thừa và loại bỏ các

bất thường trên CSDL

3 bước chuẩn hóa thông thường:

Chuẩn hóa về dạng 1NF: Loại bỏ dữ liệu dư thừa

Chuẩn hóa về dạng 2NF: Loại bỏ các phụ thuộc hàm bộ phận

Chuẩn hóa về dạng 3NF: Loại bỏ các phụ thuộc hàm bắc cầu

Tổng kết bài họcCác thao tác trên dữ liệu (thêm, sửa, xóa) trên CSDL chưa chuẩn

hóa có thể gây ra các bất thường trên CSDL.

Chuẩn hóa CSDL để đảm bảo dữ liệu không dư thừa và loại bỏ các

bất thường trên CSDL

3 bước chuẩn hóa thông thường:

Chuẩn hóa về dạng 1NF: Loại bỏ dữ liệu dư thừa

Chuẩn hóa về dạng 2NF: Loại bỏ các phụ thuộc hàm bộ phận

Chuẩn hóa về dạng 3NF: Loại bỏ các phụ thuộc hàm bắc cầu

Slide 5 -Chuẩn hóa cơ sở dữ liệu 48


Top Related