[postgreSQL] postgreSQL 기본 개념 / 구조 - 설치 및 DB, table 구성

Hyo Kyun Lee·2021년 8월 31일
1

postgreSQL

목록 보기
1/6

PostgreSQL은 한국에서 제공하는 적절한 자료가 없는 관계로, 학습하면서 본 벨로그에 정리하고 향후 복습을 위해 활용하도록 한다.

1. 설치

PostgreSQL설치사이트에 접속해서 컴퓨터 환경에 알맞게 설치한다.

PG admin / agent 설치사이트를 통해서도 웹 사이트 환경에서 PostgreSQL DB를 다룰 수 있는 소프트웨어를(PGadmin) 설치할 수 있긴 하지만, 웬만하면 PostgreSQL 설치하면서 같이 한꺼번에 설치할 수 있다.

추가적인 확장프로그램(stack builder)는 설치하지 않아도 된다.

설치 후 pgAdmin4 프로그램을 실행한다.

데이터 흐름이 나타난다면 postgreSQL이 잘 설치된 것이다.

1-1. PG admin

postgreSQL을 UI 인터페이스화 하여 간편하게 DB를 관리할 수 있는 프로그램.

기본적으로 server side에서 수행하는 동적 웹페이지의 트랜잭션이나 DB session 등을 관리할 수 있는 인터페이스로, 백엔드 개발자를 위해 존재하는 프로그램이다.

동적 웹페이지가 PHP를 기반으로 실행되기 때문에, index.html과 같은 정적 웹페이지 파일이 필요하다.

※ PG admin과 유사한 기능을 제공하는 프로그램으로, PHP by admin(MySQL에서 release한 PHP 소프트웨어)가 있다.

1-2. (참조) PHP

Hypertext preprocessor, HTML 전처리기

글자 그대로 HTML 처리를 위한 전단계의 언어로, C언어 기반으로 만들어져 서버 측에서 실행하는 server side script 언어이다.

PHP기반으로 작성된 코드를 HTML 코드에 추가하면, 동적 web server가 이를 인식하고 해석하여 동적인 웹페이지를 구축하는 방식이다.

로그인과 같이 정적으로 있는 페이지가 아닌, 동적으로 상황에 따라 update되는 페이지를 생각하면 된다.

Server side

PHP의 핵심은 server side이다.

server 측에서 웹 페이지를 동적으로 구성하기 위해, 사용자 id나 비밀번호와 같은 변수를 입력하였을 때 동적 웹페이지가 이를(=PHP code) 인식하여 상태를 update 한다.

1-3. MVCC(Mutliverson concurrency control)

다중 버전 동시성 제어, 데이터베이스 관리 시스템이 사용하는 동시성 제어 방식.

동시성 제어 방식은 적용 전/후를 보면 한번에 이해할 수 있다.

  • 두명의 사용자가 한 데이터베이스에 접속하여, 한 명은 수정하고 있고 한 명은 이를 읽고 있다.
  • 이때 동시성 제어가 적용되지 못한다면, 읽고 있는 사용자에게는 중간에 데이터가 바뀌는 등 무결성이 보장되지 못하거나 사용자 간 데이터 버전관리가 질서없이 섞이게 된다.

따라서 데이터베이스 관리체계는 같은 데이터베이스를 동시적으로 여러 버전으로 나누어 관리한다.

  • DBMS는 데이터 업데이트가 필요할 경우, 새로운 데이터를 기존 데이터에 덮어쓰지 않고 완전히 새로운 데이터 버전을 만들어 관리한다(스냅샷 관리방식).
  • 즉 여러 버전이 저장되는 방식으로 관리하며, read는 오래된 스냅샷 버전에 접근하고 write는 최근의 스냅샷 버전에 접근한다.

1-4. schema

schema의 사전적 정의는 data를 저장하는 구조이고,
쉽게 말하면 data들이 저장된 table을 모여있는 곳이다.

2. postgreSQL 구조

Database / Roles / Tablespaces

기본적인 구성은 Database, Roles, Tablespaces로 3가지로 되어있다.

이때 Database는 default로 postgres 테이블이 생성되어 있다.
MySQL처럼 data는 table의 field 영역에 저장된다.

databases에 저장된 table 정보는 tablespaces에도 같이 저장된다.

3. PostgreSQL 기본 - Database, table 생성

Database 생성

postgreSQL 프로그램 내부적으로 Database를 생성할 수 있다.

위에서 생성한 Database를 통해 Database에 담길 table들을 구성할 수 있다.
※schema 자체가 table들을 저장하는 장소이다.

이때 table의 Column(entity 속성, data 분류 항목)을 구성할 수 있으며, UI인터페이스답게 매우 직관적이고 쉬운 구성으로 되어있다.

※ Data type을 serial로 설정하면 auto increment할 수 있다. 이러한 unique인자를 foreign key로 설정하여 다른 table과 연동할 수 있도록 설정한다.

Table 항목을 통해 생성한 table이 어떤 column으로 구성되어있는지 확인할 수 있다.

4. 참조링크

postgreSQL 설치
https://sparkdia.tistory.com/66

postgreSQL - MVCC
https://dog-developers.tistory.com/123?category=896103

about PHP
http://tcpschool.com/php/php_intro_intro

PG admin for PostgreSQL
https://www.pgadmin.org/download/

postgreSQL 공식 사이트
https://www.enterprisedb.com/postgresql-tutorial-resources-training?cid=437

0개의 댓글