PostgreSQL이란 ?
=> PostgreSQL은 오픈 소스 객체-관계형 데이터베이스 시스템(ORDBMS)으로, Enterprise급 DBMS의 기능과 차세대 DBMS에서나 볼 수 있을 법한 기능들을 제공한다.
DBMS (Database Management System)
- 정의 (Definition) : 응용 프로그램이 요구하는 DB구조, 변경, 제거
- 조작 (Manipulation): 삽입, 갱신, 삭제
- 제어 (Control): DB 접근할 수 있는 사용자 제한 및 성능 관리
관계형 데이터베이스 (Relational Database)
- 통상적으로 RDB라고 함
- 행과 열로 구분하는 2차원 테이블 형태로 구성
- 오라클 DBMS, MS SQL SERVER, MYSQL, PostgreSQL
PostgreSQL 프로세스 구조
클라이언트/서버 모델을 사용한다. 서버는 데이터베이스 파일들을 관리하며, 클라이언트 애플리케이션으로부터 들어오는 연결을 수용하고, 클라이언트를 대신하여 데이터베이스 액션을 수행한다. 서버는 다중 클라이언트 연결을 처리할 수 있는데, 서버는 클라이언트의 연결 요청이 오면 각 커넥션에 대해 새로운 프로세스를 fork한다. 그리고 클라이언트는 기존 서버와의 간섭 없이 새로 생성된 서버 프로세스와 통신하게 된다
< PostgreSQL 특장점 >
- 유연한 객체 생성 : PostgreSQL은 다른 관계형 데이터베이스 시스템과 달리 연산자, 복합 자료형, 집계 함수, 자료형 변환자, 확장 기능 등 다양한 데이터베이스 객체를 사용자가 임의로 만들 수 있는 기능을 제공함으로써 마치 새로운 하나의 프로그래밍 언어처럼 무한한 기능을 손쉽게 구현할 수 있다.
- 상속 : java 또는 C++ 프로그래밍 언어와 같이 테이블을 만들어 그 테이블 상속 기능을 이용해 하위 테이블을 만들 수 있다. 테이블에 저장된 자료는 상위 테이블을 조회하면, 해당 테이블의 하위 테이블에 포함된 모든 자료를 조회할 수 있으며, 하위 테이블을 만들 때, 상위 테이블의 칼럼을 그대로 상속 받으면서, 하위 테이블에만 속하는 칼럼을 추가로 만들 수 있다
- 함수 : 때때로, '저장 프로시저'라고 불리는 SQL문으로 작성된 함수를 서버환경에서 사용할 수 있다. 비록 다른 언어와는 달리 제어문과 반복문을 사용하지는 못하지만, 다른 언어와 결합시킬 수 있다. 일부 언어에서는 심지어 트리거 내부에서 실행시킬 수 있다.
클러스터
- DB최상위 개념
- 스키마(Schema) 개체들의 논리적인 집합
스키마
- 테이블, 뷰, 함수,인덱스 등
- public 스키마(default)
테이블
- 2차원의 표(행과 열)
- Relation
- 개체 식별을 위한 key 존재
<버전 확인>
디폴트 유저: postgres
cmd 에서 확인하는 방법
> psql --version
cmd에서 postgreSQL접속
> psql -U [username]
SQL Shell 명령어
\q : psql을 종료합니다.
\l : 데이터베이스를 조회합니다.
\c : 입력한 데이터베이스로 이동
\e : 외부편집기로 sql 쿼리를 입력
\dt : 현재 데이터베이스에서 테이블을 확인
댓글