PostgreSQL(+ PostGIS)
소개
PostgreSQL : PostgreSQL은 객체-관계형 데이터베이스 관리 시스템(ORDBMS)의 일종이다. BSD허가권으로 배포되며 오픈소스 개발자 및 관련 회사들이 개발에 참여하고 있다.
PostGIS :오픈소스인PostgreSQL DBMS기반에 지리적 객체(geographic object)의 지원을 더한GIS용DBMS.위성기하적 구조, GIS데이터를 편집하고 볼 수 있는 인터페이스와,웹기반 접근 도구를 서비스한다.
설치
※‘Ⅱ개발 환경 설정’참조
데이터 업로드(Shp파일)
데이터 베이스 생성
'PostgreSQL 9.6 > Database > postgis'가 연결 상태로 되어 있는 경우‘postgis'우클릭 후 연결을 해제한다.
PostgreSQL 9.6 .. > Database'우 클릭 후‘New Database‘를 클릭하면Database생성창이 나타난다.
Database생성창의'General'탭을 선택하고 항목을 입력한다.
![]() |
Database : Database이름 입력- ‘test_db’Owner : Database관리자 선택- ‘postgres’ |
---|---|
Database생성창의'Definition'탭을 선택하고 항목을 입력한다.
| | Encoding : Character Set선택- ‘UTF-8’Template : Database템플릿 선택- ‘postgis_23_sample‘Tablespace :테이블스페이스 선택- ‘pg_default’Collation :문자데이터 정렬 방식 선택- ‘Korean, Korea.949’Character type :문자 타입 선택- ‘Korean, Korea.949‘ |
| :--- | :--- |
입력을 완료한 뒤'OK'버튼을 클릭하면 다음과 같이Database가 생성된 것을 확인 할 수 있다.
데이터 업로드(Plugin사용)
지정된 경로로 이동하여shp2pgsql-gui.exe파일을 실행한다.<예시 경로:C:\Program Files\PostgreSQL\9.6\bin\postgisgui>
Shape file Import창이 나타나면View connection details버튼을 눌러 해당 항목들을 입력한다.
※기본적인 데이터는 입력되어 있으므로'Username', 'Password', 'Database'항목 정도만 입력한다.
Shape파일Import창에서 하단에'Options'버튼을 클릭하고Shape파일에 한글이 포함 될 경우,encoding을‘UTF-8'을'EUC-KR‘로 변경, Load data using COPY rather than INSERT를 해재하고'OK'버튼을 클릭한다.
※해당 플러그인을 통하여'UTF-8'로 데이터를Import하는 경우 오류 발생
Import란에SRID란을 더블클릭하여‘4326’으로 변경한 뒤‘Import’버튼을 클릭한다.
Shape File :업로드할Shp파일을 선택
Database :업로드할Database이름(예: test_db)
SRID :명시할 좌표 체계(예: 4326 ->※주: EPSG4326아님)
관리창의‘[database name] > Schemas > public > Tables'에서 테이블이 추가된 것을 확인 할 수 있다.
데이터 업로드(Command사용)
플러그인 방법 사용시 정상적인 데이터임에도 업로드시 오류가 발생하거나 다수의 데이터를 업로드할 경우Command창을 열어 명령어를 직접 입력한다.
먼저 윈도우 환경변수 중‘Path’변수에PostgreSQL의bin폴더 경로를 추가한다. (예: path = ‘C:\Program Files (x86)\PostgreSQL\9.6\bin\;’추가)
명령어를 입력하여 데이터를 업로드 한다.
명령어 형식
shp2pgsql–s <SRID> -W <Encode> -I–c <Shapefile> \ | psql–d <DBName> -U <UserName> |
---|---|
Database :업로드할Database이름(예: test_db)
SRID :좌표 체계(예: 4326 ->※주: EPSG4326아님)
Encode :문자 인코딩 설정(예: EUC-KR)
Shapefile :업로드할Shape파일 경로
| :명령어 파이프라인
DBName :대상 데이터베이스명
UserName :대상 유저명
명령어 사용 예제
shp2pgsql -s 4326 -W EUC-KR -I–c ".\test_db\sigugun_tm.shp" \ | psql -d test_db -U postgres |
---|---|
공간테이블 생성(SQL사용)
PostGIS “AddGeometryColumn"기능을 사용하여 해당테이블에 공간행을 추가할 수 있다.
AddGeometryColumn( ‘schema_name’,'table_name','colummn_name','srid’,'type','dimension’); |
---|
※현재 스키마를 사용할 때는‘schema_name’는 생략할 수 있다.
SQL을 사용하기위해서 상단 메뉴중Tools를 클릭한다.
아래와 같은 화면을 확인할 수 있다.
테이블을 생성하기 위해SQL문을 입력한다.
입력 후 실행 버튼이나F5를 누른다.
데이터 베이스 하위 테이블 목록에서parks테이블이 생성된 것을 확인할 수 있다.
테이블에Geometry값을 넣어주기 위해INSERT문을 사용한다.
테이블에서 값을 확인한다.