Nhằm hiểu rõ vấn đề tương tranh, cách thức điều khiển tương tranh và truy cập dữ liệu trong cơ sở dữ liệu phân tán để đảm bảo sự nhất quán của dữ liệu khi có các thao tác tác động lên c
Trang 1BO GIAO DUC VA DAO TAO TRƯỜNG ĐẠI HỌC HÒA BÌNH
Lol
SI
BÀI TẬP LỚN
AN TOÀN CƠ SỞ DỮ LIỆU
TIÊU ĐÈ: TƯƠNG TRANH VÀ THUẬT TOÁN ĐIÊU KHIẺN TƯƠNG TRANH
TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN
Giáo viên: PGS.TS Đỗ Trung Tuấn Lớp: CNTT 2023
Học viên: Vũ Đức Thuận
Hà Nội, tháng 03/2024
1/23
Trang 2LỜI CẢM ƠN
Bài tập được hoàn thành sau thời gian ngắn, em cũng đã đạt được một số kết quả
trong khoảng thời gian tập trung nghiên cứu Kết quả có được này, không chỉ từ nỗ lực của em, mà còn có sự giảng dạy, chia sẻ và hướng dẫn của các Thầy hướng
dẫn, các đồng nghiệp tại đơn vị công tác và gia đình Em xin được bày tỏ tình cảm
chân thành của mình trước những hỗ trợ và giúp đỡ này
Đầu tiên, em xinh được gửi lời biết ơn sâu sắc tới Thầy PGS TS Đỗ Trung Tuấn,
đã trực tiếp giảng dạy, định hướng nghiên cứu và hướng dẫn em các bước trước khi thực hiện bài tập về chủ đề này
Em trân trọng cảm ơn các Thầy Cô trong Khoa Công nghệ thông tin và Đào tạo sau đại học cùng Lãnh đạo Trường Đại học Hòa Bình đã tạo điều kiện thuận lợi cho em trong thời gian học và thực hiện bài tập
Cuối cùng, em chân thành cảm ơn gia đình đã luôn là hỗ trợ và động viên trong quá trình học tập
Hà Nội, tháng 3 năm 2024
Trang 3MỤC LỤC
TONG QUAN Ả ốố 3 PHAN 1: TONG QUAN VỀ CƠ SỞ DỮ LIỆU (CSDL) PHÂN TÁN 5
2 Ưu nhược điểm của hệ quản trị cơ sở dữ liệu phân tán se 5
1 Câu trúc tham khảo của hệ cơ sở dữ liệu phân tán - He ue 7
PHAN 2: CÁC GIAO TÁC PHÂN TÁN 000 2222212202222 cee 7
I] CÁC THUỘC TÍNH CỦA GIAO TÁC 22-22 22s xe A2223 23238232 Exerreee 9
PHAN 3: PHU'O'NG PHAP DIEU KHIEN TUO'NG TRANH TRONG CO’ SO’ DU
LIEU PHAN TAN ou ccccccccccccccccscecsssessssessvecsseessvesesvesssvssssesasecaresssessevesasessssesasesenssseseeseey 10
1 TONG QUAN TU’ONG TRANH cccsccsssssssscessessescessesssssessssssssssssessessessessessssssessseseesssoees 10
II PHƯƠNG PHÁP ĐIỀU KHIÊN TƯƠNG TRANH TRÊN CƠ SỞ KHÓA 12
4 Tổng quan về khóa - -.222222,1.21122.1 1 1 E1 d.riririeg 12
2 Một sô tình huông không mong đợii - Gà HH HH HH HH cước 14
3 Một sô phương pháp điêu khiên tương tranh trên cơ sở khóa - .c cccc c- 1ó
3.3 Phương pháp khóa 2 pha trung tâm (Centralized 2PL) - -cĂ SH He, 20
Ill ĐÁNH GIÁ HIỆU QUẢ THUẬT TOÁN ĐIỀU KHIỂN TƯƠNG TRANH TRÊN CƠ SỞ
1 Ưu khuyết điểm của phương pháp điều khiển tương tranh dựa trên cơ sở khóa 21
3/23
Trang 4TONG QUAN
Cơ sở dữ liệu phân tán là mô hình lưu trữ dữ liệu rất quan trọng trong các hệ thống thông tin lớn và ngày càng được áp dụng và triển khai trong các
dự án Hiện nay, cơ sở dữ liệu phân tán được ứng dụng trong hầu hết các hệ
thống thông tin trong các lĩnh vực như: tài chính, ngân hàng, thương mại, giáo dục, doanh nghiệp
Cơ sở dữ liệu phân tán có đặc điểm chính là dữ liệu được phân tán
trên nhiều máy chủ, mỗi máy chủ hoạt động độc lập và tự lập trình, đồng thời cũng đòi hỏi các cơ chế đồng thuận và quản lý để đảm bảo tính nhất quán
của dữ liệu Do đó, trong hệ cơ sở dữ liệu phân tán việc điều khiển tương tranh là bài toán rất quan trọng
Bài tập này tập trung vào tìm hiểu và nghiên cứu nội dung “Các
phương pháp điều khiển tương tranh và cập nhật dữ liệu trong cơ sở
dữ liệu phân tán” Nhằm hiểu rõ vấn đề tương tranh, cách thức điều khiển
tương tranh và truy cập dữ liệu trong cơ sở dữ liệu phân tán để đảm bảo sự nhất quán của dữ liệu khi có các thao tác tác động lên cơ sở dữ liệu
._ Mục tiêu và nhiệm vụ nghiên cứu
Mục tiêu:
Nghiên cứu các thuật toán về điều khiển tương tranh và cập nhật dữ liệu
trong hệ cơ sở dữ liệu phân tán
Nhiệm vụ nghiên cứu:
- _ Nghiên cứu hệ phân tán
- Cac giao tác phân tán
- _ Các thuật toán về điều khiển tương tranh và cập nhật dữ liệu
Phạm vi nghiên cứu:
Tập trung nghiên cứu các thuật toán về điều khiển tương tranh và cập nhật
dữ liệu trong cơ sở dữ liệ phân tán trên cơ sở khóa
Trang 5PHAN 1: TONG QUAN VE CO’ SO’ DU’ LIEU (CSDL) PHAN TAN
I CO’ SO’ DU LIEU PHAN TAN
1 Khái niệm cơ sở dữ liệu phân tán
Cơ sở dữ liệu phân tán là một loại cơ sở dữ liệu trong đó dữ liệu được lưu trữ
và quản lý trên nhiều máy chủ phân tán độc lập nhau, thường nằm ở các vị trí địa lý khác nhau và được kết nối bởi mạng máy tính Mỗi máy chủ trong hệ thống phân tán
này có thể được quản lý và truy cập một cách độc lập, nhưng chúng hoạt động cùng nhau để cung cấp dịch vụ dữ liệu cho người dùng hoặc ứng dụng
Như vậy có 2 vấn đề của cơ sở dữ liệu phân tán với tầm quan trọng tương
đương nhau:
Việc phân tán: Trong thực tế dữ liệu không đặt trên cùng một vị trí vì vậy đây
là cơ sở để phân biệt cơ sở dữ liệu phân tán vói cơ sở dữ liệu tập trung và cơ
sở dữ liệu đơn lẻ
Liên quan logic: mặc dù được lưu trữ tại nhiều vị trí khác nhau nhưng có
quan hệ với nhau, và có thể truy xuất tại mỗi vị trí theo giao diện chung
2 Ưu nhược điểm của hệ quản trị cơ sở dữ liệu phân tán
2.1 Ưu điểm
Tính linh hoạt cao: Hệ quản trị cơ sở dữ liệu phân tán cho phép dữ liệu
được phân tán trên nhiều nút và vị trí vật lý khác nhau Điều này tạo ra tính
linh hoạt cao trong việc mở rộng hệ thống và phục vụ cho các ứng dụng phức
tạp
Khả năng chịu lỗi: Với việc phân tán dữ liệu, hệ thống có khả năng chịu lỗi tốt hơn Nếu một nút trong hệ thống gặp sự cố, dữ liệu vẫn có thể tiếp tục
được truy cập từ các nút khác mà không gây ra sự gián đoạn lớn
Hiệu suất tốt hơn: Hệ quản trị cơ sở dữ liệu phân tán có thể tận dụng tài nguyên từ nhiều nút khác nhau, tăng hiệu suất và tốc độ truy xuất dữ liệu Bảo mật tốt hơn: Phân tán dữ liệu có thể giảm thiểu rủi ro liên quan đến an
ninh, vì dữ liệu không tập trung tại một nơi duy nhất mà được phân tán trên
nhiều nút
2.2 Nhược điểm
Độ phức tạp cao: Quản lý và duy trì hệ thống phân tán đòi hỏi kiến thức và
kỹ năng cao, đồng thời cần phải xử lý các vấn đề như đồng bộ hóa dữ liệu và
quản lý mạng
Chi phí cao: Việc triển khai và duy trì hệ thống phân tán có thể tốn kém hơn
so với hệ thống tập trung do yêu cầu về phần cứng và phần mềm phức tạp
5/23
Trang 6- Ruiro vé déng bo hóa dữ liệu: Việc đồng bộ hóa dữ liệu giữa các nút khác nhau có thể gây ra các ván đề như mắt mát dữ liệu hoặc xung đột dữ liệu
- _ Vấn đề về quản lý và điều phối: Việc quản lý và điều phối các tác vụ và tài nguyên trên nhiều nút có thể gây ra các vấn đề liên quan đến tổ chức và quản
- _ Ưu điểm: Việc quản lý tương đối dễ dàng
- _ Nhược điểm: Máy lưu trữ cơ sở dữ liệu phải có cấu hình đủ mạnh
3.2 Mức dữ liệu ở một nơi, xử lý ở nhiều nơi
Giả sử một máy tính nào đó trong mạng phát ra yêu cầu về dữ liệu thì yêu cầu đó được gửi về Server Sau đó dữ liệu này được chuyển từ Server đến máy tính
đó để xử lý dữ liệu
- _ Ưu điểm: Đáp ứng dữ liệu nhanh, máy lưu trữ dữ liệu không cần phải có cấu
hình mạnh
- _ Nhược điểm: Tăng lưu lượng trên đường truyền dữ liệu
3.3 Mức dữ liệu ở nhiều nơi và xử lý ở nhiều nơi
Chia cơ sở dữ liệu DB ban đầu thành các đoạn dữ liệu con (DB1, DB2, , DBi, ., DBn) được lưu trữ ở các máy tính, tại các địa điểm khác nhau Khi máy tính
thứ ¡ có yêu cầu về dữ liệu thì quá trình diễn ra như sau:
- _ Tìm kiếm xem các dữ liệu đang được lưu trữ trên may nao
- _ Xử lý dữ liệu ngay tại nơi tìm được
- _ Sau khi xử lý xong sẽ chuyển kết quả xử lý đó về máy thứ ¡ có yêu cầu ban đầu
Ưu điểm: Xử lý công việc nhanh
Nhược điểm: Rất khó khăn cho việc quản trị dữ liệu
Trang 7II THIET KE CO’ SO’ DU’ LIEU PHAN TAN
1 Cấu trúc tham khảo của hệ cơ sở dữ liệu phân tán
Lược đô toàn cục
Các lược đỏ
Lược đồ phân mảnh '; đọc lập vi tri(noi)
Lược đồ địnhvị |-—_ s Lược đô ánh xạ cục bộ | Lược đồ ánh xạ cục bộ 2| Cac vi trí khác
DBMS tai vị trí DBMS tại vị trí2 _]
Hình 1: Cầu trúc tham khảo của hệ cơ sở dữ liệu phân tán [1]
2 Các ràng buộc toàn vẹn trong cơ sở dữ liệu phân tán
Đối với hệ cơ sở dữ liệu phân tán, ngoài những ràng buộc như: ràng
buộc về miền giá trị, ràng buộc liên quan đến nhiều thuộc tính, ràng buộc
về liên thuộc tính, ràng buộc trên nhiều quan hệ, còn có các ràng buộc
khác như: Khi có bản sao dữ liệu yêu cầu tất cả các giá trị của một thuộc
tính của một quan hệ này cũng phải tồn tại trong các quan hệ khác Ràng
buộc này thường được dùng để đảm bảo đúng đắn cho sự phân mảnh
PHAN 2: CAC GIAO TAC PHAN TAN
I KHAI NIEM VE GIAO TAC
Một giao tác là một đơn vị chương trình được thực hiện nhằm mục đích truy
xuất các đơn vị dữ liệu có thể được lưu trữ tại nhiều vị trí khác nhau Giao tác có thể
thực hiện việc đọc, ghi, tính toán tạo ra dữ liệu mới cho cơ sở dữ liệu, vì vậy các yêu
cầu của giao tác là tính nhất quán và tin cậy Một giao tác gồm các câu lệnh (thao
tác) Để truy xuất đến cơ sở dữ liệu, giao tác có thể thực hiện các thao tác sau:
- Read(X): Đọc đơn vị dữ liệu X từ cơ sở dữ liệu vào trong vùng đệm cục bộ
mà giao tác này có thể đọc được
- _ Write(X): Giao tác viết đơn vị dữ liệu X từ vùng đệm cục bộ vào trở lại cơ sở
dữ liệu
7/23
Trang 8ll CAC TRANG THAI CUA GIAO TAC
Dựa vào mức độ hoàn thành các lệnh của giao tác mà chia giao tác thành các trạng thái khác sau:
- Active: Trang thái đang hoạt động
Hình 2: Biêu đồ trạng thái tương ứng của một giao tác [2]
Trong trường hợp không có lỗi xảy ra thì các lệnh của giao tác sẽ lần lượt được thực hiện hoàn toàn Nếu giao tác phải bỏ qua giữa chừng thì mọi thay đổi trên cơ sở dữ liệu mà giao tác đang thực hiện dở phải được trả về trạng thái ban
đầu và khi đó ta phải quay trở lại từng bước để khôi phục dữ liệu về trạng thái cũ
Một giao tác sau khi thực hiện hoàn tất được gọi là có trạng thái commited Giao tác ở trạng thái này sẽ thực hiện cập nhật và biến đổi cơ sở dữ liệu sang một trạng thái nhất quán mới, và trạng thái này vẫn được duy trì trong trường hợp hệ thống bị hỏng hóc Một giao tác ở trạng thái commited sẽ không thể rơi vào trạng thái Aborted và ngược lại Một yêu cầu đặt ra là trong trường hợp có hỏng hóc xảy
ra thì không được gây lên mắt mát dữ liệu do giao tác đang thực hiện giữa chừng Một giao tác trong trạng thái Failed sau khi hệ thống xác định rằng giao tác
việc tiếp tục thực hiện là không thể (có thể do lỗi phần cứng hoặc lỗi logic .)
Vì vậy sau khi hệ thống khôi phục ta phải chọn 1 trong 2 truờng hợp sau:
- _ Resfart Có lỗi về phần cứng hoặc phần mềm mà không thể xử lý bởi lỗi bên
trong của giao tác Việc restart xem như thực hiện một giao tác mới
Trang 9- _ Undo lại giao tác này: Có lỗi bên trong của giao tác hoặc là dữ liệu không tìm
thấy trong cơ sở dữ liệu
Cần thận trọng trong trường hợp khi ghi dữ liệu ra thiết bị ngoài như máy in,
trong trường hợp này không thể Undo duo Vi vay, chỉ ghi ra thiết bị ngoài khi giao
tác trong trạng thái commited Một cách giải quyết khác là có thể viết tạm vào bộ nhớ ngoài, sau khi hoàn tất thì mới in ra giấy Trong trường hợp này, nếu hệ thống
bị hỏng sau khi hoàn tất nhưng chưa kịp ghi ra thiết bị ngoài thì hệ cơ sở dữ liệu sẽ
thực hiện việc này khi hệ thống duoc Restart lai
Trong những ứng dụng có tính chắc chắn, đòi hỏi phải thể hiện dữ liệu cho
người sử dụng, đặc biệt là những giao tác thực hiện trong một khoảng thời gian dài, chúng ta không thể xuất dữ liệu giữa chừng được
lll CAC THUQC TINH CUA GIAO TAC
1 Tính Nguyên tử (Atomicity)
Tính Atomic là đặc tính quan trọng nhất của giao tác Nó đảm bảo rằng một giao tác sẽ được thực hiện toàn bộ hoặc không thực hiện gì cả, không có trạng thái
trung gian nào giữa "bắt đầu" và "kết thúc" của giao tác
Nếu một phần của giao tác gặp sự có, toàn bộ giao tác sẽ bị hủy bỏ và dữ liệu sẽ trở lại trạng thái ban đầu
2 Tính nhất quán(Consistency)
Tính Consistent đảm bảo rằng giao tác sẽ chuyển dữ liệu từ một trạng thái hợp lệ này sang một trạng thái hợp lệ khác một cách nhất quán Điều này có nghĩa
là giao tác phải tuân thủ các ràng buộc và quy tắc đã được định nghĩa trước đó,
đảm bảo tính nhất quán của dữ liệu
3 Tính cô lap (Isolation)
Tinh Isolated dam bảo rằng giao tác được thực hiện độc lập và không bị ảnh hưởng bởi các giao tác khác đang diễn ra cùng lúc Các giao tác phải thực hiện một cách riêng biệt và không được phép can thiệp vào nhau trong quá trình thực thi
4 Tính bền vững (Durability)
Tính Durable đảm bảo rằng các thay đổi được thực hiện bởi một giao tác sẽ
được lưu trữ và không bị mắt ngay cả khi xảy ra sự cố hệ thống sau này Điều này
đảm bảo tính an toàn của dữ liệu và ngăn chặn dữ liệu từ việc mắt mát không mong
muốn
9/23
Trang 10PHÀN 3: PHƯƠNG PHÁP ĐIÊU KHIÉN TƯƠNG TRANH TRONG CƠ SỞ DỮ LIỆU PHÂN TÁN
I TỎNG QUAN TƯƠNG TRANH
1 Tương tranh trong cơ sở dữ liệu
Tương tranh trong cơ sở dữ liệu là tình trạng xảy ra khi hai hoặc nhiều giao
dịch đồng thời cố gắng truy cập hoặc thay đổi cùng một tài nguyên dữ liệu trong cơ
sở dữ liệu vào cùng một thời điểm Khi xảy ra tương tranh, có nguy cơ dẫn đến các vấn đề như mắt mát dữ liệu, dữ liệu không nhất quán hoặc xung đột dữ liệu
2 Vì sao phải thực hiện tương tranh
Tăng hiệu suất: Tương tranh cho phép nhiều người dùng hoặc tiến trình truy cập và thao tác dữ liệu cùng một lúc Điều này giúp tăng hiệu suất của hệ thống bằng cách giảm thời gian chờ đợi cho người dùng và tiến trình
Tăng khả năng phản hôi: Tương tranh giúp hệ thống cung cấp phản hồi nhanh chóng cho các yêu cầu từ người dùng Thay vì chờ đợi cho đến khi một giao
dịch hoàn thành, các người dùng khác có thể tiếp tục làm việc mà không gặp trở
ngại
Đảm bảo tính nhát quán của dữ liệu: Tương tranh giúp đảm bảo tính nhất quán của dữ liệu trong quá trình thực hiện các thao tác đồng thời Các cơ chế tương tranh như khóa và phiên bản đảm bảo rằng các thay đổi dữ liệu không xảy ra cùng lúc trên cùng một tài nguyên
Tránh xung đột dữ liệu: Tương tranh giúp tránh xung đột dữ liệu khi nhiều
người dùng cố gắng truy cập hoặc thay đổi cùng một dữ liệu đồng thời Bằng cách quản lý tương tranh một cách hiệu quả, hệ thống có thể giải quyết xung đột dữ liệu
một cách tự động mà không cần sự can thiệp của người dùng
Đảm bảo an toàn dữ liệu: Tương tranh giúp đảm bảo an toàn của dữ liệu trong quá trình truy cập và thao tác Bằng cách kiểm soát quyền truy cập và sử dụng
các cơ chế phân đoạn, hệ thống có thể ngăn chặn truy cập trái phép và bảo vệ dữ liệu khỏi rủi ro mắt mát hoặc thay đổi không mong muốn
3 Tính khả tuần tự
Định nghĩa: cho n giao tac T; , T2, , Th
- - Ta gọi một lịch S của một tập các giao tác T;, T:, , Tạ là một thứ ty ma trong
đó các lệnh của giao tác này được thực hiện lần lượt hoàn toàn Ký hiệu: S(T;, Ta, , Tn)
Trang 11- - Một lịch S gọi là tuần tự nếu tất cả các bước của mỗi giao tác đều được thực
hiện liên tiếp nhau Như vậy trong lịch tuần tự mỗi giao tác thực hiện toàn bộ các
lệnh của nó và không có tương tranh
- _ Một lịch $ được gọi là khả tuần tự nếu nó tương đương với 1 lịch tuần tự nào đó
(Ta gọi 2 lịch tương đương nếu kết quả cuối cùng trong cơ sở dữ liệu sau khi
thực hiện 2 lịch này là như nhau)
Ví dụ: Giả sử công ty có 2 phòng A và B Phòng A có 1000 nhân viên và
phòng B có 2000 nhân viên Giao tác T; chuyển 50 nhân viên từ A sang B và giao
tác T: chuyển 10% từ A sang B Ta có các giao tác như sau:
S;: lịch tuần tự S;: lịch khả tuần tự S;: không khả tuàn tự
S; là tuần tự: S(T:;T;) và sau khi cho thực hiện tương tranh S; thì kết quả
tương đương lịch S: Sau khi thực hiện lịch S; thì giá trị của A = 950 và B= 2100
Rơi vào trạng thái không nhất quán
Khi thực hiện tương tranh các giao tác phải đảm bảo cơ sở dữ liệu giữ
nguyên trạng thái nhất quán Trước hết ta tìm hiểu lịch nào đảm bảo tính nhất quán
11/23