트랜잭션
트랜잭션은 인가받지 않은 사용자로부터 데이터를 보장하기 위한 DBMS가 가져야하는 특성이자, 작업의 기본 단위로 4개의 특성을 갖고 있다 (원일고영=원자성, 일관성, 격리성(고립성), 영속성)
원자성(Atomicity) : 연산 전체가 모두 정상 실행 or 모두 취소 // Commit, Rollback, 회복성 보장
일관성(Consistency) : 고정요소는 트랜잭션 실행 전과 후의 상태가 같아야 함 // 무결성 제약조건, 동시성 제어
격리성/고립성(Isolation) : 동시에 실행되는 트랜잭션들이 서로 영향을 미치면 안 됌 // --
영속성(Durability) : 성공이 완료된 트랜잭션의 결과는 영속적으로 DB에 저장되어야 함.
트랜잭션을 제어하는 언어를 TCL(Transaction Control Language)라고 하는데, 트랜잭션의 결과를 허용하거나 취소하는 목적으로 사용되는 언어를 말한다.
커밋(COMMIT) = 트랜잭션을 확정하며, 트랜잭션된 내용을 메모리에 영구적으로 저장하는 명령어
롤백(ROLLBACK) = 트랜잭션을 취소하며, 트랜잭션 내역을 저장 무효화시키는 명령어
체크포인트(CHECK POINT) = 저장 시기를 설정하며, 롤백을 위한 시점을 지정하는 명령어
병행 제어
다수의 사용자가 여러 트랜잭션을 수행할 때, 데이터베이스의 일관성을 유지하기 위해 상호작용을 제어하는 기법이다.
병행 제어를 미 보장시 발생할 수 있는 문제는 갱현모연(갱신손실, 현황 파악 오류, 모순성, 연쇄복귀)가 있다.
갱신손실(Lost update) : 먼저 실행된 트랜잭션의 결과를 나중에 실행된 트랜잭션이 덮어쓸 때 발생하는 오류
현황 파악 오류(Dirty Read) : 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조하여 발생하는 오류
모순성(Inconsistency) : 두 트랜잭션이 동시에 실행되어 데이터베이스의 일관성이 결여되는 오류
연쇄복귀(Cascading Rollback) : 복수의 트랜잭션이 데이터 공유 시 특정 트랙잭션이 처리를 취소할 경우 트랜잭션이 처리한 곳의 부분을 취소하지 못하는 경우
병행 제어의 기법엔 로낙타다(로킹, 낙관적 검증, 타임 스탬프, 다중버전 동시성 제어)가 있다.
로킹(Locking) : 일관성과 무결성을 유지하기 위해 트랜잭션의 순차적 진행을 보장하는 직렬화 기법
한꺼번에 로킹 할 수 있는 객체의 크기를 로킹 단위라고 하는데, 로킹 단위가 작아지면 DB 공유도 증가, 로킹 오버헤 드 증가 및 DB, 파일, 레코드 등은 로킹 단위가 될 수 있음.
낙관적 검증(Optimistic Validation) : 트랜잭션 시 어떠한 검증도 수행하지 않고, 트랜잭션이 완료된 후 검증을 수행해 DB에 적용하는 기법
타임 스탬프(Time Stamp Ordering) : 읽거나 갱신한 데이터에 대해 타임 스탬프를 부여해 트랜잭션 작업을 수행하는 기법
다중버전 동시성 제어(MVCC, Multi Version Concurrency Control) : 타임 스탬프를 비교해 직렬가능성이 보장되는 적절한 버전을 선택해 접근하도록 하는 기법
회복기법은 트랜잭션 수행 시 문제가 발생할 때, 손상되기 전의 상태로 복구시키는 작업으로 회로체그(회복기법-로그 기반 , 체크 포인트, 그림자 페이징)가 종류로 있다
로그 기반 회복 기법엔 2가지 (지연 갱신, 즉각 갱신)이 있는데
- 지연 갱신은 트랜잭션이 완료되기 전까지 DB에 기록하지 않는 기법이다.
- 즉각 갱신은 수행중 갱신 결과를 바로 DB에 반영하는 기법이다.
체크 포인트 회복 기법 : 장애 발생 시 검사점 이후에 처리된 트랜잭션에 대해서만 장애 발생 이전으로 되돌리는 회복 기법
그림자 페이징 회복 기법 : 트랜잭션 수행 시 복사본을 생성해 DB 장애 시 복사본을 이용해 복구하는 기법
DDL(Data Definition Language)
데이터를 정의하는 언어로, 테이블와 같은 데이터 구조를 정의, 특정 구조를 생성, 변경, 삭제, 이름 변경 등을 수행
Create, Alter, Drop, Truncate(생성, 변경, 테이블 삭제, 테이블 내 데이터 삭제)
도메인 : 하나의 속성이 가질 수 있는 원자 값들의 집합
스키마 : DB의 구조, 제약조건 등 정보를 담고 있는 기본적인 구조
외개내(외부 스키마, 개념 스키마, 내부 스키마)
- 외부 스키마(External Schema) : 서브 스키마로 불리며 사용자나 개발자 관점에서 필요한 DB의 논리적 구조
- 개념 스키마(Conceptual Schema) : DB의 전체적인 논리적 구조, 전체적인 뷰를 나타냄
- 내부 스키마(Internal Shcema) : 물리적 저장장치의 관점에서 보는 DB 구조
테이블 : 데이터 저장 공간(릴레이션(Relation) 혹은 엔티티(Entity)라고도 불림)c
뷰 : 하나 이상의 물리 테이블에서 유도되는 가상의 테이블
인덱스 : 검색을 빠르게 하기 위한 데이터 구조로 DB 내 값에 대한 주소 정보로 구성되어 있음.
DML(Data Manipulation Language)
데이터 조작어로, DB에 저장된 자료들을 입력, 수정, 삭제, 조회 등을 수행
Select, Delete, Update, Insert(조회, 삭제, 수정, 삽입)
DCL(Data Control Language)
데이터 제어어로, 사용자에게 권한을 부여하거나 삭제할 수 있다.
Revoke, Grant(권한 삭제, 권한 부여)
'자격증 > 정보처리기사' 카테고리의 다른 글
8장 서버 프로그램 구현 - (2) 공통 모듈 구현 (0) | 2022.07.15 |
---|---|
8장 서버 프로그램 구현 - (1) 개발환경 구축 (0) | 2022.07.14 |
6장 프로그래밍 언어 활용 - (2) 언어 특성 활용하기 (0) | 2022.07.12 |
5장 인터페이스 구현 - (2) 인터페이스 기능 구현 (0) | 2022.07.09 |
4장 통합 구현 - (3) 내외부 연계 모듈 구현 (0) | 2022.07.09 |