[정보처리기사] 실기 용어 정리 데이터 입출력 구현

728x90

2장 데이터 입출력 구현

데이터 입출력 구현

데이터 모델

  • 복잡한 데이터 구조를 단순화, 추상화하여 체계적으로 표현한 개념적 모형
  • 표시 요소
    • 구조: 개념적 스키마 구성(ERD)
    • 연산: 데이터 처리 방법
    • 제약조건: 데이터의 논리적 제약조건
  • 데이터 모델 절차
    1. 요구조건 분석
    2. 개념적 설계(개념적 데이터 모델): 트랜잭션을 모델링, ERD가 주요 산출물
    3. 논리적 설계(논리적 데이터 모델): 트랜잭션의 인터페이스 설계, 논리적 스키마 설계(정규화 수행)
    4. 물리적 설계(물리적 데이터 모델): 반정규화 수행

 

논리 데이터 모델

  • 개념 모델로부터 업무 영역이 업무 데이터 및 규칙을 구체적으로 표현한 모델
  • 개체, 속성, 관계

논리 데이터 모델링 종류

1. 관계 데이터 모델

  • 구성
    • 릴레이션, 튜플, 속성, 카디널리티, 차수, 스키마, 인스턴스
  • 관계 대수: 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
    • 일반 집합 연산자: 합집합, 교집합, 차집합, 카티션 프로덕트
    • 순수 관계 연산자: 셀렉트, 프로젝트, 조인, 디비전
  • 관계 해석: 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어

2. 계층 데이터 모델

  • 논리적 구조가 트리 형태, 상하관계 존재, 1:N 관계만 허용

3. 네트워크 데이터 모델

  • 그래프 형태, N:M 관계 만족

 

정규화

  • 데이터의 중복성을 제거이상현상을 방지하고 무손실 분해하는 과정
  • 이상현상
    • 삽입 이상: 불필요한 데이터가 함께 삽입되는 현상
    • 삭제 이상: 연쇄 삭제 현상으로 인해 정보 손실
    • 갱신 이상: 일부 정보만 갱신되어 정보에 모순이 생기는 현상
  • 함수 종속
    • Full Functional Dependency(완전 함수 종속): 종속자가 기본키에만 종속
    • Partial Functional Dependency(부분 함수 종속): 기본키를 구성하는 속성 중 일부만 종속되는 경우
    • Transitive Functional Dependency(이행 함수 종속)
  • 정규화 과정
    비정규 Relation  
    도메인이 원자값
    제1정규형  
    부분 함수적 종속제거 
    제2정규형  
    이행적 함수 종속 제거
    제3정규형  
    결정자이면서 후보키가 아닌 것 제거
    BCNF  
    다치 종속 제거
    제4정규형  
    조인 종속성 이용
    제5정규형  

 

반정규화

  • 정규화된 엔터티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법
    • 테이블 병합, 테이블 분할, 테이블 추가
    • 컬럼 중복화
    • 중복 관계 추가

 

데이터베이스 이중화

  • 장애에 대비하여 동일한 데이터베이스를 중복하여 관리하는 방식
  • 장애나 재해 발생 시 빠른 서비스 재개(고가용성)
  • 이중화 분류
    • Eager 기법: 트랜잭션 발생 시 즉시 반영
    • Lazy 기법: 트랜잭션 완료 후 반영

 

데이터베이스 백업

  • 전체 백업
  • 증분 백업: 변경/추가된 데이터만 백업
  • 차등 백업: 모든 변경/추가된 데이터를 백업
  • 합성 백업: 전체 백업본과 여러 개의 증분 백업을 합하여 새로운 전체 백업을 만드는 작업 

 

RTO / RPO

  • 복구 시간 목표(RTO)
    • 서비스를 사용할 수 없는 상태로 허용되는 시간
  • 복구 시점 목표(RPO)
    • 마지막 백업 이후 허용되는 최대 데이터 손실 시간

 

데이터베이스 암호화

  • API 방식: 애플리케이션에서 수행
  • Plug-in 방식: DB 서버에 제품 설치 후 수행
  • TDE 방식: DBMS 내부의 기본 모듈로 수행

 

물리 데이터 모델

  • 파티셔닝: 데이터베이스의 특정 부분을 여러 섹션으로 분할하는 방법
  • 클러스터: 자주 사용되는 테이블의 데이터를 디스크 상 동일한 위치에 저장
  • 인덱스: 테이블 검색 속도 향상을 위한 저장 공간 활용 자료구조
  • : 기본 테이블에서 유도된 이름이 있는 가상 테이블

 

시스템 카탈로그

  • 데이터베이스의 모든 데이터 개체들에 대한 정보를 저장한 시스템 테이블
  • 데이터 사전(Data Dictionary)이라고도 한다

 

관계 데이터 릴레이션 구조

  • 릴레이션
    • 릴레이션 스키마: 릴레이션의 논리적 구조
    • 릴레이션 인스턴스: 스키마에 실제로 저장된 데이터의 집합
  • 속성(Attribute): 릴레이션의 열, 개체의 특성
  • 튜플: 릴레이션의 행, 속성들의 모임
  • 도메인: 속성이 가질 수 있는 값의 범위
  • 차수(Degree): 속성의 총 개수
  • 카디널리티: 튜플의 총 개수

 

속성

  • 정보의 최소 단위
  • 속성의 분류
    • 기본속성: 업무로부터 추출한 모든 속성
    • 설계속성: 코드성 데이터
    • 파생속성: 다른 속성에 영향을 받아 발생하는 속성

 

키(KEY)

  • 튜플을 식별하고 구별하는 데 사용되는 컬럼
  • 키의 종류
    • 슈퍼키(유일성)
    • 후보키(최소성)
    • 기본키
    • 대체키

 

무결성 제약조건

  • 개체 무결성
    • NULL 불가, 중복 불가
  • 참조 무결성
    • 외래키는 NULL이거나 참조 릴레이션의 기본키와 일치해야 함
    • Restrict(제한), Cascade(연쇄삭제)
  • 도메인 무결성
    • 속성 값은 정의된 도메인에 속해야 한다.

 

접근 통제 기술(AC, Access Control)

  • MAC(Mandatory; 강제적) : 주체와 객체의 등급을 비교 후 시스템이 접근 권한 부여(규칙 기반 접근 통제)
  • DAC(Discretionary; 임의적) : 사용자의 신원/신분에 따라 접근 권한 부여, 데이터 소유자가 접근 통제 권한 지정/제어( 신분 기반 접근 통제)
  • RBAC(Role Based) : 사용자의 역할에 따라 접근 권한 부여 (중앙관리자가 지정)

 

CRUD

  • 해당 업무에 어떤 데이터가 존재하는지 무엇이 영향을 받는지 분석
  • Create, Read, Update, Delete

 

옵티마이저

  • SQL문에 대한 최적의 실행 방법을 결정
  • 옵티마이저 구분
  • 규칙기반 옵티마이저: 우선순위
  • 비용기반 옵티마이저

 

튜닝

  • SQL문을 최적화하여 시스템의 처리량과 응답 속도를 개선하는 작업

 

분산 DB

  • 여러 곳에 분산된 데이터베이스를 하나의 논리적인 시스템처럼 사용할 수 있는 데이터베이스
  • 분산 DB 구성요소
    • 분산 처리기
    • 분산 데이터베이스
    • 통신 네트워크

 

투명성 조건

  • 위치 투명성: 실제 위치를 모르고 액세스 가능
  • 분할 투명성: 여러 단편으로 분할
  • 지역사상 투명성: 각 지역시스템 이름과 무관하게 사용
  • 중복 투명성: 데이터의 중복을 사용자에게 숨김
  • 병행 투명성: 다수의 트랜잭션들이 동시에 실행되어도 영향을 주지 않음
  • 장애 투명성: 다양한 장애에도 트랜잭션 처리
  • 투명성: 나는 몰라도 됨

 

CAP 이론

  • 일관성(C) 가용성(A) 분단 허용성(P)

 

트랜잭션

  • 하나의 논리적 기능을 수행하는 작업 단위
  • 트랜잭션의 성질(ACID)
    • 원자성(Atomicity): 모두 반영되거나 아니면 전혀 반영되지 않아야 한다
    • 일관성(Consistency): 트랜잭션의 완료 후에는 데이터베이스가 일관된 상태를 유지해야 한다
    • 독립성, 고립성(Isolation) 격리성: 동시에 실행되는 여러 트랜잭션들은 서로 간섭할 수 없다.
    • 영속성, 지속성(Durability): 결과는 시스템에 고장이 발생해도 영구적으로 반영되어야 한다.

 

트랜잭션 상태

  • 활동(Action): 트랜잭션이 실행중인 상태
  • 실패(Failed): 트랜잭션 실행에 오류가 발생하여 중단된 상태
  • 철회(Aborted): 트랜잭션이 비정상적으로 종료되어 Rollback연산을 수행한 상태
  • 부분 완료(Partially Commited): 트랜잭션이 모두 성공적으로 실행한 후  Commit 연산이 실행되기 직전의 상태
  • 완료(Committed): 트랜잭션을 성공적으로 실행 후 Commit연산을 실행한 후의 상태
     

 

절차형 SQL

  • 저장 프로시저
  • 트리거: 이벤트에 반응해 자동으로 실행
  • 사용자 정의 함수 

 

병행제어

  • 여러 트랜잭션이 동시에 실행되면서도 데이터베이스의 일관성을 유지하는 기법
  • 병행제어를 하지 않았을 때의 문제점
    • 갱신 분실: 갱신 결과의 일부가 없어지는 현상
    • 비완료 의존성: A 수행 실패 후 회복 전에, B가 실패한 갱신 결과를 참조하는 현상
    • 모순성: 갱신 분실과 비슷하지만, 여러 데이터를 가져올 때 발생하는 문제
    • 연쇄 복귀: A에 문제가 생겨 Rollback하는 경우 B도 함께 Rollback되는 현상
       

 

회복 기법

  • 로그 기반 회복 기법:
    • 지연 갱신: 커밋 발생 전까진 DB에 기록 X, REDO
    • 즉시 갱신: 변경내용을 즉시 DB에 기록, REDO + UNDO
  • 검사점 회복 기법
  • 그림자 페이징 회복 기법
  • 미디어 회복 기법
  • ARIES 회복 기법

 

병행제어 기법 종류

  • 로킹 기법: 일관성과 무결성을 유지하기 위한 트랜잭션의 순차적 진행을 보장 (병행 수행 트랜잭션들 간 동일 데이터 접근 차단)
  • 낙관적 검증 : 일단 트랜잭션을 수행하고, 트랜잭션 종료 시 검증을 수행
  • 타임 스탬프 기법: 타임 스탬프를 부여해 부여된 시간에 따라 트랜잭션 수행
  • 다중버전 동시성 제어(MVCC) : 타임스탬프를 비교해 직렬가능성이 보장되는 적절한 버전을 선택해 접근하도록 함

 

하둡 주요 기술

  • 데이터 수집
    • ETL(Extract, Transform, Load): 데이터를 추출(Extraction), 변환(Transformation), 적재(Loading) 하는 과정
       
    • 플럼
    • 스쿱
    • 스크래파이
  • 분산 데이터 저장
    • HDFS: 대용량 데이터의 집합을 처리하는 응용 프로그램에 적합하도록 설계된 하둡 분산 파일 시스템
  • 분산 데이터 처리
    • 맵 리듀스: 구글에서 대용량 데이터처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작하여 2004년에 발표한 소프트웨어프레임워크

 

 

 

 

728x90