Nội dung
1. QUÁ TRÌNH THIẾT KẾ CƠ SỞ DỮ LIỆU
2. MÔ HÌNH THỰC THỂ LIÊN KẾT (ER)
• Giới thiệu
• Các thành phần cơ bản của mô hình thực thể liên kết
• Lược đồ thực thể - liên kết
36 trang |
Chia sẻ: Thục Anh | Ngày: 11/05/2022 | Lượt xem: 543 | Lượt tải: 0
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Cơ sở dữ liệu - Chương 2: Mô hình thực thể - liên kết - Hoàng Thị Hà, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
CHƯƠNG 2: MÔ HÌNH THỰC THỂ - LIÊN KẾT
GV: Hoàng Thị Hà
Email: htha@vnua.edu.vn
Nội dung
1. QUÁ TRÌNH THIẾT KẾ CƠ SỞ DỮ LIỆU
2. MÔ HÌNH THỰC THỂ LIÊN KẾT (ER)
• Giới thiệu
• Các thành phần cơ bản của mô hình thực thể liên kết
• Lược đồ thực thể - liên kết
Hoàng Thị Hà 205/10/2018
Hoàng Thị Hà 305/10/2018
I. Quá trình thiết kế CSDL
Hoàng Thị Hà 405/10/2018
Bước 1: Tập hợp các yêu cầu và phân tích
Người thiết kế cơ sở dữ liệu phỏng vấn những
người sử dụng cơ sở dữ liệu để hiểu và làm tài
liệu về các yêu cầu về dữ liệu cho bài toán.
Kết quả của bước này tập hợp các yêu cầu được
ghi chép súc tích. Những yêu cầu sẽ được đặc tả
càng đầy đủ và chi tiết càng tốt.
Song song với việc đặc tả các yêu cầu dữ liệu,
cần phải đặc tả các yêu cầu về chức năng của
ứng dụng: đó là các thao tác do người sử dụng
định nghĩa sẽ được áp dụng đối với cơ sở dữ liệu.
Hoàng Thị Hà 505/10/2018
Bước 2: Thiết kế khái niệm.
Lựa chọn một mô hình dữ liệu, dùng các khái niệm của
mô hình đã chọn để chuyển những đặc tả yêu cầu của
người dùng sang thành một lược đồ khái niệm.
Lược đồ khái niệm là một mô tả cô đọng về yêu cầu dữ
liệu của những người dùng bao gồm mô tả chi tiết các
kiểu dữ liệu, các liên kết, các ràng buộc, chúng được
biểu diễn bằng các khái niệm do các mô hình dữ liệu bậc
cao cung cấp.
Trong quá trình (hoặc sau khi) thiết kế lược đồ quan
niệm, chúng ta có thể sử dụng các phép toán cơ bản của
mô hình dữ liệu để đặc tả các thao tác của người sử
dụng được xác định trong khi phân tích chức năng. Nếu
có một số yêu cầu chức năng không thể nêu ra được
trong lược đồ ban đầu thì ở bước này có thể có sự sửa
đổi lược đồ quan niệm cho phù hợp.
Hoàng Thị Hà 605/10/2018
Bước 3: Thiết kế logic (ánh xạ mô hình dữ liệu).
Ở bước này, người thiết kế cài đặt cơ sở dữ liệu
bằng một hệ quản trị CSDL.
Hầu hết các hệ quản trị CSDL sử dụng một mô
hình dữ liệu cài đặt (còn gọi là mô hình thể hiện),
Kết quả của bước này là một lược đồ cơ sở dữ
liệu dưới dạng một mô hình dữ liệu thể hiện của
hệ quản trị cơ sở dữ liệu.
Hoàng Thị Hà 705/10/2018
2. Mô hình thực thể liên kết (ER)
2. Mô hình ER – Giới thiệu
Hoàng Thị Hà 805/10/2018
Giới thiệu: Mô hình ER được dùng để thiết kế CSDL mức
khái niệm .
What are the entities and relationships in the enterprise?
What information about these entities and relationships should we store
in the database?
What are the integrity constraints or business rules that hold?
A database `schema’ in the ER Model can be represented pictorially
(ER diagrams).
Can map an ER diagram into a relational schema.
Hoàng Thị Hà 905/10/2018
2. Mô hình ER - Các thành phần
Thực thể: Real-world object distinguishable from other
objects. An entity is described (in DB) using a set
of attributes.
Tập thực thể: A collection of similar entities. E.g., all
employees.
All entities in an entity set have the same set of attributes. (Until we
consider ISA hierarchies, anyway!)
Each entity set has a key.
Each attribute has a domain.
Employees
ssn
name
lot
Hoàng Thị Hà 1005/10/2018
Khái niệm (tt.)
Mối quan hệ: Association among 2 or more entities.
E.g., Attishoo works in Pharmacy department.
Tập mối quan hệ: Collection of similar relationships.
An n-ary relationship set R relates n entity sets E1 ... En; each
relationship in R involves entities e1 E1, ..., en En
Same entity set could participate in different relationship sets,
or in different “roles” in same set.
subor-
dinate
Reports_To
lot
name
Employees
super-
visor
ssn
lot
dname
budgetdid
since
name
Works_In DepartmentsEmployees
ssn
Relationship Set
Hoàng Thị Hà 1105/10/2018
Ví dụ 1
Thiết kế lược đồ ER theo thông tin sau:
Sinh viên
Have an Id, Name, Login, Age, Gpa
Môn học
Have an Id, Name, Credit Hours
Sinh viên đăng ký môn học
Receive a grade
Hoàng Thị Hà 1205/10/2018
Ví dụ 1 – Đáp án
Students
Name Login
Id
Age
Gpa
Courses
Id Name Credit
Enrolled_In
Grade
Hoàng Thị Hà 1305/10/2018
Ví dụ 2
Thiết kế lược đồ ER theo thông tin sau:
Bệnh nhân
Name, Address, Phone #, Age
Thuốc
Name, Manufacturer , Expiration Date
Bệnh nhân điều trị theo đơn thuốc
Dosage, # Days
Hoàng Thị Hà 1405/10/2018
Ví dụ 2 – Đáp án
Patients
Name Addr Phone
Age
Drug
Name Manuf Exp
Prescribed
Dosage #days
Hoàng Thị Hà 1505/10/2018
Ràng buộc khóa
Xét mối quan hệ
Works_In: 1
nhân viên có thể
làm việc trong
nhiều phòng; 1
phòng có nhiều
nhân viên.
Ngược lại, mỗi
phònh chỉ có
nhiều nhất 1
trưởng phòng.
Many-to-Many1-to-1 1-to Many Many-to-1
dname
budgetdid
since
lot
name
ssn
ManagesEmployees Departments
Key Constraint
Hoàng Thị Hà 1605/10/2018
Participation Constraints
Mọi phòng ban đều có trưởng phòng?
Nếu đúng, đây là ràng buộc participation constraint: the participation of
Departments in Manages is said to be total (vs. partial).
Every did value in Departments table must appear in a row of the
Manages table (with a non-null ssn value!)
lot
name dname
budgetdid
since
Manages
since
DepartmentsEmployees
ssn
Works_In
Total w/key
constraint
Partial
Total
Total
Hoàng Thị Hà 1705/10/2018
Ví dụ 3
Mô tả lược đồ của ví dụ 1 với đầy đủ ràng buộc:
Students
Have an Id, Name, Login, Age, Gpa
Courses
Have an Id, Name, Credit Hours
Students enroll in courses
Receive a grade
Hoàng Thị Hà 1805/10/2018
Ví dụ 3 – Đáp án
Students
Name Login
Id
Age
Gpa
Courses
Id Name Credit
Enrolled_In
Grade
totaltotal
Hoàng Thị Hà 1905/10/2018
Thực thể yếu
Một thực thể yếu (weak entity) có thể được nhận biết khi xét
khóa chính của thực thể chủ nhân khác.
Tập thực thể chủ nhân và tập thực thể yếu cùng tham gia vào 1 mối
kết hợp 1-nhiêu (1 chủ nhân, nhiều thực thể yếu).
Tập thực thể yếu phải tham gia đầy đủ vào tập kết hợp identifying
relationship set.
lot
name
agepname
DependentsEmployees
ssn
Policy
cost
Weak EntityIdentifying Relationship
Primary Key
for weak entity
Hoàng Thị Hà 2005/10/2018
Quan hệ phân cấp ISA (`is a’)
Contract_Emps
name
ssn
Employees
lot
hourly_wages
ISA
Hourly_Emps
contractid
hours_worked
• Nói rằng A isa B (A là
một B) nếu tập thực
thể B là sự tổng quát
hóa của tập thực thể
A, hoặc A là loại đặc
biệt của B. Điều này
có nghĩa là A có thể
kế thừa các thuộc tính
của B
Hoàng Thị Hà 2105/10/2018
Quan hệ phân cấp ISA (`is a’)
Ràng buộc chồng chéo: Liệu Joe vừa là Hourly_Emps
vừa là Contract_Emps? )
Ràng buộc phủ: Có phải chỉ có hai loại nhân viên
Hourly_Emps hoặc Contract_Emps?
Lý do sử dụng ISA:
Cung cấp thêm thuộc tính cho lớp con .
Nhận biết thực thể tham dự vào mối kết hợp.
Hoàng Thị Hà 2205/10/2018
Aggregation
Được dùng khi một
mối kết hợp bao hàm
nhiều thực thể hoặc
mối kết hợp khác.
Aggregation allows us
to treat a relationship
set as an entity set for
purposes of
participation in (other)
relationships.
Monitors mapped to
table like any other
relationship set.
Mối kết hợp Tam phân và Aggregation:
Monitors is a distinct relationship,
with a descriptive attribute.
Also, can say that each sponsorship
is monitored by at most one employee.
budgetdidpid
started_on
pbudget
dname
until
DepartmentsProjects Sponsors
Employees
Monitors
lot
name
ssn
Aggregation
Hoàng Thị Hà 2305/10/2018
Ví dụ 4
Thiết kế lược đồ ER theo thông tin sau:
Walmart Stores
Store Id, Address, Phone #
Products
Product Id, Description, Price
Manufacturers
Name, Address, Phone #
Walmart Stores carry products
Amount in store
Manufacturers make products
Amount in factory/warehouses
Should we use aggregation or a tertiary relationship?
Hoàng Thị Hà 2405/10/2018
Thiết kế mức khái niệm dùng mô hình
ER
Các lựa chọn:
Thực thể hoặc thuộc tính?
Thực thể hoặc mối quan hệ?
Nhận biết mối quan hệ: Hai ngôi, ba ngôi hay kết tập
(aggregation)?
Hoàng Thị Hà 2505/10/2018
Thực thể và Thuộc tính
Liệu address là thuộc tính của Employees hay là một thực thể (nối với
Employees bằng một quan hệ)?
Phụ thuộc vào ngữ nghĩa và cấu trúc của dữ liệu address:
Nếu mỗi nhân viên có nhiều địa chỉ thì address phải là một thực thể (vì thuộc
tính không thể là một tập giá trị).
Nếu địa chỉ là một dữ liệu có cấu trúc (city, street, etc.) và thông tin từng
trường là quan trọng (vd. Ta muốn tuyển chọn nhân viên theo thành phố), thì
address phải là một thực thể (vì giá trị thuộc tính phải là nguyên tố).
Hoàng Thị Hà 2605/10/2018
Thực thể và Thuộc tính (tt.)
Works_In2 does not
allow an employee to
work in a department for
two or more periods.
Similar to the problem of
wanting to record several
addresses for an
employee: we want to
record several values of
the descriptive attributes
for each instance of this
relationship.
dname
budgetdid
name
Departments
ssn lot
Employees Works_In3
Durationfrom to
name
Employees
ssn lot
Works_In2
from to
dname
budgetdid
Departments
Hoàng Thị Hà 2705/10/2018
Thực thể và Mối Kết Hợp
First ER diagram OK if a
manager gets a separate
discretionary budget for
each dept.
Redundancy of dbudget,
which is stored for each
dept managed by the
manager.
Misleading: suggests
dbudget tied to managed
dept.
What if a manager gets a
discretionary budget that
covers all managed
depts?
budget
Manages2
name dname
did
Employees Departments
ssn lot
dbudgetsince
Employees
since
name dname
budgetdid
Departments
ssn lot
Mgr_Appts
Manages3
dbudget
apptnum
Hoàng Thị Hà 2805/10/2018
Nhị phân hoặc Tam phân
Nếu mỗi chính
sách được sở
hữu bởi chỉ một
nhân viên:
Key constraint on
Policies would
mean policy can
only cover 1
dependent!
agepname
DependentsCovers
name
Employees
ssn lot
Policies
policyid cost
Beneficiary
agepname
Dependents
policyid cost
Policies
Purchaser
name
Employees
ssn lot
Bad design
Better design
Hoàng Thị Hà 2905/10/2018
Nhị phân hoặc Tam phân (tt.)
Ví dụ trên minh họa trường hợp hai mối quan hệ hai ngôi
thì tốt hơn 1 mối quan hệ ba ngôi.
Một ví dụ khác: mối quan hệ 3 ngôi Contracts giữa 3
thực thể Parts, Departments và Suppliers, với thuộc tính
qty. Không có sự thay thế thỏa đáng mối quan hệ 3 ngôi
này:
S “can-supply” P, D “needs” P, and D “deals-with” S does not imply that
D has agreed to buy P from S.
How do we record qty?
3. Lược đồ thực thể - liên kết
Lược đồ thực thể liên kết là đồ thị biểu diễn
các tập thực thể, thuộc tính và mối quan hệ
giữa các tập thực thể.
Theo phần trình bày trên, ta thấy mô hình thực
thể liên kết có các thành phần sau:
Tập các thực thể
Các thuộc tính của tập các thực thể
Các liên kết
Các cung biểu thị mối liên kết giữa các tập thực thể.
Hoàng Thị Hà 3005/10/2018
Cách biểu diễn các thành phần trong sơ
đồ ER
Hoàng Thị Hà 3105/10/2018
Ví dụ 1:
Hoàng Thị Hà 3205/10/2018
KHOA LOP
MONHOC SINHVIEN
được
cấp
thuo
c
Quanl
y
TenK
Diachi
SDT
MaK
Ma
L
Siso
Ten
Gioitinh
MaS
V
TenM
H
SoTC
Dieukien
MaMH
Nguoith
u
Ngaylap
Ten
L
Ngaysinh
MaBL
BIENLAI
chứa
1
n
n
1
n
n
n
DOITUONG
thuộ
c
TenD
T
Mucgiam
n
MaD
T
Hodem
1
1
Ví dụ 2:
Hoàng Thị Hà 3305/10/2018
Ngaybatdau
DONVI NHAN VIEN
DUAN
MaDV
TenDV
Điadiem
Diachi
MaNV
Hoten
Hodem
Ngaysinh
Ten
CONHodem
Ngaysinh
có
Sogio
Ten
có
NGUOIQUANLY
ISA
1
1
1
n
1 n
n
n
MaNN
Ten
Gioitinh
làm việc
Hoàng Thị Hà 3405/10/2018
Tóm tắt sơ đồ thực thể liên kết
Một sơ đồ thực thể quan hệ bao gồm các thành phần chính dưới đây:
Hình chữ nhật biểu diễn các tập thực thể.
Các hình elip biểu diễn các thuộc tính, chúng được liên kết với tập các thực
thể bằng các cạnh vô hướng. Các thuộc tính là khóa sẽ được nhận diện bằng
cách thêm dấu # ở trước hoặc gạch chân.
Các hình thoi biểu diễn thực thể liên kết, được liên kết với các tập thành viên.
Những đường kẻ kết nối những thuộc tính với những tập hợp thực thể và giữa
những tập hợp thực thể với những tập hợp các liên kết.
35
Câu hỏi và bài tập chương 2
Mô hình ER là gì?. Vai trò của mô hình ER trong quá trình thiết kế cơ sở
dữ liệu?.
Thực thể là gì?. Tập thực thể là gì?. Thuộc tính là gì?. Miền giá trị của
thuộc tính là gì?.Khoá của tập thực thể là gì?.
Phân biệt giữa tập thực thể mạnh và tập thực thể yếu.
Cách biểu diễn mô hình ER của một bài toán.
Hãy khảo sát và xây dựng mô hình ER cho bài toán quản lý thư viện.
Hãy khảo sát và xây dựng mô hình ER cho bài toán quản lý siêu thị.
Hãy khảo sát và xây dựng mô hình ER cho bài toán quản lý khách sạn.
Hãy khảo sát và xây dựng mô hình ER cho bài toán quản lý kí túc xá sinh
viên trường Đại học Nông nghiệp Hà Nội.
Hãy khảo sát và xây dựng mô hình ER cho bài toán quản lý các đề tài
nghiên cứu khoa học trường Đại học Nông nghiệp Hà Nội.
Hãy khảo sát và xây dựng mô hình ER cho bài toán quản lý điểm của sinh
viên.
Hoàng Thị Hà 3605/10/2018
Các file đính kèm theo tài liệu này:
- bai_giang_co_so_du_lieu_chuong_2_mo_hinh_thuc_the_lien_ket_h.pdf