데이터베이스
일정한 규칙, 규약을 통해 구조화되어 저장되는 데이터 모음
- DBMS : 데이터베이스를 제어, 관리하는 통합 시스템
데이터베이스 모델링
주어진 개념에서 논리적인 데이터 모델을 구성하는 작업
- 데이터 모델링 순서 : 요구사항파악->개념적 데이터 모델링->논리적 데이터 모델링->물리적 데이터 모델링
- 요구사항파악 : 데이터가 어떤 형태와 목적으로 사용될지를 파악
- 개념적 데이터 모델링 : 어떤 개념들이 존재하는지, 어떤 상호작용을 하는 지 파악하고 ER 다이어그램을 산출한다.
- 논리적 데이터 모델링 : ER 다이어그램에 개념적으로 구체화한 모델을 관계형 데이터베이스에 맞게 구축한다.
- 물리적 데이터 모델링 : 논리 데이터 모델이 컴퓨터 어디에 어떻게 저장될 것인지 고려해 데이터베이스를 설계, 구현한다.
기본 요소
엔터티
사람,장소,물건,사건,개념 등 여러 개의 속성을 지닌 명사
- 약한 엔터티와 강한 엔터티
- 혼자서 존재하지 못하고 종속적이라면 약한 엔터티
- 독립적으로 존재하며 키 애트리뷰트를 사용해 고유하게 엔터티들을 인식할 수 있다면 강한 엔터티
릴레이션
- 데이터베이스에서 정보를 구분해 저장하는 기본 단위. 동일한 구조로 이루어진 튜플의 집합
- 관계형 데이터베이스의 테이블에 해당한다.
속성
릴레이션에서 관리하는 구체적이고 고유한 이름을 갖는 정보
도메인
릴레이션에 포함된 각 속성들이 가질 수 있는 값의 집합
관계
데이터베이스 내 여러 개의 테이블 간의 관계가 정의되어있다.
- 1:1 : 한 엔터티가 다른 한 엔터티와 서로 단 하나의 관계를 가짐
- 사용자-이메일
- 1:N : 한 엔터티가 관계를 맞은 엔터티 쪽의 여러 객체와 관계를 가짐
- N:M : 양쪽 엔터티 모두에서 1:N 관계를 가짐
키
- 기본키(primary key) : 유일성과 최소성을 만족한다.
- 외래키(foreign key) : 다른 테이블의 기본키를 그대로 참조해 개쳬와의 관계를 식별한다.
- 후보키(candidate key) : 기본키 후보, 역시 유일성과 최소성을 만족한다.
- 슈퍼키(super key) : 각 레코드를 식별할 수 있는 유일성을 갖춘 키
- 대체키(alterate key) : 후보키가 복수일 경우 기본키가 되지못한 후보키.
트랜잭션
데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위, 여러 개의 쿼리들을 하나로 묶는 단위
- ACID(원자성,일관성,독립성,지속성)
PostgreSQL
- 객체 관계형 데이터베이스 시스템(ORDBMS : 객체 지향 DBMS와 관계형 DBMS를 기반으로 객체가 중심이 되는 DBMS)
-
RDBMS의 기본적인 기능인 트랜잭션과 ACID를 지원한다.
- VACUUM : 디스트 조각이 차지하는 영역을 회수할 수 있는 장치
구조
- 클라이언트-서버구조
- 인터페이스 라이브러리를 통해 서버 연결을 요청
- postmaster 프로세스가 서버와 연결 중계
- 클라이언트는 할당된 서버와 연결을 통해 질의 수행
특징
- 유연한 객체 생성 : 다른 관계형 데이터베이스 시스템과 달리, 연산자, 복합 자료형, 집계 함수, 자료형 변환자, 확장 기능 등 다양한 데이터베이스 객체를 사용자가 임의로 만들 수 있는 기능을 제공한다.
- 상속 : java 또는 C++ 프로그래밍 언어와 같이 테이블을 만들어 그 테이블 상속 기능을 이용해 하위 테이블을 만들 수 있다.
- 함수 : ‘저장 프로시저’라고 불리는 SQL문으로 작성된 함수를 서버환경에서 사용할 수 있다.