Tải bản đầy đủ (.pdf) (27 trang)

Slide: Bài giảng: Các mô hình dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (392.54 KB, 27 trang )

1
Các mô hình dữ liệu
Vũ Tuyết Trinh

Bộ môn Các hệ thống thông tin, Khoa Công nghệ thông tin
Đại học Bách Khoa Hà Nội
2
Mô hình dữ liệu
{ Mô hình dữ liệugồm [Codd, 1980]
z Mộttậphợpcáccấutrúccủadữ liệu
z Mộttập các phép toán để thao tác vớicácdữ liệu
z Mộttập các ràng buộcvề dữ liệu
Ví dụ: mô hình mạng, mô hình phân cấp, mô hình
quan hệ, mô hình thựcthể-liên kết, mô hình
hướng đốitượng
“A data model is a plan for building a database”
*
*
/>2
3
Vài nét về lịch sử
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ấutrúc
DMS(65),
CODASYL (71),
IDMS, IDS
DMS(65),
CODASYL (71),
IDMS, IDS
IMS,
System 2k,

IMS,
System 2k,

System R(81), DB2,
ORACLE, SQL
Server, Sybase,
System R(81), DB2,
ORACLE, SQL
Server, Sybase,
O2, ORION,
IRIS,
O2, ORION,
IRIS,
DB2,
ORACLE-10i,
SQL Server


DB2,
ORACLE-10i,
SQL Server

Lore (97),

Lore (97),

XML
dbXML,natix,
Tamino,
dbXML,natix,
Tamino,
Mô hình
Thựcthể-liên kết
IRDS(87),
CDD+,
IRDS(87),
CDD+,
4
Một vài mô hình dữ liệu
{ Mô hình phân cấp
{ Mô hình mạng
{ Mô hình quan hệ
{ Mô hình thựcthể - liên kết
{ Mô hình hướng đốitượng
{ Mô hình bán cấu trúc
{ Mô hình dữ liệucủaXML
3
5

Đặtvấn đề
{ Đặc điểmcủa các mô hình dữ liệu?
{ Sự khác nhau giữa các mô hình dữ liệu?
{ Cácmôhìnhdữ liệuphổ biến ngày nay
6
Mô hình dữ liệu phân cấp
(Hierarchical data model)
{ Sự ra đời
z Khoảng năm 60-65
{ Biểudiễn: bằng cây
z Quan hệ cha/con
z Mỗi nút có một cha duy nhất
z 1 CSDL = tậpcáccây
{ Các khái niệmcơ bản
z Bản ghi
z Móc nối
{ Các phép toán: GET, GET UNIQUE, GET NEXT, GET
NEXT WITHIN PARENT,
4
7
Ví dụ
lop
sinh_vien
giao_vien
diem_thi
mon_hoc mon_hoc
8
Nhậnxét
{ Ưu điểm
{ Dễ xây dựng và thao tác

{ Tương thích vớicáclĩnh vựctổ chức phân cấp(vd:
tổ chức nhân sự trong các đơnvị, )
{ Ngôn ngữ thao tác đơngiản (duyệtcây)
{ Nhược điểm
{ Sự lặplạicủacáckiểubản ghi → dư thừadữ liệuvà
dữ liệu không nhất quán
¾ Giải pháp: bảnghiảo
{ Hạnchế trong biểudiễnngữ nghĩacủacácmócnối
giữacácbản ghi (chỉ cho phép quan hệ 1-n)
5
9
Mô hình dữ liệumạng
(Network data model)
{ Sự ra đời
z sử dụng phổ biến từ những năm 60, được định nghĩa
lại vào năm 1971
{ Biểudiễn: bằng đồ thị có hướng
{ Các khái niệmcơ bản
z Tậpbản ghi (record)
{ Kiểubản ghi (record type)
{ Các trường (field)
z Móc nối (link)
{ Tên củamócnối
{ chủ (owner) –thànhviên(member): theo hướng của
móc nối
{ Kiểumócnối: 1-1, 1-n, đệ quy
z Các phép toán
{ Duyệt: FIND, FIND member, FIND owner, FIND NEXT
{ Thủ tục: GET
10

Ví dụ
lop
sinh_vien
gom
giao_vien
diem_thi
co
mon_hoc
giang_day
co_diem
hoc
6
11
Nhậnxét
{ Ưu điểm
{ Đơngiản
{ Có thể biểudiễn các ngữ nghĩa đadạng vớikiểubản
ghi và kiểumócnối
{ Truy vấn thông qua phép duyệt đồ thị (navigation)
{ Nhược điểm
{ Số lượng các con trỏ lớn
{ Hạnchế trong biểudiễnngữ nghĩacủacácmócnối
giữacácbản ghi
12
Mô hình dữ liệu quan hệ
(Relational data model)
{ Sự ra đời
z vào năm1970[Codd, 1970]
{ Biểudiễn: dướidạng bảng
{ Các khái niệmcơ bản

z Thuộc tính: một tính chất riêng biệt của một đối tượng
{ Tên
{ Kiểu, miềngiátrị
z Quan hệ: được định nghĩa trên mộttậpcácthuộctính
z Bộ giá trị: các thông tin củamột đốitượng thuộc quan
hệ
z Khoá:
z Các phép toán: hợp, giao, tích đề-các, lựachọn,
chiếu, kết nối,
7
13
Ví dụ
86 L. T. N
45 H. B. T
56 Đ. C. V
21 T. Q. B
diachi
IT7
IT6
IT5
IT4
lop
029/2/1980Ng. T. PhươngSV0034
026/3/1982TrầnM. QuếSV0067
13/2/1980Ng. Đ. TrungSV0025
01/4/1981TrầnT. BìnhSV0011
namngaysinhtenSVmaSV
Ng. T. Phương
TrầnM. Quế
Ng. Đ. Trung

TrầnT. Bình
loptruong
Ng. V. QuýCNTTTin 7IT7
Ng. T. ThảoCNTTTin 6IT6
Lê A. VănCNTTTin 5IT5
Ng. V. AnhCNTTTin 4IT4
GVCNkhoalopmalop
3Quảnlýdự ánHTTT01
4Phân tích và thiếtkế hệ thốngCNTT03
4TruyềnDL vàmạngCNTT02
4Nhậpmôn CSDLCNTT01
soHTtenmonmaMH
MON_HOC
LOP
SINH_VIEN
14
Nhậnxét
{ Ưu điểm
z Dựatrênlýthuyếttậphợp
z Khả năng tối ưu hoá các xử lý phong phú
{ Nhược điểm
z Hạn chế trong biểudiễnngữ nghĩa
z Cấutrúcdữ liệu không linh hoạt
8
15
Mô hình dữ liệuthựcthể - liên kết
(Entity-Relational data model)
{ Sự ra đời
z Xuất phát từ nhu cầu mô hình hoá ngữ nghĩadữ liệuvà
phát triểnphầnmềm

z đề xuất 1975 [Chen, 1976] [Chen, 2002]
{ Biểudiễn: bằng sơ đồ thựcthể - liên kết
{ Các khái niệmcơ bản
z Thựcthể: một đốitượng trong thế giớithực
z Thuộc tính: một đặc tính củamộttậpthựcthể
o Khoá:xác định sự duy nhấtcủa 1 thựcthể
o Liên kết: mối liên hệ có nghĩagiữa nhiềuthựcthể
o Mỗi liên kếtcóthể có các thuộc tính
o 1-1, 1-n, n-m, đệ quy
16
Ví dụ
sinh_viên lop
mon_hoc
gom
diem_thi chuong_trinh
maSV
tenSV
ngaysinh
nam
diachi
malop lop khoa
GVCN
loptruong
maMH tenmon soHT
9
17
Nhậnxét
{ Ưu điểm
z dễ dàng biểudiễn cái mà con ngườinhậnthứctừ thế
giớithực

z Biểudiễnngữ nghĩa phong phú củacácthựcthể và
quan hệ giữacácthựcthể
{ Nhược điểm
z Không dễ dàng ánh xạ vào những cấutrúclưu trữ
trên máy tính
18
Mô hình dữ liệuhướng đốitượng
(Object-oriented data model)
{ Sự ra đời
z Khoảng đầu những năm 90
{ Biễudiễn: sơ đồ lớp
{ Các khái niệmcơ bản
z Đốitượng: một đốitượng trong thế giớithực, đượcxác
định bởimột định danh duy nhất
z Thuộc tính: biểudiễnmột đặc tính của đốitượng,
z Phương thức : thao tác đượcthựchiệntrênđốitượng.
{ Tấtcả các truy nhậpvàothuộc tính của đốitượng đềuphải
đượcthựchiện thông qua các phương thứcn
ày.
z Lớp: mộtcáchthức để khai báo mộttậpcácđốitượng có
chung mộttậpthuộc tính và phương thức
10
19
Ví dụ
class sinh_vien {
string maSV;
string tenSV;
date ngaysinh;
boolean nam;
string diachi;

string lop;
string ten();
string ngay_sinh();
string dia_chi();
string lop();
void gan_DC(string DC_moi);
void gan_lop(string lop);
}
20
Nhậnxét
{ Ưu điểm
z Cho phép định nghĩakiểu đốitượng phứctạp
z Tính chất: bao đóng (encapsulation), kế thừa
(heritage), đa hình (polymorphism)
{ Nhược điểm
z Cấutrúclưu trữ phứctạpvàcóthể sử dụng nhiều
con trỏ
z Khả năng tối ưu hoá các xử lý bị hạnchế trong nhiều
trường hợp
11
21
So sánh và đánh giá
Mô hình
HĐT
Mô hình TT-
LK
Mô hình
quan hệ
Mô hình
phân cấp

Mô hình
mạng
hiệuquả của
truy vấn
khả năng truy
vấn
lưu trữ DL
biểudiễnngữ
nghĩaDL
Nhắclại: Mô hình dữ liệulàmộttậphợp các khái niệm dùng
để mô tả cấutrúccủamộtCSDL
22
Phân loại các mô hình
Phân cấp
Mạng
Quan hệ
Thực thể-liên kết
ngữ nghĩa
Đối tượng - Quan hệ Hướng đối tượng
Thế hệ 1
Thế hệ 2
Thế hệ 3
Các mô hình
dựa trên
bản ghi
Các mô hình
dựa trên
đốitượng
12
23

Biến đổigiữa các mô hình dữ liệu
{ Yêu cầu
z Chuyểnmột sơ đồ dữ liệutừ mộtmôhìnhdữ liệu
sang mộtmôhìnhkhác
z Đảm bảo tính « tương đương » của sơ đồ dữ liệu
nguồnvàđích
{ Các biến đổitương đương giữa các mô hình
z Thựcthể/liên kết - mạng
z Thựcthể/liên kết - hướng đốitượng
z Quan hệ -hướng đốitượng
24
Các bướcxâydựng mộtCSDL
Mô hình hoá DL (vd: Sơđồthựcthể-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ẾTKẾ
Cài đặt với1 hệ quảntrị CSDL
(vd: ORACLE)
3: CÀI ĐẶT
13
Mô hình hoá dữ liệuvớimô
hình thực thể - liên kết
26
Đặc điểm
{ Thích hợp để mô hình hoá dữ liệu cho CSDL
z Gầngũivớinhậnthứccủa con người → dễ sử dụng
z dễ chuyển đổi sang mô hình quan hệ
z Dựatrêncáckháiniệm chính

{ Thựcthể: một đốitượng trong thế giớithực
{ Tậpthựcthể: các thựcthể có cùng các tính chất
{ Thuộc tính: một đặctínhcủamộttậpthựcthể
o Khoá:xác định sự duy nhấtcủa1 thựcthể
o Liên kết: mối liên hệ có nghĩagiữanhiềuthựcthể
{ Tậpliênkết: tậphơpự các liên kếtcùngkiểu
{ Đượcbiểudiễnbởi sơđồthựcthể - liên kết
14
27
Thựcthể và thuộc tính
{ Thựcthể: một đốitượng
trong thế giớithực
{ Tậpthựcthể: gồmcácthực
thể có tính chấtgiống nhau
{ Thuộc tính: một đặctínhcủa
mộttậpthựcthể
z Miềngiátrị ~ tập các giá trị
có thể
z Khoá ~ xác định sự duy nhất
của1 thựcthể
•sv1
•sv2
•sv3
sinh_viên
maSV
tenSV
ngaysinh
nam
diachi
28

Kiểuthuộc tính
{ Thuộc tính đơn giản
(thuộc tính nguyên tố)
z có kiểudữ liệunguyên
tố
{ Thuộc tính phức
z có kiểuphức, định nghĩa
bởicácthuộctínhkhác
tenSV = ‘‘TrầnT. Bình’’
tenSV = ‘‘Ng. Đ. Trung’’
sinh_viên
maSV
tenSV
ngaysinh
nam
diachi
so_pho
quan thanh_pho
15
29
Kiểuthuộc tính (2)
{ Thuộc tính đa giá trị
z tương ứng vớimỗi thực
thể, có thể nhậnnhiều
giá trị
{ Thuộc tính suy diễn
z có thể tính toán đượctừ
(các) thuộctínhkhác
mon_hoc
maMH

tenmon
soHT
giao_vien
sinh_viên
maSV
tenSV
ngaysinh
nam
diachi
tuoi
30
Liên kết
{ Đ/n: là sự kết hợpgiữamộtsố thựcthể
{ Thuộc tính
sinh_viên mon_hoc
diem_thi
maMH
tenmon
soHT
maSV
tenSV
ngaysinh
nam
diachi
ket_qua
16
31
Ràng buộccủakếtnối
{ 1-1: Liên kết 1 thựcthể của
mộttậpthựcthể vớinhiều

nhất1 thựcthể củatậpthực
thể khác
{ 1-n: Liên kết 1 thựcthể của
mộttậpthựcthể vớinhiều
thựcthể củatậpthựcthể
khác
{ n-m: Liên kết 1 thựcthể của
mộttậpthựcthể vớinhiều
thựcthể củatậpthựcthể
khác và ngượclại
{ đệ quy: Liên kết giữacác
thựcthể cùng kiểu
sinh_viên mon_hoc
dang_ky
n
m
lop_hoc sinh_vien
gom
1
m
mon_hoc
dieu_kien
lop_hoc
giao_vien
chu_nhiem
1
1
32
Lậpsơđồthựcthể - liên kết
{ B1: Xác định các thựcthể

{ B2: Xác định các liên kếtgiữacácthựcthể
z Bậccủaliên kết
z Ràng buộc (1-1, 1-n, n-m, đệ quy)
17
33
Bài tập
{ Bài toán: phân tích và thiếtkế 1 CSDL gồm các thông tin trong
1 công ty (nhân viên, phòng ban, dự án
z Công ty đượctổ chứcbởi các phòng ban. Mỗi phòng ban có 1 tên
duy nhất, 1 số duy nhấtvà1 ngườiquản lý (thời điểmbắt đầu
công tác quản lý củangườinàycũng được lưu lại trong CSDL).
Mỗi phòng ban có thể có nhiềutrụ sở làm việc khác nhau
z Mỗi phòng điềuphốimộtsố dự án. Mỗi dự án có 1 tên và 1 mã số
duy nhất, thựchiệntạimột địa điểmduynhất
z 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, địachỉ, lương, giới tính, ngày sinh. Mỗi nhân viên làm việc
tạimột phòng ban nhưng có thể tham gia nhiềudự án khác nhau.
Những dự án này có thểđược điềuphốibở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ườiquản lý trựctiếpcủa các nhân viên cũng được
lưu trữ
z Thông tin về con cái củatừng nhân viên: tên, giới tính, ngày sinh
34
18
Mô hình dữ liệu quan hệ
36
Đặc điểm
{ Dựa trên lý thuyếttậphợp
{ dễ dàng ánh xạ đến cấu trúc lưu trữ vậtlý
{ Các khái niệm cơ bản

z Thuậtngữ toán học: quan hệ, bộ và thuộc tính
z Thuậtngữ hướng dữ liệu: bảng, bảnghivàtrường
{ Đượcbiểudiễnbởilược đồ quan hệ
19
37
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
z Ký hiệu: A
{ Tên thuộc tính:
z maSV, tenSV,ngaysinh,nam,diachi,lop
{ Kiểu dữ liệu, miềngiátrị (Dom(A))
z text, number, boolean, date/time, memo
z maSV: text(10)
tenSV: text(30)
ngaysinh: date
nam: boolean

38
Quan hệ -bảng
{ Đ/n: được xác định
trên một tập các
thuộc tính A
i
{ Ký hiệu:
R(A
1
,A
2

, … A
n
)
{ R(A
1
,A
2
, … A
n
) ⊆
Dom(A
1
) x … x Dom(A
n
)
{ Tân từ: quy tắc để
xác định mối quan hệ
giữacácthuộc tính
A
i
SINH_VIEN (maSV,tenSV,ngaysinh,
nam, diachi,lop)
LOP(malop,ten,khoa)
∀lop ∈ SINH_VIEN[lop],
∃malop ∈ LOP[malop]:
lop = malop
20
39
Bộ -bản ghi
{ Đ/n: các thông tin củamột đốitượng thuộc

quan hệ
{ Ký hiệu
t(a
1
,a
2
, … a
n
)
{ t(a
1
,a
2
, … a
n
) ∈ Dom(A
1
) x … x Dom(A
n
)
86 L. T. N
45 H. B. T
56 Đ. C. V
21 T. Q. B
IT7
IT6
IT5
IT4
029/2/1980Ng. T. PhươngSV0034
026/3/1982TrầnM. QuếSV0067

13/2/1980Ng. Đ. TrungSV0025
01/4/1981TrầnT. BìnhSV0011
40
Lược đồ quan hệ
{ Lược đồ quan hệ (S): là sự trừu tượng hoá của
quan hệ ở mức độ cấu trúc của một bảng 2
chiều
z S = {R
i
}
z 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ậphợpcácbộ giá trị
của quan hệ R vào mộtthời điểm
21
41
Khoá
{ Đ/n
z Cho R(A
1
,A
2
, … A
n
), K ⊆ {A
i
},
z K là khoá nếu với ∀t

1
, t
2
∈R, ∃A
i
∈K: t
1
.K≠t
2
.K
SINH_VIEN (maSV,tenSV,ngaysinh,nam, diachi,lop)
{ T/c:
z K ⊆ K’ ⊆ {A
i
} là khoá ⇒ K’ cũng là khoá
SINH_VIEN (maSV,tenSV,ngaysinh, nam, diachi,lop)
SINH_VIEN (maSV,tenSV,ngaysinh
, nam, diachi,lop)
42
Phân loại khoá
{ Khoá tốithiểu
z Cho R(A
1
,A
2
, … A
n
),
K ⊆ {A
i

},
z K là khoá tốithiểunếu
K là khoá và !∃K’ ⊆ K
mà K’ là khoá
{ Khoá ngoài
z Cho R(A
1
,A
2
, … A
n
),
R’(A’
1
,A’
2
, … A’
m
), K
⊆ {A
i
},
z K là khoá ngoài củaR
tham chiếu đếnquanhệ
R’ nếu K là khoá chính
củaR’
SINH_VIEN (maSV
,tenSV,ngaysinh,

nam, diachi,malop)

LOP(malop
,lop, khoa, GVCN,
loptruong)
22
43
Biến đổi: Sơ đồ thựcthể - liên kết
→ Sơ đồ quan hệ
{ Biến đổitậpcácthựcthể
{ Biến đổi các liên kết
{ Các khoá củacácsơđồquan hệ
{ Các sơđồquan hệ với khoá chung
44
Biến đổicáctậpthựcthể
B1: 1 tậpthựcthể
¾ 1 quan hệ,
z thuộc tính → thuộc tính (trường),
z 1 thựcthể → 1 bộ
z khoá củatậpthựcthể → khoá củaquanhệ,
•sv1
•sv2
•sv3
86 L. T. N
45 H. B. T
56 Đ. C. V
21 T. Q. B
diachi
IT7
IT6
IT5
IT4

malop
029/2/1980Ng. T. PhươngSV0034
026/3/1982TrầnM. QuếSV0067
13/2/1980Ng. Đ. TrungSV0025
01/4/1981TrầnT. BìnhSV0011
namngaysinhtenSVmaSV
SINH_VIEN
•sv1
•sv2
•sv3
•sv4
maSV tenSV ngaysinh nam diachi malop
sinh_viên
23
45
Biến đổicáctậpthựcthể (2)
B2: 1 tậpthựcthể xác định từ tậpthựcthể khác
(E) qua 1 liên kết
¾ 1quan hệ chứa khoá cuả E
LOPTRUONG(maSV)
sinh_viên lop_truong
la_mot
46
Biến đổi các liên kết
B3: Liên kết 1-1
¾ Dùng khoá ngoài
LOP_HOC(malop
,lop,khoa,maGV)
lop_hoc giao_vien
chu_nhiem

1
1
malop
lop
khoa
maSV
ngaysinh
trinhdo
khoa
24
47
Biến đổi các liên kết (2)
B4: Liên kết 1-n
¾ Dùng khoá ngoài: thêm khoá chính củaquanhệ
bên 1 vào quan hệ bên n làm khoá ngoài
SINH_VIEN(maSV,tenSV,ngaysinh,nam, diachi, malop)
lop_hoc sinh_vien
gom
1
n
malop
lop
khoa
maSV
tenSV
ngaysinh
nam
diachi
48
Biến đổi các liên kết (3)

B5: Liên kết n-n
¾ Thêm 1 quan hệ mớixácđịnh bởicácthuộc
tính nằm trong khóa củacácthựcthể có liên
quan và các thuộc tính của liên kết
DANG_KY(maSV,maMH, diem)
sinh_viên mon_hoc
dang_ky
n
m
maSV
tenSV
ngaysinh
nam
diachi
maMH
ten
soHT
diem
25
49
Thuộc tính đa trị
B6: Vớimỗi thuộc tính đa trị
¾ Thêm 1 quan hệ mớixácđịnh bởithuộctínhđa
trị và khoá củatậpthựcthể tương ứng
MH_GV(maMH,giao_vien
)
mon_hoc
maMH
tenmon
soHT

giao_vien
50
Bài tập
{ Biến đổi sơ đồ thựcthể/liên kết → sơ đồ quan
hệ

×