포스트

정보처리기사 실기 / iii - 데이터 입출력 구현 ☆


실기 시험 준비

수제비 2023 참조





C1. 논리 데이터 저장소 확인


i. 데이터 모델

A. 데이터 모델 개념

  • 현실 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화 하여 표현한 모델
  • 데이터 모델 표시요소
    • 연산 : 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세
    • 구조 : 데이터베이스에 논리적으로 표현될 대상으로, 개체 타입과 개체 타입 간의 관계
    • 제약 조건 : 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건



B. 데이터 모델 절차

  • 요구조건 분석 : 도출된 요구사항 간 상충을 해결, 범위 파악 후 데이터에 대한 요구 분석
  • 개념적 설계
    • 개념적 데이터 모델
    • 사용자의 요구에 대한 트랜잭션을 모델링 하는 단계
    • 현실에 대한 인식을 추상적, 개념적으로 표현, 개념적 구조 도출
    • 개체관계 다이어그램
  • 논리적 설계
    • 논리적 데이터 모델
    • 트랜잭션의 인터페이스를 설계하는 단계
    • DBMS에 맞는 논리적 스키마를 설계하는 단계
    • 정규화 수행
  • 물리적 설계
    • 물리적 데이터 모델
    • 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계
    • 테이불, 인덱스, 뷰, 파티션 등 객체를 생성
    • 반 정규화 수행
    • 레코드 양식 설계 / 접근 경로 설계




ii. 논리 데이터 모델 검증

A. 논리 데이터 모델링 개념

  • 업무를 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스
  • 개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델
  • 개념 모델 : 주제 영역과 핵심 데이터 집합 간의 관계를 정의하는 모델



B. 논리적 데이터 모델링 종류

  • 관계 데이터 모델
    • 논리적 구조가 2차원 테이블 형태로 구성된 모델
    • PK와 이를 참조하는 FK로 관계 표현
  • 계층 데이터 모델
    • 논리적 구조가 트리 형태로 구성된 모델
    • 상하관계 존재
    • 1:N만 허용
  • 네트워크 데이터 모델
    • CODASYL DBTG 모델
    • 논리적 구조가 그래프 형태로 구성된 모델
    • 상위, 하위 레코드 사이 N:M 관계 만족



C. 관계 데이터 모델

1. 관계 데이터 모델

  • 데이터를 행과 열로 구성된 2차원 테이블 형태로 구성한 모델
  • 관계 데이터 모델의 구성요소
    • 릴레이션 : 행과 열로 구성된 테이블
    • 튜플(Tuple) : 행
    • 속성(Attribute) : 열
    • 카디널리티(Cardinality) : 튜플(행)의 개수
    • 디그리(Degree) : 애트리뷰트(열)의 개수
    • 스키마 : 데이터베이스의 구조, 제약 조건 등의 정보를 담고 있는 기본 구조
    • 인스턴스 : 정의된 스키마에 따라 생성된 테이블에 실저장된 데이터 집합


2. 관계 대수

  • 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 정형 언어
  • 관계 대수 연산자 종류

일반 집합 연산자

  • 수학의 집합 개념을 릴레이션에 적용
연산자기호표현설명
합집합(Union)R∪S합병 가능한 두 릴레이션과 R과 S의 합집합
교집합(Intersection)R∩S릴레이션 R과 S에 속하는 모든 튜플로 결과 릴레이션 구성
차집합(Difference)-R-SR에 존재하고 S에 없는 튜플로 결과 릴레이션 구성
카티션 프로덕트(CARTESIAN PRODUCT)XRxSR과 S에 속한 모든 튜플을 연결해 만들어진 새로운 튜플로 릴레이션 구성

순수 관계 연산자

  • 관계형 데이터베이스에 적용할 수 있는 특별 연산자
연산자기호표현설명
셀렉트(Select)σσ조건(R)릴레이션 R에서 조건을 만족하는 튜플 반환
프로젝트(Project)ππ속성리스트(R)릴레이션 R에서 주어진 속성들의 값으로만 구성된 튜플 반환
조인(Join)R⋈S공통 속성을 이용해 R과 S의 튜플들을 연결해 만들어진 튜플 반환
디비전(Division)÷R÷S릴레이션 S의 모든 튜플과 관련 있는 R의 튜플 반환


3. 관계 해석

  • 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어
  • Predicate Calculus에 기반한 언어



D. 논리 데이터 모델링 속성

  • 논리 데이터 모델링 속성
    • 개체(Entity) : 관리할 대상이 되는 실체
    • 속성(Attribute) : 관리할 정보의 구체적 항목
    • 관계(Relationship) : 개체 간의 대응 관계

1. 개체(Entity)

  • 사물 또는 사건으로 정의됨
  • 피터 챈 모델에서는 개체를 사각형(□)로 표현
  • 까마귀발 모델에서는 개체를 표로 표현


2. 속성(Attribute)

  • 개체가 가지고 있는 요소 또는 성질
  • 피터 챈 모델에서는 속성을 타원형(⬭)으로 표현
  • 까마귀발 모델에서는 속성을 표 내부에 표현


3. 관계(Relationship)

  • 두 개체 간의 관계를 정의
  • 피터 챈 모델에서는 관계를 마름모(◇)로 표현
  • 까마귀발 모델에서는 속성을 다음과 같이 표시
관계 표시의미
—–1:1 관계
—–<1:N 관계
>—–<N:M 관계

(그 E-R 다이어그램 그릴때 그 선 그거임)



E. 개체-관계(E-R) 모델

1. 개체-관계(E-R) 모델 개념

  • 현실에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 표현
  • 요구사항으로부터 얻어낸 정보를 개체, 속성, 관계로 기술한 모델


2. 개체-관계(E-R) 다이어그램 기호

구성기호
개체 집합
관계 집합
속성
다중 값 속성
개체 집합-관계 집합 연결
개체 집합-속성 연결
관계 집합-속성 연결



F. 정규화

1. 정규화(Normalization)의 개념

  • 관계형 데이터 모델에서 데이터의 중복성을 제거하여 이상 현상을 방지, 데이터의 일관성과 정확성 유지하기 위해 무손실 분해하는 과정


2. 이상 현상(Anomaly)

  • 데이터의 중복성으로 인해 릴레이션을 조작할 때 발생하는 비합리적 현상
  • 삽입 이상 : 저장 시 해당 정보의 불필요한 세부정보를 입력해야 하는 경우
  • 삭제 이상 : 삭제 시 원치 않는 다른 정보가 같이 삭제되는 경우
  • 갱신 이상 : 중복 데이터 중 특정 부분만 수정되어 중복 값이 모순을 일으키는 경우


3. 정규화의 단계

  • 1 정규형(1NF) : 원자값으로 구성
  • 2 정규형(2NF) : 부분 함수 종속 제거(완전 함수적 종속 관계)
  • 3 정규형(3NF) : 이행함수 종속 제거
  • 보이스-코드 정규형(BCNF) : 결정자 후보 키가 아닌 함수 종속 제거
  • 4 정규형(4NF) : 다중 값 종속 제거
  • 5 정규형(5NF) : 조인 종속 제거


4. 함수 종속

  • 릴레이션에서 속성의 의미와 속성 간 상호 관계로부터 발생하는 제약 조건
  • 결정자/종속자 : X → Y 관계일 때 X는 결정자(Determinant), Y는 종속자(Dependent)임
  • 함수 종속 종류
    • 부분 함수 종속(Partial Functional Dependency) : 릴레이션에서 기본 키가 복합 키일 경우 기본 키를 구성하는 속성 중 일부에게 종속된 경우
    • 완전 함수 종속(Full Functional Dependency) : 릴레이션에서 X → Y 관계 일 때, Y는 X의 전체 속성에 대해 종속하고, 부분 집합 속성에 종속하지 않는 경우
    • 이행 함수 종속(Transitive Functional Dependency) : 릴레이션에서 X → Y, Y → Z 종속 관계가 있을 때, X → Z가 성립되는 경우


5. 정규화 상세단계

  • 1 정규화(1NF)
    • 테이블 내의 속성값은 원자값을 가지고 있어야 함
    • 각 속성은 기본키(원자값) 중복 불가
  • 2 정규화(2NF)
    • 주식별자가 아닌 속성을 분리
    • 도메인 간 관계가 X → Y → Z 일 때 X → Y / Y → Z 로 분리 (분리 해도 1NF를 만족해야함)
  • 3 정규화(3NF)
    • X → Y → Z에서 X → Y / X → Z와 같이 간접적으로 참조하는 경우 X → Y / Y → Z 로 릴레이션 분리
  • 보이스-코드 정규화(BCNF)
    • X → Y → Z에서 Z → Y 인 경우, Z는 결정자이지만 후보 키가 아니기 때문에 X → Z / Z → Y 로 릴레이션 분리
  • 4 정규화(4NF)
    • X → Y → Z에서 X → Y / X → Z 이지만 Y → Z가 아닌 경우 X → Y / X → Z 로 릴레이션 분리
  • 5 정규화(5NF)
    • 4NF 테이블에 대해 조인 연산을 수행하면 정규화 수행 전 데이터와 다르게 되는 문제인 조인 종속이 발생함
    • 예를 들어, Y, Z가 중복됨 (갱신 이상)
    • 이 경우, X → Y / X → Z 에 더해 Y → Z 테이블한 생성해서 조인 종속 문제 해결



G. 반 정규화

1. 반 정규화(De-Normalization) 개념

  • 정규화된 엔티티, 속성, 관계에 대해 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법
  • 역정규화라고도 함


2. 반 정규화 특징

  • 장점
    • 성능 향상과 관리 효울 증가
  • 단점
    • 데이터 일관성 및 정합성 저하
    • 유지 비용 발생


3. 반 정규화 기법

  • 테이블
    • 테이블 병합
      • 1:1 관계, 1:M 관계를 통합하여 조인 횟수를 줄여 성능 향상
      • 슈퍼타입/서브타입 테이블 통합
    • 테이블 분할
      • 테이블을 수직 또는 수평으로 분할하는 것으로 파티셔닝이라고도 함
      • 수평 분할 : 테이블 분할에 레코드를 기준으로 활용
      • 수직 분할 : 하나의 테이블이 가지는 컬럼의 개수가 증가하는 경우 활용
    • 중복 테이블 추가
      • 대량의 데이터들에 대한 집계함수를 사용하여 실시간 통계정보를 계산하는 경우 효과적인 수행을 위해 통계 테이블을 두거나 중복 테이블 추가
  • 컬럼
    • 컬럼 중복화
      • 조인 성능 향상을 위한 중복 허용
  • 관계
    • 중복관계 추가
      • 데이터를 처리하기 위한 여러 경로를 거쳐 조인이 가능하지만, 발생할 수 있는 성능 저하를 예방하기 위해 추가적으로 관계를 맺음





C2. 물리 데이터 저장소 설계


i. 물리 데이터 모델 설계

A. 물리 데이터 모델링 개념

  • 논리모델을 적용하고자 하는 기술에 맞도록 상세화해 가는 과정



B. 물리 데이터 모델링 변환 절차

  • 1 - 개체를 테이블로 변환
  • 2 - 속성을 컬럼으로 변환
  • 3 - UID를 기본키로 변환
  • 4 - 관계를 외래키로 변환
  • 5 - 컬럼 유형과 길이 정의
  • 6 - 반 정규화 수행




ii. 물리 데이터 저장소 구성

A. 데이터베이스 무결성

1. 데이터베이스 무결성(Database Integrity) 개념

  • 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 실제 값이 일치하는 성질
  • DBMS의 중요 기능, 주로 데이터에 적용되는 연산에 제한을 두어 데이터 무결성 유지
  • 무결성은 권한이 있는 사용자로부터 데이터베이스 보호


2. 데이터베이스 무결성 종류

  • 개체 무결성
    • 한 엔티티에서 같은 PK를 가질 수 없거나 PK 속성이 NULL을 허용할 수 없는 제약 조건
    • 기본키 / 유니크 인덱스
  • 참조 무결성
    • 외래 키가 참조하는 다른 개체의 기본 키에 해당하는 값이 기본 키값이나 NULL이어야 하는 제약 조건
    • 외래 키
  • 속성 무결성
    • 속성의 값은 기본값, NULL 여부, 도메인이 지정된 규칙을 준수해야 하는 제약 조건
    • 체크 / NULL / NOT NULL / 기본값
  • 사용자 정의 무결성
    • 사용자의 의미적 요구사항을 준수해야 하는 제약 조건
    • 트리거 / 사용자 정의 데이터 타입
  • 키 무결성
    • 한 릴레이션에 같은 키값을 가진 튜플들을 허용할 수 없는 제약 조건
    • 유니크



B. 키

1. 키 개념

  • 데이터베이스에서 조건을 만족하는 튜플을 찾거나 정렬할 때 다른 튜플들과 구별할 수 있는 기준이 되는 속성


2. 키 특성

  • 유일성 : 식별자에 의해 엔티티 내에 모든 튜플들을 유일하게 구분하는 특성
  • 최소성 : 최소한의 속성으로 식별자를 구성하는 특성


3. 키 종류

  • 기본 키(Primary Key) : 테이블의 각 튜플들을 고유하게 식별하는 컬럼
  • 대체 키(Alternate Key) : 후보 키 중에서 기본 키로 선택되지 않은 키
  • 후보 키(Candidate Key) : 테이블에서 각 튜플을 구별하는 데 기준이 되는 컬럼 (기본 키 + 대체 키)
  • 슈퍼 키(Super Key) : 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만, 최소성은 만족하지 못하는 키
  • 외래 키(Foreign Key) : 테이블 간의 참조 데이터 무결성을 위한 제약 조건



C. 인덱스 설계

1. 인덱스 개념

  • 검색 연산의 최적화를 위해 데이터베이스 내 열에 대한 정보를 구성한 테이터 구조


2. 인덱스 적용 기준

  • 인덱스 분포도가 10~15% 이내인 경우
    • 분포도 = (1 / (컬럼 값의 종류)) * 100
    • 분포도 = (컬럼 값의 평군 Row 수) / (테이블의 총 Row 수) * 100


3. 인덱스 컬럼 선정

  • 분포도가 좋은 컬럼은 단독적으로
  • 자주 조합되어 사용되는 컬럼은 결합 인덱스로 생성



D. 파티셔닝

1. 파티셔닝 개념

  • 테이블 또는 인덱스 데이터를 파티션 단위로 나누어 저장하는 기법


2. 파티션의 유형

  • 레인지 파티셔닝 : 연속적인 숫자나 날짜를 기준으로 하는 파티셔닝 기법
  • 해시 파티셔닝 : 파티션 키의 해시 함수 값에 의한 파티셔닝 기법
  • 리스트 파티셔닝 : 특정 파티션에 저장 될 데이터에 대한 명시적 제어가 가능한 파티셔닝 기법
  • 컴포지트 파티셔닝 : 레인지, 해시, 리스트 중 2개 이상의 파티셔닝을 결합하는 파티셔닝 기법
  • 라운드-로빈 : 회전하면서 새로운 행을 파티션에 할당하는 기법


3. 파티션의 장점

  • 성능 향상
  • 가용성 향상
  • 백업 가능
  • 경합 감소





C3. 데이터베이스 기초 활용하기


i. 데이터베이스 종류

A. 데이터 베이스

1. 데이터베이스 개념

  • 다수의 인원, 시스템 또는 프로그램이 사용할 목적으로 통합하여 관리되는 데이터의 집합
  • 중복성 제거, 무결성 확보, 일관성 유지, 유용성 보장이 중요
  • 통합된 데이터 : 자료의 중복을 배제한 데이터의 집합
  • 저장된 데이터 : 저장 매체에 저장된 데이터
  • 운영 데이터 : 조직의 업무를 수행하는 데 필요한 데이터
  • 공용 데이터 : 여러 애플리케이션, 시스템들이 공동으로 사용하는 데이터


2. 데이터베이스 특성

  • 실시간 접근성 : 쿼리에 대하여 실시간 응답이 가능해야 함
  • 계속적인 변화 : 새로운 데이터의 삽입, 삭제, 갱신으로 항상 최신 유지
  • 동시 공용 : 다수의 사용자가 동시에 같은 내용의 데이터를 이용할 수 있어야 함
  • 내용 참조 : 데이터베이스에 있는 데이터를 참조할 때 주소나 위치에 의해서가 아니라, 요구 데이터 내용으로 찾아야 함


3. 데이터베이스 종류

  • 파일 시스템
    • 파일에 이름을 부여하고 저장, 검색을 위해 논리적으로 어디에 위치해야 하는지 등을 정의한 뒤 관리하는 DB 이전 관리 방식
    • ISAM / VSAM
  • 관계형 데이터베이스 관리시스템(RDBMS)
    • 관계형 모델을 기반으로 하는 가장 보편화된 DB 관리 시스템
    • 테이블 일부를 상하 관계로 표시하여 상관관계 정리
    • Oracle / SQL Server / MySql/ Maria DB 등
  • 계층형 데이터베이스 관리시스템(HDBMS)
    • 데이터를 상하 종속적인 관계로 계층화하여 관리하는 데이터 베이스
    • 접근 빠름, 유연하지 않음
    • IMS / System2000
  • 네트워크 데이터베이스 관리시스템(NDBMS)
    • 데이터의 구조를 네트워크상의 망 형태로 표현한 모델
    • 유연함 / 설계 복잡
    • IDS / IDMS



B. DBMS

1. DBMS 개념

  • 데이터 관리의 복잡성을 해결하는 동시에 데이터 추가, 변경, 검색, 삭제 및 백업, 복구, 보안 등의 기능을 지원하는 소프트웨어


2. DBMS 유형

  • Key-Value Store
    • 메모리 기반에서 성능 우선 시스템 및 빅데이터 처리 가능
    • Redis / DynamoDB
  • 컬럼 기반 데이터 저장
    • 키 안에 조합으로 된 여러 개의 필드를 가짐
    • HBase / Cassandra
  • 문서 저장
    • 값의 데이터 타입이 문서라는 타입을 사용
    • MongoDB / Couchbase
  • 그래프 Store
    • 시맨틱 웹과 온톨로지 분야에서 활용, 그래프로 데이터를 표현
    • Neo4j / AllegroGraph

3. DBMS 특징

  • 데이터 무결성 : 부적절한 자료가 입력되어 동일한 내용에 대해 서로 다른 데이터가 저장되는 것을 허용치 않음
  • 데이터 일관성 : 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 변함없이 일정
  • 데이터 회복성 : 장애가 발생하였을 시 특정 상태로 복구되어야 하는 성징
  • 데이터 보안성 : 불법적인 노출, 변경, 손실로부터 보호되어야 하는 성질
  • 데이터 효율성 : 응답 시간, 저장 공간 활용 등이 최적화되어 사용자, 소프트웨어, 시스템 등의 요구 조건을 만족시켜야 하는 성질



C. 데이터베이스 기술 트랜드

1. 빅데이터

  • 시스템, 서비스, 조직 등에서 주어진 비용, 시간 내에 처리 가능한 데이터 범위를 넘어서 수십 페타바이트 크기의 비정형 데이터
  • 특성
    • : 페타바이트 수준의 대규모 데이터
    • 다양성 : 정형, 비정형, 반정형의 다양한 데이터
    • 속도 : 빠르게 증가하고 수집, 처리되는 데이터
  • 비정형/반정형 데이터 수집
    • 정제되지 않은 데이터 확보, 정보 추출 활용
    • Chukwa / Flume / Scribe
  • 정형 데이터 수집
    • 정제된 대용량 데이터 수집 및 전송
    • ETL / FTP / Sqoop / Hiho
  • 분산데이터 저장/처리
    • 대용량 파일의 효과적인 분산 저장 및 분산 처리
    • HDFS(하둡) / 맵 리듀스(구글)
  • 분산데이터 베이스
    • 하둡 기반 실시간 랜덤 조회 및 업데이트
    • HBase


2. NoSQL

  • 고정된 테이블 스키마가 필요하지 않고 조인 연산을 사용할 수 없으며, 수평적으로 확장 가능한 DBMS
  • 특성
    • Basically Available : 언제든지 데이터는 접근할 수 있어야 함
    • Soft-State : 노드의 상태는 외부에서 전송된 정보를 통해 결정됨
    • Eventually Consistency : 일정 시간이 지나면 데이터의 일관성이 유지
  • 유형
    • Key-Value Store : 유니크한 키에 하나의 값을 가지고 잇는 형태
    • Column Family Data Store : 키 안에 컬럼, 밸류 조합으로 된 여러 개의 필드를 가짐
    • Document Store : 밸류의 데이터 타입이 Document라는 타입
    • Graph Store : 시맨틱 웹과 온톨로지 분야에서 활용


3. 데이터 마이닝

  • 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 기술
  • 주요 기법
    • 분류 규칙 : 과거 데이터의 특성으로 분류모형 생성 후 새로운 결과 값 예측
    • 연관 규칙 : 데이터 안에 존재하는 항목들 간의 종속관계를 찾아냄
    • 연속 규칙 : 연관 규칙에 시간 관련 정보가 포함된 형태 기법
    • 데이터 군집화 : 대상 레코드들을 유사한 특성을 지닌 소그룹으로 분할





DB 문제는 자주 출제되는 걸로 알고 있다.
특히 과목 앞 부분인 논리 DB 파트에서 많이 나오는 걸로 아는데 정규화가 대부분일 것 같다.

이번에도 생각하는 중요 부분을 추려봤다.

데이터 모델 개념
데이터 모델 절차
논리 데이터 모델링 종류
관계 데이터 모델 구성요소
관계 데이터 모델
논리 데이터 모델링 속성
E-R 모델
*정규화

데이터베이스 무결성

DB 특성
DB 종류
NoSQL
데이터마이닝

DB가 중요한 만큼 굉장히 많지만
단어-뜻 으로 추후 요약하고 암기해보자.

참고로 지금까지 정리된 중요 파트는 대부분 기출 문제 파트 위주로 추려낸 것이다.

이 블로그는 저작권자의 CC BY 4.0 라이센스를 따릅니다.