Tải bản đầy đủ (.pdf) (9 trang)

Cơ sở dữ liệu - bài 2 ppsx

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 (115.59 KB, 9 trang )

Cơ sở dữ liệu
ThS. Lê Văn Lợi

Bai-2.doc *** Trang 1

B
B
à
à
i
i


2
2



Bài này nêu các kiến trúc và nguyên tắc cơ bản làm nền tảng ñể chúng ta hiểu bản
chất của CSDL và HQT CSDL.
1./ Kin trúc CSDL

Theo ANSI/SPARK, kiến trúc của một CSDL gồm 3 mức như trong hình vẽ sau:















Hình 1: Kiến trúc CSDL 3 lớp

Mức ngoài: tương ứng với khuông nhìn ñơn lẻ của từng người dùng. Người dùng gồm
lập trình viên, người dùng thông thường và DBA.

Mức ngoài thường gắn với ngôn ngữ lập trình, ngôn ngữ ñịnh nghĩa dữ
liệu (data definition language – DDL), ngôn ngữ ñiều khiển dữ liệu (data
manipulation language – DML). Chúng ta sẽ trở lại DDL và DML trong
các phần tiếp theo.

Mức khái niệm: là một biểu diễn dữ liệu mang tính toàn diện của CSDL.

Tương ứng với mức này người ta thường ñịnh nghĩa lược ñồ mức khái
niệm (Conceptual Schema).

Mức lưu trữ: mức gần với lưu trữ vật lý nhất.

Để nâng cao tính hiệu dụng, DBA và các lập trình viên ứng dụng có kinh
nghiệm sẽ quan tâm hơn tới mức này: ñịnh nghĩa chỉ mục, các phương
pháp lập chỉ mục. Do khuôn khổ của giáo trình, ta sẽ không ñề cập ñến
các kỹ thuật này.

2./ Vai trò ca DBA


■ Thiết lập lược ñồ mức khái niệm
■ Định nghĩa các chỉ mục, phương pháp lập chỉ mục
M
ức ngo
ài:


Khuông nhìn riêng của từng
người dùng
M
ức khái niệm:


Khuông nhìn tổng thể
M
ức l
ưu tr


Cơ sở dữ liệu
ThS. Lê Văn Lợi

Bai-2.doc *** Trang 2

■ Liên kết với người dùng
■ Xác lập hệ thống bảo mật thông tin và các qui tắc toàn vẹn dữ liệu
■ Xác lập các qui trình sao lưu thông tin và phục hồi dữ liệu khi có sự cố
■ Giám sát hệ thống CSDL, ñộ hiệu dụng và quản lý các thay ñổi của người dùng

3./ Vai trò ca HQT CSDL


HQT CSDL là giao diện giữa người dùng và CSDL. HQT CSDL che các chi tiết và
chỉ ñể người dùng nhìn thấy dữ liệu dưới dạng logic. Một số các chức năng cần có của
HQT CSDL.

■ Định nghĩa dữ liệu

(SV ghi chép tại lớp)

■ Điều khiển dữ liệu

(SV ghi chép tại lớp)

■ Bảo mật dữ liệu và ñảm bảo tính toàn vẹn

(SV ghi chép tại lớp)

■ Phục hồi dữ liệu và xử lý tranh chấp

(SV ghi chép tại lớp)

■ Từ ñiển dữ liệu

(SV ghi chép tại lớp)

■ Đảm bảo tính hiệu dụng

(SV ghi chép tại lớp)



Cơ sở dữ liệu
ThS. Lê Văn Lợi

Bai-2.doc *** Trang 3

4./ Kin trúc Client/Server















Hình 2: Kiến trúc Client/Server của một hệ CSDL

Toàn bộ kiến trúc trong các phần trước ñương nhiên là ñể phục vụ cho các ứng dụng
về CSDL. Đứng về phương diện tổng thể, một hệ thống CSDL có thể ñược coi như
một kiến trúc gồm 2 phần: Client (mặt trước - frontend) và Server (mặt sau -
backend).

■ Server chính là HQT CSDL. Phần này hỗ trợ tất cả các phép toán lên CSDL
như trong phần trên ñây ñã ñề cập: ñịnh nghĩa dữ liệu, ñiều khiển dữ liệu, bảo

mật và toàn vẹn dữ liệu.

■ Client chính là các chương trình ứng dụng kết nối với Server (HQT CSDL).
Các chương trình ứng dụng có thể ñược viết mới hoặc tích hợp sẵn.

Các ứng dụng có thể ñược chia ra thành 2 lớp:

■ Phần mềm do lập trình viên viết (phần mềm viết mới). Các lập trình viên có thể
sử dụng một số ngôn ngữ như Java, C, COBOL, VisualBasic, ñể viết các ứng
dụng có kết nối với CSDL

■ Phần mềm do chính nhà cung cấp HQT CSDL viết (phần mềm tích hợp sẵn).
Phần này chủ yếu là các công cụ ñể kết nối với CSDL như: Bộ xử lý ngôn ngữ
truy vấn, Tạo báo cáo, Các công cụ tiện ích,

Người dùng cuối
CT ứng dụng
Client

HQT CSDL
Server
CSDL
Cơ sở dữ liệu
ThS. Lê Văn Lợi

Bai-2.doc *** Trang 4

5./ X lý phân tán

Xứ lý phân tán là gì? Nhiều máy tính nối mạng với nhau cùng xử lý một công việc.

(Xứ lý song song có thể coi như một trường hợp ñặc biệt của xứ lý phân tán).

Một số biến thể của xử lý phân tán:


















Hình 3: CT Server và Client chạy trên hai máy khác nhau






















Hình 4: Một máy chủ, nhiều máy Client
CT ứng dụng
Máy Client
HQT CSDL
Máy Server

Các máy Client


Server
Máy Server


Cơ sở dữ liệu
ThS. Lê Văn Lợi

Bai-2.doc *** Trang 5























Hình 5: Nhiều máy Server và nhiều máy Client

Mô hình trong Hình 1 chính là mô hình ñược sử dụng rộng rãi hiện nay.

Trong Hình 5, có hai trường hợp cần ñược phân biệt:

■ Trên các máy chủ, các HQT CSDL hoàn toàn ñộc lập với nhau (có thể cùng loại
nhưng chúng chạy các CSDL hoàn toàn khác nhau). Trường hợp này ñồng nghĩa

với việc một chương trình Client có thể truy xuất nhiều CSDL trên nhiều máy.

■ Trên các máy chủ, các HQT CSDL chạy ñồng bộ với nhau cùng một CSDL. Đây
có thể ñược coi như một cơ chế sao lưu phân tán CSDL (replication). Trường
hợp này ñược gọi là hệ thống CSDL phân tán.

6./ Các qui tc ca TS. Codd v HQT CSDL quan h

Như thế nào ñược gọi là một HQT CSDL quan hệ? TS. Codd ñưa ra 12 qui tắc, qua
ñó các HQT CSDL quan hệ phải tuân thủ. Hay nói cách khác, một HQT CSDL muốn
ñược gọi là HQT CSDL quan hệ khi nó thỏa mãn 12 qui tắc ñã ñề ra. Điểm ñặc biệt là
trên thực tế chưa có HQT CSDL quan hệ nào thực hiện ñược ñầy ñủ 12 qui tắc này.
Tuy nhiên, tác giả liệt kê ra 12 qui tắc này ñể chúng ta cùng tham khảo và có thể coi
ñó như là một cách ñể hiểu thêm CSDL quan hệ.

Các máy Client

Các máy Server
Server

Server
Cơ sở dữ liệu
ThS. Lê Văn Lợi

Bai-2.doc *** Trang 6

Qui tắc #1. Dữ liệu ñược thể hiện dưới dạng bảng
• Tập hợp các bảng tạo thành CSDL và dữ liệu ñược trình bày dưới dạng bảng; dữ
liệu không ñược trình bày bằng bất cứ phương thức nào khác.
• Một bảng (cũng ñồng nghĩa với một quan hệ hoặc một thực thể) là nhóm dữ liệu

có mối quan hệ với nhau dưới dạng các dòng và các cột.
• Mỗi một dòng (cũng ñồng nghĩa với một bản ghi, một tuple) mô tả một ñơn vị dữ
liệu (người, vật, ñối tượng nói chung) trong bảng.
• Mỗi một cột (còn gọi là trường, thuộc tính) mô tả một ñặc trưng của dữ liệu trong
bảng
• Mỗi một giá trị dữ liệu là ñiểm dữ liệu giao nhau giữa hàng và cột
• Mỗi một giá trị là một nguyên tử - nghĩa là không có hai giá trị trở lên ñối với một
ñiểm giao giữa hàng và cột
• Không xếp hạng bảng và không có thứ tự ñối với bảng
• Mối quan hệ giữa các bảng chỉ mang tính logic, không có quan hệ vật lý.
Qui tắc #2. Dữ liệu ñược truy cập một cách logic
• CSDL quan hệ không tham chiếu dữ liệu bằng các vị trí vật lý. Sẽ không có khái
niệm dòng thứ năm trong một bảng.
• Mỗi một giá trị bất kỳ trong bảng luôn luôn có thể truy xuất bằng:
1. một bảng;
2. giá trị khóa hoặc giá trị duy nhất; và
3. một cột
Qui tắc #3. Giá trị Null ñược xử lý một cách thống nhất là “không biết”
• Null luôn luôn ñược hiểu là một giá trị không biết
• Null có nghĩa là không có giá trị nào ñược ñưa vào và giá trị ñó không ñược biết
(HQT CSDL phải có cơ chế ñặc biệt ñể lưu)
• ‘Không biết’ không ñồng nghĩa với trắng hay số không (0).
• Ví dụ, một mặt hàng nào ñó chưa có giá không ñồng nghĩa với việc mặt hàng ñấy
là miễn phí
• Null cần ñược xử lý ñặc biệt, nếu không sẽ dẫn ñến nhầm lẫn
• Trong một biểu thức số học có các số hạng là Null thì kết quả luôn luôn là Null
(Vd., 2 + NULL = NULL)
• So sánh Null với bất cứ giá trị nào cũng luôn luôn cho kết quả Null
Qui tắc #4. CSDL quan hệ phải tự mô tả (Database is Self-Describing)
• Ngoài dữ liệu người dùng, CSDL quan hệ còn có dữ liệu về chính nó

• Có hai loại bảng trong HQT CSDL quan hệ: các bảng dữ liệu người dùng và các
bảng dữ liệu hệ thống mô tả về cấu trúc của CSDL
• Siêu dữ liệu (Metadata) là dữ liệu mô tả cấu trúc của chính CSDL ñó trong ñó bao
gồm ñịnh nghĩa của các ñối tượng (bảng, chỉ mục, store procedure, ) và mô tả
các quan hệ giữa các ñối tượng ñó.
• Tập hợp các bảng hệ thống cũng có tên gọi là Catalog hệ thống hoặc từ ñiển dữ
liệu.
• Bảng hệ thống cũng ñược truy cập như các bảng thông thường
Cơ sở dữ liệu
ThS. Lê Văn Lợi

Bai-2.doc *** Trang 7

Qui tắc #5. Chỉ một ngôn ngữ duy nhất ñược sử dụng ñể giao tiếp với HQT
CSDL
• Chỉ duy nhất một ngôn ngữ dùng ñể giao tiếp với HQT CSDL
• Ngôn ngữ này phải hỗ trợ các phép toán quan hệ: các phép toán thay ñổi dữ liệu
(data modifications) (VD. SELECT, INSERT, UPDATE, DELETE), các phép
toán ñịnh nghĩa dữ liệu (VD. CREATE, ALTER, DROP) và các phép toán quản
trị (VD. GRANT, REVOKE, DENY, BACKUP, RESTORE)
• Structured Query Language (SQL) là chuẩn mặc nhiên của ngôn ngữ CSDL quan
hệ
• SQL không phải là ngôn ngữ thủ tục mà là ngôn ngữ khai báo; Nó cho phép người
dùng biểu diễn những gì họ muốn và HQT CSDL sẽ thực hiện các yêu cầu ñó chứ
không cần mô tả là phải thực hiện những yêu cầu ñó như thế nào.
Qui tắc #6. Cho phép xem dữ liệu bằng nhiều phương pháp khác nhau
• CSDL quan hệ không chỉ giới hạn việc trình diễn dữ liệu từ các bảng gốc
• Khuông nhìn gồm các bảng ảo, các bảng trừu tượng ñược xây dựng từ các bảng
gốc
• Khuông nhìn (View) là một phương thức quan sát dữ liệu ñến một hoặc nhiều

bảng
• Khuông nhìn (View) không phải là bản sao của bảng
• Khi một View ñã ñược tạo ra, nó ñược xử lý giống hệt như bảng
• Nếu ta thay ñổi dữ liệu của một View, thì dữ liệu ở bảng gốc cũng bị thay ñổi (tuy
nhiên, có một số qui tắc nhất ñịnh vì không phải trường nào trong một view cũng
có thể sửa ñổi ñược)
• Views cho phép tạo ra các bảng mới theo ý muốn từ các bảng gốc
• VÍ DỤ: Bằng cách tạo ra một view, chúng ta có thể che các dữ liệu nhạy cảm ñối
với một lớp ñối tượng người dùng
• Views cho phép ta tạo ra các bảng phức tạp theo các qui tắc tác nghiệp từ các
bảng gốc ñơn giản bằng toán tử JOIN
Qui tắc #7. Hỗ trợ các phép toán quan hệ và các phép toán tập hợp
• Các dòng trong bảng ñược xử lý như là các tập hợp ñối với các toán tử ñiều khiển
dữ liệu (SELECT, INSERT, UPDATE, DELETE)
• CSDL quan hệ phải hỗ trợ các toán tử của ñại số quan hệ (selection, projection; &
join ) và toán tử tập hợp (union, intersection, division, và difference)
• Các toán tử tập hợp và các toán tử ñại số quan hệ sẽ tạo ra các bảng mới
Qui tắc #8. Tính ñộc lập với dữ liệu lưu dạng vật lý (Physical Data Independence)
• Các ứng dụng có truy cập CSDL quan hệ sẽ không bị ảnh hưởng gì khi cấu trúc
bên trong của CSDL thay ñổi. Người dùng chỉ biết ñến các bảng, không cần quan
tâm ñến việc các bảng ñấy ñược tổ chức như thế nào trên ñĩa.
• Các ứng dụng chỉ cần ñịnh nghĩa dữ liệu dưới dạng logic (kiểu dữ liệu và ñộ dài);
chúng không cần biết ñến việc lưu dữ liệu như thế nào (data type and length);

Cơ sở dữ liệu
ThS. Lê Văn Lợi

Bai-2.doc *** Trang 8

Qui tắc #9. Tính ñộc lập dữ liệu logic (Logical Data Independence)

• Tính ñộc lập dữ liệu là quan hệ giữa các bảng có thể thay ñổi mà không làm ảnh
hưởng ñến chương trình ứng dụng sử dụng các bảng ñó.
• Lược ñồ CSDL, cấu trúc của các bảng có thể thay ñổi mà không làm thay ñổi ứng
dụng
Qui tắc #10. Tính toàn vẹn dữ liệu cần ñược ñảm bảo trong một HQT CSDL
quan hệ
• Để ñược gọi là một HQT CSDL quan hệ, hệ ñó phải ñảm bảo tính toàn vẹn dữ
liệu. Nói cách khác ñảm bảo tình toàn vẹn dữ liệu là trách nhiệm của HQT CSDL,
không phải là trách nhiệm của chương trình ứng dụng
• Toàn vẹn dữ liệu là tính thống nhất và tính chính xác của dữ liệu. Nói cách khác
CSDL không có dữ liệu “rác”.
• Có 3 dạng toàn vẹn dữ liệu: toàn vẹn thực thể, toàn vẹn miền và toàn vẹn tham
chiếu
• Trong CSDL, tính toàn vẹn có thể ñược thực hiện bằng các qui trình thủ tục hoặc
các qui trình khai báo
• Tính toàn vẹn thực hiện theo thủ tục thực chất là viết các chương trình ñể ñảm bảo
các ràng buộc
Qui tắc #11. Hỗ trợ xử lý phân tán (Supports Distributed Operations)
• Dữ liệu trong CSDL quan hệ có thể lưu tập trung hoặc phân tán
• Người dùng có thể liên kết dữ liệu từ các bảng ñặt trên các máy chủ khác nhau
(gọi là truy vấn phân tán) hoặc ñặt từ các CSDL khác nhau (gọi là truy vấn hỗn
hợp)
• Tính toàn vẹn dữ liệu cần luôn luôn ñược ñảm bảo dù cho dữ liệu gồm nhiều bản
sao và phân tán nhiều nơi
Qui tắc #12. Tính toàn vẹn dữ liệu không thể bị phá vỡ
• Ngoài các phép toán cơ bản ñã nêu, HQT CSDL phải ñảm bảo là không có con
ñường nào khác có thể phá vỡ tính toàn vẹn dữ liệu.
• HQT CSDL phải ñảm bảo là không thể dùng ngôn ngữ máy ñể có thể phá vỡ ñược
tính toàn vẹn dữ liệu


7./ Bài tp

Bài tập 2.1 - Giải thích các thuật ngữ:

■ Client
■ Server
■ Backend
■ Frontend
■ SQL
■ Xứ lý phân tán
Cơ sở dữ liệu
ThS. Lê Văn Lợi

Bai-2.doc *** Trang 9

Bài tập 2.2 - Nêu lợi ích của xử lý phân tán

Bài tập 2.3 - Giải thích vai trò của DBA

Bài tập 2.4 - Giải thích vai trò của HQT CSDL

Bài tập 2.5 - Nêu ñặc trưng cơ bản của CSDL mô hình quan hệ





×