트랜잭션(Transaction)
데이터베이스 내에서 한번에 수행되어야 하는 연산들의 집합. 하나의 작업처리를 위한 논리적 작업 단위. 모두 완료하거나 또는 모두 취소되어야 한다.
- 원자성(Atomicity) : 기본특성. 트랜잭션 내의 연산은 모두 수행되거나 모두 수행되지 않아야 한다.
- 일관성(Consistency) : 트랜잭션이 정상적으로 완료된 후 언제나 일관성 있는 데이터베이스 상태가 되어야 한다.
- 격리성(Isolation) : 독립성. 하나의 트랜잭션이 수행 중일 때는 다른 트랜잭션이 접근할 수 없다.
- 영속성(Durability) : 지속성. 트랜잭션이 성공적으로 완료되면 결과는 지속적으로 유지되어야 한다.
회복
여러가지 요인으로 손상된 데이터베이스를 이전의 정상적인 상태로 복구시키는 작업.
- 즉시 갱신 기법 : 변경되는 내용을 바로 데이터베이스에 적용하는 기법. 변경되는 모든 내용은 로그에 기록하여 장애 발생시 로그 내용을 토대로 회복.
- 지연 갱신 기법 : 트랜잭션이 부분완료 될 때까지 데이터베이스에 적용하지 않고 지연시킨 후 부분완료가 되면 로그를 토대로 데이터베이스에 적용.
- 검사 시점 기법 : 트랜잭션 실행 중간에 검사 시점(Check Point)을 지정하여 검사 시점까지 완료된 내용을 데이터베이스에 적용하는 기법.
- 그림자 페이징(Shadow Paging) 기법 : 로그를 사용하지 않고 데이터베이스를 동일한 페이지로 나누어 페이지마다 복사하여 그림자 페이지를 보관.
병행 제어
동시에 여러개의 트랜잭션이 실행되는 경우 트랜잭션 간의 격리성을 유지하여 수행에 문제가 없도록 제어하는 것.
- 로킹(Locking) : 주요 데이터의 액세스를 상호 배타적으로 하는 것. DB동시성으로 데이터를 잃거나 부정정 효과를 방지하기 위함.
- 교착상태(Deadlock) : 한 트랜잭션에서 수행시간이 너무 길어 오랫동안 데이터가 LOCK된 상태가 오랫동안 지속되는 것. 공유락(읽기 허용, 쓰기 금지)과 배타락(읽기 쓰기 모두 금지)을 이용하거나, 2단계 로킹 기법, 타임 스탬프 등을 이용하여 해결할 수 있다.
보안(Security)
- 기밀성(Confidentiality) : 허락되지 않은 사용자가 정보의 내용을 알 수 없도록 하는 것.
- 무결성(Integrity) : 허락되지 않은 사용자나 대상이 정보를 함부로 수정, 삭제 등 변경할 수 업사도록 하는 것.
- 가용성(Availability) : 하락된 사용자나 대상이 정보에 접근하고자 할 때 방해받지 않도록 하는 것.
암호화(Encryption) 기법을 이용한 보안
- 대칭키 시스템 : 암호화-복호화 키가 동일한 암호 시스템. 속도가 빠르고 간단하나 키관리가 번답함. 예) DES.
- 비대칭키 시스템 : 공개키 시스템. 암호화키(공개키)와 공개되지 않는 복호화키(비밀키)가 다름. 보안성이 좋으나 알고리즘이 복잡함. 예) RSA.