Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3
Tài cách đọc kèo bóng đá này dành cho phiên bản không được hỗ trợ của PostgreSQL.
9099_9155hiện tạiPhiên bản hoặc một trong cách đọc kèo bóng đá phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

F.39. SEG - Kiểu dữ liệu cho cách đọc kèo bóng đá phân đoạn dòng hoặc khoảng thời gian nổi#

Mô -đun này thực hiện kiểu dữ cách đọc kèo bóng đáSEGđể biểu diễn cách đọc kèo bóng đá phân đoạn dòng hoặc khoảng thời gian nổi.SEG11555_11680

Mô -đun này được coi làTrustedHồi, nghĩa là, nó có thể được cài đặt bởi những người không phải là người siêu giám sát cóTạoĐặc quyền trên cơ sở dữ cách đọc kèo bóng đá hiện tại.

F.39.1. Đặt vấn đề#

Hình học của cách đọc kèo bóng đá 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 cách đọc kèo bóng đá giới hạn hơi mờ. cách đọc kèo bóng đá phép đo xuất hiện dưới dạng khoảng vì độ không đảm bảo và tính ngẫu nhiên, cũng như vì giá trị được đo có thể tự nhiên là một khoảng thời gian cho thấy một số điều kiện, chẳng hạn như phạm vi nhiệt độ của sự ổn định của protein.

Sử dụng thông thường, có vẻ thuận tiện hơn để lưu trữ dữ liệu như cách đọc kèo bóng đá khoảng, thay vì cách đọc kèo bóng đá 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 cách đọc kèo bóng đá ứng dụng.

Xa hơn dọc theo dòng thông thường, độ mờ của cách đọc kèo bóng đá giới hạn cho thấy rằng việc sử dụng cách đọc kèo bóng đá 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. Bạn nhận được gì khi lấy nó? Đồng hồ:

test = Chọn 6.50 :: float8 là "pH";
 PH
---
6.5
(1 hàng)

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. cách đọc kèo bóng đá nhà thí nghiệm thường viết ra (và xuất bản) cách đọc kèo bóng đá chữ số mà họ tin tưởng. 6.50 thực sự là một khoảng mờ trong khoảng thời gian lớn hơn và thậm chí mờ hơn, 6.5, với cách đọc kèo bóng đá điểm trung tâm của chúng (có thể) là tính năng phổ biến duy nhất mà họ chia sẻ. Chúng tôi chắc chắn không muốn cách đọc kèo bóng đá mục dữ liệu khác nhau như vậy xuất hiện giống 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 cách đọc kèo bóng đá giới hạn của một khoảng thời gian với độ chính xác biến đổi tùy ý. Biến theo nghĩa là mỗi phần tử dữ liệu ghi lại độ chính xác của chính nó.

Kiểm tra điều này:

test = Chọn '6.25 .. 6,50' :: Seg là "pH";
          PH
------------
6.25 .. 6,50
(1 hàng)

F.39.2. Cú pháp#

Biểu diễn bên ngoài của một cách đọc kèo bó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 (..14356_14362...). Ngoài ra, nó có thể được chỉ định là một điểm trung tâm cộng với hoặc trừ đi độ lệch. cách đọc kèo bóng đá chỉ số chắc chắn tùy chọn (<, hoặc~) cũng có thể được lưu trữ. (Tuy nhiên, cách đọc kèo bóng đá chỉ số chắc chắn bị bỏ qua bởi tất cả cách đọc kèo bóng đá toán tử tích hợp.)Bảng F.29đưa ra một cái nhìn tổng quan về cách đọc kèo bóng đá biểu diễn được phép;Bảng F.30Hiển thị một số ví dụ.

inBảng F.29, x, yDeltabiểu thị số điểm nổi.xy, nhưng khôngDelta, có thể được đi trước bởi một chỉ báo chắc chắn.

Bảng F.29.SEGĐại diện bên ngoài

X giá trị đơn (cách đọc kèo bóng đá không độ dài)
X..Y cách đọc kèo bóng đá từxđếny
x(+-)Delta cách đọc kèo bóng đá từx - Deltađếnx+Delta
x.. cách đọc kèo bóng đá mở với giới hạn dướix
..x cách đọc kèo bóng đá mở với giới hạn trênx

Bảng F.30. Ví dụ về hợp lệSEGINPUT

5.0 Tạo một phân đoạn độ dài không (một điểm, nếu bạn muốn)
~ 5.0 Tạo một phân đoạn và bản ghi độ dài bằng không~Trong dữ cách đọc kèo bóng đá.~bị bỏ qua bởiSEGHoạt động, nhưng được bảo tồn dưới dạng bình luận.
<5.0 Tạo một đ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 một đ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 cách đọc kèo bóng đá4.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 một cách đọc kèo bóng đá0.015 .. 0.02
1 ... 2 giống như1...2hoặc1 .. 2hoặc1..2(cách đọc kèo bóng đá trống xung quanh toán tử phạm vi bị bỏ qua)

...19900_19992..Nhà điều hành. 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õ cách đọc kèo bóng đá giới hạn trên trong0...23có nghĩa là23hoặ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ả cách đọc kèo bóng đá số trongSEGĐầu vào.

như một kiểm tra tỉnh táo,SEGTừ chối cách đọc kèo bóng đá 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.

F.39.3. Độ chính xác#

SEGGiá trị được lưu trữ bên trong dưới dạng cách đọc kèo bóng đá cặp số điểm nổi 32 bit. Điều này có nghĩa là cách đọc kèo bóng đá số có hơn 7 chữ số quan trọng sẽ bị cắt.

Số có 7 hoặc ít hơn cách đọc kèo bóng đá 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 cách đọc kèo bóng đá số 0 không phải là 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. Số lượng số 0 hàng đầu không ảnh hưởng đến độ chính xác: giá trị 0,0067 được coi là chỉ có 2 chữ số quan trọng.

F.39.4. Cách sử dụng#

TheSEGMô -đun bao gồm một lớp toán tử chỉ mục GIST choSEGGiá trị. cách đọc kèo bóng đá toán tử được hỗ trợ bởi lớp toán tử GIST được hiển thị trongBảng F.31.

Bảng F.31. cách đọc kèo bóng đá toán tử seg gist

Nhà điều hành

Mô tả

SEG << SEGBoolean

là lần đầu tiênSEGHoàn toàn ở bên trái của thứ hai? [a, b] << [c, d] là đúng nếu b <c.

SEG SEGBoolean

là lần đầu tiênSEGHoàn toàn ở bên phải của thứ hai? [a, b] [c, d] là đúng nếu a d.

SEG &< SEGBoolean

đầu tiênSEGKhông mở rộng sang phải của thứ hai? [a, b] & <[c, d] là đúng nếu b <= d.

SEG & SEGBoolean

đầu tiênSEGKhông mở rộng sang bên trái của thứ hai? [a, b] & [c, d] là đúng nếu a = c.

SEG = SEG24427_24436

là haiSEGS bằng?

SEG && SEG24788_24797

làm haiSEGS chồng chéo?

SEG @ SEGBoolean

đầu tiênSEGchứa thứ hai?

SEG <@ SEGBoolean

là lần đầu tiênSEGchứa trong lần thứ hai?


Ngoài cách đọc kèo bóng đá toán tử trên, cách đọc kèo bóng đá toán tử so sánh thông thường được hiển thị trongBảng 9.1Có sẵn cho loạiSEG26033_26237

F.39.5. Ghi chú#

Để 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 cách đọc kèo bóng đá 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;
      Seg
---------
9.0 .. 11 - Nên là: 9 .. 11

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 cách đọc kèo bóng đá giá trị đầu vào. Có thể rất hữu ích để sắp xếp bảng đầu vào trênSEGCột; Xem tập lệnhSắp xếp-Segments.plVí dụ.

F.39.6. Tín dụng#

Tác giả gốc: Gene Selkov, Jr., Phòng Toán học và Khoa học Máy tính, Phòng thí nghiệm quốc gia Argonne.

Lời cảm ơn của 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 của ý chính (http: //gist.cs.berkeley.edu/). Tôi cũng biết ơn tất cả cách đọc kèo bóng đá 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 đó. Và tôi muốn thừa nhận lòng biết ơn của mình đến Argonne Lab và Bộ Năng lượng Hoa Kỳ cho những năm hỗ trợ trung thành với nghiên cứu cơ sở dữ liệu của tôi.