Quá trình thiết kế mô hình dữ liệu ý niệmBước 1: Nhận dạng các kiểu thực thể Bước 2: Nhận dạng các kiểu liên kết Bước 3: Nhận dạng các thuộc tính của các kiểu thực thể và các mối liên
Trang 1Chương 2
Mô hình liên kết–thực thể
Trang 3Lược đồ khái niệm (mô hình dữ liệu bậc cao)
Lược đồ khái niệm (mô hình dữ liệu của 1 DBMS cụ thể)
Trang 4Quá trình thiết kế mô hình dữ liệu ý niệm
Bước 1: Nhận dạng các kiểu thực thể
Bước 2: Nhận dạng các kiểu liên kết
Bước 3: Nhận dạng các thuộc tính của các kiểu thực thể và các mối liên kết
Bước 4: Nhận dạng thuộc tính xác định
cho mỗi kiểu thực thể
Bước 5: Nhận dạng các cấu trúc siêu kiểu/ kiểu con
Bước 6: Vẽ sơ đồ ER
Trang 5Mô hình liên kết – thực thể
(Entity Relationship Model – ER Model)
Mô hình ER được dùng để xây dựng mô
hình dữ liệu ý niệm (Conceptual data
modeling)
Mô hình ER như 1 công cụ để trao đổi ý
tưởng giữa nhà thiết kế và người dùng
cuối trong giai đoạn phân tích Nó độc lập với DBMS và quá trình thi công database
Trang 6Tầm quan trọng của mô hình
hóa dữ liệu
Giúp thâu tóm các đặc tính dữ liệu, nắm
bắt quy tắc nghiệp vụ (business rule) và
các ràng buộc (constraint) trong quá trình
mô hình hóa dữ liệu
Trang 7Sơ đồ liên kết – thưc thể
Mô hình ER được diễn tả bằng sơ đồ liên
kết thực thể (entity relationship diagram - ERD)
Ba phần tử cơ bản:
◦ kiểu thực thể (entity Type)
◦ Quan hệ (Relationship)
◦ Các thuộc tính (Attribute)
Trang 8Thực thể - Entity
Thực thể là đối tượng chính mà ta thu
thập thông tin xoay quanh chúng
Thực thể có thể là
◦ Một người như nhân viên, sinh viên,
◦ Một nơi chốn như thành phố, đất nước,
◦ Một sự kiện như mua hàng, trả lương,
◦ Một khái niệm như môn học, tài khoản,…
Trang 9kiểu thưc thể - Entity Type
Kiểu thực thể: là một tập hợp các thực thể
có cùng tính chất
Thể hiện (instance) của một kiểu thực thể
là một trường hợp cụ thể của kiểu thực thể
đó
Ví dụ: kiểu thực thể Customer có các điển hình là Tom và Peter Mỗi Customer đều có
mã khách khác nhau, và có thể thực hiện các dịch vụ như đặt hàng, thanh toán tiền
…
Trang 11Cách đặt tên và ký hiệu
Mỗi kiểu thực thể phải có một tên gọi, nên
là danh từ số ít và viết chữ hoa
Ký hiệu của các kiểu thực thể
Thực thể mạnh Thực thể yếu
Trang 13Kiểu thực thể và đầu vào/ra của hệ
thống
Thường nhầm lẫn giữa thực thể dữ liệu
(data entity) của lược đồ ER với các thành phần khác trong DFD (data flow diagram)
Ví dụ: xét hệ thống chi tiêu của 1 trường cao đẳng Người thủ quỹ (treasurer) quản
lý tài chính, nhận các báo cáo chi tiêu, ghi lại các giao dịch
Treasurer là 1 kiểu thực thể??
Manages và gives là các quan hệ giữa
treasurer với account và expense
Trang 14Kiểu thực thể và đầu vào/ra của hệ
Trang 15Kiểu thực thể và đầu vào/ra của hệ
thống
Có cần theo dõi dữ liệu về Treasurer?
Treasurer là người nhập dữ liệu về tài
chính, các khoản chi tiêu và nhận báo cáo
là user của CSDL
Chỉ có 1 treasurer duy nhất dữ liệu về
treasurer không cần theo dõi
Treasurer không phải là 1 data entity
Một thực thể thực sự thì sẽ phải có nhiều
instance
Trang 16Kiểu thực thể và đầu vào/ra của hệ
thống
EXPENSE REPORT có phải là 1 kiểu thực
thể không?
Vì báo cáo được tạo ra từ các giao dịch
(transaction) và cân đối tài khoản
( account balance) được rút trích dữ
liệu từ database
EXPENSE REPORT không phải là 1 kiểu
thực thể tuy có nhiều instance nhưng
được tính toán từ 2 thực thể khác
Trang 17Kiểu thực thể và đầu vào/ra của hệ
Trang 18Thuộc tính - attribute
Mỗi kiểu thực thể có 1 số thuộc tính
Thuộc tính là đặc tính của 1 kiểu thực thể hay 1 mối liên kết
Ví dụ: kiểu thực thể STUDENT có các
thuộc tính như Student_ID,
Student_Name, Address, Major
STUDENT Student_ID, Student_Name,…
Trang 19Ví dụ: Thuộc tính Address bao gồm các
thành phần Street, District, City
Trang 20Các kiểu thuộc tính (tt)
Thuộc tính đơn trị (single valued
attribute)
Thuộc tính đa trị (multivalued attribute):
có thể có nhiều hơn một trị cho một thể
hiện của thực thể
Ví dụ: Thực thể COURSE có thuộc tính
Teacher đa trị, một môn học có thể được dạy bởi nhiều hơn 1 thầy cô
Trang 21Các kiểu thuộc tính (tt)
Thuộc tính xác định ( identifier attribute):
là 1 thuộc tính hoặc 1 tổ hợp các thuộc
tính xác định được các thể hiện riêng biệt của 1 kiểu thực thể
Ví dụ: Student_ID là thuộc tính xác định
của kiểu thực thể STUDENT
Trang 24Mối liên kết - Relationship
Mối liên kết (relationship) diễn tả sự kết
hợp giữa một hay nhiều kiểu thực thể với nhau
Kiểu liên kết ( relationship type) là một sự kết hợp có ý nghĩa giữa các kiểu thực thể
Một thể hiện (instance) của một kiểu liên kết là một sự kết hợp giữa các thể hiện
của các kiểu thực thể tham gia vào mối
liên kết đó
Trang 25Ví dụ
•Thuộc tính Date_Completed nên đặt ở
đâu trong lược đồ trên?
Là 1 thuộc tính của mối liên kết
Completed (thích hợp hơn là thuộc tính
của 2 thực thể STUDENT và COURSE)
Date_Completed
Trang 26price
Business rule: “ Mỗi quán bán cùng 1 loại bia với giá cả
khác nhau” Price là thuộc tính của thực thể nào hay của mối quan hệ?
Price is a function of both the bar and the beer, not
of one alone
Trang 27Bậc và các kiểu liên kết
Bậc của mối liên kết: là số kiểu thực thể
tham gia vào mối liên kết
Các kiểu liên kết
◦ Liên kết 1 ngôi
◦ Liên kết 2 ngôi
◦ Liên kết 3 ngôi
Trang 29Đôi khi một thực thể xuất hiện nhiều hơn
1 lần trong mối quan hệ
Để phân biệt, nên tạo role (nhãn) trên các cạnh nối giữa mối quan hệ và thực thể
Nhân viên
Trang 30Liên kết hai ngôi
Binary relationship
Là mối liên kết giữa hai kiểu thực thể
Trang 31Liên kết ba ngôi
Ternary relationship
Là mối liên kết giữa 3 kiểu thực thể
PART
VENDOR Supplies WAREHOUSE
Shipping mode Unit cost
Trang 32Lượng số của mối liên kết -
Cardinality
Lượng số là số thể hiện của kiểu thực thể B
mà có thể liên kết với mỗi thể hiện của kiểu thực thể A
Lượng số tối thiểu (minimum cardinality): là
số tối thiểu của các thể hiện của kiểu thực
thể B mà có thể liên kết với mỗi thể hiện của kiểu thực thể A
Trang 33Lượng số của mối liên kết -
Cardinality
Nếu lượng số tối thiểu là 0, kiểu thực thể B được gọi là nhiệm ý
Nếu lượng số tối thiểu và tối đa đều là 1 thì lượng
số này được gọi là bắt buộc (mandatory)
Ba dạng liên kết:
◦ Liên kết 1-1
◦ Liên kết 1-n
◦ Liên kết n-n
Trang 34Ký hiệu của lượng số
Nhiệm ý: ký hiệu là O
Bắt buộc: ký hiệu là ||
Nhiều
Trang 35Ví dụ mối liên kết
EMPLOYEE Is_assigned_to PROJECT
Rose Peter
Tom
Heidi
PROJECT1 PROJECT2
PROJECT3
Trang 36Ví dụ lượng số nhiệm ý trong
mối liên kết nhiều nhiều
Contains
Quantity
ITEM
Trang 37Dữ liệu phụ thuộc thời gian
(Modeling Time-dependent Data)
Đơn giá (Unit price) là 1 trong những thuộc
tính của sản phẩm (Product)
Nếu chỉ quan tâm đến giá cả hiện thời thì
Nếu giá cả ảnh hưởng đến kế toán, hóa đơn,
… thì cần biết 1 chuỗi giá cả kèm theo ngày giờ bị ảnh hưởng bởi giá cả đó Price là 1
thuộc tính đa trị
Trang 38Dữ liệu phụ thuộc thời gian
Trang 40Kiểu thực thể kết hợp
Associative entity type
Bốn điều kiện để chuyển đổi mối liên kết thành kiểu thực thể kết hợp
◦ Là mối liên kết nhiều – nhiều
◦ Có thuộc tính xác định riêng
◦ Có thêm vài thuộc tính khác
◦ Kiểu thực thể kết hợp sẽ tham gia vào 1 số mối liên kết khác trong sơ đồ ER
Trang 41Xây dựng kiểu thực thể kết
hợp từ các quy tắc nghiệp vụ
Giả sử có các quy tắc nghiệp vụ (business
rule) sau:
1 Mỗi người bán (vendor) có thể cung cấp nhiều
phụ tùng (part) cho 1 số kho (warehouse) nhưng không cần phải cung cấp bất kỳ phụ tùng nào
2 Mỗi phụ tùng có thể được cung cấp bởi 1 số
người bán hàng cho 1 hay nhiều kho, nhưng mỗi phụ tùng nhất thiết phải được cung cấp bởi ít
nhất 1 người bán hàng cho 1 kho.
3 Mỗi kho có thể được cung cấp với 1 số phụ tùng
từ nhiều hơn một nhà bán hàng nhưng mỗi kho nhất thiết phải được cung cấp với ít nhất 1 phụ tùng.
Trang 43Ràng buộc lượng số của liên
kết ba ngôi
Trường hợp liên kết 1-1-1
Xét quy tắc nghiệp vụ (business rule) sau:
“Mỗi kỹ sư dùng chỉ 1 sổ ghi chép cho 1 đề
án Những kỹ sư khác nhau sẽ dùng
những sổ ghi chép khác nhau khi làm việc cho cùng một đề án Không có kỹ sư nào dùng cùng một sổ ghi chép cho nhiều đề
án khác nhau”
Trang 44Ràng buộc lượng số của liên
kết ba ngôi
Trường hợp liên kết 1-1-1
ENGINEER
Trang 46Tránh dư thừa
cùng 1 vật trong 2 hay nhiều cách khác
Dư thừa sẽ làm lãng phí không gian lưu
trữ và gây ra mâu thuẫn (inconsistency)
◦ Hai instances của cùng 1 kiểu thực thể có thể
bị inconsistent nếu thay đổi 1 instance này mà quên thay đổi instance còn lại.
Trang 48Example: Bad
name
This design states the manufacturer of a beer twice: as an
attribute and as a related entity.
name
manf
addr
Trang 49Example: Good
Beers name
There is no need to make the manufacturer an entity set,
because we record nothing about manufacturers besides their
name.
manf
Trang 50Example: Bad
name
Since the manufacturer is nothing but a name, and is not at the
“many” end of any relationship, it should not be an entity set.
name
Trang 51Xem ứng dụng mẫu trang 67 của sách
Làm tất cả bài tập chương 3 giáo trình