I.Mô hình thực thể liên kết 1.Thực thể và tập thực thể 2.Thuộc tính 3.Liên kết 4.Lập sơ đồ thực thểliên kết 5.Bài tập II.Mô hình dữ liệu quan hệ 1.Thuộc tínhtrường 2.Lược đồ quan hệ bảng 3.Khóa 4.Biến đổi sơ đồ thực thểliên kết sang sơ đồ quan hệ 5.Bài tập
Trang 1Mô hình dữ liệu
Trần Việt Trung
Vũ Tuyết Trinh
trungtv@soict.hust.edu.vn
Bộ môn hệ thống thông tin Viện Công nghệ thông tin và truyền thông
Đại học Bách Khoa Hà Nội
Mô hình dữ liệu
• Mô hình dữ liệu gồm
– Một tập hợp các khái niệm dùng để mô tả cấu trúc của một CSDL:
• Các kiểu dữ liệu
• Các mối quan hệ trong dữ liệu
• Các ràng buộc dữ liệu – Một tập các phép toán để thao tác với các dữ liệu này
2
Ví dụ: mô hình mạng, mô hình phân cấp, mô hình quan hệ, mô hình thực thể-liên kết, mô hình hướng đối tượng
“ A data model is a plan for building a database”*
Vài nét về lịch sử
3
1965 1970 1975 1980 1985 1990 1995 2000 2005 2010
Mô hình
mạng
Mô hình
phân cấp
Mô hình
quan hệ
Mô hình hướng đối
tượng
Mô hình quan hệ mở rộng
Mô hình bán cấu trúc DMS(65),
CODASYL
(71), IDMS,
IDS
IMS,
System
2k,
System R(81), DB2,
ORACLE, SQL
Server, Sybase,
O2, ORION, IRIS,
DB2, ORACLE-10i , SQL Server
Lore (97),
XML
???
Mô hình
Thực thể-liên kết
IRDS(87)
,CDD
+,
Phân loại mô hình dữ liệu
• Mô hình khái niệm (mức cao, ngữ nghĩa)
– Mô tả những thực thể/dữ liệu theo cách nhận thực của đa
số người dùng – Ví dụ: Mô hình thực thể liên kết, mô hình hướng đối tượng,
– Dựa trên khái niệm đối tượng
• Mô hình logic (mức biểu diễn, cài đặt)
– Mô tả dữ liệu một cách logic, dễ dàng ánh xạ đến những cấu trúc lưu trữ của máy tính
– Ví dụ: mô hình mạng, mô hình quan hệ,
– Dựa trên khái niệm bản ghi
• Mô hình vật l (mức thấp)
– Cho phép mô tả cách thức lưu trữ dữ liệu trong máy tính – Ví dụ: Unifying Model, Frame Memory
4
Các bước xây dựng một
CSDL
5
Mô hình hoá DL (vd: Sơ đồ thực thể-liên kết)
Mô tả DL logic với 1 mô hình DL cụ thể (vd: Sơ đồ quan hệ)
Mô tả ứng dụng
1: PHÂN TÍCH
2: THI ẾT K
Cài đặt với 1 hệ quản trị CSDL
(vd: ORACLE)
3: C ÀI ĐẶT
Mô hình hoá dữ liệu với mô hình thực thể - liên kết
Trang 2Đặc điểm
• Là mô hình dữ liệu thuộc mức quan niệm, sử dụng cho thiết kế CSDL
– Gần gũi với nhận thức của con người → dễ sử dụng
– Biểu diễn ngữ nghĩa phong phú của các thực thể và quan hệ giữa
các thực thể
– Dễ chuyển đổi sang mô hình quan hệ
– Dựa trên 2 khái niệm chính
• (tập) thực thể
• (tập) liên kết
• (Type & role)
• Được biểu diễn bởi sơđồ thực thể - liên kết
7
Thực thể và thuộc tính
• Thực thể: một đối tượng trong thế giới thực
• Tập thực thể: gồm các thực thể có tính chất giống nhau
• Thuộc tính: một đặc tính của một tập thực thể
– Miền giá trị ~ tập các giá trị
có thể
– Khoá ~ xác định sự duy nhất của 1 thực thể
8
• sv1
• sv2
• sv3 sinh_viên
maSV tenSV ngaysinh nam diachi
Kiểu thuộc tính
• Thuộc tính đơn giản (thuộc
tính nguyên tố)
– có kiểu dữ liệu nguyên tố
• Thuộc tính phức
– có kiểu phức, định nghĩa bởi
các thuộc tính khác
tenSV = ‘‘Trầ T Bình’’
= ‘‘Ng Đ Trung’’
9
sinh_viên
maSV tenSV ngaysinh nam
diachi so_pho quan thanh_pho
Kiểu thuộc tính (2)
• Thuộc tính đa giá trị
– tương ứng với mỗi thực thể,
có thể nhận nhiều giá trị
• Thuộc tính suy diễn
– có thể tính toán được từ (các) thuộc tính khác
10
mon_hoc
maMH tenmon soHT giao_vien sinh_viên
maSV tenSV ngaysinh nam
diachi tuoi
Liên kết
• Đ/n: là sự kết hợp giữa một số thực thể
• Thuộc tính
11
maMH tenmon soHT
maSV
tenSV
ngaysinh
nam
Ràng buộc của kết nối
• 1-1: Liên kết 1 thực thể của một tập thực thể với nhiều nhất 1 thực thể của tập thực thể khác
• 1-n: Liên kết 1 thực thể của một tập thực thể với nhiều thực thể của tập thực thể khác
• n-m: Liên kết 1 thực thể của một tập thực thể với nhiều thực thể của tập thực thể khác và ngược lại
• đệ quy: Liên kết giữa các thực thể cùng kiểu
12
sinh_viên n dang_ky m mon_hoc
mon_hoc
dieu_kien
lop_hoc 1 chu_nhiem 1 giao_vien
Trang 3Lập sơ đồ thực thể - liên kết
• B1: Xác định các thực thể
• B2: Xác định các liên kết giữa các thực thể
– Bậc của liên kết
– Ràng buộc (1-1, 1-n, n-m, đệ quy)
13
Bài tập
• Xác định sơ đồ thực thể - liên kết từ một mô
tả bài toán
14
Mô hình dữ liệu quan hệ
Đặc điểm
• Dựa trên lý thuyết tập hợp
• dễ dàng ánh xạ đến cấu trúc lưu trữ vật lý
• Các khái niệm cơ bản
– Thuật ngữ toán học: quan hệ, bộ và thuộc tính – Thuật ngữ hướng dữ liệu: bảng, bản ghi và trường
• Được biểu diễn bởi lược đồ quan hệ
16
Thuộc tính - trường
• Đ/n: là một tính chất riêng biệt của một đối tượng cần được lưu
trữ trong CSDL để phục vụ cho việc khai thác dữ liệu về đối tượng
– Ký hiệu: A
• Tên thuộc tính:
– maSV, tenSV,ngaysinh,nam,diachi,lop
• Kiểu dữ liệu, miền giá trị (Dom(A))
– text, number, boolean, date/time, memo
– maSV: text(10)
tenSV: text(30)
ngaysinh: date
nam: boolean
17
Lược đồ quan hệ - bảng
• Đ/n: được xác định trên một tập các thuộc tính Ai
• Ký hiệu:
R(A1,A2, … An)
• R(A1,A2, … An) ⊆ Dom(A1) x
… x Dom(An)
18
SINH_VIEN (maSV,tenSV,ngaysinh, nam, diachi,lop)
VI DU???
Trang 4Bộ - bản ghi
• Đ/n: các thông tin của một đối tượng thuộc
quan hệ
• Ký hiệu
t a1, a2, … an)
• t(a1,a2, … an) ∈ Dom(A1) x … x Dom(An)
19
Lược đồ cơ sở dữ liệu quan hệ
• Lược đồ cơ sở dữ liệu quan hệ (S) : là sự trừu tượng hoá của các quan hệ ở mức độ cấu trúc của một bảng 2 chiều
– S = {Ri} – SINH_VIEN(maSV,tenSV, ngaysinh, nam, diachi,malop) LOP(malop,lop, khoa, GVCN, loptruong)
MON_HOC(maMH,tenmon,soHT)
• Thể hiện của quan hệ : tập hợp các bộ giá trị của quan hệ R vào một thời điểm (relation state)
20
•
–
•
•
–
–
–
•
•
21
Khoá
• Đ/n
– Cho R(A1,A2, … An), K ⊆ {Ai},
– K l à khoá nếu v ới ∀t1, t2 ∈R, ∃Ai ∈K: t1.K≠t2.K
SINH_VIEN (maSV,tenSV,ngaysinh,nam, diachi,lop)
22
Phân loại khoá
• Khoá tối thiểu
– Cho R(A1,A2, … An), K ⊆
{Ai},
– K là khoá tối thiểu nếu K
là khoá và !∃K’⊆ K mà K’
là khoá
• Khoá ngoài
– Cho R(A1,A2, … An),
R’(A’1,A’2, … A’m), K ⊆
{Ai},
– K là khoá ngoài của R tham
chiếu đến quan hệ R’ nếu K
là khoá chính của R’
23
SINH_VIEN (maSV,tenSV,ngaysinh,
nam, diachi,malop)
LOP(malop,lop, khoa, GVCN,
loptruong)
Rằng buộc trong cơ sở dữ liệu
•
•
– Rằng buộc toàn vẹn của thực thể (entity integrity
• – Rằng buộc toàn vẹn tham chiếu (referential
• Rằng buộc toàn vẹn ngữ nghĩa (semantic
–
24
Trang 5Biến đổi: Sơ đồ thực thể - liên kết
→ Sơ đồ quan hệ
• Biến đổi tập các thực thể
• Biến đổi các liên kết
• Các khoá của các sơ đồ quan hệ
• Các sơ đồ quan hệ với khoá chung
Ví dụ
CNTT03 Phân tích và thiết kế hệ thống 4
LOP
SINH_VIEN
27
Nhắc lại: Các bước xây dựng một CSDL
28
Mô hình hoá DL (vd: Sơ đồ thực thể-liên kết)
Mô tả DL logic với 1 mô hình DL cụ thể (vd: Sơ đồ quan hệ)
Mô tả ứng dụng
1: PHÂN TÍCH
2: THI ẾT K
Cài đặt với 1 hệ quản trị CSDL (vd: ORACLE)
3: C ÀI ĐẶT
Biến đổi các tập thực thể
B1: 1 tập thực thể -> 1 quan hệ
– thuộc tính → thuộc tính (trường),
– 1 thực thể → 1 bộ
– khoá của tập thực thể → khoá của quan hệ,
29
• sv1
• sv2
• sv3
86 L T N
45 H B T
56 Đ C V
21 T Q B
diachi
IT7 IT6 IT5 IT4
malop
0 29/2/1980
Ng T Phương SV0034
0 26/3/1982 Trần M Quế SV0067
1 3/2/1980
Ng Đ Trung SV0025
0 1/4/1981 Trần T Bình SV0011
nam ngaysinh tenSV
maSV
SINH_VIEN
• sv1
• sv2
• sv3
• sv4
maSV tenSV ngaysinh nam diachi malop
sinh_viên
Biến đổi các tập thực thể (2)
B2: 1 tập thực thể xác định từ tập thực thể khác (E) qua 1 liên kết
Ø 1quan hệ chứa khoá cuả E
LOPTRUONG(maSV)
30
sinh_viên la_mot lop_truong
Trang 6Biến đổi các liên kết
B3: Liên kết 1-1
Ø Thêm 1 quan h ệ m ới xác định bởi các thuộc tính
nằm trong khóa của các thực thể có liên quan
CHU_NHIEM_LOP(malop,maGV) è KHONG DUOC
hoặc
Ø Dùng khoá ngoài
LOP_HOC(malop,lop,khoa,maGV)
31
lop_hoc chu_nhiem giao_vien
malop
lop
khoa
maSV ngaysinh trinhdo khoa
Biến đổi các liên kết (2)
B4: Liên kết 1-n
Ø Thêm 1 quan hệ mới xác định bởi các thuộc tính nằm trong khóa của các thực thể có liên quan
SINHVIEN_LOP(malop,maSV)
hoặc
Ø Dùng khoá ngoài: th êm khoá chính của quan hệ bên 1 vào quan hệ bên n làm khoá ngoài
SINH_VIEN(maSV,tenSV,ngaysinh,nam, diachi, malop)
32
lop_hoc gom sinh_vien
malop lop khoa
maSV tenSV ngaysinh nam diachi
Biến đổi các liên kết (3)
B5: Liên kết n-n
Ø Thêm 1 quan hệ mới xác định bởi các thuộc
tính nằm trong khóa của các thực thể có liên
quan và các thuộc tính của liên kết
DANG_KY(maSV,maMH, diem)
33
sinh_viên n dang_ky m mon_hoc
maSV
tenSV
ngaysinh
nam
diachi
maMH ten soHT diem
Thuộc tính đa trị
B6: Với mỗi thuộc tính đa trị Ø Thêm 1 quan hệ mới xác định bởi thuộc tính đa trị và khoá của tập thực thể tương ứng
MH_GV(maMH,giao_vien)
34
mon_hoc
maMH tenmon soHT giao_vien
Bài tập
• Biến đổi sơ đồ thực thể/liên kết → sơ đồ
quan hệ
35
Kết luận
• Mô hình thực thể-liên kết cho phép biểu diễn
dữ liệu gần với nhận thức của con người
• Mô hình quan hệ
– Cho phép biểu diễn logic dữ liệu – dễ ánh xạ sang cấu trúc lưu trữ vật lý – Dựa trên nền tảng toán học cho phép tối ưu hoá các truy xuất dữ liệu
36
“More than 90% of current database applications are built on
relational database systems which utilise relational model
as its underlying data model”*
* R Elmasri and S Navathe Fundamentals of Database Systems
Trang 7Các điểm cần lưu ý
• Khái niệm chung về mô hình dữ liệu
• Mô hình thực thể - liên kết
• Mô hình dữ liệu quan hệ
• Các bước xây dựng một CSDL
• Biến đổi từ sơ đồ thực thể - liên kết sang lược đồ quan hệ
37
Tài liệu tham khảo
• Entity-Relationship Modeling: Historical Events, Future Trends, and Lessons Learned
• Fundamentals of Database Systems (6th Edition)
38
39
Vài nét về lịch sử
• Mô hình dữ liệu mạng:
– Được đề xuất và cài đặt đầu tiên trong hệ thống IDS (1964/1965)
– Được phát triển bởi CODASYL (1971) Sau đó tiếp tục được sử dụng rổng rãi trong các hệ thống IDMS (Cullinet), DMS 1100 (Unisys), IMAGE (H.P.), VAX -DBMS (Digital Equipment Corp.)
• Mô hình dữ liệu phân cấp:
– Được đề xuất và cài đặt bởi IBM và North American Rockwell (1965)
– Sử dụng rộng rãi trong các hệ thống ÍMS, ngoài ra con được sử dụng trong System 2k (SAS inc.)
– Là một mô hình khá phổ biến
• Mô hình quan hệ:
– Được đề xuất bởi E.F Codd (IBM-1970) – Thương mại hoá năm1981/1982 trong System R – Hiện được sử dụng trong rất nhiều các phần mềm thương mại như DB2, ORACLE, SQL Server, SYBASE, INFORMIX,
40
Vài nét về lịch sử (2)
• (Các) Mô hình dữ liệu hướng đối tượng:
– Ngôn ngữ lập trình hướng đối tượng như C++ (trong
OBJECTSTORE hay VERSANT), Smalltalk (trong GEMSTONE)
– Các hệ thống như O2, ORION (MCC - ITASCA), IRIS (at H.P.- used
in Open OODB)
• (Các) Mô hình đối tượng-quan hệ (mô hình quan hệ mở
rộng):
– Sự kết hợp giữa mô hình hướng đối tượng và mô hình quan hệ
– Được phát triển gần đây và được thương mại hoá trong các hệ
thống Informix Universal Server,Oracle-10i, DB2, and SQL
Server,
• (Các) mô hình dữ liệu bán cấu trúc
– Đượcđề xuất ăm 1997/1998 bởi nhóm nghiên cứu tạiĐH
Standford
– Chưa được chuẩn hoá và không được thực sự thương mại hoá
trên danh nghiă (các hệ thương mại hoá được găn với XML)
41
Clasification
• Object-Based Logical Models
1 The Entity-Relationship Model
2 The Binary Data Model
3 The Semantic Data Model
4 The Info-logical Data Model
• Record-Based Logical Data Models
1 The Relational Data Model
2 The Network Data Model
3 The Hierarchical Data Model
• Physical Data Models
1 Unifying Model
2 Frame Memory
42
Trang 8Các khái niệm cơ bản (5)
• Phụ thuộc hàm
– R(A1,A2, … An); X, Y ⊂ {Ai}
Nếu ∃ f: XàY: X xác định
hàm Y hay Y phụ thuộc hàm
vào X
• Ràng buộc toàn vẹn
– Một quy tắc định nghĩa trên
một hay nhiều quan hệ do
môi trường ứng dụng quy
định để đảm bảo tính nhất
quán của dữ liệu trong
CSDL
43
•
–
•
– How data is stored on the computer storage
• In-between: representational (logic) data
–
44