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

Quản lý giao tác trong CSDL quan hệ và phân tán

16 478 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

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Văn Dương QUẢN LÝ GIAO TÁC TRONG CSDL QUAN HỆ VÀ PHÂN TÁN Ngành : Công nghệ thông tin Mã số : 01 10 LUẬN VĂN THẠC Sĩ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Nguyễn Tuệ Hà Nội - 2008 MỤC LỤC MỞ ĐẦU CHƢƠNG 1: GIỚI THIỆU VỀ XỬ LÝ GIAO TÁC 1.1 Giới thiệu xử lý giao tác 1.1.1 Hệ thống đơn người dùng đa người dùng 1.1.2 Các giao tác, thao tác Đọc Ghi, vùng đệm DBMS 1.1.3 Vì điều khiển đồng thời cần thiết 13 1.1.4 Tại khôi phục cần thiết Error! Bookmark not defined 1.2 Các khái niệm hệ thống giao tác Error! Bookmark not defined 1.2.1 Các trạng thái giao tác thao tác bổ sung .Error! Bookmark not defined 1.2.2 File log hệ thống (the system log) Error! Bookmark not defined 1.2.3 Điểm xác định hoàn thành giao tác Error! Bookmark not defined 1.3 Các đặc trƣng giao tác Error! Bookmark not defined 1.4 Lịch biểu khả phục hồi Error! Bookmark not defined 1.4.1 Lịch biểu giao tác Error! Bookmark not defined 1.4.2 Đặc điểm lịch biểu dựa khả phục hồiError! Bookmark not defined 1.5 Thứ tự lịch biểu Error! Bookmark not defined 1.5.1 Lịch biểu có thứ tự, thứ tự lịch biểu có thứ tự xung độtError! Bookmark not defined 1.5.2 Kiểm tra thứ tự xung đột lịch biểuError! Bookmark not defined 1.5.3 Sử dụng tính thứ tự Error! Bookmark not defined 1.5.4 Tương đương khung nhìn tính thứ tự khung nhìn .Error! Bookmark not defined 1.6 Các kiểu tƣơng đƣơng khác lịch biểu Error! Bookmark not defined CHƢƠNG 2: CÁC KỸ THUẬT ĐIỀU KHIỂN ĐỒNG THỜI Error! Bookmark not defined 2.1 Kỹ thuật sử dụng khóa cho điều khiển đồng thời Error! Bookmark not defined 2.1.1 Bảng khoá hệ thống bảng loại khóaError! Bookmark not defined 2.1.2 Khóa kỳ (Two - phase locking) Error! Bookmark not defined 2.1.3 Khóa chết xử lý khóa chết Error! Bookmark not defined 2.2 Điều khiển đồng thời dựa vào Timestamps Ordering Error! Bookmark not defined 2.2.1 Tem thời gian (Timestamps) Error! Bookmark not defined 2.2.2 Thuật toán Timestamp Ordering Error! Bookmark not defined 2.3 Các kỹ thuật điều khiển đồng thời đa phiên Error! Bookmark not defined 2.3.1 Kỹ thuật đa phiên dựa Timestamp OrderingError! Bookmark not defined 2.3.2 Khóa kỳ sử dụng khóa chứng thực Error! Bookmark not defined 2.4 Các kỹ thuật điều khiển đồng thời dựa tính hợp lệError! Bookmark not defined 2.5 Đa hạt (Multiple Granularity) Error! Bookmark not defined CHƢƠNG 3: QUẢN LÝ GIAO TÁC TRONG SQL Error! Bookmark not defined 3.1 Xếp hàng thứ tự Error! Bookmark not defined 3.2 Tính nguyên tử Error! Bookmark not defined 3.3 Giao tác đọc Error! Bookmark not defined 3.4 Vấn đề Dirty Read Error! Bookmark not defined 3.4.1 Dirty read không gây nguy hiểm Error! Bookmark not defined 3.4.2 Dirty read gây nguy hiểm Error! Bookmark not defined KẾT LUẬN Error! Bookmark not defined TÀI LIỆU THAM KHẢO 15 CÁC THUẬT NGỮ VIẾT TẮT 2PL ACID CSDL DBMS HQTCSDL OLTP SQL TO Two - Phase Locking Atomicity, Consistency, Isolation, Durability Cơ sở liệu Database Management System Hệ quản trị sở liệu Online Transaction Processing Structured Query Languege Timestamp Ordering DANH MỤC CÁC BẢNG BIỂU, HÌNH MINH HỌA Hình 1.1 Xử lý đan xen xử lý song song giao tác đồng thời Hình 1.2 Hai giao tác mẫu, Giao tác T1 Giao tác T2 12 Hình 1.3 Một số vấn đề xuất thực thi đồng thời điều khiển 14 Hình 1.4 Sơ đồ chuyển trạng thái thực thi giao tác 19 Hình 1.5 Lịch biểu không 29 Hình 1.6: Hai lịch biểu cho kết tương đương với X = 100 33 Hình 1.7 Xây dựng đồ thị ưu tiên cho lịch biểu A tới D (hình 1.5) để kiểm tra thứ tự xung đột 36 Hình 1.8 Ví dụ phân tích khả 39 Hình 1.8: (d) Đồ thị lịch biểu E; (e) Đồ thị lịch biểu F 39 (f) Đồ thị với lịch biểu tương đương 40 Hình 2.1: Các thao tác khóa mở khóa khóa nhị phân 47 Hình 2.2 Thao tác khóa mở khóa chế độ khóa shared/exclusive 51 Hình 2.3 Giao tác không tuân theo khóa kỳ 59 Hình 2.4 Minh họa vấn đề khóa chết 64 Hình 2.5 Đồ thị chờ (Phi chu trình) 69 Hình 2.6 Các bảng khóa tương thích 79 Hình 2.7 Ma trận khóa tương thích khóa đa hạt 84 MỞ ĐẦU Ngày việc ứng dụng hệ sở liệu vào lĩnh vực hoạt động xã hội trở thành phổ biến Để khai thác tốt CSDL cần phải có hệ QTCSDL tốt Ngoài chức định nghĩa, cập nhật truy vấn sở liệu, hệ QTCSDL phải làm tốt việc quản lý giao tác, môi trường đa chương trình, nhằm đảm bảo tính quán sở liệu Ở nước ta, việc sử dụng hệ QTCSDL phổ biến việc nghiên cứu kỹ thuật việc xây dựng hệ QTCSDL chưa thực nhiều Luận văn nhằm nghiên cứu giao tác quản lý giao tác hệ QTCSDL Môi trường lựa chọn hệ thống đa chương trình xử lý giao tác đồng thời Đây vấn đề có ý nghĩa lý thuyết thực tiễn, giúp việc khai thác CSDL đắn Luận văn bao gồm phần mở đầu, ba chương nội dung phần kết luận Chương “GIỚI THIỆU VỀ XỬ LÝ GIAO TÁC” trình bày khái niệm giao tác sử dụng để biểu diễn đơn vị logic xử lý sở liệu phải hoàn thành trọn vẹn để đảm bảo tính đắn, thảo luận vấn đề kiểm soát đồng thời xuất nhiều giao tác đệ trình lúc gây trở ngại lẫn dẫn đến việc sinh kết sai vấn đề khôi phục từ giao tác bị hỏng Chương “CÁC KỸ THUẬT ĐIỀU KHIỂN ĐỒNG THỜI ” trình bày công nghệ liên quan đến việc điều khiển trình truy cập sở liệu Chương “QUẢN LÝ GIAO TÁC TRONG SQL” mô tả việc thể giao tác SQL thông qua số chương trình cụ thể Cuối phần kết luận tổng kết lại làm luận văn, hướng phát triển luận văn Cuối tác giả xin bày tỏ lòng biết ơn chân thành tới TS Nguyễn Tuệ, thầy ân cần, bảo, động viên, giúp đỡ tác giả suốt trình thực luận văn Tác giả xin chân thành cảm ơn gia đình, bạn bè, đồng nghiệp động viên giúp đỡ nhiều mặt thời gian qua, xin chân thành cảm ơn thầy cô giáo Trường Đại học Công nghệ Khoa sau đại học tạo điều kiện giúp đỡ để tác giả hoàn thành Luận văn CHƢƠNG 1: GIỚI THIỆU VỀ XỬ LÝ GIAO TÁC 1.1 Giới thiệu xử lý giao tác Trong phần giới thiệu khái niệm giao tác thực thi đồng thời cách khôi phục lại giao tác lỗi 1.1.1 Hệ thống đơn người dùng đa người dùng Một tiêu chuẩn để phân loại hệ sở liệu dựa vào số lượng người dùng truy cập vào hệ thống thời điểm Hệ quản trị sở liệu (DBMS - Database Management System) đơn người dùng (singleuser) thời điểm có người dùng truy cập hệ thống đa người dùng (multi-user) có nhiều người dùng truy cập hệ thống cách đồng thời Ví dụ: Hệ thống đặt vé máy bay sử dụng đồng thời hàng trăm đại lý bán vé Các hệ thống nhà băng, hãng bảo hiểm, sở giao dịch chứng khoán hệ thống khác tương tự nhiều người sử dụng đệ trình giao tác cách đồng thời [1] Nhiều người dùng sử dụng hệ thống máy tính truy cập sở liệu lúc khái niệm đa chương trình, cho phép máy tính thực thi nhiều chương trình -hoặc tiến trình- thời điểm Nếu có xử lý trung tâm (CPU), thực tế thực thi nhiều xử lý thời điểm Tuy nhiên, hệ điều hành đa chương trình thực thi số câu lệnh tiến trình, sau hoãn tiến trình lại thực thi số câu lệnh tiến trình v v Một tiến trình lại tiếp tục điểm mà bị hoãn đến lượt sử dụng CPU lại Như vậy, việc thực đồng thời tiến trình thực chất đan xen, minh họa hình 1.1, tiến trình A B thực đồng thời theo cách đan xen Sự đan xen giữ gìn bận rộn CPU tiến trình đòi hỏi thao tác vào ra, chẳng hạn việc đọc khối liệu từ đĩa [1] Nếu hệ thống máy tính có nhiều xử lý (nhiều CPU), việc xử lý song song nhiều tiến trình thực được, minh họa hình 1.1 với tiến trình C D [1] Trong DBMS đa người dùng, mục liệu lưu trữ nguồn tài nguyên cho chương trình ứng dụng người sử dụng tương tác truy cập đồng thời để liên tục lấy thông tin từ sở liệu thay đổi sở liệu [1] A A B B C CPU1 D CPU2 t4 t2 t3 t1 Hình 1.1 Xử lý đan xen xử lý song song giao tác đồng thời 1.1.2 Các giao tác, thao tác Đọc Ghi, vùng đệm DBMS Mô ̣t giao tác mô ̣t đơn vị logic xử lý CSDL, bao gồm nhiều thao tác truy cập liệu chèn, xoá, sửa đổi lấy thông tin Các thao tác sở liệu cấu thành giao tác nhúng vào chương trình ứng dụng rõ cách tương tác thông qua ngôn ngữ truy vấn bậc cao SQL [1] Mô ̣t ̣ thố ng OLTP (xử lý giao tác trực tuyế n ) hoạt động theo thời gian thực nhằ m thu t hập xử lý liệu có liên quan đến giao tác gởi thay đổ i đế n các sở dữ liê ̣u dùng chung và các file khác Trong viê ̣c xử lý giao tác trực tuyế n , giao tác thực , trái với việc xử lý theo lô , giao tác lưu khoảng thời gian sau đó mới đươ ̣c thực hiê ̣n Đa số các xử lý theo lô viê ̣c chuyể n khoản đươ ̣c thực hiê ̣n vào giờ đêm Các kết xử lý giao tác trực tuyến có sở dữ liê ̣u Nó khẳng định giao tác hoàn thành Các ví dụ thông du ̣ng nhấ t của viê ̣c xử lý giao tác trực tuyến hệ thống đặt chổ Hàng Không và ̣ thố ng giao dich ̣ Ngân hàng Hãng IBM định nghĩa loại giao tác sau: Tại thời điểm có câu lệnh thực sở dữ liê ̣u Mô ̣t đơn vi ̣công viê ̣c (bao gồ m nhiề u câu lê ̣nh ) đươ ̣c thực hiê ̣n mô ̣t sở dữ liê ̣u Mô ̣t đơn vi ̣công viê ̣c môi trường phân bố (bao gồ m nhiề u câu lê ̣nh ) đươ ̣c thực nhiề u sở dữ liê ̣u , thời điểm câu lệnh đươ ̣c thực hiê ̣n mô ̣t sở dữ liê ̣u Mô ̣t yêu cầ u ̣ thố ng phân bố (bao gồ m nhiề u câu lê ̣nh ) thực hiê ̣n nhiề u sở liệu, thời điểm có nhiều câu lệnh thực mô ̣t sở dữ liê ̣u Các hệ quản trị sở liệu thực giao tác cách sử dụng lê ̣nh nhúng vào chương trình ứng dụng tương tác theo danh nghĩa qua ngôn ngữ truy vấn bậc cao SQL Trong chương trình 10 ứng dụng, biên giới giao tác xác định cách rõ ràng thông qua câu lệnh Begin Transaction End Transaction Trong trường hợp tất thao tác truy cập sở liệu câu lệnh coi tạo giao tác Một chương trình ứng dụng chứa nhiều giao tác chứa nhiều biên giới giao tác Nếu thao tác CSDL không cập nhật CSDL mà lấy thông tin gọi giao tác gọi giao tác đọc (read only transaction) Chúng ta giải thích khái niệm xử lý giao tác thông qua mô hình sở liệu đơn giản.Về bản, sở liệu miêu tả tập hợp file liệu ghi file có số trường Các thao tác truy cập CSDL mà giao tác có [1]: Read_item(X): Đọc mục liệu có tên X CSDL vào biến chương trình Để đơn giản ký hiệu, ta giả sử biến có tên X Write_item(X): Ghi giá trị biến chương trình X vào mục CSDL có tên X Đơn vị truyền liệu từ đĩa vào nhớ khối Việc thực câu lệnh read_item(x) bao gồm bước sau [1]: Bước 1: Tìm địa khối đĩa chứa mục liệu X Bước 2: Sao chép khối đĩa vào vùng đệm nhớ (nếu khối đĩa chưa có vùng đềm nhớ chính) Bước 3: Sao chép liệu X từ vùng đệm vào biến chương trình X Việc thực câu lệnh write_item(X) bao gồm bước sau: Bước 1: Tìm địa khối đĩa chứa mục liệu X Bước 2: Sao chép khối đĩa vào vùng đệm nhớ (nếu khối đĩa chưa có vùng đệm) 11 Bước 3: Sao chép mục liệu X từ biến chương trình X vào vị trí vùng đệm Bước 4: Lưu khối cập nhật từ vùng đệm trở lại đĩa (hoặc sau khoảng thời gian) Trong thực tế, bước bước cập nhật sở liệu đĩa Trong số trường hợp vùng đệm không lưu vào đĩa có thay đổi tạo cho vùng đệm Thông thường, định lưu lại khối đĩa thay đổi vùng đệm nhớ điều khiển phận quản lý phục hồi liệu (recovery manager) DBMS phối hợp với hệ điều hành sở Nói chung, DBMS trì số vùng đệm nhớ để chứa khối liệu bao gồm mục sở liệu xử lý Khi tất vùng đệm bị chiếm giữ có thêm khối liệu phải chép vào nhớ sách thay số vùng đệm sử dụng để lựa chọn vùng đệm thay Nếu lựa chọn vùng đệm có thay đổi liệu vùng đệm phải ghi trở lại đĩa trước tái sử dụng [1] Một giao tác bao gồm thao tác read_item write_item để truy cập cập nhật sở liệu Hình 1.2 thể ví dụ giao tác đơn giản (a) T1 (b) T2 Read_item(X); Read_item(X); X:=X+N; X:=X+M; Write_item(X); Write_item(X); Read_item(Y); Y:=Y+N; Write_item(Y); Hình 1.2 : Hai giao tác mẫu, (a) Giao tác T1 , (b) Giao tác T2 12 Cơ chế phục hồi điều khiển đồng thời chủ yếu liên quan câu lệnh truy cập sở liệu giao tác Các giao tác nhiều người dùng khác đệ trình thực cách đồng thời truy cập cập nhật mục sở liệu giống Nếu việc thực đồng thời không điều khiển dẫn đến nhiều vấn đề, chẳng hạn việc sở liệu không quán 1.1.3 Vì điều khiển đồng thời cần thiết Nhiều vấn đề xảy giao tác đồng thời thực theo cách thức không điều khiển Ta minh hoạ số vấn đề việc tham khảo sở liệu đặt vé máy bay đơn giản hoá, ghi lưu trữ cho chuyến bay Hình 1.2 (a) thể giao tác T 1, giao tác chuyển N chỗ từ chuyến bay có số chỗ lưu trữ mục CSDL có tên X sang chuyến bay khác có số chỗ lưu trữ mục CSDL có tên Y Hình 1.2(b) thể giao tác T2 đơn giản hơn, giao tác đặt trước M chỗ chuyến bay thứ (X) tham chiếu giao tác T Để làm đơn giản ví dụ, ta không đưa vào phần phụ giao tác kiểm tra xem chuyến bay có đủ chỗ sẵn sàng trước đặt thêm chỗ hay không [1] Khi chương trình truy cập sở liệu viết, có số chuyến bay, ngày bay số chỗ đặt trước tham số Như vậy, sử dụng chương trình để thực nhiều giao tác, giao tác với chuyến bay số chỗ đặt khác Với mục đích điều khiển đồng thời, giao tác thực cụ thể chương trình ngày bay, chuyến bay số chỗ cụ thể Trong hình 1.2(a) (b) giao tác T1 T2 thực cụ thể chương trình tham chiếu đến chuyến bay cụ thể mà số chỗ chúng lưu mục liệu X 13 Y sở dư liệu Nếu hai giao tác chạy đồng thời, dẫn đến vấn đề sau đây: a Cập nhật bị (Lost Update) Vấn đề xảy hai giao tác truy cập vào mục CSDL có thao tác xen kẽ theo cách làm cho giá trị số mục liệu không xác Giả sử giao tác T1 T2 đệ trình gần thời điểm thao tác chúng thực xen kẽ thể hình 1.3 a); giá trị cuối mục X không xác T2 nhận giá trị X trước T1 thay đổi sở liệu giá trị cập nhật tạo từ T1 bị Cụ thể, ban đầu có X= 80 (ban đầu có 80 chỗ ngồi chuyến bay), N=5 (T1 chuyển chỗ từ chuyến bay tương ứng với X sang chuyến bay tương ứng với Y ), M=4 (giao tác T dành chỗ chuyến bay X) Kết cuối phải 79 có xen kẽ thao tác hình 1.3 (a) nên X=84 cập nhật T1 chuyển chổ khỏi X bị [1][4] a) T1 T2 Read_item (X); X := X-N; Read_item (X); X := X+M ; Thời gian Write_item (X); Read_item (Y); Write_item (X); /* mục X có giá trị không xác cập nhật T1 bị “lạc”*/ Y := Y+N ; Write_item (Y); Hình 1.3a) Vấn đề cập nhật bị 14 b Vấn đề cập nhật tạm thời (hoặc Dirty Read) Vấn đề xẩy giao tác cập nhật mục sở liệu sau giao tác thất bại lý Mục cập nhật giao tác khác truy cập trước phải thay đổi trở lại giá trị ban đầu Hình 1.3(b) trình bày ví dụ T1 cập nhật mục X sau thất bại trước hoàn thành, hệ thống phải thay đổi X trả lại giá trị ban đầu Tuy nhiên, trước làm điều giao tác T đọc giá trị “tạm thời” X, giá trị không ghi lại cách thường trực sở liệu hư hỏng T1 Giá trị mục X T2 đọc gọi liệu rác (dirty) tạo giao tác chưa hoàn thành ghi lại Vấn đề gọi vấn đề dirty read [1][4] T1 T2 Read_item (X); X := X - N; Write_item (X); Thời gian Read_item (X); X := X+M ; Write_item (X); Read_item (Y); Giao tác T1 thất bại phải thay đổi giá trị X trở giá trị cũ T2 đọc giá trị “tạm thời” không xác X Hình 1.3 b) vấn đề cập nhật tạm thời 15 TÀI LIỆU THAM KHẢO [1] Navart and Elmasry, “Foundermental of Database systems”, chapter 19 and chapter 20 [2] Philip A Bernstein, Vassos Hadzilacos, Nathan Goodman (1987) “Concurrency control and Recovery In Database Systems” [3] Raghu Ramakrishnan, Johnnes Gehrke (1987) “Database Management Systems (2nd Ed)” [4] Rasmus Pagh (2007), Lecture 7: Concurrency control, Database Tuning, Spring [5] Kjell Orsborn, DATABASE TECHNOLOGY - 1MB025 Fall 2005 [6] Valentina Tamma, Transaction Management, Connolly & Begg Chapter 19 Third edition [7] http://www.csc.liv.ac.uk/~dirk/Comp332/COMP332-transaction-notes.pdf [8] http://en.wikipedia.org/wiki/ACID [9] http://www.vocw.edu.vn/content/m10677/latest/ [10] Jame Cook University, “Advanced Database Management (CP3020)”, Chapter 20 - Concurrency Control Techniques 16 [...]... giới giao tác được xác định một cách rõ ràng thông qua các câu lệnh Begin Transaction và End Transaction Trong trường hợp này tất cả các thao tác truy cập cơ sở dữ liệu giữa 2 câu lệnh đó được coi như tạo ra một giao tác Một chương trình ứng dụng có thể chứa nhiều hơn một giao tác nếu nó chứa nhiều biên giới giao tác Nếu các thao tác CSDL không cập nhật CSDL mà chỉ lấy thông tin ra thì gọi đó là giao tác. .. chuyến bay, ngày bay và số chỗ được đặt trước như là một tham số Như vậy, có thể sử dụng cùng một chương trình đó để thực hiện nhiều giao tác, mỗi giao tác với từng chuyến bay và số chỗ được đặt khác nhau Với mục đích điều khiển đồng thời, một giao tác là một thực hiện cụ thể của chương trình trên một ngày bay, chuyến bay và số chỗ cụ thể Trong hình 1.2(a) và (b) các giao tác T1 và T2 là các thực hiện... lưu trong các mục dữ liệu X và 13 Y trong cơ sở dư liệu Nếu hai giao tác này chạy đồng thời, có thể dẫn đến các vấn đề sau đây: a Cập nhật bị mất (Lost Update) Vấn đề này xảy ra khi hai giao tác truy cập vào các mục CSDL như nhau có các thao tác xen kẽ nhau theo cách làm cho giá trị của một số mục dữ liệu không chính xác Giả sử rằng các giao tác T1 và T2 được đệ trình gần như cùng tại một thời điểm và. .. được gọi là giao tác chỉ đọc (read only transaction) Chúng ta giải thích các khái niệm xử lý giao tác thông qua một mô hình một cơ sở dữ liệu đơn giản.Về cơ bản, một cơ sở dữ liệu được miêu tả như một tập hợp các file dữ liệu và mỗi bản ghi của file có một số các trường Các thao tác truy cập CSDL cơ bản mà một giao tác có thể có là [1]: Read_item(X): Đọc một mục dữ liệu có tên X trong CSDL vào một biến... liệu trong vùng đệm đó phải được ghi trở lại đĩa trước khi được tái sử dụng [1] Một giao tác bao gồm các thao tác read_item và write_item để truy cập và cập nhật cơ sở dữ liệu Hình 1.2 thể hiện một ví dụ về 2 giao tác đơn giản (a) T1 (b) T2 Read_item(X); Read_item(X); X:=X+N; X:=X+M; Write_item(X); Write_item(X); Read_item(Y); Y:=Y+N; Write_item(Y); Hình 1.2 : Hai giao tác mẫu, (a) Giao tác T1 , (b) Giao. .. được lưu trữ trong mục CSDL có tên X sang chuyến bay khác có số chỗ được lưu trữ trong mục CSDL có tên Y Hình 1.2(b) thể hiện giao tác T2 đơn giản hơn, giao tác này đặt trước M chỗ trên chuyến bay thứ nhất (X) được tham chiếu trong giao tác T 1 Để làm đơn giản ví dụ, ta không đưa vào đây các phần phụ của giao tác như kiểm tra xem nếu một chuyến bay có đủ chỗ sẵn sàng trước khi đặt thêm các chỗ hay không... tạm thời (hoặc Dirty Read) Vấn đề xẩy ra khi một giao tác cập nhật một mục cơ sở dữ liệu và sau đó giao tác thất bại do một lý do nào đấy Mục được cập nhật được giao tác khác truy cập trước khi nó phải được thay đổi trở lại giá trị ban đầu của nó Hình 1.3(b) trình bày một ví dụ trong đó T1 cập nhật mục X và sau đó thất bại trước khi hoàn thành, do đó hệ thống phải thay đổi X trả lại giá trị ban đầu... Read_item(Y); Y:=Y+N; Write_item(Y); Hình 1.2 : Hai giao tác mẫu, (a) Giao tác T1 , (b) Giao tác T2 12 Cơ chế phục hồi và điều khiển đồng thời chủ yếu liên quan các câu lệnh truy cập cơ sở dữ liệu trong một giao tác Các giao tác được nhiều người dùng khác nhau đệ trình có thể thực hiện một cách đồng thời và có thể truy cập và cập nhật các mục cơ sở dữ liệu giống nhau Nếu việc thực hiện đồng thời này không được... các giao tác đồng thời thực hiện theo cách thức không được điều khiển Ta sẽ minh hoạ một số vấn đề này bằng việc tham khảo cơ sở dữ liệu đặt vé máy bay đã được đơn giản hoá, trong đó một bản ghi được lưu trữ cho mỗi chuyến bay Hình 1.2 (a) thể hiện giao tác T 1, giao tác này chuyển N chỗ từ một chuyến bay có số chỗ được lưu trữ trong mục CSDL có tên X sang chuyến bay khác có số chỗ được lưu trữ trong. .. đĩa đã được thay đổi trong vùng đệm bộ nhớ chính được điều khiển bởi bộ phận quản lý phục hồi dữ liệu (recovery manager) của DBMS phối hợp với hệ điều hành cơ sở Nói chung, DBMS sẽ duy trì một số vùng đệm trong bộ nhớ chính để chứa các khối dữ liệu bao gồm các mục cơ sở dữ liệu đang được xử lý Khi tất cả các vùng đệm này đã bị chiếm giữ và có thêm các khối dữ liệu phải được sao chép vào bộ nhớ thì chính

Ngày đăng: 09/11/2016, 16:49

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w