상세 컨텐츠

본문 제목

정보처리기사 필기시험 준비 [13]

정보처리기사/정보처리기사_필기

by JORDON 2023. 2. 12. 14:52

본문

반응형

물리데이터 저장소 설계

일반적인 시스템 개발절차

비지니스 요구사항 -> 개념모델링(전략수립) -> 논리데이터모델링/ 분석모델링 -> 물리데이터모델링/설계모델링 -> 데이터베이스구축/어플리케이션개발 -> 운영시스템(데이터베이스/어플리케이션)

 

논리데이터 저장소

  • 데이터 및 데이터 간 연관성, 제약조건을 식별하여 논리적 구조로 조직화하여 모델링 표기법으로 형상화한 데이터의 저장소

물리데이터 저장소

  • 논리데이터 저장소에 저장된 데이터와 구조들을 DBMS의 특성을 고려하여 저장하는 하드웨어적 저장장치

데이터모델링

데이터 모델링의 정의

기업의 정보구조를 실체(Entity:엔티티)와 관계(Relation)를 중심으로 명확하게 하고 체계적으로 표현하여 문서화하는 기법

데이터 모델링의 목적

  1. 연관 조직의 정보요구에 대한 정확한 이해를 할 수 있다.
  2. 사용자, 설계자, 개발자 간의 효율적인 의사소통 수단을 제공한다.
  3. 데이터 체계 구축을 통한 고품질의 소프트웨어와 유지보수 비용을 감소시키는 효과를 기대한다.
  4. 신규 또는 개선 시스템의 개발 기초를 제공한다.

데이터모델링의 특성

  • 데이터중심의 분석을 통한 업무 흐름 파악이 용이하다.
  • 데이터  무결성을 보장할 수 있다.
  • 데이터의 공유를 통한 중복을 제거하고 일관성 있는 정보를 제공받을 수 있다.

데이터모델링의 절차

개념데이터모델링 -> 논리데이터모델링 -> 물리데이터모델링 -> 데이터베이스 구축

 

 

개념데이터 모델링

  • 전체의 정보요건을 표현한 상위수준의 모델
    • 주요 엔티티타입, 기본속성, 관계 주요업무기능
    • 모든 업무영역, 주요 업무 규칙정의
    • 논리데이터 모델의 기초가 된다.

논리데이터모델링

  • 개념모델로부터 업무영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델
    • 모든 업무용 엔티티타입, 속성, 관계, 프로세스
    • 모든 업무데이터를 정규화(Normalization)한다.
    • 모든 업무 규칙과 관계를 완전하고 정확하게 표현
    • 성능 혹은 기타 제약 사항과는 독립적인 모델로서 특정DBMS로부터 독립적
  • 엔티티와 속성들의 관계를 구조적으로 정의하는 단계
    • 엔티티(Entity) - 관리할 대상이 되는 실체
    • 속성()Attribute) - 관리할 정보의 구체적 항목
    • 관계(Relationship) - 엔티티간의 대응관계
  • 논리데이터 모델링의 특성
    • 논리적 데이터모델링 적용시 요구사항이 충분히 수집되지 않으면 다음 단계의 요구사항 변경에 따른 많은 비용이 발생한다.
    • 모든 이해당사자들과 의사소통의 보조자료로서 E-R모델을 활용
    • 논리적 모델은 하드웨어나 소프트웨어에 독립적이다.

정규화(Normalization)

  • 중복성을 최소화하고 정보의 일관성을 보장하기 위한 개념
  • 어떤한 구조가 가장 바람직하며 어떻게 분해하여야 하는지에 대한 구체적인 판단의 기준을 제공
  • 정규화된 데이터모델은 정확성, 일치성, 단순성, 비중복성, 안정성을 보장
  • 삽입이상(Insertion anomaly)
    • 릴레이션에 새 데이터를 삽입하려면 불필요한 데이터도 함께 삽입해야되는 문제
  • 갱신이상(Update anomaly)
    • 릴레이션의 중복된 튜플들 중 일부만 수정하여 데이터가 불일치하게 되는 모순이 발생하는 문제
  • 삭제이상(Deletion anomaly)
    • 릴레이션에서 튜플을 삭제하면 필요한 데이터까지 손실되는 연쇄 삭제 현상이 발생하는 문제

제1정규화

  • 반복되는 속성이나 그룹 속성을 제거
  • 새로운 실체와 1:N관계 추가
  • 모든 속성은 반드시 하나의 값을 가져야함(반복X)

제2정규화

  • 주식별자에 완전하게 종속되지 않은 속성 제거
  • 불완전 함수적 종족제거
  • 모든 속성은 반드시 UID전부에 종속되어야 함 (일부 종속X)

제3정규화

  • 비식별자에 종솓되는 속성 제거
  • 주식별자에 이행종속되는 속성 제거
  • UID가 아닌 모든 속성간에 서로 종속될 수 없음(속성간 종속성 배제)

제4정규화

  • 실제 거의 고려되지 않는 정규화
  • 주식별자에 다가종속되는 속성을 두가지 이상 두지 않음
  • 2차 정규화된 테이블은 다대다관계를 가질수 없음
  • 어떠한 관계구조가 바람직한 것인지 바람직하지 못한 관계를 어떻게 분해하여야하는지에 관한 구체적인 판단기준을 제공

BCNF

제5정규화

 

정규화 수준에 따른 장단점

  • 장점
    • 유연한 데이터구축가능
    • 데이터정확성이 높아짐
  • 단점
    • 물리적 접근이 복잡
    • 길이가 짧은 데이터생성으로 과도한 조인(JOIN)발생

트렌잭션 인터페이스

  • 트렌잭션(Transaction)
    • 하나의 작업을 수행하기 위해 필요한 데이터베이스 연산들의 모임
    • 작업 수행에 필요한 SQL문의 모임
    • 논리적인 작업의 단위
    • 장애 발생시 복구작업을 위한 중요한 단위
    • COMMIT(정상종료, DB반영)
    • ROLLBACK(비정상종료, 취소)
    • SAVWPOINT(ROLLBACK 할 위치)
  • 트렌잭션 인터페이스의 특징
    • 원자성, 일관성, 격리성, 지속성

물리데이터모델링

  • 설계단계에서 시스템의 설계적 및 정보 요건을 정확하고 완전하게 표현한 모델
    • 데이터베이스 생성을 위한 물리구조로 변환
    • 설계와 성능을 고려한 조정을 수행
    • 적용 DBMS에 적합한 성능조정을 수행
  • 물리데이터 저장소 설계
    • 반정규화/역정규화(Denormalization)
      • 정규화에 충실하여 모델링을 수행하면 종속성, 활용성은 향상되나 수행속도가 증가하는 경우가 발생하여 이를 극복하기 위해 성능에 중점을 두어 정규화하는 방법
    • 특징
      • 데이터모델링 규칙에 얽매이지 않고 수행
      • 시스템이 물리적으로 규현되었을 때 성능향상을 목적으로 한다.
    • 반정규화/역정규화(Denormalization)유형
      • 용도
        • 다량의 범위를 자주 처리하는 경우
        • 특정 범위의 데이터만 자주 처리되는 경우
        • 처리범위를 줄이지 않고는 수행속도를 개선할 수 없는 경우
      • 방법
        • 집계테이블추가
          • 활용하고자 하는 집계정보를 위한 테이블을 추가하고 각 원본테이블에 트리거를 등록시켜 생성하여 활용하는데 이때 트리거의 오버헤드에 유의해야함
        • 진행테이블추가
          • 이력관리등의 목적으로 사용되며 활용도가 좋아지도록 기본키를 적절히 설정하여야 한다.
        • 특정부분만을 포함하는 테이블 추가
          • 방대한 테이블의 특정부분만을 사용하는 경우 자주 사용되는 부분으로 새로운 데이터를 생성하여 활용
        • 테이블조합
          • 용도
            • 대부분 처리가 두개이상의 테이블에 대해 항상 같이 일어나는 경우에 활용
          • 방법
            • 해당 테이블을 통합하여 설계
        • 테이블분할
          • 용도
            • 칼럼의 사용빈도 차이가 많이 나는 경우
            • 각각의 사용자가 각각 특정한 부분만 지속적으로 사용하는 경우
            • 상황에 따라 SUPER_TYPE을 모두 내려 SUB-TYPE 별로 분할하거나 SUPER-TYPE만은 따로 테이블을 생성하는 경우
          • 방법
            • 수직분할
            • 수평분할
        • 테이블제거
          • 용도
            • 테이블 재정의나 칼럼의 중복화로 더이상 엑세스 되지 않는 테이블 발생할 경우
          • 방법
            • 해당 테이블을 삭제
        • 컬럼의 중복화
          • 용도
            • 자주 사용되는 컬럼이나 다른 테이블에 분산되어 있어 상세한 조건에도 불구하고 엑세스 범위를 줄이지 못하는 경우
            • 대량데이터에서 Row별 연산 결과를 얻고자 할 때 성능향상을 위한 파생(Derived)컬럼을 추가할 경우
            • 기본키의 형태가 적절하지 않거나 너무 많은 컬럼으로 구성된 경우
            • 정규화 규칙에 얽매이지 않으면서 성능향상을 목적으로 한 반정규화를 통한 중복데이터를 허용하는 경우
          • 방법
            • 필요한 해당 테이블이나 컬럼을 추가
      • 3단계데이터 베이스구조
        • 외부단계(사용자관점) - > 개념단계(조직 전체관점) -> 내부단계(저장장치관점)
  • 물리데이터저장소 구성
    • 물리데이터저장소 설계에 따라 데이터저장소에 실제 데이터가 저장될 물리적 공간을 구성
    • 다양한 오브젝트를 설계한다.
      • 테이블제약조건 설계
        • 참조 무결성을 관리하기 위한 제약조건(Constraint)를 정의
      • 인덱스 설계
        • 부분 범위 데이터 검색시 전체 테이블을 검색하지 않고 빠른 검색을 위해 특정 컬럼들에 대해서 미리 인덱싱(정렬) 작업을 함으로써 해당 인덱스를 이용하여 빠른 검색을 할 수 있는 기법
      • 뷰 설계
        • 테이블을 기초로하는 가상 테이블을 말한다.
      • 클러스터 설계
        • 지정된 컬럼 값의 순서대로 데이터 행을 저장하는 방법으로 하나 혹은 그 이상의 테이블을 같은 클러스터내 저장이 가능하다.
      • 파티션 설계
        • 대용량DB는 몇개의 중요한 트랜잭션 테이블에서 데이터가 증가함으로 보다 작은 단위로 나눔으로써 성능저하 방지와 관리의 용이성을 위해 사용하는 기법 
        • 범위분할(Range Partitioning)
          • 지정한 열의 값을 기준으로 분할
        • 해시분할(Hash Partitioning)
          • 해시함수에 따라 데이터분할
        • 조합분할(Composite Partitioning)
          • 범위분할 후, 해시함수를 적용하여 다시 분할
    • 디스크구성 설계
      • 다양한 오브젝트의 디스크 구성 설계시 고려사항을 참조하여 설계하도록 한다.

ORM(Object-Relational Mapping)프레임워크

  • Object 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것
  •  
반응형

관련글 더보기

댓글 영역