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

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

by HJ0216 2023. 7. 18.

정보처리기사

용어

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

 

트랜젝션 성질

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

 

PK 무결성

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

 

스키마

: DB의 구조와 제약 조건에 관한 전반적이 명세(Specification)를 기술(Description) 한 메타데이터(DB에 대한 데이터)의 집합

  1. 외부 스키마
    : 사용자의 입장에서 필요로 하는 DB의 논리적 구조
  2. 개념 스키마
    : DB의 전체를 정의, 조직 전체의 DB로 하나만 존재
  3. 내부 스키마
    : 물리적인 저장장치의 입장에서 본 DB의 논리적 구조
  • 독립성
    • 논리적 독립성: 개념 스키마의 변경은 외부 스키마에 영향을 미치지 않음
    • 물리적 독립성: 내부 스키마의 변경은 개념, 외부 스키마에 영향을 미치지 않음
      (varchar2(10) ▶ varchar2(30)으로 변경한다고 해서 외부스키마와 개념스키마에 영향 X)

 

투명성

  1. 분할 투명성(Division Transparency): 하나의 데이터가 여러 장소에 저장
  2. 위치 투명성(Location Transparency): 호출된 데이터의 위치
  3. 지역사상 투명성: 각 지역시스템 이름과 무관한 이름 사용 가능
  4. 중복 투명성(Replication Transparency): 자료의 중복
  5. 장애 투명성(Failure Transparency): 장애에 무관한 Transaction의 원자성 유지
  6. 병행 투명성(Concurrency Transparency): 다수 Transaction 동시 수행 시 결과의 일관성 유지

 

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

관계 대수(Relation Algebra)

  • 주어진 릴레이션 조작을 위한 연산 집합
    • 일반 집합 연산: 합집합(∪), 교집합(∩), 차집합(-), 카티션 프로덕트(X)
    • 순수 관계 연산: SELECT(σ), PROJECT(∏), DIVISION(÷), JOIN(▷◁)
      • DIVISION(÷)
        • R ÷ S: R 튜플 중 S에 속한 튜플 중 S에 속하지 않은 속성값 추출
  • 절차적 언어
  • 원하는 정보를 얻기 위해 어떻게 (how) 질의를 해석하는지를 기술관계 해석 (Relation Calculus)
  • 비절차적 언어
  • 원하는 정보가 무엇 (what) 인지만 명시

 

데이터 베이스 회복 기법

  • 로그 기반 회복 기법
    • 즉각 갱신 기법
      • 데이터 변경 시 로그와 DB에 즉시 갱신
      • 커밋되기 전에 장애가 나면 UNDO, 커밋 후에 장애가 나면 REDO를 수행
    • 지연 갱신 기법
      • 트랜잭션 커밋 완료까지 갱신 내용을 로그에만 저장하고 DB에 저장하지 않고 지연
      • 중간에 갱신을 하지 않았음으로 UNDO가 필요 없고, REDO만 하면 됨
    • 체크포인트 회복기법
      • 로그 기록을 이용하되, 일정 시간 간격으로 검사 시점(Checkpoint)을 만들어두고 장애가 발생하면 가장 최근 검사 시점 이전의 트랜잭션에는 회복 작업을 수행하지 않고, 이후의 트랜잭션에만 회복 작업을 수행
  • 비로그 기반 회복 기법
    • 그림자 페이징 기법
      • 로그를 사용하지 않고, 트랜잭션 실행동안 현재 페이지 테이블과 그림자 페이지 테이블 2개를 관리하는 기법
      • 데이터 변경 시 현재 페이지 테이블만 변경, 회복 시 현재 페이지 테이블을 그림자 테이블로 대체
    • 미디어 회복기법
      • 디스크와 같은 비휘발성 저장 장치의 내용이 손상되는 장애 발생 시 회복을 위한 기법

REDO는 영속성을 보장 / UNDO는 원자성을 보장

 

데이터 모델링 3단계

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

 

정규형

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

 

트랜젝션 상태 변화

transaction_state_change

 

 

 

참고 자료

 

흥달쌤

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

www.youtube.com

 

데이터 베이스 회복기법

[데이터베이스] 회복과 병행제어(회복 기법)