You are on page 1of 81

KHOA CÔNG NGHỆ THÔNG TIN

TRƯỜNG ĐẠI HỌC KỸ THUẬT – CÔNG NGHỆ CẦN THƠ

Chương 2
Part 1

Distributed Databases
TRẦM VŨ KIỆT
Nội dung
1. Các khái niệm dữ liệu
2. Kiến trúc dữ liệu cục bộ và phân tán
3. Các lựa chọn phân tán dữ liệu
4. Phân mảnh dữ liệu

HTTPS://CTUET.EDU.VN/ 2
Nội dung
1. Các khái niệm dữ liệu
2. Kiến trúc dữ liệu cục bộ và phân tán
3. Các lựa chọn phân tán dữ liệu
4. Phân mảnh dữ liệu

HTTPS://CTUET.EDU.VN/ 3
Các khái niệm dữ liệu
•Cơ sở dữ liệu - Database – DB
•Là tập hợp các dữ liệu (data)
•Được tổ chức và sắp xếp nhằm thực hiện chức
năng tìm kiếm (search) và thu thập (retrieval) tại
một máy tính
•Lưu trữ DB trên không gian lưu trữ thứ cấp
(secondary storage)

HTTPS://CTUET.EDU.VN/ 4
Các khái niệm dữ liệu
•Phân tán (distributed) là khi một tác vụ được thực
hiện bởi mạng các máy tính và thông tin được chia
sẻ và lưu trữ tại các máy tính này
•Dữ liệu phân tán – Distributed Database – DDB là
khi một tác vụ dữ liệu được thực hiện bởi mạng
các máy tính (mạng vật lý và mạng ảo) và thông
tin được chia sẻ và lưu trữ tại các máy tính này

HTTPS://CTUET.EDU.VN/ 5
Các khái niệm dữ liệu
•Mô hình dữ liệu – Data Model – DM
•Cấu trúc dữ liệu – Data Structure: Mô tả dữ liệu sẽ
được lưu như thế nào (DB’s schema, schema)
•Nội dung lưu trữ (data content): mô tả giá trị dữ
liệu được lưu

HTTPS://CTUET.EDU.VN/ 6
Các khái niệm dữ liệu
•Ngôn ngữ mô hình hóa dữ liệu – Data Modeling
Language – DML: Ngôn ngữ dùng để tạo và điều
chỉnh DM
•Siêu dữ liệu (metadata): định nghĩa “dữ liệu từ dữ
liệu” (data from data), tức là tất cả thông tin liên
quan đến dữ liệu trừ nội dung của nó

HTTPS://CTUET.EDU.VN/ 7
Siêu dữ liệu (metadata)
Siêu dữ liệu là dạng dữ liệu mô tả thông tin chi tiết
về dữ liệu. Trong cơ sở dữ liệu, metadata là các sửa
đổi dạng biểu diễn khác nhau của các đối tượng
trong cơ sở dữ liệu. Trong cơ sở dữ liệu quan hệ thì
metadata là các định nghĩa của bảng, cột, cơ sở dữ
liệu, view và nhiều đối tượng khác.

HTTPS://CTUET.EDU.VN/ 8
Các khái niệm dữ liệu
•Data CRUD operations: create, retrieve, update,
delete
•Kiểm soát truy xuất đồng thời (concurrent access)
và vận hành xung đột (conflicting operations)

HTTPS://CTUET.EDU.VN/ 9
CRUD

HTTPS://CTUET.EDU.VN/ 10
CRUD

HTTPS://CTUET.EDU.VN/ 11
Kiểm soát truy xuất đồng thời
(concurrent access)
•Kiểm soát truy cập đồng thời là một phương pháp
dùng để đảm bảo là các giao dịch cơ sở dữ liệu
được thực hiện một cách an toàn (tức là không bị
mất hay sai lệch dữ liệu).
•Kiểm soát truy cập đồng thời được đặc biệt chú
trọng trong các hệ quản trị cơ sở dữ liệu.

HTTPS://CTUET.EDU.VN/ 12
Vận hành xung đột
(conflicting operations)
Hai hoạt động được cho là xung đột nếu tất cả các
điều kiện thỏa mãn:
•Chúng thuộc các giao dịch khác nhau
•Chúng hoạt động trên cùng một mục dữ liệu
•Ít nhất một trong số chúng là hoạt động ghi

HTTPS://CTUET.EDU.VN/ 13
Các khái niệm dữ liệu
•Truy vấn (query)
•Phần mềm chuyên biệt ở dạng thư viện, một phần
mềm tách rời hoặc là phần mềm bao gồm nhiều
thư viện và các phần mềm con
•Cho phép người dùng thực thi các tác vụ trên một
DB được gọi là hệ quản trị cơ sở dữ liệu (Database
Management System – DBMS)
•DB-client, DB-Server
HTTPS://CTUET.EDU.VN/ 14
DB-client, DB-Server

HTTPS://CTUET.EDU.VN/ 15
Các khái niệm dữ liệu
•Môi trường dữ liệu (database environment – DBE):
mô tả một hoặc nhiều DB với ứng dụng, thư viện,
dịch vụ DBMS cần thiết cho việc thao tác và vận
hành
•Kiến trúc DBE: dịch vụ (services), thành phần
(components), hệ thống con (subsystems), vị trí
(sites)

HTTPS://CTUET.EDU.VN/ 16
Database Environment

HTTPS://CTUET.EDU.VN/ 17
Các khái niệm dữ liệu
•Dịch vụ: truy vấn, giao diện
•Thành phần, hệ thống con (component or
subsystem - COS): nhóm logic, nhóm vật lý
•Vị trí: nơi lưu trữ dữ liệu (logic và vật lý)

HTTPS://CTUET.EDU.VN/ 18
Dịch vụ truy vấn (Query Service
•Dịch vụ truy vấn Cơ sở dữ liệu thông minh được sử
dụng để truy xuất thông tin từ cơ sở dữ liệu bên
ngoài bằng cách sử dụng truy vấn SQL và cập nhật
hoặc tạo các biến quy trình bằng cách sử dụng kết
quả truy vấn.
•Hoạt động này cũng cho phép bạn tạo bảng và
chọn, chèn và cập nhật các hàng trong bảng cơ sở
dữ liệu từ mô hình quy trình của bạn.
HTTPS://CTUET.EDU.VN/ 19
Nội dung
1. Các khái niệm dữ liệu
2. Kiến trúc dữ liệu cục bộ và phân tán
3. Các lựa chọn phân tán dữ liệu
4. Phân mảnh dữ liệu

HTTPS://CTUET.EDU.VN/ 20
HTTPS://CTUET.EDU.VN/ 21
Kiến trúc DBE tối giản

•Drd-S: data read service


•Semi-S: semantic integrity service
•Sec-S: security service
HTTPS://CTUET.EDU.VN/ 22
Kiến trúc DBE cơ bản

•Drw-S: data write service


HTTPS://CTUET.EDU.VN/ 23
Kiến trúc DBE kỳ vọng

•Qreq: Query request service;


•Qopt-S: Query optimization service;
•Exec-S: Execution service;
•Eopt-S: Execution optimization service;
•UI-S: User Interface Service

HTTPS://CTUET.EDU.VN/ 24
Kiến trúc DBE kỳ vọng có phân lớp

HTTPS://CTUET.EDU.VN/ 25
Kiến trúc dịch vụ DBMS cơ bản

•Tran-S: Transaction
management,
•Lock-S: Locking,
•Dead-S: Deadlock handling,
•Rec-S: Fallback and Recovery

HTTPS://CTUET.EDU.VN/ 26
Từ CDBE đến DDBE
•CDBE: centralized DBE, DDBE: distributed DBE

HTTPS://CTUET.EDU.VN/ 27
Từ CDBE đến DDBE
•Giả sử một tổ chức có 3 DBE tập trung:
• Một hệ DBMS chạy trên máy chủ IBM Mainframe, sử
dụng DB2, lưu thông tin tổng thể của tổ chức hỗ trợ các
tác vụ quản lý nhân sự, quản lý tiền lương và quản lý
thông tin khách hàng
• Một DBMS chạy trên máy chủ Unix, sử dụng Oracle, lưu
thông tin quản lý dự án
• Một DBMS chạy trên máy chủ Windows, sử dụng SQL
Server, lưu thông tin quản lý sản xuất
HTTPS://CTUET.EDU.VN/ 28
Từ CDBE đến DDBE
•3 DBE được truy cập gần như độc lập vì được
phân nhóm lưu thông tin cụ thể
•Tuy nhiên, khi phát sinh các yêu cầu mà phải cần
có thông tin của các DB khác nhau, hệ thống phải
có cơ chế kết hợp thông tin từ nhiều nguồn, nhiều
hệ DB khác nhau. Có 2 cách:

HTTPS://CTUET.EDU.VN/ 29
Từ CDBE đến DDBE
•Cách 1: Phương pháp thủ công (manual
approach): truy xuất vào từng DB, viết các câu truy
vấn để lấy thông tin, chuyển kết quả đến một máy
trạm và viết chương trình tổng hợp các thông tin
để có bản báo cáo cuối cùng

HTTPS://CTUET.EDU.VN/ 30
Từ CDBE đến DDBE
•Cách 2: Phương pháp tự động (automated
approach): kết hợp 3 DBE vào trong một DDBE
đơn nhất, trong đó hệ thống sử dụng dịch vụ, quản
lý giao tiếp và điều hướng truy vấn đến từng DBE
•Phương pháp này trong suốt với người sử dụng

HTTPS://CTUET.EDU.VN/ 31
Trong suốt với người sử dụng?
•Trong suốt là cho phép các hoạt động song song
mà người dùng không cần biết hoạt động song
song đó xảy ra như thế nào, ở đâu và khi nào.
•Nó là mục tiêu thúc đẩy việc che khuất đi những
chi tiết phụ thuộc hệ thống mà không thích hợp
đối với người dùng trong mọi hoàn cảnh và tạo ra
một môi trường thuần nhất cho người dùng.

HTTPS://CTUET.EDU.VN/ 32
Từ kiến trúc CDBE đến kiến trúc DDBE
•Kiến trúc CDBE được quy định theo chuẩn
ANSI/SPARC 3 lớp.
• ANSI: American National Standard Institute;
• SPARC: Standard Planning and Requirements
Committee

HTTPS://CTUET.EDU.VN/ 33
Chuẩn ANSI là gì?
ANSI (viết tắt từ American National Standards
Institute trong tiếng Anh và có nghĩa là "Viện
Tiêu chuẩn Quốc gia Hoa Kỳ") là một tổ chức tư
nhân, phi lợi nhuận nhằm quản trị và điều phối
sự tiêu chuẩn hoá một cách tự giác và hợp thức
các hệ thống quy ước ra đời ngày 19 tháng 10
năm 1918.

HTTPS://CTUET.EDU.VN/ 34
Từ kiến trúc CDBE đến kiến trúc DDBE
•Theo hướng từ trên xuống:
• External Schema: cung cấp các views cho người dùng
• Conceptual Schema: quy định mối quan hệ của toàn bộ
DB. Thiết kế logic, các ràng buộc toàn vẹn
• Physical Schema: quy định lưu trữ dữ liệu ở dạng thô
(raw format), lưu trữ vật lý
•Lớp dưới cung cấp dịch vụ cho lớp trên

HTTPS://CTUET.EDU.VN/ 35
Kiến trúc DDBE

HTTPS://CTUET.EDU.VN/ 36
Kiến trúc DDBE
•Global data dictionary (GDD)
• Global Conceptual Schema (GCS): lưu thông tin về các
bảng, cột, kiểu dữ liệu, ràng buộc cột, khóa chính, khóa
ngoại. GCS yêu cầu các DBMS phải theo chuẩn
ANSI/SPARC
• Data Directory (DD): lưu thông tin vị trí của dữ liệu: tên
miền, URL, địa chỉ IP
• Fragmentation Directory (FD): lưu trữ thông tin về phân
mảnh dữ liệu

HTTPS://CTUET.EDU.VN/ 37
Kiến trúc DDBE
•Global data dictionary (GDD)
• Replication Directory (RD): lưu trữ thông tin về lặp dữ
liệu ở nhiều nơi khác nhau
• Network Directory (RD): lưu trữ thông tin về liên lạc giữa
các vị trí

HTTPS://CTUET.EDU.VN/ 38
Kiến trúc phần mềm DDBE
•Cũng giống như CDBE, DDBE cũng bao gồm 2
module phần mềm gọi là application processor
(AP) và data processor (DP)

HTTPS://CTUET.EDU.VN/ 39
Quản lý giao dịch trong các hệ thống
phân tán
•Trong một hệ thống phân tán, giao dịch
(transaction) được thực hiện tại nhiều site, bao
gồm nhiều giao dịch nhỏ (subtransaction) thực thi
tại site tương ứng
•Nếu transaction không thể thực hiện thì các
subtransaction cũng không được thực hiện theo

HTTPS://CTUET.EDU.VN/ 40
Ví dụ giao dịch phân tán
•Giả sử ta có một transaction chuyển tiền T1
chuyển một số tiền amount từ tài khoản x được
lưu tại site A đến tài khoản y được lưu tại site B
• Chúng ta có subtransaction T1A và T1B tại 2 site tương
ứng
•Global transaction manager (GTM) chịu trách
nhiệm thực thi transaction 1 này

HTTPS://CTUET.EDU.VN/ 41
HTTPS://CTUET.EDU.VN/ 42
Nội dung
1. Các khái niệm dữ liệu
2. Kiến trúc dữ liệu cục bộ và phân tán
3. Các lựa chọn phân tán dữ liệu
4. Phân mảnh dữ liệu

HTTPS://CTUET.EDU.VN/ 43
Thiết kế hệ phân tán dữ liệu
•Mục tiêu của một hệ quản trị cơ sở dữ liệu phân
tán (Distributed Database Management System –
DDBMS) là:
• Sử dụng có hiệu quả tất cả các tài nguyên tính toán hiện
có trong toàn bộ tổ chức (organization)
• Không phụ thuộc vào DBMS sử dụng
• Không phụ thuộc vị trí địa lý

HTTPS://CTUET.EDU.VN/ 44
Thiết kế hệ phân tán dữ liệu

•Có 2 dạng
• Thiết kế từ trên xuống (top-down)
• Thiết kế từ dưới lên (bottom-up)

HTTPS://CTUET.EDU.VN/ 45
Thiết kế từ trên xuống
(top-down design)
•Thiết kế từ trên xuống (top-down) xuất phát từ đặc
tả yêu cầu của toàn bộ tổ chức và tạo ra mô hình
khái niệm toàn cục (global conceptual model –
GCM)
•GCM sau đó phân phối đến các local DBMS
(LDBMS) để xây dựng mô hình khái niệm toàn cục
(local conceptual model – LCM)
•Có một GCM và có nhiều LCM
HTTPS://CTUET.EDU.VN/ 46
Thiết kế từ trên xuống
(top-down design)

HTTPS://CTUET.EDU.VN/ 47
Thiết kế từ dưới lên
(bottom-up design)
•Thiết kế từ dưới lên (bottom-up) xuất phát từ cơ
sở dữ liệu hiện có của tổ chức và sử dụng tiến
trình tích hợp sơ đồ (schema integration) để xây
dựng một sơ đồ hợp nhất (unified schema)
•Unified schema tương tự như GCM, ngoại trừ một
điểm đó là ta có thể có nhiều unified schema khác
nhau

HTTPS://CTUET.EDU.VN/ 48
Thiết kế từ dưới lên
(bottom-up design)
•Các nhà thiết kế hệ phân tán dữ liệu sẽ lựa chọn
phương pháp nào phù hợp nhất trong từng trường
hợp cụ thể
•Tables được lưu tại một hay nhiều sites, chiến
lược phân mảnh (fragments) và phân khu
(partitions)

HTTPS://CTUET.EDU.VN/ 49
Thiết kế từ dưới lên
(bottom-up design)

HTTPS://CTUET.EDU.VN/ 50
Thiết kế hệ phân tán dữ liệu
•Phân tán các tables được thực hiện dưới các hình
thức sau:
• Nonreplicated, nonfragmented (nonpartitioned)
• Fully replicated (all tables)
• Fragmented or partitioned
• Partially replicated (some tables)
• Mixed (any combination of the above)

HTTPS://CTUET.EDU.VN/ 51
Thiết kế hệ phân tán dữ liệu
•Nonreplicated, nonfragmented
• Các tables khác nhau được lưu trữ phân tán ở nhiều
sites khác nhau
• Tính toàn vẹn được tính trên tables
• Chọn chiến lược phân tán tables dựa trên mức độ truy
vấn thông tin thường xuyên

HTTPS://CTUET.EDU.VN/ 52
Thiết kế hệ phân tán dữ liệu
•Fully replicated
• Lưu trữ toàn bộ dữ liệu tại từng site
• Các truy vấn đều xử lý cục bộ mà không cần join từ
nhiều sites
• Tuy nhiên truy vấn update sẽ có chi phí cao nhất vì phải
cần thời gian để đồng bộ hóa thay đổi tại mọi sites khác
nhau

HTTPS://CTUET.EDU.VN/ 53
Thiết kế hệ phân tán dữ liệu
•Fragmented or partitioned
• Thiết kế phân mảnh chia tables thành nhiều phần và lưu
trữ ở nhiều sites khác nhau
• Phân mảnh dọc, phân mảnh ngang, phân mảnh hỗn hợp

HTTPS://CTUET.EDU.VN/ 54
Thiết kế hệ phân tán dữ liệu
•Partially replicated
• Một số tables được lựa chọn để lưu trữ lặp ở nhiều sites
khác nhau
• Phần của tables được truy vấn thông tin thường xuyên
sẽ được chọn để lặp nhiều lần
•Mixed

HTTPS://CTUET.EDU.VN/ 55
Nội dung
1. Các khái niệm dữ liệu
2. Kiến trúc dữ liệu cục bộ và phân tán
3. Các lựa chọn phân tán dữ liệu
4. Phân mảnh dữ liệu

HTTPS://CTUET.EDU.VN/ 56
Sự phân mảnh (fragmentation)
•Sự phân mảnh (fragmentation) là sự phân chia
một table thành nhiều phần nhỏ hơn được gọi là
các mảnh (fragments)
•Các fragments này sẽ được lưu trữ phân tán ở
nhiều sites khác nhau
•Sự phân mảnh có thể được thực hiện theo chiều
dọc (vertical), chiều ngang (horizontal) hoặc cả
hai chiều (hybrid)
HTTPS://CTUET.EDU.VN/ 57
Sự phân mảnh (fragmentation)
•Phân mảnh theo chiều ngang còn được chia nhỏ
thành:
• Phân mảnh ngang chính (primary horizontal
fragmentation – PHF)
• Phân mảnh ngang dẫn xuất (derived horizontal
fragmentation – DHF)

HTTPS://CTUET.EDU.VN/ 58
Phân mảnh dọc
(Vertical fragmentation)
•Vertical fragmentation (VF) nhóm các cột trong
table theo từng fragment
•Kết hợp các fragments để xây dựng lại tables
được gọi là reconstructiveness
•Mỗi VF phải chứa khóa chính của tables
•VF cung cấp khả năng an ninh và riêng tư của dữ
liệu

HTTPS://CTUET.EDU.VN/ 59
Ví dụ phân mảnh dọc
•Ta có bảng EMP như sau:

HTTPS://CTUET.EDU.VN/ 60
Ví dụ phân mảnh dọc
•Ta tạo ra 2 fragments của EMP như sau:

HTTPS://CTUET.EDU.VN/ 61
Ví dụ phân mảnh dọc
•Table EMP_SAL

HTTPS://CTUET.EDU.VN/ 62
Ví dụ phân mảnh dọc
•Table EMP_NON_SAL

HTTPS://CTUET.EDU.VN/ 63
Ví dụ phân mảnh dọc
•Để xây dựng lại table EMP từ 2 fragments VF, ta
có lệnh join như sau:

HTTPS://CTUET.EDU.VN/ 64
Phân mảnh ngang
(Horizontal fragmentation)
•Horizontal fragmentation (HF) nhóm các dòng
của table theo từng fragment
•Việc nhóm các dòng dựa trên giá trị theo một
hoặc nhiều cột
•Mỗi fragment là một table con với đầy đủ các cột
•HF cung cấp khả năng an ninh và riêng tư của dữ
liệu

HTTPS://CTUET.EDU.VN/ 65
Phân mảnh ngang chính (Primary
horizontal fragmentation – PHF)
•Chia table theo chiều ngang dựa trên giá trị của
một hoặc nhiều cột
•Giả sử ta muốn chia table EMP theo chi nhánh
Loc, dữ liệu được lưu trữ tại từng site của chi
nhánh tương ứng

HTTPS://CTUET.EDU.VN/ 66
Primary horizontal fragmentation -
PHF

HTTPS://CTUET.EDU.VN/ 67
Ví dụ phân mảnh ngang chính
•Table EMP_LA

•Table EMP_LA

HTTPS://CTUET.EDU.VN/ 68
Ví dụ phân mảnh ngang chính

•Table EMP_IN

HTTPS://CTUET.EDU.VN/ 69
Ví dụ phân mảnh ngang chính
•Để xây dựng lại table EMP từ 2 PHF, ta có lệnh
union như sau:

HTTPS://CTUET.EDU.VN/ 70
Phân mảnh ngang dẫn xuất (Derived
horizontal fragmentation – DHF)
•Chia table theo chiều ngang dựa trên sự phân
mảnh của một table khác
•DHF được sử dụng trong trường hợp 2 table
thường được join
•Lưu trữ fragment tương ứng của 2 table tại cùng
một site sẽ tăng tốc tác vụ join

HTTPS://CTUET.EDU.VN/ 71
Ví dụ phân mảnh ngang dẫn xuất
•Trong ví dụ này ta có table DEPT với DeptID là
khóa chính

HTTPS://CTUET.EDU.VN/ 72
Ví dụ phân mảnh ngang dẫn xuất
•Giả sử table DEPT được phân mảnh dựa trên Loc

HTTPS://CTUET.EDU.VN/ 73
Ví dụ phân mảnh ngang dẫn xuất

HTTPS://CTUET.EDU.VN/ 74
Ví dụ phân mảnh ngang dẫn xuất
•Ta có thêm table PROJ

HTTPS://CTUET.EDU.VN/ 75
Ví dụ phân mảnh ngang dẫn xuất

•Chúng ta tiến hành phân mảnh table PROJ dựa


trên 3 fragments của table DEPT

HTTPS://CTUET.EDU.VN/ 76
Ví dụ phân mảnh ngang dẫn xuất

HTTPS://CTUET.EDU.VN/ 77
Ví dụ phân mảnh ngang dẫn xuất

HTTPS://CTUET.EDU.VN/ 78
Tài liệu tham khảo
• Tính trong suốt trong hệ phân tán và các dịch vụ,
https://voer.edu.vn/m/tinh-trong-suot-trong-he-phan-tan-va-
cac-dich-vu/d16ae8bb
• Nhập môn Cơ sở dữ liệu phân tán, Nguyễn Bá Tường
• Distributed Database Management Systems A Practical
Approach
• Cơ sở dữ liệu phân tán, Phạm Thế Quế

HTTPS://CTUET.EDU.VN/ 79
Xin cảm ơn!

HTTPS://CTUET.EDU.VN/ 80
Q&A

HTTPS://CTUET.EDU.VN/ 81

You might also like