제육's 휘발성 코딩
반응형

데이터 모델링

데이터 모델링이란 현실 세계를 데이터베이스로 표현하는 것을 의미한다.

특징

  • 추상화 (Abstraction) : 현실 세계를 간략하게 표현
  • 단순화 (Simplification) : 누구나 쉽게 이해할 수 있도록 표현
  • 명확성 (Clarity) : 명확하게 의미 해석, 한가지 의미만 가짐

단계

1. 개념적 모델링

  • Entity와 Attribute를 도출하고 개념적 ERD를 작성
  • 복잡하게 표현하지 않고 중요한 부분을 위주로 모델링
  • 추상화 수준이 가장 높으며, 전사적 관점에서 모델링

2. 논리적 모델링

  • 개념적 모델링을 논리적 모델링으로 변환하는 작업
  • 식별자를 도출하고 필요한 모든 릴레이션 정의
  • 정규화를 통해 데이터 모델의 독립성 확보

3. 물리적 모델링

  • 실제 데이터베이스를 구축 (테이블, 인덱스, 함수 등 생성)
  • 성능, 보안, 가용성을 고려하여 구축

관점

데이터

  • 비즈니스 프로세스에서 사용되는 데이터
  • 구조 분석, 정적 분석

프로세스

  • 비즈니스 프로세스에서 수행하는 작업
  • 시나리오 분석, 도메인 분석, 동적 분석

데이터와 프로세스

  • 프로세스와 데이터 간의 관계
  • CRUD(Create, Read, Update, Delete) 분석

ERD

  • Entity Relationship Model 표기법 - 피터첸
  • Entity 간의 관계를 정의하는 모델링 방법

ERD 작성 절차

  • 엔티티를 도출
    • 예) 고객, 계좌, 종목, 주문
  • 엔티티 배치
    • 중요한 엔티티를 왼쪽 상단에 배치
  • 엔티티 간의 관계 설정
  • 관계명 서술
    • 엔티티 간의 행위나 존재 표현 (계좌를 개설, 주문을 발주 등)
  • 관계 참여도를 표현
    • 1대N, N대1 등 엔티티간의 관계 설정
  • 관계의 필수 여부 표현
    • 반드시 필요한 관계인지 여부 결정

고려사항

1. 데이터 모델의 독립성

  • 독립성 확보를 위해 중복된 데이터 제거 (정규화)
  • 변화에 능독적 대응 가능

2. 고객 요구사항 표현

  • 고객의 요구사항을 간결하고 명확하게 표현

3. 데이터 품질 확보

  • 데이터 표준을 정의하고 표준 준수율을 관리

3층 스키마

  • 사용자, 설계자, 개발자가 데이터베이스를 보는 관점에 따라 데이터베이스를 기술하고 관계를 정의한 ANSI 표준
  • 데이터베이스의 독립성을 확보하기 위한 방법
  • 독립성 확보시, 데이터 복잡도 감소, 데이터 중복 제거, 요구사항에 유연성 등의 장점을 갖는다.
  • 각 계층을 뷰라고도 한다.

독립성

  • 논리적 독립성
    • 개념 스키마가 변경 되더라도 외부 스키마가 영향을 받지 않는 것
  • 물리적 독립성
    • 내부 스키마가 변경 되더라도 개념 스키마가 영향을 받지 않는 것

구조

외부 스키마

  • 사용자 관점, 업무상 관련이 있는 데이터 접근
  • 관련 데이터베이스의 뷰를 표시
  • 응용 프로그램이 접근하는 데이터베이스 정의

개념 스키마

  • 설계자 관점, 사용자 전체 집단의 데이터베이스 구조
  • 전체 데이터베이스 내의 규칙과 구조 표현
  • 통합 데이터베이스 구조

내부 스키마

  • 개발자 관점, 데이터베이스의 물리적 저장 구조
  • 데이터 저장 구조, 레코드 구조, 필드 정의, 인덱스 등
반응형
profile

제육's 휘발성 코딩

@sasca37

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 맞구독은 언제나 환영입니다^^