노트

2 데이터 입출력 구현 - 2 본문

정보처리기사 정리

2 데이터 입출력 구현 - 2

blackmilktea 2024. 4. 16. 15:19

7. 관계 데이터베이스 모델

  • 튜플(Tuple) or 레코드(Recode); 행(Row), 카디널리티(Cardinality) = 튜플의 수
  • 속성(Attribute) or 필드(Field): 열(Column), 차수(Degree) = 속성의 수
  • 도메인(Domain): 하나의 속성이 가질 수 있는 값의 범위

관계 대수 - 절차적: 원하는 데이터를 찾기 위한 처리 과정을 명시

  • SELECT: 선택 - σ <조건> (테이블)  -> 조건을 만족하는 튜플의 부분 집합
  • PROJECT: 추출 - π <리스트> (테이블) -> 리스트에 제시된 속성 값만을 추출
  • JOIN: 연관된 튜플 결합 - R <조건> S -> 공통 속성을 중심으로 두 릴레이션을 하나로 합침
  • DIVISIN: 관련있는 튜플 반환 - R ÷ S -> R에서 S 조건에 맞는 것만 분리
  • ∪(Union), ∩(Intersection). -(Difference), ×(Cartersian Product)

관계 해석 - 비절차적: 원하는 정보가 무엇이라는 것만 정의

  • ∨(OR), ∧(AND), ᄀ(NOT), ∀(For All): 모든 가능한 튜플, ∃(There Exists): 어떤 튜플 하나라도 존재

8. 키와 무결성 제약조건

구성 방식에 따른 키 분류

  • Primary Key: 릴레이션에서 튜플을 유일하게 구분할 수 있는 속성
  • Foreign Key): 다른 릴레이션과의 관계에서 참조하고 있는 속성
  • 일반 속성: 릴레이션에 포함된 속성 중, PK와 FK가 아닌 속성

키 종류

  • 후보키(Candidate Key): 튜플을 유일하게 식별할 수 있는 속성들의 부분집합, 유일성 + 최소성 만족
  • 기본키(Primary Key): 후보키 중에서 선택한 Main Key, 중복되지 않은 고유한 값, NULL값 허용 X
  • 대체키(Alternate Key): 후보키가 둘 이상을 때 키본키를 제외한 나머지 후보키
  • 슈퍼키(Super Key): 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키, 모든 가능한 조합들, 유일성만 만족
  • 외래키(Foreign Key): 관계를 맺고 있는 릴레이션 R1, R2에서 R1이 참조하고 있는 R2의 기본키와 같은 속성

데이터베이스 무결성

  • 개체 무결성(Entity Integrity): 모든 릴레이션은 기본키(PK)를 가져야하며, 기본키를 구성하는 어떤 속성도 NULL 또는 중복값을 가징수 없음.
  • 참조 무결성(Referntial Integrity): 외래키 값은 NULL이거나 참조하는 릴레이션의 기본키 값과 동일해야 함. 각 릴레이션은 참조할 수 없는 외래키 값을 가질수 없음.

9. 병행제어와 데이터전환

  • 병행제어: 여러 트랜잭션이 동시에 실행되면서 DB의 일관성을 유지할 수 있게 하는 기법
  • 목적: DB일관성 유지 - 무결성 지킴

문제점

  • 갱신 분실(Loss Update): 두 개 이상의 트랜잭션이 같은 자료를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상
  • 비완료 읜존성(Uncommitted Dependency), 현황 파악오류(Dirty Read): 트랜잭션 수행이 실패한 후 회복되기 전에 다른 트랜잭션이 실패한 갱신 결과를 참조하느 현상
  • 모순성(Inconsistency): 두 개의 트랜잭션이 병행 수행될 때 원치 않는 자료를 이용함으로써 발생, 갱신 분실과 비슷해보이지만 여러 데이터를 가져올 때 발생힘.
  • 연쇄 복귀(Cascading Rollback): 병행 수행 된 트랜잭션 중 어느 하나에 문제가 생겨 Rollback하는 경우 다른 트랜잭션도 함께 Rollback 되는 현상

기법

  • Locking: 트랜잭션이 데이터에 접근하조가 할 때 수행, 다른 사람이 변경하지 못하게 함으로써 무결성, 일관성 유지
  • 낙관적 병행제어(Optimistic Concurrency Control): 어러 버전의 타임스탬프를 비교, 스케줄상 직렬 가능성이 보장되는 타임스탬프 선택

회복(Database Recovery)

트랜잭션을 수행하는 도중 장애로 인해 손상된 DB를 손상되기 이전의 정상적인 상태로 복구시키는 작업

  • 트랜잭션 장애, 시스템 장애, 미디어 장애

Undo: 취소하여 복구 수행

Redo: 재실행하여 복구 수행

회복 기법

로그 기반 회복 기법

  • 지연갱신 회복(Deferred Update): 커밋이 발생하기 전까지 DB에 기록 X 중간에 장애가 생기더라도 DB에 기록되지 않았으므로 Undo 사용 X
  • 즉시갱신 회복(Immediate Update): 트랜잭션 수행 도중에도 변경 내용을 즉시 데이터베이스에 기록, 커밋 발생 이전의 갱신은 원자성이 보장되지 않은 미완료 갱신이므로 장애 발생시 Undo 필요
  • 검사점 회복(Checkpoint): 장애 발생 시 검사점 이전에 처리된 트랜잭션은 회복에서 제외, 검사점 이후에 처리된 트랜잭션은 회복 작업 수행
  • 그림자 페이징 회복(Shadow Paging): 수행 전 복사본을 가지고 장애가 발생하면 교체
  • 미디어 회복(Media): 디스크와 같은 비휘발성 저장 장치가 손상되는 장애 발생을 대비
  • ARIES(Algorithms form Recovery and Isolation Exploiting Semantics): 분석단계 - REDO 단계 - UNDO 단계

데이터 전환

ETL(Extraction, Transformation, Loading)

기존의 원천 시스템에서 데이터를 추출(Extraction)하여

목적 시스템의 DB에 적합한 형식과 내용으로 변환(Transformation) 후

목적 시스템에 적재(Loading) 하는 일련의 과정

'정보처리기사 정리' 카테고리의 다른 글

4 서버 프로그램 구현  (0) 2024.04.17
3 통합 구현  (0) 2024.04.16
2 데이터 입출력 구현  (0) 2024.04.16
소프트웨어 설계의 기본 원칙  (0) 2024.04.15
요구사항 모델링  (0) 2024.04.13