Bài giảng Cơ sở dữ liệu - Chương 2: Các mô hình dữ liệu - Nguyễn Hồng Phương

02/09/2019  
Nội dung  
• Tổng quan về mô hình dữ liệu  
• Mô hình phân cấp  
Các mô hình dữ liệu  
• Mô hình mạng  
• Mô hình quan hệ  
• Mô hình thực thể liên kết  
• Mô hình hướng đối tượng  
• Đánh giá, bài tập  
Nguyễn Hồng Phương  
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  
1
2
Tổng quan về mô hình dữ liệu  
Tổng quan...(tiếp)  
• Mô hình dữ liệu [Codd, 1980] gồm:  
– Một tập hợp các cấu trúc của dữ liệu  
• Nhiều mô hình còn bao gồm cả một tập  
các phép toán để thao tác các dữ liệu  
• Mô hình thuộc dạng ngữ nghĩa: tập trung  
về ngữ nghĩa của dữ liệu như mô hình  
thực thể liên kết, sử dụng để hỗ trợ người  
dùng có cái nhìn khái quát về dữ liệu  
• Mô hình thuộc dạng khái niệm: tập trung  
vào cách thức tổ chức dữ liệu tại mức khái  
niệm như mô hình mạng, mô hình liên kết,  
mô hình quan hệ, độc lập với DBMS và hệ  
thống phần cứng để cài đặt cơ sở dữ liệu  
– Một tập hợp các phép toán để thao tác với các  
dữ liệu  
– Một tập hợp các ràng buộc về dữ liệu  
• Mô hình dữ liệu là một tập hợp các khái  
niệm dùng để mô tả:  
– Dữ liệu  
– Ngữ nghĩa của dữ liệu  
– Các mối quan hệ trong dữ liệu  
– Các ràng buộc dữ liệu  
3
4
1
02/09/2019  
Vài nét về lịch sử  
Một vài mô hình dữ liệu  
DB2,  
ORACLE-  
10i, SQL  
Mô hình  
quan hệ  
Mô hình  
Mô hình  
phân cấp  
• Mô hình phân cấp  
• Mô hình mạng  
• Mô hình quan hệ  
• Mô hình thực thể liên kết  
• Mô hình hướng đối tượng  
• Mô hình bán cấu trúc  
• Mô hình dữ liệu của XML  
quan hệ mở rộngServer ...  
XML  
System R(81), DB2,  
ORACLE, SQL  
IMS,  
System  
2k,  
Server, Sybase, ...  
dbXML,natix,  
Tamino,...  
...  
1965  
1970  
1975 1980 1985 1990 1995 2000 2005 2010  
O2,  
ORION,  
IRIS, ...  
Mô hình  
Thực thể-liên kết  
IRDS(87)  
Mô hình  
mạng  
,CDD+,h  
...hướng đối  
tượng  
DMS(65),  
Mô hình bán  
cấu trúc  
Lore  
CODASYL  
(71), IDMS,  
IDS  
(97), ...  
5
6
Mô hình dữ liệu phân cấp  
(Hierarchical data model)  
Đặt vấn đề  
• Ra đời những năm 60-65  
• Biểu diễn bằng cây  
– Quan hệ cha-con  
• Đặc điểm của các mô hình dữ liệu?  
• Sự khác nhau giữa các mô hình dữ  
liệu?  
• Các mô hình dữ liệu phổ biến ngày  
nay  
– Mỗi nút có 1 cha duy nhất  
– 1 CSDL = 1 tập các cây = 1 rừng  
• Các khái niệm cơ bản  
– Bản ghi  
– Móc nối  
– Các phép toán: GET, GET UNIQUE, GET NEXT,  
GET NEXT WITHIN PARENT,…  
7
8
2
02/09/2019  
Mô hình dữ liệu phân cấp – Ví dụ  
Mô hình dữ liệu phân cấp  
• Ưu điểm  
– Dễ xây dựng và thao tác  
giao_vien  
lop  
– Tương thích với các lĩnh vực tổ chức phân cấp  
– Ngôn ngữ thao tác đơn giản: duyệt cây.  
• Nhược điểm:  
– Sự lặp lại của các kiểu bản ghi dữ liệu dư  
thừa và không nhất quán.  
sinh_vien  
diem_thi  
mon_hoc  
mon_hoc  
• Giải pháp: bản ghi ảo  
– Hạn chế trong biểu diễn ngữ nghĩa của các  
móc nối giữa các bản ghi (chỉ cho phép quan  
hệ 1-n)  
9
10  
Mô hình dữ liệu mạng  
(Network data model)  
Mô hình dữ liệu mạng – Ví dụ  
• Sự ra đời  
– Sử dụng phổ biến từ những năm 60, được định nghĩa lại vào  
năm 71  
giao_vien  
• Biểu diễn bằng đồ thị có hướng  
• Các khái niệm cơ bản  
giang_day  
hoc  
– Tập bản ghi (record)  
lop  
mon_hoc  
• Kiểu bản ghi (record type)  
• Các trường (field)  
co_diem  
– Móc nối  
gom  
• Tên của móc nối  
• Chủ (owner) – thành viên (member): theo hướng của móc nối  
• Kiểu móc nối: 1-1, 1-n, đệ quy  
– Các phép toán  
co  
sinh_vien  
diem_thi  
• Duyệt: FIND, FIND member, FIND owner, FIND NEXT  
• Thủ tục: GET  
11  
12  
3
02/09/2019  
Mô hình dữ liệu quan hệ  
Mô hình dữ liệu mạng  
• Sự ra đời: vào năm 1970[Codd, 1970]  
• Dữ liệu được biểu diễn dưới dạng bảng  
• Ưu điểm  
Đơn giản  
• Là mô hình dữ liệu khái niệm phổ biến cho  
đến tận thời điểm hiện tại  
Có thể biểu diễn các ngữ nghĩa đa dạng  
với kiểu bản ghi và kiểu móc nối  
Truy vấn thông qua phép duyệt đồ thị  
(navigation)  
• Nhược điểm:  
• Dựa trên lý thuyết toán học, đồng thời  
cũng gần với cấu trúc tệp và cấu trúc dữ  
liệu nên có hai loại thuật ngữ liên quan:  
– Thuật ngữ toán học: quan hệ, bộ, thuộc tính  
– Thuật ngữ hướng dữ liệu: bảng, bản ghi, trường  
Số lượng các con trỏ lớn  
Hạn chế trong biểu diễn ngữ nghĩa của  
các móc nối giữa các bản ghi  
13  
14  
Codd's 12 Rules  
Edgar Frank "Ted" Codd  
• (19/08/1923 – 18/04/2003)  
• Nhà khoa học máy tính người Anh, làm việc  
cho IBM.  
• Cha đẻ của mô hình dữ liệu quan hệ  
• Nhận giải thưởng Turing, năm 1981  
• Rule zero  
• Rule 1: Information rule  
• Rule 2: Guaranted Access  
• Rule 3: Systematic treatment of NULL  
• Rule 4: Active Online Catalog  
• Rule 5: Powerful and Well-Structured Language  
• Rule 6: View Updation Rule  
• Rule 7: Relational Level Operation  
• Rule 8: Physical Data Independence  
• Rule 9: Logical Data Independence  
• Rule 10: Integrity Independence  
• Rule 11: Distribution Independence  
15  
16  
• Rule 12: Nonsubversion Rule  
4
02/09/2019  
MON_HOC  
maHP  
Ví dụ  
tenHP  
soTC  
4
Mô hình dữ liệu quan hệ  
CNTT01  
CNTT02  
Nhp môn CSDL  
Truyn DL và mng  
Phân tích và thiết kế hthng  
Qun lý dán  
mô hình  
dữ liệu  
quan hệ  
4
CNTT03  
HTTT01  
4
3
• Các khái niệm cơ bản  
Thuộc tính, miền thuộc tính  
Quan hệ  
LOP  
malop lop  
khoa  
CNTT  
CNTT  
CNTT  
CNTT  
GVCN  
loptruong  
IT4  
IT5  
IT6  
IT7  
Tin 4  
Ng. V. Anh Trn T. Bình  
Lê A. Văn Ng. Đ. Trung  
Khóa  
Tin 5  
Tin 6  
Tin 7  
Ng. T. Tho Trn M. Quế  
Ng. V. Quý Ng. T. Phương  
SINH_VIEN  
maSV  
tenSV  
ngaysinh  
1/4/1981  
3/2/1980  
26/3/1982  
29/2/1980  
gt  
0
diachi  
malop  
SV0011  
SV0025  
SV0067  
SV0034  
Trn T. Bình  
21 T. Q. B  
IT4  
Ng. Đ. Trung  
Trn M. Quế  
Ng. T. Phương  
1
56 Đ. C. V IT5  
0
45 H. B. T  
86 L. T. N  
IT6  
IT7  
18  
0
Mô hình dữ liệu quan hệ  
Mô hình dữ liệu quan hệ  
Thuộc tính (~trường): là các đặc tính của  
một đối tượng  
• Mỗi thuộc tính được xác định trên một miền  
giá trị nhất định gọi là miền thuộc tính  
Quan hệ (~bảng):Cho n miền giá trị D1,  
D2 , …, Dn không nhất thiết phân biệt, r là  
một quan hệ trên n miền giá trị đó nếu r  
là một tập các n-bộ (d1 , d2 , …, dn ) sao  
cho di Di  
• Ví dụ:  
• Một quan hệ có thể được biểu diễn dưới  
dạng 1 bảng trong đó 1 dòng trong bảng  
tương đương với 1 bộ , một cột trong bảng  
tương đương với 1 thuộc tính của quan hệ  
• Bậc của 1 quan hệ là số các thuộc tính  
trong quan hệ  
– Sinhviên (MãSV, TênSV, Nămsinh, GiớiTính, ĐịaChỉ)  
– dom(MãSV) = {char(5)}  
– dom(TênSV) = {char(30)}  
– dom(Nămsinh) = {date}  
– dom(GiớiTính) = {0, 1}  
– dom(ĐịaChỉ) = {char(50)}  
• Lực lượng của 1 quan hệ là số các bộ  
trong quan hệ  
19  
20  
5
02/09/2019  
Mô hình dữ liệu quan hệ  
Mô hình dữ liệu quan hệ  
• Định nghĩa Khoá của quan hệ r trên  
tập thuộc tính U = {A1 , A2 , …, An}  
là một tập K U sao cho với bất kỳ 2  
bộ t1 , t2 thuộc r đều tồn tại một  
thuộc tính A thuộc K mà t1[A] ≠ t2  
[A]  
• Một quan hệ có thể có nhiều khoá  
• Nếu K là khoá của r thì mọi K’ sao  
cho K K’ đều là khoá của r. K’ được  
Định nghĩa (tiếp): Cho U = {A1, A2  
, …, An} là một tập hữu hạn các  
thuộc tính trong đó dom(Ai ) = Di, r  
là quan hệ trên tập thuộc tính U ký  
hiệu là r(U) nếu:  
r D1 D2 ...Dn  
• U được gọi là sơ đồ quan hệ (lược  
đồ quan hệ)  
21  
22  
gọi là siêu khoá của r  
Mô hình dữ liệu quan hệ  
Ví dụ:  
Mô hình dữ liệu quan hệ  
• Quan hệ: SinhViên, Lớp  
Định nghĩa: K là khoá tối  
thiểu của r nếu K là một khoá  
của r và bất kỳ tập con thực sự  
nào của K đều không phải là  
khoá của r  
• Siêu khoá: {MãSV, HọTên};  
• Khoá tối thiểu: {MãSV}; {HọTên, NămSinh}  
• Khoá ngoài: TênLớp nếu coi nó là khoá chính  
của quan hệ Lớp  
MãSV  
TênSV  
NămSinh  
GiớiTính TênLớp  
Tên Lớp  
KHMT1  
KHMT2  
KTMT1  
SĩSố  
Định nghĩa: Một tập con K U  
được gọi là khoá ngoài của  
quan hệ r(U) tham chiếu đến  
một quan hệ r’ nếu K là khoá  
001  
Nguyễn Văn An  
Nguyễn Văn An  
Lê Văn Cường  
1999  
1
1
KHMT1  
KHMT2  
60  
002  
1998  
65  
003  
004  
1997  
1
0
KHMT2  
KTMT1  
58  
Nguyễn Thùy Linh 1997  
chính của r’  
23  
24  
6
02/09/2019  
Mô hình thực thể liên kết  
Mô hình dữ liệu quan hệ -  
nhận xét  
(Entity-Relationship data model)  
• Cho phép mô tả các dữ liệu có liên quan  
trong một xí nghiệp trong thế giới thực dưới  
dạng các đối tượng và các mối quan hệ của  
chúng.  
• Ưu điểm  
Dựa trên lý thuyết tập hợp  
• Được sử dụng cho bước đầu thiết kế CSDL,  
làm nền tảng để ánh xạ sang một mô hình  
khái niệm nào đó mà Hệ quản trị CSDL sẽ sử  
dụng  
Khả năng tối ưu hoá các xử lý phong  
phú  
• Nhược điểm  
Hạn chế trong biểu diễn ngữ nghĩa  
Cấu trúc dữ liệu không linh hoạt  
• Trong mô hình thực thể liên kết, CSDL được  
mô hình hóa như là:  
– Một tập hợp các thực thể  
– Liên hệ giữa các thực thể này  
25  
26  
Mô hình thực thể liên kết  
Các khái niệm cơ bản  
Mô hình thực thể liên kết...  
• Thực thể: một đối tượng trong thế  
giới thực, tồn tại độc lập và phân biệt  
được với các đối tượng khác  
• Tập thực thể: một tập hợp các thực  
thể có tính chất giống nhau  
• Thực thể, tập  
thực thể  
• Thuộc tính  
• Khoá  
• Liên kết, tập  
liên kết  
• Ví dụ:  
Thực thể: một sinh viên, một lớp  
Tập thực thể: toàn thể sinh viên của 1  
lớp, toàn thể các lớp của 1 khoa  
27  
28  
7
02/09/2019  
Mô hình thực thể liên kết...  
Mô hình thực thể liên kết...  
Kiểu thuộc tính  
• Thuộc tính là đặc tính  
sinh_viên  
• 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ủa một tập thực thể  
sinh_viên  
– Tập thực thể SinhViên có  
các thuộc tính như: TênSV,  
NămSinh,…  
•sv1  
•sv2  
•sv3  
gioitinh  
tenSV  
• Mỗi thực thể trong tập  
thực thể có một giá trị  
đặc tính nằm trong miền  
giá trị của thuộc tính  
maSV  
namsinh  
diachi  
maSV  
có kiểu phức, định  
nghĩa bởi các thuộc  
tính khác  
– Sinh viên  
1 có: Họtên là  
diachi  
quan  
thanh_pho  
so_pho  
Nguyễn Hải Anh, Năm sinh  
1980  
tenSV  
namsinh  
gioitinh  
29  
30  
Mô hình thực thể liên kết...  
Mô hình thực thể liên kết...  
Kiểu thuộc tính  
Khóa  
• Thuộc tính đa giá  
trị  
maMH  
• Một hay một tập thuộc tính mà giá trị của  
chúng có thể xác định duy nhất một thực  
thể trong tập thực thể  
tenmon  
– tương ứng với mỗi  
thực thể, có thể  
nhận nhiều giá trị  
mon_hoc  
– Tập thực thể SinhViên có thể dùng MãSV làm  
khoá  
soHT  
• Khoá gồm nhiều thuộc tính thì gọi là khoá  
• Thuộc tính suy  
diễn  
phức  
sinh_viên  
• Một tập thực thể có thể có nhiều khoá  
nhưng chỉ một trong số các khoá được  
chọn làm khoá chính  
– có thể tính toán  
được từ (các) thuộc  
nam  
tenSV  
tính khác  
• Trong sơ đồ ER, thuộc tính nào được chọn  
tuoi  
maSV  
làm khoá chính sẽ được gạch chân  
ngaysinh  
31  
32  
diachi  
8
02/09/2019  
Mô hình thực thể liên kết...  
Mô hình thực thể liên kết...  
Liên kết - Tập liên kết  
Liên kết - Tập liên kết - Ví dụ:  
• Một liên kết là một mối liên hệ có nghĩa  
giữa nhiều thực thể  
maSV  
tenSV  
maMH  
tenmon  
soHT  
– Cho một thực thể SinhViên1 và LớpA, liên kết  
ThànhViên chỉ ra rằng SinhViên1 là 1 thành  
viên của LớpA  
diem_thi  
sinh_viên  
mon_hoc  
ngaysinh  
nam  
• Tập liên kết là một tập hợp các liên kết  
cùng kiểu  
diachi  
– Giữa tập thực thể SinhViên và Lớp có 1 tập liên  
kết ThànhViên, chỉ ra rằng mỗi sinh viên đều là  
thành viên của 1 lớp nào đó  
ket_qua  
• Một liên kết có thể có thuộc tính  
33  
34  
Mô hình thực thể liên kết...  
Cách lập sơ đồ thực thể - liên kết  
• Bước 1: Xác định các thực thể  
• Bước 2: Xác định các liên kết giữa  
các thực thể  
Ràng buộc của kết nối  
1
1
1-1: Liên kết 1 thực thể  
chu_nhiem  
lop_hoc  
giao_vien  
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
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  
thanh_vien  
lop_hoc  
sinh_vien  
Bậc của liên kết  
Ràng buộc (1-1, 1-n, n-n, đệ quy)  
n
n-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 và ngược lại  
n
sinh_viên  
mon_hoc  
dang_ky  
mon_hoc  
đệ quy: Liên kết giữa các  
thực thể cùng kiểu  
dieu_kien  
35  
36  
9
02/09/2019  
Ho  
Dem  
Ten  
Bài tập: Vẽ sơ đồ ER  
Ten _phong Ma_phong
• Bài toán: phân tích và thiết kế 1 CSDL gồm các  
thông tin trong 1 công ty (nhân viên, phòng ban,  
dự án)  
SoBH  
HoTen  
Dia_chi  
Luong  
Ngay_sinh  
1
PHONG_BAN  
Gioi_tinh  
– Công ty được tổ chức bởi các phòng ban. Mỗi phòng ban  
có 1 tên duy nhất, 1 số duy nhất và 1 người quản lý  
(thời điểm bắt đầu công tác quản lý của người này cũng  
được lưu lại trong CSDL). Mỗi phòng ban có thể có nhiều  
trụ sở làm việc khác nhau  
– Mỗi phòng điều phối một số dự án. Mỗi dự án có 1 tên  
và 1 mã số duy nhất, thực hiện tại một địa điểm duy  
nhất  
– Các thông tin về nhân viên cần được quan tâm gồm:  
tên, số bảo hiểm, địa chỉ, lương, giới tính, ngày sinh. Mỗi  
nhân viên làm việc tại một phòng ban nhưng có thể  
tham gia nhiều dự án khác nhau. Những dự án này có  
thể được điều phối bởi các phòng ban khác nhau. Thông  
tin về số giờ làm việc trong từng dự án (theo tuần) cũng  
như người quản lý trực tiếp của các nhân viên cũng được  
lưu trữ  
1
n
1
1
La_NV  
NHAN_VIEN  
nguoiPT  
n
1
Phu_trach  
Quan_ly  
Ngay_BD  
1
nguoibiPT  
n
So_gio  
Dieu_phoi  
co  
Lam_viec  
n
n
m
DU_AN  
CON  
– Thông tin về con cái của từng nhân viên: tên, giới tính,  
ngày sinh  
37  
Dia_diem  
Ten_DA  
Ma_DA  
HoTen  
Gioi_tinh Ngay_sinh  
Biến đổi sơ đồ thực thể liên kết  
sang sơ đồ quan hệ  
Các công cụ online giúp vẽ ERD  
• Lucidchart  
• 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  
• Drawio  
• Một số mô hình ERD tham khảo  
models/index.htm  
39  
40  
10  
02/09/2019  
Biến đổi các tập thực thể  
Biến đổi các tập thực thể  
• Bước 1: 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ộ  
Bước 2: 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:  
khoá của tập thực thể khoá của  
LOPTRUONG(maSV)  
quanhệ  
sinh_viên  
maSV  
tenSV ngaysinh  
nam  
diachi  
malop  
la_mot  
sinh_viên  
lop_truong  
SINH_VIEN  
•sv1  
•sv2  
•sv3  
•sv4  
maSV tenSV  
ngaysin gt  
h
diachi  
21 T. Q. B  
lop  
SV001 Trn T. Bình 1/4/81  
0
1
0
0
IT4  
SV002 Ng. Trung  
3/2/80  
56 Đ. C. V IT5  
SV006 Trn M. Quế 26/3/82  
45 H. B. T  
86 L. T. N  
IT6  
IT7  
41  
42  
SV003 Ng. Hương 29/2/80  
Biến đổi các liên kết (tiếp)  
Bước 4: Liên kết 1-n  
Biến đổi các liên kết  
Bước 3: 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 khoá của các thực thể có liên quan  
SINHVIEN_LOP(malop, maSV)  
Thêm 1 quan hệ mới xác định bởi các  
thuộc tính nằm trong khoá của các thực  
thể có liên quan  
CHU_NHIEM_LOP(malop,maGV)  
hoặc  
Dùng khoá ngoài  
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)  
maSV  
LOP_HOC(malop,lop,khoa,maGV)  
tenSV  
maGV  
ngaysinh  
malop  
lop  
1
malop  
lop  
1
1
ngaysinh  
trinhdo  
khoa  
n
chu_nhiem  
nam  
lop_hoc  
giao_vien  
gom  
lop_hoc  
sinh_vien  
khoa  
khoa  
diachi  
43  
44  
11  
02/09/2019  
Biến đổi các liên kết (tiếp)  
Thuộc tính đa trị  
Bước 5: Liên kết n-n  
Bước 6: Với mỗi thuộc tính đa trị  
Thêm 1 quan hệ mới xác định bởi các  
thuộc tính nằm trong khoá của các  
thực thể có liên quan và các thuộc  
tính của liên kết  
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)  
DANG_KY(maSV,maMH, diem)  
maMH  
diem  
maMH  
ten  
maSV  
tenSV  
tenmon  
mon_hoc  
soHT  
n
m
sinh_viên  
dang_ky  
mon_hoc  
ngaysinh  
nam  
soHT  
45  
46  
diachi  
Mô hình dữ liệu hướng đối tượng  
(Object-oriented data model)  
Mô hình dữ liệu hướng đối tượng  
Ví dụ:  
class sinh_vien {  
string maSV;  
string tenSV;  
date ngaysinh;  
boolean nam;  
string diachi;  
string lop;  
• Sự ra đời  
– Khoảng đầu những năm 90  
• Biễu diễn: sơ đồ lớp  
• Các khái niệm cơ bản  
– Đối tượng: một đối tượng trong thế giới thực, được xác  
định bởi một định danh duy nhất  
– Thuộc tính: biểu diễn một đặc tính của đối tượng,  
– Phương thức : thao tác được thực hiện trên đối tượng.  
• Tất cả các truy nhập vào thuộc tính của đối tượng đều phải được  
thực hiện thông qua các phương thức này.  
– Lớp: một cách thức để khai báo một tập các đối tượng có  
chung một tập thuộc tính và phương thức  
string ten();  
string ngay_sinh();  
string dia_chi();  
string lop();  
void gan_DC(string DC_moi);  
void gan_lop(string lop);  
}
47  
48  
12  
02/09/2019  
Mô hình dữ liệu hướng đối tượng  
Nhận xét:  
So sánh và đánh giá  
Nhắc lại: Mô hình dữ liệu là 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  
• Ưu điểm  
Mô hình  
mạng  
Mô hình  
phân cấp quan hệ TT-LK  
Mô hình Mô hình Mô hình  
– Cho phép định nghĩa kiểu đối tượng phức tạp  
– Tính chất: bao đóng (encapsulation), kế thừa  
(heritage), đa hình (polymorphism)  
HĐT  
tương đối  
đa dạng  
hạn chế  
hạn chế  
đa dạng đa dạng  
biểu diễn  
ngữ nghĩa  
DL  
• Nhược điểm  
dễ dàng và  
hiệu quả  
cấu trúc  
phức tạp  
s/d nhiều  
con trỏ  
dữ liệu  
lặp lại  
khó lưu  
trữ  
lưu trữ DL  
– Cấu trúc lưu trữ phức tạp và có thể sử dụng  
nhiều con trỏ  
– Khả năng tối ưu hoá các xử lý bị hạn chế trong  
nhiều trường hợp  
đơn giản  
đơn giản  
đa dạng  
đa dạng  
khả năng  
truy vấn  
không được  
xem xét  
(không hiệu s/d nhiều  
quả) con trỏ  
không  
h/q khi  
ít khả  
năng tối  
ưu  
ít khả  
năng tối  
ưu  
tối ưu  
hoá tốt  
hiệu quả  
của truy  
vấn  
49  
50  
Các bước xây dựng một hệ CSDL  
Phân loại các mô hình  
Phân cấp  
1: PHÂN TÍCH  
Thế hệ 1  
Các mô hình  
dựa trên  
bản ghi  
Mạng  
Quan hệ  
Mô tả ứng dụng  
Mô hình hoá DL (vd: Sơ đồ thực thể-liên kết)  
Thế hệ 2  
Thế hệ 3  
2: THIẾT KẾ  
Thực thể-liên kết  
ngữ nghĩa  
Các mô hình  
dựa trên  
đối tượng  
3: CÀI ĐẶT  
Đối tượng - Quan hệ  
Hướng đối tượng  
Cài đặt với 1 hệ quản trị CSDL  
(vd: ORACLE)  
Mô tả DL logic với 1 mô hình DL cụ thể  
(vd: Sơ đồ quan hệ)  
51  
52  
13  
02/09/2019  
Bài tập  
Lời giải  
• Cho sơ đồ thực thể liên kết bên dưới, hãy biến đổi  
sang mô hình quan hệ:  
• Biến đổi các tập thực thể và các quan hệ  
thành các bảng:  
LecturerID  
StudentName  
StudentBirth  
StudentID  
LecturerName  
Lecturers(LecturerID, LecturerName,  
LecturerPhone)  
Students  
Lecturers  
LecturerPhone  
Students(StudentID, StudentName, StudentBirth,  
StudentAddress)  
Classes(ClassID, ClassName, ClassMonitor)  
Subjects(SubjectID, SubjectName)  
Belongto(StudentID, ClassID)  
StudentAddress  
Belong to  
Classes  
ClassID  
Learn  
Time  
ClassName  
Subjects  
ClassMonitor  
Learn(LecturerID,ClassID, SubjectID, Time)  
SubjectID  
SubjectName  
53  
54  
Lời giải (tiếp)  
Lời hay ý đẹp  
• Cải tiến thiết kế: Bảng Students và  
bảng Belongto có cùng khóa  
(StudentID), ta nên kết hợp chúng  
lại:  
Students’(StudentID, StudentName,  
StudentBirth, StudentAddress, ClassID)  
Trong 10 lần thành công thì có tới 9 lần  
thành công nhờ sự hăng hái và niềm tin  
trong công việc  
Teewilson  
55  
56  
14  
pdf 14 trang Thùy Anh 26/04/2022 6260
Bạn đang xem tài liệu "Bài giảng Cơ sở dữ liệu - Chương 2: Các mô hình dữ liệu - Nguyễn Hồng Phương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfbai_giang_co_so_du_lieu_chuong_2_cac_mo_hinh_du_lieu_nguyen.pdf