본문 바로가기
Certificate/정보처리기사

[정보처리기사] 2021년 2회차 (3)데이터베이스 설계

by HJ0216 2023. 7. 12.

정보처리기사

벙렬 DB 분할 기법

parallel_db

  • 목록 분할: 특정 컬럼의 특정값을 기준으로 분할
  • 범위 분할
  • 해시 분할: 특정 컬럼값에 해시 함수를 적용하여 분할
  • 합성 분할: 여러개의 분할 기법 적용
  • 라운드로빈 분할: 순차적으로 회전하면서 분할

 

  • UNION: 중복을 제거한 합집합
  • UNION ALL: 중복을 제거하지 않은 합집합
  • INTERSECT: 교집합
  • MINUS: 차집합(A1 - B1)

 

병행 문제점

  1. 비완료 의존성: 아직 Commit되지 않은 Transaction을 읽으려는 경우
  2. 모순성: 데이터베이스의 일관성을 해치는 경우
  3. 연쇄 복귀: 두개의 트랜잭션 중 한 개의 트랜잭션이 성공적으로 일을 수행하였다 하더라도 다른 트랜잭션이 처리하는 과정에서 실패하게 되면 두 개의 트랜잭션 모두가 복귀되는 경우
  4. 갱신분실: 두 개의 트랜잭션이 같은 데이터에 대해서 동시에 갱신 작업을 하면 하나의 갱신 작업이 분실되는 경우

병행 제어

  1. 로킹(Locking)
    : 트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹을 수행하며 로킹을 한 트랜잭션만이 로킹을 해제할 수 있음
  2. 2단계 로킹 규약
    : 트랜잭션이 확장단계(Key 획득)와 축소단계(Key 반납)를 구분하여 실행됨
  3. 타임스탬프(Time Stamp)
    : Transaction 간의 처리순서를 미리 결정
  4. 다중 버전 병행제어(Multi-version Concurrency Control)
    : 트랜잭션의 데이터 접근 시, 해당 트랜잭션의 타임스탬프와 접근 데이터의 여러 버전의 타임스탬프를 비교하여 현재 실행중인 스케쥴의 직렬 가능성이 보장되는 버전 선택
  5. 낙관적 병행제어(Optimistic Concurrency Control)
    : 트랜잭션 수행 동안은 어떠한 검사도 하지 않고, 트랜잭션 종료 시에 일괄적으로 검사

 

데이터 모델링 3단계

  1. 개념
    • ERD 생성
    • 트랜잭션 모델링
    • 개념 스키마 설계
  2. 논리
    • 정규화
    • Transaction Interface 설계
    • 개념 스키마를 평가 및 정제
  3. 물리
    • 성능 향상(인덱스, 파티션, 반정규화 등)
    • 물리적 스키마 설계

 

PK 무결성

  1. 개체 무결성: Not Null & Unique
  2. 참조 무결성: 외래키 값은 피참조 릴레이션의 기본키 값이거나 NULL 값임참조_무결성
  3. 도메인 무결성: 속성 (Attribute) 값은 해당 속성 (Attribute) 도메인에 속한 값들 중 하나이어야 함
  4. 키 무결성: 테이블에 최소 1개의 키가 존재해야 함

 

트랜젝션 성질

  1. 원자성(Atomicity): One or Nothing
  2. 일관성(Consistency): 무결성
  3. 격리성(Isolation)
  4. 영속성(Durability)

 

순수 관계 연산자

  • SELECT: σ
  • PROJECT: ∏, 결과로 반환하는 연산자(SELECT 다음에 위치)
  • JOIN: ▷◁
  • DIVISION: ÷, 차집합

 

용어

  • 튜플(Tuple):
    • = 개체 인스턴스, 릴레이션 인스턴스
    • 릴레이션을 구성하는 각각의 행
    • 하나의 릴레이션에 포함된 튜플은 모두 상이
    • 속성의 모임
    • 튜플의 수: 카디널리티(Cardinality) 또는 기수
  • 속성(Attribute):
    • = 개체 스키마, 릴레이션 스키마
    • 데이터베이스를 구성하는 가장 작은 논리적 단위
    • 개체의 특성을 기술
    • 속성의 수를 디그리(Degree) 또는 차수
  • 도메인(Domain)
    • 하나의 속성(attribute)이 취할 수 있는 같은 타입의 원자값들의 집합

 

E-R 다이어그램(ERD) 속성 표기법

erd

 

정규형

  • 데이터베이스 내의 데이터들이 불필요하게 중복돼 릴레이션 조작 시 예상치 못한 문제가 발생하는 이상 현상 제거
    • 삽입 이상: 릴레이션(테이블)에 데이터를 삽입할 때 의도와는 상관없는 값들도 함께 삽입되는 현상
    • 삭제 이상: 릴레이션에서 한 튜플(행)을 삭제할 때 의도와는 상관없는 값들이 삭제되는 연쇄가 일어나는 현상
    • 갱신 이상: 릴레이션에서 튜플에 있는 속성값을 갱신할 때 일부 튜플의 정보만 갱신되며 정보에 모순이 생기는 현상
  • 반정규화: 성능향상을 위해 실행

 

 

 

참고자료

 

흥달쌤

흥달쌤과 함께하는 IT 채널입니다. 정보처리기사 자격증 관련된 강의 및 실무 노하우, 프로그래밍 언어(JAVA, C언어, Python) 특강 등이 진행됩니다. 앞으로 진행 예정인 동영상은 IT 관련된 이야기

www.youtube.com

 

병렬 데이터베이스의 분할 기법

병렬 데이터베이스란 성능 개선을 목적으로 병렬 컴퓨팅을 통해 데이터 적재, 색인 빌드, 쿼리 평가 등의 데이터베이스 기능들을 수행한다. 특징 다수의 마이크로프로세서를 동시에 사용하여

devgraphy.tistory.com