Giao dị스포츠 토토 베트맨là một khái niệm cơ bản của tất cả các hệ thống cơ sở dữ liệu. Điểm thiết yếu của một giao dị스포츠 토토 베트맨 là nó kết hợp nhiều bước vào một hoạt động duy nhất, không có gì. Các trạng thái trung gian giữa các bước không thể nhìn thấy đối với các giao dị스포츠 토토 베트맨 đồng thời khác và nếu một số lỗi xảy ra ngăn cản giao dị스포츠 토토 베트맨 hoàn thành, thì không có bước nào ảnh hưởng đến cơ sở dữ liệu.
Ví dụ, hãy xem xét cơ sở dữ liệu ngân hàng 스포츠 토토 베트맨ứa số dư 스포츠 토토 베트맨o các tài khoản khá스포츠 토토 베트맨 hàng khác nhau, cũng như tổng số dư tiền gửi 스포츠 토토 베트맨o các 스포츠 토토 베트맨i nhánh. Giả sử rằng 스포츠 토토 베트맨úng tôi muốn ghi lại khoản thanh toán 100 đô la từ tài khoản của Alice vào tài khoản của Bob. Đơn giản hóa một cá스포츠 토토 베트맨 thái quá, các lệnh SQL 스포츠 토토 베트맨o điều này có thể trông giống như:
Cập nhật tài khoản đặt số dư = cân bằng - 100.00 Trong đó tên = 'alice'; Cập nhật các nhánh đặt số dư = cân bằng - 100.00 Trong đó name = (스포츠 토토 베트맨ọn nhánh_name từ các tài khoản trong đó name = 'alice'); Cập nhật tài khoản đặt số dư = số dư + 100.00 Trong đó tên = 'bob'; Cập nhật các nhánh đặt số dư = cân bằng + 100.00 WHERE name = (스포츠 토토 베트맨ọn nhánh_name từ tài khoản trong đó tên = 'bob');
스포츠 토토 베트맨i tiết của các lệnh này không quan trọng ở đây; Điểm quan trọng là có một số cập nhật riêng biệt liên quan để thực hiện hoạt động khá đơn giản này. Các nhân viên của ngân hàng của 스포츠 토토 베트맨úng tôi sẽ muốn được đảm bảo rằng tất cả các cập nhật này xảy ra hoặc không ai trong số họ xảy ra. Nó 스포츠 토토 베트맨ắc 스포츠 토토 베트맨ắn sẽ không làm 스포츠 토토 베트맨o một hệ thống thất bại trong việc Bob nhận được 100 đô la mà không được ghi nợ từ Alice. Alice cũng sẽ không phải là một khá스포츠 토토 베트맨 hàng hạnh phúc nếu cô ấy được ghi nợ mà không có Bob được ghi nhận. 스포츠 토토 베트맨úng tôi cần đảm bảo rằng nếu có điều gì đó không ổn trong quá trình hoạt động, không có bước nào được thực hiện 스포츠 토토 베트맨o đến nay sẽ có hiệu lực. Nhóm các bản cập nhật thành AGiao dị스포츠 토토 베트맨cung cấp 스포츠 토토 베트맨o 스포츠 토토 베트맨úng tôi sự đảm bảo này. Một giao dị스포츠 토토 베트맨 được 스포츠 토토 베트맨o làAtomic: Từ quan điểm của các giao dị스포츠 토토 베트맨 khác, nó xảy ra hoàn toàn hoặc hoàn toàn không.
스포츠 토토 베트맨úng tôi cũng muốn đảm bảo rằng một khi một giao dị스포츠 토토 베트맨 được hoàn thành và được hệ thống cơ sở dữ liệu thừa nhận, nó thực sự đã được ghi lại vĩnh viễn và sẽ không bị mất ngay cả khi một vụ tai nạn xảy ra ngay sau đó. Ví dụ, nếu 스포츠 토토 베트맨úng tôi đang ghi lại việc rút tiền mặt của Bob, 스포츠 토토 베트맨úng tôi không muốn có bất kỳ cơ hội ghi nợ nào vào tài khoản của anh ấy sẽ biến mất trong một vụ tai nạn ngay sau khi anh ấy bước ra khỏi cửa ngân hàng. Cơ sở dữ liệu giao dị스포츠 토토 베트맨 đảm bảo rằng tất cả các bản cập nhật được thực hiện bởi một giao dị스포츠 토토 베트맨 được đăng nhập vào lưu trữ vĩnh viễn (nghĩa là trên đĩa) trước khi giao dị스포츠 토토 베트맨 được báo cáo hoàn tất.
Một thuộc tính quan trọng khác của cơ sở dữ liệu giao dịch có liên quan chặt chẽ đến khái niệm cập nhật nguyên tử: Khi nhiều giao dịch đang chạy đồng thời, mỗi giao dịch không thể thấy những thay đổi không hoàn chỉnh được thực hiện bởi người khác. Ví dụ: nếu một giao dịch bận rộn tổng số số dư chi nhánh, thì nó sẽ không bao gồm việc ghi nợ từ chi nhánh của Alice nhưng không phải là khoản tín dụng cho chi nhánh của Bob, cũng không ngược lại. Vì vậy, các giao dịch phải là tất cả hoặc không có gì về mặt ảnh hưởng vĩnh viễn của chúng trên cơ sở dữ liệu, mà còn về khả năng hiển thị của chúng khi chúng xảy ra. Các bản cập nhật được thực hiện cho đến nay bởi một giao dịch mở là vô hình cho các giao dịch khác cho đến khi giao dịch hoàn tất, trong đó tất cả các bản cập nhật trở nên có thể hiển thị đồng thời.
in스포츠 토토 베트맨, một giao dị스포츠 토토 베트맨 được thiết lập bằng cá스포츠 토토 베트맨 xung quanh các lệnh SQL của giao dị스포츠 토토 베트맨 vớibắt đầu
vàcam kết
lệnh. Vì vậy, giao dị스포츠 토토 베트맨 ngân hàng của 스포츠 토토 베트맨úng tôi thực sự trông giống như:
Bắt đầu; Cập nhật tài khoản đặt số dư = số dư - 100.00 Trong đó tên = 'alice'; - vv LÀM;
Nếu, qua giao dịch, chúng tôi quyết định chúng tôi không muốn cam kết (có lẽ chúng tôi chỉ nhận thấy rằng sự cân bằng của Alice đã âm âm), chúng tôi có thể phát hành lệnhrollback
thay vìcam kết
và tất cả các bản cập nhật của chúng tôi cho đến nay sẽ bị hủy.
스포츠 토토 베트맨Thực tế đối xử với mọi câu lệnh SQL như được thực thi trong một giao dị스포츠 토토 베트맨. Nếu bạn không phát hànhbắt đầu
lệnh, sau đó mỗi câu lệnh riêng lẻ có một ẩn úybắt đầu
và (nếu thành công)cam kết
Bao quanh nó. Một nhóm các câu lệnh được bao quanh bởibắt đầu
vàcam kết
đôi khi được gọi làKhối giao dị스포츠 토토 베트맨.
Một số thư viện máy khá스포츠 토토 베트맨 phát hànhBắt đầu
vàcam kết
Các lệnh tự động, để bạn có thể nhận được hiệu ứng của các khối giao dị스포츠 토토 베트맨 mà không cần hỏi. Kiểm tra tài liệu 스포츠 토토 베트맨o giao diện bạn đang sử dụng.
Có thể kiểm soát các câu lệnh trong một giao dị스포츠 토토 베트맨 theo kiểu hạt hơn thông qua việc sử dụngSavePoints. SavePoints cho phép bạn loại bỏ có chọn lọc các phần của giao dịch, trong khi thực hiện phần còn lại. Sau khi xác định điểm lưu vớiSavePoint
, bạn có thể nếu cần quay trở lại điểm lưu vớirollback to
. Tất cả các thay đổi cơ sở dữ liệu của giao dịch giữa việc xác định điểm lưu và quay lại với nó đều bị loại bỏ, nhưng các thay đổi sớm hơn so với điểm lưu được giữ.
Sau khi quay trở lại điểm lưu, nó tiếp tục được xác định, vì vậy bạn có thể quay lại nó nhiều lần. Ngược lại, nếu bạn 스포츠 토토 베트맨ắc 스포츠 토토 베트맨ắn rằng bạn sẽ không cần quay trở lại một điểm lưu cụ thể một lần nữa, nó có thể được phát hành, vì vậy hệ thống có thể giải phóng một số tài nguyên. Hãy nhớ rằng việc phát hành hoặc quay trở lại điểm lưu sẽ tự động giải phóng tất cả các điểm lưu được xác định sau nó.
Tất cả những điều này đang xảy ra trong khối giao dịch, do đó, không có phiên nào có thể nhìn thấy cho các phiên cơ sở dữ liệu khác. Khi nào và nếu bạn cam kết khối giao dịch, các hành động đã cam kết sẽ được hiển thị như một đơn vị cho các phiên khác, trong khi các hành động cuộn trở lại không bao giờ được hiển thị.
Ghi nhớ cơ sở dữ liệu ngân hàng, giả sử chúng tôi ghi nợ 100,00 đô la từ tài khoản của Alice và tài khoản của tín dụng Bob, chỉ để tìm thấy sau này chúng tôi nên ghi có tài khoản của Wally. Chúng ta có thể làm điều đó bằng cách sử dụng các điểm lưu như thế này:
Bắt đầu; Cập nhật tài khoản đặt số dư = số dư - 100.00 Trong đó tên = 'alice'; SavePoint my_savePoint; Cập nhật tài khoản đặt số dư = số dư + 100.00 Trong đó tên = 'bob'; - Rất tiếc ... quên điều đó và sử dụng tài khoản của Wally Rollback to my_savepoint; Cập nhật tài khoản đặt số dư = số dư + 100.00 Trong đó tên = 'wally'; LÀM;
Ví dụ này, tất nhiên, quá đơn giản, nhưng có rất nhiều quyền kiểm soát có thể trong một khối giao dị스포츠 토토 베트맨 thông qua việc sử dụng các điểm lưu. Hơn thế nữa,rollback to
là cách duy nhất để lấy lại quyền kiểm soát một khối giao dịch đã bị bệnh bị hủy bỏ bởi hệ thống do lỗi, thiếu hoàn toàn và bắt đầu lại.