#4 데이터베이스 고급 기능

1. 트랜잭션(Transaction)
:데이터베이스 시스템에서 병행 제어 및 회복 작업시 처리되는 작업의 논리적 단위

-특징
1. 원자성(Atomicity) <all or nothing>
: 트랜잭션 내의 모든 명령은 완벽히 수행되던지, 모두 취소되어야 한다.
2. 일관성(Consistency)
: 트랜잭션이 성공적으로 완료되면 언제나 일관성 있는 데이터베이스 상태로 변환한다.
3. 독립성(Isolation)
: 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행 중에는 다른 트랜잭션 연산이 끼어들 수 없다.
4. 영속성(Durability)
: 성공적으로 완료된 트랜잭션의 결과는 영구적으로 반영되어야 한다.

2. 트랜잭션의 상태
- Commit: 작업 성공 연산
- Rollback: 작업 실패 연산, 실패시 모든 트랜잭션은 취소된다.


- 회복(Recovery)
: 트랜잭션들이 장애를 발생하여 데이터베이스가 손상되었을 때 손상되기 이전의 정상상태로 복구하는 작업

- 장애의 유형
1) 트랜잭션 장애
: 입력 데이터 오류, 불명확한 데이터 등 내부의 비정상적인 상황으로 인한 장애
: 손상이 가해져 회복작업을 할 때 손상을 줄 가능성이 가장 적다
2) 시스템 장애
: 하드웨어 오작동, 소프트웨어 손상, 교착상태등 의한 장애
3) 미디어 장애
: 저장장치인 디스크 블록의 손상, 디스크 헤드의 충돌등에 의한 물리적으로 손상된 상태

- 회복기법: 연기갱신기법, 즉각 갱신 기법, 그림자 페이지 기법, 검사점 기법

- 병행제어(Concurrency Control)
: 동시에 여러 개의 트랜잭션을 병행 수행할 때, 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않도록 상호 작용을 제어하는 것

- 병행제어의 목적
: 데이터베이스 공유 최대화, 시스템 활용도 최대화
: 데이터베이스 일관성 유지, 응답시간 최소화

- 병행제어의 문제점
1) 갱신 분실
: 트랜잭션이 갱신될 때 일부가 없어지는 현상
2) 비완료 의존성
: 트랜잭션이 실패한 후 회복하기 전에 다른 트랜잭션이 실패한 결과를 참조하는 현상
3) 모순성
: 트랜잭션이 병행수행될 때 원치 않은 자료를 이용함으로써 발행하는 문제점
4) 연쇄 복귀
: 병행수행 되던 트랜잭션들 중 어느 하나에 문자가 생겨 Rollback하는 경우 다른 트랜잭션도 함께 Rollback 되는 현상

- 병행제어 기법의 종류
1) 로킹(Locking)
: 트랜잭션이 로킹 단위를 엑세스 하기 전에 Lock(잠금)을 요청해서 Lock이 허락되어야만 엑세스할 수 있도록 하는 기법, 로킹단위가 클수록 병행성은 낮아지고 로크의 수는 적어진다.
: 한꺼번에 로킹할 수 있는 단위를 로킹 단위
: 로킹단위가 작아지면 로킹 오버헤드 증가
: 페이지 > 테이블 > 필드 > 행
2) 타임 스탬프 순서
: 트랜잭션 간의 시간표(Time Stamp)를 부여하려 시간에 따라 작업을 수행하는 기법
3) 최적 병행 수행
4) 다중 버전 기법


3. 보안
: 데이터베이스의 일부분 또는 전체에 대해서 권한이 없는 사용자가 엑세스하는 것을 금지하기 위해 사용되는 기술

- 암호화(Encryption): 평문을 암호문으로 바꾸는 과정
- 복호화(Decryption): 암호문을 평문으로 바꾸는 과정

- 암호화 기법
1) 개인키 암호 방식(Private Key Encryption) = 비밀키 암호 방식, 대칭키 암호 방식
: 동일한 키로 데이터를 암호화 하고 복호화
: 대표적인 알고리즘 DES, 대칭키 암호화 방식이라고도 한다

2) 공개키 암호 방식(Public Key Encryption) = 비대칭 암호 방식
: 서로 다른 키로 데이터를 암호화하고 복호화한다
: 대표적인 알고리즘 RSA
: 장점 - 키를 분배가 용이, 관리해야 할 키의 개수가 적다
: 단점 - 속도가 느리고 알고리즘이 복잡하고, 파일 크기가 크다

- 권한 부여 기법
1) 뷰 기법: 뷰에 권한을 명시하는 기법
2) GRANT / REVOKE 기법 <권한인가시스템?>
 - GRANT : 권한 부여 , GRANT 사용자 등급 TO 사용자 ID
 - REVOKE: 권한 취소 , REVOKE 사용자 등급 FROM 사용자 ID
 - 사용자 등급: DBA(데이터베이스 관리자), RESOURCE, CONNECT(일반사용자)
 - 권한부여는 DBMS 자체 결정이 아니라 관리자의 정책결정에 의해 제공


4. 분산 데이터베이스
: 논리적으로 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 컴퓨터 사이트에 분산되어 있는 데이터베이스

- 분산 데이터베이스의 구성 요소
: 분산 처리기, 분산 데이터베이스, 통신 네트워크

- 분산 데이터베이스 설계시 고려사항
: 작업부하(Work Load)의 노드별 분산 정책
: 지역의 자치성 보장 정책
: 데이터의 일관성 정책
: 사이트나 회선의 고장으로부터 회복 가능
: 통신 네트워크를 통한 원격 접근 가능

- 분산 데이터베이스의 목표
1) 위치 투명성(Location Transparency)
: 엑세스하려는 데이터베이스의 실제 위치를 알 필요가 없다
2) 중복 투명성(Replication Transparency), 복제 투명성
: 동일 데이터가 중복 되더라도 사용자는 하나의 데이터만 존재하는 것 처럼 사용
3) 병행 투명성(Concurrency Transparency)
:  다수의 트랜잭션들이 동시에 실현되더라도 그 트랜잭션의 결과는 영향을 받지 않는다
4) 장애 투명성(Failure Transparency)
: 장애가 발생하더라도 트랜잭션을 정확하게 처리한다

- 분산 데이터베이스의 장단점

- 장점
: 지역 자치성이 높다
: 자료의 공유성 향상
: 분산 제어 가능
: 시스템 성능 향상
: 중앙 컴퓨터의 장애가 전체에 영향을 미치지 않는다
: 효용성과 융통성이 높다
: 신뢰성, 가용성이 높다
: 시스템 확장성이 용이

-단점
: DBMS가 수행할 기능이 복잡
: 데이터베이스 설계가 어렵다
: 소프트웨어 개발 비용 증가
: 처리 비용 증가
: 오류 증가

댓글 없음:

댓글 쓰기