You are on page 1of 18

Bạn cần tài liệu bằng Anh-ngữ hay Việt-ngữ? Việt-Ngữ thì tôi chịu thua.

Trong những
lần về Sài Gòn, tôi cũng có ghé qua những tiệm sách, nhưng không thấy có sách nào về
CSDL phân tán. Chúng ta vẫn còn đang trong thời kỳ phôi thai về CNTT, cho nên sách
quý khó tìm. Không phải chỉ riêng Việt Nam chúng ta, mà nhiều quốc gia khác cũng
chung...số phận, kể cả những quốc gia đã phát triển.

Nếu bạn cần tài liệu bằng Anh-ngữ, thì có hàng hà sa số. Bạn chỉ cần lên mạng, google
"Distributed Database", thì bạn sẽ tìm thấy ít nhất là vài trăm tài liệu, đọc mệt xỉu. Nhưng
có một trang web của Wikipedia, mà tôi nghĩ rằng sẽ cho bạn một khái niệm khá tốt về
CSDL phân tán:

http://en.wikipedia.org/wiki/Distributed_database

Điều quan trọng nhất, là phải hiểu CSSL phân tán là gì, và đặc biệt là trong những trường
hợp nào chúng ta cần đến CSDL-PT.

Lấy thực tế làm thí dụ, một trong những tập đoàn cần CSDL-PT nhất là một tập đoàn có
nhiều cơ sở buôn bán, chẳng hạn như V-Mart ở Việt Nam, hay Sears ở Mỹ. Đây là những
tập đoàn có những tiệm bán lẻ trên nhiều thành phố khác nhau. Tôi không biết V-Mart có
bao nhiêu tiệm, nhưng Sears ở Mỹ có vài ngàn tiệm. Hãy dùng V-Mart để làm thí dụ:

Mỗi tiệm V-Mart có một máy chủ dùng CSDL. Dĩ nhiên, CSDL này cung cấp cho tiệm
nhiều dữ liệu vô cùng cần thiết cho việc buôn bán: từ số hàng còn tồn kho, cho đến
những số hàng đã bán được trong ngày, trong tuần.

Từ văn phòng chính của V-Mart, cũng có máy chủ dùng CSDL. Ở đây là máy chính có
thể thu nhập được những dữ liệu từ hàng chục tiệm V-Mart ở nhiều tỉnh, nhiều nơi khác
nhau gửi về hàng đêm. Hay ít nhất, người chủ của V-Mart
cũng hy vọng có một ngày máy chủ có khả năng như thế. Bởi vì, nếu được như thế, ông
ta có thể ngồi tại văn phòng chính, mà có thể theo dõi số thu nhập của tất cả các tiệm V-
Mart ở khắp mọi nơi. Tuyệt vời hơn nữa, ông ta còn có thể theo dõi số hàng tồn kho của
từng tiệm, để có thể sắp xếp những chuyến xe tải hàng cần thiết chở dàng đến từng tiệm
theo nhu cầu.

Trên căn bản, V-Mart đã có một CSDL phân tán. Điểm thiết yếu nhất ở đây, là câu hỏi:
làm sao để dữ liệu từ các CSDL của tất cả các tiệm được chuyển về CSDL của văn phòng
chính qua hệ thống kết nối. Bởi vì, nếu dữ liệu không được chuyển về (ít nhất là hàng
đêm), thì tất cả những CSDL của tất cả các tiệm đều chỉ là những CSDL rời rạc, không
cùng chung một hệ thống.

SQL Server có nhiều dụng thể cần thiết cho DLPT, và hai dụng thể cần thiết nhất là SQL
Agent và Replicated Server. Trên lý thuyết, nếu tất cả các CSDL đã được kết nối với
nhau, chúng ta không cần đến SQL Agent và Replicated Server, vì chúng ta có thể dùng
Linked Server để đọc những dữ liệu từ tất cả các CSDL. Nhưng trên thực tế, tốc độ xử lý
không cho phép, cho nên, SQL Agent và Replicated Server là hai phương tiện giúp chúng
ta đạt được tốc độ xử lý khả quan.
Bạn có thể google SQL Agent/Replicated Server để lấy thêm tài liệu. Và tôi không nghĩ
rằng bạn có thể lấy được tài liệu của SQL Agent bằng tiếng Việt ở bất cứ đâu, ít nhất là
trong giai đoạn hiện tại.

Nhân bản trong cơ sở dữ liệu phân tán


Vấn đề nhân bản trong cơ sở dữ liệu phân tán
1. Giới thiệu
Vấn đề nhân bản dữ liệu là một trong những đặc trưng cơ bản của các ứng dụng phân tán.
Nhân bản tức là từ một bản CSDL tập trung đầu tiên người ta tiến hành sao chép ra một
số bản sao (ảnh) cần thiết, và đặt chúng tại các trạm thích hợp trong mạng máy tính phục
vụ nhu cầu phân tán dữ liệu.
Môi trường nhân bản được định nghĩa là tập hợp các đối tượng được nhân bản, các ảnh,
và các phương pháp để thực hiện việc nhân bản. Các vấn đề cần quan tâm khi tạo ra một
môi trường nhân bản là:
• Xác định rõ các đối tượng muốn nhân bản. Các đối tượng phải là thành viên của một
nhóm nhân bản. Một nhóm nhân bản có thể bao gồm các đối tượng từ nhiều lược đồ dữ
liệu, nhưng mỗi đối tượng có thể chỉ thuộc về một nhóm đối tượng.
• Xác định trạm muốn có các nhân bản. Xác định trạm nào sẽ là trạm chủ chứa tất cả các
nhân bản, và xác định trạm nào là trạm Snapshot sẽ chứa đựng một tập con các nhân bản.
• Xác định cách thức mà dùng để truyền đi các thay đổi giữa các trạm nhân bản: đồng bộ
hay không đồng bộ. Nếu chọn phương pháp không đồng bộ thì phải xác định thường
xuyên cách thức truyền đi các thay đổi như thế nào.
• Một vấn đề nữa là phải phân quyền dữ liệu, ngăn ngừa xung đột khi cập nhật, chọn một
phương pháp để giải quyết các xung đột. Tuy nhiên, nếu tất cả các trạm chủ và Snapshot
đều truyền các thay đổi của mình theo phương pháp đồng bộ thì không cần phải quan tâm
đến vấn đề xung đột.
Sau khi đã xác định được các đối tượng muốn nhân bản, cần phải thiết lập quyền cần thiết
để tạo các đối tượng tại mỗi trạm. Hơn nữa khi đã xác định được các trạm sẽ tạo nên môi
trường nhân bản, ta phải chắc chắn rằng các trạm đó có thể liên lạc với nhau bằng việc
tạo ra các kết nối CSDL cần thiết.
Có ba phân cấp quyền dành cho người sử dụng như sau:
• Người quản trị nhân bản: có nhiệm vụ tạo ra cấu hình và bảo trì môi trường nhân bản.
Có thể tạo một người quản trị nhân bản từ người quản trị tất cả các đối tượng tại một
trạm, hoặc có thể có nhiều người quản trị khác nhau cho các đối tượng nhân bản trong
từng lược đồ.
• Symmetric replication faclity: bảo đảm sự hoạt động của nhân bản như SYS và phải
thực hiện trên các trạm ở xa.
• Người sử dụng: gửi các yêu cầu và cập nhật vào các đối tượng nhân bản.
Trong một môi trường nhân bản, mỗi trạm chứa một bản sao các dữ liệu cần thiết cho các
chức năng của nó thực hiện, cũng tồn tại nhiều trạm có các bản sao của cùng một dữ liệu.
Việc bảo vệ nhiều bản sao dữ liệu tại các trạm yêu cầu một hệ thống lớn hơn, và đòi hỏi
phải có sự phù hợp trong vấn đề yêu cầu các địa phương truy nhập tới dữ liệu từ nhiều
địa điểm, đó là việc giải quyết các xung đột trong khi thao tác với dữ liệu của Hệ CSDL
phân tán.
2. Mục đích của nhân bản
2.1. Tăng hiệu hiệu năng máy tính
Nhân bản dữ liệu đến các server làm tăng hiệu năng đáp ứng thời gian thực của hệ thống,
giải quyết được tình trạng thắt nút cổ chai (bottleneck), và làm giảm số lượng đầu vào
một cách đáng kể (số lượng user vào thao tác trên dữ liệu giảm).
2.2. Tăng tính sẵn sàng
Nếu dữ liệu được nhân bản đến nhiều server độc lập nhau thì có thể thay thế server mặc
định bằng server khác khi server mặc định bị hư, do đó xác suất để hệ thống sẵn sàng
tăng lên, cũng có nghĩa là khả năng thành công cho một ứng dụng bất kì tăng lên. Giả sử
có n nhân bản và xác suất để một máy chết là p lúc đó xác suất để n máy chết là pn do đó
độ sẵn sàng sẽ là 1-pn rất nhỏ.
2.3. Giảm thiểu sai sót
Khả năng này mạnh hơn tính sẵn sàng cao, vì nó có thể bao gồm cả đảm bảo về thời gian
thực và đảm bảo về các sai sót không mong muốn sẽ không xuất hiện.
3. Các khái niệm cơ bản về Nhân bản
3.1. Nhân bản cơ sở
Nhân bản cơ sở là nhân bản sử dụng các Read-only Snapshot và tuân theo một dạng của
trạm nhân bản đầu tiên. Dữ liệu ở các Read-only Snapshot sẽ được định kỳ làm tươi, quá
trình này được so sánh tương tự như việc cập nhật các thay đổi về dữ liệu từ bảng CSDL
chính của các Read-only Snapshot.
3.2. Các nhóm nhân bản (Replication Groups)
Một đối tượng nhân bản (Replication Object): Là một phần CSDL được sao tới một hay
nhiều trạm trong hệ thống phân tán. Các nhóm nhân bản là đơn vị cơ bản cho việc điều
khiển và quản lý tiến trình nhân bản. Đây là một đặc trưng tạo ra bởi người quản trị nhân
bản cho toàn bộ các đối tượng nhân bản, kết hợp một đặc tính ứng dụng và được nhân
bản tới một tập các trạm.
Các tính chất:
• Các thành viên của một nhóm nhân bản có thể nối qua nhiều lược đồ và ngược lại, một
lược đồ có thể chứa nhiều các nhóm nhân bản.
• Một nhân bản đối tượng có thể là thành viên của chỉ một nhóm nhân bản.
3.3. Các trạm nhân bản (Replication Sites)
Một nhóm nhân bản có thể được sao từ một hoặc nhiều trạm nhân bản. Có hai vấn đề cơ
bản cho các trạm nhân bản là:
• Các trạm chủ (Master sites): Phải chứa một bản sao đầy đủ của tất cả các đối tượng
trong nhóm nhân bản. Mỗi trạm chủ sẽ chuyển các thay đổi của nó tới trạm chủ khác cho
các nhóm nhân bản.
• Các trạm Snapshot (Snapshot sites): Là trạm có thể chứa một hay một tập các đối tượng
trong nhóm nhân bản.
Các trạm Snapshot phải có sự cộng tác với trạm chủ (mặc dù trạm chủ này có thể thay đổi
nếu cần thiết) và không giống các trạm chủ, các trạm Snapshot chỉ nhận sự thay từ trạm
chủ cộng tác. Các nhóm nhân bản phải có một và chỉ một định nghĩa trạm chủ. Sự định
nghĩa vị trí chủ được sử dụng như cách điều khiển cho hoạt động quản lý thực hiện, và
các trạm chủ có thể được định nghĩa từ bất kỳ trạm nào trong hệ thống. Hình dưới đây thể
hiện một nhân bản có thể tham dự trong nhiều nhóm nhân bản. Trạm A là Snapshot cho
3, là định nghĩa trạm chủ cho 2, và là trạm chủ cho 1.

Các trạm nhân bản trong môi trường nhân bản


3.4. Danh mục nhân bản
Nhân bản sử dụng một danh mục nhân bản thông tin, giống như các đối tượng được nhân
bản, nơi chúng được nhân bản và cập nhật như thế nào cần được truyền tới danh mục
nhân bản, từ đó các bảng dữ liệu có thể quay trở lại và tìm được.
4. Phân loại môi trường nhân bản
4.1. Đơn chủ với nhiều trạm Read-only Snapshot
Có nghĩa là từ một CSDL chính, người ta tiến hành tạo ra các Read-only Snapshot khác
nhau, và các bảng chính có quyền truy nhập địa phương cho nhiều trạm Read-only
Snapshot .
4.2. Đa nhân bản chủ
Từ một trạm chủ người ta nhân bản CSDL ra làm nhiều bản và định vị vào các trạm mà
từ đó sẽ có một tập hợp các trạm khác nhân bản dữ liệu từ nó. Toàn bộ các bảng chủ tại
tất cả các trạm có thể được cập nhật. Khi có sự thay đổi từ một bảng chủ, thay đổi đó sẽ
được truyền chính xác tới tất cả các bảng chủ khác theo phương thức đồng bộ hoặc không
đồng bộ.
4.3. Đơn chủ với đa trạm Updatable Snapshot
Nhiều trạm Updatable Snapshot có thể sử dụng thông tin từ một trạm chủ đơn. Tuy nhiên
các yêu cầu được đưa vào theo thứ tự và được xử lý tại các trạm cố định.
Một Updatable Snapshot được làm tươi từ bảng chủ trong một giao tác thống nhất. Các
thay đổi từ Updatable Snapshot có thể được tiến hành từ bảng chủ là đồng bộ hoặc không
đồng bộ. Ngoài ra các thay đổi ngay trên các Updatable Snapshot cũng được gửi tới trạm
chủ.

Các trạm Updatable Snapshot sử dụng thông tin từ một bảng chủ
4.4. Đơn chủ với nhiều trạm Read-Only Snapshot và đa nhân bản chủ
Là sự kết hợp giữa nhân bản nhiều bản chính và nhiều các trạm Read-only Snapshot.

Đơn chủ với nhiều trạm Read-Only Snapshot và đa nhân bản chủ
Đa nhân bản Snapshot chủ là: Có một số trạm Snapshot chủ, bảng đầy đủ và tập các bảng
nhân bản có thể được kết hợp trong một hệ thống. Hình trên thể hiện đa nhân bản giữa
hai Snapshot chủ có thể chứa nhân bản bảng đầy đủ giữa hai trạm chủ chứa hai miền. Các
Snapshot có thể được định nghĩa trên các Snapshot chủ từ các bảng nhân bản đầy đủ hoặc
tập các bảng từ các trạm thuộc các miền.
Lợi ích của đa nhân bản: Các Snapshot có thể được điều khiển từ các trạm chủ khác. Nếu
một trạm chủ bị lỗi, các Snapshot có thể được làm tươi từ trạm chủ khác và tiếp tục quá
trình xử lí.
4.5. Sự khác nhau giữa Updatable Snapshot và các nhân bản chủ
• Các nhân bản chủ phải gồm dữ liệu của một bảng đầy đủ được nhân bản. Các Snapshot
có thể nhân bản các tập con dữ liệu của bảng chủ.
• Nhiều nhân bản chủ cho phép nhân bản các thay đổi cho mỗi giao tác như chúng tìm
thấy, trong khi các Snapshot là tập cố định, lan truyền thay đổi từ nhiều giao tác hiệu quả
hơn.
• Nếu các mâu thuẫn xảy ra như kết quả của các thay đổi tới nhiều bản sao của cùng dữ
liệu, các mâu thuẫn được tìm ra và giải quyết bởi các trạm chủ.
5. Lan truyền sự thay đổi giữa các nhân bản
5.1. Giới thiệu
Khi thay đổi một đối tượng trong môi trường nhân bản, thay đổi này ngay lập tức sẽ được
lan truyền tới tất cả các trạm chủ, các trạm Snapshot cũng được thay đổi tương ứng. Lựa
chọn giữa hai phương pháp: Phương pháp không đồng bộ và phương pháp đồng bộ chính
là sự lựa chọn giữa những thuộc tính sẵn có và những thuộc tính phức tạp hơn. Cả hai
phương pháp đồng bộ và không đồng bộ đều có ưu điểm riêng theo yêu cầu và các bản
sửa đổi địa phương của dữ liệu.
Với môi trường đồng bộ, có thể cập nhật dữ liệu tại tất cả các trạm, các mâu thuẫn cập
nhật không bao giờ xảy ra.
Với môi trường không đồng bộ, ưu điểm là sử dụng những thuộc tính sẵn có. Không có
sự phụ thuộc vào các thay đổi ở một trạm khác. Nếu có một trạm bị lỗi thì có thể chuyển
tới trạm khác và tiếp tục làm việc.
5.2. Phương pháp đồng bộ
Đặc điểm:
• Sự thay đổi tại các trạm sẽ lập tức phản xạ tới trạm của bạn.
• Một dữ liệu có thể được cập nhật tại nhiều trạm, chúng ta không phải quan tâm đến các
mâu thuẫn sẽ xuất hiện trong quá trình cập nhật.
• Khi hệ thống mạng bị lỗi tại một trạm nhân bản, các thay đổi sẽ được truyền đồng bộ,
do đó cho đến khi lỗi mạng được khắc phục hoặc gỡ bỏ các trạm lỗi trong môi trường
nhân bản, việc cập nhật tại các địa phương là không được phép.
• Thời gian trả lời các thay đổi có thể chậm hơn, vì phải trả lời từ tất cả các trạm trước khi
chuyển giao hoặc quay lại một giao tác.
• Các thủ tục truyền dữ liệu đồng bộ là tuỳ chọn cho các môi trường với dữ liệu Read-
Often/Write-Occasionally.
5.3. Phương pháp không đồng bộ
Đặc điểm:
• Lỗi tại các trạm hoặc lỗi mạng không làm ảnh hưởng đến các trạm khác. Tức là khả
năng chịu lỗi tốt hơn.
• Thời gian đáp ứng các thay đổi được cải thiện hơn so với phương pháp đồng bộ vì
không phải đợi đáp ứng từ một trạm ở xa.
• Làm chậm các giao tác được lan truyền tại bất cứ khoảng cách.
• Thay đổi tại các trạm không phản xạ ngay lập tức tới trạm khác, kết quả tạm thời là có
mâu thuẫn giữa các nhân bản.
• Mâu thuẫn thay đổi có thể làm tại nhiều trạm. Các mâu thuẫn sẽ không được tìm ra
trong khi các thay đổi được truyền.
5.4. Kỹ thuật lan truyền sự thay đổi của các trạm dữ liệu không đồng bộ
5.4.1. Làm chậm các giao tác
Cho nhiều nhân bản chủ và nhân bản từ Updatable Snapshot tới các trạm chủ. Hệ quản trị
cơ sở dữ liệu có thể sinh ra một Trigger và thủ tục lưu trữ bảng chứa nhân bản của các
trạm dữ liệu bị thay đổi. Khi có một thay đổi địa phương các thủ tục lưu trữ được gọi và
thực hiện việc cập nhật các thay đổi.
5.4.2. Làm tươi Snapshot
Để lan truyền các thay đổi từ bảng chính tới các Read-Only Snapshot hoặc Updatable
Snapshot, có thể sử dụng kỹ thuật làm tươi Snapshot thay cho việc nhân bản trạm hàng.
Thực hiện làm tươi Snapshot:
• Một thay đổi tại trạm chủ từ khi Snapshot được tạo hoặc được làm tươi trước đó được
truyền tới Snapshot.
• Sự thay đổi các giao tác được lan truyền có hiệu quả, xử lý định hướng từng đợt.
Vì Snapshot là một đơn vị cơ sở được sao hoặc làm tươi, nên nếu muốn làm tươi hai hoặc
nhiều Snapshot cùng một thời điểm thì ta chỉ cần tạo ra một nhóm các Snapshot được làm
tươi (Snapshot Refresh Groups).
5.4.3. Kỹ thuật nhân bản luân phiên
Kết hợp với phương pháp làm chậm giao tác và làm tươi Snapshot, hệ quản trị cơ sở dữ
liệu cung cấp hai phương pháp luân phiên cho việc truyền sự thay đổi trạm dữ liệu giữa
các nhân bản: nhân bản trạm hàng đồng bộ, nhân bản thủ tục.
Nhân bản trạm hàng đồng bộ: sử dụng như nhân bản trạm hàng, truyền các thay đổi trạm
dữ liệu như kỹ thuật làm chậm giao tác nhưng không sử dụng hàng đợi làm chậm giao
tác. Khi có sự thay đổi từ một nhân bản bảng, hệ sẽ kích hoạt một trigger, trigger gọi các
thủ tục thực hiện tại mỗi trạm chủ tương ứng với các thay đổi.
Nhân bản thủ tục: gọi thủ tục lưu trữ được sử dụng để cập nhật dữ liệu, tuy nhiên không
nhân bản các bảng tự cập nhật.

Lan truyền sự thay đổi vị trí không đồng bộ

Nhân bản là một trong những mô hình phân tán dữ liệu.


Dựa vào các phương pháp thiết kế phân đoạn cơ sở dữ liệu người ta tiến hành phân tán
dữ liệu theo nhiều cách khác nhau, trong đó có một số phương pháp chính thường được
sử dụng là:
1. Phân tán dữ liệu hoàn toàn.
a. Định nghĩa
Là phương pháp thực hiện phân chia bảng dữ liệu của quan hệ tổng thể thành các phần
hoàn toàn độc lập với nhau, sau đó định vị chúng vào các trạm thích hợp theo các ứng
dụng và yêu cầu thực tế. Các cơ sở dữ liệu tại các trạm được kết nối với nhau thông qua
các kết nối cơ sở dữ liệu (database link).
b. Mô hình phân tán dữ liệu hoàn toàn

Mô hình phân tán dữ liệu hoàn toàn


Khi một trạm này muốn truy cập đến cơ sở dữ liệu của trạm khác thì liên kết cơ sở dữ
liệu sẽ được thiết lập để phục vụ cho việc truyền nhận dữ liệu. Liên kết cơ sở dữ liệu có
thể hiểu như là các kết nối mạng nối các máy tính chứa cơ sở dữ liệu với nhau. Và trong
thực tế thì khối lượng truyền dữ liệu sẽ là rất lớn, do đó cần phải có một đường truyền
thật tốt để áp dụng phương pháp này.
Không có khái niệm về các trạm chủ trong phương pháp phân tán này, cũng như vậy sự
tồn tại của trạm trung tâm để lưu trữ toàn bộ cơ sở dữ liệu là không cần thiết vì khi cần
tổng hợp dữ liệu có thể thực hiện tại bất kỳ trạm nào trong hệ thống mạng của ứng dụng,
dữ liệu sẽ hoàn toàn được truyền trực tiếp. Giải pháp để giữ cho dữ liệu được an toàn thì
tại mỗi trạm cần có tối thiểu hai Server trong đó có một Server hoạt động theo chế độ dự
phòng hoặc chỉ cần một máy có khả năng lưu trữ toàn bộ dữ liệu của hệ thống.
Với các đặc điểm như trên phương pháp phân tán dữ liệu kiểu này tránh được dư thừa dữ
liệu cao nhất, dữ liệu được phân tán thực sự tại các trạm.
Ví dụ: Hệ thống quản lý vật tư của Công ty TNHH ABC
Thực trạng của Công ty là: Công ty TNHH ABC chuyên kinh doanh các loại vật tư. Công
ty có ba chi nhánh đảm nhận công việc kinh doanh của một số loại vật tư như sau:
- Chi nhánh 1: Chuyên kinh doanh Xi măng, Sắt, Thép.
- Chi nhánh 2: Chuyên kinh doanh các đồ trang trí nội thất.
- Chi nhánh 3: Chuyên kinh doanh các đồ điện gia dụng.
Các chi nhánh của Công ty nằm trong cùng một Quận của thành phố và Công ty đã trang
bị được một hệ thống mạng nội bộ hiện đại.
Nhiệm vụ của hệ thống: Quản lý thông tin ( Số lượng tồn, số lượng xuất, …) về các loại
mặt hàng của Công ty.
Giải pháp phân tán dữ liệu cho bài toán: Dựa trên thực trạng là các chi nhánh của Công ty
kinh doanh và quản lý các loại mặt hàng là độc lập với nhau, các chi nhánh được phân bố
khá gọn đồng thời Công ty cũng đã có một hệ thống mạng cục bộ tương đối tốt. Giải
pháp phân tán dữ liệu phù hợp cho bài toán này là dùng phương pháp phân tán dữ liệu
hoàn toàn.
c. Các ưu điểm của phương pháp phân tán dữ liệu hoàn toàn
+ Tính hiệu quả: Dữ liệu được chứa ở nơi nó được sử dụng và được ngăn cách với các dữ
liệu người sử dụng đang dùng hay ứng dụng khác.
+ Tối ưu hoá cục bộ: Dữ liệu được lưu trữ ở nơi thích hợp làm tối ưu hoá các quá trình
truy xuất dữ liệu cục bộ.
+ An toàn dữ liệu: Dữ liệu không thích hợp với nhu cầu sử dụng tại một trạm làm việc
nào đó bị vô hiệu hoá.
+ Xây dựng cơ sở dữ liệu và các ứng dụng đơn giản.
+ Giảm mức độ dư thừa dữ liệu.
d. Các nhược điểm của phương pháp phân tán dữ liệu hoàn toàn
+ Tốc độ truy cập không nhất quán: Có thể sẽ phải truy cập dữ liệu từ các trạm khác để
phục vụ cho quá trình xử lý mà thời gian truy cập dữ liệu ở các trạm khác sẽ có thể tốn
rất nhiều hơn so với thời gian truy cập dữ liệu tại chính trạm đó.
+ Việc sao lưu không thuận tiện: phải thực hiện việc sao lưu trên từng trạm.
+ Phạm vi phân tán hạn chế: nếu có nhiều trạm thì sẽ cần phải tốn rất nhiều liên kết cơ sở
dữ liệu để liên kết các trạm lại với nhau.
e. Các ứng dụng phù hợp
+ Các ứng dụng có cơ sở dữ liệu nhỏ và vừa.
+ cơ sở dữ liệu tự nó đã có sự phân chia thành các phần độc lập.
2. Phương pháp phân tán phân vùng.
a. Định nghĩa
Phương pháp phân tán phân vùng thực hiện phân chia bảng dữ liệu của quan hệ tổng thể
thành các bảng dữ liệu độc lập nhưng có cấu trúc giống hệt nhau, sau đó định vị chúng
vào các trạm thích hợp. Đây là phương pháp sử dụng kỹ thuật phân đoạn ngang trong thết
kế cơ sở dữ liệu phân tán.
b. Mô hình phân tán dữ liệu của phương pháp phân vùng

Mô hình phân tán dữ liệu phân vùng


Các khái niệm về trạm chủ và trạm ảnh trong phương pháp này được đề cập đến: Thông
thường các cơ sở dữ liệu được định vị tại các trạm (trong thực tế thường là các chi
nhánh), trung tâm sẽ tổng hợp cơ sở dữ liệu tại các chi nhánh qua các ảnh. Như vậy, các
chi nhánh thường đóng vai trò là trạm chủ và trung tâm là trạm ảnh. Cũng có dữ liệu chỉ
được cập nhật tại trạm trung tâm, các chi nhánh muốn tra cứu sẽ qua ảnh. Khi đó trung
tâm đóng vai trò là trạm chủ còn các chi nhánh đóng vai trò là trạm ảnh.
Mỗi trạm có một cơ sở dữ liệu độc lập nhưng không giống như ở phương pháp phân tán
hoàn toàn. Trong phương pháp này mỗi khi cần tổng hợp báo cáo thông tin về một loại
dữ liệu nào đó thì tại trạm trung tâm, theo định kỳ dữ liệu sẽ được làm tươi toàn bộ, phản
ánh đúng tình trạng dữ liệu tại các trạm. Sau đó mới bắt đầu công việc tổng hợp báo cáo
các thông tin theo yêu cầu.
Quá trình làm tươi dữ liệu thường sử dụng phương pháp làm tươi nhanh (chỉ cập nhật các
thay đổi ) do đó lượng dữ liệu truyền đi hạn chế hơn nên có thể truyền trực tiếp hoặc qua
đường điện thoại.
Để đảm bảo cho các dữ liệu được an toàn, tại trung tâm phải có ít nhất hai máy chủ trong
đó một máy sẽ hoạt động theo chế độ dự phòng.
Ví dụ: Quản lý khách hàng của Bưu điện Hà Nội.
Bưu điện Hà Nội cần phải quản lý khách hàng trên toàn địa bàn thành phố Hà Nôi sử
dụng dịch vụ điện thoại cố định. Dưới bưu điện Hà Nội có các bưu điện các quận huyện:
bưu điện Hoàn Kiếm, bưu điện Ba Đình, bưu điện Đống Đa, bưu điện Hai Bà Trưng, bưu
điện Thanh Xuân, bưu điện Cầu Giấy, bưu điện Long Biên, bưu điện Tây Hồ, bưu điện
Hoàng Mai, bưu điện Gia Lâm, bưu điện Từ Liêm, bưu điện Thanh Trì, bưu điện Đông
Anh, bưu điện Sóc Sơn. Mỗi bưu điện các quận huyện đều có nhiệm vụ quản lý khách
hàng trong quận huyện đó.
Như vậy bưu điện Hà Nội phải quản lý một lượng Khách hàng lớn trên diện rộng. Như
vậy để tạo ra các điều kiện thuận lợi trong công tác quản lý thì ngoài giải pháp phân vùng
chắc chắn không còn giải pháp nào khác.
Các Khách hàng sẽ được quản lý trực tiếp tại các bưu điện của quận huyện thuộc địa
phận của khách hàng. Các ứng dụng khác như tính hoá đơn cũng được thực hiện tương
ứng với từng Khách Hàng trong khu vực. Bưu điện Hà Nội sẽ là nơi lưu trữ các dữ liệu
của riêng nó và ảnh dữ liệu của tất cả các trạm phục vụ công tác quản lý và tổng hợp báo
cáo…
c. Các ưu điểm của phương pháp phân vùng
+ Tránh chèn một hàng sai trạm.
+ Cho phép thực hiện nhanh hơn các thao tác: Lấy dữ liệu, sửa, tạo index … tại từng
vùng do đó giảm được thời gian xử lý dữ liệu.
d. Các nhược điểm của phương pháp phân vùng
+ Thực hiện phân chia dữ liệu tương đối phức tạp.
e. Các ứng dụng phù hợp
+ Ứng dụng có lượng dữ liệu lớn.
+ Các ứng dụng có phạm vi địa lý tương đối rộng.
+ Các dữ liệu bị ràng buộc bởi một số điều kiện khách quan.
3. Phương pháp phân tán sử dụng các nhân bản.
a. Định nghĩa
Là phương pháp phân tán sử dụng các bảng copy còn gọi là các bảng ảnh của một hay
nhiều phần dữ liệu từ bảng chủ định vị vào các trạm ở xa.
b. Mô hình phân tán dữ liệu của phương pháp phân tán dữ liệu sử dụng nhân bản
Mô hình phân tán sử dụng nhân bản
Số lượng các nhân bản nhiều hay ít phụ thuộc vào yêu cầu và mục đích của người sử
dụng cần tra cứu như thế nào, cho nên tại các trạm khác nhau có thể có nhiều các bản sao
dữ liệu trùng lặp, đây cũng là nguyên nhân khiến cho phương pháp này có dữ liệu dư
thừa cao nhất. Một đặc điểm nữa cần nhấn mạnh là dữ liệu ảnh được tạo ra từ phương
pháp này chỉ phục vụ tra cứu mà không cập nhật được.
Vì yêu cầu và mục đích của người sử dụng tương đối đa dạng cho nên phương pháp phân
tán sử dụng các nhân bản kết hợp rất nhiều kỹ thuật nhân bản cơ sở dữ liệu: nhân bản
theo hàng, nhân bản theo cột và nhân bản hỗn hợp (hàng và cột).
Dữ liệu thường được truyền qua đường điện thoại.
Ví dụ: cơ sở dữ liệu về Văn bản Pháp quy của Văn phòng Chính Phủ.
Cơ sở dữ liệu về Văn bản Pháp quy có đặc điểm là các thao tác làm thay đổi cơ sở dữ liệu
chỉ được thực hiện tại văn phòng Chính Phủ nhưng được tra cứu bởi tất cả các Tỉnh,
Thành Phố trong cả nước.
Dựa trên đặc điểm như trên của cơ sở dữ liệu, nếu sử dụng hai phương pháp phân tán dữ
liệu là hoàn toàn và phân vùng là không hợp lệ cả về chuyên môn và tính chất kinh tế của
ứng dụng.
Vậy giải pháp thích hợp cho cơ sở dữ liệu này là sử dụng nhân bản dữ liệu.
c. Các ưu điểm của phương pháp phân tán sử dụng các nhân bản dữ liệu
+ Dễ xây dựng cơ sở dữ liệu cũng như các chương trình ứng dụng.
+ Độ tin cậy: Nếu cơ sở dữ liệu tại một trong các chi nhánh bị hỏng thì ta có thể tìm thấy
bản copy của chính nó tại cơ sở dữ liệu của chi nhánh khác.
+ Tốc độ truy xuất dữ liệu nhanh: Tại mỗi chi nhánh đều có đầy đủ cơ sở dữ liệu để phục
vụ cho các quy trình truy xuất dữ liệu từ phía người sử dụng. Quá trình này xảy ra ngay
tại trạm làm việc, vì vậy tốc độ truy vấn dữ liệu diễn ra nhanh hơn.
+ Có thể sử dụng đường điện thoại để truyền dữ liệu đi xa.
+ Mỗi trạm đều có thể sử dụng toàn bộ dữ liệu của cơ sở dữ liệu.
d. Các nhược điểm của phương pháp phân tán sử dụng các nhân bản
+ Dung lượng đĩa tăng lên: Để mọi nơi đều có một bản sao cơ sở dữ liệu đầy đủ thì tại
mỗi trạm cần có một khoảng trống đĩa bằng dung lượng phải có nếu muốn lưu trữ ở máy
trung tâm. Có nghĩa là ta phải tốn một dung lượng đĩa lưu trữ gấp nhiều lần kích thước cơ
sở dữ liệu muốn tạo nhân bản lưu.
+ Giá thành và tính phức tạp của việc cập nhật dữ liệu tăng lên: Vì khi muốn cập nhật
một quan hệ nào đó thì phải thực hiện trên tất cả các trạm có chứa bản sao lưu. Tiến trình
trở nên phức tạp và tốn kém.
e. Các ứng dụng phù hợp
+ Dữ liệu phục vụ nhiều cho mục đích tra cứu hoặc dữ liệu là tương đối tĩnh (danh bạ
điện thoại. lịch tàu,…).
+ Các cơ sở dữ liệu không quá lớn nhưng phạm vi địa lý ứng dụng rộng.
4. Kết hợp các chiến lược.
Có rất nhiều cách kết hợp các chiến lược ví dụ: Một số dữ liệu có thể lưu trữ ở trung tâm,
trong khi một số dữ liệu khác được nhân bản ở các trạm khác. Tương tự như vậy, với một
bảng quan hệ, cả hai chiến lược phân tán hoàn toàn và phân tán phân vùng được kết hợp
với nhau để phân tán dữ liệu.

Cơ sở dữ liệu phân tán


Vì yêu cầu của công ty, doanh nghiệp, đơn vị kinh doanh… về vấn đề tổ chức sao cho
kinh doanh có hiệu quả nhất và nắm bắt thông tin nhanh nhất khi các cơ sở của công ty
hiện ở những địa điểm xa nhau cho nên xây dựng một hệ thống làm việc trên cơ sở dữ
liệu phân tán là phù hợp xu hướng hiện nay vì hệ thống này thoả mãn được những yêu
cầu tổ chức của đơn vị. Lợi điểm về tổ chức và kỹ thuật của xu hướng phát triển cơ sở dữ
liệu phân tán là: giải quyết được những hạn chế của cơ sở dữ liệu tập trung và phù hợp xu
hướng phát triển tự nhiên với cơ cấu không tập trung của các tổ chức, công ty doanh
nghiệp…
Nói một cách đơn giản, cơ sở dữ liệu phân tán là tập hợp dữ liệu logic thuộc về cùng một
hệ thống nhưng trải rộng ra nhiều điểm trên mạng máy tính.

Tính chất của cơ sở dữ liệu phân tán:


Phân tán: Trong thực tế dữ liệu không đặt trên cùng một vị trí vì vậy đây là đặc điểm để
phân biệt cơ sở dữ liệu phân tán với cơ sở dữ liệu tập trung và cơ sở dữ liệu đơn lẻ.
Quan hệ logic: Trong cơ sở dữ liệu phân tán, dữ liệu có một số đặc tính liên kết chặt chẽ
với nhau như tính kết nối, tính liên quan logíc…

Kiến trúc cơ bản của một CSDL phân tán


Tuy không là kiến trúc tường minh cho tất cả các CSDL phân tán, nhưng kiến trúc dưới
đây thể hiện cách thức tổ chức chung của một CSDL phân tán:

Kiến trúc cơ bản của một CSDL phân tán


1. Sơ đồ tổng thể.
Định nghĩa tất cả dữ liệu sẽ được lưu trữ trong CSDL phân tán. Trong mô hình quan hệ,
sơ đồ tổng thể bao gồm định nghĩa của tập các quan hệ tổng thể.
2. Sơ đồ phân đoạn.
Mỗi quan hệ tổng thể có thể chia thành một vài phần tương đối độc lập với nhau được gọi
là fragments (đoạn). Có nhiều cách khác nhau để thực hiện việc phân chia này: Phân đoạn
ngang, phân đoạn dọc, phân đoạn hỗn hợp sẽ được trình bày trong các phần sau.
3. Sơ đồ định vị:
Fragments (các đoạn) là các phần logic của quan hệ tổng thể được định vị vật lý tại một
hoặc nhiều vị trí trên mạng. Sơ đồ định vị định nghĩa đoạn định vị tại từng vị trí. Lưu ý
rằng kiểu ánh xạ được định nghĩa trong sơ đồ định vị quyết định CSDL phân tán là dư
thừa hay không.
4. Sơ đồ ánh xạ địa phương:
Thực hiện ánh xạ các ảnh vật lý và các đối tượng được lưu trữ tại một trạm lên các CSDL
địa phương.

III. GIỚI THIỆU VỀ GIAO TÁC.


1. Định nghĩa.
Giao tác là một dãy các hành động được thực hiện bởi một chương trình ứng dụng hay
bởi một người sử dụng, mà hoặc phải được thực hiện hoàn toàn hoặc là không được thực
hiện một hành động nào.
Khái niệm giao tác được sử dụng trong lĩnh vực CSDL như đơn vị cơ bản của tính toán
nhất quán và đáng tin cậy.
Trong quá trình thực hiện giao tác CSDL có thể tạm thời không nhất quán nhưng CSDL
phải nhất quán khi giao tác kết thúc. Tính tin cậy dựa vào hai khả năng sau:
- Khả năng phục hồi: Hệ thống phục hồi nhanh khi có nhiều kiểu lỗi xảy ra. Khi các lỗi
xảy ra, hệ thống có thể chịu đựng được và tiếp tục cung cấp các dịch vụ.
- Khôi phục: Hệ thống đạt được trạng thái nhất quán sẽ trở về trạng thái nhất quán trước
đó hoặc tiếp tới trạng thái nhất quán mới sau khi xảy ra lỗi. Nhất quán giao tác liên quan
tới sự thực hiện các truy nhập trùng nhau.
Việc quản lý giao tác tiếp xúc với các vấn đề : Giữ cho CSDL trong trạng thái nhất quán
khi xảy ra các truy nhập trùng nhau và các lỗi.
2. Các điều kiện kết thúc của giao tác.
Giao tác kết thúc khi toàn bộ công việc của nó thành công, hay nói một cách khác là giao
tác chuyển giao (Commit), ngược lại nếu một giao tác dừng lại trong khi chưa hoàn thành
các công việc của nó chúng ta nói giao tác bị loại bỏ (Abort).
Giao tác bị loại bỏ vì một số nguyên nhân sau:
- Một điều kiện không thoả mãn không cho giao tác hoàn thành các công việc của nó.
- DBMS loại bỏ giao tác, ví dụ khoá chết hoặc các điều kiện khác.
Khi một giao tác bị loại bỏ, quá trình thực hiện của nó bị dừng lại và toàn bộ công việc đã
làm được loại bỏ để đưa CSDL về trạng thái trước khi thực hiện giao tác, điều này cũng
được hiểu như Rollback.
Cũng có trường hợp người sử dụng do một số thông tin đầu vào bị sai, một số điều kiện
không được thoả mãn và có thể do yêu cầu của hệ thống như quá tải, tắc nghẽn.
3. Các thuộc tính của giao tác.
Tính nguyên tố:
Tính nguyên tố của giao tác quy định hoặc là tất cả các hành động, hoặc là không một
hành động nào của giao tác được thực hiện.
Nếu một giao tác bị ngắt bởi một sự cố nào đó thì kết quả các lệnh thực hiện giao tác đó
bị loại bỏ.
Nhất quán:
Có bốn mức nhất quán theo trình tự từ cao xuống thấp như sau:
Mức 3: Giao tác T nhìn mức nhất quán 3 nếu:
- T không ghi đè dữ liệu nháp của giao tác khác
- T không chuyển giao bất cứ một việc ghi nào đến khi nó hoàn thành hoàn toàn việc ghi
của nó.
- T không đọc dữ liệu nháp từ các giao tác khác.
- Các giao tác khác không nháp vào bất cứ dữ liệu nào đọc bởi T trước khi T hoàn thành.
Mức 2: Giao tác T nhìn mức nhất quán 2 nếu:
- T không ghi đè lên dữ liệu nháp của giao tác khác.
- T không chuyển giao bất kỳ việc ghi nào trước EOT.
- T không đọc dữ liệu nháp từ giao tác khác.
Mức 1: Giao tác T nhìn mức nhất quán 1 nếu:
- T không ghi đè lên dữ liệu nháp của giao tác khác.
- T không chuyển giao bất kỳ việc ghi nào trước EOT.
Mức 0: Giao tác T nhìn mức nhất quán 0 nếu:
- T không ghi đè lên dữ liệu nháp của giao tác khác.
Tính trình tự:
Nếu nhiều giao tác được thực hiện đồng thời thì kết quả của mỗi giao tác đó được thực
hiện một cách tuần tự. Các hành động đảm bảo tính trình tự của các giao tác được gọi là
điều khiển tương tranh.
Tính biệt lập:
Một giao tác khi đang được thực hiện thì các giao tác khác không thể sử dụng các kết quả
trung gian của các giao tác này.
Tính bền vững:
Mỗi khi giao tác được chuyển giao thì hệ thống phải đảm bảo chắc chắn là kết quả sẽ
không bị ảnh hưởng bởi các lỗi đến sau.

IV. ĐIỀU KHIỂN TƯƠNG TRANH PHÂN TÁN.


Điều khiển tương tranh liên quan tới tính độc lập và nhất quán của giao tác với mục tiêu
chính là đảm bảo tính nhất quán của CSDL.
Các thuật toán điều khiển tương tranh chia làm hai loại: Pessimistic và Optimistic.
1. Khái niệm xung đột và lịch đầy đủ.
Quy ước: Oij(x) là thao tác Oj của giao tác Ti trên mục dữ liệu x. Oj={Read, Write}.
Okl(x) cũng được quy ước tương tự.
Xung đột: Oij(x) và Okl(x) được gọi là xung đột nếu tối thiểu một trong hai thao tác là
viết (W),và không nhất thiết i phải khác k.
Lịch đầy đủ: Định nghĩa thứ tự thực hiện của các thao tác.
2. Các cơ chế điều khiển tương tranh.
a. Cơ chế Optimistic:
Áp dụng cơ chế này khi số giao tác xung đột không nhiều lắm.
Cơ chế Optimistic qua định: Trong khi một giao tác đang thực hiện, nếu xuất hiện xung
đột cơ chế này sẽ đợi cho giao tác kết thúc sau đó mới xử lý các xung đột (Trễ việc đồng
bộ các giao tác đến khi kết thúc chúng).
b. Cơ chế Pessimistic:
Cơ chế này được áp dụng khi môi trường có nhiều giao tác xung đột.
Cơ chế Pessimistic thực hiện xử lý các xung đột ngay sau khi chúng được phát hiện
( đồng bộ việc thực hiện các giao tác tương tranh sớm trong chu kỳ thực hiện chúng ).
c. Cơ chế dựa vào khoá:
Việc đồng bộ các giao tác đạt được bằng cách dùng khoá trên từng phần của CSDL. Kích
thước của các phần CSDL được khoá này là một vấn đề quan trọng cần phải được tính
toán hợp lý. Tuy nhiên, chúng ta sẽ bỏ qua điều này và coi phần được chọn là một đơn vị
khoá.
Có các kiểu khoá như sau:
+ Khoá tập trung: Trên mạng có một vị trí được thiết kế để lưu giữ các bảng khoá cho
toàn bộ CSDL. Vị trí đó có nhiệm vụ nhiệm vụ phân phối khoá cho các giao tác và chỉ
các giao tác có khoá mới được truy nhập vào CSDL.
+ Khoá bản sao chính: Trong môi trường phân tán có nhiều bản sao của cùng một dữ liệu
thì một bản sao (đóng vai trò là bản sao chính ) sẽ lưu giữ khoá chung cho các bản sao.
Có nghĩa là muốn truy nhập vào bất kỳ bản sao nào của đơn vị khoá này phải có khoá của
bản sao chính.
+ Khoá không tập trung: Nhiệm vụ khoá được chia sẻ cho toàn bộ các vị trí trong mạng.
Trong trường hợp này, việc thực hiện một giao tác được phối hợp với các bộ lập lịch tại ít
nhất là hai vị trí. Mỗi bộ lập lịch địa phương có trách nhiệm với các đơn vị khoá cục bộ
tại vị trí đó.
+ Thứ tự nhãn thời gian (TO): Có nhiệm vụ tổ chức thứ tự thực hiện các giao tác, thứ tự
này được sử dụng cho cả giao tác và các mục dữ liệu được lưu trữ trong CSDL.
Hình 5.II mô tả sự phân lớp các thuật toán điều khiển tương tranh:

3. Quản lý khóa chết.


Hạn chế của các cơ chế điều khiển tương tranh dựa vào khoá là trong khi thực hiện các
giao tác thường gặp phải khoá chết.
Các thuật toán dựa trên nhãn thời gian thì ngược lại: Các giao tác không đợi khi chúng
giữ quyền truy nhập vào các mục dữ liệu, trong quá trình đó nếu xảy ra xung đột bộ lập
lịch được khởi động lại bởi bộ quản lý giao tác với một nhãn thời gian mới. Cho nên cơ
chế dựa trên nhãn thời gian không bao giờ dẫn đến khoá chết. Nhưng thay vào đó là khả
năng phải khởi động lại một giao tác nhiều lần.
Định nghĩa: Khoá chết là các khoá được nắm giữ bởi một giao tác nhưng giao tác đó
không thể truy nhập được vào CSDL tương ứng.
Ví dụ về khoá chết:

CSDL 5, CSDL 4, CSDL 1 có các khoá tương ứng là 5, 4,1.


Giao tác A có khoá 5 nên truy nhập được vào CSDL 5. A thao tác lần lượt trên CSDL 1
đến CSDL 4. Trong quá trình A đang thao tác với CSDL 1 thì giao tác B có khoá được
quyền truy nhập vào CSDL 4. Như vậy khi A thao tác xong với CSDL 1 nhưng B chưa
thao tác xong với CSDL 4 , A sẽ phải đợi khi nào B thực hiện xong. Trong thời gian chờ
A vẫn nắm giữ khoá nhưng không truy nhập được vào CSDL. Khoá trong tình trạng như
vậy gọi là khoá chết.
a. Phòng ngừa khóa chết:
Phương pháp phòng ngừa không cho phép các khóa chết xảy ra:
Bộ quản lý giao tác kiểm tra một giao tác khi nó được khởi tạo lần đầu và không cho
phép nó tiếp tục nếu nó có thể dẫn đến khóa chết. Để thực hiện việc kiểm tra này, nó yêu
cầu các mục dữ liệu sẽ được truy nhập bởi một giao tác phải được khai báo trước. Bộ
quản lý giao tác cho phép một giao tác tiếp tục nếu toàn bộ mục dữ liệu cần truy nhập sẵn
sàng. Ngược lại, giao tác không được phép tiếp tục.
Các hệ thống như vậy không phù hợp cho các môi trường CSDL. Vấn đề cơ bản là
thường rất khó để biết chính xác các mục dữ liệu nào được truy nhập bởi một giao tác.
Truy nhập vào các mục dữ liệu nhất định có thể phụ thuộc vào các điều kiện mà các điều
kiện này có thể không được giải quyết đến thời gian chạy.
b. Tránh khóa chết:
Cách đơn giản nhất để tránh khóa chết là sắp xếp tài nguyên và nhấn mạnh mỗi tiến trình
yêu cầu truy nhập vào các tài nguyên theo thứ tự. Giải pháp này, được đề xuất một thời
gian dài cho các hệ điều hành. Các thứ tự có thể là toàn cục hoặc cục bộ. Trong trường
hợp là cục bộ cần thiết sắp xếp vị trí và yêu cầu giao tác truy nhập vào mục dữ liệu tại
nhiều vị trí yêu cầu khóa của chúng bằng việc duyệt các vị trí theo thứ tự định nghĩa
trước.
Một cách chọn lựa khác, là sử dụng nhãn thời gian của các giao tác để định mức ưu tiên
giao tác và giải quyết khóa chết bởi việc loại bỏ giao tác với mức ưu tiên cao hơn (hoặc
thấp hơn).
3. Kết luận.
Điều khiển tương tranh phân tán cung cấp tính độc lập và nhất quán của giao tác, đồng
thời đảm bảo tính nhất quán của CSDL phân tán. Còn một số vấn đề cần quan tâm là:
1. Các thuật toán điều khiển tương tranh.
2. Thực hiện ước lượng các thuật toán điều khiển tương tranh
3. Các mô hình giao tác khác
4. Các phương pháp điều khiển tương tranh khác: Có một lớp các thuật toán điều khiển
tương tranh khác được gọi là “các phương pháp kiểm tra đồ thị tuần tự ”, xây dựng một
đồ thị phụ thuộc và kiểm tra chu trình kín. Đồ thị phụ thuộc của một lịch S, DG(S), là đồ
thị chỉ mô tả quan hệ xung đột giữa các giao tác trong S là một nút. Một cung (Ti Tj) tồn
tại trong DG(S) khi và chỉ khi có một thao tác khác trước đó trong Tj. Các bộ lập lịch cập
nhật các DG của mình khi một trong các điều kiện sau được thi hành: Một giao tác mới
bắt đầu trong hệ thống, một giao tác đọc hoặc ghi nhận được bởi bộ lập lịch, một giao tác
kết thúc hoặc một giao tác bị loại bỏ…
5. Mô hình thực hiện giao tác: Thực hiện tập trung và thực hiện phân tán.

VIII. GIẢI QUYẾT XUNG ĐỘT TRONG ORACLE.


1. Giới thiệu.
Mục đích chính của việc giải quyết xung đột là: Đảm bảo tính toàn vẹn dữ liệu và tránh
các lỗi dây truyền.
Đảm bảo toàn vẹn dữ liệu: Các vị trí trong môi trường sao bản có cùng CSDL. Tránh các
lỗi dây truyền đảm bảo cho hệ thống hoạt động trôi chảy.
Nếu một hoặc nhiều vị trí trong môi trường sao bản lan truyền thay đổi không đồng bộ,
xung đột có thể xảy ra nếu hai hoặc nhiều vị trí cập nhật cùng một dữ liệu bản sao, có thể
thiết kế để tránh xung đột như sự phân quyền làm chủ dữ liệu.
Oracle phát hiện và ghi vào sổ nhật ký các xung đột cập nhật, xung đột không duy nhất,
và các xung đột xoá.
- Các thủ tục tại vị trí nhận, phát hiện một xung đột cập nhật nếu có một sự khác nhau
giữa các giá trị cũ và các giá trị hiện thời của một hàng sao bản giống hàng tại vị trí nhận.
- Xung đột không duy nhất được phát hiện nếu một ràng buộc duy nhất bị chống lại trong
khi một thao tác chèn hoặc sửa đổi của một hàng sao bản.
- Xung đột xoá được phát hiện nếu bạn thay đổi một hàng tại một vị trí xa sau khi bạn
xoá hàng này từ vị trí địa phương. Xung đột xoá xảy ra vì giá trị của hàng tại vị trí địa
phương không hợp giá trị hiện thời của hàng đó tại vị trí xa.
Thêm vào, Oracle cung cấp các thủ tục giải quyết xung đột được hệ thống định nghĩa để
giải quyết các xung đột.
2. Xoá các xung đột.
Khi truyền các thay đổi trong một môi trường sao bản bởi việc cố gắng làm trì hoãn hàng
đợi giao tác, symmetric replication facility của Oracle gọi một thủ tục từ xa trong
package được sinh ra tại vị trí nhận để phát hiện các xung đột. Ví dụ: Hai vị trí sửa đổi
cùng một hàng trước sự truyền các cập nhật của chúng tới các vị trí khác, một xung đột
xảy ra. Cho mỗi hàng thay đổi oracle sớm biết giá trị cũ và mới của từng cột trong hàng.
3. Các nhóm cột.
Nhóm cột liên kết các cột trong bảng thành một cột logic đơn. Một nhóm cột có thể bao
gồm một cột đơn, tập các cột, hoặc toàn bộ các cột trong bảng. Mỗi cột, tuy nhiên, chỉ có
thể thuộc về một nhóm cột. Người sử dụng có thể thiết kế một phương pháp giải quyết
xung đột cho các cột của một nhóm cột.
Các nhóm cột vô hình:
Bất kỳ một cột không thuộc nhóm cột nào được tự động ấn định vào một nhóm cột vô
hình cho phát hiện xung đột. Một nhóm cột vô hình không trông thấy được từ người
dùng, và không thể thiết kế phương pháp giải quyết xung đột tới các cột trong nhóm cột
vô hình.
Thiết kế một phương pháp giải quyết xung đột:
Có các nhóm cột cho phép thiết kế các phương pháp khác nhau để giải quyết xung đột
cho các kiểu dữ liệu khác nhau. Ví dụ, dữ liệu số thường kèm theo phương pháp giải
quyết số học, và dữ liệu ký tự thường kèm theo phương pháp giải quyết nhãn thời gian.
Sự hội tụ dữ liệu đối với toàn vẹn dữ liệu:
Oracle đánh giá từng nhóm cột một cách riêng rẽ, một vài phần của một hàng có thể được
cập nhật sử dụng dữ liệu từ vị trí gốc, khi các phần khác có thể duy trì các giá trị của dữ
liệu tại vị trí đích. Khi sử dụng nhiều nhóm cột, một cơ chế giải quyết xung đột có thể
hiệu quả trong sự hội tụ dữ liệu (toàn bộ các vị trí có cùng một giá trị cho một hàng đã
cho) không cần thiết kết quả trong toàn vẹn dữ liệu (dữ liệu hội tụ trên một giá trị thích
hợp). Cho ví dụ, nếu cột zipcode sử dụng phương pháp giải quyết nhãn thời gian trong
khi cột city sử dụng phương pháp giải quyết vị trí ưu tiên, toàn bộ các vị trí có thể hội tụ
trên một zipcode phù hợp với city.
Phát hiện xung đột cập nhật trong một nhóm cột:
Khi khảo sát một hàng nếu một xung đột cập nhật đã xảy ra, sao bản sử dụng thuật toán
sau:
+ Bắt đầu với nhóm cột đầu tiên, khảo sát từng trường để xác định nếu nó đã thay đổi và
nếu có một xung đột giữa các giá trị mới, cũ, hiện thời.
+ Nếu không có xung đột xảy ra, tiếp tục với nhóm cột tiếp theo. Nếu một xung đột xảy
ra, gọi một thủ tục giải quyết xung đột với ấn định thấp nhất dãy số cho nhóm cột này.
+ Nếu thủ tục giải quyết thành công xung đột, nắm giữa giá trị thích hợp cho các cột còn
để treo sự xác định trạng thái.
+ Nếu thủ tục không giải quyết được các xung đột, sao bản tiếp tục với thủ tục tiếp theo
trong thứ tự ưu tiên cho đến khi xung đột được giải quyết hoặc không còn thủ tục nào sẵn
sàng.
+ Sau khi đánh giá toàn bộ các nhóm cột (bao gồm cả nhóm cột vô hình) và giải quyết
thành công các lỗi, sao bản đối xứng lưu trữ giá trị mới cho các cột.
+ Nếu sao bản không có khả năng giải quyết xung đột cho một nhóm cột nó ghi một lỗi
vào DefError view và không thay đổi hàng địa phương.
4. Giới thiệu một số phương pháp giải quyết xung đột.
Oracle sử dụng khá nhiều các phương pháp giải quyết xung đột như:
+ Phương pháp giải quyết xung đột cập nhật tối thiểu, tối đa.
+ Phương pháp giải quyết xung đột cập nhật nhãn thời gian chậm nhất và sớm nhất.
+ Phương pháp giải quyết xung đột cập nhật cộng thêm và trung bình.
+ Phương pháp giải quyết xung đột cập nhật nhóm ưu tiên, ưu tiên vị trí. + Phương pháp
giải quyết xung đột cập nhật phá huỷ, ghi đè…
Mỗi phương pháp có các ưu điểm, nhược điểm riêng và oracle thường sử dụng kết hợp
các phương pháp trên. Trong phần dưới đây giới thiệu hai phương pháp giải quyết xung
đột cập nhật ưu tiên, ưu tiên vị trí và phá huỷ, ghi đè.

Các vấn đề về an toàn cơ sở dữ liệu


Phần 1 : Các vấn đề về an toàn cơ sở dữ liệu
I Các vấn để và yêu cầu bảo vệ cơ sở dữ liệu
1.1. các vấn đề về an toàn dữ liệu:
♣ Tính an toàn:
An toàn thông tin nói chung bao hàm 3 vấn đề: tính mật, tính toàn vẹn, và tính sẵn dùng.
Để bảo vệ tính an toàn, trước hết ta phải xem xét các sự đe dọa tới sự an toàn. Tương ứng
với ba vấn đề an toàn trên ta có thể phân ra các loại đe dọa tới sự an toàn như sau:
♣ Thất thoát thông tin không hợplý (đe dọa tới tính mật)
♣ Sửa đổi dữ liệu không hợp lý (đe dọa tính toàn vẹn)
♣ Từ chối các dịch vụ (đe doạ tính sẵn dùng)
♣ Cơ sở dữ liệu (CSDL):
CSDL là tập hợp các dữ liệu được lưu trữ , bảo trì tại trung tâm mà nhiều người có thể
truy cập đến. Trong moi trường CSDL, nhiều ứng dụng, nhiều người dùng của cơ quan
đều tham chiếu đến một tập dữ liệu tích hợp thông qua hệ quản trị CSDL. Việc sử dụng
CSDL có các ưu điểm sau:
- Chia sẻ truy cập: nhiều người có thể dùng chung dữ liệu
- Giảm bới dữ liệu dư thừa: tránh được tình trạng thông tin lưu ở nhiều nơi
- Nhất quán dữ liệu: Mỗi sự thay đổi dữ liệu có hiệu lực đối với tất cả các người dùng
khác.
- Toàn vẹn dữ liệu: các giá trị dữ liệu được bảo vệ chống lại sự thay đổi không đúng đắn,
một cách ngẫu nhiên hoặc cố tình
- Truy cập được điều khiển: chỉ những người sử dụng được phép mới có thể xem hoặc
thay đổi các giá trị dữ liệu.
Ngày nay, sự kiến trúc client/server đang là mô hình được cài đặt sử rộng rãi, nhờ đó mà
dữ liẹu dược lưu trữ một cách nhất quán trong suốt đối với người sử dụng. Tư tưởng cảu
mô hình client /server là dữ liệu được cài đặt trên máy chủ. Tư tưởng của mô hình
client/server là dữ liệu trên máy chủ (server), các trạm làm việc có thể truy đến các dữ
liệu đó, người sử dụng trên máy trạm có thể truy xuất đến dữ liệu trên máy chủ mà mà
vẫn cảm nhận được như là việc truy xuất dữ liệu trên máy của mình. Đặc biệt là với hẹ
máy tính mạng đang được nói tới nhiều hiện nay, với tư tưởng thiết kế không có ổ đĩa với
bộ nhớ tối thiểu đủ để chạy các giao diện chương trình ứng dụng của một cơ quan cụ thể,
hầu như tất cả các xử lý đều được xử lý trên máy chủ, các dữ liệu đặt trên máy chủ. Các
trạm làm việc (là các máy tính mạng) chỉ cần gửi các yêu cầu tới máy chủ, máy chủ sẽ sử
lý và gửi kết quả về cho máy trạm (xem hình dưới). Máy tính mạng xuất hiện kết hợp với
hợp với kiến trúc cliẻt/server có tác dụng : giảm chi phí cho hệ thống vì các trạm làm việc
là các máy có cấu hình tối thiểu, quản trị hệ thống tập trung (vì dữ liệu và mọi xử lý đều
đặt trên máy chủ), dữ liệu nhất quán, giao thông trên mạng giảm đáng kể vì trên mạng chỉ
có các yêu cầu gửi từ phía các trạm làm việc tới máy chủ và các kết quả gửi từ máy chủ
trả về cho các máy trạm. Tuy nhiên việc dữ liệu và các xử lý tập trung trên các máy chủ
nên vấn đề an toàn hệ thống, đặc biệt là an toàn CSDL là vấn đề đáng quan tâm.

Tính nhất quán trong cơ sở dữ liệu phân tán


Tính nhất quán trong cơ sở dữ liệu
• Lưu trữ dữ liệu thống nhất
• Tránh được tình trạng trùng lặp thông tin
• Có cơ chế điều khiển truy xuất dữ liệu hợp lý
• Tránh được việc tranh chấp dữ liệu
• Bảo đảm dữ liệu luôn đúng tại mọi thời điểm
Nhất quán trong giao dịch cơ sở dữ liệu
Giao dịch cơ sở dữ liệu là đơn vị tương tác của một hệ quản lý cơ sở dữ liệu hoặc các hệ
tương tự, mỗi giao dịch được xử lý một cách nhất quán và tin cậy mà không phụ thuộc
vào các giao dịch khác. Một hệ cơ sở dữ liệu lý tưởng sẽ phải bảo đảm toàn bộ các tính
chất ACID cho mỗi giao dịch.
Tính nguyên tố (Atomicity): Một giao dịch phải đảm bảo là một đơn vị nguyên tố của
công việc. Hoặc là tất cả hoặc là không có bất kỳ giao dịch nào được thực hiện .Tính
nguyên tố đòi hỏi nếu một giao dịch bị ngắt do sự cố thì các kết quả bộ phận của nó sẽ bị
hủy bỏ.
Tính nhất quán (Consistency): khi một giao dịch hoàn thành, giao dịch phải đảm bảo tất
cả dữ liệu trong trạng thái nhất quán. Có nghĩa là giao dịch biến đổi cơ sở dữ liệu đi từ
trạng thái toàn vẹn này đến một trạng thái toàn vẹn mới.
Tính độc lập (Isolation): Một giao dịch chưa hoàn thành không thể đưa kết quả cho giao
dịch khác trước khi nó hoàn tất. Sự thay đổi được tạo ra từ những giao dịch đồng thời
phải được tách biệt với những sửa đổi của những giao dịch đồng thời khác.
Tính bền vững (Durability): Sau khi giao dịch hoàn thành, hệ thống phải đảm bảo là kết
quả của các tác vụ của nó không bao giờ bị mất, không bị lệ thuộc vào sự cố sau đó. Sự
thay đổi này vẫn còn giữ nguyên ngay cả có sự cố làm hệ thống gặp sự cố .

Ví dụ về tính nhất quán:


Giao dịch T là một giao dịch chuyển tiền 50 USD từ tài khoản A đến tài khoản B. Giao
dịch này được định nghĩa như sau:
T: read(A);
A:=A-50;
write(A);
read(B);
B:=B+50;
write(B);

Yêu cầu tính nhất quán ở đây là tổng A+B không được thay đổi bởi sự thực hiện của giao
dịch này. Nếu không yêu cầu tính nhất quán đối với giao dịch, tiền có thể được tạo ra hay
bị hủy đi bởi giao dịch này. Có thể kiểm tra một cách dễ ràng, nếu cơ sở dữ liệu toàn vẹn
trước khi giao dịch, cơ sở dữ liệu vẫn còn toàn vẹn sau khi thực hiện giao dịch đó.
Đảm bảo tính nhất quán đối với một giao dịch là trách nhiệm của người viết chương
trình, hoặc có thể được thực hiện tự động bằng cách kiểm tra các ràng buộc toàn vẹn
trong cơ sở dữ liệu.
Các mức nhất quán
Có bốn mức nhất quán theo trình tự từ cao xuống thấp như sau:
Mức 3: Giao dịch T nhìn mức nhất quán 3 nếu:
- T không ghi đè dữ liệu nháp của giao dịch khác
- T không chuyển giao bất cứ một việc ghi nào đến khi nó hoàn thành hoàn toàn việc ghi
của nó.
- T không đọc dữ liệu nháp từ các giao dịch khác.
- Các giao dịch khác không nháp vào bất cứ dữ liệu nào đọc bởi T trước khi T hoàn
thành.
Mức 2: Giao dịch T nhìn mức nhất quán 2 nếu:
- T không ghi đè lên dữ liệu nháp của giao dịch khác.
- T không chuyển giao bất kỳ việc ghi nào trước EOT (End of Transaction).
- T không đọc dữ liệu nháp từ giao dịch khác.
Mức 1: Giao dịch T nhìn mức nhất quán 1 nếu:
- T không ghi đè lên dữ liệu nháp của giao dịch khác.
- T không chuyển giao bất kỳ việc ghi nào trước EOT.
Mức 0: Giao dịch T nhìn mức nhất quán 0 nếu:
- T không ghi đè lên dữ liệu nháp của giao dịch khác.

Nhất quán dữ liệu trong cơ sở dữ liệu phân tán


Có 2 cách để đạt được tính nhất quán dữ liệu trong cơ sở dữ liệu phân tán:
- Nhất quán giao dịch (Transactional Consistency)
- Hội tụ dữ liệu (Data Convergence)
Nhất quán giao dịch
- Bảo đảm tất cả dữ liệu giống nhau tại mọi trạm ở bất kì thời điểm nào.
- Tất cả giao dịch thực hiện tại một trạm duy nhất.
Có 2 loại nhất quán giao dịch:
- Nhất quán lập tức: tất cả các trạm được bảo đảm là luôn có cùng giá trị dữ liệu tại cùng
một thời điểm. Cách duy nhất để đạt được nhất quán giao dịch trong môi trường cập nhật
phân tán là sử dụng giao thức cập nhật 2 pha (2-phase commit protocol) giữa tất cả trạm
tham gia. Mỗi trạm phải commit đồng thời mọi thay đổi hoặc không trạm nào commit
những thay đổi.
- Nhất quán ngầm: có một sự trì hoãn trong việc phản ánh các giá trị dữ liệu đến các trạm
tham gia và vào lúc này các trạm không bảo đảm có cùng giá trị dữ liệu. Việc sửa đổi các
giá trị dữ liệu có thể bị trì hoãn đủ lâu để tất cả các trạm cùng cập nhật, sau đó tất cả các
trạm sẽ có cùng giá trị dữ liệu. Ngoài ra các giá trị dữ liệu này cũng phải giống với những
giá trị đạt được khi thực hiện các công việc tại một trạm.
Hội tụ dữ liệu
Tất cả các trạm có thể quy về cùng một giá trị dữ liệu nhưng không nhất thiết là giá trị dữ
liệu này bị gây ra bởi những tác vụ được làm trên một trạm duy nhất. người dùng có thể
tự do thao tác trên các trạm theo các cách khác nhau. Khi các nút đồng bộ, tất cả các trạm
sẽ hội tụ về cùng một giá trị. Nếu đụng độ gây ra bởi sự sửa đổi cùng một dữ liệu tại
những trạm khác nhau thì những sửa đổi này sẽ được giải quyết một cách tự động.

You might also like