[정의] 현실 세계의 업무 프로세스를 추상화하여 데이터베이스의 데이터로 표현하기 위한 설계 과정

 

[단계] 요구사항분석 -> 개념적 모델링 -> 논리적 모델링 -> 물리적 모델링
 - 개념적일수록 추상적 --> 물리적일수록 구체적


[개념적 모델링 ERD 작성절차]
1) 주제영역 선정 : 하위주제 영역 또는 데이터 집합들로 구성업무 기능과 대응(상향식, 하향식, Inside-out, 혼합식)
2) 핵심데이터 집합 선정(Entity) : 데이터의 보관 단위로서 주제영역에서 중심이 되는 데이터 집합을 정의(독립중심, 의존중심, 의존특성, 의존연관데이터)
3) 관계설정(Cardinality) : 업무적 연관성에 따라 개체간 갖는 relationship 설정(1:1, 1:N, M:N, 순환관계)
4) 핵심속성 정의(Attribute) : 데이터 집합의 특성을 나타내는 항목 ==> (핵심속성 : 원자단위검증, 유일값 유무판단, 관리수준 상세화 결정)
5) 식별자 정의 (Identifier) : 데이터 집합을 유일하게 식별해주는 속성(PK 로 구현), PK, CK, AK, FK 로 구분.

 

 

 


[논리적 모델링 주요 Task]
1) 엔티티타입 도출 - 기본, 중심, 행위 엔티티타입 도출
2) 관계 도출 - 엔티티 타입간의 관계 도출
3) 식별자 도출 - PK, FK, UK, AK 등에 대한 정의
4) 속성 도출 - 기본, 설계, 파생속성을 정의함
5) 세부사항 도출 - 용어사전, 도메인정의, 속성의 규칙(기본값, 체크값)등 정의
6) 정규화 - 1 차,2 차, 3 차, BCNF, 4 차, 5 차 정규화 적용
7) 통합/분할 - 엔티티타입의 성격에 따라 통합,분할 수행- 수퍼/서브 타입 모델링 수행
8) 완료기준 task: 데이터 모델 검증 - 엔티티타입, 속성, 관계 등에 대한 적합성 검증


[물리적 모델링 주요 변환단계]
(1)일괄전환 : 1) Entity 를 Table 로 전환 : Sub Type 설계 방안 -> 2) 식별자의 PK 정의 : Artificial Key 검토, PK 컬럼 순서 검토 -> 3) 속성을 컬럼으로 전환 : 영문 컬럼명 매핑, 데이터 타입/길이 결정, Domain 정의, 컬럼 순서 결정
4) 관계를 컬럼으로 전환 : 참조무결성 규칙 및 구현방향 결정
(2)구조조정 : 슈퍼타입/서브타입 모델 전환 : 트랜잭션의 성격에 따라 전체 통합, 부분 통합, 개별 유저에 대한 의사 결정을 통해 데이터 모델 조정
(3)성능향상 : 성능을 고려한 반정규화 : SQL 활용 능력의 미흡으로 인한 빈번한 비정규화는 배제하도록 신중하게 검토

 

 

 

'ITPE > DB' 카테고리의 다른 글

CRUD Matrix  (0) 2021.03.06
함수적 종속성  (0) 2021.03.06
ARIES (Algorithms for Recovery and Isolation Exploiting Semantics)  (0) 2021.03.06
MVCC (MultiVersion concurrency control)  (0) 2021.03.06
Timestamp Ordering  (0) 2021.03.06

 

 

 

[정의] REDO중 역사 반복(Repeating history) 붕괴가 발생했을 때의 데이터베이스 상태를 복구하기 위해, 붕괴 발생이전에 수행했던 모든 연산을 다시 한번 수행하는 알고리즘

 

[특징]
- UNDO : 붕괴가 발생했을 때 완료되지 않은 상태였던 진행 트랜잭션은 UNDO 됨
- UNDO 중 로깅하여 도중 실패 시 반복 하지 않음: UNDO를 할 때에도 로깅을 함으로써
회복을 수행하는 도중에 실패하여 회복을 다시 시작할 때에 이미 완료된 UNDO 연산은 반복하지 않음

- WAL(Write-Ahead Logging)방식을 이용 : 데이터베이스 시스템에서 ACID의 특성 가운데 원자성과 내구성을 제공하는 기술의 한 계열이다. WAL을 사용하는 시스템에서 모든 수정은 적용 이전에 로그에 기록된다.

 

 


[회복 알고리즘의 3단계]
1단계) 분석단계 : 붕괴가 발생한 시점에 버퍼에 있는 수정된 페이지와 진행 트랜잭션을 파악,
REDO가 시작되어야 하는 로그의 위치를 결정
2단계) REDO단계 : 분석 단계에서 결정한 REDO 시작 위치의 로그로부터 로그가 끝날 때 까지 REDO를 수행,
REDO 된 로그 레코드의 리스틀 관리하여 불 필요한 REDO 연산이 수행되지 않도록 함
3단계) UNDO단계 : 로그를 역순으로 읽으면서 진행 트랜잭션의 연산을 역순으로 UNDO 함


[필요정보]
- 로그(LOG) : 페이지에 대한 갱신(write), 트랜잭션 완료(commit), 트랜잭션 철회(abort), 갱신에 대한 UNDO, 트랜잭션 종료(end) 시 기록, 각 로그 레코드마다 로그 순차번호LSN 할당. (LSN: 디스크에 저장된 로그 레코드의 주소로서 단조 증가 –Log Sequence Number)
- 트랜잭션 테이블 : 진행 트랜잭션에 대한 정보(트랜잭션 식별자, 트랜잭션 상태, 해당 트랜잭션의 가장 최근 로그레코드의 LSN 관리)
- 오손 페이지 테이블(dirty page table) : 버퍼에 있는 오손 페이지에 대한 정보(페이지 식별자, 해당 페이지에 대한 가장 최근 로그 레코드 LSN 관리)

 

 

 

 

[ARIES에서의 검사점 기록]

1.로그에 begin_checkpoint 레코드를 기록하기

2.로그에 end_checkpoint 레코드를 기록하기

   트랜잭션 테이블과 오손 페이지 테이블의 내용도 함께 저장한다.

3.특수 화일에 begin_checkpoint 레코드의 LSN을 기록하기

 

 

[ARIES에서 회복의 예]

(a) 붕괴시의 로그

 

(b) 검사점을 기록할 때의 트랜잭션 테이블과 오손 페이지 테이블

 

(c) 분석단계가 끝난 후의 트랜잭션 테이블과 오손 페이지 테이블

 

 

 

'ITPE > DB' 카테고리의 다른 글

함수적 종속성  (0) 2021.03.06
데이터 모델링  (0) 2021.03.06
MVCC (MultiVersion concurrency control)  (0) 2021.03.06
Timestamp Ordering  (0) 2021.03.06
낙관적 검증(Validation)  (0) 2021.03.06

 

 

 

 

 

 

[정의] 트랜잭션이 한 데이터 아이템을 접근하려 할 때, 그 트랜잭션의 타임스탬프와 접근하려는 데이터 아이템의 여러 버전의 타임스탬프를 비교하여, 현재 실행하고 있는 스케줄의 직렬가능성이 보장되는 적절한 버전을 선택하여 접근하도록 하는 기법

 

[특징]  판독 요청을 거절하지도, 대기하지도 않음.  트랜잭션간의 충돌문제는 대기가 아니라 복귀처리 함으로 연쇄 복귀초래 발생 가능성

 

 

 

 

 

 

[동작설명]
1) 데이터를 변경할 때마다 그 변경사항을 Undo 영역에 저장해 둔다
2) 트랜잭션 시작 시점 이후에 변경된(진행 중이거나 이미 커밋된) 값을 발견하면,
    Undo 영역에 저장된 정보를 이용, CR Copy 를 생성하여 그것을 읽는다. (SCN 이용)
3) 쿼리 도중에 배타적 Lock 이 걸린, 즉 변경이 진행 중인 레코드를 만나도 진행가능
※ SCN(System Change Number) : commit 발생시, 트랜잭션에 연속증가, 고유번호

※ CR Block : 읽기 일관성(Consistent Read) Block 아래 그림에서는 Data Block을 의미


 

 

 

 

 

 

 

 

 

'ITPE > DB' 카테고리의 다른 글

데이터 모델링  (0) 2021.03.06
ARIES (Algorithms for Recovery and Isolation Exploiting Semantics)  (0) 2021.03.06
Timestamp Ordering  (0) 2021.03.06
낙관적 검증(Validation)  (0) 2021.03.06
무결성  (0) 2018.03.03

+ Recent posts