Bài giảng Nhập môn cơ sở dữ liệu - Bài 2: Các mô hình dữ liệu - Vũ Tuyết Trinh
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
Mô hình dữ liệu
“A data model is a plan for building a database”*
{ Mô hình dữ liệu gồm [Codd, 1980]
z Một tập hợp các cấu trúc của dữ liệu
z Một tập các phép toán để thao tác với các dữ liệu
z Một tập các ràng buộc về 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ực thể-liên kết, mô hình
hướng đối tượng
*http://www.computerworld.com/databasetopics/data/story/0,10801,80205,00.html
2
Vài nét về lịch sử
DB2,
Mô hình
ORACLE-10i,
quan hệ
SQL Server
Mô hình
Mô hình
...
...
quan hệ mở rộng
phân cấp
System R(81), DB2,
XML
ORACLE, SQL
IMS,
Server, Sybase, ...
dbXML,natix,
System 2k,
Tamino,...
...
...
1965
1970
1975 1980 1985 1990 1995 2000 2005 2010
O2, ORION,
Mô hình
Thực thể-liên kết
IRIS, ...
IRDS(87),
Mô hình
CDD+, ...
mạng
hướng đối
tượng
DMS(65),
Mô hình bán
Lore (97),
CODASYL (71),
...
cấu trúc
3
IDMS, IDS
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ự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
4
Đặt vấn đề
{ Đặ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
5
Mô hình dữ liệu phân cấp
(Hierarchical data model)
{ Sự ra đời
z Khoảng năm 60-65
{ Biểu diễ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ập các cây
{ Các khái niệm cơ 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, ...
6
Ví dụ
giao_vien
mon_hoc
lop
sinh_vien
mon_hoc
diem_thi
7
Nhận xét
{ Ưu điểm
{ Dễ xây dựng và thao tác
{ Tương thích với các lĩnh vực tổ chức phân cấp (vd:
tổ chức nhân sự trong các đơn vị, ...)
{ 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ư thừa dữ liệu và
dữ liệu không nhất quán
¾ 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)
8
Mô hình dữ liệu mạ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ểu diễn: bằng đồ thị có hướng
{ Các khái niệm cơ bản
z Tập bản ghi (record)
{ Kiểu bản ghi (record type)
{ Các trường (field)
z Móc nối (link)
{ 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
z Các phép toán
{ Duyệt: FIND, FIND member, FIND owner, FIND NEXT
9
{ Thủ tục: GET
Ví dụ
giao_vien
giang_day
hoc
lop
mon_hoc
co_diem
gom
co
sinh_vien
diem_thi
10
Nhận xét
{ Ưu điểm
{ Đơn giản
{ 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
{ 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
11
Mô hình dữ liệu quan hệ
(Relational data model)
{ Sự ra đời
z vào năm 1970[Codd, 1970]
{ Biểu diễn: dưới dạng bảng
{ Các khái niệm cơ 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ền giá trị
z Quan hệ: được định nghĩa trên một tập các thuộc tính
z Bộ giá trị: các thông tin của một đối tượng thuộc quan
hệ
z Khoá:
z Các phép toán: hợp, giao, tích đề-các, lựa chọn,
chiếu, kết nối, ...
12
MON_HOC
maMH
CNTT01
CNTT02
CNTT03
HTTT01
tenmon
soHT
Nhập môn CSDL
4
4
4
3
Ví dụ
Truyền DL và mạng
Phân tích và thiết kế hệ thống
Quản lý dự án
LOP
malop
IT4
lop
khoa
CNTT
CNTT
CNTT
CNTT
GVCN
loptruong
Tin 4
Tin 5
Tin 6
Tin 7
Ng. V. Anh
Lê A. Văn
Ng. T. Thảo
Ng. V. Quý
Trần T. Bình
IT5
Ng. Đ. Trung
Trần M. Quế
Ng. T. Phương
IT6
IT7
SINH_VIEN
maSV
tenSV
Trần T. Bình
ngaysinh
1/4/1981
3/2/1980
26/3/1982
29/2/1980
nam diachi
lop
IT4
IT5
IT6
IT7
SV0011
SV0025
SV0067
SV0034
0
1
0
0
21 T. Q. B
56 Đ. C. V
45 H. B. T
86 L. T. N
Ng. Đ. Trung
Trần M. Quế
Ng. T. Phương
13
Nhận xét
{ Ưu điểm
z Dựa trên lý thuyết tập hợ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ểu diễn ngữ nghĩa
z Cấu trúc dữ liệu không linh hoạt
14
Mô hình dữ liệu thực thể - 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ĩa dữ liệu và
phát triển phần mềm
z đề xuất 1975 [Chen, 1976] [Chen, 2002]
{ Biểu diễn: bằng sơ đồ thực thể - liên kết
{ Các khái niệm cơ bản
z Thực thể: một đối tượng trong thế giới thực
z Thuộc tính: một đặc tính của một tập thực thể
o Khoá:xác định sự duy nhất của 1 thực thể
o Liên kết: mối liên hệ có nghĩa giữa nhiều thực thể
o Mỗi liên kết có thể có các thuộc tính
o 1-1, 1-n, n-m, đệ quy
15
Ví dụ
maMH
tenmon
soHT
diem_thi
chuong_trinh
mon_hoc
maSV
tenSV
gom
sinh_viên
lop
ngaysinh
nam
loptruong
diachi
GVCN
malop
lop
khoa
16
Nhận xét
{ Ưu điểm
z dễ dàng biểu diễn cái mà con người nhận thức từ thế
giới thực
z 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ể
{ Nhược điểm
z Không dễ dàng ánh xạ vào những cấu trúc lưu trữ
trên máy tính
17
Mô hình dữ liệu hướng đối tượng
(Object-oriented data model)
{ Sự ra đời
z Khoảng đầu những năm 90
{ Biễu diễn: sơ đồ lớp
{ Các khái niệm cơ bản
z Đố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
z Thuộc tính: biểu diễn một đặc tính của đối tượng,
z 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.
z 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
18
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);
}
19
Nhận xét
{ Ưu điểm
z Cho phép định nghĩa kiểu đối tượng phức tạp
z Tính chất: bao đóng (encapsulation), kế thừa
(heritage), đa hình (polymorphism)
{ Nhược điểm
z Cấu trúc lưu trữ phức tạp và có thể sử dụng nhiều
con trỏ
z Khả năng tối ưu hoá các xử lý bị hạn chế trong nhiều
trường hợp
20
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
Mô hình
Mô hình
Mô hình
Mô hình TT- Mô hình
LK
mạng
phân cấp
quan hệ
HĐT
biểu diễn ngữ
nghĩa DL
lưu trữ DL
khả năng truy
vấn
hiệu quả của
truy vấn
21
Phân loại các mô hình
Phân cấp
Mạng
Thế hệ 1
Các mô hình
dựa trên
bản ghi
Quan hệ
Thế hệ 2
Thế hệ 3
Thực thể-liên kết
ngữ nghĩa
Các mô hình
dựa trên
đối tượng
Đối tượng - Quan hệ
Hướng đối tượng
22
Biến đổi giữa các mô hình dữ liệu
{ Yêu cầu
z Chuyển một sơ đồ dữ liệu từ một mô hình dữ liệu
sang một mô hình khác
z Đảm bảo tính « tương đương » của sơ đồ dữ liệu
nguồn và đích
{ Các biến đổi tương đương giữa các mô hình
z Thực thể/liên kết - mạng
z Thực thể/liên kết - hướng đối tượng
z Quan hệ - hướng đối tượng
23
Các bước xây dựng một CSDL
1: PHÂN TÍCH
Mô tả ứng dụng
Mô hình hoá DL (vd: Sơ đồ thực thể-liên kết)
2: THIẾT KẾ
3: CÀI ĐẶT
Cài đặt với 1 hệ quản trị CSDL
Mô tả DL logic với 1 mô hình DL cụ thể
24
(vd: ORACLE)
(vd: Sơ đồ quan hệ)
Mô hình hoá dữ liệu với mô
hình thực thể - liên kết
Đặc điểm
{ Thích hợp để mô hình hoá dữ liệu cho CSDL
z Gần gũi với nhận thức của con người → dễ sử dụng
z dễ chuyển đổi sang mô hình quan hệ
z Dựa trên các khái niệm chính
{ Thực thể: một đối tượng trong thế giới thực
{ Tập thực thể: các thực thể có cùng các tính chất
{ Thuộc tính: một đặc tính của một tập thực thể
o Khoá:xác định sự duy nhất của 1 thực thể
o Liên kết: mối liên hệ có nghĩa giữa nhiều thực thể
{ Tập liên kết: tập hơpự các liên kết cùng kiểu
{ Được biểu diễn bởi sơ đồ thực thể - liên kết
26
Thực thể và thuộc tính
{
{
{
Thực thể: một đối tượng
sinh_viên
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
•sv1
•sv2
•sv3
Thuộc tính: một đặc tính của
một tập thực thể
z
Miền giá trị ~ tập các giá trị
maSV
có thể
diachi
z
Khoá ~ xác định sự duy nhất
của 1 thực thể
tenSV
ngaysinh
nam
27
Kiểu thuộc tính
tenSV = ‘‘Trần T. Bình’’
tenSV = ‘‘Ng. Đ. Trung’’
{ Thuộc tính đơn giản
(thuộc tính nguyên tố)
z có kiểu dữ liệu nguyên
tố
sinh_viên
{ Thuộc tính phức
z có kiểu phức, định nghĩa
bởi các thuộc tính khác
nam
tenSV
maSV
ngaysinh
diachi
quan
thanh_pho
so_pho
28
Kiểu thuộc tính (2)
maMH
tenmon
soHT
{ Thuộc tính đa giá trị
z tương ứng với mỗi thực
thể, có thể nhận nhiều
giá trị
mon_hoc
giao_vien
{ Thuộc tính suy diễn
sinh_viên
z có thể tính toán được từ
(các) thuộc tính khác
nam
tenSV
ngaysinh
tuoi
maSV
diachi
29
Liên kết
{ Đ/n: là sự kết hợp giữa một số thực thể
{ Thuộc tính
maSV
tenSV
maMH
tenmon
soHT
diem_thi
sinh_viên
mon_hoc
ngaysinh
nam
diachi
ket_qua
30
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
1
1
1
chu_nhiem
gom
lop_hoc
giao_vien
m
lop_hoc
sinh_vien
mon_hoc
n
m
sinh_viên
mon_hoc
dang_ky
đệ quy: Liên kết giữa các
thực thể cùng kiểu
dieu_kien
31
Lậ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ể
z Bậc của liên kết
z Ràng buộc (1-1, 1-n, n-m, đệ quy)
32
Bài tập
{
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
z
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
z
z
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ữ
z
Thông tin về con cái của từng nhân viên: tên, giới tính, ngày sinh
33
34
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
z Thuật ngữ toán học: quan hệ, bộ và thuộc tính
z 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ệ
36
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ền giá trị (Dom(A))
z text, number, boolean, date/time, memo
z maSV: text(10)
tenSV: text(30)
ngaysinh: date
nam: boolean
...
37
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:
SINH_VIEN (maSV,tenSV,ngaysinh,
nam, diachi,lop)
R(A1,A2, … An)
LOP(malop,ten,khoa)
{
R(A1,A2, … An) ⊆
Dom(A1) x … x Dom(An)
{ Tân từ: quy tắc để
xác định mối quan hệ
giữa các thuộc tính
Ai
∀lop ∈ SINH_VIEN[lop],
∃malop ∈ LOP[malop]:
lop = malop
38
Bộ - 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)
SV0011
SV0025
SV0067
SV0034
Trần T. Bình
1/4/1981
3/2/1980
26/3/1982
29/2/1980
0
1
0
0
21 T. Q. B
56 Đ. C. V
45 H. B. T
86 L. T. N
IT4
IT5
IT6
IT7
Ng. Đ. Trung
Trần M. Quế
Ng. T. Phương
39
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 = {Ri}
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ập hợp các bộ giá trị
của quan hệ R vào một thời điểm
40
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nhập môn cơ sở dữ liệu - Bài 2: Các mô hình dữ liệu - Vũ Tuyết Trinh", để 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:
- bai_giang_nhap_mon_co_so_du_lieu_bai_2_cac_mo_hinh_du_lieu_v.pdf