PostgreSQL

1. 1026_PostgreSQL 1일차

55yudi 2021. 10. 26. 20:40

- 망고시스템 박주용강사님

- 이론보다는 실무적 내용 위주로

 

 

- 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는 효율이 떨어짐