이 모듈은 데이터 유형을 구현합니다무지개 토토
라인 세그먼트 또는 부동 소수점 간격을 나타냅니다.무지개 토토
간격 종료 점에서 불확실성을 나타낼 수 있으므로 실험실 측정을 나타내는 데 특히 유용합니다.
이 모듈이 고려됩니다“신뢰할 수있는”Create
현재 데이터베이스의 권한.
측정의 기하학은 일반적으로 숫자 연속체의 지점보다 더 복잡합니다. 측정은 일반적으로 다소 퍼지 한 한계를 가진 해당 연속체의 세그먼트입니다. 측정은 불확실성과 임의성으로 인해 간격으로 나옵니다. 측정되는 값이 자연스럽게 단백질의 안정성 온도 범위와 같은 일부 조건을 나타내는 간격이 될 수 있기 때문입니다..
상식을 사용하면 숫자 쌍이 아닌 간격으로 데이터를 간격으로 저장하는 것이 더 편리합니다. 실제로, 그것은 대부분의 응용 프로그램에서 더 효율적입니다.
상식의 선을 따라 한계의 퍼지 성은 기존 숫자 데이터 유형의 사용이 특정 정보 손실로 이어진다는 것을 시사합니다. 이것을 고려하십시오 : 계측기는 6.50을 읽고이 판독 값을 데이터베이스에 입력합니다. 당신이 그것을 가져올 때 당신은 무엇을 얻습니까? 보다:
test = select 6.50 :: float8 as "ph"; ph --- 6.5 (1 행)
측정 세계에서 6.50은 6.5와 다릅니다. 때로는 비판적으로 다를 수 있습니다. 실험자들은 일반적으로 그들이 신뢰하는 숫자를 적어 (및 게시)합니다. 6.50은 실제로 더 크고 퍼지는 간격 (6.5) 내에 포함 된 퍼지 간격이며, 중심 지점은 그들이 공유하는 유일한 공통 기능 일 것입니다. 우리는 분명히 그런 다른 데이터 항목이 동일하게 나타나기를 원하지 않습니다.
결론? 임의로 가변적 인 정밀도로 간격의 한계를 기록 할 수있는 특수한 데이터 유형을 갖는 것이 좋습니다. 각 데이터 요소가 고유 한 정밀도를 기록한다는 의미에서 변수.
확인 :
test = 선택 '6.25 .. 6.50':: 무지개 토토 as "ph"; ph ------------ 6.25 .. 6.50 (1 행)
간격의 외부 표현은 범위 연산자가 연결하는 하나 또는 2 개의 부동 소수점 번호를 사용하여 형성됩니다 (..
또는...
). 대안 적으로, 그것은 센터 포인트 플러스 또는 마이너스 편차로 지정할 수 있습니다. 선택적 확실성 지표 (<
, 또는
~
)도 저장할 수 있습니다. (그러나 모든 내장 운영자가 확실한 지표를 무시합니다.)테이블 F.26허용 된 표현에 대한 개요를 제공합니다.테이블 F.27몇 가지 예를 보여줍니다.
in테이블 F.26, x
, y
및델타
부동 소수점 번호 표시.x
andy
하지만델타
, 확실성 지표가 앞에있을 수 있습니다.
표 F.26. 무지개 토토
외부 표현
|
단일 값 (제로 길이 간격) |
|
간격x toy |
|
간격x - 델타 tox + 델타 |
|
하한이있는 개방 간격x |
.. |
상한이있는 개방 간격x |
표 F.27. 유효한 예무지개 토토
입력
5.0 |
제로 길이 세그먼트를 만듭니다. |
~5.0 |
제로 길이 세그먼트 및 레코드 생성~ 데이터에서.~ 에 의해 무시됩니다무지개 토토 운영이지만 의견으로 보존되어 있습니다. |
<5.0 |
5.0에 포인트를 만듭니다.< 무시되지만 의견으로 보존됩니다. |
5.0 |
5.0에 포인트를 만듭니다. 무시되지만 의견으로 보존됩니다. |
5(+-)0.3 |
간격을 만듭니다4.7 .. 5.3 .(+-) 표기법은 보존되지 않습니다. |
50 .. |
50보다 큰 모든 것 |
.. 0 |
0보다 작거나 같은 모든 것 |
1.5E-2 .. 2E-2 |
간격을 만듭니다0.015 .. 0.02 |
1 ... 2 |
1...2 또는1 .. 2 또는1..2 (범위 연산자 주변의 공간은 무시됩니다) |
왜냐하면...
운영자는 데이터 소스에 널리 사용되며 대체 철자로 허용됩니다..
운영자. 불행히도, 이것은 구문 분석 모호성을 만듭니다. 상한이 |0...23
23
또는0.23
. 이것은 모든 숫자의 소수점 이전에 적어도 하나의 숫자를 요구하여 해결됩니다.무지개 토토
입력.
정신 점검으로무지개 토토
예를 들어 하한이 상단보다 큰 간격을 거부합니다.5 .. 2
.
무지개 토토
값은 내부적으로 32 비트 플로팅 포인트 번호 쌍으로 저장됩니다. 이것은 7 개 이상의 중요한 숫자가있는 숫자가 잘릴 것임을 의미합니다.
7 숫자 이하의 숫자는 원래 정밀도를 유지합니다. 즉, 쿼리가 0.00을 반환하면 후행 제로가 서식의 아티팩트가 아닌지 확인합니다. 원래 데이터의 정밀도를 반영합니다. 선행 제로의 수는 정밀도에 영향을 미치지 않습니다. 0.0067 값은 단지 2 자리 만있는 것으로 간주됩니다.
the무지개 토토
모듈에 대한 GIST 인덱스 연산자 클래스가 포함되어 있습니다무지개 토토
값. GIST 운영자 클래스에서 지원하는 연산자가에 표시됩니다.테이블 F.28.
표 F.28. 무지개 토토 Gist 운영자
운영자 설명 |
---|
첫 번째 |
첫 번째입니다 |
첫 번째 |
첫 번째 |
두 사람입니다 |
두 가지 |
첫 번째 |
첫 번째입니다 |
위의 연산자 외에도에 표시된 일반적인 비교 연산자표 9.1유형에 사용할 수 있습니다무지개 토토
. 이 연산자들은 먼저 (a)와 (c)를 비교하고, 이것이 같으면 (b)와 (d)를 비교하십시오. 이로 인해 대부분의 경우 합리적으로 좋은 정렬이 발생 하여이 유형에서 주문을 사용하려는 경우 유용합니다.
사용의 예는 회귀 테스트를 참조하십시오SQL/무지개 토토.SQL
.
변환하는 메커니즘(+-)
정기적 인 범위는 경계에 대한 유의 한 숫자 수를 결정하는 데 완전히 정확하지 않습니다. 예를 들어, 결과 간격에 10의 전력이 포함 된 경우 하한에 여분의 숫자를 추가합니다.
postgres = select '10 (+-) 1 ':: 무지개 토토 as 무지개 토토; 세그 ------- 9.0 .. 11-해야 할 것 : 9 .. 11
R- 트리 지수의 성능은 입력 값의 초기 순서에 크게 의존 할 수 있습니다. 입력 테이블을 정렬하는 것이 매우 유용 할 수 있습니다무지개 토토
열; 스크립트보기Sort-무지개 토토ments.pl
예를 들어.
원래 저자 : Gene Selkov, Jr.<selkovjr@mcs.anl.gov
, Argonne National Laboratory의 수학 및 컴퓨터 과학 부서.
Joe Hellerstein 교수에게 주로 감사합니다 (https : //dsf.berkeley.edu/jmh/) 요점의 요점을 설명하기 위해 (http : //gist.cs.berkeley.edu/). 또한 현재와 과거의 모든 Postgres 개발자에게 내 자신의 세계를 만들고 방해받지 않은 살 수있게 해주셔서 감사합니다. 그리고 저는 데이터베이스 연구에 대한 수년간의 충실한 지원을 위해 Argonne Lab과 미국 에너지 부에 대한 감사를 인정하고 싶습니다.
27107_27333이 양식문서 문제를보고하려면