week2
TRANSCRIPT
Nguyễn Thanh Tùng
Cơ sở dữ liệu
MÔ HÌNH LIÊN KẾT - THỰC THỂ
12/04/20111 Cơ sở dữ liệu
Nội dung
12/04/2011Cơ sở dữ liệu2
Mô hình liên kết - thực thể ER
Thực thể
Thuộc tính
Khóa
Mối liên kết
Ràng buộc lượng số
Mô hình liên kết thực thể (ER)
entity-relationship model
Mô hình liên kết thực thể 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 CSDL.
12/04/20113 Cơ sở dữ liệu
Các thành phần của ER
Thực thể và các thuộc tính.
Mối liên kết và các thuộc tính.
12/04/20114 Cơ sở dữ liệu
Các ký hiệu
12/04/2011Cơ sở dữ liệu5
Ví dụ:
12/04/20116 Cơ sở dữ liệu
Nội dung
12/04/2011Cơ sở dữ liệu7
Mô hình liên kết - thực thể ER
Thực thể
Thuộc tính
Khóa
Mối liên kết
Ràng buộc lượng số
Thực thể Thể hiện thực thể (Entity instance) 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).
Đặc điểm của thực thể là tính phân biệt (distinctness): có thể phân biệt giữa thực thể này với thực thể khác.
12/04/20118 Cơ sở dữ liệu
Thực thể (tt)
Kiểu thực thể (Entity type) 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.
12/04/20119 Cơ sở dữ liệu
Nội dung
12/04/2011Cơ sở dữ liệu10
Mô hình liên kết - thực thể ER
Thực thể
Thuộc tính
Khóa
Mối liên kết
Ràng buộc lượng số
Thuộc tính
Thuộc tính (Attribute) 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.
Thuộc tính khóa và thuộc tính không khóa.
12/04/201111 Cơ sở dữ liệu
Thuộc tính (tt)
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.
12/04/201112 Cơ sở dữ liệu
Thuộc tính (tt)
12/04/201113 Cơ sở dữ liệu
Thuoäc tính ñôn
Thuoäc tính phức
hôïp
Thuộc tính (tt)
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.
12/04/201114 Cơ sở dữ liệu
Thuộc tính (tt)
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.
12/04/201115 Cơ sở dữ liệu
Thuộc tính (tt)
12/04/201116 Cơ sở dữ liệu
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
Nội dung
12/04/2011Cơ sở dữ liệu17
Mô hình liên kết - thực thể ER
Thực thể
Thuộc tính
Khóa
Mối liên kết
Ràng buộc lượng số
Khóa (Key/Identifier)
Khóa/Thuộc tính xác định 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óa được gạch dưới.
Thuộc tính không khóa (non-key attribute) là thuộc tính
không ở trong khóa.
Thuộc tính không khóa còn được gọi là thuộc tính mô tả (descriptor).
12/04/201118 Cơ sở dữ liệu
Khóa (tt) 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.
Khóa dự tuyển (candidate key)
Khóa dự tuyển là khóa của một kiểu thực thể.
Một kiểu thực thể có ít nhất một khóa dự tuyển.
Khóa chính (primary key)
Khóa chính là một khóa tiêu biểu trong các khóa dự tuyểncủa một kiểu thực thể.
Một kiểu thực thể chỉ có một khóa chính.
Khóa chính dùng để liên kết giữa các thực thể.
12/04/201119 Cơ sở dữ liệu
Khóa (tt)
12/04/201120 Cơ sở dữ liệu
Khóa đơn
Khóa phức hợp
Thuộc tính không khóa
Nội dung
12/04/2011Cơ sở dữ liệu21
Mô hình liên kết - thực thể ER
Thực thể
Thuộc tính
Khóa
Mối liên kết
Ràng buộc lượng số
Mối liên kết
Kiểu mối liên kết (Relationship type) là sự liên kết giữa
các kiểu thực thể.
Được biểu diễn bằng hình thoi.
Mối liên kết có thể có nhiều thuộc tính dùng để mô tả
các đặc tính của sự liên kết giữa các thực thể.
Hai thực thể có thể có nhiều kiểu mối liên kết giữa
chúng.
12/04/201122 Cơ sở dữ liệu
Mối liên kết (tt)
12/04/201123 Cơ sở dữ liệu
Hai thực thể có nhiều mối liên kết
Mối liên kết có thuộc tính
Mối liên kết (tt)
Bậc / ngôi của mối liên kết
degree / arity of relationship
Bậc của mối liên kết là số lượng kiểu thực thể tham gia
đồng thời vào mối liên kết này.
Các loại mối liên kế
Mối liên kết 1-ngôi (unary relationship)
Mối liên kết 2-ngôi (binary relationship)
Mối liên kết 3-ngôi (ternary relationship): 3 kiểu thực
thể đồng thời tham gia vào mối liên kết.
12/04/201124 Cơ sở dữ liệu
Mối liên kết (tt)
12/04/201125 Cơ sở dữ liệu
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
Mối liên kết (tt)
Mối liên kết 1-ngôi
12/04/201126 Cơ sở dữ liệu
1
EMPLOYEE Manages
1
1
PERSON Is_married_to
1
One-to-One One-to-Many
n
ITEM Has
components
n
Many-to-Many
Quantity
Mối liên kết (tt)
Mối liên kết 2-ngôi
12/04/201127 Cơ sở dữ liệu
1
EMPLOYEE Is assigned
1
One-to-One
PARKING PLACE
1PRODUCT LINE Contains
n
One-to-Many
PRODUCT
nSTUDENT Registers for
n
Many-to-Many
COURSE
Mối liên kết (tt)
Mối liên kết 3-ngôi
12/04/201128 Cơ sở dữ liệu
nVENDOR Is assigned
n
WAREHOUSE
PART
n
Unit costShipping
mode
Nội dung
12/04/2011Cơ sở dữ liệu29
Mô hình liên kết - thực thể ER
Thực thể
Thuộc tính
Khóa
Mối liên kết
Ràng buộc lượng số
Lượng số của mối liên kết Lượng số của mối liên kết (Cardinality of Relationship)
là số lượng thể hiện thực thể tham gia vào mối liên kết này.
Các loại lượng số
một - một (one-to-one): một thực thể a liên kết với một thực thể b; một thực thể b liên kết với một thực thể a.
một - nhiều (one-to-many): một thực thể a liên kết với nhiều thực thể b; một thực thể b liên kết với một thực thể a.
nhiều - nhiều (many-to-many): một thực thể a liên kết với nhiều thực thể b; một thực thể b liên kết với nhiều thực thể a.
12/04/201130 Cơ sở dữ liệu
Ràng buộc lượng số
Ràng buộc lượng số (Cardinality Constraint) là số lượng
thể hiện của thực thể này có thể hoặc phải liên kết với
một thể hiện của thực thể khác.
Lượng số nhỏ nhất
Nếu 0 là tùy chọn (optional).
Nếu một hoặc nhiều là bắt buộc (mandatory).
Lượng số lớn nhất
Số lượng lớn nhất.
12/04/201131 Cơ sở dữ liệu
Ràng buộc lượng số (tt)
Relationship cardinality
12/04/201132 Cơ sở dữ liệu
1 1Mandatory One
1 nMandatory Many
1 1Optional One
1 nOptional Many
Ràng buộc lượng số (tt)
Mối liên kết 1-ngôi, 1-1 có lượng số tùy chọn
Mối liên kết 2-ngôi, 1-n có lượng số bắt buộc
12/04/201133 Cơ sở dữ liệu
1
PERSON Is_married_to
1
Shirley
Mack
Dawn
Kathy
Ellis
Fred
1PATIENT Has
n
PATIENT HISTORYMark
Sarah
Elsie
Visit 1
Visit 1
Visit 2
Visit 1Lượng số lớn nhất
Quan hệ
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.
12/04/201134 Cơ sở dữ liệu
Quan hệ (tt)
Ví dụ: quan hệ Supplier
12/04/201135 Cơ sở dữ liệu
Snum Name City
S1 Nguyễn Trung Tiến SF
S2 Trần Thị Yến LA
S3 Nguyễn Văn An SF
Khóa quan hệ
Khóa quan hệ (Key) 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 độ xử lý câu truy vấn.
12/04/201136 Cơ sở dữ liệu
Khóa quan hệ (tt)
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).
12/04/201137 Cơ sở dữ liệu
Khóa quan hệ (tt)
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 chúng là khóa chính của
một quan hệ khác.
12/04/201138 Cơ sở dữ liệu