Tóm tắt lý thuyết chương 1 môn Cơ sở dữ liệu | Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh

Tóm tắt lý thuyết chương 1 môn Cơ sở dữ liệu của Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!

 

lOMoARcPSD|36625228
CHAPTER 1: INTRODUCTION TO DATABASE MANAGEMENT
SYSTEM
What is a DBMS?
- Một bộ sưu tập tích hợp dữ liệu rất lớn.
- Mô hình doanh nghiệp trong thế giới thực:
+ Các thực thể (entities): sinh viên, khoá học, …
+ Các mối quan hệ (relationships): Phương đang dùng CS564, …
- Hệ quản trị CSDL (DBMS) là gói phần mềm được thiết kế để lưu trữ
và quản lý CSDL.
File vs. DBMS
- Ứng dụng phải sắp xếp các tập dữ liệu lớn giữa bộ nhớ chính và bộ
nhớ phụ (ví dụ: lưu vào bộ đệm, truy cập theo hướng trang, đánh địa
chỉ 32 bit, v.v.)
- Mã đặc biệt cho các truy vấn khác nhau
- Phải bảo vệ dữ liệu khỏi sự không nhất quán do có nhiều người dùng
đồng thời - Phục hồi sự cố
- Kiểm soát an ninh và truy cập
Why use a DBMS?
- Độc lập dữ liệu và truy cập hiệu quả.
- Giảm thời gian phát triển ứng dụng.
- Tính toàn vẹn và bảo mật dữ liệu.
- Quản lý dữ liệu thống nhất.
- Truy cập đồng thời, phục hồi sau sự cố.
Why Study Databases??
- Chuyển từ tính toán sang thông tin
+ ở mức “cấp thấp”: tranh giành không gian web (một mớ hỗn độn!)
+ ở mức “cấp cao”: ứng dụng khoa học - Bộ dữ liệu ngày càng đa
dạng và khối lượng:
lOMoARcPSD|36625228
+ Thư viện số, video tương tác, dự án Bộ gen người, dự án EOS
+ ... nhu cầu bùng nổ DBMS
- DBMS bao gồm hầu hết CS:
+ OS, ngôn ngữ, lý thuyết, AI, đa phương tiện, logic
Data Models
- Mô hình dữ liệu là tập hợp các khái niệm để mô tả dữ liệu.
- Lược đồ là mô tả về một tập hợp dữ liệu cụ thể, sử dụng mô hình dữ
liệu nhất định.
- Mô hình dữ liệu quan hệ là mô hình được sử dụng rộng rãi nhất hiện
nay.
+ Khái niệm chính: quan hệ, về cơ bản là một bảng có hàng và cột.
+ Mọi quan hệ đều có một lược đồ mô tả các cột hoặc trường.
Levels of Abstraction
Nhiều khung nhìn, lược đồ khái niệm (logic) đơn và lược đồ vật lý.
- Chế độ xem mô tả cách người dùng xem dữ liệu.
- Lược đồ khái niệm xác định cấu trúc logic
- Lược đồ vật lý mô tả các tệp và chỉ mục được sử dụng.
Các lược đồ được xác định bằng DDL; dữ liệu được sửa đổi/truy vấn
bằng DML.
Example: University Database v Conceptual
schema: (lược đồ khái niệm)
§ Students(sid: string, name: string, login: string, age:
integer, gpa:real)
§ Courses(cid: string, cname:string, credits:integer)
§ Enrolled(sid:string, cid:string, grade:string) v
Physical schema: (lược đồ vật lý)
§ Relations stored as unordered files. (Các quan hệ được lưu trữ
dưới dạng tập tin không thứ tự)
§ Index on first column of Students. (Chỉ mục tại cột đầu tiên
của quan hệ sinh viên)
lOMoARcPSD|36625228
v External Schema (View): (lược đồ ngoài)
Course_info(cid:string, enrollment:integer)
Data Independence *
- Các ứng dụng cách ly với cách dữ liệu được cấu trúc và lưu trữ. -
Độc lập dữ liệu logic: Bảo vệ khỏi những thay đổi trong cấu trúc logic
của dữ liệu.
- Độc lập dữ liệu vật lý: Bảo vệ khỏi những thay đổi trong cấu trúc
vật lý của dữ liệu.
One of the most important benefits of using a DBMS.
Concurrency Control (kiểm soát đồng thời)
- Việc thực thi đồng thời các chương trình người dùng là điều cần
thiết để có hiệu suất DBMS tốt.
Bởi vì việc truy cập đĩa diễn ra thường xuyên và tương đối chậm,
điều quan trọng là phải giữ cho CPU hoạt động ổn định bằng cách làm
việc đồng thời trên một số chương trình người dùng.
- Hành động xen kẽ của các chương trình người dùng khác nhau có
thể dẫn đến sự không nhất quán: ví dụ: séc bị xóa trong khi số dư tài
khoản đang được tính toán.
- DBMS đảm bảo những vấn đề như vậy không phát sinh: người
dùng có thể giả vờ như họ đang sử dụng hệ thống một người dùng.
Transaction: An Execution of a DB Program
- Khái niệm chính là giao dịch, là một chuỗi nguyên tử của các hành
động cơ sở dữ liệu (đọc/ghi).
- Mỗi giao dịch, được thực hiện hoàn toàn, phải để DB ở trạng thái
nhất quán nếu DB nhất quán khi giao dịch bắt đầu.
+ Người dùng có thể chỉ định một số ràng buộc toàn vẹn đơn giản trên
dữ liệu và DBMS sẽ thực thi các ràng buộc này.
+ Ngoài ra, DBMS không thực sự hiểu ngữ nghĩa của dữ liệu. (ví dụ:
nó không hiểu cách tính lãi trên tài khoản ngân hàng).
+ Do đó, việc đảm bảo rằng một giao dịch (chạy riêng) duy trì tính
nhất quán cuối cùng là trách nhiệm của người dùng!
lOMoARcPSD|36625228
Scheduling Concurrent Transactions (lập kế hoạch các giao dịch đồng
thời)
- DBMS đảm bảo rằng việc thực thi {T1, ... , Tn} tương đương với
một số thực thi nối tiếp T1' ... Tn'.
+ Trước khi đọc/ghi một đối tượng, một giao dịch sẽ yêu cầu một
khóa trên đối tượng và đợi cho đến khi DBMS cấp cho nó khóa. Tất cả
các khóa được giải phóng khi kết thúc giao dịch. (Giao thức khóa 2PL
nghiêm ngặt.)
+ Ý tưởng: Nếu một hành động của Ti (chẳng hạn như viết X) ảnh
hưởng đến Tj (có lẽ là đọc X), một trong số họ, chẳng hạn như Ti, sẽ lấy
được khóa trên X trước và Tj buộc phải đợi cho đến khi Ti hoàn thành;
điều này ra lệnh cho các giao dịch một cách hiệu quả.
+ Điều gì sẽ xảy ra nếu Tj đã khóa Y và sau đó Ti yêu cầu khóa Y?
(Bế tắc!) Ti hoặc Tj bị hủy bỏ và khởi động lại!
Ensuring Atomicity (đảm bảo tính nguyên tử)
- DBMS đảm bảo tính nguyên tử (thuộc tính tất cả hoặc không có gì)
ngay cả khi hệ thống gặp sự cố khi đang thực hiện Xact.
- Ý tưởng: Giữ nhật ký (lịch sử) của tất cả các hành động được DBMS
thực hiện trong khi thực thi một bộ Xacts:
+ Trước khi thực hiện thay đổi đối với cơ sở dữ liệu, mục nhật ký
tương ứng sẽ được đưa đến một vị trí an toàn. (Giao thức WAL; hệ điều
hành hỗ trợ điều này thường không đầy đủ.)
+ Sau sự cố, ảnh hưởng của các giao dịch được thực hiện một phần sẽ
được hoàn tác bằng nhật ký. (Nhờ WAL, nếu mục nhập nhật ký không
được lưu trước khi xảy ra sự cố, thay đổi tương ứng sẽ không được áp
dụng cho cơ sở dữ liệu!)
The Log (nhật ký)
- Các hành động sau được ghi lại trong nhật ký:
+ Ti viết một đối tượng: Giá trị cũ giá trị mới.
Bản ghi nhật ký phải được lưu vào đĩa trước khi trang được thay đổi!
+ Ti cam kết/hủy bỏ: Một bản ghi nhật ký cho biết hành động này. -
lOMoARcPSD|36625228
Các bản ghi nhật ký được liên kết với nhau bằng id Xact, do đó thật dễ
dàng hoàn tác một Xact cụ thể (ví dụ: để giải quyết bế tắc).
- Nhật ký thường được in hai mặt và lưu trữ trên bộ lưu trữ “ổn định”. -
Tất cả các hoạt động liên quan đến nhật ký (và trên thực tế, tất cả các
hoạt động liên quan đến CC như khóa/mở khóa, xử lý các bế tắc, v.v.)
đều được DBMS xử lý một cách minh bạch.
Databases make these folks happy ...
- Người dùng cuối và nhà cung cấp DBMS
- Lập trình viên ứng dụng DB
+ Ví dụ: quản trị viên web thông minh
- Quản trị viên cơ sở dữ liệu (DBA)
+ Thiết kế các lược đồ logic/vật lý
+ Xử lý bảo mật và ủy quyền
+ Tính khả dụng của dữ liệu, phục hồi sự cố +
Điều chỉnh sở dữ liệu khi nhu cầu phát triển
Must understand how a DBMS works!
Structure of a DBMS
- Một DBMS điển hình có kiến trúc phân lớp.
- Hình này không hiển thị các thành phần phục hồi và kiểm soát đồng
thời.
- Đây là một trong một số kiến trúc có thể có; mỗi hệ thống có những
biến thể riêng của nó.
lOMoARcPSD|36625228
Summary
- DBMS dùng để duy trì, truy vấn các tập dữ liệu lớn.
- Các lợi ích bao gồm khôi phục sau sự cố hệ thống, truy cập đồng thời,
phát triển ứng dụng nhanh chóng, tính toàn vẹn và bảo mật dữ liệu.
- Mức độ trừu tượng mang lại sự độc lập cho dữ liệu.
- Một DBMS thường có kiến trúc phân lớp.
- Các DBA giữ những công việc có trách nhiệm và được trả lương cao! -
DBMS R&D là một trong những lĩnh vực rộng nhất, thú vị nhất trong
CS.
| 1/6

Preview text:

lOMoARcPSD| 36625228
CHAPTER 1: INTRODUCTION TO DATABASE MANAGEMENT SYSTEM What is a DBMS?
- Một bộ sưu tập tích hợp dữ liệu rất lớn.
- Mô hình doanh nghiệp trong thế giới thực:
+ Các thực thể (entities): sinh viên, khoá học, …
+ Các mối quan hệ (relationships): Phương đang dùng CS564, …
- Hệ quản trị CSDL (DBMS) là gói phần mềm được thiết kế để lưu trữ và quản lý CSDL. File vs. DBMS
- Ứng dụng phải sắp xếp các tập dữ liệu lớn giữa bộ nhớ chính và bộ
nhớ phụ (ví dụ: lưu vào bộ đệm, truy cập theo hướng trang, đánh địa chỉ 32 bit, v.v.)
- Mã đặc biệt cho các truy vấn khác nhau
- Phải bảo vệ dữ liệu khỏi sự không nhất quán do có nhiều người dùng
đồng thời - Phục hồi sự cố
- Kiểm soát an ninh và truy cập Why use a DBMS?
- Độc lập dữ liệu và truy cập hiệu quả.
- Giảm thời gian phát triển ứng dụng.
- Tính toàn vẹn và bảo mật dữ liệu.
- Quản lý dữ liệu thống nhất.
- Truy cập đồng thời, phục hồi sau sự cố. Why Study Databases??
- Chuyển từ tính toán sang thông tin
+ ở mức “cấp thấp”: tranh giành không gian web (một mớ hỗn độn!)
+ ở mức “cấp cao”: ứng dụng khoa học - Bộ dữ liệu ngày càng đa dạng và khối lượng: lOMoARcPSD| 36625228
+ Thư viện số, video tương tác, dự án Bộ gen người, dự án EOS
+ ... nhu cầu bùng nổ DBMS
- DBMS bao gồm hầu hết CS:
+ OS, ngôn ngữ, lý thuyết, AI, đa phương tiện, logic Data Models
- Mô hình dữ liệu là tập hợp các khái niệm để mô tả dữ liệu.
- Lược đồ là mô tả về một tập hợp dữ liệu cụ thể, sử dụng mô hình dữ liệu nhất định.
- Mô hình dữ liệu quan hệ là mô hình được sử dụng rộng rãi nhất hiện nay.
+ Khái niệm chính: quan hệ, về cơ bản là một bảng có hàng và cột.
+ Mọi quan hệ đều có một lược đồ mô tả các cột hoặc trường. Levels of Abstraction
Nhiều khung nhìn, lược đồ khái niệm (logic) đơn và lược đồ vật lý.
- Chế độ xem mô tả cách người dùng xem dữ liệu.
- Lược đồ khái niệm xác định cấu trúc logic
- Lược đồ vật lý mô tả các tệp và chỉ mục được sử dụng.
Các lược đồ được xác định bằng DDL; dữ liệu được sửa đổi/truy vấn bằng DML.
Example: University Database v Conceptual
schema: (lược đồ khái niệm)
§ Students(sid: string, name: string, login: string, age: integer, gpa:real)
§ Courses(cid: string, cname:string, credits:integer)
§ Enrolled(sid:string, cid:string, grade:string) v
Physical schema: (lược đồ vật lý)
§ Relations stored as unordered files. (Các quan hệ được lưu trữ
dưới dạng tập tin không thứ tự)
§ Index on first column of Students. (Chỉ mục tại cột đầu tiên của quan hệ sinh viên) lOMoARcPSD| 36625228
v External Schema (View): (lược đồ ngoài)
Course_info(cid:string, enrollment:integer) Data Independence * -
Các ứng dụng cách ly với cách dữ liệu được cấu trúc và lưu trữ. -
Độc lập dữ liệu logic: Bảo vệ khỏi những thay đổi trong cấu trúc logic của dữ liệu. -
Độc lập dữ liệu vật lý: Bảo vệ khỏi những thay đổi trong cấu trúc vật lý của dữ liệu.
One of the most important benefits of using a DBMS.
Concurrency Control (kiểm soát đồng thời) -
Việc thực thi đồng thời các chương trình người dùng là điều cần
thiết để có hiệu suất DBMS tốt.
Bởi vì việc truy cập đĩa diễn ra thường xuyên và tương đối chậm,
điều quan trọng là phải giữ cho CPU hoạt động ổn định bằng cách làm
việc đồng thời trên một số chương trình người dùng. -
Hành động xen kẽ của các chương trình người dùng khác nhau có
thể dẫn đến sự không nhất quán: ví dụ: séc bị xóa trong khi số dư tài
khoản đang được tính toán. -
DBMS đảm bảo những vấn đề như vậy không phát sinh: người
dùng có thể giả vờ như họ đang sử dụng hệ thống một người dùng.
Transaction: An Execution of a DB Program -
Khái niệm chính là giao dịch, là một chuỗi nguyên tử của các hành
động cơ sở dữ liệu (đọc/ghi). -
Mỗi giao dịch, được thực hiện hoàn toàn, phải để DB ở trạng thái
nhất quán nếu DB nhất quán khi giao dịch bắt đầu.
+ Người dùng có thể chỉ định một số ràng buộc toàn vẹn đơn giản trên
dữ liệu và DBMS sẽ thực thi các ràng buộc này.
+ Ngoài ra, DBMS không thực sự hiểu ngữ nghĩa của dữ liệu. (ví dụ:
nó không hiểu cách tính lãi trên tài khoản ngân hàng).
+ Do đó, việc đảm bảo rằng một giao dịch (chạy riêng) duy trì tính
nhất quán cuối cùng là trách nhiệm của người dùng! lOMoARcPSD| 36625228
Scheduling Concurrent Transactions (lập kế hoạch các giao dịch đồng thời) -
DBMS đảm bảo rằng việc thực thi {T1, ... , Tn} tương đương với
một số thực thi nối tiếp T1' ... Tn'.
+ Trước khi đọc/ghi một đối tượng, một giao dịch sẽ yêu cầu một
khóa trên đối tượng và đợi cho đến khi DBMS cấp cho nó khóa. Tất cả
các khóa được giải phóng khi kết thúc giao dịch. (Giao thức khóa 2PL nghiêm ngặt.)
+ Ý tưởng: Nếu một hành động của Ti (chẳng hạn như viết X) ảnh
hưởng đến Tj (có lẽ là đọc X), một trong số họ, chẳng hạn như Ti, sẽ lấy
được khóa trên X trước và Tj buộc phải đợi cho đến khi Ti hoàn thành;
điều này ra lệnh cho các giao dịch một cách hiệu quả.
+ Điều gì sẽ xảy ra nếu Tj đã khóa Y và sau đó Ti yêu cầu khóa Y?
(Bế tắc!) Ti hoặc Tj bị hủy bỏ và khởi động lại!
Ensuring Atomicity (đảm bảo tính nguyên tử)
- DBMS đảm bảo tính nguyên tử (thuộc tính tất cả hoặc không có gì)
ngay cả khi hệ thống gặp sự cố khi đang thực hiện Xact.
- Ý tưởng: Giữ nhật ký (lịch sử) của tất cả các hành động được DBMS
thực hiện trong khi thực thi một bộ Xacts:
+ Trước khi thực hiện thay đổi đối với cơ sở dữ liệu, mục nhật ký
tương ứng sẽ được đưa đến một vị trí an toàn. (Giao thức WAL; hệ điều
hành hỗ trợ điều này thường không đầy đủ.)
+ Sau sự cố, ảnh hưởng của các giao dịch được thực hiện một phần sẽ
được hoàn tác bằng nhật ký. (Nhờ WAL, nếu mục nhập nhật ký không
được lưu trước khi xảy ra sự cố, thay đổi tương ứng sẽ không được áp
dụng cho cơ sở dữ liệu!) The Log (nhật ký)
- Các hành động sau được ghi lại trong nhật ký:
+ Ti viết một đối tượng: Giá trị cũ và giá trị mới.
Bản ghi nhật ký phải được lưu vào đĩa trước khi trang được thay đổi!
+ Ti cam kết/hủy bỏ: Một bản ghi nhật ký cho biết hành động này. - lOMoARcPSD| 36625228
Các bản ghi nhật ký được liên kết với nhau bằng id Xact, do đó thật dễ
dàng hoàn tác một Xact cụ thể (ví dụ: để giải quyết bế tắc).
- Nhật ký thường được in hai mặt và lưu trữ trên bộ lưu trữ “ổn định”. -
Tất cả các hoạt động liên quan đến nhật ký (và trên thực tế, tất cả các
hoạt động liên quan đến CC như khóa/mở khóa, xử lý các bế tắc, v.v.)
đều được DBMS xử lý một cách minh bạch.
Databases make these folks happy ...
- Người dùng cuối và nhà cung cấp DBMS
- Lập trình viên ứng dụng DB
+ Ví dụ: quản trị viên web thông minh
- Quản trị viên cơ sở dữ liệu (DBA)
+ Thiết kế các lược đồ logic/vật lý
+ Xử lý bảo mật và ủy quyền
+ Tính khả dụng của dữ liệu, phục hồi sự cố +
Điều chỉnh cơ sở dữ liệu khi nhu cầu phát triển
Must understand how a DBMS works! Structure of a DBMS
- Một DBMS điển hình có kiến trúc phân lớp.
- Hình này không hiển thị các thành phần phục hồi và kiểm soát đồng thời.
- Đây là một trong một số kiến trúc có thể có; mỗi hệ thống có những
biến thể riêng của nó. lOMoARcPSD| 36625228 Summary
- DBMS dùng để duy trì, truy vấn các tập dữ liệu lớn.
- Các lợi ích bao gồm khôi phục sau sự cố hệ thống, truy cập đồng thời,
phát triển ứng dụng nhanh chóng, tính toàn vẹn và bảo mật dữ liệu.
- Mức độ trừu tượng mang lại sự độc lập cho dữ liệu.
- Một DBMS thường có kiến trúc phân lớp.
- Các DBA giữ những công việc có trách nhiệm và được trả lương cao! -
DBMS R&D là một trong những lĩnh vực rộng nhất, thú vị nhất trong CS.