ết kế csdl quan hệ các loại chuẩn và chuẩn...

24
Thiết kế CSDL quan h: Các loại chuẩn và chuẩn hóa Nguyễn Thị Oanh [email protected] Bộ môn Hệ thống thông tin (http://is.hust.edu.vn/ ) Viện CNTT&TT Trường Đại học Bách Khoa Hà Nội

Upload: phamkien

Post on 29-Aug-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

Thiết kế CSDL quan hệ:

Các loại chuẩn và chuẩn hóa

Nguyễn Thị Oanh [email protected]

Bộ môn Hệ thống thông tin (http://is.hust.edu.vn/)

Viện CNTT&TT

Trường Đại học Bách Khoa Hà Nội

Page 2: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

2

Thiết kế CSDL

Sử dụng sơ đồ thực thể liên kết (ch2)

Top down

Trừu tượng

Phụ thuộc hàm

Bottom up

Tổng hợp các quan hệ

Liệt kê tất cả các thuộc tính

Xem xét mối quan hệ giữa chúng

Phân chia các thuộc tính vào các bảng để dư thừa

thông tin

Page 3: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

3

Student(Id, name, suburb, courseno,

coursename, dept)

Id Name Suburb

1108 Robert Kew

3936 Glen Bundoora

8507 Norman Bundoora

8452 Mary Balwyn

Student

Takes

SID SNO

1108 21

1108 23

1108 29

8507 23

8507 29

SID Course

3936 101

1108 113

8507 101

Enrol

No Name Dept

21 Systems CSCE

23 Database CSCE

29 VB CSCE

18 Algebra Maths

Subject

No Name Dept

113 BCS CSCE

101 MCS CSCE

Course

Page 4: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

4

Các vấn đề đặt ra: dư thừa dữ liệu, không nhất quán, dị thường khi thêm bộ, dị thường khi xóa bộ

Đề xuất các giải pháp

stud no

name tutor roomno

course no

labmark

subject

s1 jones bush 2.26 cs250 65 prog s1 jones bush 2.26 cs260 80 graphics s1 jones wibby 2.26 cs270 47 elecs s2 brown kahn IT206 cs250 67 prog s2 brown kahn IT206 cs270 65 elecs s3 smith goble 2.82 cs270 49 comms s4 blogg goble 2.82 cs280 50 design s5 jones zobel 2.34 cs250 0 prog s6 peters kahn A17 cs250 2 prog null null capon A14 null null null null null null null cs290 null specs s7 patel null null null null null

Page 5: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

5

Mục đích của chuẩn hoá

Xác định được 1 tập các lược đồ quan hệ cho

phép tìm kiếm thông tin một cách dễ dàng,

đồng thời tránh được dư thừa dữ liệu

Hướng tiếp cận:

Tách các lược đồ quan hệ “có vấn đề” thành những

lược đồ quan hệ “chuẩn hơn”

Page 6: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

6

Phụ thuộc hàm

(Functional dependencies - FD)

Đ/N: Phụ thuộc hàm trong 1 quan hệ

Cho

R(U) là 1 sơ đồ quan hệ, U là tập các thuộc tính.

X, Y U

X xác định hàm Y hay Y phụ thuộc hàm vào X nếu

với quan hệ r xác định trên R(U) và với 2 bộ t1 và t2

bất kỳ mà t1[X] = t2[X] thì t1[Y] = t2[Y]

Ký hiệu: XY

Page 7: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

7

Ví dụ

F

studno name, tutor

tutor roomno

roomno tutor

courseno subject

studno, courseno labmark

F+

studno, courseno name partial

studno roomno transitive

stud no

name tutor roomno

course no

labmark

subject

s1 jones bush 2.26 cs250 65 prog s1 jones bush 2.26 cs260 80 graphics s1 jones wibby 2.26 cs270 47 elecs s2 brown kahn IT206 cs250 67 prog s2 brown kahn IT206 cs270 65 elecs s3 smith goble 2.82 cs270 49 comms s4 blogg goble 2.82 cs280 50 design s5 jones zobel 2.34 cs250 0 prog s6 peters kahn A17 cs250 2 prog null null capon A14 null null null null null null null cs290 null specs s7 patel null null null null null

Page 8: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

8

Bao đóng của 1 tập phụ thuộc hàm

Đ/N : Bao đóng của tập phụ thuộc hàm F là tập

lớn nhất các phụ thuộc hàm có thể được suy

diễn logic từ F

Ký hiệu là F+

Suy diễn logic

X Y được suy diễn logic từ F nếu với mỗi quan hệ

r xác định trên R(U) thoả các phụ thuộc hàm trong F

thì cũng thoả X Y

F là họ đầy đủ (full family) nếu

F = F+

Page 9: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

9

Các bước chuẩn hóa

Biểu diễn tất cả các views (biểu mẫu, báo cáo, .. )

của người dùng như là tập các quan hệ

Chuẩn hóa các quan hệ này

Gộp cac quan hệ có chung khóa chính

Page 10: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

10

Dạng chuẩn 1 (1NF)

Đ/N:

Không có các nhóm lặp

Một khóa duy nhất được xác định cho mỗi quan hệ

Tất cả các thuộc tính là phụ thuộc hàm đầy đủ hoặc

bộ phận vào khóa chính.

STUDENT

(studno, name, tutor, roomno)

studno name, tutor

tutor roomno,

roomno tutor

STUDENT_DETAILS

(studno, name, tutor, roomno, {courseno, labmark, subject})

studno name, tutor courseno subject

tutor roomno, roomno tutor studno, courseno labmark

ENROL (studno, courseno, subject, labmark)

courseno subject

studno, courseno labmark

Page 11: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

11

Dạng chuẩn 2 (2NF)

Đ/N: Sơ đồ quan hệ này ở 1NF

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

(Lưu ý: A là một thuộc tính khóa nếu A thuộc một khóa tối thiểu nào đó của R. Ngược lại A là thuộc tính không khóa)

ENROL’ (studno, courseno, labmark)

studno, courseno labmark

COURSE (courseno, subject)

courseno subject

ENROL (studno, courseno, subject, labmark)

courseno subject

studno, courseno labmark

Page 12: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

12

Dạng chuẩn 3 (3NF)

Đ/N: Một sơ đồ quan hệ R được coi là ở dạng

chuẩn 3 nếu

Sơ đồ quan hệ này ở 2NF

Mọi thuộc tính không khóa đều không phụ thuộc bắc

cầu vào khóa chính

Phục thuộc bắc cầu: một thuộc tính không khóa phụ

thuộc bắc cầu vào 1 thuộc tính không khóa khác.

Page 13: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

13

Dạng chuẩn 3 (3NF)

STUDENT (studno, name, tutor, roomno)

studno name, tutor

tutor roomno

roomno tutor

STUDENT (studno, name, tutor)

studno name, tutor

TUTOR (tutor, roomno)

tutor roomno

roomno tutor

Page 14: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

14

Dạng chuẩn 3 (3NF)

STUDENT (studno, name, tutor) studno name, tutor

TUTOR (tutor, roomno) tutor roomno roomno tutor

ENROL (studno, courseno, labmark) studno, courseno labmark

COURSE (courseno, subject) courseno subject

Page 15: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

15

Dạng chuẩn Boye-Codd

Đ/N:

Đã ở dạng chuẩn 3

Các dị thường còn lại tạo ra các phụ thuộc hàm bị loại bỏ

R = {A,B,C} ; F = {ABC , CB}.

Page 16: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

Chuẩn cao hơn

Fourth Normal Form (4NF) the relation is in BCNF

any multivalued dependencies have been removed.

Fifth Normal Form (5NF) the relation is in 4NF

any remaining anomalies that result form join dependencies have been removed.

Remarks

only in rare situations that a relation in 3NF is not in 4NF or 5NF.

most relations that are in 3NF are also in BCNF.

Page 17: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

17

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

Mục đích

Thay thế một sơ đồ quan hệ R(A1, A2, …, An) bằng

một tập các sơ đồ con {R1, R2, …, Rk} trong đó Ri R

và R = R1 U R2 U … U Rk

Yêu cầu của phép tách

Bảo toàn thuộc tính, ràng buộc

Bảo toàn dữ liệu

Page 18: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

18

Phép tách không mất mát thông tin

(Lossless join)

Đ/N: Cho lược đồ quan hệ R(U) phép tách R thành các sơ đồ con {R1, R2, …, Rk} được gọi là phép tách không mất mát thông tin đ/v một tập phụ thuộc hàm F nếu với mọi quan hệ r xác định trên R thỏa mãn F thì:

r = R1(r) R2(r) … Rk (r)

Page 19: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

19

Định lý tách đôi

Cho lược đồ quan hệ R(U), tập pth F, phép tách R thành R1(U1), R2(U2) là một phép tách không mất mát thông tin nếu 1 trong 2 phụ thuộc hàm sau là thỏa mãn trên F+:

U1 ∩ U2 U1 - U2

U1 ∩ U2 U2 - U1

Hệ quả: Cho lược đồ quan hệ R(U) và phụ thuộc hàm XY thỏa mãn trên R(U). Phép tách R thành 2 lược đồ con R1(U1), R2(U2) là một phép tách không mất mát thông tin với:

U1 = XY

U2 = XZ với Z = U \ XY

Page 20: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

Tách không làm mất mát thông tin

ENROL’ COURSE = courseno

courseno subject

(courseno, subject) = COURSE

ENROL (studno, courseno, subject, labmark)

courseno subject

studno, courseno labmark

ENROL’ (studno, courseno, labmark)

studno, courseno labmark

COURSE (courseno, subject)

courseno subject

Page 21: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

STUDENT1 TUTORS = STUDENT

STUDENT

studno name tutor roomno

s1 jones bush 2.26 s2 brown kahn IT206 s3 smith goble 2.82 s4 bloggs goble 2.82 s5 jones zobel 2.34 s6 peters kahn IT206

studno name

studno tutor

tutor roomno

roomno tutor

STUDENT1

studno name tutor

s1 jones bushs2 brown kahns3 smith gobles4 bloggs gobles5 jones zobels6 peters kahn

studno name

studno tutor

TUTOR

tutor roomno

kahn IT206bush 2.26goble 2.82zobel 2.34

tutor roomno

roomno tutor

Page 22: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

STUDENT’ * TUTOR = STUDENT

STUDENT

studno name tutor roomno appraiser

s1 jones bush 2.26 capon s2 brown kahn IT206 watson s3 smith goble 2.82 capon s4 bloggs goble 2.82 capon s5 jones zobel 2.34 watson s6 peters kahn IT206 watson

studno name

studno tutor

tutor roomno

tutor appraiser

roomno tutor

roomno appraiser

studno appraiser

studno roomno

STUDENT'

studno name tutor

s1 jones bush s2 brown kahn s3 smith goble s4 bloggs goble s5 jones zobel s6 peters kahn

studno name

studno tutor

TUTOR

studno roomno appraiser

s1 2.26 capon s2 IT206 watson s3 2.82 capon s4 2.82 capon s5 2.34 watson s6 IT206 watson

studno appraiser

studno roomno

Phép tách bảo toàn tập phụ thuộc hàm

Page 23: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

Designing a relational schema

Build a relational database

without redundancy

normalisation

without loss of information or gain of data

lossless join decomposition

without losing dependency integrity

dependency preservation

Page 24: ết kế CSDL quan hệ Các loại chuẩn và chuẩn hóais.hust.edu.vn/~oanhnt/it3292/CSDL1_4thietke_IT3292.pdf5 Mục đích của chuẩn hoá Xác định được 1 tập

24