[Sec 1. 절차형 SQL]
저장 프로시저 : 일련의 SQL 쿼리를 하나의 함수처럼 실행하기 위해 (미리)만든 쿼리의 집합
- 장점 : 데이터베이스 보안 향상, 네트워크 소요 시간 절감, 개발 업무 구분, 유지 보수의 용이
- 단점 : 낮은 처리 성능(복잡한 비즈니스 규칙과 제약의 강화)
트리거 : 테이블에서 발생하는 이벤트(INSERT, UPDATE, DELETE)에 반응하여 자동으로 실행
- 유형
- 문장 트리거 : 한 번만 실행
- 행 트리거 : FOR EACH ROW
- 실행 시기
- AFTER : 이벤트 발생 후 실행
- BEFORE : 이벤트 발생 전 실행
사용자 정의 함수 : DBMS 안에 독립된 데이터베이스 객체로 저장된 함수로, SELECT문이나 프로시저 안에서 호출되어 수행되고 결과를 반환하기 위한 용도로 사용
** 저장 프로시저, 트리거, 사용자 정의 함수는 데이터 처리를 단계별로 기술하는 절차적 언어로 작성된다.
[Sec 2. 병행제어와 회복]
병행제어 : 여러 트랜잭션이 동시에 실행되면서도 데이터베이스의 일관성을 유지하는 기법
- 병행제어 미 수행 시 문제점
- 갱신 분실 : 여러 트랜잭션이 동시에 같은 데이터를 수정할 때, 한 트랜잭션의 변경 결과가 다른 트랜잭션에 의해 덮어 쓰여 손실되는 현상
- 비완료 의존성 : 실패한 트랜잭션이 회복 전에 다른 트랜잭션이 그 결과를 참조하는 현상
- 모순성 : 하나의 트랜잭션이 여러 개의 데이터에 대해 변경 연산을 실행했을 때, 일관성이 유지되지 않는 데이터베이스로부터 데이터를 가져와 연산을 실행할 때 발생
- 연쇄 복귀 : 한 트랜잭션이 실패해 롤백되면, 다른 트랜잭션도 함께 롤백되는 현상
- 병행제어 기법
- 로킹(Locking)
로킹 단위↓ → 로그 수↑, 병행성(공유도)↑, 오버헤드(복잡도)↑
로킹 단위↑ → 로그 수↓, 병행성(공유도)↓, 오버헤드(복잡도)↓ - 2단계 로킹 규약 : 확장단계(Lock만), 수축단계(Unlock만)
- 타임 스탬프 : 트랜잭션 간의 처리 순서를 미리 정하는 방법
- 낙관적 병행제어 : 트랜잭션 종료 시 일괄적으로 검사하는 방법
- 다중 버전 병행제어 : 여러 버전의 타임스탬프 비교
- 로킹(Locking)
- 회복 기법
- 로그 기반 회복 기법
- 지연갱신 회복 기법 : REDO만
- 즉시갱신 회복 기법 : REDO & UNDO - 검사점 회복 기법 : 장애 발생 시 검사점 이전에 처리된 트랜잭션은 회복에서 제외, 이후 처리된 트랜잭션은 회복 작업 수행
- 그림자 페이징 회복 기법 : Shadow Page Table → 성공 시 삭제, 실패 시 사용
- 미디어 회복 기법 : 별도 저장 장치에 덤프(Dump)
- ARIES 회복 기법 : 알고리즘
분석 → REDO → UNDO
- 로그 기반 회복 기법
'Data Analysis > 정보처리기사' 카테고리의 다른 글
| [4과목 프로그래밍 언어 활용] 02. 운영체제 기초 활용 (1) | 2024.04.19 |
|---|---|
| [4과목 프로그래밍 언어 활용] 01. 서버 프로그램 구현 (0) | 2024.04.19 |
| [3과목 데이터베이스 구축] 03. SQL 활용 (1) | 2024.04.19 |
| [3과목 데이터베이스 구축] 02. 물리 데이터베이스 설계 (1) | 2024.04.18 |
| [3과목 데이터베이스 구축] 01. 논리 데이터베이스 설계 (0) | 2024.04.18 |