Các nhóm cột

Một phần của tài liệu Cơ sở dữ liệu Oracle (Trang 56 - 58)

VIII. giải quyết xung đột trong Oracle

3.Các nhóm cột

Nhóm cột liên kết các cột trong bảng thành một cột logic đơn. Một nhóm cột có thể bao gồm một cột đơn, tập các cột, hoặc toàn bộ các cột trong bảng. Mỗi cột, tuy nhiên, chỉ có thể thuộc về một nhóm cột. Ngời sử dụng có thể thiết kế một phơng pháp giải quyết xung đột cho các cột của một nhóm cột.

Các nhóm cột vô hình:

Bất kỳ một cột không thuộc nhóm cột nào đợc tự động ấn định vào một nhóm cột vô hình cho phát hiện xung đột. Một nhóm cột vô hình không trông

thấy đợc từ ngời dùng, và không thể thiết kế phơng pháp giải quyết xung đột tới các cột trong nhóm cột vô hình.

Thiết kế một phơng pháp giải quyết xung đột:

Có các nhóm cột cho phép thiết kế các phơng pháp khác nhau để giải quyết xung đột cho các kiểu dữ liệu khác nhau. Ví dụ, dữ liệu số thờng kèm theo phơng pháp giải quyết số học, và dữ liệu ký tự thờng kèm theo phơng pháp giải quyết nhãn thời gian.

Sự hội tụ dữ liệu đối với toàn vẹn dữ liệu:

Oracle đánh giá từng nhóm cột một cách riêng rẽ, một vài phần của một hàng có thể đợc cập nhật sử dụng dữ liệu từ vị trí gốc, khi các phần khác có thể duy trì các giá trị của dữ liệu tại vị trí đích. Khi sử dụng nhiều nhóm cột, một cơ chế giải quyết xung đột có thể hiệu quả trong sự hội tụ dữ liệu (toàn bộ các vị trí có cùng một giá trị cho một hàng đã cho) không cần thiết kết quả trong toàn vẹn dữ liệu (dữ liệu hội tụ trên một giá trị thích hợp). Cho ví dụ, nếu cột zipcode sử dụng phơng pháp giải quyết nhãn thời gian trong khi cột city sử dụng phơng pháp giải quyết vị trí u tiên, toàn bộ các vị trí có thể hội tụ trên một zipcode phù hợp với city.

Phát hiện xung đột cập nhật trong một nhóm cột:

Khi khảo sát một hàng nếu một xung đột cập nhật đã xảy ra, sao bản sử dụng thuật toán sau:

+ Bắt đầu với nhóm cột đầu tiên, khảo sát từng trờng để xác định nếu nó đã thay đổi và nếu có một xung đột giữa các giá trị mới, cũ, hiện thời.

+ Nếu không có xung đột xảy ra, tiếp tục với nhóm cột tiếp theo. Nếu một xung đột xảy ra, gọi một thủ tục giải quyết xung đột với ấn định thấp nhất dãy số cho nhóm cột này.

+ Nếu thủ tục giải quyết thành công xung đột, nắm giữa giá trị thích hợp cho các cột còn để treo sự xác định trạng thái.

+ Nếu thủ tục không giải quyết đợc các xung đột, sao bản tiếp tục với thủ tục tiếp theo trong thứ tự u tiên cho đến khi xung đột đợc giải quyết hoặc không còn thủ tục nào sẵn sàng.

+ Sau khi đánh giá toàn bộ các nhóm cột (bao gồm cả nhóm cột vô hình) và giải quyết thành công các lỗi, sao bản đối xứng lu trữ giá trị mới cho các cột.

+ Nếu sao bản không có khả năng giải quyết xung đột cho một nhóm cột nó ghi một lỗi vào DefError view và không thay đổi hàng địa phơng.

Một phần của tài liệu Cơ sở dữ liệu Oracle (Trang 56 - 58)