Cỏc loại giao dịch dựa trờn việc tổ chức

Một phần của tài liệu Giáo trình cơ sở dữ liệu phân tán TS phạm thế quế, TS hoàng minh (Trang 27)

và ghi

Cú thể phõn loại giao dịch dựa trờn việc tổ chức cỏc hành động đọc và ghi. Cỏc giao dịch tổng quỏt (General) pha trộn cỏc hành động đọc và ghi khụng theo bất kỳ một thứ tự cụ thể nào. Nếu một giao dịch bị hạn chế, buộc tất cả cỏc hành động đọc phải được thực hiện trước hành động ghi, thỡ nú được gọi là giao dịch hai bước (Two Step). Tương tự, nếu giao dịch bị buộc phải đọc một mục dữ liệu trước khi cập nhật, thỡ giao dịch được gọi là hạn chế (Restricted) hay đọc trước ghi (Read Before Write). Nếu một giao dịch vừa thuộc loại hai bước vừa loại hạn chế, nú được gọi là giao dịch hai bước hạn chế (Restricted Two Step). Cuối cựng là mụ hỡnh hành động (Action Mode) của cỏc giao dịch, được cấu tạo bởi loại hạn chế, yờu cầu từng cặp <đọc, ghi> được thực hiện theo kiểu nguyờn tố.

Hỡnh 4.3: Cỏc mụ hỡnh giao dịch

4.4.3 Luồng cụng việc - WorkFlows

Trong quỏ trỡnh quản lý cỏc giao dịch, người ta nhận thấy rằng đối với cỏc giao dịch ngắn và mối quan hệđơn giản thỡ việc quản lý

rất dễ dàng và ngay cả việc thực thi cũng rất tốt. Tuy nhiờn khi dữ liệu trong hệ phõn tỏn nhiều về số lượng và vị trớ thỡ cỏc giao dịch trở nờn dài hơn, phức tạp hơn. Mụ hỡnh giao dịch đơn giản khụng cũn phự hợp cần thay thế bằng một mụ hỡnh giao dịch phức tạp hơn, kết hợp cú tớnh mở cỏc giao dịch với nhau.

Cú thể hiểu “Workflow” - dũng cụng việc, là một tập hợp cỏc tỏc vụ (Task) được tổ chức để hoàn thành một số tiến trỡnh giao dịch (Business Process).

Cú ba loại luồng cụng việc như sau:

1. Luồng cụng việc hướng con người (Human Oriented) gồm con người trong việc thực hiện cỏc tỏc vụ. Hỗ trợ của hệ thống được cung cấp nhằm tạo thuận lợi cho việc hợp tỏc và điều phối giữa con người với nhau nhưng chớnh con người phải chịu trỏch nhiệm bảo đảm tớnh nhất quỏn của cỏc hành động.

2. Luồng cụng việc hướng hệ thống (System Oriented) chứa cỏc tỏc vụ chuyờn dựng và nặng về tớnh toỏn, cú thểđược mỏy tớnh thực hiện. Hỗ trợ của hệ thống trong trường hợp này rất đỏng kể, bao gồm việc điều khiển đồng thời và khụi phục thực thi tỏc vụ tựđộng,...

3. Luồng cụng việc giao dịch (Transactional Workflow) nằm trong phạm vi giữa luồng cụng việc hướng con người và luồng cụng việc hướng hệ thống và đặc trưng của chỳng. Việc thực thi cú điều phối của nhiều tỏc vụ:

a. Cú thể cú con người;

b. Đũi hỏi truy cập đến cỏc hệ thống HAD (hỗn hợp, tự trị và phõn tỏn) Hỗ trợ việc sử dụng một cỏch chọn lọc cỏc tớnh chất ACID của giao dịch cho từng tỏc vụ hoặc toàn bộ luồng cụng việc.

Đặc điểm của dũng cụng việc hướng giao dịch: Là dũng cụng việc đề cập đến thực thi kết hợp của nhiều tỏc vụ (task) liờn quan đến:

a. Con người

b. Cỏc yờu cầu truy cập đến hệ thống HAD (hệ thống HAD là hệ thống cú 3 tớnh chất: hỗn tạp (Heterogeneous), tự trị (Autonomous), phõn tỏn (Distributed))

c. Liờn quan đến hỗ trợ lựa chọn sử dụng cỏc đặc tớnh toàn tỏc cho cỏc tỏc vụ riờng lẻ hoặc cỏc dũng cụng việc toàn bộ Đặc điểm (c) là quan trọng nhất đối với cỏc dũng cụng việc toàn tỏc. Cú rất nhiều tổ chức về Transactional Workflow và theo nhiều cỏch khỏc nhau, nhưng đặc điểm chung mà về loại dũng cụng việc này đú là một tập hợp cỏc tỏc vụ mà thứ tự quan hệ giữa chỳng được định nghĩa tốt.

Vớ d 4.7: Xột một vớ dụ về dũng cụng việc, trong một hệ thống phục vụ khỏch du lịch cú nhu cầu vềđặt vộ mỏy bay và thuờ xe hơi. Mụ hỡnh cỏc tỏc vụ trờn cỏc khỏch hàng (Database Customers), vộ mỏy bay (Fligth) và phỏt hành húa đơn (Bills), được biểu diễn trong hỡnh 4.4. Trong đú: T1, T2, T3, và T4 là cỏc tỏc vụ (Task). Cú thể hiểu tỏc vụ là một thao tỏc thực hiện một vấn đề nào đú.

Customer Database là cơ sở dữ liệu chứa thụng tin về khỏch hàng bao gồm cỏc thụng tin cỏ nhõn và thụng tin nhu cầu đặt vộ bỏy bay và thuờ xe.

• Cơ sở dữ liệu khỏch hàng được truy xuất để cú được yờu cầu của khỏch hàng vềđặt vộ mỏy bay và thuờ xe. Tỏc vụ T1 là sự ghi nhận yờu cầu này.

• Tỏc vụ T2đặt vộ mỏy bay bằng cỏch truy xuất vào cơ sở dữ liệu đặt vộ mỏy bay (Fligth) và thực hiện đỏp ứng yờu cầu khỏch hàng thuờ xe và khỏch sạn.

• Tỏc vụ T2 yờu cầu tỏc vụ T3 trao đổi cỏc thỏa thuận về xe hơi với cỏc cụng ty cho thuờ xe hơi.

• Tỏc vụ T2 yờu cầu tỏc vụ T4 trao đổi cỏc thỏa thuận về khỏch sạn. • Tỏc vụ T5 thao tỏc tớnh húa đơn sau khi đó thỏa thuận mọi điều

khoản đỏp ứng cỏc yờu cầu của khỏch lưu thụng tin trong cơ sở dữ liệu húa đơn.

Trong luồng cụng việc này tỏc vụ T2 sẽ phụ thuộc vào T1, vỡ T2 phải đỏp ứng yờu cầu của T1 và T3 và T4 phụ thuộc vào T2, vỡ T3 và T4 sinh ra sau khi T2 thực hiện.

T3 và T4 được thực thi song song. T5 phụ thuộc vào T3 và T4, việc tớnh húa đơn chỉ thực hiện khi cỏc thỏa thuận đó được hoàn tất.

Một luồng cụng việc được mụ hỡnh húa như là một hoạt động (Activity), cỏc ngữ nghĩa cho phộp cỏc kết quả chưa hoàn chỉnh được duyệt lại bởi cỏc giới hạn bờn ngoài của hoạt động đú, tức là cỏc biờn của hoạt động. Vỡ vậy cỏc tỏc vụ cấu thành một luồng cụng việc được cho phộp cam kết một cỏch riờng biệt.

Cỏc tỏc vụ cú thể là cỏc hoạt động khỏc cựng ngữ nghĩa giao dịch của luồng cụng việc đang xõy dựng.

Hỡnh 4.4: Một vớ dụ về dũng cụng việc

4.5 ĐIỀU KHIỂN CÁC GIAO DỊCH ĐỒNG THỜI PHÂN TÁN

4.5.1 Đặt vấn đề (adsbygoogle = window.adsbygoogle || []).push({});

Điều khiển cỏc giao dịch một cỏch đồng thời là một vấn đề quan trọng trong mụi trường cơ sở dữ liệu phõn tỏn, càng cú ý nghĩa khi nhu cầu thực hiện cỏc giao dịch từ phớa người sử dụng là rất lớn. Cỏc

giao dịch được tiến hành song song sẽ nõng cao hiệu năng hoạt động của hệ thống. Tuy nhiờn việc thực hiện đồng thời cỏc giao dịch sẽ nảy sinh nhiều vấn đề phức tạp. Một trong cỏc vấn đề lớn nhất đú là sự tương tranh giữa cỏc giao dịch cựng cú nhu cầu sử dụng một mục dữ liệu. Làm thế nào để đảm bảo cỏc giao dịch hoạt động cú hiệu quả, đảm bảo được cỏc tớnh chất biệt lập và nhất quỏn của cỏc giao dịch, tớnh độc lập và toàn vẹn của dữ liệu. Đú chớnh là cỏc mục tiờu của điều khiển đồng thời phõn tỏn.

Điều khiển đồng thời phõn tỏn giải quyết cỏc vấn đề về biệt lập (Isolation) và tớnh nhất quỏn (Consistency) 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 là nhằm đảm bảo tớnh nhất quỏn của cơ sở dữ liệu trong mụi trường phõn tỏn cú nhiều người sử dụng. Nếu hệ quản trị cơ sở dữ liệu phõn tỏn điều khiển hoạt động đơn giản cỏc giao dịch phõn tỏn, bằng cỏch thực hiện tuần tự cỏc giao dịch, giao dịch sau bước vào hoạt động sau khi giao dịch trước đó hoàn tất. Phương phỏp này hạn chế khả năng truy cập hệ thống đến tối thiểu, trong khi phần cứng của hệ thống cú thể đỏp ứng được cho nhiều truy cập cựng một lỳc.

Mức độđồng thời cỏc giao dịch, nghĩa là số lượng cỏc giao dịch hoạt động cựng một lỳc, là một tham số quan trọng nhất trong cỏc hệ phõn tỏn. Vỡ vậy cơ chếđiều khiển phõn tỏn duy trỡ được mức độđồng thời cao là tỡm ra một phương ỏn thớch hợp vừa duy trỡ được tớnh nhất quỏn của cơ sở dữ liệu, vừa đảm bảo số lượng giao dịch.

Để giải quyết bài toỏn điều khiển đồng thời, giả sử hệ thống phõn tỏn hoàn toàn tin cậy và khụng hề cú bất cứ một sai sút nào về phần cứng và cũng như phần mềm. Giả thiết này cho phộp mụ tả cụng việc quản lý đồng thời, khụng phải mụ tả cỏc hoạt động của hệ thống.

Lý thuyết tuần tự (Serializability Theory), là nền tảng cơ sở để xõy dựng cho cỏc thuật toỏn điều khiển đồng thời phõn tỏn.

4.5.2 Tớnh khả tuần tự lịch biểu

Nếu việc thực thi đồng thời cỏc giao dịch làm cho cơ sở dữ liệu ở vào trạng thỏi như khi thực hiện tuần tự theo một thứ tự nào đú thỡ cỏc vấn đề như cập nhật bị thất lạc sẽđược giải quyết. Đõy là điểm quan trọng của lý luận về tớnh khả tuần tự. Một lịch biểu S được định nghĩa trờn tập giao dịch T = {T1, T2,..., Tn} và xỏc định thứ tự thực thi đan xen lẫn nhau cỏc thao tỏc trong giao dịch (lịch biểu tuần tự), khi đú cỏc sự cố tranh chấp chắc chắn khụng xảy ra và trong cơ sở dữ liệu sẽ được một kết quả nào đú. Lịch biểu cú thểđược mụ tả như là một thứ tự bộ phận trờn T.

Giả sử cú tập k giao dịch T = {T1, T2,..., Tk}. Như vậy tương ứng với T cú k! (k giai thừa) cỏc lịch biểu tuần tự khỏc nhau. Giả sử hoạt động của cỏc giao dịch đồng thời là đỳng đắn khi và chỉ khi tỏc động của nú cũng giống như tỏc động cú được của một lịch biểu tuần tự. Một lịch biểu S (Schedule) cho một tập cỏc giao dịch T là thứ tự (cú thể xen kẽ) cỏc bước cơ bản của cỏc giao dịch được thực hiện.

Hai thao tỏc Oij(x) và Okl(x), i, k khụng nhất thiết phải phõn biệt, cựng truy cập đến một thực thể cơ sở dữ liệu x được gọi là cú tương tranh nếu ớt nhất một trong chỳng là thao tỏc ghi. Biết rằng, cỏc thao tỏc đọc khụng tương tranh với nhau, vỡ vậy, cú hai loại tương tranh đọc-ghi và ghi-ghi. Hai thao tỏc này cú thể cựng một giao dịch hoặc thuộc về hai giao dịch khỏc nhau và chỳng tương tranh với nhau. Như vậy, sự tương tranh giữa cỏc giao dịch sẽ xuất hiện giữa hai thao tỏc phụ thuộc vào thứ tự thực hiện của chỳng. a) Mt lch biu đầy đủ (Complete Schedule) Là lịch biểu định nghĩa thứ tự thực hiện cho tất cả cỏc thao tỏc trong miền biến thiờn của nú. Về hỡnh thức, một lịch biểu đầy đủ Sc T được định nghĩa trờn một tập giao dịch T= {T1, T2, ..., Tn} là một thứ tự bộ phận c T S = {ΣT, αT}, trong đú: 1. n T i 1= i ∑ = ∪ ∑

2. n T i 1= i α ⊇ ∪ α

3. Hai thao tỏc tương tranh bất kỳ Oij ,Okl ∈ ΣT cú Oij αT Okl hoặc Okl αT Oij.

Điều kiện đầu tiờn khẳng định miền biến thiờn của lịch biểu là hợp của cỏc miền biến thiờn của từng giao dịch. Điều kiện thứ hai định nghĩa một quan hệ thứ tự là một tập bao hàm của cỏc quan hệ thứ tự của cỏc giao dịch. Điều này duy trỡ thứ tự thao tỏc bờn trong mỗi giao dịch. Điều kiện cuối cựng định nghĩa thứ tự thực thi giữa cỏc thao tỏc tương tranh.

Vớ d 4.8: Xột hai giao dịch của vớ dụ 4.7, được đặc tả: T1: Read(x) x ← x + 1 Write(x) Commit T2: Read(x) x ← x + 1 Write(x) Commit Một lịch biểu đầy đủ ScT trờn T = {T1, T2} cú thểđược biểu diễn như sau: c T S = {ΣT, αT} Trong đú: Σ1 = {R1(x), W1(x), C1} Σ2 = {R2(x), W2(x), C2} Vỡ vậy: ΣT = Σ1 ∪ Σ2 = {R1(x), W1(x), C1, R2(x), W2(x), C2 } và αT = {(R1, R2), (R1, W1), (R1, C1), (R1, W2),(R1, C2), (R2, W1), (R2, C1), (R2, W2), (R2, C2),(W1, C1), (W1, W2), (W1, C2), (C1, W2), (C1. C2), (W2, C2)}.

Để đơn giản húa ký phỏp cho một lịch biểu thường được đặc tả như dóy cỏc thao tỏc trong ΣT, quy ước c

T S cú thểđược đặc tả như sau: c T S = {R1(x), R2(x), W1(x), C1, W2(x), C2} Biểu diễn lịch biểu đầy đủđủ Sc T dưới sơđồ DAG như hỡnh 4.5.

Hỡnh 4.5: Biểu diễn DAG của một lịch biểu đầy đủ

b) Lch biu là mt tin t (Prefix) ca lch biu đầy đủ

Lịch biểu được định nghĩa như sau:

Cho một thứ tự bộ phận P = {Σ,α}. Núi rằng P’ = {Σ’,α’} là một tiền tố của P nếu

1. Σ’ ⊆ Σ

2. ∀ei ∈ Σ’, e1 α’ e2 khi và chỉ khi e1 α e2 3. ∀ei ∈ Σ’, nếu ∃ej ∈ Σ và ej ∈ ei thỡ ej ∈ Σ’.

(1) và (2) xỏc định P’ là một hạn chế của P trờn miền Σ’ và cỏc quan hệ thứ tự trong P được duy trỡ trong P’. Điều kiện (3) chỉ ra rằng với mọi phần tử của Σ’, tất cả cỏc phần tửđứng trước nú trong Σ cũng phải thuộc Σ’.

Dựa vào một lịch biểu tiền tố của thứ tự bộ phận cú thể xử lý cỏc lịch biểu khụng đầy đủ trong cỏc trường hợp cỏc giao dịch cú tương tranh và khi xuất hiện sự cố cần phải cú khả năng giải quyết với những giao dịch khụng đầy đủ.

Vớ d 4.9: Minh họa một lịch biểu khụng đầy đủ. Xột ba giao dịch sau đõy: T1: Read(x) Write(x) Commit T2: Write(x) Write(y) Read(z) Commit T3: Read(x) Read(y) Read(z) Commit

Một lịch biểu đầy đủ Sc cho những giao dịch này được trỡnh bày trong hỡnh 4.6a và một lịch biểu S là một tiền tố của Sc được mụ tả trong hỡnh 4.6b.

Hỡnh 4.6

c) Lch biu tun t:

Nếu trong một lịch biểu S, cỏc thao tỏc của cỏc giao dịch khỏc nhau khụng được thực hiện xen kẽ, nghĩa là cỏc thao tỏc của mỗi giao dịch xảy ra liờn tiếp, khi đú lịch biểu này được gọi là tuần tự. Thực thi tuần tự một tập cỏc giao dịch duy trỡ được tớnh nhất quỏn của giao dịch, tức là duy trỡ được tớnh nhất quỏn của cơ sở dữ liệu. Mỗi giao dịch, khi được thực hiện độc lập trờn một cơ sở dữ liệu nhất quỏn, sẽ sinh ra một cơ sở dữ liệu nhất quỏn.

Vớ d 4.10: Xột một lịch biểu của cỏc giao dịch trong vớ dụ 4.9 như sau: (adsbygoogle = window.adsbygoogle || []).push({});

S = {W2(x), W2(y), R2(z), C2, R1(x), W1(x), C1, R3(x), R3(x), R3(y), R3(z), C3}.

Lịch biểu S là tuần tự vỡ tất cả cỏc thao tỏc của T2 được thực hiện trước cỏc thao tỏc của T1 và cỏc thao tỏc của T1được thực hiện trước cỏc thao tỏc của T3.

Cú thể biểu diễn mối liờn hệ thứ bậc giữa cỏc thực thi giao dịch là: T2 αS T1 αS T3 hoặc T2 → T1 → T3.

d) S tương đương ca cỏc lch biu:

Núi rằng, hai lịch biểu S1 và S2 được định nghĩa trờn cựng một tập giao dịch T là tương đương nếu chỳng cú cựng tỏc dụng trờn cơ sở dữ liệu. Núi cỏch khỏc, hai lịch biểu S1 và S2 được định nghĩa trờn cựng một tập giao dịch T được gọi là tương đương nếu với mỗi cặp thao tỏc tương tranh Oij và Okl (i ≠ k), mỗi khi Oij α1 Okl thỡ Oij α2 Okl. Gọi là tương đương tương tranh vỡ sự tương đương của hai lịch biểu theo thứ tự thực thi tương đối của cỏc thao tỏc tương tranh trong cỏc lịch biểu. Giả thiết T khụng chứa cỏc giao dịch bị hủy bỏ.

Như vậy dựa vào mối liờn hệ thứ bậc của thứ tự bộ phận, cú thể định nghĩa sự tương đương của cỏc lịch biểu ứng với tỏc dụng của chỳng trờn cơ sở dữ liệu.

Vớ dụ: Cho hai lịch biểu sau được định nghĩa trờn ba giao dịch của vớ dụ 4.9:

S = {W2(x), W2(y), R2(z), C2, R1(x), W1(x), C1, R3(x), R3(x), R3(y), R3(z), C3}.

S’ = {W2(x), R1(x), W1(x), C1, R3(x), W2(y), R3(y), R2(z), C2, R3(z), C3}

e) Tớnh kh tun t ca lch biu:

Một lịch biểu S được gọi là khả tuần tự hay khả tuần tự theo tương tranh khi và chỉ khi nú tương đương tương tranh với một lịch biểu tuần tự. Lưu ý rằng tớnh khả tuần tự chỉ tương đương với tớnh nhất quỏn mức 3.

Bõy giờ khi đó định nghĩa một cỏch hỡnh thức tớnh khả tuần tự, chỳng ta cú thể chỉ ra rằng chức năng cơ bản của bộ phận điều khiển đồng thời là tạo ra một lịch biểu khả tuần tựđể thực hiện cỏc giao dịch đang chờđợi. Như vậy, vấn đề là điều chỉnh lại cỏc thuật toỏn đểđảm bảo rằng chỳng chỉ sinh ra cỏc lịch biểu khả tuần tự.

Lý thuyết khả tuần tự cú thể mở rộng cho cỏc hệ cơ sở dữ liệu phõn tỏn khụng nhõn bản bằng phương phỏp đơn giản. Lịch biểu thực

Một phần của tài liệu Giáo trình cơ sở dữ liệu phân tán TS phạm thế quế, TS hoàng minh (Trang 27)