Tải bản đầy đủ (.docx) (6 trang)

Tổng quan Hệ quản trị Cơ sở 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 (101.56 KB, 6 trang )

BÀI TẬP VỀ NHÀ CHƯƠNG 1 DBMS
NHÓM 1:
Nguyễn Thành Thái

14110182

Trần Thị Thơm

14110192

Phạm Nguyễn Trường Giang

14110040

Huỳnh Nhật Thành

14110178
BÀI LÀM

1. Tại sao bạn lựa chọn hệ thống CSDL thay vì lưu dữ liệu trong file
quản lý bởi hệ điều hành? Khi nào bạn không nên dùng hệ CSDL?
Tại vì hệ thống CSDL có những lợi ích:





Sự độc lập dữ liệu và truy cập hiệu quả.
Nó có thể nạp từng trang, xử lý được từng trang, từng phần.




Giảm thời gian phát triển ứng dụng. Vì DBMS cung cấp các chức quan
trọng cho các ứng dụng, như điều khiển tương tranh và khôi phục sự cố,
các khả năng truy vấn mức cao, vv…, người lập trình chỉ phải viết những
đoạn mã chương trình đặc biệt cho từng ứng dụng.



Toàn vẹn dữ liệu và bảo mật. Cơ chế khung nhìn và các khả năng xác
thực của DBMS cung cấp một cơ chế điều khiển truy cập mạnh mẽ.



Quản trị dữ liệu. Bằng việc cung cấp một bộ khung giúp hỗ trợ một tập
hợp dữ liệu lớn và nhiều người sử dụng, DBMS hỗ trợ việc duy trì và các
công việc quản trị dữ liệu.
Truy cập đồng thời và khôi phục sự cố.

Nếu những lợi ích trên không quan trọng với ứng dụng của bạn, thì việc sử
dụng một tập các file là giải phát tốt hơn vì việc duy trì và thực hiện trên DBMS
phải trả giá thành cao hơn.


2. Độc lập dữ liệu mức logic (Logical data independence) là gì? Tại sao
nó quan trọng?
Độc lập dữ liệu logic có nghĩa là người dùng được bảo vệ từ những thay đổi
trong cơ cấu hợp lý của dữ liệu, tức là những thay đổi trong sự lựa chọn của
các quan hệ được lưu trữ.
Ví dụ, nếu một quan hệ Students(sid, sName, GPA) được thay thế bởi
Students (sid,sName) và Studentgpas (sid, GPA) với những lý do nào đó,

các chương trình ứng dụng hoạt động trên quan hệ Students có thể được bảo
vệ từ sự thay đổi này bằng cách xác định(ánh xạ) một view Students (sid,
sName, GPA) (như là sự kết tự nhiên của Studentnames và Studentgpas).
Do đó, các chương trình ứng dụng tham khảo cho Students không cần phải
được thay đổi khi quan hệ Students được thay thế bởi hai quan hệ khác. Sự
thay đổi duy nhất là thay vì lưu trữ các bộ Students, các bộ dữ liệu được tính
toán khi cần thiết bằng cách sử dụng các định nghĩa xem, điều này thì rõ
ràng với các chương trình ứng dụng.

3. Giải thích sự khác nhau giữa độc lập dữ liệu mức logic và độc lập dữ
liệu mức vật lý (physical data independence)? Hãy cho ví dụ minh họa.
Độc lập dữ liệu logic có nghĩa là người dùng được bảo vệ từ những thay đổi
trong cấu trúc logic của dữ liệu, trong khi độc lập dữ liệu vật lý cách ly
người dùng với những thay đổi trong lưu trữ vật lý của dữ liệu. Xem xét
quan hệ Students từ ví dụ trên câu 2 (và bây giờ giả sử rằng nó không được
thay thế bằng hai quan hệ nhỏ hơn). Chúng ta có thể lựa chọn để lưu trữ các
bản ghi của quan hệ Students trong một số file, cùng với một chỉ mục phân
cụm trên trường sname. Ngoài ra, chúng ta có thể lựa chọn để lưu trữ nó
cùng với một chỉ mục trên trường gpa, hoặc tạo ra các chỉ mục trên cả hai
trường này, hoặc lưu trữ nó như một file được sắp xếp bằng gpa. Những
cách lưu trữ này người dùng không nhìn thấy được, ngoại trừ về mặt cải
thiện hiệu suất, họ chỉ nhìn thấy quan hệ đơn giản là một tập các bản ghi.
Điều này chính là sự độc lập dữ liệu vật lý.

4. Giải thích sự khác biệt giữa lược đồ ý niệm/logic (conceptual /logical
schema), lược đồ vật lý/bên trong (Physical/internal schema) và lược đồ
ngoài (external schema).


Lược đồ ngoài(external schema) cho phép truy cập dữ liệu để có thể chỉnh

(và được uỷ quyền) ở cấp độ của người dùng cá nhân hoặc nhóm người sử
dụng.
Lược đồ ý niệm/logic (conceptual/logical schema) mô tả tất cả các dữ liệu
thực sự được lưu trữ trong cơ sở dữ liệu. Trong khi có một số quan điểm cho
một cơ sở dữ liệu nhất định, có đúng một lược đồ khái niệm để tất cả người
dùng.
Lược đồ vật lý/bên trong (Physical/internal schema) tóm tắt làm thế nào mà
quan hệ được mô tả trong lược đồ khái niệm đang thực sự được lưu trữ trên
đĩa (hoặc các phương tiện vật chất khác).
Lược đồ bên ngoài cung cấp độc lập dữ liệu luận lý, trong khi lược đồ khái
niệm cung cấp độc lập dữ liệu vật lý.

5. Trách nhiệm của DBA. Giả sử là DBA không cần quan tâm đến việc
thực hiện các câu truy vấn của chính DBA, thì DBA có cần hiểu về tối
ưu hóa câu truy vấn không? Tại sao?
DBA có nhiệm vụ sau:


Thiết kế các lược đồ logic và vật lý, phân quyền, cũng như là những
khung nhìn chủ yếu của lược đồ ngoài.



Bảo mật và xác thực.



Sự sẵn sàng của dữ liệu và khôi phục sau sự cố.




Tinh chỉnh cơ sở dữ liệu: DBAM có nhiệm vụ phát triển cơ sở dữ liệu, cụ
thể là phát triển các lược đồ vật lý và lược đồ ngoài để đảm bảo thực hiện
được những yêu cầu thay đổi theo thời gian của người dùng.

DBA cần hiểu về tối ưu hóa truy vấn ngay cả khi người này không quan tâm
đến việc chạy những truy vấn nào vì anh ta có một số nhiệm vụ (thiết kế và
điều chỉnh cơ sở dữ liệu) liên quan đến tối ưu hóa truy vấn. Nếu DBA không
hiểu về những truy vấn được sử dụng rộng rãi cần những gì cho thực thi, và
DBMS sẽ tối ưu và thực hiện những truy vấn này như thế nào, anh ta sẽ
không thể có những quyết định tốt khi thiết kế và điều chỉnh cơ sở dữ liệu.


6. Ông A cần mua một hệ CSDL. Để tiết kiệm chi phí, ông A chỉ mua
một hệ CSDL với số tính năng ít nhất có thể. Ông ta lập kế hoạch chỉ
chạy nó một mình trên máy PC của ông ấy và không share thông tin với
ai cả. Hãy cho biết tính năng nào trong các tính năng dưới đây của
DBMS ông A mua nên có và tại sao:
+ Tiện ích bảo mật
+ Kiểm soát đồng thời
+ Khôi phục dữ liệu sau sự cố
+ Cơ chế khung nhìn
+ Ngôn ngữ truy vấn
Tiện ích bảo mật là cần thiết bởi vì các đối thủ, mối đe dọa có thể xâm nhập
từ bên ngoài để cố gắng để truy vẫn cơ sở dữ liệu của ông. Tính năng bảo
mật của cơ sở dữ liệu sẽ chặn những kẻ xâm nhập.
Kiểm soát đồng thời là không cần thiết bởi vì chỉ có ông sử dụng cơ sở dữ
liệu.
Khôi phục dữ liệu sau sự cố là điều cần thiết cho bất kỳ cơ sở dữ liệu, ông A
sẽ không muốn mất dữ liệu nếu điện bị ngắt trong khi ông đã sử dụng hệ

thống.
Cơ chế khung nhìn là cần thiết. Ông A có thể sử dụng điều này để tùy biến
khung nhìn để thuận tiện hơn cho công việc của ông.
Ngôn ngữ truy vấn là cần thiết vì ông A phải có khả năng phân tích vùng tối
bí mật của nạn nhân.

7. Mô tả cấu trúc của một DBMS. Giả sử hệ điều hành của bạn được
nâng cấp để hỗ trợ thêm một số chức năng về file (ví dụ khả năng cho
phép lưu một chuỗi các bytes lên đĩa). Hãy cho biết lớp nào của DBMS
bạn cần phải viết lại để có thể tận dụng ưu điểm của các tính năng mới
đó.
Cấu trúc của một DBMS bao gồm:
-

Lớp quản lý không gian trên đĩa
Lớp quản lý bộ nhớ chính có sẵn và mang các trang đĩa vào bộ nhớ khi
cần thiết


-

Lớp có hỗ trợ các khái niệm trừu tượng của các tập tin và cấu trúc chỉ
mục
Lớp thực hiện các toán tử quan hệ
Lớp mà phân tích và tối ưu hóa các truy vấn và sản xuất một kế hoạch
thực thi trong về mặt toán tử.

Ngoài ra, có hỗ trợ điều khiển đồng thời và phục hồi, tương tác với quản lý
bộ đệm và phương pháp tiếp cận lớp.
Các lớp quản lý không gian đĩa đã được viết lại để tận dụng lợi thế của các

mới chức năng trên các tập tin hệ điều hành. Có khả năng là lớp đệm quản lý
cũng sẽ bị ảnh hưởng.

8. Trả lời các câu hỏi sau:
1.

Giao tác (transaction) là gì?
Giao tác là tập các thực thi được gộp lại thành một khối của một chương
trình ứng dụng.

2.

Tại sao một DBMS thực hiện xen kẽ các hành động của các giao
dịch khác nhau thay vì thực hiện lần lượt từng giao dịch một ?
Một DBMS thường được chia sẽ cho rất nhiều người dùng. Các giao dịch từ
những người dùng này có thể được thực thi xen kẽ để cải thiện thời gian
thực hiện các truy vấn của người dùng. Bằng cách này, người dùng không
phải đợi những giao dịch của người dùng khác hoàn thành rồi mới đến giao
dịch của mình được bắt đầu. Không thực hiện xen kẽ, nếu người dùng A
thực hiện một giao dịch nào đó mất 10s, và người dùng B bắt đầu thực hiện
giao dịch của mình, người dùng B sẽ phải đợi 10s để giao dịch của người
dùng A hoàn thành.

3.

Một user phải chắc chắn điều gì để đảm bảo tính nhất quán giữa
một giao dịch và CSDL ? Một DBMS nên chắc chắn điều gì để
đảm bảo tính nhất quán giữa thực hiện đồng thời nhiều giao dịch
và CSDL.
DBMS phải đảm bảo rằng giao dịch được thực thi toàn bộ và độc lập với các

giao dịch khác. Một tính chất quan trọng của giao dịch trong DBMS là tính


nguyên tử, và tính cô lập. Các giao dịch hoặc là thành công hoặc là thất bại
hoàn toàn. Điều này đảm bảo tính nhất quán của cơ sở dữ liệu.
4.

Giải thích về nghi thức khóa 2 giai đoạn nghiêm ngặt (the strict
two-phase locking protocol).
Khóa hai giai đoạn nghiêm ngặt sử dụng các khóa chia sẻ và khóa độc quyền
để bảo vệ dữ liệu. Một giao dịch phải nắm giữ tất cả các khóa cần thiết trước
khi thực thi và không giải phóng bất cứ khóa nào trước khi giao dịch kết
thúc hoàn toàn.

5.

Tính chất WAL là gì và tại sao nó quan trọng ?

Đặc tính WAL ảnh hưởng đến chiến lược logging trong DBMS. WAL là viết tắt
của Write- Ahead Log, có nghĩa là mỗi một thao tác viết lên cơ sở dữ liệu đều phải
được ghi vào log (trên đĩa) trước khi nó thực sự xảy ra trong cơ sở dữ liệu. Điều
này bảo vệ được cơ sở dữ liệu nếu có sự cố xảy ra trong quá trình giao dịch đang
thực hiện. Bằng việc ghi lại những thay đổi vào trong log trước khi những thay đổi
này thực sự diễn ra, cơ sở dữ liệu biết được phải làm lại những thao tác nào để khôi
phục sự cố. Ngược lại, nếu việc ghi vào log diễn ra sau thì cơ sở dữ liệu sẽ không
thể phát hiện được có những thay đổi nào đã xảy ra trong quá trình khôi phục sự cố




×