Hình thức hố khái niệm giao tác

Một phần của tài liệu (TIỂU LUẬN) bài GIẢNG cơ sở dữ LIỆU PHÂN tán (Trang 134 - 138)

Cho đến lúc này, ý nghĩa trực quan của giao tác đã hoàn toàn rõ ràng. Để bàn luận về các giao tác và suy diễn tính đúng đắn của các thuật toán quản lý giao tác, chúng ta cần định nghĩa khái niệm này một cách hình thức. Chúng ta biểu thị phép tốn Oj của

giao tác Ti khi hoạt tác trên thực thể cơ sở dữ liệu x là O ij(x). Theo qui ước được thừa nhận ở phần trước, Oij ∈ {read, write}. Các phép toán được giả thiết là nguyên tử (nghĩa

là mỗi phép toán được thực thi như một đơn vị không thể chia nhỏ được nữa). Chúng ta

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

hãy ký hiệu OSi là tập tất cả các phép toán trong Ti (nghĩa là OSi = Uj Oij). Ni biểu thị cho tình huống của Ti, trong đó Ni ∈ {abort, commit}.2

Với các thuật ngữ này, chúng ta có thể định nghĩa Ti là một thứ tự bộ phận trên các

phép tốn và tình huống kết thúc của nó. Thứ tự bộ phận P = {∑, 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ạ p được định nghĩa trên ∑. Trong trường hợp đang xét, ∑ bao gồm các phép tốn

và tình huống kết thúc của một giao tác, trong đó p chỉ thứ tự thực hiện của các phép toán này (được chúng ta đọc là “đứng trước theo thứ tự thực thi”).

Một cách hình thức, một giao tác TI là một thứ tự bộ phận TI = {∑i,<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) or W(x)} và Oik = w(x) với một mục dữ liệu x nào đó, thế thì Oij < i Oik hoặc Oik < i Oij. 3. ∀Oij ∈ OSi, Oij < i Ni.

Điều kiện thứ nhất về hình thức định nghĩa miền như một tập các thao tác đọc và ghi cấu tạo nên giao tác cộng 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 tác, còn điều kiện cuối cùng chỉ ra rằng tình huống kết thúc ln đi sau tất cả những thao tác khác.

Có hai điểm quan trọng cần lưu ý trong định nghĩa này. Trước tiên, quan hệ thứ tự

p được cho trước và định nghĩa này không hề xây dựng nó. Quan hệ thứ tự thực sự phụ thuộc vào ứng dụng. Kế đến, điều kiện thứ hai chỉ ra rằng thứ tự giữa các thao tác có tương tranh phải tồn tại bên trong p. Hai thao tác Oi(x) và Oj(x) được gọi là có tương tranh nếu Oi = Write hoặc Oj = Write (có nghĩa ít nhất một trong chúng là Write và chúng truy xuất cùng một mục dữ liệu).

Ví dụ 6.5: Xét một giao tác đơn giản T có các bước sau: Read(x)

Read(y) x← x+y

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

Write(x) Commit

Đặc tả của giao tác này theo ký pháp hình thức đã được giới thiệu ở trên là:

∑ = {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à một phần tử của quan hệ p, biểu thị rằng Oi < Oj.

Chú ý rằng quan hệ thứ tự tương đối của tất cả các thao tác ứng với tình huống kết thúc. Điều này là do điều kiện thứ ba của định nghĩa giao tác. Cũng cần chú ý rằng chúng ta không mô tả thứ tự giữa mỗi cặp thao tác. Điều đó giải thích vì sao đây là một thứ tự bộ phận.

Ví dụ 6.6

Giao tác đặt chỗ được xây dựng trong ví dụ 6.3 phức tạp hơn. Chú ý cho rằng có hai tình huống kết thúc, tùy vào tình trạng có cịn chỗ trống hay khơng. Trước tiên, điều này dường như mâu thuẫn với định nghĩa của giao tác, đó là chỉ tồn tại một tình huống kết thúc. Tuy nhiên cần nhớ rằng giao tác là một thực thi của một chương trình. Rõ ràng là

trong bất kỳ lần thực thi nào, chỉ một trong hai tình huống kết thúc xảy ra. Vì thế điều có thể xảy ra là một giao tác hủy bỏ và một giao tác khác ủy thác. Sử dụng ký pháp hình thức này, giao tác đầu có thể được đặc tả như sau:

Σ = {R(STSOLD); R(CAP),A} < = {(O1,A), (O2,A)}

và giao tác sau được đặc tả như sau

Σ= {R(STSOLD), R(CAP), W(STSOLD), W(FNO), W(DATE), W(CNAME), W(SPECIAL), C}

< = {(O1,O3), (O2,O3), (O1,O4), (O1, O5), (O1, O6), (O1, O7), (O2, O4), (O2, O5), (O2, O6), (O2, O7),

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

(O1, C), (O2, C), (O3, C) (O4, C), (O5, C), (O6, C), (O7, C)}

trong đó O1 = R(STSOLD), O2 = R(CAP), O3 = W(STSOLD), O4 = W(FNO), O5= W(DATE), O6 = W(CNAME), O7 = W(SPECIAL).

Một ưu điểm của việc định nghĩa giao tác như một thứ tự bộ phận là sự tương ứng của nó với đồ thị có hướng khơng vịng DAG (directed acylic graph). Như thế một giao tác có thể được đặc tả như một DAG với đỉnh là các phép toán giao tác và cung chỉ ra mối liên hệ thứ tự giữa các cặp phép tốn đã cho.

Ví dụ 6.7

Giao tác được thảo luận trong ví dụ 5 có thể được vẽ như một DAG của hình 6.2.

Chú ý rằng chúng ta khơng vẽ các cung được suy ra nhờ tính chất bắc cầu dù rằng chúng ta xem chúng như những phần tử của p

R(x)

R(y) C

R(y)

Hình 6.2 Biểu diễn dạng DAG cho một giao tác

Trong phần lớn các trường hợp chúng ta không cần phải đề cập đến nhiều miền của thứ tự bộ phận một cách riêng rẽ với quan hệ thứ tự. Vì thế thơng thường chúng ta bỏ ∑ ra khỏi định nghĩa giao tác và sử dụng tên của thứ tự bộ phận để chỉ đến cả miền lẫn tên của thứ tự bộ phận. Điều đó sẽ tiện lợi bởi vì nó cho phép chúng ta đặc tả thứ tự của các phép toán trong một giao tác nhờ một phương thức khá đơn giản bằng cách dùng thứ tự tương đối của định nghĩa giao tác. Chẳng hạn chúng ta có thể định nghĩa giao tác của ví dụ 5 như sau:

T = {R(x), R(y), W(x), C} thay vì đặc tả dài dịng như trước.

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

Một phần của tài liệu (TIỂU LUẬN) bài GIẢNG cơ sở dữ LIỆU PHÂN tán (Trang 134 - 138)

Tải bản đầy đủ (DOCX)

(196 trang)
w