데이터베이스에서 무결성과 제약 조건은 반드시 지켜져야 하는 약속이다.
무결성
개체 무결성
- 기본 키(primary key)로 선택된 열은 고유해야 하며 null 값을 가질 수 없음
참조 무결성
- 기본 키와 외래 키의 관계 외래 키가 있는 테이블의 경우에는 기본 키와 외래 키 간의 관계가 항상 유지됨을 보장
참조하는 외래 키가 존재하면 행은 삭제될 수 없고 기본 키도 변경될 수 없음
영역 무결성
- 데이터 형태, 범위, 기본값, 유일성에 관한 제한 주어진 속성 값은 그 속성이 정의된 도메인에 속한 값이어야 함
비즈니스 무결성
- 사용자의 업무 규칙에 따른 비즈니스적인 제약 조건
제약조건
- 정해 놓은 규칙에 맞는 데이터만 입력받고 규칙에 어긋나는 데이터는 거부하여 데이터 무결성을 지키는 방법
기본 키 제약 조건
- UNIQUE + NOT NULL을 만족해야함 테이블을 대표하여 각 행을 유일하게 식별하는 값이어야 함
외래 키 제약조건
- 열 값이 부모 테이블의 참조 열의 값을 반드시 참조해야 함 참조된 열은 UNIQUE하거나 기본 키 이다.
유일 키
- 중복된 값을 허용하지 않음 유일한 값으로 존재해야 함(null 값 허용 가능)
NOT NULL
- null 값을 허용하지 않음 값 반드시 입력
CHECK
- 범위나 조건 등 지정된 값만 허용
트랜잭션
- 삽입, 갱신, 삭제와 관련된 논리적인 작업
- commit, lock, rollback
트랜잭션 특징(ACID)
원자성
- 트랜잭션의 처리가 완전히 끝나지 않았을 경우에는 전혀 이루어지지 않은 것과 같아야 한다
일관성
- 트랜잭션의 실행이 성공적으로 완료되면 데이터베이스는 모순 없이 일관성이 보존된 상태여야 한다.
고립성
- 어떤 트랜잭션도 다른 트랜잭션의 부분적 실행 결과를 볼 수 없다.
지속성
- 트랜잭션이 성공하면 트랜잭션의 결과를 영구적으로 보장해야 한다.
commit
- 트랜잭션의 모든 미결정 데이터를 영구적으로 반영함으로써 트랙잭션을 종료함(저장과 유사)
rollback
- 트랙잭션의 모든 미결정 데이터 변경을 포기함으로써 트랜잭션을 종료함(되돌리기와 유사)
모두의 SQL 누구나 쉽게 배우는 데이터 분석 기초
김도연 지음 길벗
'데이터 베이스' 카테고리의 다른 글
DDL : 테이블과 열 조작하기 (0) | 2021.05.14 |
---|---|
DML : 데이터의 삽입/갱신/삭제 (0) | 2021.05.14 |
서브쿼리 : SELECT 문 안에 있는 SELECT 문 (0) | 2021.05.14 |
ERD : 데이터베이스 개체 설계도, 조인과 집합: 여러 개의 테이블 연결하기 (0) | 2021.05.14 |
함수 : 함수로 데이터를 쉽게 가공하기 (0) | 2021.05.13 |