SQL 응용
작성일
원자성
- 분해가 불가능한 작업의 최소 단위
- 연산 전체가 성공 또는 실패
- 하나라도 실패할 경우 전체가 취소되어야하는 특성
일관성
- 트랜잭션이 실행 성공 후 향상 일관된 데이터베이스 상태를 보존해야하는 특성
격리성
- 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가한 특성
영속성
- 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장하는 특성
Rollback
- 오류가 발생했을 떄, 오류 이전의 특정 시점(SVAEPOINT, CHECKPOINT) 상태로 되돌려주는 제어어
Commit
- 트랜잭션을 메모리에 영구적으로 저장하는 제어어
CHECKPOINT
- ROLLBACK을 위한 시점을 지정하는 제어어
즉각 갱신 회복 기법
- 데이터베이스의 회복기법 중 Rollback 시 Redo, Undo가 모두 실행되는 트랜잭션 처리법으로 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영하는 기법
DB 스카마
- 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
도메인
- 하나의 속성이 가질 수 있는 원자값들의 집합
- 속성의 데이터 타입과 크기, 제약조건 등의 정보
스키마
- 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조
테이블
- 데이터 저장 공간
뷰
- 하나 이상의 물리 테이블에서 유도되는 가상의 테이블
인덱스
- 검색을 빠르게 하기 위한 데이터 구조
트랜잭션
- 데이터베이스 시스템에서 하나의 논리적인 기능을 정상적으로 수행하기 위한 작업의 기본 단위
외부스키마
- 사용자나 개발자의 관점에서 필요로 하는 데이터베이스의 논리적 구조
- 사용자 뷰를 나타냄
- 서브 스키마로 불림
개념 스키마
- 데이터베이스의 전체적인 논리적 구조
- 전체적인 뷰를 나타냄
- 개체 간의 관계, 제약 조건, 접근 권한, 무결성, 보안에 대해 정의
내부 스키마
- 물리적 저장장치의 관점에서 보는 데이터베이스 구조
- 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터항목의 표현 방법, 내부 레코드의 물리적 순서 등을 표현
인덱스
- 데이터를 빠르게 찾을 수 있는 수단으로서 테이블에 대한 조회속도를 높여 주는 자료구조
절차형 SQL
- 일반적인 개발 언어처럼 SQL 언어에서도 절차 지향적인 프로그램이 가능하도록 하는 트랜잭션 언어
프로시저
- 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
사용자 정의함수
- 일련의 SQL 처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL
트리거
- 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때 마다 관련 작업이 자동으로 수행되는 절차형 SQL
IN
- 운영체제에서 프로시저/사용자 정의함수로 값을 전달하는 모드
OUT
- 프로시저/사용자 정의함수에서 처리된 결과를 운영체제로 전달하는 모드
INOUT
- IN과 OUT의 두 가지 기능을 동시에 수행하는 모드
트리거 BEFORE
- 테이블명에 대한 INSERT/ UPDATE/ DELETE를 수행하기 전에 트리거가 실행되도록 지정하는 명령
트리거 AFTER
- 테이블명에 대한 INSERT/ UPDATE/ DELETE가 성공적으로 실행되었을 때만 트리거가 실행하도록 지정하는 명령
옵티마이저
- SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해 주는 DBMS 내부의 핵심엔진
실행계획
- 옵티마이저가 생성한 SQL 처리 경로
- 사용자가 작성한 SQL이 요구한 데이터를 추출하기 위해 옵티마이저가 작어브이 방법과 순서를 결정하는 것
힌트
- SQL 성능 개선의 핵심 부분으로 옵티 마이저의 실행 계획을 원하는대로 변경할 수 있게 한다
RBO(규칙기반 옵티마이저)
- 통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행 계획을 선택하는 옵티마이저
CBO(비용기반 옵티마이저)
- 통계 정보로부터 모든 접근 경로를 고려한 질의 실행 계획을 선택하는 옵티마이저