Cơ sở dữ liệu phân tán
TS. Hồ Bảo Quốc
Đại học khoa học tự nhiên TP.HCM
Nội dung
! Giới thiệu tổng quan
! Kiến trúc khách/chủ (client/server)
! Các khái niệm căn bản của DDB
! Quản trị giao tác phân tán
! Xử lý truy vấn phân tán
! An tòan và bảo mật
! Khôi phục sau sự cố
Tài liệu tham khảo
! Nguyên lý các hệ cơ sở dữ liệu phân tán
M. Tamer Özsu, Patrick Valduriez
Biên dịch: Trần Đức Quang
! Principles of Distributed Database Systems
M. Tamer ozsu, Patrick Valduriez
! Database systems (Design, implementation, and
management
Peter Rob, Carlos Coronel
! An introduction to Database systems
C. J. Date
Giới thiệu tổng quan
Lịch sử phát triển
! 1970 : Hệ thống quản lý dữ liệu tập trung
! 1980 : Nhu cầu phân tán
! Xã hội
! Doanh nghiệp phân tán
! Công nghệ
! Máy tính trở thành công cụ quen thuộc
! Thông tin trở thành hàng hóa (Data WareHouse, Data Mining)
! Hàng tỉ khách (clients) (cố định/di động) và hàng triệu chủ (server)
! Sự phát triển của bộ nhớ : càng lớn, càng nhanh, càng rẽ
! Sự phát triển của máy tính
! Sự phát triển của mạng
Sự phát triển của các hệ DBMS
Mô
hình
Hiệu
suất
Câu truy
vấn
Tính mở
rộng
Mạng (70) Kém Tốt kém Không
Quan hệ (80) Tốt Kém ? Tốt Không
Đối tượng (90) Tốt Tốt Tốt Có
Đối tượng –
Quan hệ (00)
Tốt Tốt Tốt có
Sự phát triển của các ứng dụng
! Transactional : OLTP : On Line Transaction
Processing
! Database Server : OLCP : On line Complex
Processing
! Data WareHouse : OLAP (On Line Analytical
Processing)
Tại sao cần các hệ phân tán
! Các đặc trưng chính
! Phân tán dữ liệu trên các máy tính độc lập
! Truyền thông qua mạng (hữu tuyến/vô tuyến)
! Ưu điểm
! Tương tác
! Hợp tác và chia sẻ tài nguyên
! Ích lợi
! Giảm chi phí
! Tăng hiệu suất và tính đáp ứng
Hệ CSDL phân tán là gì ?
! CSDL phân tán là một tập hợp nhiều CSDL có
liên hệ logic và được phân bổ trên một mạng máy
tính
! Cơ sở dữ liệu + mạng máy tính
! Nguyên lý căn bản : Đối với người dùng, một hệ
thống phân tán có vẽ giống như một hệ tập trung với
một server logic
Các đặc trưng
1. Độc lập cục bộ
2. Không phụ thuộc vào một nút trung tâm
3. Tính đáp ứng cao
4. Độc lập vị trí vật lý
5. Độc lập phân mảnh (fragment)
6. Độc lập nhân bản (replica)
7. Xử lý câu truy vấn phân tán
8. Quản lý giao tác phân tán
9. Độc lập phần cứng
10. Độc lập hệ điều hành
11. Độc lập mạng
12. Độc lập hệ quản trị cơ sở dữ liệu
Các vấn đề cần giải quyêt
! Điều khiển dữ liệu ngữ nghĩa
(Semantic Data Control)
! Quản lý giao tác phân tán
(Distributed Transaction Management)
! Xử lý câu truy vấn phân tán
(Distributed Query Process)
! Điều khiển truy xuất đồng thời
(Concurrence Control)
! Điều khiển khôi phục sau sự cố (Recovery)
Kiến trúc Client/Server
Kiến trúc khách/chủ (client/server)
! Định nghĩa :
Kiến trúc tính tóan trong
đ
ó các xử lý được phân bổ
trên máy chủ (server) và các máy khách/trạm (client)
một cách hợp lý nhằm khai thác tối
đ
a khả n
ă
ng của
hệ thống và t
ă
ng tính bảo mật của dữ liệu trên server
! Phân chia chức năng
! Chức năng cho «"khách"»
! Chức năng của «"chủ"»
! Mô hình hai lớp/nhiều lớp ( two level/ n-tier)
Kiến trúc 2 lớp
Giao diện người
dùng
Chương trình ứng
dụng
DBMS ở máy khách
Phần mềm truyền thông
Hệ
điều
hành
Phần mềm truyền thông
Quản lý tự điển dữ liệu
Tối ưu hóa câu truy vấn
Quản lý giao tác
Quản lý khôi phục sau sự cố
Hệ
điều
hành
Quan hệ
kết quả
Câu truy vấn SQL
Phân lớp chương trình ứng dụng
! Chương trình liên quan đến giao diện (interface)
! Thể hiện và kiểm sóat Form màn hình
! Tạo báo cáo (report)
! Hội thọai người – máy
! Chương trình tính tóan chức năng
! Chương trình truy cập dữ liệu của CSDL
Các giải pháp khách chủ
! Giải pháp 1
Giao diện
Tính tóan
chức năng
Truy cập dữ liệu
Client
Server
SQL
KQ
Các giải pháp khách/chủ
! Giải pháp 2
Giao diện
Tính tóan
Truy cập dữ liệu
SQL
KQ
client
Server
Các giải pháp khách chủ
! Giải pháp 3
Giao diện
Tính tóan 1
Tính tóan 2
Truy cập dữ liệu
SQL
KQ
Client
Server
Các giải pháp phần mềm
! Microsoft
! Windows Server
! SQL – Server
! Visual Studio
! IBM
! OS2
! DB2
! Java
! Open Source
! Linux
! MySQL
! Java
Kiến trúc 3 lớp (3-tier)
client
Web
Server
DB
Server
DB
URL
html
Các thành phần của DDBMS
USER
User Processor
User Interface
Handler
Semantic Data
controller
Global Query
Optimizer
Global Execution
Monitor
External
Shema
Global
Conceptual
Scheme
Local Query
Processor
Local
Conceptual
Scheme
Local Recovery
Manager
Runtime Support
Processor
Local internal
Scheme
User
processor
Data
Processor