PostgreSQL은 이미 공간 데이터 유형, 연산자 및 인덱싱을 지원합니다.
PostGIS는 PostgreSQL의 확장으로 존재해야했던 것을 정확히 제공합니까?
왜 우리 모두 PostgreSQL의 공간 기능을 사용하지 않습니까?
PostgreSQL은 이미 공간 데이터 유형, 연산자 및 인덱싱을 지원합니다.
PostGIS는 PostgreSQL의 확장으로 존재해야했던 것을 정확히 제공합니까?
왜 우리 모두 PostgreSQL의 공간 기능을 사용하지 않습니까?
답변:
2001 년 초에 우주를 다시 감고 PostGIS의 발명가들이 미래를 보게 할뿐만 아니라 PgSQL의 PSC가 미래를 보게한다면 PostGIS는 PgSQL의 일련의 패치 일 것입니다. 그러나 최소한 핵심 패치로 시작한 경우 가장 먼저 해결해야 할 것은 다음과 같습니다.
그리고 핵심 PgSQL은 "물론, 이해하기 어려운 기존 시맨틱이있는 영역은 없으며, 그와 같이 호환되지 않는 변경은 거꾸로 할 수 없습니다"라고 말했을 것입니다.
비 핵심 개발자로서 PostGIS는 몇 년 동안 월간 및 6 개월간 릴리스를 중단 할 수 있었으며 PgSQL 코어는 연간 릴리스 및 더 긴 릴리스와 함께 배포되었습니다. 또한 프로젝트에 커밋 권한이 있기 때문에 언제든지 원하는 기능을 추가 할 수 있었지만 PgSQL에서 커밋 권한을 얻는 데 시간이 오래 걸렸습니다.
PostGIS가 PgSQL 코어가 바라보고 "자신에게 추가 기능으로 사용하는 것이 좋을 것"이라고 말한 충분한 외부 가치를 입증 할 때까지 이미 다른 표준과 스타일의 코드가 너무 많았습니다. PgSQL (호환되지 않는 라이센스 하에서는 언급하지 않음)은 병합 아이디어가 실제로 가능하지 않다는 것입니다.
대신 PostGIS는 PgSQL이 모듈 식 및 확장 성을 유지하는 데 도움이되는 Really Large Complex Extension의 정식 사례가되었습니다. "이것은 PostGIS와 같은 효과에 어떤 영향을 미치나요?"는 핵심 PgSQL이 일부 변경을 평가할 때 자주 묻는 질문입니다. 이것은 또한 PostGIS가 핵심의 일부만큼 좋은 것은 아니지만 충분히 좋습니다.
PgSQL 코어가보기 싫어하는 긴 종속성 목록, 일반적으로 더 낮은 코드 일관성 및 개선 및 지속적으로 절망했을 API 청결도와 같은 다른 이유가 있습니다. 임신 중에도 PostGIS는 PgSQL이 한 입에 삼키기에는 너무 큰 모발이었습니다.
PostgreSQL은 공간 데이터 유형을 지원하지 않습니다. 기하학적 유형을 지원합니다 . 이것들은 어떤 것에는 완벽하지만 실제 좌표계와는 완전히 다릅니다. 기본 유형
색인 질문 은 FAQ에 있습니다.
PostgreSQL R-Tree 인덱스가 지원되지 않는 이유는 무엇입니까?
초기 버전의 PostGIS는 PostgreSQL R-Tree 인덱스를 사용했습니다. 그러나 PostgreSQL R-Trees는 버전 0.6 이후 완전히 삭제되었으며 공간 인덱싱에는 R-Tree-over-GiST 체계가 제공됩니다.
테스트 결과 네이티브 R-Tree 및 GiST의 검색 속도가 비슷한 것으로 나타났습니다. 기본 PostgreSQL R-Tree에는 GIS 기능과 함께 사용하기에 바람직하지 않은 두 가지 제한 사항이 있습니다 (이러한 제한은 일반적인 R-Tree 개념이 아니라 현재 PostgreSQL 기본 R-Tree 구현에 따른다는 점에 유의하십시오).
PostgreSQL의 R- 트리 인덱스는 크기가 8K보다 큰 기능을 처리 할 수 없습니다. GiST 인덱스는 피쳐 자체에 경계 상자를 대체하는 "손실"트릭을 사용합니다.
PostgreSQL의 R- 트리 인덱스는 "널 안전 (null safe)"이 아니므로 null 형상을 포함하는 형상 열에 인덱스를 작성하면 실패합니다. [GiST 인덱스는 null 안전합니다]
PostGIS 는 PostgreSQL 객체 관계형 데이터베이스를 위한 공간 데이터베이스 익스텐더입니다 . 위치 쿼리를 SQL로 실행할 수 있도록 지리적 개체에 대한 지원을 추가합니다.
SELECT superhero.name FROM city, superhero WHERE ST_Contains(city.geom, superhero.geom) AND city.name = 'Gotham';
기본 위치 인식 외에도 PostGIS는 Oracle Locator / Spatial 및 SQL Server와 같은 다른 경쟁 공간 데이터베이스에서 거의 발견되지 않는 많은 기능을 제공합니다. 자세한 내용은 PostGIS 기능 목록 을 참조하십시오.
PostGIS 기능 목록은 이러한 기능도 확장합니다.
PostGIS는 추가 유형 (형상, 지리, 래스터 및 기타)을 PostgreSQL 데이터베이스에 추가합니다. 또한 이러한 공간 유형에 적용되는 기능, 연산자 및 색인 향상 기능을 추가합니다. 이러한 추가 기능, 연산자, 인덱스 바인딩 및 유형은 핵심 PostgreSQL DBMS의 성능을 향상시켜 빠르고 기능이 풍부하며 강력한 공간 데이터베이스 관리 시스템입니다.
기능 목록
PostGIS 2+ 시리즈는 다음을 제공합니다.
- 세밀한 래스터 처리를위한 SQL 래스터 맵 대수 기능을 사용하여 스 플라이 싱, 다이 싱, 모핑, 재 분류 및 수집 / 결합을위한 벡터 및 래스터 데이터에 대한 처리 및 분석 기능
- 벡터 및 래스터 데이터 모두에 대한 공간 재 투영 SQL 호출 가능 함수 명령 줄 및 GUI 패키지 도구를 통해 ESRI shapefile 벡터 데이터 가져 오기 / 내보내기 지원 및 기타 타사 오픈 소스 도구를 통해 더 많은 형식 지원
GeoTiff, NetCDF, PNG, JPG 등 여러 표준 형식에서 래스터 데이터를 가져 오기위한 패키지 명령 줄
SQL을 사용하여 KML, GML, GeoJSON, GeoHash 및 WKT와 같은 표준 텍스트 형식에 대한 벡터 데이터 렌더링 및 가져 오기 기능 지원 SQL을 사용하여 다양한 표준 형식 GeoTIFF, PNG, JPG, NetCDF의 래스터 데이터 렌더링
기하학적 영역 별 픽셀 값의 압출, 영역 별 통계 실행, 지오메트리에 의한 래스터 클리핑 및 래스터 벡터화를위한 완벽한 래스터 / 벡터 SQL 호출 가능 함수 3D 객체 지원, 공간 인덱스 및 함수 / 미국 인구 조사 호랑이 데이터 활용
또한이 게시물에서 이미 언급 한 포인트 / 파트에. PostGIS 웹 사이트에 언급 된대로 추가 합니다
PostGIS는 C에 있기 때문에 C와 C ++의 다른 라이브러리를 사용할 수 있으며 자유로이 사용합니다. PostGIS는 다음에 따라 다릅니다.