Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 110 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
110
Dung lượng
1,16 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO CƠ SỞ DỮ LIỆU PHÂN TÁN Biên soạn: Cao Tùng Anh Tài Liệu Lƣu Hành Tại HUTECH www.hutech.edu.vn CƠ SỞ DỮ LIỆU PHÂN TÁN Ấn 2013 MỤC LỤC I MỤC LỤC MỤC LỤC HƢỚNG DẪN BÀI 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN 1.1 HỆ CSDL PHÂN TÁN 1.1.1 Định nghĩa CSDL phân tán 1.1.2 Các đặc điểm sở liệu phân tán 1.1.3 Mục đích việc sử dụng sở liệu phân tán 1.1.4 Kiến trúc CSDL phân tán 1.1.5 Hệ quản trị CSDL phân tán 1.2 KIẾN TRÚC HỆ QUẢN TRỊ CSDL PHÂN TÁN 1.2.1 Các hệ khách / đại lý 1.2.2 Các hệ phân tán ngang hàng BÀI 2: CÁC PHƢƠNG PHÁP PHÂN TÁN DỮ LIỆU 2.1 THIẾT KẾ CƠ SỞ DỮ LIỆU PHÂN TÁN 2.1.1 Các chiến lược thiết kế 2.2 CÁC VẤN ĐỀ THIẾT KẾ 10 2.2.1 Lý phân mảnh 10 2.2.2 Các kiểu phân mảnh 11 2.2.3 Phân mảnh ngang 12 2.3 PHÂN MẢNH DỌC 27 2.4 PHÂN MẢNH HỖN HỢP 39 2.4.1 Bài toán cấp phát 39 2.4.2 Yêu cầu thông tin 40 2.4.3 Mô hình cấp phát 41 BÀI 3: XỬ LÝ VẤN TIN 44 3.1 BÀI TOÁN XỬ LÝ VẤN TIN 44 3.2 PHÂN RÃ VẤN TIN 49 3.3 CỤC BỘ HÓA DỮ LIỆU PHÂN TÁN 57 3.4 TỐI ƢU HOÁ VẤN TIN PHÂN TÁN 64 3.4.1 Khơng gian tìm kiếm 64 3.4.2 Chiến lược tìm kiếm 67 3.4.3 Mơ hình chi phí phân tán 69 II MỤC LỤC 3.4.4 Xếp thứ tự nối vấn tin theo mảnh .75 BÀI 4: QUẢN LÝ GIAO DỊCH 84 4.1 CÁC KHÁI NIỆM 84 4.1.1 Giao dịch .84 4.1.2 Quản lý giao dịch 85 4.2 MƠ HÌNH KHỐ CƠ BẢN 93 4.3 MO HINH KHOA DỌC VA KHOA GHI 97 4.4 THUẬT TOAN DIỀU KHIỂN TƢƠNG TRANH BẰNG NHÃN THỜI GIAN (THỜI DẤU) 100 TÀI LIỆU THAM KHẢO 103 HƢỚNG DẪN III HƢỚNG DẪN MÔ TẢ MÔN HỌC Các hệ sở liệu (hệ CSDL) đƣợc xây dựng theo mơ hình phân cấp mơ hình mạng, xuất vào năm 1960, đƣợc xem hệ thứ hệ quản trị sở liệu (hệ QTCSDL) Tiếp theo hệ thứ hai, hệ QTCSDL quan hệ, đƣợc xây dựng theo mơ hình liệu quan hệ E.F Codd đề xuất vào năm 1970 Các hệ QTCSDL có mục tiêu tổ chức liệu, truy cập cập nhật khối lƣợng lớn liệu cách thuận lợi, an toàn hiệu Hai hệ đầu hệ QTCSDL đáp ứng đƣợc nhu cầu thu thập tổ chức liệu quan, xí nghiệp tổ chức kinh doanh Tuy nhiên, với phát triển nhanh chóng công nghệ truyền thông bành trƣớng mạnh mẽ mạng Internet, với xu toàn cầu hoá lĩnh vực, đặc biệt thƣơng mại, làm nảy sinh nhiều ứng dụng phải quản lý đối tƣợng có cấu trúc phức tạp (văn bản, âm thanh, hình ảnh) động (các chƣơng trình, mơ phỏng) Trong năm 1990 xuất hệ thứ ba hệ QTCSDL – hệ "hƣớng đối tƣợng", có khả hỗ trợ ứng dụng đa phƣơng tiện (multimedia) Mục đích giáo trình CSDLPT nhằm trình bày khái niệm thuật toán sở để thiết kế CSDLPT Ngồi đƣa vào cách xử lý tối ƣu hoá câu hỏi CSDLPT, quản lý giao dịch điều khiển tƣơng tranh giao dịch có xung đột liệu NỘI DUNG MƠN HỌC Bài Tổng quan sở liệu phân tán: Bài cung cấp cho học viên khái niệm sở liệu phân tán, kiến trúc CSDLPT hệ quản trị CSDLPT IV HƢỚNG DẪN Bài 2: Các phƣơng pháp phân tán dự liệu Bài trình bày thuật tốn để thiết kế CSDLPT theo chiều ngang, chiều dọc hỗn hợp Ngồi trình bày quy tắc để bảo đảm q trình phân tán liệu khơng xảy tình trạng thơng tin Bài 3: Xử lý vấn tin Bài trình bày phƣơng pháp xử lý truy vấn tối ƣu dƣới dạng đại số quan hệ ngôn ngữ SQL Bài 4: Quản lý giao dịch Bài trình bày khái niệm giao dịch CSDLPT Các dạng lịch biểu: tuần tự, bất khả Nguyên tắc thuật toán để quản lý giao dịch có tranh chấn liệu dẫn đến sai sót liệu KIẾN THỨC TIỀN ĐỀ Cơ sở liệu phân tán(CSDLPT) môn học bắt buộc cho chuyên ngành Hệ Thống Thông Tin Các môn học bắt buộc trƣớc học môn CSDLPT : Cơ sở liệu, hệ quản trị sở liệu YÊU CẦU MÔN HỌC Ngƣời học phải dự học đầy đủ buổi lên lớp làm tập đầy đủ nhà PHƢƠNG PHÁP ĐÁNH GIÁ MƠN HỌC Mơn học đƣợc đánh giá gồm: Điểm thực hành: 30% Hình thức nội dung GV hƣớng dẫn thực hành định THực hành hệ quản trị CSDL SQL Server Điểm thi: 70% Hình thức thi tự luận 90 phút BÀI 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN BÀI 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN Với việc phân bố ngày rộng rãi cơng ty, xí nghiệp, liệu tốn lớn khơng tập trung đƣợc Các sở liệu (CSDL) thuộc hệ hai khơng giải đƣợc tốn môi trƣờng không tập trung mà phân tán, song song với liệu hệ thống không nhất, hệ thứ ba hệ quản trị CSDL đời vào năm 80 có CSDL phân tán để đáp ứng nhu cầu 1.1 Hệ CSDL phân tán 1.1.1 Định nghĩa CSDL phân tán Một CSDL phân tán tập hợp nhiều CSDL có liên đới logic đƣợc phân bố mạng máy tính - Tính chất phân tán: Tồn liệu CSDL phân tán không đƣợc cƣ trú nơi mà cƣ trú nhiều trạm thuộc mạng máy tính, điều giúp phân biệt CSDL phân tán với CSDL tập trung đơn lẻ - Tương quan logic: Toàn liệu CSDL phân tán có số thuộc tính ràng buộc chúng với nhau, điều giúp phân biệt CSDL phân tán với tập hợp CSDL cục tệp cƣ trú vị trí khác mạng máy tính Trong hệ thống sở liệu phân tán gồm nhiều trạm, trạm khai thác giao tác truy nhập liệu nhiều trạm khác Ví dụ 1.1: Với ngân hàng có chi nhánh đặt vị trí khác Tại chi nhánh có máy tính điều khiển số máy kế tốn cuối (Teller terminal) Mỗi máy tính với sở liệu thống kê địa phƣơng chi nhánh đƣợc đặt BÀI 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN vị trí sở liệu phân tán Các máy tính đƣợc nối với mạng truyền thông Trạm Trạm Trạm Mạng truyền liệu Trạm Trạm Hình 1.1 Mơi trƣờng hệ CSDL phân tán 1.1.2 Các đặc điểm sở liệu phân tán Với mục (1) Chia sẻ tài nguyên Việc chia sẻ tài nguyên hệ phân tán đƣợc thực thông qua mạng truyền thông Để chia sẻ tài ngun cách có hiệu tài nguyên cần đƣợc quản lý chƣơng trình có giao diện truyền thơng, tài ngun đƣợc truy cập, cập nhật cách tin cậy quán Quản lý tài nguyên lập kế hoạch dự phòng, đặt tên cho lớp tài nguyên, cho phép tài nguyên đƣợc truy cập từ nơi đến nơi khác, ánh xạ lên tài nguyên vào địa truyền thơng, (2) Tính mở Tính mở hệ thống máy tính dễ dàng mở rộng phần cứng (thêm thiết bị ngoại vi, nhớ, giao diện truyền thông ) phần mềm (các mơ hình hệ điều hành, giao thức truyền tin, dịch vụ chung tài nguyên, ) Một hệ phân tán có tính mở hệ đƣợc tạo từ nhiều loại phần cứng phần mềm nhiều nhà cung cấp khác với điều kiện thành phần phải theo tiêu chuẩn chung Tính mở hệ phân tán đƣợc xem xét thao mức độ bổ sung vào dịch vụ dùng chung tài nguyên mà không phá hỏng hay nhân đôi dịch vụ tồn BÀI 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN Tính mở đƣợc hoàn thiện cách xác định hay phân định rõ giao diện hệ làm cho tƣơng thích với nhà phát triển phần mềm Tính mở hệ phân tán dựa việc cung cấp chế truyền thông tiến trình cơng khai giao diện dùng để truy cập tài nguyên chung (3) Khả song song Hệ phân tán hoạt động mạng truyền thông có nhiều máy tính, máy có hay nhiều CPU Trong thời điểm có N tiến trình tồn tại, ta nói chúng thực đồng thời Việc thực tiến trình theo chế phân chia thời gian (một CPU) hay song song (nhiều CPU) Khả làm việc song song hệ phân tán đƣợc thực hai tình sau: - Nhiều ngƣời sử dụng đồng thời lệnh hay tƣơng tác với chƣơng trình ứng dụng - Nhiều tiến trình Server chạy đồng thời, tiến trình đáp ứng yêu cầu từ tiến trình Client khác (4) Khả mở rộng Hệ phân tán có khả hoạt động tốt hiệu nhiều mức khác Một hệ phân tán nhỏ hoạt động cần hai trạm làm việc File Server Các hệ lớn tới hàng nghìn máy tính Khả mở rộng đƣợc đặc trƣng tính khơng thay đổi phần mềm hệ thống phần mềm ứng dụng hệ đƣợc mở rộng Điều đạt đƣợc mức dộ với hệ phân tán Yêu cầu việc mở rộng không mở rộng phần cứng, mạng mà trải khía cạnh thiết kế hệ phân tán (5) Khả thứ lỗi Việc thiết kế khả thứ lỗi hệ thống máy tính dựa hai giải pháp: - Dùng khả thay để đảm bảo hoạt động liên tục hiệu - Dùng chƣơng trình hồi phục xảy cố Xây dựng hệ thống khắc phục cố theo cách thứ ngƣời ta nối hai máy tính với để thực chƣơng trình, hai máy chạy chế độ Standby (không tải hay chờ) Giải pháp tốn phải nhân đơi phần cứng hệ thống Một giải pháp để giảm phí tổn Server riêng lẻ đƣợc cung cấp ứng dụng quan trọng để thay có cố xuất Khi BÀI 4: QUẢN LÝ GIAO DỊCH 89 Lịch biểu không tuần tự: Là lịch mà thao tác tập giao dịch tƣơng tranh đƣợc xen kẽ vào Bởi ln có lịch biểu cho tập giao dịch S giả sử hoạt động giao dịch đồng thời đắn tác dụng giống tác dụng có lịch biểu Lịch biểu đƣợc gọi khả (serializable) tác dụng giống với tác dụng lịch biểu Lịch biểu đƣợc gọi bất khả tác dụng khơng giống với tác dụng lịch biểu Mục tiêu xếp lịch với tập giao dịch đồng thời, đƣa đƣợc lịch biểu khả Trong việc hoá, thứ tự thao tác đọc ghi quan trọng: - Nếu hai thao tác đọc mục liệu chúng khơng ảnh hƣởng đến thứ tự chúng không quan trọng - Nếu hai thao tác đọc hay ghi hai mục liệu hoàn tồn khác chúng khơng ảnh hƣởng đến thứ tự chúng không quan trọng - Nếu thao tác ghi mục liệu thao tác khác đọc hay ghi mục liệu thứ tự chúng quan trọng 90 BÀI 4: QUẢN LÝ GIAO DỊCH Xét lịch biểu Lịch biểu T1 T2 Read A Lịch biểu khả T1 T1 A:=A-10 A:=A-10 ReadB B:=B –20 Read B B:=B+10 WriteA WrieA WriteB B:=B-20 WriteB ReadB WriteB WriteB Read C B:=B+10 B:=B+10 Read C C:=C+20 ReadB ReadB B:=B-20 ReadC C:=C+20 WriteB WriteB Write C T2 ReadA ReadB WriteA (a) T2 ReadA A:=A-10 Lịch biểu bất khả C:=C+20 WriteC (b) Write C (c) Hình 4.1 Một số lịch biểu Hình 4.1 (a) lịch biểu Hình 4.1 (b) lịch biểu khả Hình 4.1 (c) lịch biểu bất khả Trong thực tế, qua tính chất đại số đơn gặp lịch biểu bất khả nhƣng cho kết so với lịch biểu BÀI 4: QUẢN LÝ GIAO DỊCH 91 Các kỹ thuật điều khiển tƣơng tranh khoá Các TT điều khiển đồng thời Bi Quan Khóa chốt Thời dấu Lạc quan Lai Khóa chốt Thời dấu Khố Khố (Lock) đặc quyền giao dịch đƣợc quản lý khố trao cho để truy cập mục liệu Hay khoá biến gắn với mục liệu sở liệu để biểu diễn trạng thái mục liệu mối liên quan đến thao tác thực Bộ quản lý khố thu hồi lại khoá Tại thời điểm, mục liệu X có trạng thái: - Có khố đọc (read-lock)( gọi khố chia sẻ – shared lock): cho phép giao dịch đọc mục không cập nhật mục - Có khố ghi (wrire-lock) ( gọi khố độc quyền – exclusive lock): cho phép thực hai thao tác đọc ghi - Khơng có khố Các khoá đƣợc sử dụng theo cách sau: + Bất kỳ giao dịch cần truy cập vào mục liệu trƣớc hết phải khố mục liệu lại Giao dịch yêu cầu khoá đọc cần đọc liệu yêu cầu khoá ghi vừa cần đọc cần ghi liệu + Nếu mục liệu chƣa bị khố giao dịch khác khố đƣợc cấp phát theo yêu cầu + Nếu mục liệu bị khoá, HQT CSDL xác định xem khoá đƣợc u cầu có tgƣơng thích với khố hành hay không Khi giao dịch yêu cầu cấp 92 BÀI 4: QUẢN LÝ GIAO DỊCH khoá đọc cho mục liệu mà mục có khố đọc (của giao dịch khác) khoá yêu cầu đƣợc cấp phát Trong trƣờng hợp khố u cầu khố ghi giao dịch u cầu khoá phải chờ khoá hành đƣợc giải phóng đƣợc cấp khố + Một giao dịch tiếp tục giữ khoá thời điểm khố đƣợc giải phóng, thời điểm nằm trình thực giao dịch thời điểm giao dịch đƣợc chuyển giao hay bị huỷ bỏ Chỉ khố ghi đƣợc giải phóng kết cua thao tác ghi thấy đƣợc giao dịch khác Một số hệ thống cho phép giao dịch đƣa khoá đọc mục liệu sau nâng cấp khố lên thành khoá ghi Điều cho phép giao dịch kiểm tra liệu trƣớc, sau định có cập nhật hay khơng Bộ quản lý khố lƣu khoá bảng khoá (lock table) Khi điều khiển hoạt động tƣơng tranh khố, xảy tình huống: Khố sống (live-lock) tình mà giao dịch yêu cầu khoá mục mà chẳng nhận đƣợc khố ln có giao dịch khác giữ khố mục (khoá sống mục A giao dịch T khố khơng khố đƣợc A A ln bị khố giao dịch khác), có số lần giao dịch có hội nhận khố mục Rất nhiều giải pháp đƣợc nhà thiết kế hệ điều hành đề xuất vấn đề giải khố sống Có thể sử dụng chiến lƣợc đơn giản “đến trước, phục vụ trước” để loại bỏ đƣợc khoá sống Bế tắc hay khoá gài (deadlock) tình mà giao dịch tập hay nhiều giao dịch đợi nhận khoá mục bị khoá giao dịch khác tập giao dịch ngƣợc lại (một mục giao dịch bị gài giao dịch khác ngƣợc lại) Ví dụ Giả sử có hai giao dịch đồngthời T1 T2 nhƣ sau: T1 : Lock A ; Lock B ; Unlock A ; Unlock B; T2 : Lock B ; Lock A ; Unlock B ; Unlock A; BÀI 4: QUẢN LÝ GIAO DỊCH 93 T1 T2 thực số tác vụ A B Giả sử T T2 đƣợc thực lúc T1 yêu cầu đƣợc trao khoá A, T2 u cầu đƣợc trao khố B Do T1 u cầu khố B phải đợi T2 khố B Tƣơng tự T2 u cầu khố A phải đợi T1 khố A Kết khơng giao dịch tiếp tục hoạt động đƣợc: giao dịch phải đợi giao dịch mở khoá, chúng phải đợi nhƣng chẳng nhận đƣợc khố nhƣ u cầu Để tránh bế tắc sử dụng giải pháp: (i) Buộc giao dịch phải đưa tất yêu cầu khoá lúc quản lý khoá trao tất khố cho chúng đƣợc, khơng trao cho giao dịch đợi hay nhiều khoá đƣợc yêu cầu bị giữ giao dịch khác (ii) Gán thứ tự tuyến tính cho mục yêu cầu tất giao dịch phải xin khoá theo thứ tự (iii) Một cách khác để xử lý bế tắc định kỳ kiểm tra u cầu khố phát có xảy bế tắc không Bằng cách dùng đồ thị chờ, với nút biểu diễn giao dịch cung Ti Tj biểu thị Tj đợi nhận khoá mục đƣợc Ti giữ Nếu đồ thị có chu trình, bế tắc xảy ra, khơng có chu trình kết luận khơng có khố gài hay bế tắc Nếu khố gài bị phát hiện, hệ thống buộc giao dịch bị bế tắc phải khởi động lại tác dụng giao dịch sở liệu phải đƣợc hoàn toàn trả lại 4.2 Mơ hình khố Khố (Lock) đặc quyền truy cập mục liệu mà quản lý khố (lock manager) trao cho giao dịch thu hồi lại Trong mơ hình giao dịch có sử dụng khố khơng có thao tác đọc ghi mục mà có thao tác khoá (lock) mở khoá (unlock) chúng Mỗi mục đƣợc khố phải đƣợc mở khố sau Với mục A, bƣớc lock A unlock A giao dịch, giao dịch phải đƣợc coi giữ khoá A Trong mơ hình này, dựa giả định sau: - Một khoá phải đƣợc đặt mục trƣớc đọc hay ghi mục 94 BÀI 4: QUẢN LÝ GIAO DỊCH - Các thao tác khoá hoạt động sở đồng hoá, nghĩa giao dịch khoá mục bị khoá trƣớc giao dịch khác, khơng thể thao tác mục khoá đƣợc giải phóng lệnh mở khố giao dịch giữ khố trƣớc thực - Mỗi giao dịch mở đƣợc khố khố - Một giao dịch khơng u cầu khố mục giữ khố mục đó, mở khố mục mà khơng giữ khố mục Các lịch biểu tn theo quy tắc đƣợc gọi hợp lệ Ví dụ : Xét hai giao dịch đồng thời T1 T2 truy xuất đến mục liệu A theo mơ hình là: T1 Lock A T2 Lock A Read A Read A A:=A+1 A:=A+1 Write A Write A Unlock A Unlock A Nếu T1 bắt đầu trƣớc T2, u cầu khố mục A Giả sử khơng có giao dịch khố A, quản lý khố cho khố mục Khi có T đƣợc truy xuất đến mục Nếu T2 bắt đầu trƣớc T1 chấm dứt T2 thực Lock A, hệ thống buộc T2 phải đợi Chỉ đến T1 thực lệnh Unlock A, hệ thống cho phép T2 tiến hành Nhƣ vậy, T1 hoàn thành trƣớc T2 bắt đầu kết sau hai giao dịch, giá trị A 32 Với mơ hình này, để kiểm tra tính khả lịch biểu, ta xem xét thứ tự mà giao dịch khoá mục cho Thứ tự phải thống với thứ tự lịch biểu tƣơng đƣơng Đây thực chất việc kiểm tra đồ thị có chu trình hay khơng Thuật tốn 4.1: Kiểm tra tính khả lịch biểu Nhập: Một lịch biểu S cho tập giao dịch T1, T2 , , Tk Xuất: Khẳng định S có khả hay khơng? Nếu có đƣa lịch biểu tƣơng đƣơng với S BÀI 4: QUẢN LÝ GIAO DỊCH 95 Phƣơng pháp: Bƣớc 1: Tạo đồ thị có hƣớng G (gọi đồ thị hố), có nút giao dịch, cung đồ thị đƣợc xác định nhƣ sau: Gọi S a1, a2, an thao tác giao dịch có dạng Tj : Lock Am Tj : Unlock Am với Tj giao dịch thực thao tác khoá mở mục Am Nếu Tj : Unlock Am hành động ap có dạng Ts : Lock Am Nếu s j vẽ cung từ Tj đến Ts Cung có nghĩa lịch biểu tƣơng đƣơng, Tj phải trƣớc Ts Bƣớc 2: Kiểm tra, G có chu trình S bất khả Nếu G khơng có chu trình ta tìm thứ tự tuyến tính cho giao dịch, T i trƣớc Tj có cung từ Ti Tj Để tìm thứ tự tuyến tính đó, ta thực q trình xếp topo nhƣ sau Đầu tiên ta xuất phát từ nút Ti khơng có cung vào (ta ln tìm thấy nút nhƣ thế, khơng G đồ thị có chu trình), liệt kê Ti loại bỏ Ti khỏi G Sau lặp lại q trình đồ thị khơng nút Khi đó, thứ tự nút đƣợc liệt kê thứ tự giao dịch Ví dụ: Giả sử ta có lịch biểu ba giao dịch T1, T2, T3 nhƣ sau T1 : Lock A T2 : Lock B T2 : Lock C T2 : Unlock B T1 : Lock B T1 : Unlock A T2 : Lock A T2 : Unlock C T2 : Unlock A T3 : Lock A 96 BÀI 4: QUẢN LÝ GIAO DỊCH T3 : Lock C T1 : Unlock B T3 : Unlock C T3 : Unlock A T2 T1 T3 Hình 4.2 Đồ thị thứ tự giao dịch Đồ thị có nút T1, T2 T3 Các cung đƣợc xây dựng nhƣ sau: bƣớc (4) ta có T2 : Unlock B, bƣớc có lệnh Lock B bƣớc (5) T1: Lock B Vậy ta vẽ cung từ T2 T1 bƣớc (6) ta có T1 : Unlock A, bƣớc có lệnh Lock A bƣớc (7) T 2: Lock A Vậy ta vẽ cung từ T1 T2 bƣớc (8) ta có T2 : Unlock C, bƣớc có lệnh Lock C bƣớc (11) T3: Lock C Vậy ta vẽ cung từ T2 T3 bƣớc (9) ta có T2 :Unlock A, bƣớc có lệnh Lock A bƣớc (10) có T3: Lock A Vậy ta vẽ cung từ T2 T3 Đồ thị có chu trình nên lịch biểu cho bất khả Ví dụ : Lịch biểu ba giao dịch T1, T2, T3 (1) T2 : Lock A (2) T2 : Unlock A (3) T3 : Lock A (4) T3 : Unlock A (5) T1 : Lock B (6) T1 : Unlock B (7) T2 : Lock B BÀI 4: QUẢN LÝ GIAO DỊCH 97 (8) T2 : Unlock B T1 T2 T3 Hình 4.3 Đồ thị cho ba giao dịch 4.3 Mơ hình khố đọc khố ghi Trong mơ hình khố bản, ta giả sử khố mục thay đổi mục Trên thực tế, có trƣờng hợp giao dịch truy cập mục theo nghĩa đọc giá trị mục khơng thay đổi giá trị mục Vì ta phân biệt hai loại truy cập: đọc (read only) đọc ghi (read write), ta tiến hành đƣợc số thao tác đồng thời bị cấm mơ hình khố Khi đó, ta phân biệt hai loại khố nhƣ sau: Khoá đọc (read lock or shared lock) ký hiệu RLock hoạt động nhƣ sau: giao dịch T muốn đọc mục A thực lệnh RLock A, ngăn không cho giao dịch khác ghi giá trị vào A T khoá A, nhƣng giao dịch khác giữ khoá đọc A lúc với T Khoá ghi (write lock) ký hiệu WLock hoạt động nhƣ mơ hình khố bản, nghĩa giao dịch muốn thay đổi giá trị mục A thực lệnh WLock A Khi khơng giao dịch đƣợc lấy khoá đọc khoá ghi mục Cả khố đọc khố ghi đƣợc mở lệnh Unlock Ngồi giả định nhƣ mơ hình khố bản, ta có thêm giả định giao dịch u cầu khố ghi mục mà giữ khố đọc Hai lịch biểu tƣơng đƣơng nếu: - Chúng sinh giá trị cho mục, - Mỗi khoá đọc đƣợc áp dụng giao dịch xảy hai lịch biểu vào lúc mục bị khoá có giá trị Thuật tốn 4.2: Kiểm tra tính khả lịch biểu với khoá đọc / ghi Nhập: Một lịch biểu S cho tập giao dịch T1, T2 , , Tk 98 BÀI 4: QUẢN LÝ GIAO DỊCH Xuất: Khẳng định S có khả hay khơng? Nếu có đƣa lịch biểu tƣơng đƣơng với S Phƣơng pháp: Bƣớc 1: Chúng ta xây dựng đồ thị có hƣớng G (gọi đồ thị hố), có nút giao dịch Các cung đồ thị đƣợc xác định quy tắc sau: Giả sử S, Ti nhận khoá đọc khoá ghi mục A, Tj giao dịch khố ghi A, i j, ta đặt cung từ Ti Tj Giả sử S, giao dịch Ti khoá ghi A, Tm khoá đọc A sau Ti mở khoá A nhƣng trƣớc giao dịch khác khoá ghi A, i m, ta đặt cung từ Ti Tm Bƣớc 2: Kiểm tra, G có chu trình S bất khả Nếu G khơng có chu trình xếp topo G thứ tự giao dịch Ví dụ: Một lịch biểu bốn giao dịch : (1)T2 : RLock A (2) T3 : RLock A (3) T2 : WLock B (4) T2 : Unlock A (5) T3 : WLock A (6) T2 : Unlock B (7) T1 : RLock B (8) T3 : Unlock A (9) T4 : RLock B (10) T1 : RLock A (11) T4 : Unlock B (12) T1 : WLock C (13) T1 : Unlock A (14) T4 : WLock A BÀI 4: QUẢN LÝ GIAO DỊCH 99 (15) T4 : Unlock A (16) T1 : Unlock B (17) T1 : Unlock C Đồ thị hoá lịch biểu đƣợc trình bày hình 2.6 Các nút bốn giao dịch T1 , T2 , T3 , T4 Các cung đƣợc xác định nhƣ sau: bƣớc (4) T2 mở khoá mục A Bƣớc (5) T3 khoá ghi mục A, T3 phải sau T2, có cung từ T2 đến T3 bƣớc (6) T2 mở khoá mục B Bƣớc (7) T1 khoá đọc mục B T4 bƣớc (9) Nhƣ T1 T4 phải sau T3, có cung từ T2 đến nút bƣớc (8) T3 mở khoá mục A, Bƣớc (10) T1 khoá đọc mục A khoá ghi mục A T4 bƣớc (14) Nhƣ T1 T4 phải sau T3, có cung từ T3 đến nút bƣớc (13) T1 mở khoá mục A, bƣớc (14) T4 khoá ghi mục A, T4 phải sau T1, có cung từ T1 đến T4 T1 T2 T4 T3 Hình 4.4 Đồ thị hóa cho giao dịch Sắp xếp topo cho đồ thị ta đƣợc thứ tự giao dịch là: T1 T2 T3 T4 Giao thức hai pha mơ hình trƣớc áp dụng cho mơ hình Các khố đọc khố ghi trƣớc bƣớc mở khố, điều đảm bảo tính khả lịch biểu Trong mơ hình ta rút đƣợc qui tắc liên quan đến việc trao khoá nhƣ sau: 100 BÀI 4: QUẢN LÝ GIAO DỊCH Một khoá đọc mục đƣợc trao cho giao dịch khơng có khố ghi đƣợc giao dịch khác giữ Một khố ghi mục đƣợc trao cho giao dịch khơng có khố đọc khố ghi đƣợc giao dịch khác giữ mục 4.4 Thuật toán điều khiển tƣơng tranh nhãn thời gian (thời dấu) Để đảm bảo tính khả lịch biểu, ngồi mơ hình sử dụng khố nhƣ trình bày Ta sử dụng nhãn thời gian (timestamp) ý tƣởng gán cho giao dịch nhãn thời gian, điểm bắt đầu giao dịch Thiết lập nhãn thời gian Nếu tất giao dịch đƣợc lập lịch gán nhãn thời gian lập lịch trì đếm số lƣợng giao dịch đƣợc lập lịch Khi có giao dịch yêu cầu đƣợc lập lịch, lập lịch tăng đếm số lƣợng lên đơn vị gán trị số cho giao dịch có yêu cầu Nhƣ vậy, xảy trƣờng hợp hai giao dịch có nhãn thời gian, thứ tự tƣơng đối nhãn thời gian giao dịch thứ tự mà giao dịch đƣợc thực Một cách gán nhãn thời gian khác cho giao dịch dùng giá trị đồng hồ hệ thống thời điểm bắt đầu giao dịch Trong trƣờng hợp tồn nhiều xếp lịch hệ thống CSDL chạy máy đa xử lý hệ CSDL phân tán, ta phải gán thêm hậu tố cho nhãn thời gian Hậu tố định danh xử lý tƣơng ứng Khi đó, việc đồng hố đếm đồng hồ đƣợc dùng xử lý yêu cầu quan trọng để đảm bảo tính khả lịch biểu Đảm bảo tính khả nhãn thời gian Qui tắc trì thứ tự nhãn thời gian nhƣ sau Giả sử ta có giao dịch có nhãn thời gian t muốn thực thao tác X mục có thời điểm đọc tr thời điểm ghi tw thì: a/ Cho thực thao tác nếu: BÀI 4: QUẢN LÝ GIAO DỊCH 101 X = Read t tw X = Write t tr t tw Trong trƣờng hợp trƣớc, đặt thời điểm đọc t t > trvà trƣờng hợp sau, đặt thời điểm ghi t t > tw b/ Khơng thực X = Write tr t < tw c/ Huỷ bỏ giao dịch nếu: X = Read t < tw X = Write t < tr Ví dụ : Trong RLock đƣợc xem Read, WLock đƣợc xem Write, bƣớc Unlock không tồn Các giao dịch T1, T2 , T3, T4 có nhãn thời gian lần lƣợt 100, 200, 300, 400 bƣớc (1) , T2 (có nhãn thời gian t = 200) đọc A (có WT = 0), tức t tw Thao tác đƣợc phép, t > tr (bằng 0) nên RT A đƣợc đặt lại 200 Tƣơng tự bƣớc (2) , T3 (có nhãn thời gian t = 300) đọc A (có WT = 0), tức t tw Thao tác đƣợc phép, t > tr (bằng 200) nên RT A đƣợc đặt lại 300 bƣớc (3) , T2 (có nhãn thời gian t = 200) ghi B (có RT = WT = 0), tức t Tr t tw Thao tác đƣợc phép, t > tW (bằng 0) nên WT B đƣợc đặt lại 200 bƣớc (4) , T3 (có nhãn thời gian t = 300) ghi A (có RT = 300 WT=0), tức t Tr t tw Thao tác đƣợc phép, t > tW (bằng 0) nên WT A đƣợc đặt lại 300 bƣớc (5) , T1 (có nhãn thời gian t = 100) đọc B (có WT = 200), tức t < tw Vì thao tác bị huỷ bỏ 102 BÀI 4: TT QUẢN LÝ GIAO DỊCH T1 100 (1) T2 200 T3 300 Read A (2) 400 A C RT=0 RT=0 RT=0 WT=0 WT=0 WT=0 RT=300 Write B (4) B RT=200 Read A (3) T4 WT=200 Write A WT=300 (5) Read B T1 bị huỷ bỏ Trong q trình thực giao dịch CSDL tạm thời không quán nhƣng CSDL phải quán giao dịch kết thúc Tính tin cậy dựa vào hai khả sau: + Khả phục hồi nhanh hệ thống nhiều kiểu lỗi xảy (Khi lỗi xảy hệ thống chịu đựng đƣợc tiếp tục cung cấp dịch vụ ) + Khôi phục: đạt đƣợc trạng thái quán Trở trạng thái quán trƣớc tiếp tới trạng thái quán sau xảy lỗi Nhất quán giao tác liên quan tới thực truy nhập trùng Việc quản lý giao tác tiếp xúc với vấn đề giữ CSDL trạng thái quán xảy truy nhập trùng lỗi BÀI 4: QUẢN LÝ GIAO DỊCH 103 TÀI LIỆU THAM KHẢO Jeffrey Ullman - dịch giả Trần Đức Quang(2002) Nguyên Lý hệ sở liệu sở tri Thức NXB Thống Kê, Hà Nội Các tập 1,2,3 Nguyễn Bá Tƣờng (2010) Nhập Môn Cơ Sở Dữ Liệu Phân Tán NXB Khoa Học Kỹ Thuật, Hà Nội Giáo trình sở liệu phân tán, ĐH khoa học tự nhiên, ĐH Quốc Gia Hà Nội ... QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN chức Đây yếu tố quan trọng thức đẩy việc phát triển sở liệu phân tán Sự liên kết sở liệu địa phƣơng tồn tại: sở liệu phân tán giải pháp tự nhiên có sở liệu tồn... 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN BÀI 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU PHÂN TÁN Với việc phân bố ngày rộng rãi công ty, xí nghiệp, liệu tốn lớn không tập trung đƣợc Các sở liệu (CSDL) thuộc... CSDL PHÂN TÁN 1.2.1 Các hệ khách / đại lý 1.2.2 Các hệ phân tán ngang hàng BÀI 2: CÁC PHƢƠNG PHÁP PHÂN TÁN DỮ LIỆU 2.1 THIẾT KẾ CƠ SỞ DỮ LIỆU PHÂN TÁN