트랜잭션(Transaction)
- 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위
- 한꺼번에 모두 수행되어야 할 일련의 연산
- 데이터베이스 시스템에서 병행제어 및 회복작업시 처리되는 작업의 논리적 단위
- 사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위
- 하나의 트랜잭션은 Commit 되거나 Rollback 된다.
트랜잭션의 특성 ACID
데이터의 무결성을 보장하기 위한 DMBS의 트랜잭션이 가져야 할 특성
Atomictity (원자성)
- 트랜잭션의 연산은 데이터베이스에 모두 반영되던지 전혀 반영되지 않아야 한다.
- 트랜잭션 내의 모든 명령은 완벽히 수행되어야 하며 하나라도 오류가 발생하면 트랜잭션 전부 취소
Consistency (일관성)
- 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환
- 시스템이 갖고 있는 고정요소는 트랜잭션 수행전과 수행완료 후의 상태가 같아야 한다.
ex) 은행업무 처리 시스템에서 지점간 돈 이동시 이동 전의 전체 은행이 소유하고 있는 돈의 합계와 이동 후의 합계가 같아야 하고, 고객으로부터 입금된 돈이 있으면 입금 전 합계에 입금된 금액만큼 증가된 합계가 된다.
Isolation (독립성, 격리성, 순차성)
- 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중 다른 트랜잭션의 연산이 끼어들 수 없다.
- 수행중인 트랜잭션은 완전히 완료될 때까지 다른 트랜잭션에서 수행 결과를 참조할 수 없다.
Durability (영속성, 지속성)
- 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
Commit, Rollback 연산
Commit 커밋 연산
- 한 개의 논리적 단위(트랜잭션)에 대한 작업이 성공적으로 끝났고 데이터베이스가 다시 일관된 상태일 때 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산
Rollback 롤백 연산
- 하나의 트랜잭션 처리가 비정상적으로 종료되어 일관성을 깨뜨렸을 때 트랜잭션 일부가 정상 처리되었더라도 트랜잭션의 원자성(Atomicity)을 구현하기 위해 트랜잭션이 행한 모든 연산을 취소(Undo)하는 연산.
회복 (Recovery)
회복관리기 (Recovery Management)
- DBMS의 구성요소로 트랜잭션 실패시 데이터베이스의 모든 변화를 Undo 시키는 역할, Dump와 Log 이용
- 메모리 덤프(Dump) : 주기적으로 데이터베이스 전체를 복사해두는 것
- 로그(Log) : 갱신되기 전후의 내용을 기록하는 별도의 파일. = 저널(Journal)
병행제어 (Concurrency Control)
- 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행수행할 때 동시에 실행되는 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 트랜잭션 간의 상호작용을 제어하는 것
병행제어의 목적 : 데이터베이스 공유 최대화, 시스템 활용도 최대화, 데이터베이스 일관성 유지, 사용자에 대한 응답시간 최소화
병행수행 : 다중 프로그램 환경에서 여러 개의 트랜잭션을 병행수행한다는 것은 같은 시간에 여러 개의 명령을 동시에 실행하는 것이 아니라 시분할이나 입출력 인터럽트 기법 등을 이용하여 일정 시간 내에 각 트랜잭션에 있는 명령들이 시간적으로 번갈아 실행되는 것
직렬성(Serializability) : 병행수행된 각각의 트랜잭션 결과는 각 트랜잭션을 독자적으로 수행시켰을 때 결과와 같아야 한다.
병행제어 기법의 종류 : 로킹(Locking), 타임 스탬프 순서(Time Stamp Ordering), 최적 병행수행, 다중 버전 기법
로킹(Locking)
- 로킹단위가 작아지면 관리하기 복잡해 오버헤드가 증가하지만 병행성 수준이 높아진다.
- 로킹단위가 크면 로크수가 작아 관리하기 쉽지만 병행성 수준이 낮아진다.
- 데이터베이스, 파일, 레코드 등은 로킹 단위가 될 수 있다.
- 로킹 단위가 작아지면 로킹 오버헤드가 증가한다.
- 한꺼번에 로킹할 수 있는 단위를 로킹 단위라고 한다.
※ 병행성 수준 : 데이터베이스 공유도
무결성 (Integrity)
- 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실세계의 실제값이 일치하는 정확성
무결성의 종류
널 무결성 : 릴레이션의 특정 속성값이 Null이 될 수 없다.
고유 무결성 : 릴레이션의 특정 속성에 대해서 각 튜플이 갖는 값들이 서로 달라야 한다.
참조 무결성 : 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 한다. 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다.
도메인 무결성 : 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다.
키 무결성 : 하나의 테이블에는 적어도 하나의 키가 존재해야 한다.
관계 무결성 : 릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부
개체 무결성 : 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이거나 중복값을 가질 수 없다.
보안 (Security)
- 데이터베이스의 보안은 권한이 없는 사용자가 액세스 하는 것을 금지하기 위해 사용되는 기술
- 암호화 기법, 권한 부여 기법(View, GRANT/REVOKE)
- 무결성은 권한이 있는 사용자로부터 데이터베이스를 보호, 보안은 권한이 없는 사용자로부터 데이터베이스를 보호
- 보안(Security)은 사용자들이 데이터베이스를 언제든 사용할 수 있도록 보장(ensure), 무결성(Integrity)은 정확(correct)하게 사용할 수 있도록 보장(ensure)
암호화 기법
암호화(Encryption) - 복호화(Decryption)
개인키 암호 방식(Private Key Encryption) = 비밀키 암호 방식
- 대칭 암호방식, 단일키 암호화 기법
- 전위 기법, 대체 기법, 대수 기법, 합성 기법 DES(Deta Encryption Standard) : 64비트 블록화/실제키 56비트
- 장점 : 암호화/복호화 속도 빠르며 알고리즘 단순하고 파일 크기 작다
- 단점 : 사용자 증가에 따라 관리해야 할 키의 수가 상대적으로 많아진다
공개키 암호 방식(Public Key Encryption) = 공중키 암호화 기법
- 비대칭 암호 방식, RSA(Rivest Shamir Adleman)
- 장점 : 키의 분배가 용이하고 관리해야 할 키의 개수가 적다
- 단점 : 암호화/복호화 속도가 느리며 알고리즘이 복잡하고 파일 크기가 크다.
권한 부여 기법
VIEW : 뷰에 권한을 명시
GRANT/REVOKE : DBA가 권한을 부여하고 취소
GRANT 사용자등급 TO 사용자ID [IDENTIFIED BY 암호리스트];
REVOKE 사용자등급 FROM 사용자ID;
GRANT ALL ON 고객 TO JULIA WITH GRANT OPTION;
- WITH GRANT OPTION 부여받는 권한을 다른 사용자에게 부여할 수 있는 권한
- GRANT OPTION FOR 다른 사용자에게 권한 부여할 수 있는 권한 취소
분산 데이터베이스
- 논리적으로는 하나의 시스템이지만 물리적으로는 여러 개의 컴퓨터 사이트에 분산되어 있는 데이터 베이스
- 데이터의 처리나 이용이 많은 지역에 데이터베이스를 위치시켜 데이터 처리가 가능한 해당 지역에서 해결
분산 데이터베이스 설계시 고려사항
- 작업 부하(Work Load)의 노드별 분산 정책
- 지역의 자치성 보장
- 데이터의 일관성 정책
- 사이트나 회선의 고장으로부터의 회복 기능
- 통신 네트워크를 통한 원격 접근 기능
분산 데이터베이스의 목표
- 위치 투명성(Lacation Transparency) : 액세스 하려는 데이터베이스 실제 위치를 알 필요 없이 논리적 명칭으로만 액세스 가능
- 중복(복제) 투명성(Replication Transparency) : 동일 데이터가 여러 곳에 중복되어 있어도 사용자는 하나의 데이터처럼 사용하고 시스템은 자동으로 여러 자료에 대한 작업 수행
- 병행 투명성(Concurrency Transparency) : 분산 데이터베이스와 관련된 다수의 트랜잭션이 동시에 실현되더라도 트랜잭션 결과에 영향 없음
- 장애 투명성(Failure Transparency) : 트랜잭션, DBMS, 네트워크, 컴퓨터 장애에도 불구하고 트랜잭션 정확히 처리
분산 데이터베이스 장점
지역 자치성 높다, 자료 공유성 향상, 분산 제어 가능, 시스템 성능 향상, 중앙컴퓨터 장애가 전체 시스템에 영향없음, 효용성과 융통성 높다, 신뢰성 및 가용성 높다, 점진적 시스템 용량 확장이 용이
분산 데이터베이스 단점
DBMS가 수행할 기능이 복잡, 데이터베이스 설계 어렵다, 소프트웨어 개발 비용 증가, 처리 비용 증가, 잠재적 오류 증가
- 사이트 간 데이터들이 서로 오류가 발생할 수 있다.
'정보처리기사' 카테고리의 다른 글
운영체제: 프로세스 관리 (0) | 2016.02.24 |
---|---|
운영체제: 운영체제의 개요 (0) | 2016.02.24 |
데이터베이스: 자료구조(선형/비선형, 정렬, 검색, 인덱스, 파일편성) (0) | 2016.02.18 |
데이터베이스: 데이터 모델, 관계형 데이터 베이스, 관계대수/관계해석, 정규화 (0) | 2016.02.16 |
전자계산기: 입출력장치, 병렬 컴퓨터 구조 (0) | 2016.02.13 |