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

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

by HJ0216 2023. 7. 9.

정보처리기사

데이터 모델링 3단계

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

 

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

erd

 

관계해석 논리 기호

  • ∀: 모든
  • ∃: 어떤 하나라도
  • ∨: or
  • ∧: and
  • ¬: not

 

용어

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

 

관계 대수식

∏이름(σ학과='교육'(학생))


= SELECT 이름 FROM 학생 WHERE 학과='교육'

 

Transaction

transaction

 

집합 연산자

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

 

분산 데이터베이스

구성요소

  1. 분산 처리기: 자체적으로 처리 능력을 가지며, 지리적으로 분산되어 있는 컴퓨터 시스템
  2. 분산 데이터베이스: 지리적으로 분산되어 있는 데이터베이스
  3. 통신 네트워크: 분산처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 통신 네트워크

투명성

  1. 분할 투명성: 하나의 논리적 Relation이 여러 단편으로 분할되어 각 단편의 사본이 여러 site에 저장
  2. 위치 투명성: 사용하려는 데이터의 저장 장소 명시 불필요
  3. 지역사상 투명성: 각 지역시스템 이름과 무관한 이름 사용 가능
  4. 중복 투명성: DB 객체가 여러 site에 중복 되어 있는지 알 필요가 없는 성질
  5. 장애 투명성: 장애에 무관한 Transaction의 원자성 유지
  6. 병행 투명성: 다수 Transaction 동시 수행 시 결과의 일관성 유지

병행 문제점

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

병행 제어

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

 

 

 

참고 자료

 

흥달쌤

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

www.youtube.com

 

ER다이어그램 쉽게 그리는 프로그램?

EdrawMax는 깔끔한 인터페이스에 한국어까지 지원해서 사용하기 무척 편리하고, 무료 템플릿 수천 개가 내장되어 있어 처음 사용하는 사람도 쉽고 빠르게 다이어그램을 만들 수 있습니다.

www.edrawsoft.com

 

[DB] 9. 트랜잭션(Transaction) - (1) 특성, ACID, 연산, 상태

[목차] 1. 트랜잭션(Transaction)이란? 2. 트랜잭션의 특성 3. 트랜잭션의 연산 4. 트랜잭션의 상태 1. 트랜잭션(Transaction)이란? 트랜잭션(Transaction)은 데이터베이스에서의 논리적 작업 단위이다. 하나의

rebro.kr

 

[DB] 분산 데이터베이스

1. 분산 데이터베이스의 정의- 분산 데이터베이스는 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 컴퓨터 사이트에 분산되어 있는 데이터베이스를

jess2.tistory.com

 

분산 데이터베이스와 성능

1. 분산 데이터베이스의 개요 1990년대에는 데이터베이스를 분산하여 저장하고 그것을 하나의 데이터베이스로 인식하여 사용하는 기술은 아주 난이도가 높은 고급기술로 인식되었다. 2000년도에

dataonair.or.kr

 

[데이터베이스] 병행 제어(Concurrency Control)

병행제어란 여러개의 트랜잭션이 실행될 때 트랜잭션들이 데이터베이스의 일관성을 파괴하지 않고 다른 트랜잭션에 영향을 주지 않으면서 트랜잭션을 제어하는 것을 의미합니다. 병행제어의

kosaf04pyh.tistory.com

 

병행 제어 기법 - 다중 버전 병행 제어(MVCC)

다중 버전 병행 제어(Multi Version Concurrency Control, MVCC) 트랜잭션의 데이터 접근 시, 그 트랜잭션의 타임스탬프와 접근 데이터의 여러 버전의 타임스탬프를 비교하여, 현재 실행 중인 스케줄의 직렬

peimsam.tistory.com