1. Trang chủ
  2. » Luận Văn - Báo Cáo

tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán

77 590 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 77
Dung lượng 1,76 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Lý thuyết điều khiển tương tranh hay đồng thời được đưa ra trong việc quản lý các giao dịch trên cơ sở dữ liệu phân tán nhằm giải quyết các tính chất biệt lập và nhất quán [5] trên một h

Trang 1

TRƯỜNG ĐẠI HỌC KHOA HỌC

TRẦN LÊ NGỌC

TÌM HIỂU MỘT SỐ THUẬT TOÁN ĐIỀU KHIỂN

TƯƠNG TRANH TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN

CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH

MÃ SỐ: 60.48.01

LUẬN VĂN THẠC SĨ KHOA HỌC

NGƯỜI HƯỚNG DẪN KHOA HỌC

TS NGUYỄN MẬU HÂN

Huế, 2012

Trang 2

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn là kết quả của quá trình nghiên cứu của riêng tôi dưới sự hướng dẫn của TS Nguyễn Mậu Hân Các số liệu, kết quả đã nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác, các tài liệu tham khảo có trích dẫn đầy đủ

Người thực hiện luận văn

Trần Lê Ngọc

Trang 3

Tôi xin gửi lời cảm ơn chân thành đến TS Nguyễn Mậu Hân, Thầy đã tận tình hướng dẫn em trong suốt thời gian học tập cũng như thời gian thực hiện luận văn

Vì thời gian và trình độ còn nhiều hạn chế cũng như số lượng lớn các thuật ngữ, khái niệm cần trình bày, chắc chắn luận văn còn có chỗ sai sót Rất mong nhận được ý kiến góp ý và động viên của các Thầy/Cô cũng như tất cả các Anh/Chị

và các bạn để luận văn được hoàn thiện hơn nữa

Xin chân thành cảm ơn!

Người thực hiện luận văn

Trần Lê Ngọc

Trang 4

MỤC LỤC

Trang phụ bìa

Lời cam đoan

Mục lục

Danh mục các ký hiệu, các chữ viết tắt

Danh mục các bảng

Danh mục các hình vẽ, đồ thị

MỞ ĐẦU 1

1.Lý do chọn đề tài 1

2 Mục đích nghiên cứu 1

3 Đối tượng và phạm vi nghiên cứu 1

4 Phương pháp nghiên cứu 1

5 Ý nghĩa khoa học và thực tiễn 2

6 Cấu trúc luận văn 2

CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 3

1.1 Phân mảnh dữ liệu 4

1.1.1 Các lý do phân mảnh dữ liệu 4

1.1.2 Các yêu cầu của việc phân mảnh dữ liệu 5

1.2 Các chiến lược phân tán dữ liệu 8

1.2.1 Tập trung dữ liệu 8

1.2.2 Chia nhỏ dữ liệu 8

1.2.3 Sao lặp dữ liệu 8

1.2.4 Phương thức lai 9

1.3 Cấp phát tài nguyên trong hệ phân tán 9

CHƯƠNG 2 QUẢN TRỊ GIAO DỊCH PHÂN TÁN 11

2.1 Xử lý truy vấn phân tán 11

2.1.1 Mục đích của xử lý truy vấn 11

2.1.2 Chức năng của xử lý truy vấn 11

2.1.3 Các phương pháp xử lý truy vấn cơ bản 11

2.1.4 So sánh xử lý truy vấn tập trung và phân tán 12

2.2 Quản trị các giao dịch phân tán 13

2.2.1 Các khái niệm 13

2.2.1.1 Quản lý giao dịch (Transaction Management – TM): 13

Trang 5

2.2.1.2 Giao dịch (Transaction): 14

2.2.2 Tính chất của giao dịch 14

2.2.3 Trạng thái của giao dịch 18

2.2.4 Xử lý giao dịch 20

2.3 Lịch biểu 21

2.3.1 Khái niệm lịch biểu 21

2.3.2 Các loại lịch biểu 22

2.4 Tính khả tuần tự 25

2.4.1 Tiến trình tuần tự 25

2.4.2 Tiến trình không tuần tự 25

2.4.3 Hai thao tác xung đột 25

2.4.4 Tiến trình tương đương 26

2.4.5 Tiến trình khả tuần tự 26

2.4.6 Tính khả tuần tự trong cơ sở dữ liệu phân tán 27

CHƯƠNG 3 ĐIỀU KHIỂN TƯƠNG TRANH TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN 28

3.1 Cơ sở của điều khiển tương tranh phân tán 28

3.1.1 Các khái niệm 30

32

3.2 Các kỹ thuật điều khiển tương tranh 34

3.2.1 Các kỹ thuật đồng bộ hóa dựa trên khóa hai pha 34

3.2.1.1 Quá trình thực hiện 2PL cơ bản 35

3.2.1.2 Kỹ thuật 2PL sao chép chính 39

3.2.1.3 Kỹ thuật 2PL biểu quyết 40

3.2.1.4 Kỹ thuật 2PL tập trung 40

3.2.1.4 Kỹ thuật 2PL phân tán 41

3.2.2 Phát hiện và ngăn chặn tắc nghẽn 42

3.2.2.1 Ngăn chặn tắc nghẽn 44

3.2.2.2 Phát hiện tắc nghẽn 46

47

3.2.3.1 Thuật toán TO cơ bản 49

3.2.3.2 Thuật toán TO bảo thủ 50

3.2.3.3 Thuật toán TO đa bản 52

3.2.3.4 Duy trì TO: 53

Trang 6

3.2.3.5 Quản lý nhãn thời gian: 53

1.3.Mô phỏng nhiều giao dịch đồng thời trên hệ thống ATM đa ngân hàng 55

3.3.1 Giới thiệu chương trình 55

3.3.2 Mô tả bài toán 55

3.3.4 Thiết kế cơ sở dữ liệu 58

3.3.5 Đề xuất ý tưởng thuật toán điều khiển tương tranh 58

3.3.6 Nội dung thuật toán 59

3.3.7 Giao diện và các chức năng của chương trình 60

3.3.8 Quy trình kiểm thử chương trình 63

KẾT LUẬN 66

1.Đánh giá kết quả 66

2 Phạm vi ứng dụng 66

3 Hướng phát triển 66

TÀI LIỆU THAM KHẢO 68

Trang 7

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

2PL Two phases locking

ACK Acknowledgment

ATM Automated teller machine

BTO Basic timestamp ordering

Trang 8

DANH MỤC CÁC BẢNG

1.1 Cơ sở dữ liệu của một công ty máy tính 7

2.3 Bảng biểu diễn tiến trình không tuần tự 25 2.4 Bảng biểu diễn tiến trình khả tuần tự 27 3.1 Bảng mô tả hai giao dịch rút và chuyển tiền 38

Trang 9

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

2.1 Quá trình xử lý truy vấn trong hệ thống phân tán 12

3.8 Đồ thị điều khiển tương tranh theo nhãn thời gian 49

Trang 10

MỞ ĐẦU

1 Lý do chọn đề tài

Trong thực tiễn hiện nay, nhu cầu dùng chung một hệ cơ sở dữ liệu là rất lớn Vấn đề đặt ra là làm thế nào để có thể quản lý tốt các luồng dữ liệu và việc sử dụng chung dữ liệu, chương trình ứng dụng Đặc biệt là làm thế nào để đáp ứng nhu cầu người dùng một cách tốt nhất, chính xác nhất

Lý thuyết điều khiển tương tranh (hay đồng thời) được đưa ra trong việc quản lý các giao dịch trên cơ sở dữ liệu phân tán nhằm giải quyết các tính chất biệt lập và nhất quán [5] trên một hệ cơ sở dữ liệu phân tán

Từ những lý do cơ bản trên, được sự hướng dẫn và gợi ý của TS Nguyễn

Mậu Hân, tôi đã chọn đề tài nghiên cứu của luận văn tốt nghiệp cao học là “Tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán”

3 Đối tượng và phạm vi nghiên cứu

Các thuật toán điều khiển tương tranh sử dụng khoá, hiện tượng Deadlock, dựa vào nhãn thời gian [4] và phương pháp lạc quan là các đối tượng nghiên cứu chính của đề tài nhằm đánh giá sự cần thiết của chúng trong quản lý giao dịch

Phạm vi nghiên cứu của đề tài là tìm hiểu về giao dịch đồng thời, các thuật toán được áp dụng trên cơ sở dữ liệu phân tán nhằm tối ưu hoá thực hiện của các giao dịch trong môi trường phân tán [2] Xây dựng chương trình mô phỏng để xem xét việc thực thi các giao dịch đồng thời, chương trình mô phỏng không phải là ứng dụng

4 Phương pháp nghiên cứu

Thu thập và nghiên cứu các tài liệu liên quan đến lý thuyết về điều khiển tương tranh trong cơ sở dữ liệu phân tán

Trang 11

Tìm hiểu một số thuật toán điều khiển tương tranh đã được áp dụng trên

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

Khảo sát và tiến hành mô phỏng một số thuật toán để minh họa các giao dịch đồng thời

5 Ý nghĩa khoa học và thực tiễn

Trình bày các kiến thức về lý thuyết giao dịch và các kiến thức liên quan, bài toán quản lý giao dịch và các kỹ thuật điều khiển tương tranh đã được ứng dụng

Xây dựng chương trình mô phỏng việc thực thi các giao dịch đồng thời để từ đó thấy được sự cần thiết trong việc nghiên cứu đề tài này để ứng dụng trong thực tiễn

6 Cấu trúc luận văn

Nội dung luận văn gồm 3 chương, cụ thể như sau:

Chương 1: Tổng quan về cơ sở dữ liệu phân tán

Giới thiệu tổng quan về cơ sở dữ liệu phân tán, các nguyên tắc phân mảnh dữ liệu, các chiến lược phân tán dữ liệu và việc cấp phát tài nguyên trong hệ cơ sở dữ liệu phân tán

Chương 2: Quản trị cơ sở dữ liệu phân tán

Tập trung nghiên cứu về xử lý truy vấn phân tán, quản lý các giao dịch phân tán, lịch biểu và tính khả tuần tự trong thực thi các giao dịch phân tán

Chương 3: Mô hình tương tranh trong cơ sở dữ liệu phân tán

Nghiên cứu về điều khiển tương tranh trong cơ sở dữ liệu phân tán, các kỹ thuật, thuật toán điều khiển tương tranh

Xây dựng chương trình mô phỏng thuật toán điều khiển tương tranh trên hệ thống giao dịch vụ đa ngân hàng

Trang 12

CHƯƠNG 1 TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN

Cơ sở dữ liệu phân tán là tập hợp các cơ sở dữ liệu (CSDL) được liên kết logic và làm việc một cách trong suốt với người sử dụng Trong suốt với người sử dụng hàm nghĩa người sử dụng có thể truy cập tất cả cơ sở dữ liệu như chúng thuộc

về một cơ sở dữ liệu duy nhất Có sự độc lập ví trí, người sử dụng không biết nơi lưu trữ dữ liệu, có thể di chuyển dữ liệu dữ liệu từ vị trí vật lý này đến vị trí khác

mà không ảnh hưởng đến người dùng khác

Lý do phát triển cơ sở dữ liệu phân tán là:

• Các tổ chức thường có nhiều chi nhánh ở nhiều nơi khác nhau

• Cho phép mỗi vị trí lưu giữ cơ sở dữ liệu riêng nhằm hỗ trợ truy cập hiệu quả

Tuy nhiên, còn tồn tại một số điểm bất lợi:

• Phí tổn gây ra bởi các tác vụ điều khiển và phối hợp có thể làm giảm đáng kể hiệu năng

• Khi dữ liệu được sao lưu ở nhiều vị trí khác nhau sẽ dẫn đến việc gia tăng các tài nguyên cần sử dụng nhằm bảo đảm cập nhật đồng thời và nhất quán Việc sao lưu cần thêm không gian lưu trữ

• Vấn đề an toàn trở nên phức tạp

• Khó khăn trong việc thay đổi: hiện nay chưa có một công cụ hoặc phương pháp nào tối ưu để trợ giúp người sử dụng có thể chuyển đổi dữ liệu từ tập trung sang phân tán và ngược lại

Để giải quyết các vấn đề trên, khi tiến hành xây dựng một Hệ thống cơ sở dữ liệu phân tán cần tiến hành tốt việc phân mảnh dữ liệu, cấp phát nguồn tài nguyên

Trang 13

hợp lý, quản trị các giao dịch và xử lý các truy vấn phân tán, đồng thời xử lý tốt vấn

đề điều khiển tương tranh

1.1 Phân mảnh dữ liệu

1.1.1 Các lý do phân mảnh dữ liệu

Trong việc phân mảnh dữ liệu, điều quan trọng nhất là tạo ra được một đơn

vị phân tán phù hợp Một quan hệ không phải là một đơn vị đáp ứng được yêu cầu

đó vì nhiều lý do

Thứ nhất, khung nhìn của các ứng dụng thường chỉ là một tập con của quan

hệ Vì thế, đơn vị truy xuất không phải là toàn bộ quan hệ đó mà chỉ là các tập con của nó Kết quả là ta xem tập con của quan hệ làm cơ sở để thực hiện phân tán dữ liệu là thích hợp nhất

Thứ hai, nếu các ứng dụng có các khung nhìn được định nghĩa trên một quan

hệ cho trước nằm tại những vị trí khác nhau thì có hai cách lựa chọn làm cơ sở để

phân tán: hoặc là toàn bộ quan hệ hoặc quan hệ không được nhân bản mà được lưu

ở một vị trí có chạy ứng dụng Lựa chọn thứ nhất gây ra một số lượng lớn các truy

xuất không cần thiết đến dữ liệu ở xa Ngược lại, lựa chọn sau thực hiện nhân bản không cần thiết, gây ra nhiều vấn đề khi cập nhật và có thể gây lãng phí không gian lưu trữ

Thứ ba, việc phân rã một quan hệ thành nhiều mảnh, mỗi mảnh được xử lý như một đơn vị, sẽ cho phép nhiều giao dịch thực hiện đồng thời Ngoài ra việc phân mảnh các quan hệ sẽ cho phép thực hiện song song một câu vấn tin bằng cách chia nó ra thành một tập các câu vấn tin con hoạt tác trên các mảnh Vì thế việc phân mảnh sẽ làm tăng mức độ hoạt động đồng thời (song hành) và như vậy sẽ làm tăng lưu lượng hoạt động của hệ thống Kiểu hoạt động đồng thời này mà chúng ta

gọi là đồng thời nội truy vấn (interquery concurrency)

Bên cạnh đó việc phân mảnh cũng tồn tại một số khiếm khuyết Nếu ứng dụng có những yêu cầu ngăn cản việc phân rã thành các mảnh để được sử dụng độc quyền, thì những ứng dụng có các khung nhìn được định nghĩa trên nhiều mảnh sẽ

bị giảm hiệu suất hoạt động Chẳng hạn nó có thể cần phải truy xuất dữ liệu từ hai

Trang 14

mảnh rồi nối hoặc hợp chúng lại với chi phí rất cao Tránh được điều này là một vấn

đề cơ bản của kỹ thuật phân mảnh

Vấn đề liên quan đến việc kiểm soát dữ liệu ngữ nghĩa (semantic data control),

đặc biệt là vấn đề kiểm tra tính toàn vẹn Do kết quả của phân mảnh, các thuộc tính tham gia vào một phụ thuộc có thể bị phân rã vào các mảnh khác nhau và được cấp phát cho những vị trí khác nhau [1] Trong trường hợp này, một nhiệm vụ đơn giản như kiểm tra các phụ thuộc cũng phải thực hiện truy tìm dữ liệu ở nhiều vị trí

1.1.2 Các yêu cầu của việc phân mảnh dữ liệu

Cơ sở dữ liệu được phân mảnh đến một mức độ nào sẽ quyết định thời gian thực hiện các truy vấn Một mức độ như thế chỉ được định nghĩa với các ứng dụng

cụ thể trên CSDL Việc phân mảnh một quan hệ tổng thể cũng phải tuân theo một

số các quy tắc nào đó để khi tái thiết lại quan hệ cũ vẫn bảo đảm ngữ nghĩa của nó Một phương pháp thiết kế các phân mảnh đúng đắn phải thỏa mãn ba ràng buộc sau:

Tính đầy đủ (completeness): Nếu một quan hệ R được phân rã thành các

mảnh R1, R2, , Rk thì mỗi mục dữ liệu có trong R phải có trong một hoặc nhiều mảnh Ri

Tính tái thiết được (reconstruction): Nếu một quan hệ R được phân rã thành

các mảnh R1, R2, , Rk thì phải tồn tại một toán tử sao cho: R = Ri , i Toán tử thay đổi tùy theo từng loại phân mảnh, điều quan trọng là làm sao xác định được nó Trong thực tế khi các mảnh là được phân mảnh ngang thì

là phép hợp và khi phân mảnh dọc thì là phép nối

Tính tách biệt (disjointness): Nếu một quan hệ R được phân mảnh ngang

thành các quan hệ R1, R2, , Rk và mục dữ liệu ti nằm trong mảnh Ri thì nó

sẽ không nằm trong một mảnh Rk, k i Tiêu chuẩn này bảo đảm các mảnh ngang phải được tách rời nhau Nếu quan hệ được phân mảnh dọc thì các thuộc tính chung phải được lặp lại trong mỗi mảnh Do đó, trong trường hợp phân mảnh dọc tính tách biệt chỉ được định nghĩa trên các trường không phải

là thuộc tính chung của quan hệ

Ví dụ: Xét cơ sở dữ liệu của một công ty phần mềm được tổ chức như sau:

Trang 15

CANBO (MACB, TENCB, CHUCVU): là quan hệ chứa dữ liệu về cán bộ của công ty Bao gồm, tên cán bộ (TENCB), mã số của cán bộ (MACB), chức vụ của cán bộ trong công ty (CHUCVU) và ngày sinh của cán bộ (NGAYSINH)

TIENLUONG (CHUCVU, MUCLUONG): là quan hệ chứa dữ liệu quản lý các mức lương của cán bộ trong công ty Gồm hai trường CHUCVU và MUCLUONG (mức lương tương ứng với chức vụ)

PHANMEM (MAPM, TENPM, KINHPHI): là quan hệ chứa dữ liệu quản lý các phần mềm mà công ty đang xây dựng Gồm ba trường: MAPM (mã số phần mềm), TENPM (tên của phần mềm) và KINHPHI (kinh phí xây dựng phần mềm)

HOSO (MACB, MAPM, NHIEMVU, THOIGIAN): gồm bốn trường MACB (mã số của cán bộ), MAPM (mã số phần mềm mà cán bộ đó làm việc), NHIEMVU (nhiệm vụ của cán bộ đó trong phần mềm) và THOIGIAN (thời gian được phân công trong quá trình xây dựng phần mềm)

Bảng 1.1: Cơ sở dữ liệu của một công ty máy tính

Kỹ sư điện tử Phân tích HT Thiết kế DL

C1 C2 C2 C3 C3 C4 C5 C6 C7 C8

P1 P1 P2 P3 P4 P2 P2 P4 P3 P3

Quản lý Phân tích Phân tích

Kỹ thuật Lập trình Quản lý Quản lý

Kỹ thuật Quản lý Lập trình

Trang 16

PHANMEM TIENLUONG

Ví dụ về phân mảnh ngang:

Xét các phép toán đại số quan hệ sau:

PHANMEM 1 = KINHPHI 20000 (PHANMEM)

PHANMEM 2 = KINHPHI > 20000 (PHANMEM)

Bảng 1.2: Phân mảnh ngang Cơ sở dữ liệu

Dễ thấy, các mảnh thỏa mãn tính tái thiết được và tính đầy đủ

PHANMEM 1 PHANMEM ; PHANMEM 2 PHANMEM;

PHANMEM = PHANMEM 1 PHANMEM 2

Ví dụ về phân mảnh dọc:

Xét các phép toán đại số quan hệ sau:

PHANMEM 3 = $1,$3 PHANMEM ; PHANMEM 4 = $1,$4 PHANMEM

Bảng 1.3: Phân mảnh dọc Cơ sở dữ liệu

BẢO TRÌ PHÁT TRIỂN

CSDL CÀI ĐẶT BẢO TRÌ PHÁT TRIỂN

Trang 17

Dễ thấy, các mảnh thỏa mãn tính tái thiết được và tính đầy đủ

PHANMEM 3 PHANMEM ; PHANMEM 4 PHANMEM ;

PHANMEM = PHANMEM 3 PHANMEM 4

Ví dụ về phân mảnh hỗn hợp: xét các phép toán đại số quan hệ sau:

PHANMEM 5 = KINHPHI 20000 ( $1,$3 PHANMEM)

PHANMEM 6 = KINHPHI > 20000 ( $1,$3 PHANMEM )

Bảng 1.4: Phân mảnh hổn hợp Cơ sở dữ liệu

PHANMEM 5 PHANMEM 6

1.2 Các chiến lược phân tán dữ liệu

Việc định vị và phân tán dữ liệu ở các nút trong một mạng máy tính sẽ quyết định tính hiệu quả và đúng đắn của hệ thống phân tán Hiện nay người ta sử dụng 4 chiến lược phân tán dữ liệu cơ bản là:

Cơ sở dữ liệu được nhân thành nhiều bản từng phần hoặc đầy đủ và được đặt

ở nhiều vị trí trên mạng Nếu bản sao của CSDL được lưu giữ tại mọi vị trí của hệ thống ta có trường hợp sao lặp đầy đủ Cách này thường làm cực đại việc truy nhập

28000

25000

Trang 18

tới dữ liệu ở mọi địa phương và nãy sinh nhiều vấn đề khi cập nhật như: khi có sự thay đổi dữ liệu ở một vị trí thì cần xử lý lại để đồng bộ hóa dữ liệu cho các vị trí khác Hiện nay có nhiều kỹ thuật mới cho phép tạo bản sao không đầy đủ phù hợp với yêu cầu dữ liệu ở mỗi vị trí và một bản đầy đủ được quản lý ở server Sau một khoảng thời gian nhất định các bản sao được làm đồng bộ với bản chính bằng một ứng dụng nào đó Ví dụ ứng dụng Briefcase của Windows là một chương trình đồng

bộ hóa trên cơ sở dữ liệu Access

1.2.4 Phương thức lai

Cơ sở dữ liệu được phân thành nhiều phần quan trọng và không quan trọng Phần ít quan trọng được lưu giữ một nơi và phần quan trọng được lưu trữ ở nhiều nơi khác

1.3 Cấp phát tài nguyên trong hệ phân tán

Cấp phát tài nguyên trong một hệ phân tán là một bài toán được nhiều người quan tâm và nghiên cứu rộng rãi Tuy nhiên, phần lớn các nghiên cứu này không tập trung vào việc thiết kế dữ liệu mà sử dụng cho cách thức đặt các tập tin vào các vị trí của hệ phân tán

Bài toán cấp phát

Giả sử có một tập các mảnh F={F1, F2, ., Fk} và một mạng máy tính bao gồm các vị trí S={S1, S2, ., Sm} trên đó có một tập các ứng dụng Q={Q1, Q2, .,

Qq} đang thực thi Bài toán cấp phát (allocation problem) là tìm một phân phối tối

ưu các mảnh F cho các vị trí S Một phân phối được gọi là tối ưu nếu nó thỏa mãn hai yếu tố sau:

trí Sj, chi phí vấn tin Fi tại vị trí Sj, chi phí cập nhật Fi tại tất cả các vị trí có chứa nó, và chi phí truyền dữ liệu Vì thế bài toán cấp phát sẽ tìm một lược

đồ cấp phát với hàm chi phí là cực tiểu

Hiệu quả: chiến lược cấp phát được thiết kế nhằm cực tiểu hóa thời gian thực

hiện và tăng tối đa lưu lượng hệ thống tại mỗi vị trí

Người ta chứng minh được rằng bài toán cấp phát tổng quát, ký hiệu DAP (database allocation problem) là một bài toán NP-đầy đủ Vì thế hầu hết các nghiên

Trang 19

cứu đã được dành cho việc tìm ra được các thuật giải heuristic để có được lời giải tối ưu cho loại bài toán này

Hiện nay chưa có một mô hình heuristic tổng quát nào nhận một tập các mảnh và sinh ra một chiến lược cấp phát gần tối ưu ứng với các ràng buộc cho trước

mà chỉ mới đưa ra một số giả thiết đơn giản hóa và dễ áp dụng cho một số cách đặt vấn đề đơn giản

Trang 20

CHƯƠNG 2 QUẢN TRỊ GIAO DỊCH PHÂN TÁN

2.1 Xử lý truy vấn phân tán

Chức năng chính của một bộ xử lý truy vấn là biến đổi một truy vấn của người sử dụng ở mức cao thành một truy vấn tương đương ở mức thấp hơn Phép biến đổi này phải đạt được cả về tính đúng đắn và tính hiệu quả Nghĩa là các truy vấn ở mức thấp phải tương đương với truy vấn ban đầu và cho cùng một kết quả Các cách biến đổi này sẽ dẫn đến việc sử dụng tài nguyên máy tính khác nhau, nên vấn đề đặt ra là lựa chọn phương án nào để sử dụng tài nguyên ít nhất [2]

2.1.1 Mục đích của xử lý truy vấn

Giảm thiểu thời gian xử lý

Giảm vùng nhớ trung gian

Giảm chi phí truyền thông giữa các trạm

Sử dụng ít tài nguyên

2.1.2 Chức năng của xử lý truy vấn

Biến đổi một truy vấn phức tạp thành một truy vấn tương đương đơn giản hơn

Phép biến đổi này phải đạt được cả về tính đúng đắn và hiệu quả

Mỗi cách biến đổi dẫn đến việc sử dụng tài nguyên máy tính khác nhau, nên vấn đề đặt ra là lựa chọn phương án nào dùng tài nguyên ít nhất

2.1.3 Các phương pháp xử lý truy vấn cơ bản

Phương pháp biến đổi đại số:

Đơn giản hóa câu truy vấn nhờ các phép biến đổi đại số tương đương nhằm giảm thiểu thời gian thực hiện các phép toán Phương pháp này không quan tâm đến kích thước và cấu trúc dữ liệu

Phương pháp ước lượng chi phí:

Xác định kích thước dữ liệu, thời gian thực hiện mỗi phép toán trong câu truy vấn Phương pháp này quan tâm đến kích thước dữ liệu và phải tính toán chi phí thời gian thực hiện mỗi phép toán

Trang 21

2.1.4 So sánh xử lý truy vấn tập trung và phân tán

đồ dưới đây

Hình 2.1: Quá trình xử lý truy vấn trong hệ thống phân tán

Trang 22

2.2 Quản trị các giao dịch phân tán

Để hiểu một thuật toán điều khiển tương tranh hoạt động như thế nào, trước hết phải hiểu xem thuật toán đó tác động lên toàn bộ cơ sở dữ liệu phân tán như thế nào, có duy trì được trạng thái nhất quán hay không

Một hệ thống có khả năng tự thích ứng với các sự cố hệ thống và có khả năng tự khôi phục để tiếp tục cung cấp dịch vụ

2.2.1 Các khái niệm

2.2.1.1 Quản lý giao dịch (Transaction Management – TM):

Quản lý các giao dịch phân tán là việc giải quyết bài toán duy trì được 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à khi giao dịch có sự cố

Chức năng của TM là quản lý các giao dịch Mỗi giao dịch được thực thi trong hệ quản trị cơ sở dữ liệu phân tán dưới sự giám sát của một TM, nghĩa là giao dịch chuyển mọi thao tác cơ sở dữ liệu của nó tới TM Mọi tính toán phân tán cần thiết để thực thi một giao dịch đều được quản lý bới TM

Chức năng chính của DM là quản lý lưu trữ trên cơ sở dữ liệu

Trang 23

2.2.1.2 Giao dịch (Transaction):

Giao dịch là một đơn vị tính toán nhất quán và tin cậy trong các hệ cơ sở dữ liệu phân tán, nó hàm chứa một số các đặt tính cơ bản như tính nguyên tố và tính bền vững, nhằm chỉ ra sự khác biệt giữa một giao dịch và một câu truy vấn

Về mặt trực quan, giao dịch nhận một cơ sở dữ liệu và thực hiện trên nó một hành động làm thay đổi trạng thái, tạo ra một cơ sở dữ liệu mới Nếu cơ sở dữ liệu nhất quán trước khi thực thi giao dịch, có thể đảm bảo rằng cơ sở dữ liệu cũng sẽ nhất quán vào lúc kết thúc thực thi giao dịch dù cho thực thi đồng thời nhiều giao dịch cùng một lúc hay là xảy ra sự cố trong quá trình thực thi

Một giao dịch là một đơn vị thực hiện chương trình truy xuất và có thể cập nhật nhiều mục dữ liệu Một giao dịch thường là kết quả của sự thực hiện một chương trình người dùng và được phân cách bởi các câu lệnh (hoặc các lời gọi hàm)

có dạng Begin transaction và End transaction Nó bao gồm tất cả các hoạt động thực hiện giữa Begin transaction và End transaction

Các lệnh của giao dịch bao gồm:

- Start(): Bắt đầu thực hiện một giao dịch

- Commit(): Kết thúc thành công một giao dịch

- Abort(): Hủy bỏ một giao dịch

2.2.2 Tính chất của giao dịch

a) Tính nguyên tố (Atomicity)

Một giao dịch khi thực hiện thành công với sự phản ánh đúng trong cơ

sở dữ liệu hoặc bị hủy bỏ và không có thay đổi gì trong cơ sở dữ liệu

Một giao dịch kết thúc thành công (gọi lệnh Commit) sau khi hoàn tất những lệnh của nó Nếu người sử dụng được báo là đã kết thúc thành

Trang 24

công một giao dịch thì họ sẽ chắc chắn rằng những thay đổi được thực hiện bởi giao dịch sẽ được cập nhật trên cơ sở dữ liệu

Một giao dịch có thể bị hủy bỏ (gọi lệnh Abort) sau khi thực hiện vài lệnh Trong trường hợp này, cơ sở dữ liệu phục hồi lại các thay đổi dữ liệu do các lệnh đó thực hiện Lệnh Abort() được gọi có thể do nguyên nhân phía người dùng hoặc hệ thống phát sinh lỗi Lệnh này cũng được gọi để loại trừ những kết quả chưa hoàn thiện

b) Tính nhất quán (Consistency)

Mỗi giao dịch phải bảo toàn sự nhất quán dữ liệu

Hình thức nhất quán dữ liệu có thể được thực hiện bởi hệ thống thông qua ràng buộc toàn vẹn

Ràng buộc toàn vẹn hoạt động như bộ lọc, xác định rằng một giao dịch được chấp nhận hay không

c) Tính biệt lập (Isolation)

Khi người sử dụng gửi đi các giao dịch, mỗi giao dịch được thực hiện bởi chính nó, không để lộ kết quả của nó cho những giao dịch khác cùng hoạt động trước khi nó kết thúc

Đảm bảo cho mọi kết quả luôn luôn đúng, thậm chí khi có nhiều giao dịch được thực hiện đồng thời trên cùng một mục dữ liệu

Các kết quả từ việc xử lý giao dịch đồng thời cũng giống từ việc xử lý giao dịch nối tiếp

Tuân theo giao thức xử lý đồng thời

d) Tính bền vững (Durability)

Đảm bảo một giao dịch khi kết thúc, kết quả của chúng được duy trì

và không bị xóa khỏi cơ sở dữ liệu Vì thế, hệ quản trị cơ sở dữ liệu đảm bảo rằng kết quả giao dịch luôn tồn tại dù xảy ra sự cố hệ thống, bằng cách: Phục hồi những thay đổi trên đĩa tại thời điểm kết thúc giao dịch

Trang 25

Ghi lại những thay đổi vào một file log trên đĩa và tại thời điểm bắt đầu lại, đọc file log này và phục hồi lại những thay đổi trước đó của giao dịch

Trường hợp đĩa bị lỗi, dữ liệu được phục hồi từ dữ liệu sao lưu dự phòng, đĩa mirror,

e) Ví dụ

Giả sử rằng có một CSDL về thông tin ngân hàng

Accounts : chứa thông tin về tài khoản và số dư của khách hàng

Công việc cần thực hiện là chuyển tiền từ tài khoản của một ngân hàng sang một tài khoản của một ngân hàng khác

Ví dụ 1

- Thủ tục sau đây mô phỏng giao dịch chuyển tiền:

Procedure Transfer Begin

Start;

input(fromaccount, toaccount, amount);

/‟ This procedure transfers “amount” from “fromaccount” into

“toaccount.‟ ” temp : = Read(Accounts[fromaccount]);

if temp < amount then

begin output(“insufficient funds”);

Abort;

end else

Trang 26

output( “transfer completed”);

- Giả sử AccountID =‟00001‟ có số tiền hiện tại là 1.000.000 đồng

- Nếu đồng thời có hai khách hành muốn chuyển vào tài khoản này, khách thứ nhất muốn chuyển vào 1.000.000 đồng và khách thứ hai là 100.000.000 đồng

Trang 27

- Giả sử các giao dịch thực thi của procedure Deposit như sau:

(Nếu X<A) Read1(Accounts[ „00001‟]) trả về 1.000.000 Read2(Accounts[„00001‟]) returns the value 1.000.000 Write2(Accounts[„00001‟], 101.000.000)

Commit2 Write1(Accounts[„00001‟], 2.000.000) Commit1

- Câu hỏi đặt ra là sau khi chuỗi giao dịch này kết thúc thì số tiền hiện có trong tài khoản là bao nhiêu?

- Câu trả lời là 2.000.000

- Nhận xét:

Kết quả này hoàn toàn không chấp nhận được vì công ty có tài khoản „00001‟ phải có số tiền như mong muốn là 102.000.000 đồng

Có vấn đề phát sinh từ việc thực hiện xen kẽ các lệnh từ nhiều giao dịch khác nhau

Để khắc phục những vấn đề này ta cần phải soát chúng một cách chặt chẽ theo phương pháp xử lý đồng hành Đó chính là nội dung cốt lõi của đề tài này

2.2.3 Trạng thái của giao dịch

Trong quá trình thực thi, giao dịch ở một trong các trạng thái sau:

Tích cực (Active): là trạng thái từ lúc khởi đầu giao dịch, trạng thái này được giữ khi giao dịch đang thực hiện

Được bàn giao bộ phận (Partially Committed): là trạng thái khi lệnh cuối cùng của giao dịch được thực hiện

Thất bại (Failed): là trạng thái sau khi phát hiện giao dịch không thể tiếp tục thực hiện được nữa

Bỏ dở (Aborted): là trạng thái sau khi giao dịch đã bị cuộn lại và cơ sở

dữ liệu đã phục hồi lại trạng thái của nó trước khi khởi động giao dịch

Trang 28

Được bàn giao (Committed): là trạng thái sau khi hoàn thành thành công giao dịch

Một giao dịch khởi đầu bởi trạng thái tích cực (Active) Giao dịch khi kết thúc lệnh sau cùng, nó chuyển sang trạng thái được bàn giao bộ phận Tại thời điểm này, giao dịch đã hoàn thành việc thực hiện, nhưng nó vẫn có thể bị bỏ dở do đầu ra vẫn có thể tạm trú trong bộ nhớ chính và như thế một sự cố phần cứng sẽ ngăn cản

sự hoàn tất giao dịch Khi đó, cơ sở dữ liệu đã kịp viết lên đĩa đầy đủ thông tin giúp cho việc tái tạo các cập nhật đã được thực hiện Khi hệ thống khởi động lại sau sự

cố, các thông tin sau cùng này được ghi chính thức vào cơ sở dữ liệu và giao dịch chuyển sang trạng thái committed

Một giao dịch được gọi là kết thúc nếu nó hoặc là được bàn giao (Committed) hoặc là bỏ dở (Aborted)

Hình 2.3: Biểu đồ trạng thái của giao dịch

Giả thiết rằng sự cố hệ thống không gây mất dữ liệu trên đĩa, một giao dịch đi vào trạng thái thất bại (Failed) sau khi hệ thống xác định là giao dịch không thể thực hiện được nữa (do lỗi phần cứng hoặc phần mềm) Giao dịch chuyển sang trạng thái

bỏ dở Tại điểm này, hệ thống có hai lựa chọn:

Khởi động lại giao dịch nếu giao dịch bị bỏ dở là do lỗi phần cứng hoặc phần mềm mà không liên quan đến logic bên trong giao dịch Giao dịch được khởi động lại và được xem như một giao dịch mới

Hủy bỏ giao dịch nếu giao dịch bị bỏ dở là do lỗi logic bên trong giao dịch, lỗi này cần được chỉnh sửa bằng cách viết lại chương trình ứng

Tích cực

(Active)

Bàn giao bộ phận

Thất bại

Được Bàn giao

Bỏ dở

Trang 29

dụng hoặc do dữ liệu đầu vào xấu hoặc do dữ liệu mong muốn không tìm thấy trong cơ sở dữ liệu

2.2.4 Xử lý giao dịch

Mỗi giao dịch liên kết tất cả các tác vụ đọc/ghi của nó với bộ quản lý giao dịch

Bộ quản lý giao dịch liên kết từng giao dịch đọc/ghi với bộ lập lịch

Bộ lập lịch điều khiển chuỗi giao dịch, theo đó bộ quản trị dữ liệu xử lý các lệnh đọc/ghi và duy trì điều khiển tương tranh

Khi bộ lập lịch nhận một thao tác từ bộ quản lý giao dịch, nó có ba lựa chọn thực hiện:

Ngay lập tức thực hiện lập lịch cho giao dịch đó bằng cách gửi nó đến

Trong kiến trúc này, bộ quản lý giao dịch thực hiện các thao tác cơ sở dữ liệu thay cho ứng dụng

Bộ lập lịch có nhiệm vụ thực hiện các thuật toán điều khiển tương tranh nhằm đồng bộ các thao tác truy cập vào cơ sở dữ liệu

Trong kiến trúc phân tán, các giao dịch có thể truy cập từ nhiều vị trí khác nhau Vì vậy, tại mỗi vị trí sẽ có một bộ quản lý giao dịch cục bộ nhằm đáp ứng:

Duy trì nhật ký (Log) cho việc khôi phục dữ liệu

Tham gia trong việc điều khiển tương tranh các giao dịch thực hiện tại

vị trí đó

Tại mỗi vị trí sẽ có thêm một bộ phối hợp giao dịch nhằm:

Khởi tạo các giao dịch phát sinh tại chỗ

Trang 30

Phân phối các giao dịch con (subtransaction) đến các vị trí thích hợp để thực thi

Đối với giao dịch xuất phát tại chỗ mà giao dịch này đã đƣợc hoàn tất hoặc bị hủy bỏ tại tất cả các vị trí, bộ phối hợp giao dịch có nhiệm vụ kết thúc giao dịch đó

2.3 Lịch biểu

2.3.1 Khái niệm lịch biểu

Lịch biểu của một giao dịch là một chuỗi các lệnh đƣợc thực hiện trong hệ thống theo thứ tự thời gian Một lịch biểu đối với một tập các giao dịch phải bao gồm tất cả các lệnh của tất cả các giao dịch này và phải bảo toàn thứ tự mà các lệnh xuất hiện trong mỗi giao dịch cá thể theo thứ tự đó Lịch biểu tạo mối liên hệ ràng buộc giữa các giao dịch với nhau

Trang 31

dữ liệu không nhất quán Khi một số giao dịch thực hiện đồng thời và có cạnh tranh một số khoản mục dữ liệu trong cơ sở dữ liệu, tính nhất quán có thể không còn được bảo toàn nữa Do vậy, hệ thống cần điều khiển sự tương tác giữa các giao dịch đồng thời Do một giao dịch là một đơn vị xử lý nguyên tố đảm bảo tính nhất quán dữ liệu, một sự thực hiện tuần tự của các giao dịch sẽ đảm bảo tính nhất quán được bảo toàn Do vậy, chúng ta đòi hỏi một lịch biểu thực hiện được sinh ra bởi việc xử lý đồng thời một tập các giao dịch, có một tác động tương đương với một lịch biểu thực hiện được sinh ra với các giao dịch thực hiện tuần tự theo một thứ tự nào đó Một hệ thống đảm bảo tính chất này được nói là đảm bảo tính khả tuần tự Vậy ta hãy xét đến khái niệm về lịch biểu tuần tự, khả tuần tự và bất tuần tự

* Lịch biểu tuần tự:

Một lịch biểu H được gọi là tuần tự nếu mọi giao dịch T trong H đều có tất

cả các lệnh của T và được thực hiện liên tiếp nhau

Trang 32

Hình 2.4: Lịch biểu tuần tự

Ta nhận thấy rằng: các lệnh trong T

1 thực hiện trước, sau đó đến các lệnh trong T

* Lịch biểu bất tuần tự:

Một lịch biểu H được gọi là bất tuần tự nếu với mọi giao dịch T trong H, tất

cả các lệnh của T trong H được thực hiện không liên tiếp nhau

Ví dụ:

Hình 2.5: Lịch biểu bất tuần tự

Ta nhận thấy rằng: các lệnh thứ 1 và 2 trong T

1 được thực hiện trước, sau đó thực hiện tiếp 2 lệnh thứ 1 và thứ 2 trong T

2 Vì lệnh thứ 2 trong T

2 thực hiện sau, nên giá trị trong X bây giờ đã được thay đổi, dẫn đến khi lệnh thứ 3 trong T

1 được

Trang 33

thực hiện thì giá trị X không còn đúng nhƣ lệnh 2 trong T

Ví dụ về lịch biểu tuần tự và khả tuần tự:

Giả sử ta có các giao dịch sau:

Bảng 2.1: Bảng mô tả các giao dịch

R(X) W(X) COMMIT

W(X) W(Y) R(Z) COMMIT

R(X) R(Y) R(Z) COMMIT

Trang 34

R(x) W(y)

R(y) W(x)

2.4.2 Tiến trình không tuần tự

2.4.3 Hai thao tác xung đột

Hai thao tác đƣợc gọi là xung đột nếu thỏa 3 điều kiện sau:

- Truy xuất cùng 1 mục dữ liệu x

- Chúng thuộc hai giao dịch khác nhau

- Ít nhất một trong hai thao tác là write-item

Trang 35

Ví dụ:

Cặp thao tác <Ri(x), Wj(x)> và <Wi(x), Wj(x)> là xung đột

Cặp thao tác <Ri(x), Rj(x)>, <Wi(x), Wj(y)> và <Wi(x), Rj(y)> là không xung đột

2.4.4 Tiến trình tương đương

Hai tiến trình được gọi là tương đương nếu bất kỳ hai thao tác xung đột nào trong cả hai tiến trình có cùng thứ tự

Ví dụ: Tiến trình S khả tuần tự do tương đương với tiến trình tuần tự S‟

Bảng 2.4: Bảng biểu diễn tiến trình khả tuần tự

Read_item(X) X:=X-N Write_item(X) Read_item(Y) Y:=Y+N Write_item(Y)

Read_item(X) X:=X+M Write_item(X)

Trang 36

2.4.6 Tính khả tuần tự trong cơ sở dữ liệu phân tán

Thực hiện n tiến trình phân tán T1, T2, ….Tn ở m vị trí trong bảng cục bộ S1, S2, …., Sm

S1(site 1): Ri(x) Wi(x) Rj(x) Wj(x)

S2(site 2): Rj(y) Wj(y) Ri(y) Wi(y)

Nếu áp dụng với mỗi nút kỹ thuật điều khiển tương tranh cục bộ Chúng ta

có thể đảm bảo rằng tất cả các bảng cục bộ đều có tính tuần tự Tuy nhiên, tính tuần

tự của bảng cục bộ không đủ đảm bảo rằng thực hiện đúng trong tiến trình phân tán Ti<Tj trong Serial(S1) và Tj<Ti trong Serial(S2)

Trang 37

CHƯƠNG 3 ĐIỀU KHIỂN TƯƠNG TRANH TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN

-p

3.1 Cơ sở của điều khiển tương tranh phân tán

Điều khiển tương tranh là điều khiển các giao dịch được thực thi trùng nhau

về mặt thời gian, xảy ra đồng thời

Bài toán về các giao dịch thực hiện đồng thời

Có một CSDL về thông tin ngân hàng

Accounts : chứa thông tin về tài khoản và số dư của khách hàng

Giả sử Account X có số tiền hiện tại là 1.000.000 đồng

Nếu đồng thời có hai khách hành muốn chuyển tiền vào tài khoản này

- Khách thứ nhất muốn chuyển vào 2.000.000 đồng

Trang 38

Khi kết thúc các giao dịch giá trị của X là 101.000.000 bởi vì hành động ghi của T2 sẽ ghi đè lên kết quả ghi của T1

Để khắc phục những vấn đề này ta phải xem xét về phương pháp điều khiển tương tranh

Khi một số giao dịch thực hiện đồng thời và có cạnh tranh một số khoản mục

dữ liệu trong cơ sở dữ liệu đòi hỏi một tiến trình thực hiện đƣợc sinh ra bởi việc xử

Ngày đăng: 13/11/2014, 14:56

HÌNH ẢNH LIÊN QUAN

2.1  Bảng mô tả các giao dịch  24 - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
2.1 Bảng mô tả các giao dịch 24 (Trang 8)
Hình 2.1: Quá trình xử lý truy vấn trong hệ thống phân tán - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Hình 2.1 Quá trình xử lý truy vấn trong hệ thống phân tán (Trang 21)
Hình 2.2:  của hệ quản trị cơ sở dữ liệu phân tán - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Hình 2.2 của hệ quản trị cơ sở dữ liệu phân tán (Trang 22)
Hình 2.4: Lịch biểu tuần tự - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Hình 2.4 Lịch biểu tuần tự (Trang 32)
Hình 2.5: Lịch biểu bất tuần tự - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Hình 2.5 Lịch biểu bất tuần tự (Trang 32)
Hình 2.6: Lịch biểu khả tuần tự - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Hình 2.6 Lịch biểu khả tuần tự (Trang 33)
Bảng này tương đương với bảng tuần tự sau: - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Bảng n ày tương đương với bảng tuần tự sau: (Trang 35)
Hình 3.4: Biểu đồ khóa 2 pha - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Hình 3.4 Biểu đồ khóa 2 pha (Trang 45)
Bảng 3.1: Bảng mô tả hai giao dịch rút và chuyển tiền - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Bảng 3.1 Bảng mô tả hai giao dịch rút và chuyển tiền (Trang 47)
Hình 3.5: Tình trạng tắc nghẽn - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Hình 3.5 Tình trạng tắc nghẽn (Trang 51)
Hình 3.9: Sơ đồ thuật toán BTO bảo thủ - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Hình 3.9 Sơ đồ thuật toán BTO bảo thủ (Trang 59)
Hình 3.11: Mô hình hoạt động của máy ATM - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Hình 3.11 Mô hình hoạt động của máy ATM (Trang 65)
Hình 3.14: Giao diện sau khi đăng nhập máy ATM - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Hình 3.14 Giao diện sau khi đăng nhập máy ATM (Trang 70)
Hình 3.15: Giao diện Bảng điều khiển máy ATM - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Hình 3.15 Giao diện Bảng điều khiển máy ATM (Trang 71)
Hình 3.16: Hiển thị quá trình xử lý - tìm hiểu một số thuật toán điều khiển tương tranh trong cơ sở dữ liệu phân tán
Hình 3.16 Hiển thị quá trình xử lý (Trang 71)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w