Lecture 02 - Slide - Introduction Data Modeling - For Student
Lecture 02 - Slide - Introduction Data Modeling - For Student
Cơ sở dữ liệu
SQL dành cho Data Analytics
Mô hình dữ liệu (Data Modeling) là xây dựng mô hình dữ liệu cho dữ liệu lưu trữ trong
CSDL
- Đặt trọng tâm vào các dữ liệu cần thiết và cách thức cần được lưu trữ
- Trực quan hóa việc trình bày dữ liệu và thực thi các quy tắc kinh doanh, tuân thủ và
chính sách trên dữ liệu.
- Đảm bảo tính nhất quán trong quy ước đặt tên, giá trị mặc định, ngữ nghĩa, bảo mật
mà vẫn đảm bảo chất lượng dữ liệu.
4
Mô hình dữ liệu
(Data Modeling)
• Đảm bảo rằng tất cả các đối tượng dữ liệu theo yêu cầu của cơ sở dữ liệu được thể
hiện chính xác
• Giúp thiết kế cơ sở dữ liệu ở cấp độ khái niệm, logic và vật lý
• Giúp trình bày mối quan hệ giữa các bảng
• Cung cấp bức tranh rõ ràng về DB giúp Developer tạo DB vật lý
• Giúp xác định dữ liệu bị thiếu và dư thừa
• Giúp IT nâng cấp và duy trì DB nhanh hơn và rẻ hơn
5
Quy trình thiết kế cơ sở dữ liệu
Mô hình dữ liệu
Tài liệu tham khảo: "Fundamentals of Database Systems" by Ramez Elmasri, Shamkant B. Navathe
- Part 2-Chaper 3,4 6
Quy trình thiết kế cơ sở dữ liệu
7
Thiết kế cơ sở dữ liệu
Phần 2: Hiểu nhu cầu của người dùng & Trích xuất các quy tắc kinh doanh
Quy trình thiết kế cơ sở dữ liệu
Mô hình dữ liệu
9
Quy tắc kinh doanh là gì?
Quy tắc kinh doanh mô tả các đối tượng, mối quan hệ và hành động mà một
doanh nghiệp thấy quan trọng.
Ví dụ:
▪ Nếu học sinh không đăng ký ít nhất một lớp học, trường Trạng thái được
thay đổi thành thành Không hoạt động.
▪ Nếu tổng giá trị đơn hàng lớn hơn $50 trước thuế và phí vận chuyển, đơn
hàng sẽ được vận chuyển miễn phí.
▪ Hồ sơ của khách hàng chỉ được tạo ra khi khách hàng thực hiện mua hàng có
bao gồm đơn đặt hàng.
Trên quan điểm cơ sở dữ liệu, quy tắc kinh doanh là những ràng buộc.
10
Xác định các quy tắc kinh doanh chính
Quy tắc kinh doanh không chỉ khó để xây dựng mà nguyên tắc kinh doanh còn có
thể thay đổi theo thời gian.
Ví dụ:
Đơn hàng chỉ được vận chuyển đến các tiểu bang có kho hàng bao gồm Colorado,
Kansas & Nebraska.
→ Quy tắc kinh doanh yêu cầu địa chỉ giao hàng của đơn hàng phải là CO, KS hoặc
NE.
Xác định các quy tắc kinh doanh chính và trích xuất chúng.
11
Xác định các quy tắc kinh doanh chính
Nếu một quy tắc có khả năng thay đổi thường xuyên, bạn cần tính toán các phương
án để thay đổi một cách dễ dàng.
12
Các loại quy tắc
13
Bài tập
Hãy xem xét danh sách các quy tắc kinh doanh này:
▪ Tạo hồ sơ khách hàng khi khách hàng đặt đơn hàng đầu tiên.
▪ Giảm giá 20% nếu khách hàng nữ đặt hàng trong ngày quốc tế phụ nữ.
▪ Hồ sơ khách hàng phải bao gồm số điện thoại.
▪ Giảm giá 10% nếu khách hàng thanh toán trước toàn bộ giá trị đơn hàng.
1. Xác định các quy tắc đơn giản hoặc dường như không thể thay đổi để chúng có
thể được tích hợp vào cơ sở dữ liệu.
2. Xác định các quy tắc có thể thay đổi hoặc phức tạp cần lưu ý.
14
Thiết kế cơ sở dữ liệu – Mô hình hóa dữ liệu
Mô hình dữ liệu
16
Tại sao cần mô hình khái niệm?
▪ Mô hình khái niệm tập trung vào nghiệp vụ kinh doanh, là phương thức giao tiếp
giữa đội ngũ IT và đội ngũ kinh doanh
▪ Thông qua quy tắc kinh doanh và định nghĩa của các thực thể được trình bày
trong Bảng thuật ngữ dữ liệu (Data Glossary), mô hình khái niệm đảm bảo các
bên hiểu cùng một khái niệm, tránh hiểu sai báo cáo
17
Tại sao cần mô hình khái niệm?
Mua hàng
Khách hàng tiềm năng Khách hàng
18
Mô hình thực thể quan hệ
▪ Mô hình thực thể quan hệ (E-R model): thể hiện một cách logic về dữ liệu cho tổ
chức hoặc một lĩnh vực kinh doanh.
▪ Sơ đồ thực thể quan hệ (E-R diagram): sơ đồ thể hiện mô hình thực thể quan hệ
19
Ví dụ của sơ đồ thực thể quan hệ
20
Ký hiệu E-R
Ký hiệu Ký hiệu
thực thể thuộc tính
Ký hiệu
mối quan hệ
21
Thực thể là gì?
Thực thể (Entity): một người, địa điểm, đối tượng, sự kiện hoặc khái niệm
trong môi trường người dùng mà tổ chức muốn duy trì dữ liệu.
Ví dụ:
▪ Người: nhân viên, sinh viên, bệnh nhân,...
▪ Địa điểm: cửa hàng, kho bãi,...
▪ Đối tượng: máy móc, ô tô,...
Kiểu thực thể: 3 loại mạnh, yếu, quan hệ
Ký hiệu: Hình chữ nhật
22
Thực thể là gì?
NÊN LÀ:
▪ Đối tượng sẽ có nhiều bản ghi (instance) trong cơ sở dữ liệu
▪ Đối tượng sẽ bao gồm nhiều thuộc tính (attribute)
▪ Đối tượng mà cần được mô hình hóa
KHÔNG NÊN:
▪ Là kết quả của hệ thống cơ sở dữ liệu (ví dụ: báo cáo)
▪ Là người dùng hệ thống cơ sở dữ liệu
24
Bài tập
Xác định một loại thực thể dạng STUDENT và liệt kê 2 bản ghi (instance) của
nó.
Gợi ý: Bạn có thể liệt kê những thuộc tính (attribute) mà một loại thực thể
dưới dạng STUDENT phải có.
25
Thuộc tính (Attribute)
Thuộc tính (Attributes) – là tính chất hoặc đặc điểm của một thực thể.
Ký hiệu: Tên thuộc tính bên trong thực thể (hình chữ nhật)
26
Thuộc tính (Attribute)
Payroll_
Employee_Name
Address Date_ Years_
Employee_ID Skill
Employed employed
First Last Street Zip Thuộc tính đa trị
001 Jacky TAN
Hill Street
100
164607 May 01, 1999 C/C++/Java 19 (Multi-valued
002 Susan LIM
Stamford
178902 Oct 14, 2000 Java/.Net 18 attributes)
Road 80
28
Thuộc tính (Attribute)
Thuộc tính định danh/khóa (Identifier): Một thuộc tính (hoặc kết hợp các
thuộc tính) xác định duy nhất các trường hợp riêng lẻ của một loại thực thể.
Ký hiệu: gạch chân
Đặc điểm:
▪ Giá trị không thay đổi
▪ Giá trị không NULL
▪ Là giá trị đơn
29
Bài tập
Loại thực thể (entity) STUDENT có các thuộc tính (attribute) sau: Id (duy
nhất), Name, Phone, Age, Activity, và No_of_Year
▪ Activity: đại diện cho một số hoạt động của sinh viên trong trường
▪ No_of_Year: số năm sinh viên đã tham gia vào hoạt động này
Giả định: Một học sinh nhất định có thể tham gia vào nhiều hơn một hoạt
động.
Tạo một mô hình thực thể (E-R Model) cho ngữ cảnh trên.
30
Mối quan hệ
Thuộc tính của quan hệ: Mô tả các tính năng liên quan đến sự quan hệ giữa
các thực thể trong mối quan hệ.
Giữa hai thực thể (Entity) có thể có nhiều hơn một mối quan hệ
Ký hiệu: đường
31
Mối quan hệ với các thuộc tính
Khi thuộc tính thuộc một thực thể, mà thực thể đã xác định một quan hệ. Thuộc
tính sẽ phụ thuộc quan hệ đó.
32
Mối quan hệ với thuộc tính
33
Hai khái niệm quan trọng trong mối quan hệ
34
Bậc của quan hệ
(Degree of Relationships)
Bậc của quan hệ (Degree of Relationships) là số lượng thực thể tham gia
vào mối quan hệ:
▪ Mối quan hệ đơn nhất (Unary relationship)
▪ Mối quan hệ nhị phân (Binary Relationship)
▪ Mối quan hệ bậc ba (Ternary Relationship)
▪ Có thể có các mối quan hệ nhiều ngôi hơn (Trường hợp hiếm gặp)
35
Bậc của quan hệ (Kí hiệu)
Đơn nhất
(Unary) Nhị phân Bậc ba
(Binary) (Ternary)
Một thực thể liên Các thực thể Các thực thể
quan đến một thuộc hai loại thuộc ba loại
thực thể khác khác nhau có khác nhau có
cùng loại liên quan với liên quan với
36
nhau nhau
Ví dụ
Mối quan hệ nhị phân giữa loại thực thể STUDENT và loại thực thể COURSE
STUDENT
COURSE
StudentID
Name Đăng kí CourseID
Major Title
Campus_Address
37
Thuộc tính của quan hệ
(Cardinality of Relationships)
Thuộc tính của quan hệ (Cardinality of Relationships) là số bản ghi của một
thực thể có thể hoặc phải được liên kết với từng bản ghi của một thực thể khác.
Bao gồm:
Một – Một (1 – 1): mỗi thực thể trong mối quan hệ sẽ có chính xác một thực thể
liên quan.
Một – nhiều(1 – N): một thực thể ở một bên của mối quan hệ có thể có nhiều
thực thể liên quan, nhưng một thực thể ở phía bên kia sẽ có tối đa một thực thể
liên quan.
Nhiều - nhiều (N - N): các thực thể ở cả hai phía của mối quan hệ có thể có
nhiều thực thể liên quan ở phía bên kia.
38
Thuộc tính của quan hệ
(Cardinality of Relationships)
Kết hôn
39
Thuộc tính của quan hệ
(Cardinality of Relationships)
Quản lý
40
Thuộc tính của quan hệ
(Cardinality of Relationships)
Tham gia
41
Thuộc tính của quan hệ (Ký hiệu)
Kết hợp giữa thuộc tính và thứ bậc của quan hệ: quan hệ nhị phân
Đăng ký
Nhiều – nhiều
42
Thuộc tính của quan hệ (Ký hiệu)
Kết hợp giữa thuộc tính và thứ bậc của quan hệ: quan hệ đơn nhất
43
Bài tập
Xác định mối quan hệ giữa thực thể SINH VIÊN và thực thể KHÓA HỌC:
▪ Mỗi sinh viên có thể đăng ký nhiều khóa học
▪ Một khóa học có thể có nhiều sinh viên
STUDENT
COURSE
StudentID
Name Registed_for CourseID
Major Title
Campus_Address
44
Thuộc tính ràng buộc
(Cardinality Constraints)
Thuộc tính ràng buộc - số phiên bản của một thực thể có thể hoặc phải được quan hệ
với từng phiên bản của một thực thể khác.
STUDENT
COURSE
StudentID
Name Registed_for CourseID
Major Title
Campus_Address
Một khóa học phải được đăng ký bởi ít nhất một (hoặc nhiều) sinh viên 46
Bài tập
Thêm ký hiệu thuộc tính tối đa và tối thiểu cho hình dưới đây dựa trên các
ràng buộc đã được học.
Mô hình dữ liệu
49
Thiết kế mô hình logic
50
Mô hình thực thể quan hệ (ER Model)
51
Nhắc lại: Cơ sở dữ liệu quan hệ
Khóa chính (Primary Key): một thuộc tính (hoặc kết hợp các thuộc tính) chỉ có duy
nhất mỗi hàng trong một mối quan hệ.
• Khóa chính đơn (trường đơn)
• Khóa chính phức hợp (nhiều trường)
Khóa ngoại (Foreign Key): một thuộc tính (hoặc kết hợp các thuộc tính) trong một
mối quan hệ là khóa chính cho một mối quan hệ khác.
52
Ánh xạ sơ đồ ER vào các mối quan hệ
53
Ánh xạ các thực thể thông thường vào các mối quan hệ
(Mapping regular entities to relations)
54
Ánh xạ các thực thể thông thường vào các mối quan hệ
(Mapping regular entities to relations)
Thực thể CUSTOMER với các thuộc tính đơn giản → quan hệ CUSTOMER
Thuộc tính
phức hợp
55
Ánh xạ các thực thể thông thường vào các mối quan hệ
(Mapping regular entities to relations)
▪ Một – Nhiều: khóa chính ở một bên trở thành khóa ngoại ở nhiều bên
▪ Nhiều – Nhiều: tạo mối quan hệ mới với các khóa chính của hai thực thể
làm khóa chính của nó.
▪ Một – Một: khóa chính ở phía bắt buộc trở thành khóa ngoại ở phía tùy
chọn
57
Ánh xạ thực thể quan hệ nhị phân
(Mapping binary relationships)
Một – Nhiều
Khóa ngoại
58
Ánh xạ thực thể quan hệ nhị phân
(Mapping binary relationships)
Một – Một
Khóa ngoại
59
Ánh xạ thực thể quan hệ nhị phân
(Mapping binary relationships)
Nhiều - Nhiều
Foreign key
Foreign key
60
Bài tập
61
Tóm tắt lại kiến thức buổi học
62
Tài liệu tham khảo
• Chapter 7 - Part 2 - Database Design and the E-R Model - "Database System
Concepts" by Abraham Silberschatz, Henry F. Korth, and S. Sudarshan
63
Thiết kế cơ sở dữ liệu