공부/정보처리기사

2장 데이터 입/출력 구현

edcrfv458 2025. 6. 30. 18:07

스키마

  • 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
  • 종류
    • 외부 스키마: 사용자나 응용 프로그래머가 각 개인의 입장에서 필요로 하는 데이터베이스의 논리적 구조를 정의
    • 개념 스키마: 사용자들이 필요로 하는 데이터를 종합한 조직 전체의 데이터베이스로, 하나만 존재
    • 내부 스키마: 실제로 저장될 레코드의 형식, 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등

 

데이터베이스 설계 순서

  • 요구 조건 분석: 요구 조건 명세서 작성
  • 개념적 설계: 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
    • 요구 조건 명세를 DBMS에 독립적인 E-R 다이어그램으로 작성
  • 논리적 설계: 현실 세계에서 발생하는 자료를 특정 DBMS가 지원하는 논리적 자료 구조로 변환시키는 과정
    • 개념 스키마를 평가 및 정제하고 DBMS에 따라 서로 다른 논리적 스키마 설계하는 단계
  • 물리적 설계: 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
  • 구현: 목표 DBMS의 DDL로 데이터베이스 생성, 트랜잭션 작성

 

관계형 데이터베이스의 릴레이션 구조

  • 릴레이션: 데이터들을 표 형태로 표현한 것

학생 릴레이션

 

  • 후보키 (Candidate): 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
    • 기본 키로 사용가능한 속성
    • 유일성 만족 O, 최소성 만족 O
  • 대체키 (Alternate): 후보키가 둘 이상일 때 기본키 제외한 나머지 후보키
  • 슈퍼키: 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
    • 유일성 만족 O, 최소성 만족 X
  • 외래키 (Foreign): 다른 릴레이션의 기본키 참조하는 속성 또는 속성들의 집합

 

무결성

  • 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치하는 정확성 의미
  • 개체 무결성: 기본 키를 구성하는 어떤 속성도 null 값 또는 중복값을 가질 수 없음
  • 참조 무결성: 외래키 값은 null이거나 참조 릴레이션의 기본키 값과 동일해야 함

 

순수 관계 연산자

    • Select: 릴레이션에 존재하는 튜플 중 선택 조건을 만족하는 튜플의 부분집합을 구해 새로운 릴레이션을 만드는 연산
      • σ (시그마)
    • Project: 릴레이션에서 속성 리스트에 제시된 속성 값만을 추출해 새로운 릴레이션 만드는 연산
      • 𝝅 (파이)
    • Join: 공통 속성을 중심으로 두 개의 릴레이션을 하나로 합쳐 새로운 릴레이션 만드는 연산
    • Division: Y ⊂ X인 두 개의 릴레이션 R(X)와 S(Y)가 있을 때, R의 속성이 S의 속성값을 모두 가진 튜플에서 S가 가진 속성을 제외한 속성만을 구하는 연산
      • ÷

 

일반 집합 연산자

  • 합집합 (UNION): 두 릴레이션에 존재하는 튜플의 합집합을 구하되, 중복되는 튜플은 제거
  • 교집합 (INTERSECTION): 두 릴레이션에 존재하는 튜플의 교집합을 구하는 연산
  • 차집합 (DIFFERENCE): 두 릴레이션에 존재하는 튜플의 차집합 구하는 연산
    • -
  • 교차곱 (CARTESIAN PRODUCT): 두 릴레이션에 있는 튜플들의 순서쌍 구하는 연산
    • X
      • 교차곱의 Degree는 두 릴레이션의 Degree의 합
      • Cardinality는 두 릴레이션의 Cardinality의 곱

 

이상 (Anomaly)

  • 데이터들이 불필요하게 중복되어 릴레이션 조작 시 예기치 않게 발생하는 현상
    • 삽입 (Insertion) 이상: 테이블에 데이터 삽입 시 의도와는 상관없이 원하지 않은 갑들로 인해 삽입할 수 없는 현상
    • 삭제 (Deletion) 이상: 테이블에서 튜플 삭제 시 의도와는 상관없는 값들도 함께 삭제(연쇄 삭제)되는 현상
    • 갱신 (Update) 이상: 테이블에서 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보에 불일치성이 생기는 현상

 

함수적 종속 (Functional Dependency)

  • 테이블 R에서 X와 Y를 각각 R의 속성 집합의 부분 집합이라고 할 때,
  • 속성 X의 값 각각에 대해 시간에 관계없이 항상 속성 Y의 값이 오직 하나만 연관되어있는 경우
  • X → Y
    • 완전 (Full) 함수적 종속: 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대해 함수적 종속이면서, 속성 집합 X의 어떠한 진부분 집합 Z(즉, Z X)에도 함수적 종속이 아닌 경우
    • 부분 (Partial) 함수적 종속: 테이블 R에서 속성 Y가 다른 속성 집합 X 전체에 대해 함수적 종속이면서, 속성 집합 X의 임의의 진부분 집합에 대해 함수적 종속인 경우
    • 이행적 (Transitive) 함수적 종속: X → Y 이고 Y → Z 일 때 X → Z 만족하는 관계

 

정규화 과정 (도부이결다조)

  • 제 1정규형 (1NF): 모든 속성의 도메인이 원자 값만으로 되어 있는 정규형
  • 제 2정규형 (2NF): 기본키가 아닌 모든 속성이 기본키에 대해 완전 함수적 종속을 만족하는 정규형
  • 제 3정규형 (3NF): 기본키가 아닌 모든 속성이 기본키에 대해 이행적 함수적 종속을 만족하지 않는 정규형
  • 제 4정규형 (4NF): 다중 값 종속 A → B가 존재할 경우 R의 모든 속성이 A에 함수적 종속 관계를 만족하는 정규형
    • 다치 종속: A, B, C 3개의 속성을 가진 테이블에서 어떤 복합 속성(A, C)에 대응하는 B 값의 집합이 A에만 종속되고, C값에 무관
  • 제 5정규형 (5NF): 모든 조인 종속이 R의 후보키를 통해서만 성립되는 정규형
    • 조인 종속: 테이블 R의 속성에 대한 부분 집합 X, Y, ..., Z가 있을 때, 테이블 R이 자신의 프로젝션 X, Y, ..., Z를 모두 조인한 결과와 동일한 경우 테이블 R은 조인 종속을 만족한다고 함
  • 반정규화 (Denormalization): 정규화된 데이터 모델 의도적으로 통합, 중복, 분리해 정규화 원칙을 위배하는 행위

 

트랜잭션의 특성

  • 원자성 (Atomicity): 트랜잭션의 연산은 데이터베이스에 모두 반영되도록 완료(Commit)되거나 전혀 반영되지 않도록 복구(Rollback)되어야 함
  • 일관성 (Consistency): 트랜잭션의 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환함
  • 독립성 (= 격리성, 순차성 Isolation): 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없음
  • 영속성 (= 지속성 Durability): 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 함

 

접근 통제

  • 임의 접근 통제 (DAC): 데이터에 접근하는 사용자의 신원에 따라 접근 권한을 부여
    • 데이터 소유자가 접근 통제 권한 지정하고 제어
  • 강제 접근 통제 (MAC): 주체와 객체의 등급을 비교하여 접근 권한을 부여
    • 시스템이 접근 통제 권한을 지정
  • 역할 기반 접근 통제 (RBAC): 사용자의 역할에 따라 접근 권한을 부여
    • 중앙 관리자가 접근 통제 권한을 지정