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

CSDL phân tán TS. Phạm Thanh Quế, TS. Hoàng Minh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (815.28 KB, 20 trang )

học viện công nghệ bu chính viễn thông

giáo trình

C S
D LIẽồU
PHấN TAN
Biên soạn: TS. Phạm Thế Quế (chủ biên)
TS. Hoàng Minh

NHà XUấT BảN THÔNG TIN Và TRUYềN THÔNG
Hà Nội - 2009


Lời nói đầu
Lý thuyết hệ cơ sở dữ liệu phân tán l sự tích hợp của hai hớng
tiếp cận xử lý dữ liệu, đó l lý thuyết các hệ cơ sở dữ liệu (Database
System) v công nghệ mạng máy tính (Computer Network). Các phơng
thức xử lý dữ liệu phát triển từ phơng thức truyền thống - mỗi một ứng
dụng đợc định nghĩa, cập nhật v xử lý dữ liệu riêng rẽ trên các tệp
riêng chuyển sang xử lý dữ liệu tập trung, nghĩa l dữ liệu đợc định
nghĩa v đợc quản lý một cách tập trung. Do đó đảm bảo đợc tính độc
lập của dữ liệu, các chơng trình ứng dụng không phụ thuộc vo cấu trúc
dữ liệu logic hay cấu trúc lu trữ vật lý v ngợc lại.
Nhằm mục đích trang bị kiến thức cơ sở v nâng cao về các hệ cơ
sở dữ liệu phân tán, lý thuyết phân mảnh không tổn thất thông tin, vấn
đề tơng tranh v hiệu năng xử lý phân tán cho học sinh, sinh viên
ngnh Công nghệ thông tin v các ngnh kỹ thuật khác, Học viện Công
nghệ Bu chính Viễn thông đã phối hợp với Nh xuất bản Thông tin v
Truyền thông xuất bản cuốn sách Giáo trình Cơ sở dữ liệu phân tán
do TS. Phạm Thế Quế biên soạn.


Giáo trình Cơ sở dữ liệu phân tán không chỉ đề cập đến những vấn
đề cơ sở lý thuyết m còn trình by một số kỹ năng cần thiết để thiết kế
v ci đặt các hệ cơ sở dữ liệu cụ thể. Nội dung giáo trình gồm 06 chơng:
Chơng 1: Khái niệm cơ bản về cơ sở dữ liệu phân tán. Giới thiệu
những khái niệm cơ bản về xử lý truy vấn, mục đích của việc xử lý truy
vấn v giới thiệu chức năng các tầng của quá trình xử lý truy vấn. Công
cụ để xử lý truy vấn l các phép tính quan hệ v đại số quan hệ. Trong
thiết kế cơ sở dữ liệu phân tán, việc phân mảnh dữ liệu v cấp phát dữ
liệu có vai trò quan trọng cho việc xử lý truy vấn dữ liệu, lm tăng tính
cục bộ tham chiếu, tăng khả năng thực hiện truy vấn đồng thời song
song trên nhiều vị trí.
Chơng 2: Thiết kế các hệ cơ sở dữ liệu phân tán. Trình by những
vấn đề cơ bản về thiết kế cơ sở dữ liệu phân tán. Nhấn mạnh đặc biệt
đến các vấn đề phân mảnh v cấp phát dữ liệu trên các node của mạng
máy tính.


Chơng 3: Xử lý truy vấn trong cơ sở dữ liệu phân tán. Giới thiệu
những khái niệm cơ bản về xử lý truy vấn, mục đích của việc xử lý truy
vấn v giới thiệu chức năng các tầng của quá trình xử lý truy vấn. Công
cụ để xử lý truy vấn l các phép tính quan hệ v đại số quan hệ. Trong
thiết kế cơ sở dữ liệu phân tán, việc phân mảnh dữ liệu v cấp phát dữ
liệu có vai trò quan trọng cho việc xử lý truy vấn dữ liệu, lm tăng tính
cục bộ tham chiếu, tăng khả năng thực hiện truy vấn đồng thời song
song trên nhiều vị trí.
Chơng 4: Quản lý giao dịch v điều khiển đồng thời phân tán.
Trình by các khái niệm cơ bản về giao dịch, các tính chất của một giao
dịch, các loại giao dịch v các kỹ thuật điều khiển đồng thời phân tán,
điều khiển đồng thời bằng khóa chốt v bằng nhãn thời gian. Nội dung
của chơng cũng giới thiệu các thuật toán điều khiển đồng thời có các

tính chất biệt lập v nhất quán của các giao dịch. Cơ chế điều khiển
đồng thời phân tán của các hệ quản trị cơ sở dữ liệu phân tán đảm bảo
tính nhất quán của các hệ cơ sở dữ liệu đợc duy trì.
Chơng 5: Các hệ cơ sở dữ liệu song song. Giới thiệu về những
khái niệm cơ bản của các hệ cơ sở dữ liệu song song. Mạng máy tính có
khả năng thực hiện các ứng dụng v quản lý cơ sở dữ liệu, nền tảng cơ
bản cho các nguyên lý quản lý dữ liệu phân tán.
Chơng 6: Hệ quản trị cơ sở dữ liệu đối tợng phân tán. Giới thiệu
các khái niệm cơ bản về đối tợng v mô hình dữ liệu phân tán đối
tợng, các phơng pháp thiết kế phân tán đối tợng. Các kỹ thuật phân
mảnh v cấp phát dữ liệu đối tợng phân tán. Giới thiệu các phơng pháp
quản lý đối tợng, quản lý giao dịch đối tợng v xử lý vấn tin đối tợng.
Sau mỗi chơng đều có phần câu hỏi v bi tập để bạn đọc củng
cố lại kiến thức của mình.
Tác giả đã dnh nhiều công sức cho việc biên soạn, song giáo
trình sẽ khó tránh khỏi những thiếu sót. Rất mong nhận đợc các ý kiến
góp ý của các bạn đồng nghiệp v bạn đọc để giáo trình đợc hon
thiện hơn trong lần tái bản sau.
Xin trân trọng cảm ơn./.

Học viện Công nghệ Bu chính viễn thông


MỤC LỤC
Lời nói đầu ...........................................................................................3
Chương 4: QUẢN LÝ GIAO DỊCH VÀ
ĐIỀU KHIỂN ĐỒNG THỜI PHÂN TÁN...................185
4.1 Giới thiệu ...............................................................................185
4.2 Tổng quan về giao dịch..........................................................187
4.2.1 Các khái niệm cơ bản về giao dịch................................187

4.2.2 Điều kiện kết thúc giao dịch..........................................191
4.2.3 Đặc tính của giao dịch ...................................................193
4.2.4 Đặc trưng hóa khái niệm giao dịch ...............................194
4.3 Các tính chất giao dịch..........................................................196
4.3.1 Tính nguyên tố...............................................................196
4.3.2 Tính nhất quán...............................................................198
4.3.3 Tính cô lập.....................................................................199
4.3.4 Tính bền vững ...............................................................203
4.4 Các loại giao dịch..................................................................203
4.4.1 Các loại giao dịch theo thời gian hoạt động..................203
4.4.2 Các loại giao dịch dựa trên việc tổ chức
các hành động đọc và ghi ..............................................204
4.4.3 Luồng công việc - work flows.......................................204
4.5 Điều khiển các giao dịch đồng thời phân tán........................207
4.5.1 Đặt vấn đề......................................................................207
4.5.2 Tính khả tuần tự lịch biểu..............................................209
4.5.3 Phân loại các cơ chế điều khiển đồng thời ....................216
4.6 Các thuật toán điều khiển đồng thời bằng khoá chốt ............218
4.6.1 Thuật toán quản lý khóa cơ bản ...................................219
4.6.2 Thuật toán khóa chốt 2 pha (2PL).................................223


4.6.3 Thuật toán quản lý giao dịch 2PL tập trung
(C2PL TM) ...................................................................228
4.6.4 Thuật toán 2PL bản chính .............................................234
4.6.5 Thuật toán 2PL phân tán ...............................................234
4.7 Các thuật toán điều khiển đồng thời bằng nhãn thời gian ....235
4.7.1 Đặt vấn đề......................................................................235
4.7.2 Thuật toán bộ quản lý giao dịch TO cơ bản ..................237
4.7.3 Thuật toán TO bảo toàn.................................................242

4.7.4 Thuật toán TO đa phiên.................................................244
4.8 Các thuật toán điều khiển đồng thời lạc quan.......................245
4.9 Quản lý bế tắc ........................................................................248
4.9.1 Ngăn chặn bế tắc ...........................................................250
4.9.2 Tránh bế tắc ...................................................................251
4.9.3 Phát hiện và giải tỏa bế tắc............................................252
Câu hỏi.........................................................................................255
Bài tập..........................................................................................256
Chương 5: CÁC HỆ CƠ SỞ DỮ LIỆU SONG SONG ...................258
5.1 Mục tiêu của xử lý song song.................................................258
5.1.1 Giới thiệu chung ............................................................258
5.1.2 Mục tiêu của xử lý song song........................................259
5.2 Ưu điểm của cơ sở dữ liệu song song ....................................260
5.2.1 Hiệu năng cao................................................................261
5.2.2 Tính sẵn sàng cao ..........................................................261
5.2.3 Khả năng mở rộng .........................................................261
5.3 Kiến trúc hệ cơ sở dữ liệu song song.....................................262
5.3.1 Bộ quản lý phiên ...........................................................262
5.3.2 Bộ quản lý yêu cầu ........................................................262
5.3.3 Bộ quản lý dữ liệu .........................................................262
5.4 Các kiến trúc hệ thống song song..........................................263


5.4.1 Tổng quan về kiến trúc song song
và hệ thống song song ...................................................263
5.4.2 Kiến trúc chia sẻ bộ nhớ................................................264
5.4.3 Kiến trúc chia sẻ đĩa ......................................................265
5.4.4 Kiến trúc không chia sẻ .................................................267
5.4.5 Các kiến trúc phân cấp ..................................................268
5.5 Kỹ thuật hệ quản trị cơ sở dữ liệu song song ........................269

5.5.1 Sắp đặt dữ liệu ...............................................................270
5.5.2 Truy vấn song song .......................................................278
5.5.3 Xử lý dữ liệu song song ................................................279
5.6 Tối ưu hóa truy vấn song song...............................................288
5.6.1 Mở đầu...........................................................................288
5.6.2 Không gian tìm kiếm.....................................................288
5.6.3 Mô hình chi phí .............................................................292
5.6.4 Chiến lược tìm kiếm......................................................293
Câu hỏi.........................................................................................295
Chương 6: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU
ĐỐI TƯỢNG PHÂN TÁN ............................................296
6.1 Giới thiệu ...............................................................................296
6.2 Khái niệm cơ bản về đối tượng và mô hình dữ liệu đối tượng..297
6.3 Thiết kế phân tán đối tượng ...................................................298
6.3.1 Phân hoạch ngang lớp ...................................................299
6.3.2 Phân hoạch dọc lớp .......................................................302
6.3.3 Phân hoạch đường dẫn ..................................................303
6.3.4 Các thuật toán phân hoạch ............................................303
6.3.5 Cấp phát.........................................................................304
6.3.6 Nhân bản........................................................................305
6.4 Các mô hình kiến trúc đối tượng phân tán ............................306


6.4.1 Các kiểu kiến trúc máy khách/chủ ................................306
6.4.2 Lưu trữ đối tượng phân tán............................................309
6.5 Quản lý đối tượng ..................................................................310
6.5.1 Quản lý định danh đối tượng.........................................310
6.5.2 Quản lý con trỏ ..............................................................311
6.5.3 Di trú đối tượng .............................................................312
6.6 Xử lý truy vấn đối tượng ........................................................314

6.6.1 Kiến trúc xử lý truy vấn đối tượng................................316
6.6.2 Các vấn đề xử lý truy vấn đối tượng .............................318
6.6.3 Thực thi truy vấn đối tượng...........................................321
6.7 Quản lý giao dịch đối tượng phân tán ...................................322
6.7.1 Các tiêu chuẩn quản lý ..................................................322
6.7.2 Mô hình giao dịch và cấu trúc đối tượng ......................324
6.7.3 Quản lý giao dịch trong các hệ quản trị
đối tượng phân tán.........................................................326
Câu hỏi.........................................................................................335
Bài tập..........................................................................................336
Tài liệu tham khảo ..........................................................................337


Chương 4 bao gồm các nội dung chính sau đây:
• Tổng quan về quản lý giao dịch
• Các tính chất giao dịch
• Các loại giao dịch
• Điều khiển đồng thời phân tán.
4.1 GIỚI THIỆU
Khi nghiên cứu về cơ sở dữ liệu phân tán, đơn vị truy xuất dữ liệu
cơ bản được xem xét là câu truy vấn. Điều gì sẽ xảy ra nếu hai câu
truy vấn cùng cập nhật trên một mục dữ liệu, hoặc hệ thống gặp sự cố
phải ngưng hoạt động khi đang thực hiện truy vấn. Điều này sẽ dẫn
đến tổn hại nghiêm trọng cơ sở dữ liệu. Thực tế, khái niệm truy vấn
không hề có sự thực thi nhất quán hay tính toán tin cậy. Giao dịch
(Transaction) và quản lý giao dịch đảm bảo cho việc tính toán câu truy
vấn nhất quán và tin cậy khi các chiến lược thực thi được xác định.
Một cơ sở dữ liệu được gọi là có trạng thái nhất quán nếu nó tuân
theo tất cả các ràng buộc toàn vẹn. Trạng thái của cơ sở dữ liệu có thể
xảy ra sự thay đổi có thể do các thao tác cập nhật như: sửa đổi, chèn

thêm và xóa. Vì vậy cần đảm bảo rằng cơ sở dữ liệu luôn luôn ở trong
trạng thái nhất quán. Cơ sở dữ liệu có thể ở trạng thái không nhất quán
tạm thời trong quá trình thực thi giao dịch, nhưng cơ sở dữ liệu phải
được nhất quán khi kết thúc giao dịch.


186

Gi¸o tr×nh C¬ së d÷ liÖu ph©n t¸n

Hình 4.1: Mô hình giao dịch
Nói giao dịch nhất quán nghĩa là nói về hoạt động của các giao
dịch đồng thời. Cơ sở dữ liệu nhất quán ngay cả khi có một số yêu cầu
của người sử dụng đồng thời truy cập như: đọc hoặc cập nhật cơ sở dữ
liệu. Sẽ phức tạp hơn khi xét các cơ sở dữ liệu nhân bản. Một cơ sở dữ
liệu nhân bản ở trong một trạng thái nhất quán tương hỗ (Mutually
Consistent State) nếu tất các bản sao của mỗi mục dữ liệu có giá trị
giống nhau, còn được gọi là sự tương đương một bản (One Copy
Equivalence), vì tất cả các bản đều phải nhận cùng một trạng thái vào
cuối lúc thực thi giao dịch.
Nói đến độ tin cậy của giao dịch, nghĩa là đang nói đến khả năng
tự thích ứng của hệ thống đối với các loại sự cố và khả năng khôi phục
lại từ những sự cố đó. Một hệ thống tự thích ứng sẽ dung nạp được
các sự cố hệ thống và có thể tiếp tục cung cấp các dịch vụ ngay cả khi
có sự cố xảy ra. Hệ quản trị cơ sở dữ liệu phân tán phải có khả năng
khôi phục được là một hệ quản trị cơ sở dữ liệu, sau khi gặp sự cố, có
khả năng chuyển sang trạng thái nhất quán, bằng cách quay về trạng
thái nhất quán trước hoặc chuyển sang trạng thái nhất quán mới.
Quản lý giao dịch tức là cần xử lý các vấn đề sao cho phải duy trì
cơ sở dữ liệu trong trạng thái nhất quán ngay cả khi có nhiều truy cập

đồng thời và xảy ra sự cố.
Các thuật toán điều khiển đồng thời có các tính chất khác biệt và
nhất quán của các giao dịch. Cơ chế điều khiển đồng thời phân tán của
một hệ quản trị cơ sở dữ liệu phân tán, phải duy trì tính nhất quán của


Chơng 4: Quản lý giao dịch v điều khiển đồng thời phân tán

187

c s d liu phõn tỏn vi gi thit cỏc thnh phn phn cng v phn
mm l hon ton tin cy. Cỏc c ch iu khin ng thi phõn tỏn
ó tr thnh mt trong nhng thnh phn c bn ca mt h qun tr
c s d liu phõn tỏn.
4.2 TNG QUAN V GIAO DCH
4.2.1 Cỏc khỏi nim c bn v giao dch
Trng thỏi nht quỏn (Consistent State) ca mt c s d liu:
Mt c s d liu trong mt trng thỏi nht quỏn nu nú tuõn theo
tt c cỏc rng buc ton vn c nh ngha trờn nú.
tin cy (Reliability): Mun núi n kh nng t thớch ng ca
mt h thng i vi cỏc loi s c v kh nng khụi phc t nhng
s c ny. Mt h thng t thớch ng s dung np c cỏc s c h
thng v cú th tip tc cung cp dch v ngay c khi xy ra s c.
Qun lý giao dch (Transaction Management): Vic gii quyt
cỏc bi toỏn sao cho c gng duy trỡ cho c c s d liu trong
tỡnh trng nht quỏn ngay c khi cú nhiu truy cp ng thi v khi
giao dch cú s c.
Khỏi nim giao dch trong cỏc h c s d liu phõn tỏn hm cha
mt s cỏc c tớnh c bn nh tớnh nguyờn t v tớnh bn vng, nhm
ch ra nhng khỏc bit gia mt giao dch v mt cõu truy vn.

Giao dch l mt n v tớnh toỏn nht quỏn v tin cy trong cỏc
h c s d liu phõn tỏn. V mt trc quan, giao dch nhn mt c s
d liu v thc hin trờn nú mt hnh ng, to ra mt phiờn bn c
s d liu mi, tc l to ra mt dch chuyn trng thỏi. iu ny
tng t nh cõu truy vn thc hin. Nu c s d liu nht quỏn
trc khi thc thi giao dch, cú th m bo rng c s d liu cng s
nht quỏn vo lỳc kt thỳc thc thi cho dự:
Giao dch cú th c thc hin ng thi vi cỏc giao dch
khỏc, v
S c cú th xy ra trong quỏ trỡnh thc thi.


188

Gi¸o tr×nh C¬ së d÷ liÖu ph©n t¸n

Như vậy có thể hiểu một giao dịch là một dãy các thao tác, các
câu hỏi truy vấn được biểu diễn trong các ngôn ngữ truy vấn hay là
những đoạn chương trình được nhúng trong một ngôn ngữ chủ. Tính
tương thích của giao dịch theo nghĩa được hiểu là tính đúng đắn của
nó. Nói cách khác, giao dịch luôn luôn chuyển cơ sở dữ liệu từ một
trạng thái tương thích đến một trạng thái tương thích khác. Tương
thích của cơ sở dữ liệu phân tán khác với tương thích của giao dịch.
Cơ sở dữ liệu có tính tương thích nếu nó thỏa mãn mọi ràng buộc
tương thích được định nghĩa trên nó. Những thay đổi trạng thái của cơ
sở dữ liệu xảy ra do các phép toán cập nhật (Update), chèn (Insert) và
xóa (Delete). Khi thực hiện các giao dịch, cơ sở dữ liệu có thể tạm
thời không tương thích, nhưng khi kết thúc giao dịch thì cơ sở dữ liệu
phải ở trạng thái tương thích.
Một giao dịch phân tán gồm nhiều giao dịch con, thực hiện ở

nhiều vị trí khác nhau. Môi trường phân tán có ảnh hưởng đến tất cả
các khía cạnh quản lý giao dịch.
Một giao dịch là một dãy các thao tác đọc và ghi trên cơ sở dữ
liệu cùng với các bước tính toán. Cụ thể hơn, có thể xem một giao
dịch như là một chương trình truy cập vào cơ sở dữ liệu được gắn vào.
Hoặc có thể định nghĩa một giao dịch là thực thi đơn của chương
trình. Truy vấn đơn cũng có thể được coi là một chương trình và được
đưa ra như là một giao dịch.
Biểu diễn một giao dịch T: begin..., ..., ... end. Giữa begin và end
là các thao tác cơ bản đọc, ghi và xử lý. Giao dịch đọc dữ liệu, ghi dữ
liệu và thực hiện tính toán qua một vùng đệm làm việc (Private
Workspace). Các tính toán của giao dịch sẽ không có tác dụng trên cơ
sở dữ liệu cho đến khi thực hiện ghi vào cơ sở dữ liệu.
Ví dụ 4.1: Xét câu truy vấn “Tăng kinh phí các dự án CAD/CAM
lên 10%”.
UPDATE
PROJ
SET
BUDGET = BUDGET*1.1
WHERE
PNAME = “CAD/CAM”


Chơng 4: Quản lý giao dịch v điều khiển đồng thời phân tán

189

Cõu truy vn ny cú th c c t qua ký phỏp SQL, nh mt
giao dch bng cỏch gỏn cho nú tờn BUDGET_UPDATE v khai bỏo
nh sau:

Begin_transaction BUDGET_UPDATE
begin
EXEC SQL

UPDATE PROJ

SET

BUDGET = BUDGET*1.1

WHERE

PNAME = CAD/CAM

end.
Cỏc lnh Begin_transaction v end xỏc nh ranh gii ca mt
giao dch. Biu din giao dch trờn bng dóy cỏc thao tỏc:
Begin read PNAME, nu tha món PNAME = CAD/CAM,
read BUDGET, BUDGET = BUDGET*1.1, write BUDGET end.
Vớ d 4.2: Xột bi toỏn t ch mỏy bay, gi s cú cỏc quan h sau:
FLIGHT (FNO, DATE, SRC, DEST, STSOLD, CAP) l quan
h chuyn bay.
CUST (CNAME, ADDR, BAL) l quan h v khỏch hng t
ch trc.
FC(FNO, DATE, CNAME, SPECIAL) l quan h khỏch hng chuyn bay.
Trong ú, FNO l mó s chuyn bay, DATE l ngy, thỏng
chuyn bay, SRC v DEST l ni xut phỏt v ni n ca chuyn
bay, STSOLD l s lng gh ó c bỏn trờn chuyn bay ú, CAP
l s lng khỏch m chuyn bay cú th ch c, CNAME l tờn
khỏch hng, ADDR a ch v s d trong BAL, SPECIAL tng ng

vi cỏc yờu cu c bit m khỏch hng a ra khi t ch.
Gi s mt nhõn viờn bỏn vộ nhp mó s chuyn bay, ngy thỏng,
tờn khỏch v thc hin t ch trc. Giao dch thc hin nh sau:


Gi¸o tr×nh C¬ së d÷ liÖu ph©n t¸n

190

Begin_transaction Reservation
begin
input (flight_no, date, customer_name).
EXEC SQL
SET
WHERE
AND

UPDATE
FLIGHT
STSOLD = STSOLD + 1
FNO = flight_no
DATE = date;

EXEC SQL

INSERT

INTO FC (FNO, DATE, CNAME, SPECIAL)

(1)

(2)

(3)

VALUES (flight_no, date, customer_name, null);
Output (“reservation completed”)

(4)

end.
Biến của chương trình:
• flight_no: mã số chuyến bay.
• date: ngày tháng của chuyến bay.
• customer_name: tên khách hàng.
Câu lệnh begin_transaction và end khởi đầu và kết thúc của một
giao dịch. Giao dịch thực hiện tuần tự các bước như sau:
• Dòng (1): Nhập mã số chuyến bay, ngày tháng của chuyến bay
và tên khách hàng, flight_no, date, customer_name.
• Dòng (2): Tăng lên một ghế cho số ghế đã bán trên chuyến bay
đang được yêu cầu.
• Dòng (3): Chèn một bộ vào trong quan hệ FC. Giả sử rằng đây
là khách hàng cũ nên không cần thiết phải chèn thêm thông tin
về khách hàng vào trong quan hệ CUST. Từ khoá null chỉ ra
rằng khách hàng không có yêu cầu đặc biệt gì thêm.
• Dòng (4): Ghi kết quả giao dịch ra màn hình của nhân viên bán vé.


Chơng 4: Quản lý giao dịch v điều khiển đồng thời phân tán

191


Giao dch trờn ngm c cho gi nh s c kt thỳc, tc l
luụn luụn cũn ch trng trờn chuyn bay ú, khụng kim tra cũn vộ
hay khụng. Tuy nhiờn õy l mt gi thit khụng thc t v t ra mt
vn l kh nng kt thỳc giao dch.
Chui cỏc thao tỏc cỏc phộp toỏn ca giao dch c biu din
nh sau: begin nhp flight_no, date v customer_name vo vựng m,
read v so sỏnh flight_no, read v so sỏnh date, read STSOLD,
STSOLD = STSOLD + 1, write STSOLD, write mt b (flight_no,
date, customer_name, null), hin th ra mn hỡnh end.
4.2.2 iu kin kt thỳc giao dch
Mt giao dch luụn luụn phi c kt thỳc ngay c khi h thng
cú s c xy ra. Cú hai tỡnh hung kt thỳc giao dch xy ra:
a) Nu giao dch thnh cụng, núi rng giao dch l y thỏc (Commit).
Vai trũ quan trng ca s u thỏc biu hin hai mt:
Lnh Commit thụng tin cho h qun tr c s d liu phõn tỏn DBMS bit rng kt qu thc hin ca giao dch n ti thi
im ny cn phi c phn ỏnh vo trong c s d liu. Qua
ú lm cho cỏc giao dch ang truy xut cỏc mc d liu ú cú
th thy c chỳng.
im m giao dch Commit l mt im khụng quay tr li.
Kt qu ca giao dch ó Commit bõy gi s c lu c nh
trong c s d liu v khụng th phc hi li trng thỏi trc c.
b) Ngc li vi Commit, nu giao dch dng li v cha hon thnh,
núi rng giao dch ú b hy b (Abort). Mt giao dch b h qun tr
c s d liu hu b cú th vỡ b tc hay vỡ nhiu lý do khỏc. Vớ d
giao dch s b hu b khi chuyn bay khụng cũn vộ. Khi mt giao
dch b hu b, tt c quỏ trỡnh thc thi s b ngng li v tt c mi
hnh ng ó c thc hin phi c hi phc li (Undo), chuyn
c s d liu v trng thỏi trc khi thc hin giao dch, iu ny
c gi l Rollback.



Gi¸o tr×nh C¬ së d÷ liÖu ph©n t¸n

192

Ví dụ 4.3:
Begin_transaction Reservation
begin
input (flight_no, date, customer_name)
EXEC SQL SELECT STSOLD, CAP

INTO temp1, temp2
FROM FLIGHT
WHERE FNO = flight_no
AND DATE = date;
if temp1 = temp2 then
begin
output(“không còn ghế trống”);
Abort
end
else begin
EXEC SQL UPDATE FLIGHT
SET STSOLD = STSOLD + 1
WHERE FNO = flight_no
AND DATE = date;
EXEC SQL INSERT
INTO FC(FNO, DATE, CNAME, SPECIAL)
VALUES(flight_no, date, customer_name, null);
Commit;

Output(“Giao dịch đã hoàn thành”);
end.
end-if
end.


Ch−¬ng 4: Qu¶n lý giao dÞch vμ ®iÒu khiÓn ®ång thêi ph©n t¸n

193

Giải thích hoạt động của giao dịch:
• Câu lệnh SQL đầu tiên sẽ chuyển STSOLD và CAP vào trong
hai biến temp1 và temp2. Khác với giao dịch đã trình bày trong
ví dụ 4.2 là cập nhật giá trị STSOLD vào trong cơ sở dữ liệu.
• So sánh temp1và temp2 xem còn vé trên chuyến bay đó hay
không. Giao dịch sẽ bị huỷ bỏ nếu không còn vé. Ngược lại nếu
còn vé thì giao dịch sẽ cập nhật giá trị STSOLD và chèn bộ
mới vào trong quan hệ FC để ghi nhận rằng vé đã được bán.
Như vậy khi trên chuyến bay mà khách hàng đặt vé không còn
chỗ trống thì giao dịch lập tức bị huỷ bỏ.
4.2.3 Đặc tính của giao dịch
Giao dịch chỉ đọc và ghi dữ liệu, cơ sở cho việc nhận biết một
giao dịch. Các đặc tính của giao dịch bao gồm:
• Các mục dữ liệu được giao dịch đọc tạo thành tập đọc RS (Read
Set).
• Các mục dữ liệu được giao dịch ghi được gọi là tập ghi WS
(Write Set). Tập đọc hoặc tập ghi của giao dịch không nhất
thiết phải tách biệt nhau.
• Hợp tập đọc và tập ghi của giao dịch tạo thành tập cơ sở BS =
RS ∪ WS .

Đặc trưng các giao dịch chỉ trên cơ sở các thao tác đọc và ghi mà
không cần xem xét đến các thao tác chèn và xóa.
Ví dụ 4.4:
RS = {FLIGHT.STSOLD, FLIGHT.CAP}
WS = {FLIGHT.STSOLD, FC.FNO, FC.DATE, FC.CNAME,
FC.SPECIAL}
BS = {FLIGHT.STSOLD, FLIGHT.CAP, FC.FNO,
FC.DATE, FC.CNAME, FC.SPECIAL}.


Gi¸o tr×nh C¬ së d÷ liÖu ph©n t¸n

194

4.2.4 Đặc trưng hóa khái niệm giao dịch
Định nghĩa khái niệm giao dịch một cách hình thức như sau:
Ký hiệu:
• Phép toán Oj của giao dịch Ti khi thực hiện trên thực thể x của
cơ sở dữ liệu là Oij (x). Theo qui ước Oij ∈ {read, write}. Các
phép toán giả sử là nguyên tố, nghĩa là mỗi phép toán được
thực thi như là một đơn vị không thể chia nhỏ được.
• OSi là tập tất cả các phép toán trong Ti, nghĩa là OSi = ∪j Oij. Ni
biểu thị cho tình huống kết thúc của Ti, trong đó Ni ∈ {Abort,
Commit}.
Như vậy, có thể định nghĩa giao dịch Ti là một thứ tự bộ phận trên
các phép toán và tình huống kết thúc của nó. Thứ tự bộ phận P = {∑,
α} định nghĩa một trật tự giữa các phần tử của ∑ (được gọi là miền)
qua một quan hệ hai ngôi bắc cầu và không phản xạ α được định
nghĩa trên ∑ bao gồm các phép toán và tình huống kết thúc của một
giao dịch, trong đó α chỉ thứ tự thực hiện của những phép toán này.

Một cách hình thức, một giao dịch Ti là một thứ tự bộ phận Ti = {∑i ,
α}, trong đó:
1. Σi = OSi ∪ {Ni}
2. Với hai phép toán bất kỳ Oij, Oik ∈ OSi, nếu Oij = {R(x) hoặc
W(x)} và Oik = W(x) với một mục dữ liệu x nào đó, khi đó
hoặc Oij αi Oik hoặc Oik αi Oij
3. ∀Oij ∈ OSi, Oij αi Ni.
Điều kiện thứ nhất định nghĩa miền như một tập hợp các thao tác
đọc và ghi cấu tạo nên giao dịch với tình huống kết thúc, có thể là
Commit hoặc Abort. Điều kiện thứ hai xác định quan hệ thứ tự giữa
các thao tác đọc và ghi có tương tranh của giao dịch, điều kiện cuối
cùng chỉ ra rằng tình huống kết thúc luôn đi sau tất cả những thao
tác khác.


Chơng 4: Quản lý giao dịch v điều khiển đồng thời phân tán

195

Vớ d 4.4: Xột vớ d v h thng t vộ mỏy bay nh trong vớ d
4.3, cú hai tỡnh hung kt thỳc, ph thuc vo cũn vộ hay khụng v nú
ch tn ti mt tỡnh hung. Tuy nhiờn giao dch l mt thc thi ca
chng trỡnh, vỡ vy vn cú hai kh nng xy ra: hy b hay y thỏc.
Bng khỏi nim hỡnh thc hoỏ giao dch cú th biu din cỏc giao dch
ú nh sau:
Giao dch u: T1 = {1, 1}
1 = {R(STSOLD), R(CAP), A}.
1 = {R(STSOLD), A), (R(CAP), A).
Giao dch sau: T2 ={2, 2}
2 = {R(STSOLD), R(CAP), W(STSOLD), W(FNO),

W(DATE), W(CNAME), W(SPECIAL), C};
2 = {(R(STSOLD), W(STSOLD)), (R(CAP), W(STSOLD)),
(R(STSOLD), (FNO)), (R(STSOLD), W(DATE)),
(R(STSOLD), W(CNAME)), (R(STSOLD),
W(SPECIAL)), (R(CAP), W(FNO)), (R(CAP),
W(DATE)), (R(CAP), W(CNAME)), (R(CAP),
W(SPECIAL)), (R(STSOLD),C), (R(CAP),C),
(W(STSOLD),C), (W(FNO),C), (W(DATE,C),
(W(CNAME, C), (W(SPECIAL),C)}
Cú th biu din mt giao dch nh mt th t b phn, l mt
th cú hng khụng vũng DAG (Directed Acyclic Graph). Cỏc nh
ca th l cỏc phộp toỏn ca giao dch v cng l mi liờn h th t
gia mi cp phộp toỏn ó cho. iu ny cho phộp biu din s thc
thi mt lỳc nhiu giao dch, ng thi cng chng minh c tớnh
ỳng n ca nú nh cỏc cụng c ca lý thuyt th.
Vớ d 4.5: Xột mt giao dch n gin T nh sau:
Read(x)
Read(y)


Gi¸o tr×nh C¬ së d÷ liÖu ph©n t¸n

196

x←x+y
Write(x)

Commit
Khi đó Σ = {R(x), R(y), W(x), C}
α = {(R(x), W(x)), (R(y), W(x)), (W(x), C), (R(x), C), (R(y), C)}

Trong đó (Oi, Oj) là Oi α Oj
Giao dịch được biểu diễn bằng một đồ thị DAG, trong đó không
có các cung được suy ra nhờ tính chất bắc cầu mặc dù chúng là những
phần tử của α.

Hình 4.2: Biểu diễn dạng DAG cho một giao dịch
4.3 CÁC TÍNH CHẤT GIAO DỊCH
Tính nhất quán và độ tin cậy của giao dịch có bốn tính chất, được
gọi là tính chất ACID (ACIDity) của giao dịch:
1. Tính nguyên tố (A)
2. Tính nhất quán (C)
3. Tính cô lập (I)
4. Tính bền vững (D).
4.3.1 Tính nguyên tố
Một giao dịch được xử lý như là một đơn vị thao tác. Hoặc tất cả
các thao tác của giao dịch được hoàn thành, hoặc ngược lại, không có
thao tác nào được hoàn thành. Tính nguyên tố đòi hỏi nếu thực thi của
giao dịch bị ngắt bởi một sự cố nào đó thì hệ quản trị cơ sở dữ liệu sẽ


Chơng 4: Quản lý giao dịch v điều khiển đồng thời phân tán

197

chu trỏch nhim xỏc nh cụng vic cn c thc hin i vi giao
dch khụi phc li sau s c. Cú hai kiu hot ng: hoc nú s
c kt thỳc bng cỏch hon thnh cỏc hot ng cũn li, hoc cú th
c kt thỳc bng cỏch khụi phc li tt c cỏc hot ng ó c
thc hin.
Cú hai loi s c, mt giao dch cú th cú li trong khi hot ng

do li d liu vo, b tc, hoc cỏc yu t khỏc. Trong cỏc trng hp
ny, giao dch t hy hoc h qun tr c s d liu phi hy giao dch
trong khi nú hy b tc chng hn. Duy trỡ c tớnh nguyờn t khi cú
s hin din ca hai loi s c ny thng c gi l khụi phc giao
dch. Loi s c th hai l s c h thng, nh s c thit b lu tr,
s c ca b x lý, mt in,... Bo m tớnh nguyờn t trong trng
hp ny gi l khc phc s c.
S khỏc bit gia hai loi s c l trong mt s loi tai nn h
thng, thụng tin trong b nh chớnh cú th b mt hoc khụng truy cp
c. C hai kiu khụi phc u l cỏc vn v tin cy.
Mi nguyờn t l mt thao tỏc c bn. m bo cho tớnh nguyờn
t ca cỏc giao dch l cỏc phng phỏp tun t húa lm cho cỏc thao
tỏc ca giao dch thc hin mt cỏch tun t.
Mt giao dch khụng cú tớnh nguyờn t nu:
1. Trong h thng phõn chia theo thi gian, giao dch T cú th kt
thỳc trong khi T ang tớnh toỏn v cỏc hot ng ca giao dch
khỏc s c thc hin trc khi T hon tt. Trong trng hp
ny h thng phi bo m rng, dự iu gỡ cú xy ra trong khi
giao dch thc hin, thỡ c s d liu khụng b nh hng bi
cỏc tỏc ng bt ng ca giao dch. Hoc
2. Mt giao dch cha hon tt cỏc cụng vic, phi chm dt hot
ng gia chng, cú th vỡ thc hin phộp toỏn khụng hp l
(chia cho s 0), hoc cú th do yờu cu d liu khụng c
quyn truy xut. H thng buc giao dch phi ngng hot



×