- 관계 대수(Relation Algebra)
관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어
- 순수관계 연산자
- select : 시그마(σ) : σ(조건)(R)
- project : 파이(π) : π(속성리스트)(R) : 주어진 릴레이션에서 속성 리스트에 제시된 애트리뷰트만을 추출하는 연산, 수직 연산자
- join : 조인(⋈) : R⋈키속성r=키속성sS : 공통 속성을 중심으로 두개의 릴레이션을 하나로 합쳐서 새로운 릴레이션을 만듦 -> =, ≠, <, >, ≤ 등 비교 연산자를 θ로 일반화하여 세타조인이라고도 함
- division : ÷ : 릴레이션 R(X), S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진속성을 제외 -> R[속성r ÷ 속성s]S
- 일반 집합 연산자
- 합집합(Union) : R ∪ S -> 중복되는 튜플은 제거 -> 카디널리티 |R ∪ S| ≤ |R| + |S|
- 교집합(Intersection) : R ∩ S -> |R ∩ S| ≤ MIN{|R|,|S|}
- 차집합(Difference) : R - S -> |R - S| ≤ |R|
- 교차곱(Cartesioan Product) : R X S -> |R X S| = |R| x |S| -> 두 릴레이션에 있는 튜플들의 순서쌍을 구하는 연산
- 데이터베이스 트랜잭션데이터베이스 상태를 변환시키기 위해서 수행하는 작업의 단위
- 원자성(Atomicity) : 분해가 불가능한 최소단위, 연산 전체가 성공 혹은 실패
- 일관성(Consistency) : 항상 모순없이 일관성 있는 DB 상태 보존
- 고립성(Isolation) : 트랜잭션 실행 중 생성하는 연산의 중간결과를 다른 트랜잭션이 접근 불가
- 영속성(Durability) : 성공이 완료된 트랜잭션의 결과는 영구적으로 DB에 기록됨
- Commit : 하나의 트랜잭션이 끝났나라는 것을 알려주기 위해 사용
- RollBack : 트랜잭션을 처음부터 다시 시작하거나 부분적으로만 연산된 결과 취소
- 트랜잭션 상태
- 활동 상태
- 부분 완료 상태
- 완료 상태
- 실패 상태
- 철회 상태
- 회복
트랜잭션을 실행하는 도중 장애(Failure)가 발생하여 데이터베이스가 손상되었을 경우 손상되기 이전의 정상 상태로 복구하는 작업
-> 장애 유형
- 실행 장애
- 트랜잭션 장애
- 시스템 장애
- 미디어 장애
- 회복 기법
- 지연 갱신(Deferred Update) 기법
트랜잭션이 성공적으로 종료될 때 까지 데이터베이스에 대한 실질적인 갱신을 연기
-> 트랜잭션이 실행되는 동안 변경된 내용은 로그에 보관
-> RollBack되면 실제 DB에 영향을 미치지 않기 때문에 어떠한 변경 내용도 취소 시킬 필요 없음
- 즉시 갱신 기법(Immediate Update)
트랜잭션이 데이터를 변경하면 트랜잭셔이 부분완료되기 전이라도 즉시 실제 데이터베이스에 반영
-> 변경된 모든 내용 로그 보관
-> 회복 작업 수행 시 Redo, Undo
- 그림자 페이지(Shadow Paging) 기법
갱신 이전의 데이터베이스를 일정크기의 페이지 단위로 구성, 각 페이지마다 복사본 그림자 페이지 별도 보관, 실제 페이지 대상으로 트랜잭션에 대한 변경 작업 수행
-> RollBack 시 그림자 페이지를 변경된 실제 페이지와 대체
- 검사점 기법
Redo, Undo 수행 시 로그 전체 조사를 피하기 위해
-> 주기적으로 검사점을 로그에 보관, 가장 최근 검사점으로부터 회복 작업 수행
- 미디어 회복 기법
안전한 저장장치에 덤프, 로그 이용하여 최근 덤프 이후의 트랜잭션 Redo
- 병행 제어 기법(Concurrency Control)
다중 사용자 환경을 지원하는 데이터베이스 시스템에서 여러 트랜잭션들이 성공적으로 동시에 실행 될 수 있도록 -> 동시성 제어
- 병행 제어를 하지 않을 경우
- 갱신 내용 손실 : 동일 데이터를 동시에 갱신할 경우 -> 이전 트랜잭션이 데이터를 갱신한 후 트랜잭션을 종료하기 전에 나중 트랜잭션이 갱신 값을 덮어씀
- 현황 파악 오류(Dirty Read) : 트랜잭션의 중간 수행 결과를 다른 트랜잭션이 참조함으로써 발생
- 모순성 : 복수의 사용자가 동시에 DB를 Acess하여 갱신한 결과 DB내의 DATA들이 상호 일치하지 않음
- 연쇄 복귀(Cascading RollBack) 혹은 회복 불능(Unrecoverability) : 복수의 트랜잭션이 Data 공유시 특정 트랜잭션이 처리의 취소를 하고자 할때 다른 트랜잭션이 이미 처리한 부분에 대해서는 취소 불가한 상태 발생
- 2단계 잠금 기법(2 Phase Locking)
- 확장 단계 : 트랜잭션에서 잠금만 수행
- 차단 단계 : 데이터 연산만 수행
- 수축 단계 : 트랜잭션에서 해제만 수행
- 타임스탬프 순서 기법
트랜잭션 순서 규칙은 해당 트랜잭션의 도착시간 별로 타임스탬프 할당, 먼저 온 트랜잭션이 우선
* 잠금 : 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것
-> 잠금 -> 실행 -> 해제
* 잠금 단위 : 병행 제어에서 한번에 잠글 수 있는 단위
* 교착상태 : 한 트랜잭션이 사용하기 위해 잠가 놓은 자원을 사용하기 위해 기다리므로 실행을 전혀 진전시키지 못하고 무한정 기다릴 때
-> 상호배제, 환형대기, 점유대기, 비선점
- 검증(Validation) 기법
먼저 메모리 상에서 복사복에 대한 연산 수행 후 검증 완료 시 DBMS에 반영
- 읽기 단계 : 메모리 상에서 데이터 연산
- 검증 단계 : 트랜잭션의 직렬성을 확인하는 단계
- 쓰기 단계 : 검증 성공 시 Commit, 실패 시 RollBack
- SQL
- Truncate : 테이블의 모든 행 삭제, RollBack 불가
- MERGE : 대상 테이블을 조인하여 입력/수정/삭제를 한번에 할 수 있는 구문
MERGE INTO table1 USING table2
ON (Condition)
WHEN MATCHED THEN
UPDATE ~
DELETE ~
WHEN NOT MATCHED THEN
INSERT ~ ;
'전공 > 정보처리기사 실기' 카테고리의 다른 글
정보처리기사 실기 - 10. 응용 SW 기초 기술 활용(7) /흐름제어/혼잡제어/UDP/라우팅 (0) | 2021.05.21 |
---|---|
정보처리기사 실기 - 10. 응용 SW 기초 기술 활용(6) /네트워크 기초 활용하기 -1 (0) | 2021.05.17 |
정보처리기사 실기 - 10. 응용 SW 기초 기술 활용(4) /데이터베이스 기초 활용하기 -1 (0) | 2021.05.16 |
정보처리기사 실기 - 10 . 응용 SW 기초 기술 활용(3) /운영체제 기초 활용하기 -3 (0) | 2021.05.15 |
정보처리기사 실기 - 10. 응용 SW 기초 기술 활용(2) /운영체제 기초 활용하기 -2 (0) | 2021.05.15 |