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

TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NÂNG CAO VẤN ĐỀ XỬ LÝ GIAO DỊCH TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN

16 656 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 16
Dung lượng 302 KB

Nội dung

Trong đó việc kiểm soát hoạt động đồng thời được thực hiện bằng khóa, việc xử lý hoạt động đồng thời dựa trên một lịch biểu cho phép các giao dịch thực hiện tuần tự theo một thứ tự nào đ

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

VẤN ĐỀ XỬ LÝ GIAO DỊCH

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

Môn học : CSDL Nâng cao Giảng viên : PGS.TS Nguyễn Hà Nam Học viên : Lê Ngọc Phú

Trang 2

MỤC LỤC

1 LỜI MỞ ĐẦU 3

2 MỘT SỐ KHÁI NIÊM VỀ CSDL PHÂN TÁN 3

3 KỸ THUẬT PHÂN TÁN CSDL 4

3.1 QUÁ TRÌNH PHÂN MẢNH 5

3.1.1 Phân mảnh ngang 5

3.1.2 Phân mảnh dọc 6

3.1.3 Phân mảnh hỗn hợp 6

3.2 PHÂN BỔ DỮ LIỆU 6

4 XỬ LÝ GIAO DỊCH TRONG CSDL PHÂN TÁN 7

4.1 THẾ NÀO LÀ GIAO DỊCH 7

4.2 TÍNH CHẤT CỦA GIAO DỊCH 7

4.3 VÍ DỤ VỀ GIAO DỊCH 7

4.4 MÔ HÌNH XỬ LÝ GIAO DỊCH 8

5 GIAO THỨC 2PC (TWO PHASE COMMIT) 9

6 ĐIỀU KHIỂN TƯƠNG TRANH TRONG CSDL PHÂN TÁN 10

6.1 KHÁI NIỆM VỀ KHÓA 10

6.2 THẾ NÀO LÀ ĐỤNG ĐỘ 11

6.3 CÁC PHƯƠNG PHÁP GIÁI QUYẾT VẤN ĐỀ ĐỤNG ĐỘ 11

6.3.1 Thuật toán khóa chốt hai giai đoạn (Two Phase Locking - 2PL) 11

6.3.1.1 Cách thực hiện phương pháp 2PL 12

6.3.1.2 Kỹ thuật: Bản sao chính 2PL 13

6.3.1.3 Phương thức 2PL bình chọn (Voting 2PL) 13

6.3.1.4 Kỹ thuật 2PL tập trung 14

6.3.2 Thuật toán nhãn thời gian 15

6.3.2.1 Ý tưởng: 15

6.3.2.2 Cách thiết lập nhã thời gian 15

6.3.2.3 Mô tả thuật toán 15

6.3.2.4 Đánh giá thuật toán 16

Trang 3

1 Lời mở đầu.

Như chúng ta đã biết CSDL phân tán là CSDL được phân mảnh và lưu trữ trên những vị trí khác nhau trong hệ thống Ở mỗi trạm đó có nhiều ứng dụng đòi hỏi phải thực hiện nhiều chương trình cùng một lúc hoặc thực hiện nhiều tiến trình của cùng một chương trình Một số trường hợp hai hoặc nhiếu tiến trình đọc và thay đổi giá trị cùng một đối tượng không được phép thực hiện cùng một lúc vì chúng đưa ra kết quả không xác thực với thực tế Ngược lại khi chúng ta không thay đổi dữ liệu thì khi đó cũng không quan tâm đến thứ tự đọc ghi dữ liệu vì vậy hệ điều hành có thể yêu cầu đọc đồng thời.Khi chỉ có yêu cầu đọc dữ liệu thì ta muốn càng nhiều thao tác đọc dữ liệu càng tốt vì tiết kiệm thời gian Mỗi thực hiện như trên được gọi là một giao dịch khác nhau Việc quản lý giao dịch là phải đảm bảo rằng cho dù bất

kì điều gì xảy ra trong giao dịch thì cơ sở dữ liệu không bị ảnh hưởng

Giao dịch phân tán là giao dịch bao gồm một bó thao tác giữa hai hoặc nhiều máy Thông thường, trong một giao dịch phân tán, chúng ta cần quan tâm đến tài nguyên cho giao dịch, quản lý việc giao dịch, yêu cầu giao dịch Trong đó việc kiểm soát hoạt động đồng thời được thực hiện bằng khóa, việc xử lý hoạt động đồng thời dựa trên một lịch biểu cho phép các giao dịch thực hiện tuần tự theo một thứ tự nào đó Chúng ta thấy rằng khi thực hiện hoạt động đồng thời, các giao dịch có thể gây ra các vấn đề liên quan đến khóa và vấn đề bất khả tuần

tự Để loại bỏ vấn đề này, có thể dùng bộ xếp lịch và các nghi thức

Trong bài báo cáo này chúng tôi sẽ cùng làm rõ các vấn đề trên đây

2 Một số khái niêm về CSDL phân tán.

- Khái niệm: CSDL phân tán là 1 tập nhiều CSDL liên quan đến nhau thông qua mạng máy

tính

o Hệ quản trị CSDL phân tán bao gồm CSDL dưới dạng logic được chia thành các phân mảnh Mỗi phân mảnh được lưu trữ trên một hoặc nhiều máy tính dưới sự điều khiển của các hệ quán trị CSDL riêng biệt

- Ứng dụng: Các ứng dụng được cài đặt ở các trạm phục vụ cho việc truy cập dữ liệu ở đó.

- Ứng dụng cục bộ: các ứng dụng này chỉ quan tâm đến dữ liệu của một trạm

Trang 4

- Các loại lược đồ khi sử dụng CSDL phân tán:

o Lược đồ toàn cục: Xác định toàn bộ dữ liệu của CSDL phân tán

o Lược đồ phân mảnh: Mỗi quan hệ tổng thể được chia thành các phân mảnh không giao nhau gọi là phân mảnh Phân mảnh có phân mảnh ngang và phân mảnh dọc

o Lược đồ định vị: Xác định đoạn dữ liệu nào được định vị tại trạm nào trên mạng Rij phân mảnh i tại tram j

o Lược đồ ánh xạ địa phương: Ánh xạ các ảnh vật lý và các đối tượng được lưu tại một trạm

Hình 1 Lược đồ phân tán dữ liệu

3 Kỹ thuật phân tán CSDL.

Một số kỹ thuật sử dụng trong CSDL phân tán:

- Phân mảnh: Một quan hệ được chia nhỏ thành các mỗi quan hệ con gọi là phân mảnh, đó

gọi là phân tán Có 2 kiểu phân mảnh là phân mảnh ngang và phân mảnh dọc

- Phân bổ: Mỗi phân mảnh được lưu trữ tại 1 vùng phân phối tối ưu.

- Sao chép: Trong CSDL quan hệ phân tán, một phân mảnh có thể được sao chép, nhân

rộng và lưu trữ tại 1 số vùng khác nhau

Trang 5

3.1 Quá trình phân mảnh

Mục đích của việc phân mảnh dữ liệu trong CSDL phân tán là nhằm hạn chế việc truy xuất thừa, khi nhân bản dữ liệu làm tốn không gian bộ nhớ Việc phân mảnh dữ liệu giúp cho quá trình giao dịch được thực hiện đồng thời Một truy vấn tổng thể được chia thành nhiều truy vấn con, các truy vấn con này có thể thực hiện đồng thời với nhau giúp việc xử lý nhanh hơn Tuy nhiên cũng gặp một số rắc rồi khi truy xuất dữ liệu như cùng truy xuất vào một phần tử dữ liệu

Dữ liệu có thể được lưu trữ trên nhiều máy tính khác nhau qua sự phân mảnh Một CSDL được chia thành một số phần gọi là các phân mảnh, mỗi phân mảnh này đặt tại 1 số vùng khác nhau

Nguyên tắc của quá trình phân mảnh:

- Điều kiện đầy đủ: Một mối quan hệ R được chia thành các phân mảnh R1, R2 Rn, mỗi

mục dữ liệu trên R phải tồn tại ở ít nhất một phân mảnh Ri Nguyên tắc này nhằm bảo đảm dữ liệu không mất mát trong quá trình phân mảnh

- Điều kiện kiến thiết: Nó phải có khả năng kiến thiết lại mỗi một quan hệ toàn cục từ các

phân mảnh của nó

- Điều kiện phân tách được: Nếu quan hệ R được phân mảnh ngang thành R1,R2…Rn và

mục dữ liệu Tj nằm trong mảnh Rj thì nó sẽ không nằm trong 1 mảnh Rk(k#j) Đối với phân mảnh dọc thì các thuộc tính trong khoá chính phải nằm trong mỗi phân mảnh

3.1.1 Phân mảnh ngang.

Trong phân mảnh ngang, các mỗi quan hệ được chia theo chiều ngang Phân mảnh ngang trên R là tách R thành n bộ R1,R2 Rn sao cho quan hệ R có thể được khôi phục lại từ phép hợp R = R1 U R2 U U Rn

Ví dụ :

Ta có bảng KhachHang(MaKH, Hoten,Diachi, SoDT, Ngaysinh) ta phân mảnh bảng này thành 3 phân mảnh ngang như sau :

KH1 = Diachi=’HaNoi’(KhachHang)

Trang 6

KH2 = Diachi=’HaiPhongi’(KhachHang)

KH3 = Diachi=’TP.HCM’(KhachHang)

3.1.2 Phân mảnh dọc

Phân chia tập thuộc tính của quan hệ toàn cục thành tập các thuộc tính con Mỗi Ri đều phải chứa khóa của R

Phân mảnh dọc trên một quan hệ tổng thể R là tách bộ R thành n quan hệ con R1, R2 Rn sao cho quan hệ R có thể được hồi phục lại từ các quan hệ con Ri bằng phép nối

Ví dụ :

Ta có bảng sau : NhanVien(MaNV, TenNV, Luong, Thue, MaNQL, MaPB) ta phân chia bảng này thành 2 phân mảnh dọc như sau :

NV1 = п MaNV, TenNV, MaNQL,MaPB(NhanVien)

NV2 = п MaNV, Luong ,Thue(NhanVien)

3.1.3 Phân mảnh hỗn hợp

Là sự kết hợp của cả 2 phương pháp phân mảnh dọc và phân mảnh ngang

3.2 Phân bổ dữ liệu.

Có bốn chiến lược phân tán dữ liệu:

- Tập trung dữ liệu: Tất cả các dữ liệu được tập trung một chỗ, cách này đơn giản nhưng

có 3 nhược điểm:

o Dữ liệu không sẵn sàng cho truy cập từ xa

o Chi phí truyền thông lớn, thường làm cực đại việc truy cập dữ liệu tới nơi tập trung

o Toàn bộ hệ thống ngừng khi bị sự cố

- Chia nhỏ dữ liệu: CSDL được chia thành các phần nhỏ liên kết nhau (không trùng lặp).

Mỗi phần dữ liệu được đưa đến các trạm phù hợp để sử dụng

- Sao lặp dữ liệu:

Trang 7

o CSDL được nhân thành nhiều bản từng phần hoặc đầy đủ và được đặt ở nhiều trạm

o Nếu bản sao của CSDL được lưu trữ tại mọi nơi của hệ thống ta có trường hợp sao lặp đầy đủ

o 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 trạm và một bản đầy đủ được quản lý ở server

o 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 đó

- Phương thức lai:

o CSDL được phân thành nhiều phần: quan trọng và không quan trọng

o Phần ít quan trọng được lưu trữ ở một nơi và phần quan trọng được lưu ở một nơi khác

4 Xử lý giao dịch trong CSDL phân tán.

4.1 Thế nào là giao dịch

Giao dịch là tập hợp các thao tác tạo thành một đơn vị làm việc logic trong hệ cơ sở dữ liệu, như thao tác đọc và ghi dữ liệu

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

Dù giao dịch được thực hiện trong CSDL tập trung hay phân tán thì nó đều phải thỏa mãn

4 tính chất sau :

- Tính nguyên tử (Atomicity): Toàn bộ thao tác của giao dịch được thực hiện hoặc không

thực hiện gì hết

- Tính nhất quán (Consistency): Giao dịch phải đảm báo tính nhất quán của cơ sở dữ liệu.

- Tính cô lập (Isolation): Nhiều giao dịch được thực hiện đồng thời, các giao dịch này

không biết được các giao dịch khác đang thực hiện, kết quả trung gian của mỗi giao dịch cũng được dấu trước các giao dịch khác

- Tính bền lâu (Duarability): Sau khi giao dịch được hoàn thành quá trình thay đổi trong

cơ sở dữ liệu vẫn còn ngay cả khi hệ thống xảy ra sự cố

Trang 8

4.3 Ví dụ về giao dịch.

T1 Read(X);

X=X – 2 ; Write(X) ; Commit;

T2 Read(X);

X= X + 1 ; Write(X) ; Commit;

T1- Transaction 1; T2- Transaction 2

Giả sử với X=5 thì T1 cho giá trị X sau cùng là 3, còn T2 cho giá trị X sau cùng là 6 Vi phạm tính nhất quán trong cơ sở dữ liệu

4.4 Mô hình xử lý giao dịch

Hình 2 - Mô hình xử lý giao dịch Trong hệ quản trị CSDL phân tán chứa 4 thành phần: Giao dịch (T: Transaction, Bộ quản

lý giao dịch (TM: Transactions Manager), Bộ quản lý dữ liệu (DM: Data Manager), Dữ liệu (D: Data) Các giao dịch sẽ được quản lý bởi các bộ quản lý giao dịch (TMs) Mỗi bộ quản lý giao dịch liên kết các giao dịch đơn với bộ lập lịch S có nhiệm vụ sắp xếp việc thực hiện các giao dịch đơn Bộ quản lý dữ liệu DMs quản lý CSDL lưu trữ, có chức năng như xử lý CSDL cuối

Trong hệ CSDL quan hệ tập trung, mỗi workspace riêng biệt là 1 phần của TMs và dữ liệu có thể tự do di chuyển giữa 1 giao dịch và không gian của nó, và giữa mỗi không gian

Trang 9

của nó với bộ quản lý dữ liệu Trong khi đó với 1 CSDL quan hệ phân tán thì các bộ quản lý giao dịch và các bộ quản lý dữ liệu có thể thực hiện tại các điểm khác nhau

Làm thế nào một giao dịch (T) dọc và ghi dữ liệu trong 1 không gian có truy vấn tối ưu

và không bị ảnh hưởng trực tiếp bởi sự điều khiển đồng thời Giả sử T cập nhật giá trị x, y, z lưu trữ trên DMx, DMy, DMz Giả sử giao dịch bị lỗi khi DM phát lệnh ghi x, nhưng trước

đó DM đã phát lệnh cho y, z Tại thời điểm này CSDL là không còn chính xác Tuy nhiên trong trong CSDL quan hệ phân tán, các bộ TMs vẫn còn hoạt động và có thể truy cập vào CSDL không chính xác này Để tránh vấn đề này, các lệnh Prewrite phải được điều chỉnh 1 chút Các lệnh được sao lưu vào vùng lưu trữ an toàn, lệnh Prewrite cũng được chỉ rõ DM nào tham gia trong hành động COMMIT Khi đó nếu TM bị lỗi ở pha 2 (trong giao thức 2 pha), DMs sẽ không phát lệnh ghi, đồng thời có thể nhận ra vấn đề và thông báo cho các DM khác liên quan đến quá trình COMMIT

Chi tiết xử lý giao dịch:

Hình 3- Chi tiết xử lý giao dịch

Trong DDBMS quá trình xử lý giao dịch thực hiện như sau:

- Thao tác đọc: Bộ quản lý dữ liệu (DM) thực hiện việc duyệt CSDL cục bộ(CSDL tại các

server) để trả về theo yêu

- Thao tác ghi: Bộ quản lý dữ liệu (DM) sửa đổi CSDL cục bộ và trả về sự chấp thuận cho

bộ lập lịch S, bộ lập lịch S trả về bộ quản lý giao dịch (TM), bộ (TM) trả về cho giao dịch

5 Giao thức 2PC (Two Phase Commit)

Gồm hai giai đoạn như sau :

Trang 10

Giai đoạn 1: Ở một vị trí nào đó, máy chủ này sẽ gửi một thông báo C-PREPARE tới

tất cả các máy chủ khác, để thực hiện giao dịch ngay bây giờ Sau khi các máy chủ nhận được thông báo này nó gửi lại thông báo C-READY nếu đã sẵn sàng cho việc thực hiện giao dịch Một số máy chủ có thể gửi lại thông báo C-REFUSE nếu không thực hiện được giao dịch bởi một lý do nào đó

Giai đoạn 2: Nếu máy chủ gửi thông báo PREPARE mà nhận được thông báo

C-READY từ tất cả các máy chủ khi đó nó sẽ gửi một thông báo C-COMMIT tới tất cả các máy chủ đó Mỗi máy chủ đồng ý khi nhận được thông báo này Nếu máy chủ gửi thông báo C-PREPARE mà nhận được một thông báo C-REFUSE từ bất kỳ máy chủ nào thì nó lại gửi thông báo C-ROLLBACK tới tất cả các máy chủ khác Khi đó giao dịch thực hiện không kết thúc

6 Điều khiển tương tranh trong CSDL phân tán.

Một số vấn đề phát sinh liên quan tới việc điều khiển tương tranh và khôi phục các vấn đề trong CSDL phân tán Có một số vấn đề chính như sau:

- Lỗi site: Có một số tình huống phát sinh khi một hoặc nhiều site bị lỗi trong CSDL quan

hệ phân tán Trong trường hợp đó, tính nhất quán và toàn vẹn của CSDL cần được khôi phục

- Vấn đề về mạng: Khi mạng bị lỗi, gây ra hiện tượng một hoặc nhiều site được cắt khỏi

các site còn lại trong môi trường hệ quản trị CSDL phân tán

- Vấn đề trùng lặp dữ liệu: Nhiều bản sao của CSDL cần được giám sát cẩn thận để đảm

bảo tính nhất quán

- Giao dịch phấn tán: Vấn đề phát sinh khi 1 giao dịch phân tán qua nhiều site Một vài

site commit/rooling thành công, trong khi một số giao dịch khác lại thất bại

- Bế tắc phân tán: Trong hệ quản trị CSDL phân tán, một bế tắc (Deadlock) có thể xuất

hiện tại một hoặc nhiều site Vì vậy, việc xử lý cẩn thận là cần thiết

6.1 Khái niệm về khóa.

Khóa chốt là một cơ chế thường dùng để giải quyết những vẫn đề liên quan đến đồng bộ hóa dữ liệu trong việc truy cập dùng chung Mỗi phần tử dữ liệu đều có một khóa chốt kết hợp với chúng Bộ xếp lịch luôn đảm bảo chỉ có duy nhất một giao dịch giữ khóa chốt của

Trang 11

mục dữ liệu trong một thời điểm, và cũng chỉ có một giao dịch truy cập dữ liệu đó tại cùng một thời điểm Chúng ta quan tâm đến hai loại khóa sau :

- Khóa đọc (readlock): Chỉ cho phép đọc một phần tử dữ liệu trong một giao dịch.

- Khóa ghi (writelock): Chỉ cho phép ghi một phần tử dữ liệu trong một giao dịch.

- Hai khóa đụng độ nhau nếu chúng cùng khóa một mục dữ liệu trong các giao dịch khác nhau

- Bộ xếp lịch đặt khóa cho giao dịch T, nó không thể tự giải phóng khóa cho đến khi chưa được bộ quản lý dữ liệu (DM) trả lời rằng đã xử lý thao tác tương ứng với khóa đó

- Mỗi bộ xếp lịch khi đã giải phòng khóa cho giao dịch thì nó không thể lấy bất kỳ khóa nào cho giao dịch đó

- Khi nhận được một thao tác đọc, ghi với một mục dữ liệu ở một giao dịch từ bộ quản lý giao dịch( TM) khi đó bộ quản lý giao dịch kiểm tra xem có đụng độ với một vài thao tác đọc, ghi dữ liệu từ một giao dịch khác được đặt trước đó không

- Nếu đụng độ thì nó sẽ trì hoãn cho đến khi nó có thể đặt khóa cần thiết cho thao tác ở giao dịch trước đó

- Nếu không đụng độ bộ xếp lịch sẽ đặt khóa và gửi thao tác đến bộ quản lý dữ liệu

6.2 Thế nào là đụng độ

Là khi các thao tác đọc, ghi cùng truy xuất đến một mục dữ liệu ở cùng một thời gian nhất định được gọi là đụng độ Các thao tác này xuất phát từ các giao dịch khác nhau

6.3 Các phương pháp giái quyết vấn đề đụng độ

6.3.1 Thuật toán khóa chốt hai giai đoạn (Two Phase Locking - 2PL)

- Là kỹ thuật hiệu quả trong việc khắc phục một số đụng độ cũng như thời gian chết trong quá trình thực hiện các giao dịch

- Trong kỹ thuật này thì bộ lập lịch quản lý khóa chốt và điều khiển giao dịch khi nào lấy

và khi nào giải phóng khóa

- Giải quyết tốt việc đồng bộ hóa trong việc đọc, ghi Trước khi đọc dữ liệu x thì phải khóa mục x lại(readlock(x)),trước khi ghi lên x thì phải khóa x lại (writelock(x))

- Định nghĩa khoá xung đột dựa trên kiểu đồng bộ được thực hiện:

Trang 12

o Với kiểu “RW”: 2 khoá xung đột khi cả 2 cùng khoá trên một mục dữ liệu và một khoá là đọc và 1 khoá là ghi

o Với kiểu “WW”: 2 khoá xung đột khi cả 2 cùng khoá trên một mục dữ liệu và 2 khoá đều là khoá ghi

Kỹ thuật này gồm hai giai đoạn:

- Giai đoạn tăng trưởng(Growing phase): cho phép nhận các khóa và truy xuất dữ liệu

- Giai đoạn thu hồi(Shirnking phase): cho phép giải phóng các khóa đã khóa mục dữ liệu trong giao dịch

Hình 4 – Sơ đồ khóa 2PL

Hình này cho thấy rằng: Sau khi hoàn thành việc truy xuất dữ liệu thì các khóa được giải phóng Điều này cho phép các giao dịch đang đợi khóa tiếp tục tiến hành và nhận khóa Vì thế làm tăng tính đồng thời trong việc xử lý dữ liệu

Điểm khóa (Lock point): Là thời điểm mà giao dịch đã nhận được tất cả các khóa nhưng chưa bắt đầu giải phóng khóa nào Chính là điểm cuối của giai đoạn tăng trưởng và đầu giai đoạn thu hồi khóa

Nhận xét sơ đồ 2PL:

Với sơ đồ này thì phải biết được tất cả các yêu cầu khóa của mỗi giao dịch và thời điểm bắt đầu thu hồi khóa do đó không tránh được tình trạng deadlock

Ngày đăng: 08/07/2015, 16:06

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w