Mô -đun này thực hiện kiểu dữ kèo bóng đá euroSEG
để biểu diễn kèo bóng đá euro phân đoạn dòng hoặc khoảng thời gian nổi.SEG
có thể thể hiện sự không chắc chắn trong kèo bóng đá euro điểm cuối khoảng thời gian, làm cho nó đặc biệt hữu ích để thể hiện kèo bóng đá euro phép đo phòng thí nghiệm.
Hình học của kèo bóng đá euro phép đo thường phức tạp hơn so với điểm trong một liên tục số. Một phép đo thường là một phân đoạn của sự liên tục đó với kèo bóng đá euro giới hạn hơi mờ.
Sử dụng thông thường, có vẻ thuận tiện hơn để lưu trữ dữ liệu như kèo bóng đá euro khoảng, thay vì kèo bóng đá euro cặp số. Trong thực tế, nó thậm chí còn hóa ra hiệu quả hơn trong hầu hết kèo bóng đá euro ứng dụng.
Xa hơn dọc theo dòng thông thường, độ mờ của kèo bóng đá euro giới hạn cho thấy rằng việc sử dụng kèo bóng đá euro loại dữ liệu số truyền thống dẫn đến mất thông tin nhất định. Hãy xem xét điều này: Công cụ của bạn đọc 6.50 và bạn nhập bài đọc này vào cơ sở dữ liệu.
test = Chọn 6.50 :: float8 là "pH";
Trong thế giới đo lường, 6,50 không giống với 6.5. Nó đôi khi có thể rất khác nhau.
Kết luận? Thật tuyệt khi có một loại dữ liệu đặc biệt có thể ghi lại kèo bóng đá euro giới hạn của một khoảng thời gian với độ chính xác biến đổi tùy ý.
Kiểm tra điều này:
test = select '6.25 .. 6,50' :: seg là "pH";
Biểu diễn bên ngoài kèo bóng đá euro một khoảng được hình thành bằng cách sử dụng một hoặc hai số điểm nổi được nối bởi toán tử phạm vi (..
hoặc...
). Ngoài ra, nó có thể được chỉ định là kèo bóng đá euro điểm trung tâm cộng với hoặc trừ đi độ lệch.<
, hoặc
~
) cũng có thể được lưu trữ. (Tuy nhiên, kèo bóng đá euro chỉ số chắc chắn bị bỏ qua bởi tất cả kèo bóng đá euro toán tử tích hợp.)Bảng F.27đưa ra một cái nhìn tổng quan về kèo bóng đá euro biểu diễn được phép;Bảng F.28Hiển thị kèo bóng đá euro số ví dụ.
inBảng F.27, x
, y
vàDelta
biểu thị số điểm nổi.x
vàY
, nhưng khôngDelta
, có thể được đi trước bởi kèo bóng đá euro chỉ báo chắc chắn.
Bảng F.27.SEG
Biểu diễn bên ngoài
|
giá trị đơn (khoảng không độ dài) |
|
Khoảng từx đếny |
|
Khoảng từx - Delta đếnx +Delta |
|
Khoảng mở với giới hạn dướix |
.. |
Khoảng mở với giới hạn trênx |
Bảng F.28. Ví dụ về hợp lệSEG
INPUT
5.0 |
Tạo kèo bóng đá euro phân đoạn độ dài không (kèo bóng đá euro điểm, nếu bạn muốn) |
~ 5.0 |
Tạo kèo bóng đá euro phân đoạn và bản ghi độ dài bằng không~ Trong dữ kèo bóng đá euro.~ bị bỏ qua bởiSEG Hoạt động, nhưng được bảo tồn dưới dạng bình luận. |
<5.0 |
Tạo kèo bóng đá euro điểm ở 5.0.< bị bỏ qua nhưng được bảo tồn dưới dạng bình luận. |
5.0 |
Tạo kèo bóng đá euro điểm ở 5.0. bị bỏ qua nhưng được bảo tồn dưới dạng bình luận. |
5 (+-) 0,3 |
Tạo kèo bóng đá euro khoảng4.7 .. 5.3 . Lưu ý rằng(+-) Ký hiệu không được bảo quản. |
50 .. |
mọi thứ lớn hơn hoặc bằng 50 |
.. 0 |
Mọi thứ đều nhỏ hơn hoặc bằng 0 |
1.5E-2 .. 2E-2 |
Tạo khoảng thời gian0.015 .. 0.02 |
1 ... 2 |
giống như1...2 hoặc1 .. 2 hoặc1..2 (khoảng trống xung quanh toán tử phạm vi bị bỏ qua) |
Vì...
Toán tử được sử dụng rộng rãi trong kèo bóng đá euro nguồn dữ liệu, nó được cho phép như một cách viết thay thế của..
toán tử. Thật không may, điều này tạo ra sự mơ hồ phân tích cú pháp: Không rõ kèo bóng đá euro giới hạn trên trong0...23
có nghĩa là23
hoặc0.23
. Điều này được giải quyết bằng cách yêu cầu ít nhất một chữ số trước điểm thập phân trong tất cả kèo bóng đá euro số trongSEG
Đầu vào.
như kèo bóng đá euro kiểm tra tỉnh táo,SEG
Từ chối kèo bóng đá euro khoảng thời gian với giới hạn dưới lớn hơn phần trên, ví dụ5 .. 2
.
SEG
kèo bóng đá euro giá trị được lưu trữ bên trong dưới dạng kèo bóng đá euro cặp số điểm nổi 32 bit. Điều này có nghĩa là kèo bóng đá euro số có hơn 7 chữ số quan trọng sẽ bị cắt.
Số có 7 hoặc ít hơn kèo bóng đá euro chữ số đáng kể giữ lại độ chính xác ban đầu của chúng. Đó là, nếu truy vấn của bạn trả về 0,00, bạn sẽ chắc chắn rằng kèo bóng đá euro số 0 không phải là kèo bóng đá euro tạo tác của định dạng: chúng phản ánh độ chính xác của dữ liệu gốc.
TheSEG
Mô -đun bao gồm kèo bóng đá euro lớp toán tử chỉ mục GIST choSEG
Giá trị. kèo bóng đá euro toán tử được hỗ trợ bởi lớp toán tử GIST được hiển thị trongBảng F.29.
Bảng F.29. kèo bóng đá euro toán tử seg gist
Nhà điều hành | Mô tả |
---|---|
[A, B] << [C, D] |
[A, B] hoàn toàn ở bên trái kèo bóng đá euro [C, D]. Nghĩa là, [a, b] << [c, d] là đúng nếu b <c và sai nếu không. |
[A, B] [C, D] |
[A, B] hoàn toàn ở bên phải kèo bóng đá euro [C, D]. Nghĩa là, [a, b] [c, d] là đúng nếu a d và sai. |
[a, b] & <[c, d] |
sự chồng chéo hoặc còn lại kèo bóng đá euro - điều này có thể được đọc tốt hơn làHồiKhông mở rộng sang phải. Nó đúng khi b <= d. |
[A, B] & [C, D] |
chồng chéo hoặc đúng kèo bóng đá euro - điều này có thể được đọc tốt hơn làHồiKhông mở rộng sang trái kèo bóng đá euroxông. Nó đúng khi a = c. |
[a, b] = [c, d] |
Giống như - kèo bóng đá euro phân đoạn [a, b] và [c, d] giống hệt nhau, nghĩa là, a = c và b = d. |
[a, b] && [c, d] |
kèo bóng đá euro phân đoạn [a, b] và [c, d] chồng chéo. |
[A, B] @ [C, D] |
Phân đoạn [a, b] chứa phân đoạn [c, d], nghĩa là a <= c và b = d. |
[a, b] <@ [c, d] |
Phân đoạn [a, b] được chứa trong [c, d], nghĩa là a = c và b <= d. |
(trước PostgreSQL 8.2, toán tử ngăn chặn@
và<@
được gọi tương ứng@
và~
. Những cái tên này vẫn có sẵn, nhưng không được dùng và cuối cùng sẽ được nghỉ hưu.
kèo bóng đá euro toán tử B-cây tiêu chuẩn cũng được cung cấp, ví dụ
Nhà điều hành | Mô tả |
---|---|
[a, b] <[c, d] |
ít hơn |
[A, B] [C, D] |
lớn hơn |
Những người vận hành này không có nhiều ý nghĩa cho bất kỳ mục đích thực tế nào mà là sắp xếp. kèo bóng đá euro toán tử này trước tiên so sánh (a) với (c) và nếu chúng bằng nhau, so sánh (b) với (d).
Để biết ví dụ về việc sử dụng, hãy xem bài kiểm tra hồi quySQL/SEG.SQL
.
Cơ chế chuyển đổi(+-)
phạm vi thông thường không hoàn toàn chính xác trong việc xác định số lượng chữ số quan trọng cho kèo bóng đá euro ranh giới. Ví dụ: nó thêm một chữ số bổ sung vào ranh giới dưới nếu khoảng thời gian kết quả bao gồm sức mạnh của mười:
postgres = select '10 (+-) 1 ':: seg as seg;
Hiệu suất của chỉ số r-cây có thể phụ thuộc phần lớn vào thứ tự ban đầu của kèo bóng đá euro giá trị đầu vào. Có thể rất hữu ích để sắp xếp bảng đầu vào trênSEG
Cột; Xem tập lệnhSắp xếp-Segments.pl
Ví dụ.
Tác giả gốc: Gene Selkov, Jr.<selkovjr@mcs.anl.gov
, Phòng khoa học và toán học, Phòng thí nghiệm quốc gia Argonne.
Lời cảm ơn kèo bóng đá euro tôi chủ yếu dành cho Giáo sư Joe Hellerstein (https: //dsf.berkeley.edu/jmh/) để làm sáng tỏ ý chính kèo bóng đá euro ý chính (http: //gist.cs.berkeley.edu/). Tôi cũng biết ơn tất cả kèo bóng đá euro nhà phát triển Postgres, hiện tại và quá khứ, vì đã cho phép bản thân tạo ra thế giới của riêng tôi và sống không bị xáo trộn trong đó.