chƯƠng 2: mÔ hÌnh thỰc thỂ liÊn...
TRANSCRIPT
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ủamô hình đã chọn để chuyển những đặc tả yêu cầu củangườ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áckiểu dữ liệu, các liên kết, các ràng buộc, chúng đượcbiểu diễn bằng các khái niệm do các mô hình dữ liệu bậccao cung cấp.
Trong quá trình (hoặc sau khi) thiết kế lược đồ quanniệm, chúng ta có thể sử dụng các phép toán cơ bản củamô 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ếucó một số yêu cầu chức năng không thể nêu ra đượctrong 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
ssnname
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
sincename
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
GpaCourses
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
AgeDrug
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
sincename dname
budgetdid
since
Manages
since
DepartmentsEmployees
ssn
Works_In
Total w/keyconstraint
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
GpaCourses
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 Keyfor 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
lotname
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
budgetdidname
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 dnamedid
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
TenKDiachi
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
nn
n
DOITUONG
thuộ
c
TenD
TMucgiam
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
MaNVHoten
Hodem
Ngaysinh
TenCONHodem
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