You are on page 1of 65

Phân tích, thiết kế HTTT

Thành phần DỮ LIỆU


Ts. Nguyễn An Tế
Khoa Công nghệ thông tin kinh doanh
tena@ueh.edu.vn

BI001 (22C1INF50901001)

Mục tiêu

 Hiểu những khái niệm của một số mô hình DL phổ biến:


mô hình thực thể - mối kết hợp và mô hình hướng đối tượng

 Vận dụng các mô hình để lập sơ đồ quan niệm DL

 Vận dụng các bước phân tích và thiết kế thành phần DL

2
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Nội dung

1. Mô hình dữ liệu

2. Phân tích thành phần dữ liệu

3. Thiết kế thành phần dữ liệu

3
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1. Mô hình DL

 Một số mô hình phổ biến

● Mô hình thực thể-mối kết hợp (Entity-Relationship Model)

● Mô hình DL hướng đối tượng (Object-Oriented Data Model)

● Mô hình DL quan hệ (Relational Data Model)

 Công cụ hỗ trợ

● DB Main, PowerDesigner, StarUML, IBM Rational Rose

● …

4
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.1 Mô hình thực thể-mối kết hợp

 Entity-Relationship Model: mô hình hóa DL ở mức quan niệm

● khả năng diễn đạt ngữ nghĩa

● không có ngôn ngữ xử lý DL, không có DBMS

 Các khái niệm cơ bản

● thực thể (entity)

● thuộc tính (attribute)

● loại thực thể (entity type)

● mối kết hợp (relationship)

● loại mối kết hợp (relationship type)

5
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.1 Mô hình ER (tt.)

 Thực thể (entity)

● đối tượng tồn tại khách quan trong thế giới thực
 sinh viên tên là A, giảng viên tên là B, …
 khách hàng C, nhân viên D…
 tượng Phù Đổng Thiên Vương, …

● khái niệm trừu tượng


 trường ĐHKT, khoa CNTTKD, công ty X, …
 thời khóa biểu học kỳ 2 của khoa CNTT, …
 điểm thi môn PTTK HTTT của sinh viên A
 …

6
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.1 Mô hình ER (tt.)

 Thuộc tính (attribute): thể hiện những đặc trưng của thực thể

● tên thuộc tính (attribute name)

● kiểu DL (data type)

● bản số (cardinality): số lượng giá trị (min-max) mà thuộc tính


có thể lấy tại 1 thời điểm (0-1, 0-5, 0-n, 1-1, 1-n, 4-5, m-n, …)

● thuộc tính khóa

7
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.1 Mô hình ER (tt.)

 Ví dụ về thuộc tính có bản số (1-1) của sinh viên X

● mã số SV, giới tính, ngày sinh, ...

 Ví dụ về thuộc tính có bản số (0-1) của sinh viên X

● ngày vào đoàn, ...

 Ví dụ về thuộc tính có bản số (0-n) của sinh viên X

● tài khoản Facebook, ...

 Ví dụ về thuộc tính có bản số (1-n) của sinh viên X

● địa chỉ, ...

8
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.1 Mô hình ER (tt.)

 Bản số của các thuộc tính của xe gắn máy 59C4-070.de

● biển số xe (1-1)

● HĐ bảo hiểm (0-N)

● số bánh xe (1-1)

9
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.1 Mô hình ER (tt.)

 Loại thực thể (entity type): tập hợp những thực thể cùng loại
(các thuộc tính giống nhau)

● tên loại thực thể

● thuộc tính

● thuộc tính khóa: internal, external

10
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.1 Mô hình ER (tt.)

 Mối kết hợp (relationship): thể hiện mối quan hệ ngữ nghĩa
giữa các thực thể

● VD: 3 MKH giữa (thực thể) khoa CNTT và các (thực thể)
sinh viên

Sinh viên CQ990410

Khoa CNTT
Sinh viên TT990401

Sinh viên CL990403

11
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.1 Mô hình ER (tt.)

 Loại mối kết hợp (relationship type): tập hợp những MKH cùng
loại

● tên loại MKH

● [thuộc tính]

● vai trò (role): ý nghĩa của mỗi nhánh

● bậc (degree): số vai trò của loại MKH (2 ngôi, 3 ngôi, …)

12
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.1 Mô hình ER (tt.)

 Loại mối kết hợp: tập hợp những MKH cùng loại

Loại MKH có thuộc tính

SINH VIEN
ma sv KET QUA MON HOC
co cua
ten sv diem ma mh
0-N 0-N
ngay sinh lan thi ten mh
gioi tinh

13
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.1 Mô hình ER (tt.)

 QLSV: loại MKH có bản số MAX của các vai trò = 1

14
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.1 Mô hình ER (tt.)

 QLSV: loại MKH có bản số MAX của 2 vai trò đều = …-N

 QLSV: loại MKH có bản số MAX của 2 vai trò là …-1 và …-N

15
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.1 Mô hình ER (tt.)

 Những hệ thống ký hiệu khác

16
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.2 Mô hình ER mở rộng (Enhanced ERM)

 Loại MKH đệ qui / phản thân  định nghĩa trên 1 loại thực thể

17
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.2 Mô hình EER (tt.)

 Ví dụ về loại MKH đệ qui / phản thân (cấu trúc cây)

18
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.2 Mô hình EER (tt.)

 Ví dụ về loại MKH đệ qui (không phải cấu trúc cây)

19
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.2 Mô hình EER (tt.)

 Mở rộng: các loại MKH tổng quát hóa và chuyên biệt hóa

20
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình DL hướng đối tượng (HĐT)

 Trừu tượng hóa

Gỉảng
Trừu tượng hóa (Abstraction) viên

HƯỚNG Tính đóng gói (Encapsulation)

ĐỐI
Tính đơn thể (Modularity)
TƯỢNG
Sinh viên
Tính phân cấp (Hierarchy)
Môn học

TKB

21
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.3 Mô hình HĐT (tt.)

 Che giấu cài đặt (“che giấu thông tin”) với NSD

● NSD chỉ biết hình thức giao tiếp (interface),


không biết chi tiết kỹ thuật bên trong

Trừu tượng hóa (Abstraction)

HƯỚNG Tính đóng gói (Encapsulation)

ĐỐI
Tính đơn thể (Modularity)
TƯỢNG

Tính phân cấp (Hierarchy)

22
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)

 Phân chia một vấn đề phức tạp thành nhiều phần nhỏ hơn để
dễ quản lý

Trừu tượng hóa (Abstraction)

HƯỚNG Tính đóng gói (Encapsulation)

ĐỐI
Tính đơn thể (Modularity)
TƯỢNG

Tính phân cấp (Hierarchy)

23
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.3 Mô hình HĐT (tt.)

Mức trừu tượng CAO

Tài sản
Trừu tượng hóa (Abstraction)

Ngân hàng Chứng khoán Bất động sản


HƯỚNG Tính đóng gói (Encapsulation)

ĐỐI
Tính đơn thể (Modularity)
TƯỢNG Trái phiếu Cổ phiếu

Tính phân cấp (Hierarchy)


TK tiết kiệm TK thanh toán

Mức trừu tượng THẤP

24
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)

 Đối tượng (object)

● tồn tại khách quan

● trừu tượng

● khái niệm, phương pháp

25
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.3 Mô hình HĐT (tt.)

 Đối tượng

● thuộc tính Thuộc tính


Hành vi
● trạng thái

● hành vi

Mã GV: GV005

Tên GV: Nguyễn Văn A


Đối tượng

Ngày sinh: 25/09/1988

Địa chỉ: 59C NDC


Giảng viên A
Đường biên

26
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)

 Lớp (class) biểu diễn cho một nhóm đối tượng có chung:

● thuộc tính

● hành vi

● các mối quan hệ và ngữ nghĩa

 đối tượng là một thể hiện của lớp

Tên lớp
Thuộc tính

Hành vi

Nhóm gỉảng viên


27
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.3 Mô hình HĐT (tt.)

 Mối kết hợp hay liên kết (association) ngữ nghĩa giữa classes

28
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)

 Mối liên kết tập hợp (aggregation)

29
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.3 Mô hình HĐT (tt.)

 Mối liên kết thành phần (composition): 1 dạng aggregation có


tính sở hữu cao (đối tượng tổng hợp sẽ quản lý việc tạo lập &
hủy bỏ đối tượng thành phần của nó)

4 BANH XE

1..1
XE HOI
1..1

2..4 CUA XE

30
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)

 Tổng quát hóa (generalization)-Chuyên biệt hóa (specialization)

GIANG VIEN

GV CO HUU GV THING GIANG

31
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.3 Mô hình HĐT (tt.)

 Sự thừa kế (inheritance): lớp con (subclass) kế thừa các thuộc


tính, hành vi, các mối quan hệ từ lớp cha (superclass)

Những gì được kế thừa?

 Một lớp con có thể:

● bổ sung thuộc tính, hành vi và các mối quan hệ

● định nghĩa lại các hành vi

32
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)

 Kế thừa đơn: lớp con kế thừa từ 1 lớp cha

Lớp cha
Super class

Lớp con
Subclass

33
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

1.3 Mô hình HĐT (tt.)

 Kế thừa bội: lớp con kế thừa từ nhiều lớp cha

Lớp cha
Super class

Lớp con
Subclass

34
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
1.3 Mô hình HĐT (tt.)

 Sử dụng sơ đồ lớp (class diagram)  cách tiếp cận HĐT ?

● sử dụng trong giai đoạn nào ?

● CSDL quan hệ  sơ đồ lớp (lập trình HĐT)

● sơ đồ lớp  CSDL quan hệ

35
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

Nội dung

1. Mô hình DL

2. Phân tích thành phần dữ liệu

2.1 Chọn lựa mô hình dữ liệu

2.2 Lập sơ đồ quan niệm dữ liệu

2.3 Ràng buộc dữ liệu ở mức quan niệm

3. Thiết kế thành phần dữ liệu

36
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.1 Chọn lựa mô hình DL

 Mô hình hóa DL ở mức quan niệm: biểu diễn, thể hiện ngữ
nghĩa của DL

● thế giới thực  máy tính

● phụ thuộc mức độ trừu tượng

37
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.1 Chọn lựa mô hình DL (tt.)

 Thành phần DỮ LIỆU (giới hạn: MIS và TPS)


mức trừu tượng

quan niệm
PHÂN TÍCH sơ đồ quan niệm
(conceptual)

luận lý
sơ đồ logic
(logical)

THIẾT KẾ
tổ chức sơ đồ tổ chức
(organizational) CSDL

vật lý sơ đồ cài đặt


(physical) CSDL

DỮ LIỆU
38
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.1 Chọn lựa mô hình DL (tt.)

 Sơ đồ quan niệm DL

● trả lời câu hỏi WHAT

 Yêu cầu về chất lượng mô hình hóa

● chính xác

● đầy đủ (trong phạm vi ứng dụng)

● độc lập với môi trường cài đặt

● rõ ràng, dễ hiểu

39
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.1 Chọn lựa mô hình DL (tt.)

Cách tiếp cận


Công cụ hỗ trợ
Phương pháp

Mô hình hóa
DL

Mô hình DL

40
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.1 Chọn lựa mô hình DL (tt.)

 Mô hình DL quan hệ

 dễ dàng thiết kế về sau (chuẩn hóa)

 hiệu quả khai thác CSDL về sau

 khả năng diễn đạt ngữ nghĩa: ngôn ngữ quá hình thức

Cách tiếp cận


Công cụ hỗ trợ
Phương pháp

Mô hình hóa
DL

Mô hình DL

41
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.1 Chọn lựa mô hình DL (tt.)

 Mô hình DL HĐT

 khả năng diễn đạt ngữ nghĩa

 phân biệt mức quan niệm và thiết kế

 thiết kế, cài đặt CSDL về sau

Cách tiếp cận


Công cụ hỗ trợ
Phương pháp

Mô hình hóa
DL

Mô hình DL

42
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.1 Chọn lựa mô hình DL (tt.)

 Mô hình ER, EER

 khả năng diễn đạt ngữ nghĩa

 không có DBMS hỗ trợ !

 Tại sao thường hay chọn mô hình ER, EER cho mức QN ?

● khả năng diễn đạt ngữ nghĩa

● dễ dàng t.kế = mô hình quan hệ Cách tiếp cận


Công cụ hỗ trợ
Phương pháp

Mô hình hóa
DL

Mô hình DL

43
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.1 Chọn lựa mô hình DL (tt.)

 Tại sao không chọn mô hình HĐT cho mức QN ?

● phần mềm ứng dụng

● hệ thống thông tin + CSDL

44
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL

 Cách tiếp cận (approach)

● “a way of dealing with something; a way of doing or thinking


about something” (Merriam-Webster)

● nguyên lý cơ sở, nền tảng

● mang tính định hướng

 Phương pháp (method)

● các bước thực hiện

45
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.2 Lập sơ đồ quan niệm DL (tt.)

 Cách tiếp cận

● theo DL

● theo xử lý

● theo kết xuất

 Công cụ hỗ trợ

● DB-Main, PowerDesigner, StarUML, IBM Rational Rose

● ...

46
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL (tt.)

B1.
B1.
Xác
Xácđịnh
định
các loại TH.THỂ
các loại TH.THỂ

B2.
B2.
Xác
Xácđịnh
địnhcác
cácloại
loạiMKH
MKH
giữa những loại TH.THỂ
giữa những loại TH.THỂ

B3.
B3.
Hoàn
Hoànchỉnh
chỉnh

sơ đồ quanniệm
đồ quan niệmDL
DL
47
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.2 Lập sơ đồ quan niệm DL – B1

 Cách tiếp cận theo DL

● đối tượng quản lý


 HTTT quản lý đơn đặt hàng: hàng hóa
 HTTT quản lý vật tư: vật tư
 HTTT quản lý kinh doanh phòng của khách sạn: phòng
 HTTT quản lý kinh doanh dịch vụ thuê xe du lịch: xe du lịch, loại
xe

48
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B1 (tt.)

 Cách tiếp cận theo DL

● chứng từ - công cụ quản lý


 HTTT quản lý đơn đặt hàng: đơn đặt hàng, hóa đơn, tồn kho hàng
hóa, công nợ khách hàng,...
 HTTT quản lý vật tư: phiếu nhập, phiếu xuất,...
 HTTT quản lý kinh doanh dịch vụ thuê xe du lịch: hợp đồng thuê
xe,...

49
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.2 Lập sơ đồ quan niệm DL – B1 (tt.)

 Cách tiếp cận theo DL

● tác nhân
 HTTT quản lý đơn đặt hàng: tác nhân NHÂN VIÊN không phải đối
tượng cần quản lý
 HTTT quản lý vật tư: tác nhân PHÒNG BAN, NHÂN VIÊN không
phải đối tượng cần quản lý
 HTTT quản lý đơn đặt hàng: tác nhân KHÁCH HÀNG cần được
quản lý
 HTTT quản lý nhân sự: tác nhân PHÒNG BAN, NHÂN VIÊN cần
được quản lý

50
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B1 (tt.)

 Cách tiếp cận theo DL

● các loại đối tượng trừu tượng


 công nợ
 TKB, môn học, khoa,...
 ...

51
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.2 Lập sơ đồ quan niệm DL – B1 (tt.)

 Cách tiếp cận theo xử lý

● những DL liên quan đến các qui trình xử lý


 Qui trình lập thời khóa biểu liên quan đến: LỚP, GIẢNG VIÊN,
MÔN HỌC, PHÒNG HỌC,...
 Qui trình đặt hàng liên quan đến: ĐƠN ĐẶT HÀNG, HÀNG HÓA,
KHÁCH HÀNG, PHIẾU GIAO HÀNG,...

52
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B1 (tt.)

 Cách tiếp cận theo kết xuất

● những DL liên quan đến các kết xuất


 Các báo cáo thống kê: tồn kho hàng hóa, phiếu điểm sinh viên,
lịch phân công giảng dạy,...

53
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.2 Lập sơ đồ quan niệm DL – B1 (tt.)

 Xác định các loại thực thể

● cách tiếp cận theo DL

● cách tiếp cận theo xử lý

● cách tiếp cận theo kết xuất

PHỐI HỢP CÁC PHƯƠNG PHÁP

54
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B2 (tt.)

B1.
B1.
Xác
Xácđịnh
định
các loại TH.THỂ
các loại TH.THỂ

B2.
B2.
Xác
Xácđịnh
địnhcác
cácloại
loạiMKH
MKH
giữa những loại TH.THỂ
giữa những loại TH.THỂ

B3.
B3.
Hoàn
Hoànchỉnh
chỉnh

sơ đồ quanniệm
đồ quan niệmDL
DL
55
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.2 Lập sơ đồ quan niệm DL – B2 (tt.)

 Phương pháp “vét cạn”

0-N ?-?

?-? ?-?
?-?

?-? ?-?
?-?

?-?

?-?

56
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B2 (tt.)

 Cách tiếp cận dựa trên xử lý

● xem xét những loại thực thể liên quan đến cùng 1 xử lý

57
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.2 Lập sơ đồ quan niệm DL – B2 (tt.)

 Phương pháp dựa trên kết xuất

● xem xét những loại thực thể liên quan đến cùng 1 kết xuất

58
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B3 (tt.)

B1.
B1.
Xác
Xácđịnh
định
các loại TH.THỂ
các loại TH.THỂ

B2.
B2.
Xác
Xácđịnh
địnhcác
cácloại
loạiMKH
MKH
giữa những loại TH.THỂ
giữa những loại TH.THỂ

B3.
B3.
Hoàn
Hoànchỉnh
chỉnh

sơ đồ quanniệm
đồ quan niệmDL
DL
59
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.2 Lập sơ đồ quan niệm DL – B3 (tt.)

 Hoàn chỉnh sơ đồ quan niệm DL

● bảo đảm tính rõ ràng (ngữ nghĩa), không “hiểu ngầm”

● cho phép trùng lắp (nhằm gia tăng mức độ diễn đạt rõ ràng)

60
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.2 Lập sơ đồ quan niệm DL – B3 (tt.)

 Mô tả tính “hiện hành” ở mức quan niệm

 Cài đặt “lịch sử” ở mức thiết kế

61
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.2 Lập sơ đồ quan niệm DL – B3 (tt.)

 Lời giải KHÔNG DUY NHẤT

Cách 1

Cách 2

62
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm

 Thể hiện RB trong sơ đồ QNDL: “trong vòng 3 ngày làm việc,


phải giao đầy đủ những mặt hàng mà khách đã đặt”

 Các mô hình (khái niệm, qui tắc, …) có đủ khả năng biểu diễn
thế giới thực vô cùng phong phú ?

63
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.3 Ràng buộc DL ở mức quan niệm (tt.)

 Ý nghĩa

● phương tiện diễn đạt bổ sung ngữ nghĩa cho các sơ đồ QNDL

● sơ đồ QNDL không có RB DL đi kèm ?

 Hình thức thể hiện

● ngôn ngữ tự nhiên

● ngôn ngữ hình thức


biểu diễn
= các khái niệm biểu diễn
của mô hình = RB

64
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)

 Ký hiệu

● loại thực thể: KHACH_HANG

● thuộc tính: hoten

● phép chiếu: KHACH_HANG.hoten, KHACH_HANG[hoten]

● mối kết hợp: r = (e1, e2, …, en)

● loại mối kết hợp: Ton_kho

65
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.3 Ràng buộc DL ở mức quan niệm (tt.)

 RB về miền giá trị của thuộc tính

KET_QUA.diem_thi  [0,10]

 RB giữa các thuộc tính trong cùng loại thực thể/loại MKH

DAT_HANG.ngay_dat_hang  DAT_HANG.ngay_giao_du_kien

66
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)

 RB giữa các thực thể trong cùng loại thực thể (hay giữa các
MKH trong cùng loại MKH)

● số lượng sinh viên của một lớp không quá 100


 biểu diễn trên sơ đồ (bản số của loại MKH)

● thuộc tính khóa


 biểu diễn trên sơ đồ

67
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.3 Ràng buộc DL ở mức quan niệm (tt.)

 RB giữa các thuộc tính của NHIỀU loại thực thể/loại MKH

● ngày đặt hàng (trong DAT_HANG) phải trước hay bằng ngày
giao hàng (trong GIAO_HANG)

68
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)

 RB giữa các thuộc tính của NHIỀU loại thực thể/loại MKH

● ngày giao hàng (trong GIAO_HANG) không quá 7 ngày kể từ


ngày đặt (trong DAT_HANG)

69
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.3 Ràng buộc DL ở mức quan niệm (tt.)

 RB giữa các thực thể trong NHIỀU loại thực thể / giữa các
MKH trong NHIỀU loại MKH

● mỗi chi tiết đặt hàng (trong CTIET_DH) được giao tối đa 2 lần
(trong CTIET_GH)

70
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)

 RB phức tạp trên các thuộc tính, thực thể, MKH của nhiều loại
thực thể, nhiều loại MKH

● tổng số lượng giao ≤ số lượng đặt của 1 mặt hàng

● tổng số lượng giao = số lượng đặt của 1 mặt hàng

71
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.3 Ràng buộc DL ở mức quan niệm (tt.)

 RB giữa các loại MKH: phụ thuộc

● sự tồn tại của 1 MKH phụ thuộc vào sự tồn tại của MKH khác

72
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)

 Ví dụ về loại MKH phụ thuộc

● sinh viên chỉ được dự thi khi đã đóng lệ phí thi

73
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.3 Ràng buộc DL ở mức quan niệm (tt.)

 RB giữa các loại MKH: đồng đẳng

● một thực thể hoặc KHÔNG tham gia bất kỳ MKH nào, hoặc
phải tham gia TẤT CẢ các MKH
VD: khách hàng nếu mua (sỉ) thì sẽ có công nợ & ngược lại

● quan hệ giữa đồng đẳng và phụ thuộc

74
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)

 Cho ví dụ về loại MKH đồng đẳng

75
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.3 Ràng buộc DL ở mức quan niệm (tt.)

 RB giữa các loại MKH: loại trừ nhau

● một thực thể chỉ được tham gia tối đa 1 trong số các MKH

?

76
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)

 So sánh loại MKH loại trừ nhau với loại MKH chuyên biệt hóa

● Giống nhau: không cho phép tham gia đồng thời

● Khác nhau:

Loại MKH loại trừ Loại MKH chuyên biệt hóa

 Có thể không tham gia cả 2 loại MKH  Phải tham gia vào 1 và chỉ 1 loại MKH

 Tối thiểu phải có 2 loại thực thể  Tối thiểu phải có 3 loại thực thể

 Max  1  Max =1

77
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.3 Ràng buộc DL ở mức quan niệm (tt.)

 So sánh loại MKH loại trừ nhau với loại MKH chuyên biệt hóa

THANH VIEN
ma tv
≠ D ho tv
ten tv
0-1
0-1

Vai tro GV Vai tro HV

1-1 1-1

GIANG VIEN SINH VIEN


ma gv ma sv
so nam gd

78
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)

 RB giữa các loại MKH: tồn tại bắt buộc

● một thực thể phải tham gia ít nhất 1 trong số các MKH

79
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

2.3 Ràng buộc DL ở mức quan niệm (tt.)

 VD: Các loại MKH tồn tại bắt buộc

● SV phải đăng ký làm luận văn hoặc dự thi tốt nghiệp


80
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
2.3 Ràng buộc DL ở mức quan niệm (tt.)

 RB giữa các loại MKH: chu trình

● VD: chỉ giao những mặt hàng đã đặt

81
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

Nội dung

1. Mô hình dữ liệu

2. Phân tích thành phần dữ liệu

3. Thiết kế thành phần dữ liệu

3.1 Chuyển đổi sơ đồ quan niệm dữ liệu

3.2 Hoàn chỉnh sơ đồ logic dữ liệu

3.3 Ràng buộc dữ liệu ở mức thiết kế

3.4 Kiểm tra ràng buộc trên CSDL

82
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3. Thiết kế thành phần DL

 Mục tiêu thiết kế thành phần DL HOW


● cách thức lưu trữ, cập nhật và khai thác DL

 Yêu cầu chất lượng

● chính xác

● đầy đủ

● HIỆU QUẢ

83
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3. Thiết kế thành phần DL (tt.)

 Mô hình DL

● mô hình DL quan hệ

 Phương pháp

● áp dụng các quy tắc chuyển đổi từ mô hình ER, EER

 Công cụ hỗ trợ

● DB-Main, PowerDesigner, StarUML, IBM Rational Rose

● ...

84
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3. Thiết kế thành phần DL (tt.)

B1.
B1.
Chuyển
Chuyểnđổiđổi

sơ đồ quan niệmDL
đồ quan niệm DL

B2.
B2.
Hoàn
Hoànchỉnh
chỉnh

sơ đồ quanhệ
đồ quan hệDL
DL

B3.
B3.

Mô tả ràngbuộc
tả ràng buộc
ởởmức
mứcthiết
thiếtkế
kế

85
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.1 Chuyển đổi sơ đồ quan niệm DL

 Quy tắc #1

a) Loại thực thể S  lược đồ quan hệ S’


b) Thuộc tính của S  thuộc tính của S’
c) Khóa của S  khóa của S’

86
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.1 Chuyển đổi sơ đồ quan niệm DL (tt.)

 Lưu ý với thuộc tính đa trị (0-n hay 1-n) trong quy tắc #1:

● tăng kích thước của thuộc tính tương ứng trong S’, hoặc

● tạo thêm lược đồ quan hệ S’’ có khóa chứa khóa của S’

87
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.1 Chuyển đổi sơ đồ quan niệm DL (tt.)

 Quy tắc #2

a) Nếu các nhánh của loại mối kết hợp R đều có giá trị max của bản số
là N thì R sẽ được chuyển thành một lược đồ quan hệ R’ gồm các
thuộc tính của loại mối kết hợp này, nếu có, cùng với thuộc tính khóa
của các loại thực thể tham gia vào R.

b) Khóa của lược đồ quan hệ mới gồm khóa của mỗi loại thực thể tham
gia vào loại mối kết hợp.

88
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.1 Chuyển đổi sơ đồ quan niệm DL (tt.)

 Quy tắc #3
a) Nếu loại mối kết hợp R mà nhánh A có giá trị bản số max là 1 và
nhánh B còn lại có giá trị bản số max là N thì loại bỏ R và thêm các
thuộc tính khóa của B vào lược đồ quan hệ A’ tương ứng với A (khóa
của B sẽ trở thành khóa ngoại của A).

b) Nếu R có các thuộc tính thì chúng cũng được thêm vào lược đồ
quan hệ A’ tương ứng với A.

89
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.1 Chuyển đổi sơ đồ quan niệm DL (tt.)

 Quy tắc #4

Nếu loại mối kết hợp R mà các nhánh đều có giá trị của bản số max là 1
thì áp dụng quy tắc 3 cho một trong các nhánh (tùy chọn).

90
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.1 Chuyển đổi sơ đồ quan niệm DL (tt.)

 Quy tắc #5
Nếu có NHIỀU loại mối kết hợp được định nghĩa trên 2 loại thực thể
thì có thể chuyển đổi lần lượt từng loại mối kết hợp và chú ý đặt tên
phân biệt cho các thuộc tính.

91
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.1 Chuyển đổi sơ đồ quan niệm DL (tt.)

 Quy tắc #6 (Chuyên biệt hóa – Tổng quát hóa)


Cách 1: Chỉ tạo một lược đồ quan hệ, gồm tất cả những thuộc tính của
các loại thực thể cha và con.
Cách 2: Chuyển đổi mỗi loại thực thể CON thành 1 lược đồ quan hệ,
trong đó khóa của mỗi lược đồ quan hệ này phải chứa thêm các thuộc
tính khóa của lược đồ quan hệ tương ứng với loại thực thể CHA.

92
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.1 Chuyển đổi sơ đồ quan niệm DL (tt.)

 Quy tắc #7 (Loại MKH phản thân / đệ qui)


a) Xem như sao chép loại thực thể thành 2 loại thực thể và “mở ra” thành
2 nhánh thông thường; sau đó áp dụng một trong những quy tắc phù hợp
nhưng chỉ tạo ra một lược đồ quan hệ mà thôi.

b) Đối với trường hợp thể hiện cấu trúc cây, sau khi chuyển đổi loại thực
thể thành lược đồ quan hệ thì cần bổ sung thêm một thuộc tính phân cấp
vào lược đồ quan hệ này.

93
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.2 Hoàn chỉnh sơ đồ logic DL

 Thêm, bớt các quan hệ

● VD: PHIEUNHAP, PHIEUXUAT, TONKHO ?

 Thêm, bớt các thuộc tính

● VD: (soluong, dongia, thanhtien) ?

 Kiểm tra các dạng chuẩn

● “đa số” các quan hệ đạt DC3 (tối thiểu)

94
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức thiết kế

 RB toàn vẹn (integrity constraint): ngữ nghĩa bổ sung

● điều kiện áp đặt lên tất cả dữ liệu (thỏa mãn ở mọi thời điểm)

● CSDL nhất quán: dữ liệu thỏa mãn MỌI ràng buộc toàn vẹn

● CSDL không nhất quán:  RB bị vi phạm (ngữ nghĩa mâu


thuẫn)

 3 yếu tố của RB

● điều kiện

● ngữ cảnh

● tầm ảnh hưởng

95
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.3 RB DL ở mức th.kế – Điều kiện

 Điều kiện: thể hiện ngữ nghĩa / bảo đảm hiệu quả khai thác

● ngôn ngữ tự nhiên (sự nhập nhằng, không rõ ràng)

● ngôn ngữ hình thức

● mã giả (pseudo-code) ?

96
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 Ví dụ

● Lương của nhân viên thấp hơn lương của người phụ trách
e  NHANVIEN, s  NHANVIEN: (e.phutrach = s.manv)
 (e.luong < s.luong)

● Trưởng phòng phảI làm việc tại phòng mà mình đang quản lý
d  DONVI,
e  NHANVIEN: (e.manv = d.tr_phong)  (e.madv = d.madv)

97
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 Biểu diễn điều kiện của RB bằng đại số quan hệ

R= (hay R  )

R1  R2 (hay R1  R2)

với R, R1 và R2 là các quan hệ

 Ví dụ

● Lương của nhân viên thấp hơn lương của người phụ trách

98
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 Biễu diễn khóa K

(R1.K = R2.K) AND (R1.R**  R2.R**)(R1 x R2) = 

với: R1 = R2 = R(S) và R** = R*  K

99
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 RB trên 1 quan hệ: liên bộ (điều kiện giữa các bộ)

● Tối đa 10 người tham gia trong một đề án


a  PHANCONG: card( { t  PHANCONG | t.mada = a.mada } ) ≤ 10
Đại số quan hệ:

 Trường hợp đặc biệt: khóa

100
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 RB trên NHIỀU quan hệ: giữa những bộ của các quan hệ

● Mỗi phòng có ít nhất 1 nhân viên


d  DONVI, e  NHANVIEN: e.madv = d.madv
Đại số quan hệ:

 Trường hợp đặc biệt: khóa ngoại

101
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 RB trên NHIỀU qhệ: giữa những th.tính của các bộ liên quan

● Trưởng phòng phảI làm việc tại phòng mà mình đang quản lý
d  DONVI, e  NHANVIEN: (e.manv = d.tr_phong)  (e.madv = d.madv)
NHANVIEN manv honv tennv ... madv

333445555 Ly Nam ... Kth


Bộ 987987987 Tran Hung ... Kth
liên quan
... ... ... ... ...

DONVI madv tendv tr_phong

Mkt Marketing 83244665


Kth Ky thuat 987987987
... ... ...

102
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 Chu trình trong lược đồ CSDL

THANNHAN

PHANCONG
manv

mada
NHANVIEN

DEAN

madv
madv

DONVI
VITRI

103
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.3 RB DL ở mức th.kế – Điều kiện (tt.)

A = (NHANVIEN DONVI DEAN) [manv, mada]

B = PHANCONG[manv, mada]

B  A: NV chỉ tham gia những đề án do phòng mình phụ trách

B = A: NV phải tham gia tất cả đề án do phòng mình phụ trách

104
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 Chuyển đổi RB: các mối kết hợp tạo chu trình

105
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 RB ở mức thiết kế với quy tắc #1

● thuộc tính NOT NULL

106
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 RB ở mức thiết kế với quy tắc #2

● nếu một nhánh có giá trị của bản số min > 0 thì trong phải bổ
sung một ràng buộc liên quan

“Mỗi công trình phải được thực hiện bởi ít nhất 1 nhà NC”

107
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 RB ở mức thiết kế với quy tắc #3

● Nếu bản số của nhánh A là (1,1) thì các thuộc tính mới được
thêm vào lược đồ quan hệ tương ứng với A sẽ có đặc tính
NOT NULL

108
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 Chuyển đổi RB: mối kết hợp phụ thuộc

109
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 Chuyển đổi RB: các mối kết hợp đồng đẳng

110
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 Chuyển đổi RB: các mối kết hợp loại trừ nhau

?

111
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 Chuyển đổi RB: mối kết hợp bắt buộc tồn tại

112
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Điều kiện (tt.)

 RB ở mức thiết kế với quy tắc #6

113
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.3 RB DL ở mức th.kế – Ngữ cảnh

 Ngữ cảnh: các quan hệ mà trên đó RB được định nghĩa


NHANVIEN(manv, honv, tennv, ngaysinh, phai, luong, phutrach, madv)

DONVI(madv, tendv, tr_phong, ngay_nham_chuc)

● Lương của nhân viên thấp hơn lương của người phụ trách
 Ngữ cảnh: NHANVIEN

● Trưởng phòng phảI làm việc tại phòng mà mình đang quản lý
 Ngữ cảnh: NHANVIEN, DONVI

114
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – Tầm ảnh hưởng

 Tầm ảnh hưởng: các thao tác cập nhật các quan hệ ngữ cảnh

● thêm dữ liệu

● sửa dữ liệu (thuộc tính không khóa)

● xóa dữ liệu

Thêm Xóa Sửa

Quan hệ 1  

Ngữ cảnh Quan hệ 2 


Quan hệ n 

: phải kiểm tra RB


115
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.3 RB DL ở mức th.kế – TAH (tt.)

 RB trên 1 quan hệ: miền giá trị

● Lương tối thiểu là 650 000


e  NHANVIEN: e.luong  650 000
Đại số quan hệ:

● Vai trò trong một đề án


a  PHANCONG: a.vaitro  {“T”hiet_ke, “L”ap_trinh}
Đại số quan hệ:

 Lưu ý: bảng TAH giống nhau

Thêm Xóa Sửa

Quan hệ  

116
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – TAH (tt.)

 RB trên 1 quan hệ: liên thuộc tính (điều kiện trên cùng 1 bộ)

● Thời hạn giao hàng


c  DAT_HANG: c.ngaydh + 7 ≤ c.ngaygiaodk
Đại số quan hệ:

Thêm Xóa Sửa

DAT_HANG  

117
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.3 RB DL ở mức th.kế – TAH (tt.)

 RB trên 1 quan hệ: liên bộ

● Tối đa 10 người tham gia trong một đề án


a  PHANCONG: card( { t  PHANCONG | t.mada = a.mada } ) ≤ 10
Đại số quan hệ:

Thêm Xóa Sửa

PHANCONG   

 Lưu ý: KHÔNG được sửa giá trị thuộc tính khóa

118
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.3 RB DL ở mức th.kế – TAH (tt.)

 RB khóa ngoại

Thêm Xóa Sửa

Quan hệ CHA 

Quan hệ CON  

119
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.3 RB DL ở mức th.kế – TAH (tt.)

 Ví dụ

● Lương của nhân viên thấp hơn lương của người phụ trách

Thêm Xóa Sửa

NHANVIEN  

● Trưởng phòng phảI làm việc tại phòng mà mình đang quản lý
Thêm Xóa Sửa

NHANVIEN  

DONVI  

120
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.4 Kiểm tra RB trên CSDL

 Kiểm tra RB

● đầy đủ

● hiệu quả
 khi nào phải kiểm tra RB r ?
 vào thời điểm t, phải kiểm tra những RB nào ?

121
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.4 Kiểm tra RB trên CSDL (tt.)

 RB phải được kiểm tra sau mọi thao tác cập nhật CSDL ?

 Bảng tầm ảnh hưởng tổng hợp

Quan hệ 1 Quan hệ 2 Quan hệ n


T X S T X S … … … T X S
RB 1 + + + + + +
RB 2 +

RB m + + +

122
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.4 Kiểm tra RB trên CSDL (tt.)

 Các hình thức kiểm tra

● Khai báo cấu trúc: PRIMARY KEY, FOREIGN KEY, CHECK


CONSTRAINT, …

● Trigger

● Transaction

123
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.4 Kiểm tra RB trên CSDL (tt.)

 Trigger (ECA): hành động (Action) sẽ được tự động thực hiện


khi 1 biến cố (Event) xảy ra và khi 1 điều kiện (Condition)
được thỏa mãn
thêm,
biến cố sửa,
(trước / sau) xóa

giá trị cũ Thực hiện


True
và Điều kiện hành động
giá trị mới
False

END

124
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.4 Kiểm tra RB trên CSDL (tt.)
NHANVIEN(manv, honv, tennv, ngaysinh, phai, luong, phutrach, madv)

DONVI(madv, tendv, tr_phong, ngay_nhamchuc)

 Ví dụ: Trưởng phòng phảI làm việc tại phòng mà mình đang
quản lý

● có thể dùng trigger ?

● transaction

125
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

3.4 Kiểm tra RB trên CSDL (tt.)

 Transaction: đơn vị xử lý (chuỗi thao tác)

● hoàn tất (COMMIT): mọi thao tác đều được thực hiện khi tất cả
các RB không bị vi phạm

● không hoàn tất (ROLLBACK): mọi thao tác đều bị hủy bỏ (CSDL
trở về trạng thái ban đầu)

 Khóa chốt (lock) dữ liệu

● lock(A): ngăn cấm các transactions khác cập nhật A (bộ/quan


hệ)  chỉ được đọc

● unlock(A): mở khóa A  các transactions khác có thể cập nhật

126
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
3.4 Kiểm tra RB trên CSDL (tt.)

 Đặc trưng của transaction (ACID)

● Atomicity: mọi thao tác hoặc hoàn tất hoặc bị hủy bỏ hoàn toàn

● Coherence: CSDL chuyển từ trạng thái nhất quán  nhất quán

● Isolation: các transactions khác không thấy những thay đổi trung
gian

● Durability: kết quả của transaction là bền vững

127
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

Thảo luận

128
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU
Tài liệu tham khảo

 Tài liệu tiếng Anh


Elmasri R., & Navathe S. B., Fundamentals of Database Systems,
7th Edition, Addison-Wesley, 2015.

Valacich J. S. & George J. F., Modern Systems Analysis and Design,


8th Edition, Pearson, 2016.

 Tài liệu tiếng Việt


Đặng Văn Đức, Phân tích thiết kế hướng đối tượng, NXB Giáo dục, 2002.

Nguyễn An Tế, Nguyễn Thúy Ngọc & Nguyễn Kiều Oanh, CSDL: Nhập
môn và thực hành, NXB Khoa Học Kỹ Thuật, 2015.

129
Ts. Nguyễn An Tế (2019) Phân tích, thiết kế HTTT: Thành phần DỮ LIỆU

You might also like