데이터 모델링의 이해

@t189216·2024년 3월 14일

DB

목록 보기
10/12

데이터 모델링의 개요


모델링이란?

모델링 은 복잡한 현실세계를 추상화, 단순화하여 일정한 표기법에 의해 명확하게 표현하는 것을 말합니다. 보통 그림으로 표현합니다.

  • 추상화(모형화) : 덜 중요한 걸 삭제하고, 중요한걸 강조하는 것
    추상화를 하다보면 단순화 되고, 명확화 된다.

구체화, 복잡화, 일반화 ❌

모델(Model) : 현실 세계의 추상화된 반영

모델링의 관점

  • 데이터 관점(What)
    데이터와 데이터 간 관계, 업무와 데이터 간 관계를 모델링
    데이터에 접근하는 방법(How), 사람(Who) ❌

  • 프로세스 관점(How)
    업무가 실제로 하고 있는 일 또는 해야할 일을 모델링

  • 데이터와 프로세스의 상관 관정(Interaction)
    업무 처리 방법에 따라 데이터가 받는 영향을 모델링

데이터 모델링의 3단계


현실세계의 객체를 개념적 데이터 모델링(개념화)을 수행하면 개념적 구조가 됩니다. 이 개념적 구조를 논리적 데이터 모델링을 수행하면 논리적 구조가 되고, 논리적 구조에 대해서 물리적 데이터 모델링을 수행하면 물리적 구조인 데이터베이스가 됩니다.

개념적 구조와 논리적 구조를 합해 개념세계라고 하고, 논리적 구조와 물리적 구조(물리적 데이터 모델링, 데이터베이스)를 합해 물리 세계라고 합니다.

하지만, 데이터 모델링의 단계는 학계와 산업계의 이해가 약간 다릅니다..

(SQLD는 산업계와 좀 더 가까움.)

🎓 학계

ERD 다이어그램을 그리면 개념적 모델링, 테이블 스키마를 그리면 논리적 모델링
개념적 모델 : 엔터티와 관계가 명확히 나타나는 모델.
논리적 모델 : 테이블 구조도
논리적 모델링에서 테이블 도출

Chen 타입의 ERD에서 엔터티는 원래 중요하고, 관계를 강조함. 관계가 속성을 가질 수 있음.
ERD 다이어그램을 가지고 테이블 도출함. 이 과정에서 식별자를 사용해 PK와 FK를 지정.

🏢 산업계

개념적 모델링과 논리적 모델링을 거의 동시에 수행
개념적 모델 : 추상화 수준을 더 높임
논리적 모델 : 좀 더 구체적으로 표현
물리적 모델링에서 테이블 도출

개념적 모델링과 논리적 모델링의 차이가 크지 않기 때문에 처음부터 논리적 모델링을 하게 되는 것이 실무의 흐름입니다.

데이터 독립성


파일 시스템과 데이터베이스 시스템

파일 시스템 은 데이터 자체가 별도의 파일로 관리되고, 파일을 프로그램이 액세스하는 형태이다. 데이터들이 동일한 데이터를 중복으로 관리하면 데이터 불일치 현상이 발생할 수 있습니다.

데이터베이스 시스템 은 프로그램과 데이터를 구분하여 동일한 데이터를 중복 관리하지 않고 한 곳에서 관리해서 나눠 씁니다.

데이터베이스의 3단계 구조

  • 외부 스키마
    프로그램 관점, 요구사항 관점. 각 사용자 또는 응용프로그램이 바라보는 스키마.

  • 개념 스키마
    모든 사용자의 관점을 통합한 스키마. DB에 저장되는 데이터와 그들 간의 관계를 표현.

  • 내부 스키마
    DB가 물리적으로 저장된 형식.

데이터 모델링은 통합 관점의 개념 스키마를 만들어 가는 과정을 말한다.

데이터의 독립성과 종속성

  • 데이터의 종속성
    응용 프로그램에 대한 데이터의 종속성.
    ex : 파일 시스템

    • 응용 프로그램과 데이터 상호 의존적임.
    • 데이터를 저장한 파일 구조가 변경되면 이에 대응되는 응용 프로그램도 변경되어야 함.
  • 데이터의 독립성
    데이터 구조가 변경되어도 응용 프로그램이 변경될 필요가 없음.
    논리적 독립성 + 물리적 독립성으로 실현됨.

  • 데이터 독립성이 유지되지 않으면?
    데이터의 중복성 및 복잡도 증가
    요구사항 대응 난이도 증가 ➡️ 데이터 유지보수 비용 증가

외부 스키마와 개념 스키마 사이에 독립을 보장하는 것이 논리적 데이터 독립성, 개념 스키미와 내부 스키마의 독립성을 보장하는 것이 물리적 데이터 독립성 입니다.

물리적 데이터 독립성, 논리적 데이터 독립성은 자연히 발생하는 것이 아니라 독립성을 유지하기 위해 별도의 작업이 필요합니다.

논리적 독립성

  • 외부 스키마와 개념 스키마를 매핑함으로써 논리적 독립성이 보장됨
  • 개념 스키마가 변경되어도 외부 스키마에는 영향 ❌
  • 논리적 구조가 변경되어도 응용 프로그램에는 영향 ❌

물리적 독립성

  • 개념 스키마와 내부 스키마를 매핑함으로써 논리적 독립성이 보장됨
  • 내부 스키마가 변경되어도 외부/개념 스키마에는 영향 ❌
  • 저장 장치의 구조가 변경되어도 응용 프로그램과 개념 스키마에는 영향 ❌

데이터 모델링의 구성 요소


  • 개체(Entity) : 업무와 관련된 어떤 것

  • 속성(Attribute) : 어떤 것이 갖는 성격

  • 관계(Relationship) : 어떤 것 간의 관계

  • 엔터티, 관계/차수, 속성 /식별자

다양한 ERD의 표기법

  • Peter Chen 표기법, IE 표시법, Barker 표기법, ...

참고 강의

profile
Today I Learned

0개의 댓글