본문 바로가기

정보처리기사_실기

정보처리기사 31 ~ 46 (데이터 전환 ~ 반정규화)

  • 데이터 전환
    • ETL(Extraction, Transformation, Load) → 추출, 변환, 적재 과정
    • 데이터 이행 또는 데이터 이관
    • 데이터 전환 계획서
      • 데이터 전환 작업에 필요한 모든 계획을 기록하는 문서
      • 주요 항목 : 데이터 전환 개요, 대상 및 범위, 환경 구성 등..
  • 데이터 검증
    • 데이터 전환 과정이 정상적으로 수행되었는지 여부를 확인하는 과정
    • 검증 방법
      • 로그 검증, 기본항목 검증, 응용프로그램 검증, 값 검증
    • 검증 단계
      • 추출, 전화, DB적재, DB적재 후, 전환 완료 후
  • 오류데이터 측정 및 정제
    • 고품질의 데이터를 운영 및 관리하기 위해 수행
    • 데이터 품질 분석 → 오류데이터 측정 → 오류데이터 분석
    • 오류 상태
      • Open : 오류 보고
      • Assigned : 오류 전달
      • Fixed : 오류 수정
      • Closed : 수정 완료
      • Deferred : 수정 연기
      • Clarified / Classified : 오류가 아니라고 확인
    • 데이터 정제요청서
      • 데이터 정제와 관련된 전반적인 내용을 문서로 작성
    • 데이터 정제보고서
      • 정제된 원천 데이터가 정상적으로 정제되었는지 확인한 결과를 문서로 작성
  • 데이터저장소
    • 데이터들을 논리적인 구조로 조직화하거나, 물리적인 공간에 구축한 것
    • 논리 데이터 저장소
      • 데이터 간의 연관성, 제약조건을 식별하여 논리적인 구조로 조직화한 것
    • 물리 데이터 저장소
      • 실제 저장장치에 저장한 것
  • 데이터베이스 (Database)
    • 공동으로 사용될 데이터를 중복을 배제하여 통합하고, 저장장치에 저장하여 항상 사용할 수 있도록 운영하는 운영데이터
    • 구분
      • 통합된 데이터(Integration Data) : 중복을 배제한 데이터의 모임
      • 저장된 데이터(Stored Data) : 저장 매체에 저장된 자료
      • 운영 데이터(Operational Data) : 조직의 고유 업무를 수행하는 데 필요한 데이터
      • 공용 데이터(Shared Data) : 여러 응용시스템들이 공동으로 소유하고 유지하는 데이터
  • DBMS
    • 사용자의 요구에 따라 정보를 생성하고, 데이터베이스를 관리해주는 소프트웨어
    • 데이터의 종속성과 중복성 문제 해결을 위해 제안
    • 필수 기능
      • 정의(Definition) : 데이터의 형과 구조에 대한 정의, 제약조건 등을 명시
      • 조작(Manipulation) : 검색, 갱신, 삽입, 삭제 등을 위한 수단 제공
      • 제어(Control) : 무결성, 보안, 병행제어 등을 제공하는 기능
    • 데이터의 독립성
      • 논리적 독립성
        • 응용프로그램과 데이터베이스를 독립시킴
        • 데이터의 논리적 구조를 변경시켜도 응용프로그램은 영향을 받지 않음
      • 물리적 독립성
        • 물리적 저장장치를 독립시킴
        • 디스크를 추가/변경 하더라고 응용프로그램은 영향을 받지 않음
    • 스키마 (Schema)
      • 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 것
      • 외부 스키마
        • 사용자 관점에서 데이터베이스의 논리적인 구조 표현
      • 개념 스키마
        • 데이터베이스의 전체적인 논리적 구조
      • 내부 스키마
        • 물리적 저장장치의 관점에서 데이터베이스의 구조
        • 레코드 형식, 레코드 순서 등을 나타냄
  • 데이터베이스 설계
    • 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후 일반 사용자들이 사용하게 하는 것
    • 고려사항
      • 무결성, 일관성, 회복, 보안, 효율성, 확장
    • 요구 분석 → 개념적 설계논리적 설계물리적 설계 → 구현
      • 요구 분석
        • 데이터베이스의 필요한 용도를 파악
        • 요구 조건 명세서 작성
      • 개념적 설계 (정보 모델링)
        • HW 독립, DB 독립
        • 현실 세계에 대한 인식을 추상적 개념으로 표현하는 과정
        • E-R 다이어그램으로 작성
        • 개념 스키마 설계
      • 논리적 설계 (데이터 모델링)
        • HW 독립, DB 종속
        • 특정 DBMS가 지원하는 논리적 자료 구조로 매핑시키는 과정
        • 개념 스키마를 평가 및 정제
        • 트랜잭션 인터페이스 설계
      • 물리적 설계 (데이터 구조화)
        • HW 종속, DB 종속
        • 논리적 구조로 표현된 데이터를 물리적 구조의 데이터로 변환하는 과정
        • 저장 레코드 형식, 순서 등의 정보를 사용
      • 구현
        • 논리적 설계와 물리적 설계에서 도출된 데이터베이스 스키마를 파일로 생성하는 과정
        • DDL을 이용
  • 데이터 모델
    • 현실 세계의 정보들을 단순화, 추상화하여 체계적으로 표현한 개념적 모형
    • 구성 요소
      • 개체 (Entity)
        • 데이터베이스에 표현하려는 것으로 개념이나 정보단위 같은 현실 세계의 대상체
        • 실세계에 독립적으로 존재하는 유.무형의 정보
        • 하나 이상의 관계가 있음
      • 속성 (Attribute)
        • 데이터베이스를 구성하는 가장 작은 논리적 단위
        • 개체의 특성을 기술
        • 속성의 수 = Degree 또는 차수
        • 개체 구성 방식
          • 기본키 속성 : 개체를 유일하게 식별
          • 외래키 속성 : 다른 개체와의 관계에 포함
          • 일반 속성 : 기본키, 외래키에 포함되지 않은 속성
      • 관계 (Relationship)
        • 개체와 개체 사이의 논리적인 연결
        • 형태
          • 일 대 일, 일 대 다, 다 대 다
        • 종류
          • 종속 관계 (Dependent) : 개체 사이의 주.종 관계를 표현, 식별.비식별 관계
          • 중복 관계 (Redundant) : 2번 이상의 종속 관계 발생
          • 재귀 관계 (Recursive) : 개체가 자기 자신과 관계를 맺음, 순환 관계라고도 함
          • 배타 관계 (Exclusive) : 개체의 특성을 분할하는 관계
    • 표시할 요소
      • 구조 (Structure)
        • 데이터의 구조 및 정적 성질 표현
      • 연산 (Operation)
        • 데이터베이스를 조작하는 기본 도구
      • 제약 조건 (Constraint)
        • 실제 데이터의 논리적인 제약조건
    • 종류
      • 개념적 데이터 모델
        • 현실 세계에 대한 인간의 이해를 돕기 위해 현실세계에 대한 인식을 추상적 개념으로 표현
        • 대표적으로 E-R 모델
      • 논리적 데이터 모델
        • 개념적 구조를 컴퓨터 세계의 환경에 맞게 변환하는 과정
      • 물리적 데이터 모델
        • 저장되는 방법을 정의
  • 식별자
    • 하나의 개체 내에서 인스턴스를 유일하게 구분할 수 있는 구분자
      • 인스턴스 : 구체적인 데이터 값을 갖고 있는 것
    • 분류
      • 대표성 여부 : 주 식별자, 보조 식별자
      • 스스로 생성 여부 : 내부 식별자, 외부 식별자
      • 단일 속성 여부 : 단일 실별자, 복합 식별자
      • 대체 여부 : 원조 식별자, 대리 식별자
    • 후보 식별자
      • 개체에서 각 인스턴스를 유일하게 식별할 수 있는 속성 또는 속성의 집합
      • 특징
        • 유일성 : 주 식별자에 의해 유일하게 구분되어야 함
        • 최소성 : 최소한의 속성으로 구성
        • 불변성 : 식별자는 변하지 않아야 함
        • 존재성 : 반드시 데이터 값이 존재해야 함
  • E-R (개체 - 관계) 모델
    • 현실세계의 무질서한 데이터를 개념적인 논리 데이터로 표현하기 위한 방법
    • Peter Chen이 제안
    • 개체 타입과 관계 타입을 이용해 표현
    • 데이터는 개체, 관계, 속성으로 묘사
    • E-R 다이어그램
      • 사각형 → 개체 타입
      • 마름모 → 관계 타입
      • 타원 → 속성
      • 이중 타원 → 다중 속성
      • 밑줄 타원 → 기본키 속성
      • 복수 타원 → 복합 속성
      • ▭-⬦-▭ → 관계
      • 선, 링크 → 개체 타입과 속성을 연결
  • 관계형 테이터베이스
    • 2차원 적인 표를 이용해서 데이터 상호 관계를 정의
    • E.F Codd에 의해 제안
    • 릴레이션으라는 표로 표현
    • 구조   
      • 튜플 (Tuple)
        • 릴레이션을 구성하는 각각의 행
        • 속성의 모임으로 구성
        • 튜플의 수 = Cardinality 또는 기수 또는 대응수
      • 속성 (Attribute)
        • 데이터베이스를 구성하는 가장 작은 논리적 단위
        • 속성의 수 = Degree 또는 차수
      • 도메인 (Domain)
        • 하나의 애트리뷰트가 취할 수 있는 같은 타입의 원자값들의 집합
      • 특징
        • 튜플 상이
        • 튜플 무순서
        • 속성 무순서
        • 원자값

 


    • 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 기준이 되는 속성
    • 후보키
      • 튜플을 유일하게 식별하기 위해 사용되는 속성들의 부분집합
      • 유일성과 최소성 모두 만족
        • 유일성 : 하나의 튜플만을 유일하게 실별할 수 있어야 함
        • 최소성 : 꼭 필요한 최소의 속성으로 구성되어야 함
    • 기본키
      • 후보키 중에서 특별히 선정된 주키(Main Key)
      • NULL 값을 가질 수 없음
      • 중복된 값을 가질 수 없음
    • 대체키
      • 기본키를 제외한 나머지 후보키
    • 슈퍼키
      • 유일성은 만족하지만 최소성 만족하지 못하는 키
    • 외래키
      • 다른 릴레이션의 기본키를 참조하는 속성
  • 무결성 (Integrity)
    • 데이터베이스제 저장된 값과 현실 세계의 실제값이 일치하는 정확성
    • 종류
      • 개체 무결성 : 기본키 값은 NULL이거나 중복될 수 없음
      • 참조 무결성 : 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 함
      • 도메인 무결성
      • 키 무결성
      • 관계 무결성
      • NULL 무결성, 고유 무결성, 사용자 정의 무결성
    • 무결성 강화
      • 애플리케이션 : 무결성 조건을 검증하는 코드를 프로그램에 추가
      • 데이터베이스 트리거 : 트리거 이벤트에 무결정 조건을 실행하는 SQL 추가
      • 제약 조건 : 제약조건을 설정
  • 관계 대수
    • 원하는 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적 언어
    • 순수 관계 연산자
      • Select
        • 튜플의 부분 집합을 구하여 새로운 릴레이션을 생성
        • 수평 연산
        • σ
      • Project
        • 제시된 속성 값만을 추출하여 새로운 릴레이션 생성
        • 수직 연산자
        •  π
      • Join
        • 두 개의 릴레이션을 하나로 합침
        • 카디션 프로덕트를 수행한 후 Select 한 결과와 같음
      • Division
        • 튜플에서 하나의 릴레이션이 가진 속성을 제외한 속성만을 구하는 연산
        • ÷
    • 일반 집합 연산자
      • 합집합, 교집합, 차집합
      • 교차곱
        • 교차곱 수행 결과는 Degree = 두 릴레이션 Degree의 , Cardinality = 두 릴레이션 Cardinality의
  • 관계 해석
    • 관계 데이터의 연산을 표현하는 방법
    • 비절차적 특성을 가짐
  • 이상 (Anomaly)
    • 데이터의 중복으로 인해 문제가 발생하는 현상
    • 삽입 이상
      • 의도와는 상관없이 원하지않는 값도 삽입해야하는 현상
    • 삭제 이상
      • 의도와는 상관없이 원하지 않는 값들도 함께 삭제되는 연쇄삭제 현상
    • 갱신 이상
      • 속성값을 갱신할 때 일부 정보만 갱신되어 정보에 불일치성이 생기는 현상
  • 함수적 종속
    • X의 값과 상관없이 Y의 값이 오직 하나만 연관되어 있는 현상
    • Y는 X에 함수적 종속, X  → Y로 표기
      • X는 결정자, Y는 종속자
  • 정규화 (Normalization)
    • 데이터의 중복을 제거하여 이상현상을 최소화 하기 위해 테이블을 무손실 분해하는 과정
    • 과정
      • 비정규 릴레이션 원자값 제거 → 1 정규형
      • 1 정규형 부분 함수 종속 제거 → 2 정규형
      • 2 정규형 이행적 함수 종속 제거 → 3 정규형
      • 3 정규형 결정자이면서 후보키가 아닌 것 제거 → BCNF 정규형
      • BCNF 정규형 다치 종속 제거 → 4 정규형
      • 4 정규형 조인 종속 이용 → 5 정규형
  • 반정규화 (Denormalization)
    • 성능 향상을 위해 정규화된 것을 정규화 이전의 상태로 되돌리는 정규화 원칙을 위배하는 행위
    • 방법
      • 테이블 통합 : 조인되어 사용되는 경우가 많을 경우 아예 하나의 테이블로 통합
      • 테이블 분할
        • 수평 분할 : 레코드 기준으로 분할
        • 수직 분할 : 속성 기준으로 분할
      • 중복 테이블 추가
        • 집계 테이블 추가 : 트리거를 설정하여 사용
        • 진행 테이블 추가 : 이력 관리 등의 목적
        • 특정 부분만을 포함하는 테이블 추가  : 특정 부분만을 사용
      • 중복 속성 추가 : 자주 사용하는 하나의 속성을 추가