본문 바로가기
자격증 공부/정보처리기사 실기

3. 데이터 입출력 구현

by 코헤0121 2024. 10. 5.
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 데이터 마이닝

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

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

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