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

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

by HJ0216 2023. 7. 11.

정보처리기사

PK 무결성

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

 

트랜젝션 성질

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

 

데이터 모델링 3단계

  1. 개념
    • ERD 생성
  2. 논리
    • 정규화
    • Transaction Interface 설계
  3. 물리
    • 성능 향상(인덱스, 파티션, 반정규화 등)
    • Transaction 작성
    • 특정 DBMS에 종속

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

erd

 

순수 관계 연산자

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

 

병행 문제점

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

병행 제어

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

Locking

  • 단위↑ → 병행성↓ & 오버헤드↓ & 제어기법 복잡성↓

 

관계 대수(Relation Algebra) & 관계 해석 (Relation Calculus)

관계 대수(Relation Algebra)

  • 절차적 언어
  • 원하는 정보를 얻기 위해 어떻게 (how) 질의를 해석하는지를 기술관계 해석 (Relation Calculus)
  • 비절차적 언어
  • 원하는 정보가 무엇 (what) 인지만 명시

 

정규형

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

 

X → Y: Y는 X에 함수 종속이다.

 

 

 

참고 자료

 

흥달쌤

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

www.youtube.com