정보처리기사/데이터베이스 구축

논리 데이터베이스 설계 2

RangA 2023. 5. 25. 23:20

02. 정보 모델링과 데이터 모델링

01. 모델링

1) 정보 모델링과 데이터 모델링의 개념

  1. 정보 모델링(Information Modeling) : 현실 세계에 존재하는 개체를 인간이 이해할 수 있는 정보 구조로 표현하는 과정
  2. 데이터 모델링(Data Modeling) : 정보 모델링 과정에서 생성된 정보 구조를 컴퓨터가 이해할 수 있는 형태의 논리적인 데이터 구조로 만들어 가는 과정

2) 모델링 단계

  1. 현실 단계 : 현실 세계에서 사람이 이해할 수 있는 개체를 파악하고, 개체의 특징과 개체의 값으로 개체의 실체를 만들어내는 단계
  2. 개념 단계 : 여러 개체들의 공통점을 찾아 개체 타입(유형)과 개체의 관계를 사람이 이해할 수 있는 형태로 추상화하는 단계
  3. 논리 단계 : 개념 단계에서 파악된 개체를 컴퓨터가 이해할 수 있는 형태의 데이터 구조와 데이터들의 관계로 구성하는 단계



02. 데이터 모델링

1) 데이터 모델링의 정의

  • 현실 세계의 데이터 구조를 컴퓨터 세계의 데이터 구조로 변환하는 개념적인 도구
  • 회사나 학교의 정보 구조를 개체와 관계를 중심으로 명확하고 체계적으로 표현하여 문서화하는 기법
  • 현실 세계의 요구사항을 컴퓨터 세계의 데이터 구조로 변환하기 위하여 개체와 관계를 중심으로 분석, 설계하여 점차적으로 자료 구조를 만들어 가는 과정

2) 데이터 모델링의 구성 요소

  1. 논리적 구조(Logical Structure) : 논리적으로 표현된 데이터 구조
  2. 연산(Operation) : 데이터 구조에서 삽입, 삭제, 변경하는 방법
  3. 제약조건(Constraint) : 데이터 구조에서 허용할 수 있는 관계를 명세화

3) 데이터 모델링 목적

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

4) 데이터 모델링 특성

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



03. 데이터 모델링 절차

1) 데이터 관점의 데이터 모델링 절차

  1. 개념 데이터 모델링
  2. 논리 데이터 모델링
  3. 물리 데이터 모델링
  4. 데이터베이스 구축

2) 개념(Conceptual) 데이터 모델링

1. 개념 데이터 모델링의 개념

  • 정보 내용의 요구를 만족시키는 것
  • 자연스럽고 쉽게 이해할 수 있는 정보 구조를 제공하는 것
  • 처리의 요구 조건, 응답 시간과 같은 성능 목적을 지원하는 것
  • 개체의 속성들로 기술된 개체 타입 간의 관계를 이용하여 현실 세계를 표현하는 방법으로 E-R(Entity-Relationship) 모델이 대표적
  • 전체의 정보 요건을 표현한 상위 수준의 모델로 주요 개체 타입, 기본 속성, 관계, 주요 업무 기능 등을 포함함
  • 모든 업무 영역을 포함하고, 주체 영역에 포함되는 중심 개체 타입 간의 관계를 파악하여 주요 업무 규칙을 정의
  • 논리 데이터 모델의 기초가 됨
  • DBMS에 독립적인 개체 관계도(ERD : E-R Diagram)를 설계하는 단계

2. 개념적 데이터 모델링의 2단계

  • 개념 스키마 모델링(Conceptual Schema Modeling) : 요구분석 단계에서 나온 결과(명세)를 E-R 다이어그램과 같은 DBMS에 독립적이고 고차원적인 표현 기법으로 기술하는 과정
  • 트랜잭션 모델링(Transaction Modeling) : 요구 조건 분석 결과로 식별된 응용을 검토해서 이들을 구현할 수 있는 트랜잭션을 고차원 명세로 기술하는 과정

3) 논리(Logical) 데이터 모델링

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

  • 데이터베이스 개발 과정의 첫 단계로 전략 수립 및 분석 단계에서 실시함
  • 데이터 모델링 과정에서 가장 핵심이 되는 부분
  • 개념적 데이터 모델에서 만들어진 개념적 구조를 컴퓨터에 저장할 수 있는 논리적 구조로 변환하는 데이터 모델로, 데이터베이스의 전체적인 구조를 설명할 때 사용하는 데이터 모델
  • 개념적 데이터 모델을 바탕으로 DBMS가 어떤 모델을 지원하는지 파악하여 논리적 데이터 모델로 변환시키는 단계
  • 데이터베이스 관리자가 사용하는 단계이며, 데이터의 속성과 데이터 간에 존재하는 관계를 기술하는 단계
  • 목표 DBMS의 구현 데이터 모델로 표현된 데이터베이스 스키마가 도출되는 단계
  • 목표 DBMS에 맞는 스키마 및 트랜잭션 인터페이스 설계에 관한 단계
  • 개념적 데이터 모델로부터 업무 영역의 업무 데이터 및 규칙을 구체적으로 표현한 모델로서, 모든 업무용 개체, 속성, 관계, 프로세스 등을 포함
  • 논리 데이터 모델링의 목적은 누가, 어떻게, 그리고 전산화와는 별개로 비즈니스 데이터에 존재하는 사실들은 인식하여 기록하는 것
  • 논리적 데이터 모델에는 관계 표현 방법에 따라 관계형 데이터 모델, 계층적 데이터 모델, 네트워크 데이터 모델이 있음
  • 모든 업무 데이터를 정규화하여 모델링함
  • 모든 업무 규칙과 관계를 완전하고 정확하게 표현함
  • 성능 혹은 기타 제약 사항과는 독리적인 관계로써, 특정 DBMS로부터 독립적이라고 할 수 있음

2. 논리적 데이터 모델링의 3단계

  1. 논리적 데이터베이스 구조로 매핑
  2. 트랜잭션 인터페이스를 설계
  3. 스키마의 평가 및 정제(최적화)

3. 논리적 데이터 모델링 특성

  • 논리적 데이터 모델링 시 요구사항을 충분히 수집하지 않으면 다음 단계의 요구사항 변경에 따른 많이 비용이 발생함
  • 모든 이해 당사자들과 의사소통의 보조 자료로써 E-R 모델을 활용함
  • 논리적 데이터 모델은 하드웨어나 소프트웨어에 독립적

4) 물리(Physical) 데이터 모델링

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

  • 설계 단계에서 시스템의 설계 및 정보요건을 정확하고 완전하게 표현한 모델로써 데이터베이스 생성을 위한 물리 구조로 변환함
  • 논리적 단계를 바탕으로 데이터베이스에 포함될 저장 레코드 양식, 데이터 구조, 응답 시간, 저장 공간 등을 설계함

2. 물리적 데이터 모델링의 3단계

  1. 레코드 분석 및 설계(저장 레코드의 형식을 설계)
  2. 저장 레코드들을 클러스터링
    • 클러스터링 : 빠른 액세스 기능을 제공하기 위해 데이터를 하나로 집중시키거나 분산시키는 작업
    • 데이터의 특성에 따라 연속적인 위치에 저장하거나 인덱스를 두어 연결 형태로 저장할 수 있음
  3. 접근 경로를 설계

3. 오브젝트(Object) 추가

  • 설계용 개체 타입을 추가
  • 설계용 속성을 추가

4. 성능을 고려한 조정

  • 적용 DBMS 특성을 고려함
  • 개체 타입의 분리 또는 통합을 검토함
  • 반규정화(Denormalization)를 함
  • 관계를 해체함

5. DBMS에 적합한 성능 조정

  • 인덱스 추가 및 조정
  • 테이블 스페이스 조정
  • 인덱스 스페이스 조정

5) 데이터베이스 구축

1. 데이터베이스 구축의 개념

  • 설계된 데이터를 저장하기 위해 DBMS를 이용하여 데이터베이스를 생성하는 것

2. 데이터베이스 구축 시 고려사항

  • 무결성 : 데이터베이스의 수정, 삽입, 삭제 후에도 데이터에 문제가 없어야 함
  • 일관성 : 데이터베이스에 저장된 값의 질의응답 시에 모호성이 없어야 함
  • 회복성 : 장애 발생 시에 원래 상태로 복구할 수 있어야 함
  • 보안성 : 불법적인 데이터 접근이나 변경에 보호될 수 있어야 함
  • 효율성 : 응답 시간의 단축, 저장 공간의 절약, 생산성 등을 고려해야 함
  • 확장성 : 시스템에 영향을 받지 않는 범위 안에서 새로운 데이터를 추가하거나 확대할 수 있어야 함



04. 관계(Relationship)

1) 관계의 종류

  1. 속성 관계(Attribute Relationship)
    • 개체를 구성하고 있는 속성과 속성 사이의 관계
    • 개체 내 관계(Intra-Entity Relationship)라고도 함
  2. 개체 관계(Entity Relationship)
    • 개체와 개체 사이의 관계
    • 개체 간의 관계(Inter-Entity Relationship)라고도 함
  3. 종속 관계(Dependent Relationship)
    • 식별 관계 : 하위 개체에 존재하는 상위 개체의 주 식별자인 외래 식별자가 하위 개체의 주 식별자의 전체 또는 일부로 존재하는 관계
    • 비식별 관계 : 하위 개체에 존재하는 외래 식별자가 하위 개체의 일반 속성으로 존재하는 관계
  4. 중복 관계(Redundant Relationship)
    • 특정 두 개체 간 두 번 이상의 종속 관계가 발생하는 관계
    • 실제 업무에서는 꼭 필요한 경우 외에는 사용하지 않는 것이 좋음
  5. 재귀 관계(Recursive Relationship)
    • 데이터의 종속 관계에 있어서 특정 개체가 자기 자신 개체를 다시 참조하는 관계
    • 자기 자신 개체에게 종속 관계를 지정하는 것을 의미
  6. 배타 관계(Exclusive Relationship)
    • 개체에 존재하는 특정 속성의 조건 또는 구분자 등에 의해 개체 특성을 분할하는 일반화 관계
    • 배타 AND 관계 : 하위 개체로 구성되는 개체 중에서 구분자 조건에 따라 반드시 하나의 개체만을 선택해야 하는 경우
    • 배타 OR 관계 : 하나 이상의 개체를 선택할 수 있는 경우

2) 관계의 대응

  • 1:1 관계 : 개체 1과 개체 2가 반드시 한 개씩 존재
  • 1:0 또는 1:1 관계 : 개체 1은 존재하지만, 개체 2는 없거나 하나만 존재
  • 1:1 또는 1:N 관계 : 개체 1은 반드시 한 개 존재해야 하며, 개체 2는 한 개 이상 존재
  • 1:0 또는 1:1 또는 1:N 관계 : 개체 1은 반드시 한 개 존재하며, 개체 2는 없거나 1개 이상 존재
  • 1:N 관계 : 개체 1은 반드시 한 개 존재하며, 개체 2는 반드시 여러 개 존재

3) M:N(다대다) 관계의 해소

  • M:N 관계는 불특정 관계로도 알려져 있으며, 데이터 구조에 있어서 어떠한 실제적 방법으로도 구현이 불가능함
  • M:N 관계는 새로운 관계 개체를 추가하여 N:1 관계로 변경해야 함
  • M:N 관계는 데이터 종속성에 대한 결정을 어렵게 하여 모델의 논리적 완성과 부분집합 식별 능력을 제한함
  • M:N 관계 해결 시까지 모델은 불안정 상태이고, 모델은 정규화되지 못하고, 모델에 대한 문서화 작업도 완료되지 못함

4) 관계의 특징

  • 개체 간의 관계는 단순히 개체의 명칭을 파악하는 것이 아니라, 개체 간의 업무 연관 관계를 파악해서 결정해야 함
  • 개체 간의 1:0 또는 1:1 관계의 경우, 개체 1과 개체 2는 주 식별자가 동일함
    • 주 식별자가 동일한 관계는 단순히 데이터를 분할하는 의미뿐만 아니라, 시스템의 성능 향상, 데이터 보안 등의 목적이 있음
  • 자주 활용되지 않는 항목들이나 부하가 염려되는 항목들은 개체에 포함하지 않도록 하는것이 중요함
  • 1:N 관계가 설정되는 개체들은 유일 식별자를 잘 선택하여 개체가 유일하면서도 최적의 구조가 되도록 설계해야 함