Khóa / thuộc tính xác địnhkey / identifier Khóa là một thuộc tính hoặc tổ hợp các thuộc tính dùng để xác định duy nhất một thể hiện của một kiểu thực thể.. Quan hệ relation là một
Trang 1MÔ HÌNH THỰC THỂ - KẾT HỢP
Nguyễn Đỗ Thái Nguyên
nguyenndt@math.hcmup.edu.vn
Trang 3 Mô hình thực thể kết hợp (ER)
entity-relationship model
Mô hình thực thể kết hợp là cách tiếp cận chính để mô hình hóa dữ liệu ý niệm
(conceptual data modeling).
Mô hình ER là công cụ giao tiếp giữa người thiết kế CSDL và người sử dụng cuối cùng
để xây dựng CSDL trong giai đoạn phân tích.
Mô hình ER được dùng để xây dựng mô hình
dữ liệu ý niệm (conceptual data model) nhằm
biểu diễn cấu trúc và các ràng buộc của
1 Giới thiệu ER
Trang 4 Các thành phần của mô hình thực thể kết hợp
Thực thể và các thuộc tính.
Mối kết hợp và các thuộc tính.
1 Giới thiệu ER
Trang 51 Giới thiệu ER
Trang 6Attribute symbols
Trang 7 Thể hiện thực thể
entity instance
Thể hiện thực thể là người, vị trí, đối tượng,
sự kiện, khái niệm (thường tương ứng với một hàng của bảng).
Thực thể nên là
đối tượng có nhiều thể hiện trong CSDL.
đối tượng có nhiều thuộc tính.
đối tượng cần được mô hình hóa.
Thực thể không nên là
người sử dụng của hệ CSDL.
kết xuất của hệ CSDL (ví dụ bản báo cáo).
2 Thực thể
Trang 8 Kiểu thực thể
entity type
Kiểu thực thể là tập hợp các thực thể thuộc cùng một loại (thường tương ứng với một bảng).
Được biểu diễn bằng hình chữ nhật.
2 Thực thể
Trang 9 Thuộc tính
attribute
Thuộc tính là một đặc tính / tính chất của một kiểu thực thể (thường tương ứng với một vùng tin trong một bảng).
Được biểu diễn bằng hình bầu dục.
Các loại thuộc tính
Thuộc tính bắt buộc và thuộc tính tùy chọn.
Thuộc tính đơn và thuộc tính phức hợp.
Thuộc tính đơn trị và thuộc tính đa trị.
Thuộc tính chứa và thuộc tính dẫn xuất.
2 Thực thể
Trang 10 Thuộc tính đơn và thuộc tính phức hợp
Thuộc tính đơn (simple attribute) là thuộc tính không bị phân rã thành nhiều thuộc tính khác.
Thuộc tính phức hợp (composite attribute) là
thuộc tính bị phân rã thành nhiều thuộc tính khác.
2 Thực thể
Ngày sinh: 22/11/2003
Trang 112 Thực thể
Thuộc tính đơn
Thuộc tính phức hợp
Trang 12 Thuộc tính đơn trị và thuộc tính đa trị
Thuộc tính đơn trị (single-valued attribute) là
thuộc tính chỉ chứa một giá trị.
Thuộc tính đa trị (multivalued attribute) là
thuộc tính chứa nhiều giá trị khác nhau thuộc một miền trị, được biểu diễn bằng hình bầu dục nét đôi.
2 Thực thể
Trang 13 Thuộc tính chứa và thuộc tính dẫn xuất
Thuộc tính chứa (stored attribute) là thuộc tính mà giá trị của nó không được suy dẫn từ các thuộc tính khác.
Thuộc tính dẫn xuất (derived attribute) là
thuộc tính mà giá trị của nó được suy dẫn từ các thuộc tính khác, được biểu diễn bằng
hình bầu dục nét đứt.
2 Thực thể
Trang 142 Thực thể
Thuộc tính đơn trị
Thuộc tính đa trị
Thuộc tính chứa Thuộc tính dẫn xuất
Trang 15 Khóa / thuộc tính xác định
key / identifier
Khóa là một thuộc tính hoặc tổ hợp các thuộc tính dùng để xác định duy nhất một thể hiện của một kiểu thực thể.
Thuộc tính khóa và thuộc tính không khóa
Thuộc tính khóa là thuộc tính ở trong khóa.
key attribute / prime attribute / identifier attribute
Thuộc tính không khóa (non-key attribute) là
2 Thực thể
Trang 16 Khóa đơn và khóa phức hợp
Khóa đơn (simple key) là khóa chỉ có một thuộc tính.
Khóa phức hợp (composite key) là khóa có
nhiều hơn một thuộc tính.
2 Thực thể
Trang 19 Kiểu mối kết hợp
relationship type
Kiểu mối kết hợp là sự kết hợp giữa các kiểu thực thể.
Được biểu diễn bằng hình thoi.
Mối kết hợp có thể có nhiều thuộc tính dùng
để mô tả các đặc tính của sự kết hợp giữa các thực thể.
Hai thực thể có thể có nhiều kiểu mối kết hợp giữa chúng.
3 Mối kết hợp
Trang 203 Mối kết hợp
Mối kết hợp có thuộc tính Hai thực thể có nhiều mối kết hợp
Trang 21 Bậc / ngôi của mối kết hợp
degree / arity of relationship
Bậc của mối kết hợp là số lượng kiểu thực thể tham gia đồng thời vào mối kết hợp này.
Các loại mối kết hợp
Mối kết hợp 1-ngôi (unary relationship)
Mối kết hợp 2-ngôi (binary relationship)
Mối kết hợp 3-ngôi (ternary relationship): 3
kiểu thực thể đồng thời tham gia vào mối kết hợp.
3 Mối kết hợp
Trang 223 Mối kết hợp
One entity related to
another of the same
entity type
Entities of two different types related to each other
Entities of three different types related to each other
Trang 233 Mối kết hợp
Trang 243 Mối kết hợp
Mối kết hợp 2-ngôi
Trang 253 Mối kết hợp
Trang 26 Lượng số của mối kết hợp
một - nhiều (one-to-many): một thực thể a kết hợp với nhiều thực thể b; một thực thể b kết hợp với một thực thể a.
nhiều - nhiều (many-to-many): một thực thể a kết hợp với nhiều thực thể b; một thực thể b kết hợp với nhiều thực thể a.
3 Mối kết hợp
Trang 27 Ràng buộc lượng số
cardinality constraint
Ràng buộc lượng số là số lượng thể hiện của thực thể này có thể hoặc phải kết hợp với một thể hiện của thực thể khác.
Lượng số nhỏ nhất
Lượng số lớn nhất
Số lượng lớn nhất.
3 Mối kết hợp
Trang 283 Mối kết hợp
Trang 293 Mối kết hợp
Mối kết hợp 1-ngôi một-một có lượng số tùy chọn
Trang 303 Mối kết hợp
Mối kết hợp có lượng số tối đa xác định
Lượng số lớn nhất
Trang 31 Quan hệ (relation) là một bảng dữ liệu hai chiều bao gồm nhiều hàng (mẩu tin) và nhiều cột (thuộc tính hoặc vùng tin).
Mỗi hàng là duy nhất: không thể có hai hàng
có cùng các giá trị ở tất cả vùng tin.
Thứ tự của các hàng là không quan trọng.
Thứ tự của các cột là không quan trọng.
Không phải mọi bảng đều là quan hệ Quan
hệ là một bảng không chứa các hàng giống hệt nhau.
Quan hệ
Trang 32Quan hệ
Quan hệ: Supplier
S1 Nguyễn Trung Tiến SF
S3 Nguyễn Văn An SF
Trang 33 Khóa
key
Khóa quan hệ là một tập nhỏ nhất các thuộc tính dùng để xác định duy nhất một hàng.
Một khóa chỉ có một thuộc tính được gọi là
khóa đơn (simple key).
Một khóa có nhiều thuộc tính được gọi là
khóa phức hợp (composite key).
Khóa thường được sử dụng làm chỉ mục
(index) của bảng dữ liệu để làm tăng tốc độ
Quan hệ
Trang 34 Khóa
Một quan hệ phải có ít nhất một khóa và có thể có nhiều khóa.
Các thuộc tính thuộc một khóa được gọi là
thuộc tính khóa (prime attribute), các thuộc tính còn lại trong lược đồ quan hệ được gọi
là các thuộc tính không khóa (nonprime
attribute).
Các thuộc tính khóa được gạch dưới.
Các thuộc tính khóa không được có giá trị
rỗng (null value).
Quan hệ
Trang 35 Khóa
Tất cả các khóa của một quan hệ được gọi là
khóa dự tuyển (candidate key).
Một trong các khóa dự tuyển được chọn làm khóa tiêu biểu, khóa này được gọi là khóa chính (primary key).
Một quan hệ chỉ có một khóa chính và có thể
có nhiều khóa dự tuyển.
Trong một quan hệ, một hoặc nhiều thuộc tính được gọi là khóa ngoại (foreign key) nếu
của một quan hệ khác.
Quan hệ
Trang 36 Cơ sở dữ liệu quan hệ (relational database) bao
gồm các bảng (quan hệ) biểu diễn các thực thể
và các khóa chính / khóa ngoại biểu diễn các mối kết hợp.
Cơ sở dữ liệu quan hệ
Trang 37Cơ sở dữ liệu quan hệ
Primary Key
Foreign Key (implements 1:N relationship between customer and order)
Combined, these are a composite
primary key (uniquely identifies the
order line)…individually they are
foreign keys (implement M:N
relationship between order and product)
Trang 38Cơ sở dữ liệu quan hệ
Trang 39 Mỗi quan hệ (bảng) tương ứng với một kiểu thực thể hoặc với một kiểu mối kết hợp nhiều - nhiều.
Mỗi hàng tương ứng với một thể hiện thực thể hoặc với một thể hiện mối kết hợp nhiều - nhiều.
Mỗi cột tương ứng với một thuộc tính.
Từ quan hệ (relation) trong cơ sở dữ liệu quan
hệ không có cùng nghĩa với từ mối quan hệ
Sự tương ứng với mô hình ER
Trang 40 Lược đồ cơ sở dữ liệu
Lược đồ cơ sở dữ liệu
Lược đồ cơ sở dữ liệu:
Emp (Empnum, Name, Sal, Tax, Mgrnum, Deptnum) Dept (Deptnum, Name, Area, Mgrnum)
Supplier (Snum, Name, City) Supply (Snum, Pnum, Deptnum, Quan)
Trang 41 Ràng buộc toàn vẹn
integrity constraint
Ràng buộc toàn vẹn là một qui tắc mà tất cả các dữ liệu trong CSDL phải thỏa mãn qui tắc này.
Trang 42 Qui tắc hoạt động
action assertion
Các qui tắc nghiệp vụ (business rule).
Ràng buộc toàn vẹn
Trang 43Ràng buộc toàn vẹn
Trang 44 Ràng buộc toàn vẹn tham chiếu
referential integrity constraint
Ràng buộc toàn vẹn tham chiếu là một qui tắc mà tất cả các giá trị của khóa ngoại (nếu
khác null) trong quan hệ bên phía nhiều phải
có trong các giá trị của khóa chính trong quan hệ bên phía một.
Ràng buộc toàn vẹn
Trang 45 Ràng buộc toàn vẹn tham chiếu
phụ thuộc tương ứng với các hàng bên phía cha.
của các hàng bên phía phụ thuộc tương ứng với
thực thể yếu.
Ràng buộc toàn vẹn
Trang 46Ràng buộc toàn vẹn
Ví dụ về ràng buộc toàn vẹn tham chiếu
Referential integrity constraints are drawn via arrows from
dependent to parent table
Trang 47 Qui tắc 1: Biến đổi một kiểu thực thể thành một quan hệ.
Đối với kiểu thực thể thông thường (regular
entity type): khóa của quan hệ là khóa của kiểu thực thể.
Thuộc tính của quan hệ là thuộc tính của kiểu thực thể.
Quan hệ chỉ chứa các thuộc tính thành phần của thuộc tính phức hợp.
Quan hệ không chứa các thuộc tính đa trị.
Biến đổi ERD thành các quan hệ
Trang 48Biến đổi ERD thành các quan hệ
Biến đổi kiểu thực thể thông thường
CUSTOMER relation
CUSTOMER entity type with
simple attributes
Trang 49Biến đổi ERD thành các quan hệ
CUSTOMER entity type with
composite attribute
CUSTOMER relation with address detail
Trang 50 Qui tắc 2: Biến đổi thuộc tính đa trị thành một quan hệ.
Quan hệ chứa khóa của kiểu thực thể và thuộc tính đa trị.
Khóa của quan hệ gồm khóa của kiểu thực thể và thuộc tính đa trị.
Biến đổi ERD thành các quan hệ
Trang 51Biến đổi ERD thành các quan hệ
Multivalued attribute becomes a separate relation with foreign key
1–to–many relationship between
Trang 52 Qui tắc 3: Biểu diễn mối kết hợp 1-ngôi hoặc ngôi có lượng số một-một.
2-Đặt khóa của kiểu thực thể bên phía bắt buộc
và các thuộc tính của mối kết hợp vào quan
hệ của kiểu thực thể bên phía tùy chọn.
Biến đổi ERD thành các quan hệ
Trang 53Biến đổi ERD thành các quan hệ
EMPLOYEE relation with recursive foreign key EMPLOYEE entity with Manages relationship
Trang 54Biến đổi ERD thành các quan hệ
Biến đổi mối kết hợp hai ngôi có lượng số một - một
Trang 55 Qui tắc 4: Biểu diễn mối kết hợp 1-ngôi hoặc ngôi có lượng số một-nhiều.
2-Đặt khóa của kiểu thực thể bên phía một và
các thuộc tính của mối kết hợp vào quan hệ
của kiểu thực thể bên phía nhiều.
Biến đổi ERD thành các quan hệ
Trang 56Biến đổi ERD thành các quan hệ
Biến đổi mối kết hợp một ngôi có lượng số một - nhiều
EMPLOYEE relation with recursive foreign key EMPLOYEE entity with Manages relationship
Trang 57Biến đổi ERD thành các quan hệ
Note the mandatory one
Again, no null value in the foreign key…this is
Trang 58 Qui tắc 5: Biến đổi mối kết hợp 1-ngôi hoặc ngôi có lượng số nhiều-nhiều thành một quan hệ.
2-Quan hệ chứa các khóa của các kiểu thực thể tham gia vào mối kết hợp.
Khóa của quan hệ gồm cả hai khóa của hai kiểu thực thể.
Thuộc tính của quan hệ là thuộc tính của mối kết hợp.
Biến đổi ERD thành các quan hệ
Trang 59Biến đổi ERD thành các quan hệ
Bill-of-materials relationships (M:N)
ITEM and COMPONENT relations
Trang 60Biến đổi ERD thành các quan hệ
Biến đổi mối kết hợp hai ngôi có lượng số nhiều - nhiều
Trang 61 Qui tắc 6: Biến đổi mối kết hợp 3-ngôi thành một quan hệ.
Quan hệ chứa ba khóa của ba kiểu thực thể tham gia vào mối kết hợp.
Mối kết hợp có bao nhiêu kiểu thực thể bên phía một thì quan hệ có bấy nhiêu khóa: đối
với một kiểu thực thể bên phía một thì khóa
của quan hệ gồm cả hai khóa của hai kiểu thực thể còn lại Nếu không có kiểu thực thể bên phía một thì khóa của quan hệ bao gồm
cả ba khóa của ba kiểu thực thể.
Biến đổi ERD thành các quan hệ
Trang 62Biến đổi ERD thành các quan hệ
Biến đổi mối kết hợp ba ngôi
Trang 63Biến đổi ERD thành các quan hệ
Trang 64HẾT