hocvietcode.com
  • Trang chủ
  • Học lập trình
    • Lập trình C/C++
    • Lập trình HTML
    • Lập trình Javascript
      • Javascript cơ bản
      • ReactJS framework
      • AngularJS framework
      • Typescript cơ bản
      • Angular
    • Lập trình Mobile
      • Lập Trình Dart Cơ Bản
        • Dart Flutter Framework
    • Cơ sở dữ liệu
      • MySQL – MariaDB
      • Micrsoft SQL Server
      • Extensible Markup Language (XML)
      • JSON
    • Lập trình PHP
      • Lập trình PHP cơ bản
      • Laravel Framework
    • Lập trình Java
      • Java Cơ bản
    • Cấu trúc dữ liệu và giải thuật
    • Lập Trình C# Cơ Bản
    • Machine Learning
  • WORDPRESS
    • WordPress cơ bản
    • WordPress nâng cao
    • Chia sẻ WordPress
  • Kiến thức hệ thống
    • Microsoft Azure
    • Docker
    • Linux
  • Chia sẻ IT
    • Tin học văn phòng
      • Microsoft Word
      • Microsoft Excel
    • Marketing
      • Google Adwords
      • Facebook Ads
      • Kiến thức khác
    • Chia sẻ phần mềm
    • Review công nghệ
    • Công cụ – tiện ích
      • Kiểm tra bàn phím online
      • Kiểm tra webcam online
Đăng nhập
  • Đăng nhập / Đăng ký

Please enter key search to display results.

Home
  • Cơ sở dữ liệu
Giới thiệu khái niệm và một số mô hình cơ sở dữ liệu phân tán

Giới thiệu khái niệm và một số mô hình cơ sở dữ liệu phân tán

  • 10-06-2025
  • Toanngo92
  • 0 Comments

Mục lục

    • 🧠 1. Định nghĩa cơ bản
    • 🔍 2. Hai cơ chế chính trong cơ sở dữ liệu phân tán
      • A. Phân mảnh dữ liệu (Fragmentation)
      • B. Sao chép dữ liệu (Replication)
    • ⚙️ 3. Hệ thống phân tán vẫn phải “giống như một hệ thống tập trung”
    • 🔐 4. Ba mức độ “tính trong suốt” cần đạt được
    • 🏁 5. Tự chủ địa phương (Local Autonomy)
  • Tóm tắt nội dung
  • 📍 Tại sao cần Cơ sở dữ liệu phân tán?
    • 🔑 1. Nhu cầu thực tế trong doanh nghiệp hiện đại
    • 🧠 2. Các lý do cụ thể để triển khai CSDL phân tán
    • 🚫 Vấn đề nếu không dùng CSDL phân tán
    • 💡 Cơ sở dữ liệu phân tán là giải pháp cho bài toán hiện đại
  • Phân mảnh dữ liệu
  • Phân tích: Phân mảnh dữ liệu trong Cơ sở dữ liệu phân tán
    • 🔍 1. Phân mảnh là gì?
  • 🧩 2. Có mấy loại phân mảnh?
    • 📘 A. Phân mảnh ngang (Horizontal Fragmentation)
    • 📗 B. Phân mảnh dọc (Vertical Fragmentation)
    • 📙 C. Phân mảnh kết hợp (Mixed Fragmentation)
  • 📌 3. Nguyên tắc khi phân mảnh dữ liệu
  • Replication – Sao chép dữ liệu trong CSDL phân tán
    • 🧠 1. Khái niệm Replication
    • ✅ 2. Mục tiêu của Replication
    • ⚠️ 3. Vấn đề phải giải quyết khi dùng replication
    • 🔧 4. Các kiểu replication phổ biến
  • 🧊 Transparency – Tính trong suốt
    • 🌟 1. Khái niệm
    • 🔍 2. Các loại tính trong suốt
    • 📌 3. Ý nghĩa của Transparency
  • 🧠 4. Tương quan giữa replication và transparency
  • Ưu điểm và Nhược điểm của CSDL phân tán
  • ✅ 1. ƯU ĐIỂM CỦA CƠ SỞ DỮ LIỆU PHÂN TÁN
  • ❌ 2. NHƯỢC ĐIỂM CỦA CSDL PHÂN TÁN
  • 📊 Bảng tổng hợp so sánh ưu – nhược điểm
  • Các loại CSDL phân tán
    • 🟢 1. Homogeneous Distributed Database System (Hệ thống phân tán đồng nhất)
    • 🧠 Khái niệm:
      • Ví dụ:
    • ✅ Ưu điểm:
    • ⚠️ Nhược điểm:
    • 🔴 2. Heterogeneous Distributed Database System (Hệ thống phân tán không đồng nhất)
    • 🧠 Khái niệm:
      • Ví dụ:
    • ✅ Ưu điểm:
    • ⚠️ Nhược điểm:
    • 🟡 3. Federated Database System (Hệ thống cơ sở dữ liệu liên kết tự trị)
    • 🧠 Khái niệm:
      • Đặc điểm chính:
      • Ví dụ:
    • ✅ Ưu điểm:
    • ⚠️ Nhược điểm:
  • 📊 Bảng tổng hợp 3 loại hệ thống phân tán
  • Thiết kế hệ thống cơ sở dữ liệu phân tán
  • 🎯 1. Mục tiêu thiết kế
  • 🧩 2. Các bước thiết kế hệ thống phân tán
    • 🔹 Bước 1: Thiết kế vật lý (Physical Design) như trong hệ thống tập trung
    • 🔹 Bước 2: Phân tích cách dữ liệu được sử dụng tại từng site
    • 🔹 Bước 3: Quyết định phương án phân mảnh và sao chép
    • 🔹 Bước 4: Xem xét kiến trúc mạng (network topology)
    • 🔹 Bước 5: Tối ưu truy vấn phân tán
  • 🌐 3. Cân nhắc kiến trúc mạng khi thiết kế
  • 🧭 4. Ví dụ tình huống thiết kế thực tế
  • 🧱 5. Gợi ý chiến lược thiết kế phân tán hiệu quả

🧠 1. Định nghĩa cơ bản

Cơ sở dữ liệu phân tán là một hệ thống cơ sở dữ liệu trong đó dữ liệu không được lưu trữ tại một địa điểm duy nhất, mà được chia nhỏ và phân bố tại nhiều vị trí khác nhau (gọi là site), nhưng vẫn hoạt động như một hệ thống thống nhất.

Ví dụ:

  • Chi nhánh Hà Nội lưu dữ liệu khách hàng phía Bắc.
  • Chi nhánh TP.HCM lưu dữ liệu khách phía Nam.
  • Tất cả chi nhánh có thể truy vấn và cập nhật dữ liệu như một hệ thống duy nhất.

🔍 2. Hai cơ chế chính trong cơ sở dữ liệu phân tán

A. Phân mảnh dữ liệu (Fragmentation)

Dữ liệu được chia nhỏ và phân tán đến các site khác nhau.

  • Phân mảnh dọc (Vertical Fragmentation): chia dữ liệu theo cột
    • Ví dụ: bảng Customers có thể tách ra thành bảng CustomerPersonalInfo (tên, giới tính) và CustomerPayment (phương thức thanh toán).
  • Phân mảnh ngang (Horizontal Fragmentation): chia dữ liệu theo dòng
    • Ví dụ: dữ liệu khách hàng ở miền Bắc lưu ở site A, miền Nam lưu ở site B.

✅ Lợi ích: Giảm tải mạng, tăng hiệu năng truy xuất tại địa phương.


B. Sao chép dữ liệu (Replication)

Một bản sao dữ liệu được lưu tại nhiều vị trí khác nhau để:

  • Tăng tính sẵn sàng
  • Hạn chế rủi ro mất mát dữ liệu

⚠️ Tuy nhiên cần có cơ chế đồng bộ → tránh mâu thuẫn dữ liệu giữa các bản sao.


⚙️ 3. Hệ thống phân tán vẫn phải “giống như một hệ thống tập trung”

Theo nguyên lý thiết kế chuẩn:

“A distributed database should look exactly like a centralized one.”

Tức là:

  • Người dùng không cần biết dữ liệu nằm ở đâu
  • Vẫn sử dụng các câu lệnh SQL thông thường
  • Tính trong suốt (transparency) được đảm bảo

✅ Giúp ẩn toàn bộ sự phức tạp bên dưới, làm cho việc thao tác dữ liệu trở nên đơn giản và nhất quán như làm việc với CSDL tập trung.


🔐 4. Ba mức độ “tính trong suốt” cần đạt được

Loại tính trong suốtMô tả
Vị trí (Location)Người dùng không cần biết dữ liệu đang ở site nào
Phân mảnh (Fragmentation)Không cần biết dữ liệu đã bị chia nhỏ thế nào
Sao chép (Replication)Không cần biết dữ liệu có bao nhiêu bản sao hoặc nằm ở đâu

✅ Đây là tiêu chí giúp hệ thống phân tán dễ sử dụng và bảo trì.


🏁 5. Tự chủ địa phương (Local Autonomy)

Mỗi site có thể:

  • Vận hành độc lập
  • Có thể xử lý truy vấn cục bộ mà không phụ thuộc vào site trung tâm

⚠️ Điều này rất quan trọng trong môi trường như:

  • Đa quốc gia (multi-national)
  • Doanh nghiệp có nhiều chi nhánh độc lập

Tóm tắt nội dung

Yếu tốMô tả
Khái niệm chínhCSDL được chia ra và phân tán tại nhiều địa điểm
Kỹ thuật nền tảngPhân mảnh và sao chép dữ liệu
Nguyên lý vận hànhGiống như hệ thống tập trung
Yêu cầu về tính trong suốtKhông cần biết chi tiết nội bộ dữ liệu được phân bố ra sao
Tự chủ địa phươngMỗi site hoạt động độc lập, nhưng vẫn có thể kết nối hệ thống toàn cục

📍 Tại sao cần Cơ sở dữ liệu phân tán?

🔑 1. Nhu cầu thực tế trong doanh nghiệp hiện đại

Cùng với sự phát triển mạnh mẽ của công nghệ và toàn cầu hóa, các tổ chức hiện đại thường:

  • Có nhiều chi nhánh, văn phòng phân tán về mặt địa lý
  • Có khối lượng dữ liệu lớn phát sinh từ nhiều nguồn khác nhau
  • Cần chia sẻ, truy cập và quản lý dữ liệu linh hoạt giữa các bộ phận, địa điểm

✅ Vì thế, CSDL tập trung truyền thống trở nên không đủ linh hoạt và kém hiệu quả trong bối cảnh phân tán.


🧠 2. Các lý do cụ thể để triển khai CSDL phân tán

Lý doMô tả
🔄 Tăng quy mô doanh nghiệpCác công ty ngày càng mở rộng ra nhiều khu vực, vùng miền, quốc gia. Việc lưu dữ liệu tập trung sẽ gây chậm trễ trong truy cập và xử lý.
🌐 Toàn cầu hóa & công ty đa quốc giaDoanh nghiệp hoạt động xuyên quốc gia cần hệ thống có thể vận hành tại nhiều quốc gia nhưng vẫn chia sẻ dữ liệu.
📊 Chia sẻ dữ liệu giữa các bộ phậnVí dụ: bộ phận bán hàng cần truy cập dữ liệu kho, kế toán cần dữ liệu giao dịch…
🧩 Đa dạng hệ thống & nhu cầuMỗi chi nhánh có thể có yêu cầu hệ thống khác nhau (hệ điều hành, CSDL, giao diện…)
⚡ Tăng hiệu năngTruy cập cục bộ vào dữ liệu tại địa phương nhanh hơn nhiều so với truy vấn từ hệ thống trung tâm
🚀 Hỗ trợ mở rộng linh hoạtCó thể thêm site mới (ví dụ: mở chi nhánh mới) mà không làm ảnh hưởng đến toàn bộ hệ thống hiện tại

🚫 Vấn đề nếu không dùng CSDL phân tán

Nếu chỉ dùng CSDL tập trung:

  • Truy cập từ xa sẽ chậm và dễ nghẽn
  • Tăng độ trễ mạng cho các chi nhánh
  • Khó đảm bảo sẵn sàng khi một điểm trung tâm gặp sự cố
  • Giảm khả năng mở rộng linh hoạt cho tổ chức đang tăng trưởng

💡 Cơ sở dữ liệu phân tán là giải pháp cho bài toán hiện đại

Vấn đềGiải pháp từ CSDL phân tán
Chia sẻ dữ liệu giữa nhiều địa điểmPhân phối dữ liệu theo vị trí
Truy cập nhanh ở từng chi nhánhDữ liệu được lưu và truy cập cục bộ
Khó mở rộng hệ thống tập trungPhân tán giúp thêm site dễ dàng
Rủi ro mất dữ liệu trung tâmCó thể sao lưu và phân phối nhiều bản sao (replication)
Khác biệt nền tảngHỗ trợ hệ thống không đồng nhất (heterogeneous DDBMS)

Phân mảnh dữ liệu

Phân tích: Phân mảnh dữ liệu trong Cơ sở dữ liệu phân tán

🔍 1. Phân mảnh là gì?

Phân mảnh dữ liệu (Fragmentation) là kỹ thuật chia nhỏ bảng dữ liệu thành nhiều phần (fragment), để lưu trữ và quản lý tại các site khác nhau trong hệ thống phân tán.

➡️ Mục tiêu:

  • Phân bổ dữ liệu hợp lý theo địa điểm sử dụng
  • Tăng hiệu năng truy vấn cục bộ
  • Giảm lưu lượng truyền tải trên mạng
  • Dễ mở rộng, bảo trì

🧩 2. Có mấy loại phân mảnh?

CSDL phân tán sử dụng 3 loại phân mảnh chính:

LoạiMô tảCâu lệnh SQL tương ứng
Phân mảnh ngang (Horizontal Fragmentation)Chia bảng theo dòng dữ liệu, dựa trên điều kiện cụ thểSELECT * FROM Customers WHERE City = 'Manchester'
Phân mảnh dọc (Vertical Fragmentation)Chia bảng theo cột, giữ lại khóa chính để JOIN khi cầnSELECT CustomerID, Name, Sex FROM Customers
Phân mảnh kết hợp (Mixed Fragmentation)Kết hợp cả hai: trước phân mảnh ngang, sau đó phân mảnh dọc (hoặc ngược lại)Nhiều câu lệnh kết hợp WHERE và SELECT

📘 A. Phân mảnh ngang (Horizontal Fragmentation)

  • Mỗi phân mảnh chứa một tập con các bản ghi
  • Điều kiện thường dựa vào vị trí địa lý, loại khách hàng, khu vực hoạt động…

Ví dụ:

sqlCopyEdit-- Dữ liệu khách hàng ở Manchester
SELECT * FROM Customers WHERE Area = 'Manchester';

Ưu điểm:

  • Truy vấn tại địa phương rất nhanh
  • Trực quan, dễ hiểu

Cần đảm bảo:

  • Tập hợp các phân mảnh phải có thể ghép lại thành bảng gốc thông qua UNION

📗 B. Phân mảnh dọc (Vertical Fragmentation)

  • Chia bảng theo các cột liên quan đến nghiệp vụ khác nhau
  • Cần giữ lại Primary Key để có thể JOIN lại khi cần

Ví dụ:

Fragment 1Fragment 2
CustomerID, Name, SexCustomerID, Area, PaymentType

Khôi phục bảng gốc bằng:

sqlCopyEditSELECT * FROM Fragment1
JOIN Fragment2 USING (CustomerID);

Ưu điểm:

  • Mỗi site chỉ lưu phần dữ liệu mình cần
  • Tiết kiệm tài nguyên, tăng bảo mật (VD: ẩn thông tin thanh toán ở site không cần)

📙 C. Phân mảnh kết hợp (Mixed Fragmentation)

  • Phức tạp hơn nhưng linh hoạt nhất
  • Ví dụ: chỉ lấy khách hàng ở Manchester, nhưng chỉ lưu tên và phương thức thanh toán

Kết quả:

sqlCopyEditCustomerID | Name | PaymentType
-----------|------|-------------
8          | Singh| Card
2          | Rice | Cash

Ưu điểm:

  • Phù hợp với hệ thống phức tạp, dữ liệu lớn, truy vấn đặc thù

📌 3. Nguyên tắc khi phân mảnh dữ liệu

Để đảm bảo tính toàn vẹn và hiệu quả, phân mảnh cần tuân thủ các nguyên tắc:

Nguyên tắcMô tả
Completeness (Đầy đủ)Toàn bộ dữ liệu gốc phải có thể được tạo lại từ các phân mảnh
Reconstruction (Có thể phục hồi)Phải có thể dùng UNION, JOIN để khôi phục bảng gốc
Disjointness (Không chồng lặp – với phân mảnh ngang)Một bản ghi chỉ nằm trong một phân mảnh

Replication – Sao chép dữ liệu trong CSDL phân tán

🧠 1. Khái niệm Replication

Replication là quá trình tạo ra nhiều bản sao của cùng một dữ liệu và lưu trữ tại nhiều site khác nhau trong hệ thống phân tán.

Ví dụ:

  • Bảng Customers có thể được sao chép toàn bộ và lưu tại Site A và Site B.
  • Người dùng ở bất kỳ site nào cũng có thể truy cập dữ liệu ngay tại chỗ, không cần truy vấn qua mạng.

✅ 2. Mục tiêu của Replication

  • Tăng tính sẵn sàng: Nếu một site gặp sự cố, site khác vẫn có dữ liệu.
  • Tăng tốc độ truy vấn: Người dùng truy cập dữ liệu gần nhất (local).
  • Giảm độ trễ mạng: Hạn chế phụ thuộc vào mạng WAN/chậm trễ truy xuất.

⚠️ 3. Vấn đề phải giải quyết khi dùng replication

Vấn đềMô tả
Đồng bộ dữ liệuKhi một bản ghi bị thay đổi, các bản sao khác phải cập nhật kịp thời
Xung đột cập nhật (Conflict Resolution)Nếu hai site cùng sửa một bản ghi tại cùng thời điểm, hệ thống cần quyết định bản nào đúng
Tăng chi phí lưu trữLưu nhiều bản sao sẽ chiếm thêm không gian đĩa
Phức tạp hóa hệ thốngCần cơ chế kiểm tra, phát hiện và xử lý xung đột tự động

🔧 4. Các kiểu replication phổ biến

Kiểu replicationMô tảVí dụ
Full replicationSao chép toàn bộ CSDL tới mỗi siteSite A, B, C đều chứa full DB
Partial replicationChỉ sao chép một phần dữ liệu cần thiết tới mỗi siteSite A chứa dữ liệu miền Bắc
Snapshot replicationTạo ảnh chụp định kỳCập nhật mỗi ngày một lần
Real-time (synchronous)Đồng bộ ngay khi có thay đổiGần như không có độ trễ, nhưng tốn tài nguyên
AsynchronousCập nhật sau một khoảng thời gianĐỡ tốn tài nguyên, chấp nhận trễ nhẹ

🧊 Transparency – Tính trong suốt

🌟 1. Khái niệm

Tính trong suốt trong hệ thống phân tán là khả năng ẩn đi sự phức tạp nội tại của việc phân bố dữ liệu, khiến người dùng cảm nhận như đang làm việc với một hệ thống tập trung duy nhất.


🔍 2. Các loại tính trong suốt

Loại transparencyMô tả
Vị trí (Location transparency)Người dùng không cần biết dữ liệu nằm ở site nào
Phân mảnh (Fragmentation transparency)Người dùng không thấy dữ liệu đã bị chia nhỏ hay cách chia
Sao chép (Replication transparency)Người dùng không biết có bao nhiêu bản sao của dữ liệu

📌 3. Ý nghĩa của Transparency

Lợi íchGiải thích
Đơn giản hóa truy vấnNgười dùng có thể viết truy vấn SQL như trên hệ thống tập trung
Tăng khả năng mở rộngCó thể thêm site hoặc bản sao mà không cần thay đổi truy vấn của người dùng
Giảm rủi ro lỗiKhông cần quan tâm đến chi tiết kỹ thuật, tránh sai sót
Bảo mật tốt hơnHệ thống kiểm soát truy cập và đồng bộ hóa nội bộ, người dùng không tiếp xúc với tầng vật lý

🧠 4. Tương quan giữa replication và transparency

  • Khi sử dụng replication, hệ thống phải đảm bảo replication transparency để:
    • Không ảnh hưởng đến truy vấn
    • Không gây ra lỗi do xung đột bản sao
    • Không yêu cầu người dùng biết cách hệ thống đồng bộ

Ưu điểm và Nhược điểm của CSDL phân tán


✅ 1. ƯU ĐIỂM CỦA CƠ SỞ DỮ LIỆU PHÂN TÁN

Việc triển khai hệ thống CSDL phân tán đem lại nhiều lợi ích rõ ràng cho tổ chức:

Ưu điểmMô tả chi tiết
📌 Mô phỏng theo cơ cấu tổ chức (Emulating organisational structure)Mỗi site/quốc gia/chi nhánh có thể quản lý phần dữ liệu riêng, phản ánh đúng cách tổ chức vận hành trong thực tế
🧠 Tăng quyền kiểm soát cục bộ (Greater control)Mỗi địa phương có thể xử lý nghiệp vụ độc lập, mà không cần phụ thuộc vào trung tâm
🔁 Tăng tính sẵn sàng (Improved availability)Nếu một site gặp lỗi, các site còn lại vẫn truy cập được dữ liệu nhờ replication
🔒 Tăng độ tin cậy (Greater reliability)Dữ liệu có thể được sao lưu tại nhiều nơi – tránh mất mát toàn bộ dữ liệu
⚡ Hiệu suất tốt hơn (Better performance)Truy vấn dữ liệu gần tại site cục bộ nhanh hơn nhiều so với truy vấn từ xa
📈 Dễ dàng mở rộng (Easier growth/scalability)Có thể thêm site mới, dữ liệu mới mà không ảnh hưởng đến hệ thống hiện tại

❌ 2. NHƯỢC ĐIỂM CỦA CSDL PHÂN TÁN

Dù có nhiều lợi ích, hệ thống CSDL phân tán vẫn tồn tại không ít thách thức:

Nhược điểmPhân tích
🧩 Phức tạp về cấu trúc (Complexity)Thiết kế hệ thống phân tán đòi hỏi hiểu sâu về phân mảnh, đồng bộ, xử lý phân tán
💰 Chi phí cao (Cost)Cần đầu tư vào phần cứng, hạ tầng mạng, phần mềm, và nhân lực có chuyên môn
🔐 Bảo mật (Security)Nhiều site → tăng nguy cơ bị tấn công, khó kiểm soát toàn diện
⚠️ Kiểm soát toàn vẹn dữ liệu khó (Integrity control)Khó đảm bảo tất cả bản sao đồng bộ đúng lúc, dễ xảy ra mâu thuẫn
📚 Thiếu tiêu chuẩn thống nhất (Lack of standards)Các hệ thống CSDL không đồng nhất (heterogeneous) có thể thiếu tương thích
🧪 Thiếu kinh nghiệm (Lack of experience)Không nhiều đội ngũ có kỹ năng triển khai và duy trì hệ thống phân tán quy mô lớn
🧠 Thiết kế phức tạp hơn (Design more complex)Phải tính đến phân mảnh, vị trí dữ liệu, cấu trúc mạng, chiến lược đồng bộ, tối ưu truy vấn…

📊 Bảng tổng hợp so sánh ưu – nhược điểm

Tiêu chíƯu điểmNhược điểm
Cấu trúc tổ chứcPhản ánh thực tế, tự chủ cục bộCần kiến trúc phức tạp
Hiệu năngTruy cập nhanh tại địa phươngKhó tối ưu truy vấn liên site
Độ tin cậyTăng nhờ replicationPhải giải quyết xung đột dữ liệu
Mở rộngDễ thêm site mớiKhó duy trì đồng bộ giữa các site
Chi phíLinh hoạt lâu dàiChi phí đầu tư ban đầu lớn
Quản lýTùy chỉnh theo nhu cầu từng siteKhó bảo trì tổng thể

Các loại CSDL phân tán

Trong thực tế, không phải tất cả các hệ thống CSDL phân tán đều giống nhau. Chúng được phân loại dựa trên mức độ đồng nhất về phần mềm, phần cứng và hệ điều hành giữa các site.


🟢 1. Homogeneous Distributed Database System (Hệ thống phân tán đồng nhất)

🧠 Khái niệm:

Là hệ thống mà tất cả các site sử dụng cùng một hệ quản trị CSDL (DBMS) và hệ điều hành giống nhau.

Ví dụ:

  • Site 1: Windows + Oracle
  • Site 2: Windows + Oracle
  • Site 3: Windows + Oracle

✅ Ưu điểm:

  • Dễ triển khai và bảo trì
  • Truy vấn và giao tiếp giữa các site đơn giản hơn
  • Các công cụ và ngôn ngữ truy vấn đồng bộ

⚠️ Nhược điểm:

  • Thiếu linh hoạt trong việc kết hợp các công nghệ khác nhau
  • Khó tích hợp với hệ thống cũ hoặc bên thứ ba

🔴 2. Heterogeneous Distributed Database System (Hệ thống phân tán không đồng nhất)

🧠 Khái niệm:

Các site sử dụng các hệ quản trị CSDL khác nhau, có thể cả hệ điều hành khác nhau.

Ví dụ:

  • Site 1: Windows + Oracle
  • Site 2: Windows + MS SQL Server
  • Site 3: Unix + Informix

✅ Ưu điểm:

  • Tính linh hoạt cao, dễ tích hợp hệ thống hiện có
  • Phù hợp với môi trường đa dạng, công ty nhiều hệ thống kế thừa (legacy)

⚠️ Nhược điểm:

  • Giao tiếp giữa các site phức tạp hơn
  • Khó đồng bộ hóa, phải xử lý các vấn đề tương thích dữ liệu và truy vấn
  • Tốn nhiều công sức lập trình, bảo trì

🟡 3. Federated Database System (Hệ thống cơ sở dữ liệu liên kết tự trị)

🧠 Khái niệm:

Mỗi site là một hệ thống CSDL tự trị, độc lập, không có sự tích hợp dữ liệu thường xuyên. Các site chỉ chia sẻ dữ liệu khi cần.

Đặc điểm chính:

  • Không có kho dữ liệu trung tâm
  • Không đồng bộ hóa liên tục
  • Mỗi site kiểm soát dữ liệu riêng, bảo vệ quyền truy cập

Ví dụ:

  • Site 1: Oracle tại trụ sở chính
  • Site 2: MySQL tại chi nhánh A
  • Site 3: PostgreSQL tại chi nhánh B
    → Chỉ chia sẻ dữ liệu khi một bên cần truy vấn qua API hoặc gateway

✅ Ưu điểm:

  • Mỗi site có toàn quyền kiểm soát dữ liệu
  • Giảm độ phụ thuộc, tăng tính bảo mật nội bộ

⚠️ Nhược điểm:

  • Không toàn vẹn dữ liệu toàn cục
  • Khó thực hiện truy vấn phức tạp liên site
  • Không phù hợp với các hệ thống cần real-time hoặc đồng bộ hóa mạnh

📊 Bảng tổng hợp 3 loại hệ thống phân tán

Tiêu chíHomogeneousHeterogeneousFederated
DBMS & OSGiống nhauKhác nhauTùy từng site
Dễ triển khai✅❌✅
Đồng bộ hóaDễPhức tạpKhông có
Toàn vẹn dữ liệu toàn cục✅Có thể có❌
Tính tự trị siteTrung bìnhTrung bình✅ Cao
Tính tương thíchThấpCaoCao
Dùng khi nào?Hệ thống mới, đồng bộ hóa caoTích hợp nhiều hệ thống cũMỗi site cần tự chủ dữ liệu

Thiết kế hệ thống cơ sở dữ liệu phân tán

Thiết kế CSDL phân tán không chỉ là thiết kế bảng, mà còn cần xác định cách phân bổ dữ liệu, kiến trúc mạng, và tối ưu truy vấn phân tán.


🎯 1. Mục tiêu thiết kế

  • Tối ưu truy vấn tại từng site → giảm độ trễ và tải mạng
  • Đảm bảo toàn vẹn và đồng bộ dữ liệu
  • Phản ánh đúng mô hình tổ chức thực tế
  • Dễ bảo trì, mở rộng, tích hợp với hệ thống cũ

🧩 2. Các bước thiết kế hệ thống phân tán

🔹 Bước 1: Thiết kế vật lý (Physical Design) như trong hệ thống tập trung

  • Xác định bảng cơ sở (base tables)
  • Lựa chọn chỉ mục (indexes), khóa chính – khóa ngoại
  • Tối ưu không gian lưu trữ

🔹 Bước 2: Phân tích cách dữ liệu được sử dụng tại từng site

  • Dữ liệu nào được truy vấn nhiều nhất tại mỗi site?
  • Dữ liệu nào cần cập nhật thường xuyên?
  • Dữ liệu nào cần chia sẻ giữa các site?

➡️ Dựa vào hành vi sử dụng để quyết định phân mảnh

🔹 Bước 3: Quyết định phương án phân mảnh và sao chép

  • Phân mảnh ngang nếu site truy cập theo vùng địa lý
  • Phân mảnh dọc nếu mỗi site chỉ cần một phần dữ liệu
  • Replication nếu cần tăng tính sẵn sàng, hoặc dữ liệu không thay đổi nhiều

🔹 Bước 4: Xem xét kiến trúc mạng (network topology)

  • Dữ liệu truyền tải theo hướng nào?
  • Có bị nghẽn mạng không?
  • Mỗi site có đủ băng thông/độ ổn định để truyền dữ liệu không?

🔹 Bước 5: Tối ưu truy vấn phân tán

  • Trình tối ưu hóa truy vấn cần biết:
    • Vị trí dữ liệu (data location)
    • Chi phí truyền tải giữa site
    • Kỹ thuật join từ xa (remote join)
    • Sử dụng semi-join, query shipping nếu cần

🌐 3. Cân nhắc kiến trúc mạng khi thiết kế

Yếu tốTác động đến thiết kế
Băng thông mạng (bandwidth)Ảnh hưởng tốc độ đồng bộ và truy vấn
Sơ đồ kết nối (topology)Site trung tâm, site phụ hay ngang hàng?
Chi phí truyền tảiTăng nếu join từ xa, cần tối ưu bằng cache hoặc pre-aggregation
Khả năng mở rộngThiết kế phải cho phép thêm site mới dễ dàng

🧭 4. Ví dụ tình huống thiết kế thực tế

Tình huống: Công ty có 3 chi nhánh: Hà Nội, Đà Nẵng, TP.HCM.

  • Dữ liệu khách hàng chia theo vùng → phân mảnh ngang theo địa phương
  • Bảng sản phẩm giống nhau tại mọi chi nhánh → full replication
  • Bảng đơn hàng: mỗi site xử lý riêng, nhưng cần tổng hợp báo cáo → partial replication + ETL định kỳ

✅ Mục tiêu:

  • Truy vấn cục bộ nhanh
  • Hạn chế truyền dữ liệu qua mạng
  • Đảm bảo khả năng báo cáo toàn cục

🧱 5. Gợi ý chiến lược thiết kế phân tán hiệu quả

Tình huốngChiến lược
Dữ liệu thay đổi thường xuyênTránh full replication, ưu tiên phân mảnh
Site cần xử lý độc lậpTự chủ + phân mảnh + đồng bộ định kỳ
Cần báo cáo thống nhấtDùng data warehouse hoặc kết hợp ETL từ các site
Dữ liệu truy cập nhiềuReplicate theo nhu cầu đọc (read-intensive)
Môi trường mạng yếuTránh join từ xa, dùng cache hoặc pre-aggregation

Bài viết liên quan:

Giới thiệu khái niệm Data Warehouse và một số mô hình phổ biến
Triển Khai Ứng Dụng Web Và Ứng Dụng Azure App Service
Triển Khai Quản Lý Lưu Lượng Và Chiến Lược Giám Sát Cho Dịch Vụ Web
CI/CD
Thực Hiện Dịch Vụ Web Và Quản Lý API Trên AZURE
Giới Thiệu Về Dịch Vụ WCF
Hosting Và Tiêu Thụ Web API
Các Tính Năng Bảo Mật Của AZURE
API VÀ API Restful Dành Cho Ứng Dụng Doanh Nghiệp
Tổng Quan về API Web
Làm Việc Với Dữ Liệu Trong Ứng Dụng AZURE
Cơ Chế Truy Cập Dữ Liệu Trong Azure

THÊM BÌNH LUẬN Cancel reply

Dịch vụ thiết kế Wesbite

NỘI DUNG MỚI CẬP NHẬT

Đăng nhập và xác thực người dùng với ASP.NET Core Identity

Triển khai Repository Pattern và Unit of Work trong ASP.NET Core

GUI/Desktop Apps với C#

Xác thực thông qua Token trong ứng dụng Web sử dụng .NET Core

Tổng quan về Fluent Model và AutoMapper trong ASP.NET Core MVC

Giới thiệu

hocvietcode.com là website chia sẻ và cập nhật tin tức công nghệ, chia sẻ kiến thức, kỹ năng. Chúng tôi rất cảm ơn và mong muốn nhận được nhiều phản hồi để có thể phục vụ quý bạn đọc tốt hơn !

Liên hệ quảng cáo: [email protected]

Kết nối với HỌC VIẾT CODE

© hocvietcode.com - Tech888 Co .Ltd since 2019

Đăng nhập

Trở thành một phần của cộng đồng của chúng tôi!
Registration complete. Please check your email.
Đăng nhập bằng google
Đăng kýBạn quên mật khẩu?

Create an account

Welcome! Register for an account
The user name or email address is not correct.
Registration confirmation will be emailed to you.
Log in Lost your password?

Reset password

Recover your password
Password reset email has been sent.
The email could not be sent. Possible reason: your host may have disabled the mail function.
A password will be e-mailed to you.
Log in Register
×