트랜잭션
개념 : 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
특성 : 원자성(Atomicity), 일관성(Consistency), 격리성(Isolation), 영속성(Durability) - ACID
COMMIT : 트랜잭션을 메모리에 영구적으로 저장하는 명령어
ROLLBACK : 트랜잭션 내역을 저장 무효화시키는 명령어
CHECKPOINT : ROLLBACK을 위한 시점을 지정하는 명령어
제어 : 병행 제어, 회복 기법
병행 제어
미보장 시 문제점 : 갱신 손실, 현황 파악 오류, 모순성, 연쇄 복귀
기법 종류 : 로킹, 낙관적 검증, 타임스탬프 순서, 다중 버전 동시성 제어
회복 기법
로그 기반 회복 기법 - 지연 갱신 회복 기법, 즉각 갱신 회복 기법
체크포인트 회복 기법 - 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전의 상태로 복원시키는 회복 기법
그림자 페이징 기법 - 트랜잭션 수행 시 복제본을 생성하여 데이터베이스 장애 시 이를 이용해 복구하는 기법
데이터 베이스 고립화 수준
Read Uncommitted - 한 트랜잭션에서 연산 중인 데이터를 다른 트랜잭션이 읽는 것을 허용하는 수준
Read Committed - 한 트랜잭션에서 연산을 수행할 때, 연산이 완료될 때까지 읽기를 제한하는 수준
Repeatable Read - 선행 트랜잭션이 특정 데이터를 읽을 때, 트랜잭션 종료 시까지 해당 데이터의 갱신, 삭제를 제한하는 수준
Serializable Read - 선행 트랜잭션이 특정 데이터 영역을 순차적으로 읽을 때, 해당 데이터 영역 전체에 대한 접근을 제한하는 수준
DDL
- CREATE
- ALTER
- DROP
- TRUNCATE
DDL 대상
- 도메인 : 하나의 속성이 가질 수 있는 원자 값들의 집합
- 스키마 : 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조(외부 스키마, 개념 스키마, 내부 스키마)
- 테이블 : 데이터 저장 공간
- 뷰 : 하나 이상의 물리 테이블에서 유도되는 가상의 테이블
- 인덱스 : 검색을 빠르게 하기 위한 데이터 구조(순서, 해시, 비트맵, 함수기반, 단일, 결합, 클러스터드 인덱스)
테이블 : CREATE(괄호), ALTER(ADD, MODIFY, DROP), DROP(CASCADE, RESTRICT), TRUNCATE
뷰 : CREATE(as, 조회 쿼리), DROP
인덱스 : CREATE(on), ALTER(on), DROP
DML
- SELECT(SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY)
- INSERT(INSERT INTO, VALUES)
- UPDATE(UPDATE, SET, WHERE)
- DELETE(DELETE, FROM, WHERE)
조인(교차 조인을 제외한 나머지 on작성)
- 내부 조인(교집합 비슷)
- 외부 조인(왼쪽 외부 조인, 오른쪽 외부 조인, 완전 외부 조인)
- 교차 조인
- 셀프 조인
서브 쿼리 : SQL문 안에 포함된 또 다른 SQL문
- SELECT 절 서브 쿼리
- FROM 절 서브 쿼리
- WHERE 절 서브 쿼리
집합 연산자
- UNION : 중복 레코드를 제외한 합집합
- UNION ALL : 중복 레코드를 포함한 합집합
- INTERSECT : 교집합
- MINUS : 차집합
DCL
- GRANT(GRANT, ON, TO)
- REVOKE(REVOKE, ON, FROM)