Tải bản đầy đủ (.pdf) (48 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.12 MB, 48 trang )

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

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
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
Đị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): t
1
(X) = t
2
(X) ⇒ t
1
(Y) = t
2
(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): t
1
(X) = t
2
(X) ⇒ t
1
(Y) = t
2
(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
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
Slide 5 -Chuẩn hóa cơ sở dữ liệu
13
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
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 CSDL
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)
Slide 5 -Chuẩn hóa cơ sở dữ liệu
14
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
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
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.
Slide 5 -Chuẩn hóa cơ sở dữ liệu
17
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
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
S1
S1
S1
S2
S2
S3
S4
An
An
An
Hòa
Hoà
Thanh
Trang
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
Slide 5 -Chuẩn hóa cơ sở dữ liệu
19
S1
S1
S1
S2
S2
S3
S4
An
An
An
Hòa
Hoà
Thanh
Trang
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
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ăn
Trần Duy
Hưng
An
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ăn
Trần Duy
Hưng
An
Họ và tên
Nguyễ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ố
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
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

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
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)
Slide 5 -Chuẩn hóa cơ sở dữ liệu
24
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

×