25/02/2016

Phân tích thiết kế hệ thống thông tin

Chương 10. Mô hình dữ liệu

1

Mối tương quan giữa mô hình dự thể/kết hợp và mô hình hướng đối tượng

• Thực thể/kết hợp

– Thực thể – Mối kết hợp – Thuộc tính – Bản số

Hướng đối tượng - Lớp - Quan hệ - Thuộc tính - Bản số

2

1

25/02/2016

Mô hình thực thể kết hợp

• Ứng dụng Quản lý nhân chủng học

(1,1) (0,n) Sinh tại Tên Họ tên Ngày sinh VỊ TRÍ (0,n) CON NGƯỜI Dân số (1,n) Chiều cao Sống ở Cân nặng

THÀNH PHỐ QUỐC GIA ĐÀN ÔNG PHỤ NỮ Số năm (1,1)

Thuộc Châu lục Chức danh Tên con gái (0,n)

3

MIỀN Tên

Mô hình thực thể kết hợp

4

2

Đơn giá Số lượng Mã số Tên NGK Số HĐ HOÁ ĐƠN NGK Chi tiết hóa đơn ĐVTính (1,n) (0,n) Ngày HĐ Loại Trị giá (0,n) Hiệu Đơn giá bán HOÁ ĐƠN GIAO HÀNG Chi tiết đơn hàng Số lượng đặt (1,1) Cho (1,n) (0,n) Mã KH Số ĐH ĐƠN HÀNG Của KHÁCH HÀNG Tên khách hàng Ngày đặt (1,1) (1,n) Điện thoại Trị giá đơn hàng Địa chỉ giao hàng

25/02/2016

Mô hình hướng đối tượng

5

Dạng chuẩn của lược đồ quan hệ • Chất lượng của HTTT phụ thuộc rất nhiều vào

lược đồ CSDL.

• Chất lượng thiết kế của một lược đồ csdl có thể đánh giá dựa trên nhiều tiêu chuẩn trong đó sự trùng lắp thông tin và chi phí kiểm tra các ràng buộc tòan vẹn là 2 tiêu chuẩn quan trọng.

• Một số dạng chuẩn đánh giá độ tốt xấu của

một lược đồ csdl:

• Dạng chuẩn 1 (Fisrt Normal Form) • Dạng chuẩn 2 • Dạng chuẩn 3 • Dạng chuẩn Boyce Codd

6

3

25/02/2016

Dạng chuẩn 1 (1NF) • Một quan hệ ở 1NF nếu miền giá trị của một thuộc tính chỉ

HOTEN

MONHOC

DIEMTHI

Cơ sở dữ liệu Kỹ thuật lập trình

7 9 8

Kỹ thuật lập trình 5

chứa giá trị nguyên tử (đơn, ko phân chia được) và giá trị của mỗi thuộc tính cũng là một giá trị đơn lấy từ miền giá trị của nó MASV CDTH100 Nguyễn Lan Anh Cấu trúc dữ liệu CDTH111 Trần Bích Chi CDTH122 Nguyễn Cao Chí Kỹ thuật lập trình 8

• Lược đồ trên không đạt 1NF

7

Dạng chuẩn 1 (1NF) (tt)

Đưa quan hệ về dạng chuẩn 1 như sau:

MASV

HOTEN

MONHOC

DIEMTHI

CDTH100 Nguyễn Lan Anh Cấu trúc dữ liệu

7

CDTH100 Nguyễn Lan Anh Cơ sở dữ liệu

9

CDTH100 Nguyễn Lan Anh Kỹ thuật lập trình 8

CDTH111

Tran Bích Chi

Kỹ thuật lập trình 5

CDTH122 Nguyễn Cao Chí Kỹ thuật lập trình 8

8

4

25/02/2016

Dạng chuẩn 2 (2NF)

• Từ dạng chuẩn 2 trở đi ta chú ý đến thuộc tính

khóa và thuộc tính không khóa.

• ĐN: một quan hệ ở dạng chuẩn 2 (2NF) nếu:

– Quan hệ đó ở dạng chuẩn 1 – Thuộc tính không khóa phụ thuộc đầy đủ vào thuộc tính khóa (NGHĨA LÀ THUỘC TÍNH KHÔNG KHÓA KHÔNG PHỤ THUỘC VÀO MỘT PHẦN CỦA KHÓA)

Ki  B, ~Ki’ Ki sao cho Ki’  B  F

• Lưu ý: Dạng chuẩn 2 có thể vi phạm khi quan hệ

khóa gồm hơn một thuộc tính.

9

Ví dụ 8

• Cho lược đồ quan hệ Q(ABCD) và tập phụ thuộc hàm F = {ABCD; BD; C A}. Xác định dạng chuẩn cho lược đồ.

Giải: - Khóa là {AB} và {BC}, - Thuộc tính không khóa D. - Nhưng A,B D không phụ thuộc hàm đầy đủ vì

có BD

- Vậy Q đạt dạng chẩn 1 (1NF)

10

5

25/02/2016

Ví dụ 9

Q(GMVNHP) F={G N; G H; G P; M V; NHP M}

• Xác định dạng chuẩn của lược đồ sau: Giải: - Khóa của Q là {G} - Thuộc tính không khóa: MVNHP - Do các phụ thuộc hàm G N; G H; G P; G M; G V, nên lược đồ quan hệ Q đạt dạng chuẩn 2.

11

Bài tập 2

• Xác định dạng chuẩn của lược đồ sau: Q(ABCDEH) F={AE; C D; E DH}

12

6

25/02/2016

Bài tập 3

• Xác định dạng chuẩn của lược đồ sau: Q(ABCDEG) F={ABC; C DE; E G}

13

Dạng chuẩn 3 (3NF)

• Một quan hệ ở dạng chuẩn 3 nếu:

– Quan hệ ở dạng chuẩn 2 –Không có chứa các phụ thuộc hàm phụ thuộc

bắc cầu giữa các thuộc tính không khóa vào khóa của quan hệ.

• Hệ quả : Nếu lược đồ quan hệ Q,F mà Q không có thuộc tính không khoá thì Q đạt chuẩn 3.

14

7

25/02/2016

Ví dụ 10

• Cho lược đồ quan hệ Q(ABC) và tập phụ thuộc hàm F = {AB; AC; B C}. Xác định dạng chuẩn cho lược đồ.

• Giải:

- Khóa là {A} - Thuộc tính không khóa BC - Pth bắt cầu: AB; BC - Thuộc tính không khóa C phụ thuộc bắc cầu vào thuộc tính khóa A, do đó quan hệ Q không phải 3NF

15

Ví dụ 11

• Cho lược đồ quan hệ Q(ABCD) và tập phụ

thuộc hàm F = {ABC; DB; C ABD}. Xác định dạng chuẩn cho lược đồ.

• Giải cách 1:

- Khóa: {AB}; {AD};{C} là các khoá, - vậy Q không có thuộc tính không khoá nên Q đạt chuẩn 3.

16

8

25/02/2016

Ví dụ 11

• Cách 2

– Nếu lấy 1 khóa {AB} – Thuộc tính không khóa CD – Pth ABC; CABD không vi phạm quy tắc vì vế

phải ABD có AB là thuộc tính khóa

– Vậy Q đạt dạng chuẩn 3 (3NF) (nếu tính đủ 2 khóa {AD} và {C} thì hiển nhiên tất cả

đều thỏa)

17

Bài tập 4

• Cho lược đồ quan hệ Q(A,B,C,D,E,G,H) và

tập phụ thuộc hàm

F = {A→D; E → B; A,E → G; B → C} a.Tìm tất cả các khóa của lược đồ quan hệ Q. b.Hãy xác định dạng chuẩn cao nhất của lược đồ quan hệ Q.

18

9

25/02/2016

Bài tập 5

• Cho lược đồ quan hệ Q(A,B,C,D,E,G,H)

và tập phụ thuộc hàm

• F = { E → C; H → E; A→ D; A,E → H; D,G → B;

D,G → C }

• a.Hãy xác đinh tất cả các khóa của Q • b.Hãy xác định dạng chuẩn cao nhất của

Q

19

Bài tập 6

• Cho lược đồ quan hệ Q(ABCDEG) và tập

các phụ thuộc hàm

• F = {AB→ C, AC→D, D→EG, G→B, A→D,

CG→A}

• a. Tìm các khóa của Q • b. Xác định dạng chuẩn của Q

20

10

25/02/2016

Bài tập 7

• Cho lược đồ quan hệ Q và tập phụ thuộc

hàm F được cho như sau:

Q(A,B,C,D,E,G,H,K,L,M,N)

F={ C → D,E; G → H,K; A,G → L; M → A,N; A → B,C} a.Tìm tất cả các khóa của Q b.Xác định dạng chuẩn của Q.

21

Bài tập 8

• Cho lược đồ quan hệ Q(ABCDEG) và

F={B → C;DEG → B; A → D; A→ E; A → G}

a.Tìm tất cả các khóa của Q b.Xác định dạng chuẩn của Q.

22

11

25/02/2016

Dạng chuẩn Boyce-Codd (BCNF)

• Một lược đồ quan hệ R được gọi là ở dạng

chuẩn Boyce-Codd (BCNF) nếu nó – Thỏa mãn dạng chuẩn 3NF – Không có các thuộc tính khóa phụ thuộc hàm vào

thuộc tính không khóa.

23

24

12

25/02/2016

25

26

13

25/02/2016

Ví dụ 12

và tập pth F= {AB C; C ABD}

• Xét lược đồ Q(ABCD) Giải: - Thuộc tính khóa: {AB}, {C} - Các tập thuộc tính X có bao đóng khác R (không

phải khóa): {A}, {B}, {D}, {AD}, {BD}

- Trong các phụ thuộc hàm trên không có phụ

thuộc nào vi phạm.

- Vậy quan hệ trên ở dạng chuẩn BCNF

27

Ví dụ 13

• Cho lược đồ quan hệ Q(ABCD) và tập phụ thuộc hàm F = {ABC; DB; C ABD}. Xác định dạng chuẩn cho lược đồ.

• Giải:

– Khóa {AB}, {C} – Thuộc tính không khóa: D – Thuộc tính khóa B phụ thuộc hàm vào thuộc tính

không khóa D

– Nên lược đồ chỉ đạt dạng chuẩn 3NF không đạt BCNF

28

14

25/02/2016

Tách thành chuẩn BCNF

• Ví dụ trên: R (A1,A2,A3,A4,A5) Với các phụ thuộc hàm: – A1,A2  A3,A4,A5 – A4  A2 lược đồ được tách ra như sau: – R1( A4, A2) – R2(A1, A4, A3, A5)

29

CHUẨN HÓA QUAN HỆ

• Bước 1: Từ một biểu mẫu (tài liệu xuất: hoá đơn, chứng từ,…) lấy ra một danh sách các thuộc tính cho quan hệ chưa được chuẩn hoá (còn gọi là dạng chuẩn 0).

30

15

25/02/2016

CHUẨN HÓA QUAN HỆ

• Mỗi tiêu đề trong biểu mẫu là một thuộc tính. • Bỏ qua phần đầu đề và phần dưới cùng (một số ghi

chú, chữ ký …) của biểu mẫu.

• Không lấy các thuộc tính được suy diễn từ những thuộc tính khác (như thành tiền = đơn giá x số lượng) và các thuộc tính trình bày như ‘số thứ tự’ nếu có. • Bổ sung thêm một số thuộc tính định danh tương ứng với một số thuộc tính tên gọi chưa có định danh nếu cần thiết.

• Xác định nhóm thuộc tính lặp, các phụ thuộc hàm giữa

các thuộc tính.

31

CHUẨN HÓA QUAN HỆ

• Hãy xây dựng mô hình dữ liệu cho hệ thống từ mẫu phiếu xuất của công ty thương mại Y dưới đây. – Danh sách thuộc tính: số PX, ngày, số đại lý, địa chỉ, tên

hàng, đơn vị tính, đơn giá, số lượng.

– Bổ sung thêm thuộc tính mã hàng. – Phụ thuộc hàm: (quy định giá bán của mặt hàng không

thay đổi) số PX -> ngày

– số đại lý -> địa chỉ – mã hàng -> tên hàng, đơn vị tính, đơn giá – {số PX, mã hàng }-> số lượng – Khoá chính: số PX. – Nhóm lặp (*): mã hàng, tên hàng, đơn vị tính, đơn giá, số

lượng.

32

16

25/02/2016

CHUẨN HÓA QUAN HỆ

• Bước 2: Chuẩn hoá về dạng chuẩn 1 (1NF): Tách

nhóm thuộc tính lặp.

– Tách các thuộc tính không nằm trong nhóm lặp thành một quan hệ (R1). Xác định khoá chính của quan hệ này.

– Các thuộc tính của nhóm lặp và khoá chính của quan hệ trên (R1) tạo thành một quan hệ (R2). Xác định khóa chính cho quan hệ R2 (khoá chính của R2 sẽ là một khoá ghép giữa khoá của R1 và một thuộc tính khác trong R2)

– Ví dụ: R{A, B, C, D, E} và khoá là {A}. Tồn tại nhóm thuộc tính lặp {C,D} thì tách thành 2 quan hệ R1{A, B, E} và R2{A,C,D}.

33

CHUẨN HÓA QUAN HỆ

• Bước 3: Chuẩn hoán về dạng chuẩn 2 (2NF): Loại bỏ phụ thuộc bộ phận vào khoá (chỉ áp dụng với các quan hệ có khoá ghép)

– Tách các thuộc tính tham gia vào phụ thuộc hàm được xác định bởi một phần của khoá vào một quan hệ mới (R3). Khoá chính của quan hệ là thuộc tính xác định hàm. – Phần còn lại với khoá chính của quan hệ trên (R3) là một quan hệ giữ nguyên khoá chính như quan hệ ban đầu. – Ví dụ: R{A, B, C, D} và khoá là {A,B}. Tồn tại phụ thuộc hàm A C

thì tách thành 2 quan hệ R1{A,C} và R2{A, B, D}.

34

17

25/02/2016

CHUẨN HÓA QUAN HỆ

• Bước 4: Chuẩn hoá về dạng chuẩn 3 (3NF): Loại bỏ phụ thuộc hàm giữa các thuộc tính không khoá. – Tách các thuộc tính tham gia vào phụ thuộc hàm giữa các thuộc tính không khoá vào một quan hệ mới (R4). Khoá chính của quan hệ là thuộc tính xác định hàm. – Phần còn lại và khoá chính của quan hệ trên (R4) là một quan hệ giữ nguyên khoá chính của quan hệ ban đầu.

– Ví dụ: R{A, B, C, D} mà khoá là {A,B}. Tồn tại phụ thuộc hàm

C D thì tách thành 2 quan hệ R1{C, D} và R2{A, B, C}

35

CHUẨN HÓA QUAN HỆ

36

18