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

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

48 2,7K 5

Đ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 48
Dung lượng 5,12 MB

Nội dung

Các bất thường khi cập nhật dữ liệuGiả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

Trang 1

Bài 5:

CHUẨN HÓA CƠ SỞ DỮ LIỆU

Trang 2

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

Trang 3

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

Trang 4

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

Trang 5

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êntất cả các hóa đơn của khách hàng đó bởi vì địa chỉ của kháchhà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êntất cả các hóa đơn của khách hàng đó bởi vì địa chỉ của kháchhàng lưu trữ dư thừa trong tất cả các hóa đơn của khách hàng

Trang 6

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

Trang 7

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ị.

Trang 8

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ụ

Trang 9

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

Ví dụ

Trang 10

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

Trang 11

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.

Trang 12

Đị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 Xxá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 Xxá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

Trang 13

Quy trình chuẩn hóa dữ liệu

Quan hệ chưa được

chuẩn hóa

Quan hệ ở dạng chuẩ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

Quan hệ ở dạng chuẩn II

Quan hệ ở dạng chuẩn III

Quan hệ được chuẩn hó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ộc bắc cầu

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

Trang 14

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 đồ

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 đồ

Trang 15

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

Trang 16

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ầntrong 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ầntrong các dự án khác nhau Vì vậy cơ sở dữ liệu này chưa đạt

chuẩn hóa

Trang 17

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ẩn

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.

Trang 18

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

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

Trang 19

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

HCM HCM HCM HN HN NT NT

01 01 01 02 02 03 03

P1 P2 P3 P1 P3 P2 P2

Táo Chanh Táo Chanh Táo Chanh Chanh

650 500 450 650 450 500 500

300 200 400 100 300 200 210

HCM HCM HCM HN HN NT NT

01 01 01 02 02 03 03

P1 P2 P3 P1 P3 P2 P2

Táo Chanh Táo Chanh Táo Chanh Chanh

650 500 450 650 450 500 500

300 200 400 100 300 200 210

Trang 20

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

Dạng chuẩn 1 (1NF)

Nguyễn Văn Trần Duy HưngAn

nguyên tố

Trang 21

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ặpBả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ặpBả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

Trang 22

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)

Trang 23

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)

Trang 24

Xét bảng INVOICE được viết thành quan hệ sau (thêm Invoice Number làm thuộ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, Customer

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

Phone, 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ách

R1-INVOICE ( Invoice Number (PK), Product Number ,

Product Description, Quantity, Unit Price, Extended Amount, Total Order Amount )

R2-INVOICE LINE ITEM ( Invoice Number (PK), Customer

Number, 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àm thuộ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, Customer

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

Phone, 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ách

R1-INVOICE ( Invoice Number (PK), Product Number ,

Product Description, Quantity, Unit Price, Extended Amount, Total Order Amount )

R2-INVOICE LINE ITEM ( Invoice Number (PK), Customer

Number, Customer Name, Customer Address, Customer City, Customer State, Customer Zip Code, Customer Phone, Terms, Ship Via, Order Date)

Trang 25

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)

Trang 26

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

Trang 27

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ậnkhoá 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 - 2NFQuy 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ậnkhoá 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

Trang 28

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

Trang 29

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ệ sau

Trang 30

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

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

Trang 31

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

Trang 32

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

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

Trang 33

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)

Trang 34

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 2NFMọ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)

Trang 36

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óachí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óachính là quan hệ ban đầu

Trang 37

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

Trang 38

Ví dụ: Quan hệ R(MSKH, TÊNKH, TP, PVC) được tách thành 2 bảng

R-VC (TP, PVC)

R-KHÁCHHÀNG (MSKH, TÊNKH, TP)

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

Trang 39

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

Trang 40

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

Trang 41

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

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, Customer

Address, 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:

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, Customer

Address, Customer City, Customer State, Customer Zip Code, CustomerPhone )

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

Trang 42

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

Ngày đăng: 23/05/2014, 19:26

HÌNH ẢNH LIÊN QUAN

Bảng này được chuẩn hóa bằng cách tách thành hai bảng như sau: - 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: (Trang 9)

TỪ KHÓA LIÊN QUAN

w