Tại sao lại Nghiên cứu CSDBài 1 TH107 5 } Vì d # li & u vô cùng quý giá: } th $ ng có giá tr 5 hơn phần mềm vd., các mẫu tin tài khoản ngân hàng, các mẫu tin về thuế, … } nó phải được b
Trang 1Giới thiệu về các Hệ Cơ sở Dữ liệu
TH107 – Cơ sở Dữ liệu
Bài 1
Dữ liệu (Data)
Bài 1 TH107 2
} Dữ liệu (data) là một mô tả hình thức phù hợp về những
sự kiện, khái niệm, hay chỉ thị để giúp con người giao
tiếp, diễn giải, xử lý hoặc thực hiện (một cách tự động)
So sánh dữ liệu với thông tin (information)
• Dữ liệu được t,o thành từ các khối thông tin
• Thông tin được tạo ra thông qua việc xử lý dữ liệu
• Thông tin nói lên ý nghĩa của dữ liệu
• Thông tin hay, đúng lúc, hợp thời sẽ góp phần tạo ra các quyết định chính xác
• Quyết định đúng đắn sẽ giúp cho tổ chức tồn tại
CSDL là gì?
HQTCSDL là gì?
cơ sở dữ liệu (CSDL)
– một tập hợp rất nhiều dữ liệu mang
tính persistent, được
tổ chức đặc biệt cho việc lưu trữ, tìm kiếm
và rút trích dữ liệu
hệ quản trị CSDL (HQTCSDL) – là một
hệ thống hoặc phần mềm được thiết kế
để quản lý CSDL, và thực hiện các thao tác trên dữ liệu do nhiều client yêu cầu.
Bài 1 TH107 3
HQTCSDL CSDL
Vì vậy, môn học này thực sự nhằm…
Bài 1 TH107 4
} giới thiệu lý thuyết và thực hiện thao tác trên các
hệ quản trị cơ sở dữ liệu
Trang 2Tại sao lại Nghiên cứu CSD
Bài 1 TH107 5
} Vì d # li & u vô cùng quý giá:
} th $ ng có giá tr 5 hơn phần mềm
vd., các mẫu tin tài khoản ngân
hàng, các mẫu tin về thuế, …
} nó phải được bảo vệ - cho dù xảy
ra chuyện gì liên quan tới sự cố
máy móc, hư đĩa cứng, lũ lụt, thiên
tai, …
} nó có thể được phối hợp và được
tổng kết theo nhiều cách – nhằm
phục vụ cho nhiều mục đích khác
nhau
} Vì lĩnh vực CSDL có đóng góp
rất nhiều cho ngành khoa học
máy tính cơ bản:
} vì sự tập trung vào dữ liệu … và
đĩa …
} vì tính chuẩn hóa các khái niệm
} Vì phần mềm hệ quản trị CSDL thành công rất lớn như là một công nghệ thương mại (Oracle, Informix, MS Access, …)
} Vì lĩnh vực CSDL đang được nghiên cứu rất tích cực và có thể mang đến các cơ hội nghề nghiệp sau này:
} Chuyên gia phân tích hệ thống } Thiết kế CSDL
} Phát triển ứng dụng } Quản trị CSDL
Dàn bài
} Kiến trúc 3 mức
} Độc lập Dữ liệu
} Kết luận
Một số Khái niệm
Bài 1 TH107 7
} Cơ sở Dữ liệu (Database): Tập hợp rất nhiều các mục dữ liệu có quan
hệ với nhau (về mặt logic) về một lĩnh vực cụ thể được lưu trữ để lưu giữ và phân tích mẫu tin dữ liệu
} Lĩnh vực (domain) thường được gọi là Universe of Discourse.
} CSDL được vi tính hóa được quản lý bởi một hệ thống phần mềm Hệ
Qu:n trị CSDL (Database Management System (DBMS))
muốn thao tác trên dữ liệu
} Ứ ng dụng CSDL (Database application) : Chương trình tương tác với
một CSDL trong quá trình thi hành
} Hệ CSDL (Database System): CSDL cùng với HQTCSDL và các ứng dụng liên quan
Mô hình hóa Dữ liệu
theo một cách có cấu trúc
gọi là mô hình dữ liệu (data model)
(Relational Model)
} lưu trữ dữ liệu theo các bảng, dòng, cột
Trang 3c đi m của CSDL
Bài 1 TH107 9
} cấu trúc chặt chẽ về mặt logic
chương trình ứng dụng cụ thể
} có kích thước thay đổi
} tổ chức vật lý với độ phức tạp khác nhau
Bài 1 TH107 10
} Khi dữ liệu thường có cấu trúc:
} tất cả các mẫu tin tài khoản ngân hàng luôn theo một
cấu trúc nhất định
} ta có thể khai thác cấu trúc thông thường này – để rút
trích dữ liệu theo nhiều cách hữu dụng khác nhau
(nghĩa là, ta có thể sử dụng ngôn ngữ truy vấn)
Các H CSDL Hi n nay
Bài 1 TH107 11
giới thực ngay cả khi ta thường không trực tiếp thao tác với chúng
} các ho t ng kinh doanh: quản lý bán hàng (lẻ/sỉ),
thương mại điện tử (amazone, eBay), ngân hàng và tài chính, các hệ thống đặt chỗ, lập lịch và lên kế hoạch phân công, các hệ thống phân bổ tài nguyên, …
} các ho t ng khác c a t chức: thư viện, bệnh viện,
chính phủ, trường học, phòng nghiên cứu, …
Có ph i WWW là DBM
Bài 1 TH107 12
} Có nhiều tìm kiếm tương đối phức tạp } crawler thực hiện index các web pages, tìm kiếm pages dựa trên keyword
} dữ liệu hầu như không có cấu trúc và không theo kiểu
} chỉ tìm kiếm (read-only) } không cập nhật dữ liệu, không thống kê, kết hợp dữ liệu
} không bảo đảm cung cấp dữ liệu mới nhất, nhất quán trên các mdl, chịu được sự cố, …
} các web site (TMĐT) thường có DBMS bên dưới để cung cấp các chức năng này
} Bức tranh đang thay đổi } Web đưa ra bức tranh về HTTT, khởi đầu bằng DBMS
} Nhiều chuẩn như XML ra đời có thể giúp mô hình dữ liệu
} Các nhóm nghiên cứu đang nghiên cứu để cung cấp chức năng về thao tác nhiều website
} Ranh giới WWW/CSDL đang mờ nhạt!
Trang 4Các H CSDL Hi n nay
Bài 1 TH107 13
Các H CSDL Hi n nay
Dàn bài
Bài 1 TH107 15
} Kiến trúc 3 mức
} Độc lập Dữ liệu
} Kết luận
một công ty bán lẻ
} dữ liệu: thông tin về hàng hóa (tên hàng, mô tả, kho)
Trang 5Tạo sao c n n CSD
Bài 1 TH107 17
một cách bền vững ứng dụng phải
dựa vào các tập tin
} Một hệ th ng t p tin (file based
system)là một tập các ứng dụng sử
dụng tập tin để lưu dữ liệu
Gia tăng mã lệnh viết cho truy xuất tập tin
Dữ liệu luôn bị dư thừa trên các tập tin khác nhau
Chi phí bảo trì cao
File 1
… File 3
Program 1
• Data management
Program 2
• Data management
Program 3
• Data management
Bài 1 TH107 18
} Có phải là tuyệt vời không?
} quản lý files trên băng đĩa
} cho phép open read seek close 1 file
} cho phép thiết lập bảo vệ trên một file
Bài 1 TH107 19
} Truy vấn đơn giản, hiệu quả và “ad hoc”
} ngôn ngữ truy vấn khai báo
} Thực hiện đồng thời hiệu quả chi tiết hơn tập tin
} Cung cấp giao diện quản trị đơn giản
} Có thể làm giảm thời gian phát triển ứng dụng
1 ad hoc : được thành l % p hay được dùng cho các bài toán/yêu cầu đặc thù hay
ngay l % p tức
Ti p cận Dựa trên Tập tin
Bài 1 TH107 20
File 1 File 2
… File 3
Program 1
• Data management
Program 2
• Data management
Program 3
• Data management
Vấn đề chính:
} phát triển các ứng dụng dựa trên các tập tin, có nghĩa ứng dụng phụ thuộc vào cấu trúc tập tin.
Hạn chế: không có sự độc lập chương trình-ữ liệu tách biệt ứng dụng khỏi dữ liệu mà nó đang thi hành
code
code
code
Trang 6Ti p cận CSDL
Bài 1 TH107 21
Program
1
Program
2
DBMS
Query Processor Transact Mgr
…
Storage Mgr
Integrated DB
TiFp cận CSDL: tách biệt giữa dữ liệu (lớnđượ c cập nhật thường xuyên)
và cấu trúc của dữ liệu (nhỏổ n định)
Trừu tượng dữ liệu (data abstraction) cho phép định nghĩa 1 đối tượng
thay đổi mà không ảnh hưởng đến các chương trình sử dụng đối tượng
đ ó thông qua một định nghĩa bên ngoài
Mô t Dữ li u: Mô hình Dữ li u
khái niệm mô tả dữ liệu
cụ thể, bằng cách sử dụng một mô hình dữ liệu
cụ thể
được sử dụng rộng rãi nhất ngày nay
} Khái niệm chính: quan hệ (relation), cụ thể là table có
rows và columns
fields
Bài 1 TH107 23
Lược đồ CSDL (Database Schema) mô tả cấu trúc
của CSDL
Trạng thái CSDL (Database State) đề cập
tới dữ liệu của CSDL ở một thời điểm cụ thể (snapshot)
Thay đổi thường xuyên
còn gọi database
extension
HQTCSDL bảo đảm tất cả trạng thái CSDL đều ở trạng thái hợp lệ (valid)
Ít bị thay đổi
còn gọi database
intension
còn gọi metadata (= dữ
liệu về dữ liệu)
tính trừu tượng dữ liệu
định nghĩa các khung nhìn (view) khác nhau về
dữ liệu
hơn khỏi việc thể hiện chi tiết dữ liệu.
Trang 7Ki n Trúc ANS
Bài 1 TH107 25
Ki ; n trúc 3-lược đồ (ANSI/SPARC) gồm:
} Internal view
} Conceptual view
} External view
1
2
3
1
2
3
Cách th hiện vật lý về CSDL trên máy tính. Cách
thức lưu dữ liệu
Cấu trúc logic về CSDL mô tả dữ liệu nào được lưu
và mối quan hệ giữa chúng
hung nhìn của người dùng về CSDL cung cấp một
phần CSDL có liên quan tới người dùng đó
Bài 1 TH107 26
} External Level:
} Mỗi người có thể truy xuất dữ liệu,
nhưng có khung nhìn dữ liệu riêng
độc lập với những người dùng khác
Độc lập dữ liệu logic
} Conceptual Level:
} Một thể hiện dữ liệu được chia sẻ
cho tất cả các ứng dụng và người
dùng độc lập với cách lưu trữ dữ liệu
vật lý
} Người dùng không phải hiểu chi tiết
thể hiện vật lý
} DBA có thể thay đổi các cấu trúc lưu
trữ mà không ảnh hưởng tới người
dùng và chương trình ứng dụng Độc
lập dữ liệu vật lý.
} Physical Level:
} Cung cấp các tiện ích chuẩn để
tương tác với hệ điều hành về cấp
phát không gian và thi hành tập tin.
1
2
3
1
2
3 Các quan hệ được lưu trong các tập tin không được sắp thứ tự
Chỉ mục đặt trên cột đầu tiên của Svie
Svien(masv: string tensv: string login: string
diemtb:real) Hphan(mahp:string tenmh:string sotc:integer) Dky(masv:string mahp:string diem:string) Thongtin_HP(mahp:stringdangky:integer)
Khung nhìn Ngoài
Bài 1 TH107 27
} CSDL phục vụ các nhu cầu của nhiều người dùng
⇒ cần phải có những quan sát hay cách nhìn (view) khác nhau về cùng một dữ liệu
} ung nhìn (View):việc tái cấu trúc mức quan niệm về dữ liệu sao cho phù hợp với ứng dụng.
} HQTCSDL chịu trách nhiệm về tính tương ứng giữa khung nhìn và dữ liệu
Cung cấp một mức độ an toàn bảo mật Cung cấp một cơ chế để tùy biến thể hiện CSDL Trình bày một hình ảnh nhất quá không thay
đổ i về cấu trúc của CSDL thậm chí khi CSDL bên dưới có thay đổ
Độc lập Dữ liệu
Bài 1 TH107 28
} Ứng dụng cô lập khỏi cách thức dữ liệu được định nghĩa và lưu trữ
} Tính độc lập dữ liệu logic:
} khả năng sửa đổi conceptual schema
mà không ảnh hưởng đến external schema hay các chương trình ứng dụng
} Tính độc lập dữ liệu vật lý:
} khả năng sửa đổi physical schema
mà không ảnh hưởng đến conceptual (hay external) schema hoặc phải viết lại các chương trình ứng dụng
} Sắp thứ tự dữ liệu khi đưa ra kết quả:
} cách thức thực hiện (sắp xếp vật lý)
là do HQTCSDL đảm nhận và chương trình ứng dụng không thể nhìn thấy
} Thêm một chỉ mục vật lý để làm tăng tốc độ một ứng dụng:
} không nên đòi hỏi phải cập nhật chương trình ứng dụng, cái có thể thấy được là hiệu quả của việc thêm chỉ mục
} Thêm một field vào một file:
} chỉ các chương trình nào truy xuất đến thông tin mới này mới cần phải thay đổi
Tại sao độc lập dữ liệu lại quan trọng?
Trang 8Dàn bài
Bài 1 TH107 29
} Kiến trúc 3 mức
} Độc lập Dữ liệu
} Kết luận
Kin trúc HQTCSDL
Các HQTCSDL nói chung đều có kiến trúc phân tầng.
HQTCSDL có cấu trúc tương tự như HĐH: đều
có bộ quản lý bộ nhớ,
bộ lập lịch, I/O, giao tiếp
Ngoài ra, các HQTCSDL còn thực hiện nhiều chức năng quản lý dữ liệu
Tên khác của HQTCSDL:
data manager
SQL Commands
Plan Executor Operator Evaluator
Transaction
Manager
Lock
Manager
File/Access Methods
Buffer Manager
Disk Space Manager
Query Execution Concurrency
Control
Index
Files
Data Files
System Catalog
Recovery Manager
Forms ApplicationFront ends SQLInterface
DBMS
Parser
Optimizer
X9 lý Truy vấn
B@ quản lý Truy vấn (Query processor)
Không chỉ xử lý truy vấn mà còn các yêu cầu về cập nhật, … Đưa ra cách tốt nhất
để truy tìm dữ liệu
Bài 1 TH107 31
SQL Commands
Plan Executor Operator Evaluator
Transaction Manager
Lock Manager
File/Access Methods
Buffer Manager
Disk Space Manager
Query Execution Concurrency
Control
Index Files
Data Files
System Catalog
Recovery Manager
Forms Front ends SQLInterface
DBMS
Parser Optimizer
H T C s Dữ li u
} Hiệu quả: khả năng xử lý tập dữ liệu lớn và các truy vấn phức
tạp mà không phải tìm kiếm tất cả các tập tin và mục dữ liệu } Thuận lợi: dễ dàng viết các truy vấn để rút trích dữ liệu
} An toàn: bảo vệ dữ liệu khỏi sự cố hệ thống và hackers
} Vô cùng lớn: kích thước CSDL tính bằng gigabytes và
terabytes } Bền vững: dữ liệu vẫn tồn tại sau khi chương trình thi hành
xong } Nhiều người dùng: nhiều hơn một người dùng có thể truy
xuất và cập nhật dữ liệu cùng một lúc mà vẫn bảo đảm tính nhất quán
Trang 9Các Ngôn ngữ của H n trị CSDL
Bài 1 TH107 33
lược đồ trong
definition language (CDL)) để mô tả các điều kiện mà các thể
hiện CSDl phải thỏa
language (SDL)) để tác động đến mô hình của lược đồ vật lý
(một số HQTCSDL)
(Đại số Quan hệ >< SQL)
Bài 1 TH107 34
} chỉ cần mô tả dữ liệu gì được rút trích hơn là cách thức
rút trích
ngôn ngữ lập trình (host language) như C, Pascal,
COBOL
} còn được gọi là khai báo (declarative) phi thủ tục
(nonprocedural)
} rút trích từng mẫu tin và xử lý riêng lẻ
} cũng được gọi là thủ tục (procedural)
hân loại H TCSDL
Bài 1 TH107 35
} Hệ thống Thông tin Địa lý
Người dùng CSDL
Bài 1 TH107 36
• xây dựng phần mềm HQTCSDL Oracle, IBM, MS, Sybase, NCR, …
database vendors, implementors
• giáo dục, khoa học, y tế, kinh doanh, …
• muốn lưu trữ và sử dụng dữ liệu trong một HQTCSDL
end users ở nhiều lĩnh vực
• phát triển chương trình cho end user truy xuất dữ liệu thông qua việc sử dụng các NNLT và các công cụ phần mềm đưa ra bởi nhà cung cấp HQTCSDL
database application programmers
• Thiết kế các lược đồ logic/ vật lý
• Xử lý an toàn và chứng thực
• Bảo đảm đáp ứng dữ liệu, khôi phục sau sự cố
• Điều chỉnh dữ liệu phù hợp với các yêu cầu
database administrators (DBAs)
Trang 10S lược Lịch sử về n lý Dữ liệu
Bài 1 TH107 37
năm cuối của thập niên 60) là các hệ
thống dựa trên tập tin
} Cần hỗ trợ truy xuất đồng thời dữ liệu bởi nhiều người
dùng, khôi phục dữ liệu, sao lưu, …
} Bắt đầu từ hệ thống đặt chỗ máy bay (SABRE), hệ
thống ngân hàng, các hệ thống lưu trữ thông tin phối
hợp
} Hình dung dữ liệu như cách nó được lưu trữ
} Tree-based (hierarchical model)
} Graph-based (network model)
} Sử dụng nQng nề cNn có chương trình truy
xuGt dữ liệu
PB
một mô hình dữ liệu mới (=relational data model) và
khái niệm về trừu tượng dữ liệu (data abstraction)
SQL (Structured Query Language)
hình dữ liệu quan hệ
hình quan hệ hiện nay được chấp nhận rộng rãi
trong giới công nghiệp
Một số Khuynh hướng Hiện nay
Bài 1 TH107 39
PC
(vd., đọc dữ liệu từ nhiều đĩa)
liệu cho đúng
Hạn chế của một H TCSDL
vấn đề …)
không dự tính thay đổi.
trình truy xuất
Trang 11Dàn bài
Bài 1 TH107 41
} Kiến trúc 3 mức
} Độc lập Dữ liệu
} Kết luận
K t luận
Bài 1 TH107 42
} CSDL là một tập dữ liệu có liên
quan với nhau về mặt logic
được lưu trữ và quản lý bởi một
HQTCSDL.
} Ưu điểm HQTCSDL >< HTTT
truyền thống: hỗ trợ độc lập dữ
liệu và cung cấp thực hiện
chuẩn tác vụ quản lý dữ liệu.
CSDL được định nghĩa bằng
cách sử dụng mô hình dữ liệu
} Kiến trúc 3-lược đồ gồm lược
đồ ngoài, quan niệm, trong
} Mỗi khung nhìn cung cấp cách
trừu tượng dữ liệu và cô lập chi
tiết thực hiện dữ liệu nào đó
với các mức ở trên.
CƠ S! DỮ LIỆU
Dữ liệu Siêu Dữ liệu Ràng buộc toàn vẹn
HỆ QUẢN TRỊ CSDL
Các CSDL khác
M c tiêu
Bài 1 TH107 43
} Định nghĩa: CSDL, HQTCSDL, ứng dụng CSDL, hệ CSDL
} Mô tả các đặc điểm của hệ thống dựa trên tập tin và một số hạn chế của kiến trúc này
} Định nghĩa độc lập chương trình-dữ liệu và giải thích cách CSDL có được tính độc lập mà hệ thống tập tin không có được
} Định nghĩa DDL và DML Sự khác nhau?
} Liệt kê một số thành phần của HQTCSDL
} Liệt kê các loại người khác nhau gắn với HQTCSDL và vai trò của họ
} Liệt kê một số ưu điểm và hạn chế của HQTCSDL
} Giải thích lược đồ khác dữ liệu như thế nào?
} Vẽ sơ đồ về kiến trúc 3-lược đồ và giải thích chức năng của mỗi mức
Liệt kê lợi ích của kiến trúc này.
} Lược đồ cung cấp tính độc lập dữ liệu như thế nào?
} So sánh kiến trúc hai lớp và ba lớp.
...trừu tượng liệu cô lập chi
tiết thực liệu
với mức trên.
CƠ S! DỮ LIỆU... S! DỮ LIỆU
Dữ liệu Siêu Dữ liệu Ràng buộc toàn vẹn
HỆ QUẢN TRỊ CSDL
Các CSDL khác...
dùng, khôi phục liệu, lưu, …
} Bắt đầu từ hệ thống đặt chỗ máy bay (SABRE), hệ
thống ngân hàng, hệ thống lưu trữ thơng tin phối