정보처리기사/실기 정리
정보처리기사 실기 정리 - 7. SQL 응용
CUBE
2021. 10. 5. 19:59
7. SQL 응용 (개념적인 부분만 정리하였습니다)
트랜잭션
하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
트랜잭션의 특성
- 원자성: 트랜잭션 수행 결과는 모두 반영되거나 전혀 반영되지 않아야 한다.
- 일관성: 트랜잭션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보존해야 하는 특성
- 격리성: 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가한 특성
- 영속성: 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장하는 특성
트랜잭션 제어 언어(TCL) 명령어
- COMMIT(커밋): 트랜잭션을 메모리에 영구적으로 저장하는 명령어
- ROLLBACK(롤백): 트랜잭션 내역을 저장 무효화시키는 명령어
- CHECKPOINT(체크포인트): ROLLBACK을 위한 시점을 지정하는 명령어
병행 제어
다수 사용자 환경에서 여러 트랜잭션을 수행할 때, 데이터베이스 일관성 유지를 위해 상호작용을 제어하는 기법
병행 제어 기법
- 로킹: DB의 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장하는 직렬화 기법
- 낙관적 검증: 일단 트랜잭션을 수행하고, 트랜잭션 종료 시 검증을 수행하는 방법
- 타임스탬프 순서: 타임스탬프를 부여하여 부여된 시간에 따라 트랜잭션 작업을 수행하는 기법
- 다중 버전 동시성 제어: 타임스탬프를 비교하여 직렬 가능성이 보장되는 적절한 버전을 선택하여 접근하는 방법
고립화
다른 트랜잭션이 현재의 데이터에 대한 무결성을 해치지 않기 위해 잠금을 설정하는 정도
고립화 수준 종류
- Read Uncommitted: 한 트랜잭션에서 연산 중인 데이터를 다른 트랜잭션이 읽는 것을 허용하는 수준
- Read Committed: 한 트랜잭션의 연산이 완료된 후 읽을 수 있도록 하는 수준
- Repeatable Read: 트랜잭션 종료 시까지 해당 데이터에 대한 갱신, 삭제를 제한하는 수준
- Serializable Read: 특정 데이터 영역을 순차적으로 읽을 때, 해당 데이터 영역 전체에 대한 접근을 제한하는 수준
회복 기법
트랜잭션을 수행하는 도중 장애로 인해 손상된 데이터베이스를 손상 이전의 정상적인 상태로 복구시키는 작업
회복 기법 종류
1. 로그 기반 회복 기법
- 지연 갱신 회복 기법: 트랜잭션이 완료되기 전까지 데이터베이스에 기록하지 않는 기법
- 즉각 갱신 회복 기법: 트랜잭션 수행 중 갱신 결과를 바로 DB에 반영하는 기법
2. 체크포인트 회복 기법
장애 발생 시 체크포인트 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전의 상태로 복원시키는 방법
3. 그림자 페이징 회복 기법
데이터베이스 트랜잭션 수행 시 복제본을 생성하여 데이터베이스 장애 시 이를 이용해 복구하는 기법
DDL
데이터를 정의하는 언어
DDL의 대상
- 도메인: 하나의 속성이 가질 수 있는 원자 값들의 집합
- 스키마: 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적인 구조 (외부, 개념, 내부 스키마)
- 테이블: 데이터 저장 공간
- 뷰: 가상의 테이블
- 인덱스: 검색을 빠르게 하기 위한 데이터 구조
DDL 명령어
- CREATE
- ALTER
- DROP
- TRUNCATE
DML
데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어
DML 명령어
- SELECT
- INSERT
- UPDATE
- DELETE
DCL
데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 관리자가 사용하는 제어용 언어
DCL의 유형
- GRANT
- REVOKE
데이터 분석함수의 종류
1. 집계 함수
여러 행 또는 테이블 전체 행으로부터 하나의 결괏값을 반환하는 함수
- GROUP BY
- HAVING
2. 그룹 함수
소그룹 간의 소계 및 중계 등의 중간 합계 분석 데이터를 산출하는 함수
- ROLLUP
- CUE
- GROUPING SETS
3. 윈도 함수
데이터베이스를 사용한 온라인 분석 처리 용도로 사용하기 위해서 표준 SQL에 추가된 기능, OLAP 함수라고도 한다.
- 순위 함수
- 행 순서 함수
- 그룹 내 비율 함수
절차형 SQL 종류
- 프로시저: 일련의 쿼리들을 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합
- 사용자 정의 함수: 일련의 SQL 처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL
- 트리거: 데이터베이스 시스템에서 삽입, 갱신, 삭제 등의 이벤트가 발생할 때마다 관련 작업이 자동으로 수행되는 절차형 SQL
옵티마이저
SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS 핵심 엔진
옵티마이저의 유형
- 규칙 기반 옵티마이저: 통계 정보가 없는 상태에서 사전 등록된 규칙에 따라 질의 실행 계획을 선택
- 비용 기반 옵티마이저: 통계 정보로부터 모든 접근 경로를 고려한 질의 실행 계획을 선택
Next