LOCK VÀ VIỆC XỬ Lí ĐỒNG THỜ

Một phần của tài liệu Đồ án tốt nghiệp Hệ thống Quản lý đào tạo, sát hạch và cấp giấy phép lái xe (Trang 63 - 64)

1. HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT SQL SERVER 7

1.4. LOCK VÀ VIỆC XỬ Lí ĐỒNG THỜ

1.4.1.Lock :

Microsoft SQL Server đảm bảo sự toàn vẹn của giao tỏc và sự nhất quỏn dữ liệu. Locking ngăn cản user đọc dữ liệu đang được thay đổi bởi những user khỏc, và ngăn cản nhiều user thay đổi cựng một dữ liệu trong cựng thời gian. Nếu locking khụng được sử dụng thỡ dữ liệu trong một database trở nờn khụng đỳng và cỏc truy vấn tương phản với dữ liệu sẽ cho kết quả khụng đỳng như mong đợi

Mặc dự Microsoft SQL Server đó thực thi locking một cỏch tự động, user cú thể thiết kế ứng dụng hiệu quả hơn.

1.4.2.Những vấn đề của việc xử lý đồng thời :

Mất dữ liệu cập nhật : điều phỏt sinh do hai hay nhiều giao tỏc chọn cựng một dũng và cập nhật dữ liệu dựa vào giỏ trị được chọn ban đầu. Bởi vỡ mỗi một giao tỏc khụng cú ý thức về những giao tỏc khỏc, giỏ trị được update cuối cựng sẽ viết đố giỏ trị update của những giao dịch khỏc. Vỡ vậy dữ liệu bị mất.

+ Đọc dữ liệu chưa commit (dirty data) : vớ dụ Giao tỏc T1 thay đổi một dũng dữ liệu. Giao tỏc T2 đọc sự thay đổi trước khi giao tỏc T1 commit. Nếu giao tỏc T1 roll back sự thay đổi thỡ giao tỏc T2 đọc một dũng dữ liệu được xem như khụng tồn tại + Thao tỏc đọc khụng thể lặp lại (Unrepeatable read) : nếu một giao tỏc đọc cựng một dữ liệu hơn một lần và giữa hai lần đọc đú cú sự thay đổi dữ liệu bởi một giao tỏc tỏch biệt khỏc. Bởi việc đọc dữ liệu nhiều lần trong cựng một giao tỏc mà cú sự thay đổi khỏc tỏc động vào do một giao tỏc khỏc gõy ra sự mõu thuẫn

+ Vấn đề phantom read : khi một giao tỏc cố gắng select một dũng mà nú khụng tồn tại và giao tỏc thứ hai insert dũng đú trước khi giao tỏc thứ nhất kết thỳc.

Sinh viờn Huỳnh Văn Ánh Trang 63

nhất, sự xuất hiện và biến mất gõy ra mõu thuẫn.

1.4.3.Cỏc mức độ tỏch biệt :

Khi lock được sử dụng như là một cụng cụ điều khiển đồng thời thỡ nú sẽ giải quyết vấn đề đồng thời. Điều này cho phộp tất cả cỏc giao tỏc chạy đồng thời tỏch biệt với nhau, mặc dự cú nhiều giao tỏc chạy trờn cựng một SQL Server tại một thời điểm Tớnh tuần tự (Serializability) là một tớnh chất mà cơ sở dữ liệu đạt được khi một số giao tỏc được thực hiện đồng thời thỡ kết quả phải giống như khi chỳng thực hiện tuần tự theo một số thứ tự nào đú. Nếu một hệ thống cung cấp điều khiển đồng thời, người lập trỡnh cú thể viết cỏc giao tỏc như là khi chỳng được thực hiện một mỡnh

Mức độ mà một giao tỏc chấp nhận sự khụng nhất quỏn dữ liệu được nhúm thành cỏc mức độ khỏc nhau. Điều này sẽ làm giảm khi một giao tỏc phải được tỏch biệt với những giao tỏc khỏc. Mức độ tỏch biệt thấp thỡ làm tăng tớnh đồng thời nhưng phải trả giỏ cho sự đỳng đắn dữ liệu cao. Ngược lại, đối với mức độ tỏch biệt cao hơn thỡ đảm bảo dữ liệu đỳng nhưng khụng hiệu quả về việc đồng thời. Mức độ tỏch biệt trong ứng dụng xỏc định cỏch thức lock trong SQL Server.

Một phần của tài liệu Đồ án tốt nghiệp Hệ thống Quản lý đào tạo, sát hạch và cấp giấy phép lái xe (Trang 63 - 64)

Tải bản đầy đủ (PDF)

(78 trang)