[정보처리기사 실기] 3. 데이터 입출력 구현(1)

Sua An·2021년 10월 3일
0
post-thumbnail

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

📌 데이터 모델

✅ 개념

  • 현실 세계의 정보를 인간과 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델
  • 표시해야할 요소 : 논리적 데이터 구조, 연산, 제약조건

✅ 절차 (개논물)

: 념적 데이터 모델 → 리적 데이터 모델 → 리적 데이터 모델

  • 개념적 데이터 모델
    • 현실 세계에 대한 인식을 추상적, 개념적으로 표현하여 개념적 구조 도출
    • DB 종류와 관계 X
    • 주요 산출물 : 개체관계 다이어그램(ERD)
  • 논리적 데이터 모델
    • 업무의 모습을 모델링 표기법으로 형상화하여 사람이 이해하기 쉽게 표현
    • 목표 DBMS에 맞는 스키마 설계
    • 정규화 수행
  • 물리적 데이터 모델
    • 특정 DBMS 특성 및 성능을 고려하여 물리적인 스키마 생성
    • 테이블, 인덱스, 뷰, 파티션 등 객체 생성
    • 성능 측면에서 반정규화 수행

📌 논리 데이터 모델 검증

✅ 논리 데이터 모델링 개념

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

✅ 논리적 데이터 모델링 종류

  • 관계 데이터 모델
    • E.F.Codd 박사가 제안
    • 2차원 테이블 형태
    • 기본 키와 외래 키로 표현
    • 1:1, 1:N, N:M 관계

  • 계층 데이터 모델
    • 트리 형태
    • 상하 관계 존재 (부모-자식)
    • 1:N 관계만

  • 네트워크 데이터 모델
    • 그래프 형태
    • CODASYL DBTG 모델
    • 상위, 하위 레코드 사이에 N:M (다대다) 관계

✅ 관계형 데이터 모델

  • 구성요소
    • 릴레이션(Relation) : 테이블
    • 튜플(Tuple) : 행
    • 속성(Attribute) : 열
    • 카디널리티(Cardinality) : 튜플의 수
    • 차수(Degree) : 속성의 수
    • 스키마(Schema) : 제약조건 등 정보 담고 있는 기본적인 DB의 구조
    • 인스턴스(Instance) : 스키마에 따라 실제 저장된 데이터의 집합

✅ 관계 대수

  • 개념 : 관계형 데이터베이스에서 원하는 정보와 그것을 어떻게 유도하는가 기술하는 절차적 정형언어

  • 연산자 종류

    • 일반 집합 연산자
      - 합집합(∪)
      - 교집합(∩)
      - 차집합(-)
      - 카티션 프로덕트(×) : 모든 튜플을 연결하여 릴레이션 구성

    • 순수 관계 연산자
      - 셀렉트(σ) : 조건 만족하는 튜플 반환
      - 프로젝트(π) : 주어진 속성 값으로만 구성된 튜플 반환
      - 조인(⋈) : 공통 속성을 이용해 두 릴레이션의 튜플 연결
      - 디비전(÷) : R÷S일때, S 튜플과 관련있는 R 튜플 반환

✅ 관계 해석

  • 개념 : 튜플 관계 해석과 도메인 관계 해석을 하는 비절차적 언어
  • 특징 : 프레디킷 해석에 기반한 언어이며 비절차적 언어

📌 논리 데이터 모델링 속성

✅ 개체

  • 사물 또는 사건
  • 피터 챈 모델 : 사각형(□)으로 , 까마귀발 모델 : 표 형식으로 표현

✅ 속성

  • 개체가 가지고 있는 요소 or 성질
  • 피터 챈 모델 : 타원형(○)으로 , 까마귀발 모델 : 표 내부에 표현
  • 주의사항
    • 속성명은 단수형으로 명명
    • 개체명 사용X
    • Null, Not Null 고려하여 작성

✅ 관계

  • 두 개체 간의 관계
  • 피터 챈 모델 : 마름모(◇)
  • 까마귀 발 모델
    • ―― : 1:1 관계
    • ――< : 1:m 관계
    • >――< : n:m 관계

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

✅ 개념

  • 현실 세계에 존재하는 데이터와 그들 간의 관계를 사람이 이해할 수 있는 형태로 명확하게 표현하기 위해 가장 널리 사용되고 있는 모델

✅ 개체-관계 다이어그램 기호

  • 개체 : □
  • 관계 : ◇
  • 속성 : ○
  • 다중 값 속성 : ◎
  • 관계-속성 연결 : ―

📌 정규화

✅ 개념

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

✅ 이상 현상(Anomaly) (삽삭갱)

: 데이터의 중복성으로 릴레이션 조작시 발생하는 비합리적 현상

  • 삽입 이상 : 저장시 불필요한 세부정보를 입력해야 하는 경우
  • 삭제 이상 : 삭제시 원치 않는 다른 정보가 같이 삭제되는 경우
  • 갱신 이상 : 특정 부분만 수정되어 중복된 값이 모순을 일으키는 경우

✅ 정규화 단계 (원부이 결다조)

  • 1차 정규형 : 원자값으로 구성
  • 2차 정규형 : 부분 함수 종속 제거
  • 3차 정규형 : 이행함수 종속 제거
  • 보이스-코드 정규형 : 결정자 후보 키가 아닌 함수 종속 제거
  • 4차 정규형 : 다치 종속 제거
  • 5차 정규형 : 조인 종속 제거

📌 반정규화

✅ 개념

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

✅ 특징

  • 장점 : 성능 향상, 관리 효율성 증가
  • 단점 : 데이터 일관성 및 정합성 저하, 유지 비용 별도 발생하여 성능에 나쁜 영향 미칠 수 있음

✅ 기법

  • 테이블
    • 테이블 병합
      - 1:1, 1:M 관계를 통합하여 조인 횟수를 줄여 성능 향상
      - 슈퍼/서브타입 테이블 통합하여 성능 향상

    • 테이블 분할(=파티셔닝)
      - 수평분할 : 레코드 기준 분할
      - 수직분할 : 컬럼 기준 분할

    • 중복 테이블 추가
      - 집계 테이블 추가 : 집계 데이터를 위한 테이블 생성
      - 진행 테이블 추가 : 이력 관리 목적
      - 특정 부분만을 포함하는 테이블 추가 : 데이터 많은 테이블의 특정 부분만 사용하는 경우 테이블 생성

  • 컬럼
    • 컬럼 중복화 : 조인 성능 향상을 위한 중복 허용
  • 관계
    • 중복관계 추가 : 조인에 의한 성능 저하 예방

0개의 댓글