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 đủ
pdf 27 trang baolam 22240 Free
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:

  • pdfbai_giang_nhap_mon_co_so_du_lieu_bai_2_cac_mo_hinh_du_lieu_v.pdf