학습내용
☞ 데이터베이스 고급기능을 정리할 수 있다. 학습목표
☞ 데이터베이스 고급기능
시스템 카탈로그 / 뷰(VIEW)
트랜잭션 / 보안 / 병행제어 / 분산 데이터베이스
학습내용
1. 시스템 카탈로그(System Catalog)
시스템테이블이라고도 하며 데이터베이스에 저장되어 있는 모든 개체에 대한 정의나 명세에 대한 정보가 수록되
어 있는 것을 말함
- 데이터사전(Data Dictionary)
- 시스템카탈로그에 저장되어있는 내용 : 메타데이터(Meta Data)
- DBMS가 스스로 생성하고 유지, 사용자도 SQL을 통해 내용검색이 가능
데이터 디렉토리
- 데이터 사전에 수록된 데이터를 실제로 접근하는 데 필요한 정보를 관리, 유지하는 시스템
2. 뷰(VIEW)
하나 이상의 기본 릴레이션으로 부터 유도된 가상 릴레이션(테이블)
- 물리적으로 구현되지 않는다
- 관리가 용이하고 명령문이 간단하다
CREATE VIEW 학생
AS SELECT 학번, 이름, 학과 FROM 학생
WHERE 학과=‘컴공과’ DROP VIEW 학생 RESTRICT;
뷰(VIEW)의 장점
독립성 / 보안성 / 다양성
3. 트랜잭션(Transaction)
하나의 논리적 기능을 수행하기 위한 작업단위(연산의 집합)
트랜잭션의 정상적인 종료 ☞ COMMIT
트랙잭션의 비정상적인 종료 ☞ ROLLBACK
* 트랜잭션 파일(Transaction file) : 일시적인 성격을 지닌 정보를 기록하고 있는 파일
* 마스터 파일(Master file)
4. 트랜잭션(Transaction) 의 상태
활동(Active) : 실행중인 상태
실패(Failed) : 실행 중 오류가 발생한 상태
철회(Aborted) : Rollback 된 상태
부분 완료(Partially Committed) : Commit 연산을 실행하기 전의 상태
완료(Committed) : 성공적으로 완료된 상태
5. 보안(Security)
데이터의 위험/손실, 정보의 유출들을 차단 하기 위해 통제된 접근을 통해 데이터베이스를 보호하는 것
정보보안의 목표
- 기밀성(Confidentiality): 권한이 없는 대상으로 부터 정보의 내용을 알 수 없도록 하는 것
- 무결성(Integrity): 권한이 없는 대상으로 부터 정보를 수정/삭제 등 변경 할 수 없도록 하는 것
- 가용성(Availablility): 권한이 없는 대상으로 부터 정보에 접근할 때 방해 받지 않도록 하는 것
6. 병행 제어(Concurrency Control)
목적
- 공유, 활용도, 처리건수의 최대화
- 응답시간의 단축, 시스템의 활용도 극대화
- 데이터베이스의 일관성 유지
문제점
- 갱신 손실(Lost Update) : 갱신작업시 반영이 안되는 현상
- 모순성(Inconsistency) 발생 : 일관성이 깨짐
- 회복 불능(Cascading Rollback) : 연쇄 복귀
< T1과 T2등의 여러작업을 수행하다 오류가 발생하면 ROLLBACK되면서 모두 취소가 됨.>
문제점에 대한 예1> 갱신 손실(Lost Update) : 갱신작업시 반영이 안되는 현상
T1과 T2에서 병행작업을 했지만 결과는 T2의 결과만 남게 되고 T1의 결과는 반영이 안되고 있음.
문제점에 대한 예2> 모순성(Inconsistency) : 일관성이 깨지는 현상
처음 값 5000원을 기준으로 T1은 1000원증가인 6000을 원했고 T2에선 2000원이 증가한 7000원을 원했지만
T1의 결과가 T2에 적용되면서 원하지 않은 값이 결과로 나오게 됨.
7. 로킹(Locking) : 임의의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것
로킹의 단위
- 데이터베이스, 페이지(여러 행), 테이블, 레코드, 필드
- 잠금단위가 커지면 : 로킹 오버헤드 감소, 관리는 쉬우나 공유도가 저하(병행성 수준이 낮아짐)
- 잠금단위가 작아지면 : 로킹 오버헤드 증가, 관리가 복잡하지만 공유성 수준이 증가
2단계로킹기법(Two phase Locking Protocol)
- Lock설정대상이 여러개인 경우 모든 데이터에 lock을 설정하는 단계와 완료 후 Lock을 해제하는 단계
- 확장단계(Growing Phase): Lock을 설정하는 단계
- 축소단계(Shrinking Phase): Lock을 해제하는 단계
- 스케줄의 직렬성을 보장하지만 교착상태(Deadlock)가 발생할 수 있다
교착상태(Dead Lock)
- 이러지도 저러지도 못하고 무한정 기다리는 상태
8. 회복(Recovery)
언제 발생할지 모르는 장애(Failure)에 대하여 데이터베이스를 보다 안전하게 대피, 보호, 유지하는 활동, 손상되
기 이전의 상태로 복구하는 작업. 회복기법
- 갱신 기법 : 연기갱신(종료시점까지 연기)과 즉각갱신(부분완료 시점에도 반영)으로 나눔
- 그림자 페이징 기법 : 일정 크기단위로 복사본을 보관해두고 변경하는 기법
- 검사점 기법 : 검사시점을 로그에 보관해두고 그 시점을 찾아 수행하는 기법
- 미디어 회복 기법 : 데이터베이스 내용을 주기적으로 덤프해 놓는 기법
Redo 와 Undo
Redo : 비정상적인 종료 후 로그를 이용하여 이전 값을 이후 값으로 변경 <재 작업>
Undo : 비정상적인 종료 후 로그를 이용하여 이후 값을 이전 값으로 변경 <작업취소>
9. 분산 데이터베이스(Distributed Database)
정의
- 네트워크를 통해 물리적으로 분산되어 있는 데이터베이스
구성
- 분산 처리기 : 위치적으로 분산되어 있는 컴퓨터
- 분산 데이터베이스 : 해당 지역의 특성에 맞게 위치적으로 분산되어 있는 데이터베이스
- 통신 네트워크 : 분산 된 통신망을 하나로 연결하여 하나의 시스템 처럼 작동하는 네트워크
분산 데이터베이스의 목표
- 위치 투명성 : 물리적 저장 위치 보다 논리적 입장에서 모든 data가 자신의 사이트에 있는 것처럼 처리
- 중복 투명성, 병행 투명성, 장애 투명성
분산 데이터베이스의 특징
- 장점 : 지역자치성, 효용성, 융통성, 확장성, 신뢰성, 가용성, 운용성, 공유성
- 단점 : 복잡하고 비용증가, 중앙통제시 일관성 유지가 용이
분산 데이터베이스 설계시 고려사항
- 작업부하의 노드별 분산 정책, 지역의 자치성 보장 정책, 일관성 정책
요점정리
1. 데이터베이스 고급기능을 정리합니다.
시스템 카탈로그
뷰(VIEW)
트랜잭션
보안
병행제어
분산 데이터베이스
다음차시예고
수고하셨습니다. 다음 8주차에서는 “[DB-8강] 자료구조 – 선형구조와 비선형구조”에 대해서 학습하도록 하겠습니
다.
정보처리기사 필기 무료강의 제1과목[DB-09강] 자료구조-정렬과 검색 (0) | 2019.06.28 |
---|---|
정보처리기사 필기 무료강의 제1과목[DB-08강] 자료구조-선형구조, 비선형구조 (0) | 2019.06.28 |
정보처리기사 필기 무료강의 제1과목[DB-06강] SQL-DDL, DML, DCL (0) | 2019.06.28 |
정보처리기사 필기 무료강의 제1과목[DB-05강] 관계대수, 관계해석, SQL (0) | 2019.06.28 |
정보처리기사 필기 무료강의 제1과목[DB-04강] 물리적 설계, 관계 데이터 모델 (0) | 2019.06.28 |