Mô hình thực thể quan hệ được biểu diễn bởi các khái niệm thực thể, quan hệ giữa các thực thể, và thuộc tính của cả thực thể và quan hệ.. Trong mô hình thực thể quan hệ, mỗi kiểu thực t
Trang 1Chương 2 mô hình thực thể quan hệ
Chương này sẽ giới thiệu chi tiết mô hình thực thể quan hệ Sau nhiều năm sử dụng mô
hình thực thể quan hệ được coi là cách tiếp cận chính xây dựng mô hình dữ liệu khái niệm Hiệu quả của mô hình này bắt nguồn từ sự đơn giản của mô hình, nhiều công cụ trợ giúp, và niềm tin rằng thực thể và quan hệ là các khái niệm mô hình hoá thế giới thực
Mô hình thực thể quan hệ được coi là công cụ giao tiếp giữa người thiết kế cơ sở dữ liệu
và người dùng trong quá trình phân tích thiết kế cơ sở dữ liệu
Mô hình thực thể quan hệ là sự mô tả chi tiết, lôgic dữ liệu của một tổ chứa hoặc một
hoạt động kinh doanh Mô hình thực thể quan hệ được biểu diễn bởi các khái niệm thực thể,
quan hệ giữa các thực thể, và thuộc tính của cả thực thể và quan hệ Mô hình thực thể quan
hệ được biểu diễn đồ hoạ bằng sơ đồ thực thể quan hệ
1 Thực thể và thuộc tính
• Thực thể (entity) là vật thực (chẳng hạn như con người, vị trí, vật thể, sự kiện hoặc khái
niệm, ) tồn tại và phân biệt được, có nghĩa là ta có thể phân biệt được thực thể này với thực thể khác
+ Ví dụ:
• Con người: NHÂN VIÊN, SINH VIÊN, BệNH NHÂN
• Vị trí địa lý: quốc gia, vùng, nông thôn
• Vật thể: Thiết bị, nhà cửa, ô tô
• Sự kiện: bán hàng, ghi danh
• Khái niệm: tài khoản, học phần
• Kiểu thực thể hoặc lớp thực thể (entity type or class) là tập hợp các thực thể tương tự
nhau, có cùng các tính chất đặc trưng Trong mô hình thực thể quan hệ, mỗi kiểu thực thể
được đặt một cái tên duy nhất, có tính gợi nhớ Tên kiểu thực thể được viết bằng chữ cái và trong sơ đồ thực thể quan hệ tên kiểu thực thể đặt trong hình chữ nhật
+ Ví dụ:
• Thuộc tính Kiểu thực thể có các tính chất gọi là thuộc tính Thuộc tính được coi là
tính chất hay đặc trưng của thực thể mà tổ chức quản lý thực thể quan tâm
Tên thuộc tính được viết bằng chữ cái và trong sơ đồ thực thể quan hệ tên kiểu thực thể
đặt trong hình oval và nối với kiểu thực thể tương ứng bằng đường cung
Việc chọn các thuộc tính thích hợp là cung đoạn cực kỳ quan trọng trong quá trình thiết
kế mô hình thế giới thực
nhân viên học phần tài khoản
Trang 2Các giá trị của mỗi thuộc tính có kiểu giá trị duy nhất như là tập hợp số nguyên, số thực,
hoặc dãy ký tự, nhưng ta cũng không loại trừ những kiểu giá trị khác
Các giá trị thuộc tính cũng có thể được giới hạn trong miền giá trị nào đó
+ Ví dụ: dưới đây là các kiểu thực thể với các thuộc tính đi kèm
• Kiểu thực thể nhân viên( mã nv, họ tên, địa chỉ, ngay sinh, CMND, lương)
• Kiểu thực thể ô tô (số xe, màu sơn, trọng TảI, công suất)
• Kiểu thực thể vật tư (mã vt, tên vt, đvt, đơn giá)
Trong kiểu thực thể NHÂN VIÊN, thuộc tính MANV có kiểu giá trị xâu ký tự, LƯƠNG
có kiểu giá trị số thực với miền giá trị từ 730000 đến 7300000 (đồng)
• Thể hiện thực thể là khái niệm chỉ phần tử cụ thể trong một kiểu thực thể
+ Ví dụ:
Xét kiểu thực thể nhân viên( mã nv, họ tên, địa chỉ, ngay sinh, CMND,lương)
Ta có thể có các thể hiện thực thể sau
(A001, Trần Quốc Tuấn, Đà nẵng, 15/08/1953, 200002496, 1500000)
(B002, Vũ Minh Hương, Hà Nội, 20/10/1960, 112004589, 1000000)
• Khoá dự tuyển và khoá chính
Mỗi kiểu thực thể phải có thuộc tính hoặc tập thuộc tính xác định duy nhất mỗi thể hiện thực thể, phân biệt thực thể này với thực thể khác
Khoá dự tuyển của kiểu thực thể là thuộc tính hoặc tổ hợp các thuộc tính mà giá trị của chúng xác định duy nhất từng thực thể của kiểu thực thể đó
+ Ví dụ:
Xét kiểu thực thể
vật tư (mã vt, tên vt, đvt, đơn giá) Thuộc tính MAVT (mã số vật tư) là khoá dự tuyển, vì mỗi vật tư chỉ có một mã số duy nhất, không thể có hai vật tư trùng mã số Các thuộc tính khác không phải là khoá dự tuyển Xét tiếp kiểu thực thể KETQUA ư kết quả thi học phần của sinh viên
LƯƠNG nhân viên
manv Họ TÊN ĐịA CHỉ NGAY SINH CMnD
Trang 3KETQUA(MAHP, MASV, ĐIEM) trong đó MAHP là mã số học phần, MASV là mã số sinh viên, DIEM là điểm thi
Ta dễ dàng thấy rằng kiểu thực thể KETQUA không có thuộc tính đơn nào là khoá dự tuyển ở đây hai thuộc tính MAHP và MASV tạo thành khoá dự tuyển của kiểu thực thể KETQUA
Cũng có thể xảy ra trường hợp kiểu thực thể có nhiều khoá dự tuyển Xét kiểu thực thể
NHÂNVIÊN( mã nv, họ tên, địa chỉ, ngay sinh, CMND, lương)
Thuộc tính CMND (số chứng minh nhân dân) là khoá dự tuyển, vì mỗi người chỉ có một
số CMND duy nhất Ngoài ra thuộc tính MANV (mã số nhân viên) cũng là khoá dự tuyển vì mỗi người cũng chỉ có một mã số duy nhất
Trường hợp có nhiều khoá dự tuyển, người thiết kế phải chọn một khoá làm khoá chính
Khoá chính là khoá dự tuyển được chọn làm định danh cho kiểu thực thể
Trong sơ đồ thực thể quan hệ, các thuộc tính khoá chính được gạch dưới
+ Ví dụ:
Kiểu thực thể NHÂNVIÊN có MANV là khoá chính
NHÂNVIÊN( mã nv, họ tên, địa chỉ, ngay sinh, CMND, lương)
• Thuộc tính bội Trong thực tế, thuộc tính có thể có nhiều giá trị đối với mỗi thể hiện
thực thể Thuộc tính bội là thuộc tính có thể có nhiều giá trị cho mỗi thể hiện thực thể
Trong sơ đồ thực thể quan hệ, thuộc tính bội được đặt trong hình oval kép
◊ Ví dụ:
Xét kiểu thực thể NHÂNVIÊN có bổ sung thêm thuộc tính NGOạI NGữ
NHÂNVIÊN( mã nv, họ tên, địa chỉ, ngay sinh, CMND, lương, NGOạI NGữ)
Một nhân viên có thể biết nhiều ngoại ngữ (Anh, Pháp, Đức, .), vậy NGOạI NGữ là thuộc tính bội
LƯƠNG nhân viên
manv Họ TÊN ĐịA CHỉ NGAY SINH CMnD
Trang 42 Quan hệ
Khái niệm quan hệ là chìa khoá nối các thực thể trong mô hình thực thể quan hệ
• Quan hệ (relation) là sự kết hợp giữa các thực thể của một hoặc nhiều kiểu thực thể
Về mặt toán học ta có thể định nghĩa chính xác như sau Quan hệ giữa các kiểu thực thể
E1, E2, , Ek là một tập hợp, mà các phần tử của nó là một bộ k thành phần
e = (e1, e2, , ek), trong đó e1∈E1, e2∈E2, , ek∈Ek Trường hợp thông dụng là k=2, nhưng cũng có quan hệ
giữa ba hoặc nhiều tập thực thể hơn Số tập thực thể trong quan hệ gọi là bậc của quan hệ
Quan hệ bậc n gọi là quan hệ n ngôi
Quan hệ được đặt tên bằng chữ thường và trong sơ đồ thực thể quan hệ được đặt trong
hình thoi nối với kiểu thực thể liên quan
◊ Ví dụ: Quan hệ hai ngôi (binary relation)
Trong một tổ chức có nhiều phòng và mỗi nhân viên thuộc biên chế của một phòng Giữa
kiểu thực thể NHANVIEN và kiểu thực thể PHONG có quan hệ “Biên chế” gồm các cặp (n,p) thoả nhân viên n là biên chế của phòng p Sơ đồ thực thể quan hệ được biểu diễn như
sau:
◊ Ví dụ: Quan hệ một ngôi (unary relation)
Xét kiểu thực thể NGUOI gồm dân cư trong một địa phương nào đó Giữa các cư dân có
quan hệ “Mẹ con” gồm các cặp hai người (a,b) thoả a là mẹ của b Sơ đồ thực thể quan hệ
được biểu diễn như sau:
LƯƠNG
nhân viên
manv Họ TÊN ĐịA CHỉ NGAY SINH CMnv
NGoại ngữ
chế
con
Trang 5• Lưu ý: Thuéc tÝnh cã thÓ g¸n cho quan hÖ
◊ VÝ dô:
Gi÷a kiÓu thùc thÓ SINHVIEN vµ kiÓu thùc thÓ MONHOC cã quan hÖ “Thi” KÕt qu¶ thi (®iÓm) ph¸t sinh tõ quan hÖ nµy, cho nªn quan hÖ Thi cã thuéc tÝnh DIEM
• Ph©n lo¹i quan hÖ
XÐt quan hÖ R gi÷a kiÓu thùc thÓ E1 vµ kiÓu thùc thÓ E2
• Quan hÖ 1-1: Quan hÖ R gäi lµ quan hÖ 1-1, nÕu mçi thùc thÓ cña tËp thùc thÓ nµy chØ
quan hÖ víi nhiÒu nhÊt mét thùc thÓ cña tËp thùc thÓ kia vµ ngưîc l¹i BiÓu diÔn
• Quan hÖ n-1: Quan hÖ R gäi lµ quan hÖ n-1, nÕu mçi thùc thÓ cña E2 cã thÓ quan hÖ víi nhiÒu thùc thÓ cña E1, nhưng mçi thùc thÓ cña E1 chØ quan hÖ víi nhiÒu nhÊt mét thùc thÓ cña E2
• Quan hÖ 1-n: Quan hÖ R gäi lµ quan hÖ 1-n, nÕu mçi thùc thÓ cña E1 cã thÓ quan hÖ víi nhiÒu thùc thÓ cña E2, nhưng mçi thùc thÓ cña E2 chØ quan hÖ víi nhiÒu nhÊt 1 thùc thÓ cña
E1
®iÓm
Trang 6• Quan hÖ n-n: Quan hÖ R gäi lµ quan hÖ n-n, nÕu mçi thùc thÓ cña tËp thùc thÓ nµy cã thÓ
quan hÖ víi nhiÒu thùc thÓ cña tËp thùc thÓ kia vµ ng−îc l¹i
◊ VÝ dô: Quan hÖ mét ng«i
quan hÖ 1-1 quan hÖ 1-n
◊ VÝ dô: Quan hÖ hai ng«i (binary relation)
quan hÖ 1-1
quan hÖ n-1
con
n
1
chång
1
1
nh©n viªn Tr−ëng phßng phong
chÕ
1
n
Trang 7quan hệ n-n
Các khái niệm trên có thể mở rộng cho quan hệ giữa nhiều tập thực thể E1, E2, , Ek Ta tách riêng tập thực thể Ei và xét quan hệ của các tập thực thể còn lại đối với nó Chẳng hạn,
nếu với mỗi bộ k-1 thực thể thuộc E1, , Ei-1, Ei+1, , Ek chỉ quan hệ nhiều nhất với một thực thể của Ei thì ta nói quan hệ là n-1 từ E1, , Ei-1, Ei+1, , Ek vào Ei
◊ Ví dụ: Quan hệ ba ngôi (ternary relation)
Đây là quan hệ dạy học giữa thầy, lớp và môn học Mỗi cặp (lớp, môn học) chỉ có một
thầy dạy (1) Mỗi cặp (thầy, môn học) có thể kết hợp với nhiều lớp (n) Mỗi cặp (thầy, lớp)
có thể kết hợp với nhiều môn học (n)
• Thực thể kết hợp (composite entity)
Trong nhiều trường hợp, quan hệ n-n cũng có thuộc tính và có nhiều tính chất giống như thực thể ở đây sự phân biệt giữa thực thể và quan hệ chỉ là vấn đề quan niệm
Thực thể kết hợp là quan hệ n-n, mô tả kiểu thực thể có quan hệ 1-n với một số thực thể
khác
Trong sơ đồ thực thể quan hệ, thực thể kết hợp được biểu diễn bằng hình chữ nhật bao quanh hình thoi
◊ Ví dụ: Quan hệ Thi giữa SINHVIEN và MONHOC là thực thể kết hợp
Giữa thực thể kết hợp và thực thể cũng có thể có quan hệ
điểm
lớp
n
điểm
Trang 8◊ Ví dụ: Tình huống giáo viên (GIAO VIEN) dạy môn học (MON HOC) và giáo viên dạy
môn học cho lớp (LOP) có thể biểu diễn bằng sơ đồ sau
Để mô tả chính xác hơn các loại quan hệ người ta dùng khái niệm lực lượng cực tiểu và
lực lượng cực đại
• Lực lượng cực tiểu và lực lượng cực đại (minimum and maximum cardinality)
Xét quan hệ R giữa kiểu thực thể E1 và kiểu thực thể E2
• Lực lượng cực tiểu của quan hệ R đối với E2 (E1 ) là số cực tiểu các thể hiện của kiểu thực thể E2 (E1 ) có thể kết hợp với mỗi thể hiện của kiểu thực thể E1 (E2 )
• Lực lượng cực đại của quan hệ R đối với E2 (E1 ) là số cực đại các thể hiện của kiểu thực thể E2 (E1 ) có thể kết hợp với mỗi thể hiện của kiểu thực thể E1 (E2 )
Giả sử m, n là lực lượng cực tiểu, lực lượng cực đại của quan hệ R đối với E2, khi đó ta biểu diễn trên sơ đồ thực thể quan hệ như sau
◊ Ví dụ:
quan hệ 1-1
quan hệ n-1
nhân viên Trưởng phòng phong
chế
(0,1) (1,1)
(1,1) (1,n)
GIAO VIEN n Dạy n mon hoc
LOP
Học
n
n
Trang 9quan hệ n-n
• Phụ thuộc tồn tại
Xét quan hệ R giữa kiểu thực thể E1 và kiểu thực thể E2 với lược đồ thực thể quan hệ dạng sau
trong đó m, n là các số nguyên
Ta thấy rằng mỗi thực thể của kiểu thực thể E2 phải quan hệ với duy nhất một thực thể của kiểu thực thể E1 Như vậy, mỗi thực thể trong E2 không thể tồn tại nếu không có thực thể quan hệ tương ứng trong E1 Hiện tượng này gọi là sự phụ thuộc tồn tại (của E2 vào E1) Khi đó E1 gọi là kiểu thực thể cha, E2 gọi là kiểu thực thể con và được coi là thực thể yếu
◊ Ví dụ: Xét quan hệ:
Ta thấy kiểu thực thể NHÂNVIÊN phụ thuộc tồn tại và kiểu thực thể PHONG PHONG
là kiểu thực thể cha, NHÂNVIÊN là kiểu thực thể con (thực thể yếu)
• Quan hệ khoá
Thông thường, thực thể yếu thường không có khoá dự tuyển, và khoá chính của thực thể cha được sử dụng như là một bộ phận của thực thể con
Như vậy, thực thể của tập thực thể yếu phân biệt với nhau không phải chỉ bằng các thuộc
tính mà còn bằng quan hệ với các thực thể kiểu khác Quan hệ dạng này gọi là quan hệ khoá
◊ Ví dụ : Xét cơ sở dữ liệu với hai tập thực thể :
- BRANDS có các thuộc tính MAKE và MODEL (ví dụ "Datsun, 280Z")
- AUTOS có thuộc tính SERIAL_NO
Ta có thể giả thiết SERIAL_NO là khoá của tập thực thể AUTOS Nhưng có thể xảy ra tình huống hai MAKE xe khác nhau có cùng SERIAL_NO Để làm cho các thực thể của
điểm (1,n) (1,n)
E1 (1,1) R (m,n) E2
chế (1,1)
(1,n)
Trang 10AUTOS phân biệt nhau, ta cần có quan hệ giữa AUTOS và BRANDS biểu diễn thực tế là mỗi xe có một nhãn hiệu riêng Khi đó ta có thể coi mỗi thực thể của AUTOS được xác định duy nhất bằng SERIAL_NO của nó và thuộc tính MAKE của thực thể quan hệ tương ứng trong BRANDS
Lưu ý rằng thuộc tính (ảo) MAKE của AUTOS, có được nhờ quan hệ khoá Thuộc với
BRANDS, và thuộc tính SERIAL_NO tạo thành khoá của AUTOS
make (0,n) (1,1)
model make serial_no
Trang 113 Mô hình hoá thuộc tính bội
Thuộc tính bội trong mô hình thực thể quan hệ thường gây khó khăn cho việc cài đặt Vì vậy người ta thường khử các thuộc tính bội bằng cách thêm kiểu thực thể gồm các thuộc
tính bội liên quan và quan hệ với thực thể gốc Quá trình này gọi là Mô hình hoá thuộc tính bội
◊ Ví dụ:
Xét kiểu thực thể NHÂNVIÊN có thuộc tính bội NGOạI NGữ
NHÂNVIÊN( mã nv, họ tên, địa chỉ, ngay sinh, CMND, lương, NGOạI NGữ)
Một nhân viên có thể biết nhiều ngoại ngữ (Anh, Pháp, Đức, .), vậy NGOạI NGữ là thuộc tính bội
Để khử thuộc tính bội NGOAINGU, ta thêm kiểu thực thể NGOAINGU với thuộc tính
TEN_NN và quan hệ Biết
• Nhóm lặp
Nhóm lặp là tập thuộc tính bội có quan hệ lôgic với nhau Để khử các nhóm lặp ta cũng
thêm kiểu thực thể gồm các thuộc tính bội liên quan và quan hệ với thực thể gốc
◊ Ví dụ:
Xét kiểu thực thể NHÂNVIÊN có thuộc tính NGOạI NGữ, trình độ (ngoại ngữ)
NHÂNVIÊN( mã nv, họ tên, địa chỉ, ngay sinh, NGOạI NGữ, trình độ )
LƯƠNG
nhân viên
manv Họ TÊN ĐịA CHỉ NGAY SINH CMnD
NGoại ngữ
LƯƠNG
nhân viên
manv Họ TÊN ĐịA CHỉ NGAY SINH CMnD
ten_NN
(0,n) (0,n)
Trang 12Một nhân viên có thể biết nhiều ngoại ngữ (Anh, Pháp, Đức, ) với các trình độ khác nhau (A, B, C, ), vậy NGOạI NGữ và TRINH ĐÔ là các thuộc tính bội liên quan với nhau
Để khử thuộc tính bội NGOAINGU và TRINHDO, ta thêm kiểu thực thể NGOAINGU
với các thuộc tính TEN_NN, TRINHĐÔ và quan hệ Biết
• Dữ liệu phụ thuộc thời gian
Có những loại dữ liệu thay đổi theo thời gian, chẳng hạn như lương, giá cả hàng hoá, Như vậy các thuộc tính biểu diễn dữ liệu loại này sẽ là thuộc tính bội Đây cũng là dạng
nhóm thuộc tính lặp và ta khử chúng bằng các thực thể với thuộc tính thời gian, gọi là tem
thời gian
◊ Ví dụ:
Xét kiểu thực thể NHÂNVIÊN có thuộc tính bội phụ thuộc thời gian lương, ngày qđ (lên lương)
NHÂNVIÊN( mã nv, họ tên, địa chỉ, ngay sinh, lương, ngày qđ )
Để khử thuộc tính bội LƯƠNG và NGAY QĐ, ta thêm kiểu thực thể QTL (quá trình
lương) với các thuộc tính NGAY QĐ, LƯƠNG và quan hệ Có
nhân viên
manv Họ TÊN ĐịA CHỉ NGAY SINH NGoại ngữ trình độ
nhân viên
manv Họ TÊN ĐịA CHỉ NGAY SINH
ten_NN
trình độ
(0,n) (0,n)
nhân viên
manv Họ TÊN ĐịA CHỉ NGAY SINH lương ngày qđ
Trang 13nh©n viªn
manv Hä T£N §ÞA CHØ NGAY SINH
ngay q®
l−¬ng (1,n)
(1,1)
Trang 144 Tổng quát hoá và đặc biệt hoá
Trong lý thuyết cơ sở dữ liệu tổng quát hoá là khái niệm chỉ rằng một kiểu thực thể E
bao gồm các thuộc tính chung của các kiểu thực thể E1, , Em Ngược lại, các kiểu thực thể
E1, , Em được coi là các kiểu thực thể đặc biệt của thực thể E Trong mối quan hệ này, E gọi là kiểu thực thể trên (supertype) và E1, , Em gọi là kiểu thực thể dưới (subtype)
• Thực thể dưới và thực thể trên (Subtype and Supertype)
Một trong thách thức chính của việc mô hình hoá dữ liệu là nhận biết và biểu diễn rõ ràng rằng một số kiểu thực thể chia sẻ các tính chất chung, và đồng thời có những đặc tính riêng biệt
+ Ví dụ: Một đơn vị có ba loại nhân viên: biên chế, hợp đồng dài hạn, và hợp đồng thời vụ
Các loại nhân viên có các thuộc tính như sau:
(1) Biên chế: MANV, HOTEN, DIACHI, NGAYLV, LUONG_NAM
(2) Hợp đồng dài hạn: MANV, HOTEN, DIACHI, NGAYLV, SOHD, LUONG_NGAY (3) Hợp đồng thời vụ: MANV, HOTEN, DIACHI, NGAYLV, LUONG_GIO
Lưu ý rằng cả ba loại nhân viên có các thuộc tính chung MANV (mã số nhân viên), HOTEN (họ tên), DIACHI (địa chỉ), NGAYLV (ngày bắt đầu làm việc), đồng thời chúng cũng có các thuộc tính riêng biệt Một cách tiếp cận hiệu quả là xây dựng kiểu thực thể NHANVIEN gồm các thuộc tính chung, và các kiểu thực thể dưới BIENCHE, HOPDONG, THOIVU chứa các thuộc tính riêng biệt Các kiểu thực thể được biểu diễn bằng sơ đồ thực thể quan hệ như sau:
nhân viên manv Họ TÊN ĐịA CHỉ NGAY lv
ISA
thoivu
manv lương_gio manv lương_nam manv SOHĐ lương_ngay