You are on page 1of 12

Chương 1.

1. Định nghĩa CSDL (database)?


- Một tập hợp các dữ liệu có liên quan với nhau trong một lĩnh vực cụ thể.
- Vd. Một phần CSDL trong một ứng dụng quản lý SV của một trường đại
học bao gồm các dữ liệu liên quan tới SV, các môn học và điểm thi, v.v…
2. Các chức năng của hệ quản trị CSDL
- Cung cấp cách tạo lập CSDL
- Cung cấp cách cập nhật dữ liệu, tìm kiếm và kết xuất thông tin
- Cung cấp công cụ kiểm soát điều khiển việc truy cập vào CSDL.
3. Ngôn ngữ định nghĩa dữ liệu là gì? Cho ví dụ.
- Ngôn ngữ định nghĩa dữ liệu viết tắt là DDL (Data definition language) là
ngôn ngữ máy tính được sử dụng để tạo và sửa đổi cấu trúc của các đối
tượng CSDL trong CSDL. Có thể sử dụng các câu lệnh DDL để thực hiện
các thao tác như tạo mới, sửa đổi, đổi tên, xóa…trên bảng hay thư mục.
- Ví dụ:
o CREATE là lệnh được sử dụng để tạo CSDL hoặc bảng mới.
o Lệnh ALTER được sử dụng để thay đổi nội dung trong bảng.
o DROP được sử dụng để xóa một số nội dung trong CSDL hoặc bảng.
o TRUNCATE được sử dụng để xóa tất cả nội dung khỏi bảng.
o RENAME được sử dụng để đổi tên nội dung trong CSDL.
4. Ngôn ngữ thao tác dữ liệu là gì? Cho ví dụ
- Ngôn ngữ thao tác dữ liệu viết tắt là DML (Data Manipulation Language) là
ngôn ngữ để người dùng diễn tả yêu cầu cập nhật hay khai thác thông tin,
các thao tác gồm: cập nhật (nhập, sửa, xoá dữ liệu) và khai thác (sắp xếp,
tìm kiếm, kết xuất báo cáo, …)
- Các DML được sử dụng để chèn, cập nhật và xóa dữ liệu trong cơ sở dữ
liệu.
- Ví dụ:
o CHỌN (SELECT) được sử dụng để lấy dữ liệu từ Bảng.
o INSERT được sử dụng để đẩy dữ liệu trong Bảng.
o CẬP NHẬT (UPDATE) được sử dụng để cải cách dữ liệu trong Bảng.
o XÓA (DELETE) được sử dụng để xóa dữ liệu khỏi Bảng.
- Note sự khác nhau:
 DDL xác định cấu trúc của cơ sở dữ liệu và các đối tượng của nó, chẳng
hạn như bảng, dạng xem, chỉ mục và thủ tục. Các câu lệnh DDL được sử
dụng để tạo, thay đổi và xóa các đối tượng cơ sở dữ liệu, bao gồm bảng,
dạng xem, chỉ mục và thủ tục được lưu trữ. Các câu lệnh DDL được thực
thi ngay lập tức và có giá trị vĩnh viễn, nghĩa là một khi đối tượng được
tạo, thay đổi hoặc xóa thì không thể hoàn tác thay đổi đó.
 DML được sử dụng để thao tác dữ liệu trong cơ sở dữ liệu. Các DML
được sử dụng để chèn, cập nhật và xóa dữ liệu trong cơ sở dữ liệu. Các
DML được thực thi ngay lập tức và có thể được hoàn tác bằng một câu
lệnh khôi phục.
5. Ngôn ngữ kiểm soát dữ liệu và ngôn ngữ kiểm soát transaction? cho ví dụ.
- Ngôn ngữ kiểm soát dữ liệu (DCL – Data Control Language) là một tập
hợp con của SQL và cho phép các quản trị viên cơ sơ dữ liệu cấu hình truy
cập bảo mật cho các CSDL quan hệ. Ví dụ: GRANT, REVOKE , DENY
- Ngôn ngữ kiểm soát transaction (TCL – Transaction Control Language)
là một ngôn ngữ máy tính và là một tập con của SQL, được sử dụng để điều
khiển quá trình xử lý giao dịch trong CSDL. Ví dụ: COMMIT,
ROLLBACK, AUTOCOMMIT
6. Nhiệm vụ của công cụ kiểm soát, điều khiển truy cập vào CSDL?
- Duy trì tính nhất quán của CSDL
- Khôi phục CSDL khi có sự cố
- Phát hiện và ngăn chặn sự truy cập không được phép
- Tổ chức và điều khiển các truy cập đồng thời
- Quản lí các mô tả dữ liệu
7. Các loại đối tượng sử dụng CSDL?
- Người quản trị CSDL (DBA – DataBase Administrator)
 Cấp quyền khai thác CSDL
 Xem xét việc sử dụng CSDL và thu hồi tài nguyên
 Bảo mật và thời gian đáp ứng yêu cầu của hệ thống
- Người thiết kế CSDL (Database designer)
- Người dùng cuối (End user)
 Người dùng ngẫu nhiên
 Người dùng thường xuyên
 Người dùng cho các công việc phức tạp
 Người dùng một mình
- Phân tích viên hệ thống (System Analyst) và lập trình viên ứng dụng
(Application Programmer)
8. Hệ quản trị CSDL (DBMS) là gì?
- Một gói / hệ thống phần mềm giúp cho việc tạo và duy trì CSDL trên máy
tính một cách thuận lợi.
9. Kể tên một vài DBMS thông dụng
- MySQL, MarialDB, Oracle, MongoDB, PostgreSQL, Microsoft SQL
Server,..
10.Một hệ CSDL?
- Bao gồm
 DBMS
 CSDL
 Đôi khi có thể bao gồm cả chương trình ứng dụng.
11.Siêu dữ liệu (meta-data)?
- Định nghĩa về cấu trúc dữ liệu và các ràng buộc trong catalog.
12.Ưu điểm củ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ố.
13.Mô hình dữ liệu (data model) là gì?
- Mô hình dữ liệu là tập hợp các khái niệm để mô tả dữ liệu.
- Hay: Mô hình dữ liệu (Data model): Một tập hợp các khái niệm dùng để
mô tả cấu trúc của CSDL..
14.Database designer có nhiệm vụ?
- Hiểu yêu cầu của người dùng và tạo một thiết kế đáp ứng yêu cầu.
- Xác định dữ liệu cần lưu trong CSDL và cấu trúc CSDL
15.System Analyst có nhiệm vụ?
- Xác định yêu cầu của người dùng và xây dựng bản đặc tả cho những giao
tác đáp ứng yêu cầu người dùng.
16.Application Programmer có nhiệm vụ?
- Cài đặt đặc tả thành chương trình, kiểm tra, dò lỗi, ghi sưu liệu và bảo trì
những giao tác.
17. Lược đồ (schema) là gì?
- Lược đồ là một mô tả về một tập hợp dữ liệu cụ thể, sử dụng một mô hình
dữ liệu nhất định.
18.Phân loại mô hình dữ liệu
- Phân loại mô hình dữ liệu: 3 loại
 Mô hình dữ liệu mức cao (mức khái niệm)
 Mô hình dữ liệu mức thấp (mức vật lý)
 Mô hình dữ liệu mức logic
19.Mô hình dữ liệu mức khái niệm?
- Cung cấp các khái niệm gần với cách người dùng cảm nhận về dữ liệu.
- Vd. Mô hình thực thể kết hợp (ERD: cái này là cái tụi mình vẽ nè).
20.Mô hình dữ liệu mức vật lý ?
- Mô tả cách dữ liệu được lưu trữ trên máy tính.
- Vd. File trên máy tính được mô tả bởi định dạng file, chỉ mục, …
21.Mô hình dữ liệu mức logic ?
- Mức trung gian giữa 2 mức trên để người dùng có thể hiểu nhưng cũng gần
với cách dữ liệu được tổ chức trên đĩa cứng. Mô hình này dấu đi chi tiết lưu
trữ dữ liệu trên đĩa nhưng có thể cài đặt trên máy tính.
- Vd. Mô hình quan hệ (SinhVien(msv, hoten, diachi, sdt), mô hình phân
cấp, mô hình mạng.
22.Kiến trúc 3 mức trừu tượng của một hệ CSDL? Công dụng của nó?
- Theo kiến trúc ANSI-PARC, một CSDL có 3 mức biểu diễn
 Mức vật lý
 Mức logic/quan niệm
 Mức ngoài/ view
- Ví dụ ta có mô tả dữ liệu về sinh viên như sau: Sinhvien(MaSV: char(8),
Hoten: char(20), tenKhoa: char(20), DiemTB: float)
 Biểu diễn trên là biểu diễn ở mức logic. Người lập trình thường làm việc
với CSDL tại mức này.
 Ở mức vật lý, dữ liệu về sinh viên có thể được mô tả là một khối các vùng
lưu trữ liên tục trên đĩa. Hệ CSDL dấu đi các chi tiết lưu trữ ở mức thấp
nhất. Người dùng không cần quan tâm tới các chi tiết này.
 Mức ngoài: Danh sách điểm trung bình của sinh viên thuộc Khoa, danh
sách SV (toàn trường) có điểm trung bình > 8 để cấp học bổng, … là các
biểu diễn ở mức ngoài.
- Công dụng: giúp tạo tính độc lập dữ liệu (thay đổi lược đồ ở một mức nào
đó của hệ CSDL mà không làm ảnh hưởng đến lược đồ mức cao hơn)
23.Mức vật lý trong kiến trúc 3 mức của 1 hệ CSDL?
- Sử dụng mô hình dữ liệu vật lý để mô tả cấu trúc lưu trữ vật lý của CSDL
24.Mức logic/quan niệm trong kiến trúc 3 mức trừu tượng của 1 hệ
CSDL?
- Dấu đi chi tiết về cấu trúc lưu trữ vật lý. Dùng mô hình dữ liệu logic để mô
tả cái gì được lưu trữ trong CSDL và mối quan hệ giữa các dữ liệu đó.
25.Mức view trong kiến trúc 3 mức trừu tượng của 1 hệ CSDL?
- Mô tả một phần của CSDL cho một nhóm người dùng quan tâm và dấu
đi phần còn lại của CSDL khỏi nhóm người dùng đó.
26. Phân loại Tính độc lập dữ liệu?
- Kiến trúc ba mức có thể được dùng để giải thích khái niệm độc lập dữ liệu
- Tính độc lập dữ liệu có thể định nghĩa như khả năng thay đổi lược đồ tại
một mức của một hệ CSDL mà không phải thay đổi lược đồ tại mức cao
hơn kế tiếp.
- Có hai tính độc lập dữ liệu:
 Tính độc lập vật lý
 Tính độc lập logic
27.Tính độc lập vật lý?
- Là khả năng thay đổi lược đồ vật lý mà không phải thay đổi lươc đồ quan
niệm. Vì vậy lược đồ ngoài cũng không cần phải thay đổi.
- Ví dụ từ dữ liệu Sinhvien(MaSV: string, Hoten: char(20), tenKhoa:
char(20)) ta thêm chỉ mục Hoten để tìm kiếm theo họ tên hiệu quả hơn sẽ
làm thay đổi cấu trúc lưu trữ nhưng không phải thay đổi lược đồ quan niệm.
28.Tính độc lập logic là gì?
- Là khả năng thay đổi lược đồ quan niệm mà không phải thay đổi lược đồ
ngoài hay chương trình ứng dụng.
- Ví dụ Với lược đồ khái niệm về Sinh viên ta có thể mở rộng CSDL bằng
cách thêm dữ liệu về DiemTB: float sẽ không làm thay đổi lược đồ ngoài
hay chương trình ứng dụng đang có.

Assigment:
1. Why would you choose a database system instead of simply storing data
in operating system files? When would it make sense not to use a
database system?
Dưới đây là những lý do:
a. Độc lập dữ liệu và truy cập hiệu quả.
b. Giảm thời gian phát triển ứng dụng.
c. Tính toàn vẹn và bảo mật dữ liệu.
d. Quản trị dữ liệu thống nhất.
e. Truy cập đồng thời, phục hồi sau sự cố.

Những tình huống không nên sử dụng hệ quản trị CSDL:

f. Lưu trữ dữ liệu đơn giản


g. Hạn chế tài nguyên
h. Dữ liệu tạm thời
i. Bảo mật dữ liệu
2. What is logical data independence and why is it important?
Độc lập dữ liệu logic là khả năng thay đổi sơ đồ mức khái niệm mà không
làm ảnh hưởng tới các mức khác.
j. Các khung nhìn bên ngoài
k. API hoặc chương trình bên ngoài

Ví dụ về các thay đổi trong độc lập dữ liệu logic:

l. Do tính độc lập về logic, bất kỳ thay đổi nào dưới đây sẽ không ảnh
hưởng đến mức bên ngoài.
m. Có thể thêm, sửa đổi hoặc xóa một thuộc tính, thực thể hoặc mối quan
hệ mới mà không cần viết lại các chương trình ứng dụng hiện có.
n. Hợp nhất hai bản ghi thành một.
o. Tách các bản ghi hiện có thành hai hoặc nhiều bản ghi khác nhau.

Lợi ích quan trọng:

p. Tính linh hoạt: Khi bạn cần thay đổi cấu trúc dữ liệu do một số lý do
(ví dụ: tối ưu hóa hiệu suất, thêm tính năng mới), bạn có thể làm điều
này mà không cần phải lo ngại về việc tác động đến các ứng dụng
khác.
q. Dễ dàng bảo trì: Độc lập dữ liệu logic giúp giảm thiểu sự phức tạp khi
thực hiện các cải tiến hoặc sửa lỗi trong CSDL. Bạn có thể tập trung
vào việc cải thiện dữ liệu mà không ảnh hưởng đến toàn bộ hệ thống.
r. Phân tách công việc: Có thể có các nhóm làm việc riêng biệt trên cấu
trúc CSDL và ứng dụng mà không cần phối hợp quá mức. Điều này
giúp tăng tốc độ phát triển và cho phép tách biệt trách nhiệm.
s. Tích hợp dễ dàng: Khi bạn muốn tích hợp dữ liệu từ nhiều nguồn khác
nhau hoặc thay đổi hệ thống, độc lập dữ liệu logic giúp đơn giản hóa
quá trình tích hợp.
3. Explain the difference between logical and physical data independence.

Độc lập dữ liệu trong hệ quản trị CSDL là một thuộc tính giúp thay đổi lược
đồ CSDL ở một mức mà không cần phải thay đổi lược đồ ở các mức cao hơn.
Có 2 loại độc lập dữ liệu: độc lập dữ liệu mức vật lí và độc lập dữ liệu mức
logic. Sự khác nhau giữa 2 loại:

t. Độc lập dữ liệu logic liên quan đến khả năng thay đổi cấu trúc logic
của CSDL mà không ảnh hưởng đến các ứng dụng sử dụng dữ liệu đó.
Nó cho phép thay đổi cách tổ chức, tương tác và truy vấn dữ liệu mà
không cần thay đổi mã nguồn của các ứng dụng.
Ví dụ: Giả sử bạn có một ứng dụng quản lý khách hàng và
CSDL lưu trữ thông tin về tên, địa chỉ và số điện thoại của khách
hàng. Nếu bạn quyết định thay đổi cấu trúc CSDL để thêm trường
mới như "email", các thay đổi này không nên ảnh hưởng đến cách
ứng dụng hoạt động.
u. Độc lập dữ liệu vật lý liên quan đến khả năng thay đổi cách dữ liệu
được lưu trữ trên các thiết bị lưu trữ mà không ảnh hưởng đến các ứng
dụng sử dụng dữ liệu. Điều này cho phép tối ưu hóa CSDL cho hiệu
suất tốt hơn mà không cần sửa đổi ứng dụng.
Ví dụ: Nếu ban đầu bạn lưu trữ dữ liệu trên ổ cứng, nhưng sau
đó bạn quyết định chuyển sang hệ thống lưu trữ dựa trên đám mây,
việc này không nên yêu cầu sửa đổi mã nguồn của ứng dụng.

Tóm lại, độc lập dữ liệu logic liên quan đến cấu trúc logic của dữ liệu trong
CSDL, trong khi độc lập dữ liệu vật lý liên quan đến cách dữ liệu được lưu trữ và
quản lý trên các thiết bị vật lý. Cả hai khái niệm này đều giúp tăng tính linh hoạt và
quản lý dễ dàng trong hệ thống CSDL.

4. What are the responsibilities of a DBA? If we assume that the DBA is never
interested in running his or her own queries, does the DBA still need to
understand query optimization? Why?

- Database Administrator (DBA) là một chuyên gia quản trị CSDL, có trách nhiệm
quản lý và bảo vệ CSDL của một tổ chức hoặc doanh nghiệp. Các nhiệm vụ của
một DBA bao gồm thiết kế, triển khai, vận hành, bảo trì, sao lưu và khôi phục
CSDL.

- Dù DBA không quan tâm đến việc thực hiện truy vấn cá nhân, DBA vẫn cần hiểu
về tối ưu hóa truy vấn. Điều này giúp đảm bảo CSDL hoạt động hiệu quả, ổn định
và đáp ứng tốt cho các ứng dụng khác.

5. Scrooge McNugget wants to store information (names, addresses, descriptions


of embarrassing moments, etc.) about the many ducks on his payroll. Not
surprisingly, the volume of data compels him to buy a database system. To save
money, he wants to buy one with the fewest possible features, and he plans to run
it as a stand-alone application on his PC clone. Of course, Scrooge does not plan to
share his list with anyone. Indicate which of the following DBMS features Scrooge
should pay for; in each case, also indicate why Scrooge should (or should not) pay
for that feature in the system he buys.
1. A security facility.
 Cần thiết. Vì như Scrooge McNugget nói, anh ấy không có kế hoạch chia
sẻ danh sách của mình với bất cứ ai khác, đồng nghĩa với việc không
muốn bị truy cập và thay đổi dữ liệu của mình. Do đó mà một cơ sở an
ninh, sẽ cung cấp những đặc điểm cho phép anh ấy quản lí thông tin của
mình.
2. Concurrency control.
 Không cần thiết. Vì như Scrooge McNugget nói, anh ấy chỉ chạy nó trên
PC của riêng mình và không có ý định chia sẻ dữ liệu.
3. Crash recovery.
 Cần thiết. Vì phục hồi sự cố luôn cần thiết cho bất cứ CSDL nào, ví dụ bị
ngắt điện đột ngột trong lúc Scrooge sử dụng hệ thống thì dữ liệu sẽ
không bị mất đi.
4. A view mechanism.
 Cần thiết. Vì nó giúp người dùng tạo chế độ xem tùy chỉnh của dữ liệu,
anh ấy có thể sử dụng để sắp xếp và trình bày dữ liệu theo nhiều cách
khác nhau.
5. A query language.
 Cần thiết. Vì giúp anh ấy phân tích những thông tin dữ liệu của mình.
Nếu không có ngôn ngữ truy vấn, anh ta sẽ phải thao tác trực tiếp dữ liệu
bằng mã lập trình, việc này có thể cồng kềnh và dễ xảy ra lỗi.

6. Describe the structure of a DBMS. If your operating system is upgraded to


support some new functions on OS files (e.g., the ability to force some
sequence of bytes to disk), which layer(s) of the DBMS would you have to
rewrite to take advantage of these new functions?

Mô tả kiến trúc của DBMS:


 Query Optimization and Execution
 Relational Operators
 Files and Access Methods
 Buffer Management
 Disk Space Management

Để tận dụng lợi thế của các phương thức mới, tầng Disk Space Management
có thể được viết lại

You might also like