1. 1026_PostgreSQL 1일차
- 망고시스템 박주용강사님
- 이론보다는 실무적 내용 위주로
- PostgreSQL이란?
- 거의 모든 데이터 타입을 제공하고 있다.
- Document, JSON/JSONB, XML 등의 비정형 데이터 타입도 제공한다.
- PostGIS를 설치해야 포인트, 라인, 폴리곤 형식을 지원한다.
- 내부구조
- 관계형 sql
- "GIS in SQL" : answer spatial questions in the database
- PostGIS를 지원하는 GIS 프로그램
- 이중에 Shp2pgsql, GeoServer, QGIS를 가장 많이 사용 중
- 상업용 소프트웨어 중에서는 ESRI ArcGIS Server
- PostgreSQL 설치하기
- 튜토리얼, 연습 페이지 : https://www.enterprisedb.com/postgresql-tutorial-resources-training?cid=437
PostgreSQL Tutorials, Resources and Training | EDB
PostgreSQL High availability - ha, Backup and recovery, Automatic failover, PostgreSQL Extensions, and resources on being successful with Postgres.
www.enterprisedb.com
1. 서버
2. 데이터베이스 관리 툴
3. 스택빌더를 통해 다른 툴도 설치 가능
4. 커맨드창에서 직접 타이핑을 하고 sql문을 관리할 수 있는 툴
- pgAdmin4 실행하기, 설치시 입력했던 패스워드 입력 필요
- servers > postgreSQL > Databases > postgres에서 마우스 우클릭 - Query Tool 클릭
- 쿼리문 입력하고 실행, 성공적으로 된거라면 설치가 잘 된 것
- 새 server 생성
- 데이터베이스 마우스 우클릭 - create - database
- schemas - public - table확인
- extenstion 설치 쿼리 작성
create extension postgis;
- refresh 하면 table 밑으로 생긴것을 확인할 수 있다.
- 정상적으로 설치됐는지 확인 가능
* 좌표계
- Bessel 1841 타원체
- WGS 84 (미 국방 타원체계)
- PROJCS : 투영을 한 좌표계
- GEOGCS : 투영x, 지구의 생김새
- DATUM
- TOWGS84 : 7개 또는 10개의 파라미터, 각각 알고리즘에 의해 변환, 오차의 최소화
- PRIMEM : 타원체의 원점
- AXIS : 축
- longitude : 경도 (동~서)
- latitude : 위도 (적도를 기준으로 남~북)
- 299. : 편평도
- postGIS bundle 실행
- view connectio details 클릭
데이터베이스 연결
- add file 클릭 - nyc 폴더 파일 open
- 26918 로 srid 변경 - import
- 데이터베이스에 korea 서버 추가
!! 데이터베이스 korea에서 마우스우클릭 - query tool 에 extension 실행
- bundle import/export manager 에서 korea database로 로그인하고 seoul 파일 추가
- options에서 utf-8 을 cp949 또는 euc-kr로 바꾸고
srid는 5174 로 변경 후 import
- 서버 refresh 하면 table에 생성된 파일들을 볼 수 있다.
- 래스터 데이터 생성과 로딩하기
- 커맨드창에서 raster2pgsql 경로로 이동해서 입력
- query tool 에 raster extension 추가
create extension postgis_raster;
- 커맨드창에 dem30파일 경로를 포함한 명령어 입력
!! 경로에 숫자가 있었더니 안됐어서 경로를 다시 바꿔서 시도함
raster2pgsql -s 5181 -I -C -M C:\lx\postgresql_data\seoul_raster\dem30.tif -F -t 30x30 public.dem | psql -U postgres -d korea -p 5432
명령어 실행이 잘 되고 dem 폴더가 생성됨
- QGIS 실행하기
- 탐색기 - postGIS 마우스 우클릭 - 새 연결
- 로그인
- 확인을 누르면 확인할 수 있음
- shadedrelief.tif 파일 띄우기
- 속성정보 확인해보기
- 실무에서는 래스터 파일 자체로 서비스하는 경우가 많지
이렇게 데이터베이스에 올려서 하는 경우는 많지 않다.
- select문 입력 - 실행 - 콘솔창에 뜨는 항목 끝부분에 눈 아이콘 클릭 - geometry viewer 생김
- 속성정보로 행정구역 포인트로 나타냄, 뷰 생성
CREATE OR REPLACE VIEW v_admin_emd_point AS SELECT gid, ST_Centroid(geom) as the_geom, sgg_nm, emd_cd, emd_nm, pop2008, pop_den FROM admin_emd WHERE sgg_nm = '종로구';
- 데이터 관리
CREATE TABLE clip_road_link AS SELECT ST_Intersection(r.the_geom, a.the_geom) as the_geom, ST_Length(r.the_geom) as new_length, a.sgg_cd as sgg_cd, a.sgg_nm as sgg_nm, r.road_name as road_name, r.link_id as link_id FROM road_link2 as r, admin_sgg as a WHERE a.sgg_nm = '종로구' AND ST_Intersects(r.the_geom, a.the_geom);
- 1번보다 2번방법이 더 좋다.
buffer는 효율이 떨어짐