Cohe

3. 데이터 입출력 구현 본문

자격증 공부/정보처리기사 실기

3. 데이터 입출력 구현

코헤0121 2024. 10. 5. 17:26
728x90

논리 데이터 저장소 확인

데이터 모델

1. 데이터 모델 개념

데이터 모델은 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델입니다.

데이터 모델의 표시 요소

  1. 구조(Structure)
    • 데이터베이스에 논리적으로 표현될 대상으로서의 개체 타입과 개체 타입 간의 관계
    • 데이터 구조 및 정적 성질을 표현하는 요소
  2. 연산(Operation)
    • 데이터베이스에 저장된 실제 데이터를 처리하는 작업에 대한 명세
    • 릴레이션을 조작하기 위한 관계 연산을 나타냄 (SELECT, PROJECT, JOIN, DIVISION)
  3. 제약 조건(Constraint)
    • 데이터베이스에 저장될 수 있는 실제 데이터의 논리적인 제약 조건
    • 데이터 무결성 유지를 위한 DB의 보편적 방법
    • 릴레이션의 특정 칼럼에 설정하는 제약을 의미 (예: 개체 무결성, 참조 무결성 등)

2. 데이터 모델 절차

  1. 요구사항 분석
    • 도출된 요구사항 간 상충을 해결하고 범위를 파악
    • 외부 환경과의 상호작용을 분석을 통해 데이터에 대한 요구 분석
  2. 개념적 설계 (개념적 데이터 모델)
    • 사용자의 요구에 대한 트랜잭션을 모델링하는 단계
    • 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조를 도출
    • 트랜잭션 모델링, View 통합방법 및 Attribute 합성 고려
    • DB 종류와 관계없음
    • 주요 산출물: 개체관계 다이어그램
  3. 논리적 설계 (논리적 데이터 모델)
    • 트랜잭션의 인터페이스를 설계하는 단계
    • DBMS에 맞는 논리적 스키마를 설계
    • 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현
    • 테이블, 인덱스, 뷰, 파티션 등 객체를 생성
    • 응답시간, 저장 공간의 효율화, 트랜잭션 처리를 고려하여 설계
    • 성능 측면에서 반정규화를 수행
    • 정규화 수행
    • 논리적 데이터베이스 구조로 매핑
    • 스키마의 평가 및 정제
    • "관계 데이터 모델", "계층 데이터 모델", "네트워크 데이터 모델", "객체 지향 데이터 모델", "객체-관계 데이터 모델" 중 하나에 맞게 설계
    • 관계형 데이터베이스에서는 테이블을 설계하는 단계
  4. 물리적 설계 (물리적 데이터 모델)
    • 논리 데이터 모델을 특정 DBMS의 특성 및 성능을 고려하여 물리적인 스키마를 만드는 단계
    • 논리 데이터 모델을 사용하고자 하는 각 DBMS의 특성을 고려하여 데이터베이스 저장 구조로 변환

논리 데이터 모델

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

  • 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현하는 프로세스
  • 개념 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델

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

  1. 관계 데이터 모델
    • 2차원 테이블 형태로 구성
    • 기본 키(PK)와 외래 키(FK)로 관계 표현
  2. 계층 데이터 모델
    • 트리 형태로 구성
    • 1:N 관계만 허용
  3. 네트워크 데이터 모델
    • 그래프 형태로 구성
    • N:M 관계 만족 구조

3. 관계 데이터 모델

  1. 구성요소
    • 릴레이션(Relation): 행과 열로 구성된 테이블
    • 튜플(Tuple): 행(Row)
    • 속성(Attribute): 열(Column)
    • 카디널리티(Cardinality): 튜플의 수
    • 차수(Degree): 애트리뷰트의 수
    • 스키마(Schema): 데이터베이스의 구조, 제약 조건 등의 정보
    • 인스턴스(Instance): 실제 저장된 데이터의 집합
  2. 관계 대수
    • 절차적 정형 언어
    • 연산자: 일반 집합 연산자, 순수 관계 연산자
  3. 관계 해석
    • 비절차적 언어
    • 튜플 관계 해석과 도메인 관계 해석

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

  1. 개체(Entity)
  2. 속성(Attribute)
  3. 관계(Relationship)

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

  • 데이터와 그들 간의 관계를 명확하게 표현하는 모델
  • 개체, 속성, 관계로 구성

6. 정규화

  1. 개념: 데이터의 중복성을 제거하여 이상 현상을 방지하는 과정
  2. 단계:
    • 1NF: 원자값으로 구성
    • 2NF: 부분 함수 종속 제거
    • 3NF: 이행함수 종속 제거
    • BCNF: 결정자가 후보 키가 아닌 함수 종속 제거
    • 4NF: 다치 종속 제거
    • 5NF: 조인 종속 제거
  3. 함수 종속
    • 부분 함수 종속
    • 완전 함수 종속
    • 이행 함수 종속

7. 반정규화

  1. 개념: 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 기법
  2. 특징:
    • 장점: 성능 향상, 관리 효율성 증가
    • 단점: 데이터 일관성 및 정합성 저하, 유지 비용 발생
  3. 기법:
    • 테이블 병합
    • 테이블 분할 (수평/수직)
    • 중복 테이블 추가
    • 컬럼 중복화
    • 중복 관계 추가

물리 데이터 저장소 설계

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

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

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

  1. 개체를 테이블로 변환
    • 테이블과 개체 명칭을 동일하게 권고
    • 개체는 한글명 사용
    • 테이블은 가독성을 위해 영문명 사용
  2. 속성을 컬럼으로 변환
    • 표준화된 약어 사용 권고
    • SQL 예약어 사용 피해야 함
    • 짧은 컬럼 명칭 권고
    • 복합단어는 미리 정의된 표준에 따라 명명
  3. UID를 기본키로 변환
    • 개체의 UID에 해당하는 모든 속성을 기본키로 선언
    • Not Null, Unique 등의 제약 조건 추가 정의
    • 관계에 의한 외래키가 기본키에 포함될 수 있음
  4. 관계를 외래키로 변환
    • 외래키명은 기본키 이름을 그대로 사용 (다른 의미를 가질 경우 변경 가능)
    • 순환 관계에서 자신의 기본키는 외래키로 정의
  5. 컬럼 유형과 길이 정의
    • 적절한 유형 정의 및 데이터의 최대 길이 설정
    • 주요 데이터 유형:
      • CHAR: 최대 2000바이트의 고정길이 문자열
      • VARCHAR2: 최대 4000바이트의 가변 길이 문자열
      • NUMBER: 38 자릿수의 숫자
      • DATE: 날짜 값
      • BLOB, CLOB: 바이너리, 텍스트 데이터 (최대 4GB)
  6. 반정규화 수행
    • 시스템 성능 향상과 개발 및 운영의 단순화를 위해 수행
    • 주요 기법:
      a. 테이블 조합
      • 1:1 관계 테이블 조합
      • 1:M 관계 테이블 조합
      • 슈퍼타입/서브타입 테이블 조합
        b. 테이블 제거
      • 테이블 재정의
      • 접근하지 않는 테이블 제거
        c. 컬럼 중복화
      • 조인 성능 향상을 위한 중복 허용
        d. 테이블 분할
      • 수직 분할 / 수평 분할
        e. 중복 테이블 추가
      • 집계 테이블 추가
      • 특정 부분만 포함하는 테이블 추가

물리 데이터 저장소 구성

1. 데이터베이스 무결성

1.1 개념

  • 저장된 데이터 값과 현실 세계의 실제 값이 일치하는 성질
  • DBMS의 중요한 기능으로, 데이터 연산에 제한을 두어 유지

1.2 종류

  1. 개체 무결성: 동일한 기본 키(PK) 불가, NULL 허용 안 됨
  2. 참조 무결성: 외래 키는 참조하는 개체의 기본 키값이나 NULL이어야 함
  3. 속성 무결성: 기본값, NULL 여부, 도메인 규칙 준수
  4. 사용자 정의 무결성: 사용자의 의미적 요구사항 준수
  5. 키 무결성: 같은 키값을 가진 튜플 허용 안 됨

2. 키

2.1 개념

  • 튜플을 구별할 수 있는 기준이 되는 속성

2.2 특성

  • 유일성: 모든 엔터티를 유일하게 구분
  • 최소성: 최소한의 속성으로 구성

2.3 종류

  1. 기본 키: 각 튜플을 고유하게 식별하는 컬럼
  2. 대체 키: 후보 키 중 기본 키로 선택되지 않은 키
  3. 후보 키: 각 튜플을 구별하는 기준이 되는 컬럼
  4. 슈퍼 키: 기본 키와 대체 키를 합친 키
  5. 외래 키: 다른 릴레이션의 기본 키를 참조하는 키

3. 인덱스 설계

3.1 개념

  • 검색 최적화를 위한 데이터 구조

3.2 적용 기준

  • 인덱스 분포도 10-15% 이내
  • 부분처리 목적
  • 조회 및 출력 조건으로 사용되는 컬럼
  • 기본키와 Unique 키의 제약 조건

3.3 컬럼 선정

  • 분포도가 좋은 컬럼은 단독 생성
  • 자주 조합되는 컬럼은 결합 인덱스로 생성
  • 수정이 빈번하지 않은 컬럼 선정

4. 파티셔닝

4.1 개념

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

4.2 유형

  1. 레인지 파티셔닝: 연속적인 숫자나 날짜 기준
  2. 해시 파티셔닝: 해시 함수 값 기준
  3. 리스트 파티셔닝: 특정 파티션에 대한 명시적 제어
  4. 컴포지트 파티셔닝: 2개 이상의 파티셔닝 결합
  5. 라운드로빈: 순차적으로 파티션에 할당

4.3 장점

  1. 성능 향상: 데이터 액세스 범위 감소
  2. 가용성 향상: 전체 데이터 훼손 가능성 감소
  3. 백업 가능: 분할 영역 독립적 백업 및 복구
  4. 경합 감소: 입출력 성능 향상, 디스크 컨트롤러 경합 감소

데이터베이스 개념 및 트렌드 요약

1. 데이터베이스 기본 개념

  • 정의: 다수가 사용할 목적으로 통합 관리되는 데이터 집합
  • 특성: 실시간 접근성, 계속적인 변화, 동시 공용, 내용 참조
  • 종류:
    • 파일 시스템
    • 관계형 데이터베이스 관리시스템 (RDBMS)
    • 계층형 데이터베이스 관리시스템 (HDBMS)
    • 네트워크 데이터베이스 관리시스템 (NDBMS)

2. DBMS (Database Management System)

  • 개념: 데이터 관리의 복잡성을 해결하고 다양한 기능을 지원하는 소프트웨어
  • 유형:
    • 키-값(Key-Value) DBMS
    • 컬럼 기반 데이터 저장 DBMS
    • 문서 저장(Document Store) DBMS
    • 그래프(Graph) DBMS
  • 특징: 데이터 무결성, 일관성, 회복성, 보안성, 효율성

3. 데이터베이스 기술 트렌드

3.1 빅데이터

  • 개념: 기존 처리 범위를 넘어서는 대규모 비정형 데이터
  • 특성: 데이터의 양, 다양성, 속도, 가치
  • 기술: 수집, 저장, 처리, 분석, 시각화 기술

3.2 NoSQL

  • 개념: 비관계형, 분산, 개방 소스 데이터베이스 시스템
  • 특성: BASE (Basically Available, Soft-state, Eventually consistent)
  • 유형: Key-Value Store, Column Family Data Store, Document Store, Graph Store

3.3 데이터 마이닝

  • 개념: 대규모 데이터에서 패턴을 찾아내는 기술
  • 절차: 목적 설정 → 데이터 준비 → 데이터 가공 → 마이닝 기법 적용
  • 주요 기법: 분류 규칙, 연관 규칙, 연속 규칙, 데이터 군집화

'자격증 공부 > 정보처리기사 실기' 카테고리의 다른 글

5. 인터페이스 구현  (3) 2024.10.05
4. 통합 구현  (0) 2024.10.05
2. 화면 설계  (1) 2024.10.02
1-1 소프트웨어 개발방법론, 프로젝트 관리  (1) 2024.09.30
오답 - 키워드 정리만 해놓음  (2) 2024.09.29