Phiên bản được hỗ trợ:16 / 15 / 14 / 13
Phiên bản không được hỗ trợ:12 / 11
5721_5792
Bạn có thể muốn xem cùng một trang chohiện tạiPhiên bản hoặc một trong kèo bóng đá c1 phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

63.2. Hành vi của kèo bóng đá c1 lớp toán tử B-cây

như trongBảng 37.2, Lớp kèo bóng đá c1 tử Btree phải cung cấp năm kèo bóng đá c1 tử so sánh,<, <=, =, =. Người ta có thể mong đợi rằng<cũng nên là một phần kèo bóng đá c1 lớp toán tử, nhưng không phải vậy, vì nó gần như sẽ không bao giờ hữu ích khi sử dụng<Điều khoản trong tìm kiếm chỉ mục. (Đối với một số mục đích, người lập kế hoạch xử lý<7903_7984=Liên kết tiêu cực kèo bóng đá c1 người vận hành, thay vì từpg_amop.)

Khi một số loại dữ liệu chia sẻ ngữ nghĩa phân loại gần giống nhau, kèo bóng đá c1 lớp vận hành của họ có thể được nhóm thành một họ vận hành. Làm như vậy là thuận lợi vì nó cho phép người lập kế hoạch thực hiện kèo bóng đá c1 khoản khấu trừ về so sánh loại chéo. Mỗi lớp toán tử trong họ phải chứa kèo bóng đá c1 toán tử loại đơn (và kèo bóng đá c1 chức năng hỗ trợ liên quan) cho kiểu dữ liệu đầu vào của nó, trong khi kèo bóng đá c1 toán tử so sánh loại chéo và kèo bóng đá c1 chức năng hỗ trợ làLoose8601_8815

Có một số giả định cơ bản rằng một gia đình vận hành Btree phải thỏa mãn:

  • AN=Nhà điều hành phải là mối quan hệ tương đương; nghĩa là, đối với tất cả kèo bóng đá c1 giá trị không nullA, B, Ckèo bóng đá c1 loại dữ liệu:

    • A = Alà đúng (Luật phản xạ)

    • nếuA = B, sau đóB = A(Luật đối xứng)

    • nếuA = BB = C, sau đóA = C(Luật chuyển tiếp)

  • A<Nhà điều hành phải là mối quan hệ đặt hàng mạnh mẽ; nghĩa là, đối với tất cả kèo bóng đá c1 giá trị không nullA, B, C:

    • A < Alà sai (Luật không phản ứng)

    • nếuA < BB < C, sau đóA < C(Luật chuyển tiếp)

  • Hơn nữa, đặt hàng là tổng số; nghĩa là, đối với tất cả kèo bóng đá c1 giá trị không nullA, B:

    • chính xác là một trongA < B, A = BB < Alà đúng (Luật trichotomy)

    (Luật trichotomy biện minh cho định nghĩa kèo bóng đá c1 hàm hỗ trợ so sánh, tất nhiên.)

Ba kèo bóng đá c1 tử khác được xác định theo nghĩa=<Theo cách rõ ràng và phải hành động nhất quán với họ.

Đối với gia đình người vận hành hỗ trợ nhiều loại dữ liệu, kèo bóng đá c1 luật trên phải được giữ khiA, B, Cđược lấy từ bất kỳ loại dữ liệu nào trong gia đình. kèo bóng đá c1 luật chuyển tiếp là khó nhất để đảm bảo, vì trong kèo bóng đá c1 tình huống loại chéo, chúng đại diện cho kèo bóng đá c1 tuyên bố rằng hành vi của hai hoặc ba toán tử khác nhau là nhất quán. Ví dụ, nó sẽ không hoạt động để đặtfloat8SốVào cùng một họ kèo bóng đá c1 tử, ít nhất là không có ngữ nghĩa hiện tạiSốGiá trị được chuyển đổi thànhfloat8để so sánh với Afloat8. Vì độ chính xác hạn chế kèo bóng đá c1float8, Điều này có nghĩa là có sự khác biệtSốkèo bóng đá c1 giá trị sẽ so sánh bằng cùng mộtfloat8Giá trị, và do đó luật chuyển tiếp sẽ thất bại.

13931_14144

Cần phải khá rõ ràng lý do tại sao một chỉ mục Btree yêu cầu kèo bóng đá c1 luật này phải giữ trong một loại dữ liệu duy nhất: không có chúng, không có lệnh nào để sắp xếp kèo bóng đá c1 khóa. Ngoài ra, kèo bóng đá c1 tìm kiếm chỉ mục bằng cách sử dụng khóa so sánh của một loại dữ liệu khác nhau yêu cầu so sánh để hành xử một cách khéo léo trên hai loại dữ liệu. kèo bóng đá c1 tiện ích mở rộng đến ba hoặc nhiều loại dữ liệu trong một gia đình không được yêu cầu nghiêm ngặt bởi chính cơ chế chỉ số Btree, nhưng người lập kế hoạch dựa vào chúng cho mục đích tối ưu hóa.