
트랜잭션(Transaction)
데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
특성
- 원자성(Atomicity) : 트랜젝션 연산은 데이터베이스에 모두 반영되어 Commit되든지 아니면 반영되지 않도록 Rollback되어야 한다.
- 일관성(Consistency) : 트랜젝션이 그 실행을 성공적으로 완료하면 언제나 일관성있는 데이터베이스 상태로 변환한다.
- 독립성(Isolation) : 둘 이상의 트랜젝션이 동시에 실행될 경우 한 트랙젝션이 실행 중에 다른 트랜젝션 연산이 끼어들 수 없다.
- 지속성(Durability) : 성공적으로 완료된 트랜젝션 결과는 영구적으로 데이터베이스에 저장된다.
트랜잭션 제어 언어(TCL, Transaction Control Language)
- Commit
- Rollback
- Checkpoint
병행제어 기법
다수의 사용자 환경에서 여러 트랜젝션을 수행할 때, 데이터베이스의 일관성을 유지하기 위해 상호작용을 제어하는 방법이다.
종류
- 로킹(Locking)
- 타임 스탬프 순서(Time Stamp Ordering)
- 낙관적 검증(Optimistic Validation)
- 다중 버전 동시성 제어(Multi Version Concurrency Control)
관계 대수
순수 관계 연산자
- Select(시그마)
- Project(파이)
- Join(나비 넥타이 삼각형)
- Division(나누기)
일반 집합 연산자
- Union(합집합)
- Intersection(교집합)
- Difference(차집합)
- Cartesian Product(교차곱)
릴레이션(Relation), 테이블(Table)
속성(Attribute)과 튜플(Tuple)의 집합으로 구성된다.
- 도메인(Domain) : 속성이 가질 수 있는 모든 값의 집합
- 차수(Degree) : 속성의 수
- 카디널리티(Cardinality) : 튜플의 수
DDL(Data Define Language)
- CREATE
- ALTER
- DROP
- TRUNCATE
DML(Data Manipulation Language)
- SELECT
- INSERT
- DELETE
- UPDATE
DCL(Data Control Language)
- COMMIT
- ROLLBACK
- GRANT
- REVOKE
이상(Anomaly)
데이터의 중복으로 인하여 관계 연산을 처리할 때 예기치 못한 곤란한 현상이 발생하는 것을 의미한다.
- 삽입 이상(Insertion Anomaly)
- 삭제 이상(Deletion Anomaly)
- 갱신 이상(Update Anomaly)
분산 데이터베이스
논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 사이트에 분산되어 있는 데이터베이스
목표
- 위치 투명성(Location Transparency) : 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 접근할 수 있음.
- 중복 투명성(Replication Transparency) : 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용이 가능함. 시스템은 자동으로 여러 자료에 대한 작업을 수행한다.
- 병행 투명성(Concurrency Transparency) : 다수의 트랜젝션이 동시에 실현되더라도 그 결과는 영향을 받지 않는다.
- 장애 투명성(Failure Transparency) : 트랜젝션, DBMS, 네트워크, 컴퓨터 장애가 발생해도 트랜젝션을 정확하게 처리한다.
데이터베이스 설계 단계
- 개념적 설계 : 개념 스키마 모델링, 트렌젝션 모델링, 독립적인 개념 스키마 설계, E-R 다이어그램
- 논리적 설계 : 트랜젝션 인터페이스 설계, 스키마 평가 및 정제, 목표 DBMS에 맞는 논리 스키마 설계, 논리적 구조의 데이터로 모델화
- 물리적 설계 : 저장 구조 및 액세스 경로 설정, 레코드 집중의 분석 및 설계, 저장 레코드 양식 설계
키
- 슈퍼키(Super Key) : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키로, 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못함.
- 후보키(Candidate Key) : 릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합으로, 유일성과 최소성을 모두 만족함.
- 기본키(Primary Key) : 후보키 중에서 특별히 선정된 키로 중복된 값과 NULL 값을 가질 수 없음.
- 대체키(Alternate Key) : 후보키 중에서 선정된 기본키를 제외한 나머지 후보키를 의미함.
- 외래키 (Foreign Key) : 다른 릴레이션의 기본키를 참조하는 속성 또는 속성들의 집합을 의미하며, 릴레이션 간의 관계를 표현할 때 사용함.
E-R 다이어그램
- 사각형 : 개체
- 원 : 속성
- 마름모 : 관계
- 선 : 관계와 속성을 연결
이행적 함수 종속 관계
A-> B 이고 B->C 일 때, A->C이다.
데이터베이스 회복 기법
- 로그기반 회복 기법
- 즉각 갱신 회복 기법 : 트랜잭션 연산을 수행하여 데이터를 갱신할 때 실제 데이터베이스에 반영한다. 취소(Undo)와 재시도(Redo)를 모두 사용할 수 있다. 갱신한 모든 내용을 로그에 보관한다.
- 지연 갱신 회복 기법 : 트랜잭션 연산이 완료될 때까지 데이터베이스에 갱신을 지연하는 기법이다. 갱신할 내용을 로그에 보관한다. 트랜잭션이 부분 완료되는 시점에 로그의 기록을 실제 데이터베이스에 반영한다. 트랜잭션 수행 중에 장애가 발생하여 Rollback해도 취소(Undo)할 필요가 없다.
- Checkpoint 회복 기법 : 트랜잭션 중간에 Checkpoint를 로그에 보관하여 트랜잭션 전체를 취소하지 않고 Checkpoint까지 취소할 수 있는 기법이다.
- 그림자 페이징 회복 기법 : 트랜잭션 연산으로 갱신할 필요가 있을 때 복사본인 그림자 페이지를 보관하는 기법이다. 트랜잭션을 취소할 때 그림자 페이지를 이용하여 회복한다. 로그가 필요없고 취소, 재시도할 필요가 없다.
데이터웨어하우스의 기본적인 OLAP(On-Line Analytical Processing) 연산
- Roll-Up
- Drill-down
- Drill-through
- Drill-across
- Pivoting
- Slicing
- Dicing