정보처리기사
벙렬 DB 분할 기법
- 목록 분할: 특정 컬럼의 특정값을 기준으로 분할
- 범위 분할
- 해시 분할: 특정 컬럼값에 해시 함수를 적용하여 분할
- 합성 분할: 여러개의 분할 기법 적용
- 라운드로빈 분할: 순차적으로 회전하면서 분할
- UNION: 중복을 제거한 합집합
- UNION ALL: 중복을 제거하지 않은 합집합
- INTERSECT: 교집합
- MINUS: 차집합(A1 - B1)
병행 문제점
- 비완료 의존성: 아직 Commit되지 않은 Transaction을 읽으려는 경우
- 모순성: 데이터베이스의 일관성을 해치는 경우
- 연쇄 복귀: 두개의 트랜잭션 중 한 개의 트랜잭션이 성공적으로 일을 수행하였다 하더라도 다른 트랜잭션이 처리하는 과정에서 실패하게 되면 두 개의 트랜잭션 모두가 복귀되는 경우
- 갱신분실: 두 개의 트랜잭션이 같은 데이터에 대해서 동시에 갱신 작업을 하면 하나의 갱신 작업이 분실되는 경우
병행 제어
- 로킹(Locking)
: 트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹을 수행하며 로킹을 한 트랜잭션만이 로킹을 해제할 수 있음 - 2단계 로킹 규약
: 트랜잭션이 확장단계(Key 획득)와 축소단계(Key 반납)를 구분하여 실행됨 - 타임스탬프(Time Stamp)
: Transaction 간의 처리순서를 미리 결정 - 다중 버전 병행제어(Multi-version Concurrency Control)
: 트랜잭션의 데이터 접근 시, 해당 트랜잭션의 타임스탬프와 접근 데이터의 여러 버전의 타임스탬프를 비교하여 현재 실행중인 스케쥴의 직렬 가능성이 보장되는 버전 선택 - 낙관적 병행제어(Optimistic Concurrency Control)
: 트랜잭션 수행 동안은 어떠한 검사도 하지 않고, 트랜잭션 종료 시에 일괄적으로 검사
데이터 모델링 3단계
- 개념
- ERD 생성
- 트랜잭션 모델링
- 개념 스키마 설계
- 논리
- 정규화
- Transaction Interface 설계
- 개념 스키마를 평가 및 정제
- 물리
- 성능 향상(인덱스, 파티션, 반정규화 등)
- 물리적 스키마 설계
PK 무결성
- 개체 무결성: Not Null & Unique
- 참조 무결성: 외래키 값은 피참조 릴레이션의 기본키 값이거나 NULL 값임
- 도메인 무결성: 속성 (Attribute) 값은 해당 속성 (Attribute) 도메인에 속한 값들 중 하나이어야 함
- 키 무결성: 테이블에 최소 1개의 키가 존재해야 함
트랜젝션 성질
- 원자성(Atomicity): One or Nothing
- 일관성(Consistency): 무결성
- 격리성(Isolation)
- 영속성(Durability)
순수 관계 연산자
- SELECT: σ
- PROJECT: ∏, 결과로 반환하는 연산자(SELECT 다음에 위치)
- JOIN: ▷◁
- DIVISION: ÷, 차집합
용어
- 튜플(Tuple):
- = 개체 인스턴스, 릴레이션 인스턴스
- 릴레이션을 구성하는 각각의 행
- 하나의 릴레이션에 포함된 튜플은 모두 상이
- 속성의 모임
- 튜플의 수: 카디널리티(Cardinality) 또는 기수
- 속성(Attribute):
- = 개체 스키마, 릴레이션 스키마
- 데이터베이스를 구성하는 가장 작은 논리적 단위
- 개체의 특성을 기술
- 속성의 수를 디그리(Degree) 또는 차수
- 도메인(Domain)
- 하나의 속성(attribute)이 취할 수 있는 같은 타입의 원자값들의 집합
E-R 다이어그램(ERD) 속성 표기법
정규형
- 데이터베이스 내의 데이터들이 불필요하게 중복돼 릴레이션 조작 시 예상치 못한 문제가 발생하는 이상 현상 제거
- 삽입 이상: 릴레이션(테이블)에 데이터를 삽입할 때 의도와는 상관없는 값들도 함께 삽입되는 현상
- 삭제 이상: 릴레이션에서 한 튜플(행)을 삭제할 때 의도와는 상관없는 값들이 삭제되는 연쇄가 일어나는 현상
- 갱신 이상: 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되며 정보에 모순이 생기는 현상
- 반정규화: 성능향상을 위해 실행
참고자료
'Certificate > 정보처리기사' 카테고리의 다른 글
[정보처리기사] 2021년 2회차 (5)정보시스템 구축관리 (0) | 2023.07.13 |
---|---|
[정보처리기사] 2021년 2회차 (4)프로그래밍 언어 활용 (0) | 2023.07.12 |
[정보처리기사] 2021년 2회차 (2)소프트웨어 개발 (0) | 2023.07.12 |
[정보처리기사] 2021년 2회차 (1)소프트웨어 설계 (0) | 2023.07.12 |
[정보처리기사] 2021년 3회차 (5)정보시스템 구축관리 (0) | 2023.07.11 |