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

Bài tập thực hành môn Hệ quản trị 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 (613.61 KB, 37 trang )

HeCSDL
1
NN
NN
CHƯƠNG
CHƯƠNG
Chu
Chu


n h
n h
ó
ó
a
a
(Normalization)
(Normalization)
HeCSDL 2
NN
NN
N
N


i dung
i dung
 Định nghĩa chuẩn hóa
 Các dạng chuẩn hóa
2
HeCSDL 3


NN
NN
Chu
Chu


n h
n h
ó
ó
a (normalization)
a (normalization)
 Chuẩn hóa là kỹ thuật dùng để tạo ra một tập các quan
hệ có các đặc điểm mong muốn dựa vào các yêu cầu về
dữ liệu của nghiệp vụ
 Mục đích: loại bỏ các bất thường (anomaly) của 1 quan
hệ để có được các quan hệ có cấu trúc tốt hơn, nhỏ hơn
 Quan hệ có cấu trúc tốt (well-structured relation): là
quan hệ có sự dư thừa dữ liệu là tối thiểu và cho phép
người dùng thêm, sửa, xóa mà không gây ra mâu thuẩn
dữ liệu
 Như vậy chuẩn hóa dữ liệu nhằm cải tiến một thiết kế
CSDL luận lý nhằm thỏa mãn các ràng buộc toàn vẹn và
tránh dư thừa dữ liệu
3
HeCSDL 4
NN
NN
Chu
Chu



n h
n h
ó
ó
a
a
 Quá trình chuẩn hóa được thực hiện qua
nhiều bước. Mỗi bước tương ứng một dạng
chuẩn
 Các dạng chuẩn:
 Dạng chuẩn 1 (1NF – first normal form)
 Dạng chuẩn 2 (2NF- second normal form)
 Dạng chuẩn 3 (3NF – third normal form)
 Dạng chuẩn BCNF – Boyce Codd
4
HeCSDL 5
NN
NN
B
B


ng chưa chu
ng chưa chu


n h
n h

ó
ó
a
a
 Một bảng chưa chuẩn hóa là bảng ghi
những dữ liệu thực tế
 Bảng chưa chuẩn hóa nếu nó chứa một
hoặc nhiều nhóm lặp (Repeating group)
 Nhóm lặp lại là một nhóm nhiều hàng của
một nhóm thuộc tính ứng với một khóa
(…) của bảng chưa chuẩn hóa
 Bảng chưa chuẩn hóa cần phải đưa về
dạng chuẩn thấp nhấp là dạng chuẩn 1
(1NF)
5
HeCSDL 6
NN
NN
V
V
í
í
d
d


b
b



ng chưa chu
ng chưa chu


n h
n h
ó
ó
a
a
6
Repeating group
HeCSDL 7
NN
NN
D
D


ng chu
ng chu


n 1
n 1
(1NF
(1NF


first normal form)

first normal form)
 Bảng ở dạng chuẩn 1 nếu
 Có khóa chính
 Không có nhóm lặp lại
7
HeCSDL 8
NN
NN
Bi
Bi
ế
ế
n đ
n đ


i v
i v


d
d


ng chu
ng chu


n 1
n 1

 Cách 1: Điền dữ liệu vào các cột trống và
chọn khóa
 Cách 2:
 Tách thành các bảng nhằm xóa bỏ các
nhóm lặp lại
 Xác định khóa chính của các bảng
8
HeCSDL 9
NN
NN
Quan hệ Employee_Course
Emp_
Emp_
ID
ID
Name
Name
Dept_Nam
Dept_Nam
e
e
Salary
Salary
Course_
Course_
Title
Title
Date_
Date_
Complete

Complete
d
d
100
100
M.Simpson
M.Simpson
Marketing
Marketing
48000
48000
SPSS
SPSS
Surveys
Surveys
6/19/2001
6/19/2001
12/12/2002
12/12/2002
140
140
A.Beeton
A.Beeton
Acounting
Acounting
52000
52000
Tax Acc
Tax Acc
12/8/2003

12/8/2003
110
110
C.Lureco
C.Lureco
Info System
Info System
43000
43000
SPSS
SPSS
C++
C++
1/12/2003
1/12/2003
2/6/2004
2/6/2004
190
190
L.Davis
L.Davis
Finance
Finance
55000
55000
150
150
S.Martin
S.Martin
Marketing

Marketing
42000
42000
SPSS
SPSS
Java
Java
6/16/2002
6/16/2002
5/7/2004
5/7/2004
9
HeCSDL 10
NN
NN
Quan hệ Employee_Course dạng chuẩn 1
Emp_
Emp_
ID
ID
Name
Name
Dept_Nam
Dept_Nam
e
e
Salary
Salary
Course_
Course_

Title
Title
Date_
Date_
Complete
Complete
d
d
100
100
M.Simpson
M.Simpson
Marketing
Marketing
48000
48000
SPSS
SPSS
6/19/2001
6/19/2001
100
100
M.Simpson
M.Simpson
Marketing
Marketing
48000
48000
Surveys
Surveys

12/12/2002
12/12/2002
140
140
A.Beeton
A.Beeton
Acounting
Acounting
52000
52000
Tax Acc
Tax Acc
12/8/2003
12/8/2003
110
110
C.Lureco
C.Lureco
Info System
Info System
43000
43000
SPSS
SPSS
1/12/2003
1/12/2003
110
110
C.Lureco
C.Lureco

Info System
Info System
43000
43000
C++
C++
2/6/2004
2/6/2004
190
190
L.Davis
L.Davis
Finance
Finance
55000
55000
150
150
S.Martin
S.Martin
Marketing
Marketing
42000
42000
SPSS
SPSS
6/16/2002
6/16/2002
150
150

S.Martin
S.Martin
Marketing
Marketing
42000
42000
Java
Java
5/7/2004
5/7/2004
10
Î Dạng chuẩn 1
Î Khóa là EmpID + CourseTitle
HeCSDL 11
NN
NN
C
C
á
á
ch 2 (
ch 2 (
í
í
t dư th
t dư th


a hơn
a hơn

)
)
 Bảng Employee (Emp_ID, Name, Dept_Name )
 Bảng Course (Emp_ID, Course_Title, Date_Completed)
HeCSDL 12
NN
NN
Nhận xét
 Dạng chuẩn 1 có thể có các bất thường khi cập
nhật
 Ví dụ: trong lược đồ Employee_Course, sẽ có
các bất thường sau:
 Thêm 1 nhân viên mới chưa tham gia khóa học
nào Æ vi phạm quy luật bảo toàn thực thể
 Thay đổi tên phòngÆ phải thay đổi hàng loạt
thông tin này cho tất cả các nhân viên của
phòng đó
 Xóa 1 course mà chỉ có 1 nhân viên học, thông
tin course sẽ bị xóa theo
12
HeCSDL 13
NN
NN
A Table in the Report Format
A Table in the Report Format
13
Repeating group
HeCSDL 14
NN
NN





c đ
c đ


ph
ph


thu
thu


c
c
14
HeCSDL 15
NN
NN
Ph
Ph


thu
thu



c h
c h
à
à
m đ
m đ


y đ
y đ


(Full functional dependency)
(Full functional dependency)
 XÆA là phụ thuộc hàm đầy đủ (A phụ
thuộc hàm đầy đủ vào X) nếu không tồn
tại Y ⊂ X để cho YÆA
 Ví dụ: quan hệ Employee_Course
 Khóa là Emp_ID,Course
 Emp_ID, Course Æ Grade là phụ thuộc
hàm đầy đủ
 Emp_ID, course Æ Name, Dept_Name là
phụ thuộc hàm không đầy đủ
Emp_ID, Course Æ Name, Dept_Name
Emp_ID Æ Name, Dept_Name
Emp_ID ⊂ {Emp_ID, Course }
15
HeCSDL 16
NN
NN

Ph
Ph


thu
thu


c riêng ph
c riêng ph


n đ
n đ


y đ
y đ


(partial functional dependency)
(partial functional dependency)
 Phụ thuộc hàm riêng phần (partial FD)
XÆA, tồn tại Y ⊂ X sao cho YÆA
16
HeCSDL 17
NN
NN
D
D



ng chu
ng chu


n 2
n 2
(2NF
(2NF


second Normal Form)
second Normal Form)
 Lược đồ quan hệ R ở dạng 2NF đối với tập
phụ thuộc hàm F nếu:
 R ở dạng chuẩn 1
 Mọi thuộc tính không khóa đều phụ
thuộc hàm đầy đủ vào mọi khóa của R
 Nếu quan hệ R chỉ có các khóa đơn thì
đương nhiên quan hệ này ở dạng chuẩn 2
17
HeCSDL 18
NN
NN
Bi
Bi
ế
ế
n đ

n đ


i th
i th
à
à
nh 2NF
nh 2NF
 Loại bỏ các phụ thuộc hàm riêng phần và
tạo thêm các quan hệ mới tương ứng với
các phụ thuộc hàm riêng phần
18
HeCSDL 19
NN
NN




c đ
c đ


ph
ph


thu
thu



c
c
19
HeCSDL 20
NN
NN
Second Normal Form (2NF)
Second Normal Form (2NF)
Conversion Results
Conversion Results
20
HeCSDL 21
NN
NN
D
D


ng chu
ng chu


n 2
n 2
 Quan hệở2NF vẫn có thể có các bất thường khi
cập nhật
 Ví dụ: xét quan hệ EMPLOYEE đã ở chuẩn 2NF
 Khi thêm 1 loại công việc mới và lương giờ của

công việc mới mà công việc này chưa có nhân
viên nào làm sẽ vi phạm ràng buộc khoá chính
 Khi sửa đổi lương giờ (CHR_HOUR) của 1 loại
công việc mà có nhiều nhân viên đang cùng làm
 Khi xoá 1 nhân viên đang làm công việc mà chỉ
có nhân viên đó làm thì sẽ làm mất luôn thông
tin lương giờ
21
HeCSDL 22
NN
NN
Ph
Ph


thu
thu


c b
c b


c c
c c


u
u
(Transitive dependency)

(Transitive dependency)
 XÆA được gọi là phụ thuộc bắc cầu nếu
tồn tại Y để cho
XÆY, YÆA, Y-/->X
Và A ∉ XY
 Nguyên nhân gây ra các bất thường khi
cập nhật bảng 2NF là do có các thuộc tính
không khóa phụ thuộc bắc cầu vào khóa
của quan hệ
22
HeCSDL 23
NN
NN
Ph
Ph


thu
thu


c b
c b


c c
c c


u

u
(Transitive dependency)
(Transitive dependency)
 K Æ X Æ A
23
HeCSDL 24
NN
NN
D
D


ng chu
ng chu


n 3
n 3
(3NF
(3NF


third normal form)
third normal form)
 Định nghĩa 1: Lược đồ quan hệ R ở 3NF
đối với tập phụ thuộc hàm F nếu:
 R ở dạng 1NF
 Mọi thuộc tính không khóa đều không
phụ thuộc bắc cầu vào một khóa của R
 Định nghĩa 2: Lược đồ quan hệ R ở 3NF

đối với tập phụ thuộc hàm F nếu R ở dạng
chuẩn 1 và mọi phụ thuộc hàm X->A với
A ∉ X thì X là 1 siêu khóa của R hoặc A là
1 thuộc tính khóa
24
HeCSDL 25
NN
NN
Bi
Bi
ế
ế
n đ
n đ


i th
i th
à
à
nh d
nh d


ng chu
ng chu


n 3
n 3

 Loại bỏ các phụ thuộc bắc cầu trong quan
hệ và tạo ra các quan hệ mới tương ứng
với các phụ thuộc bắc cầu
25

×