DA

데이터 모델링 개념

dbavayne 2022. 12. 16. 09:47

https://www.erdcloud.com/

 

ERDCloud

Draw ERD with your team members. All states are shared in real time. And it's FREE. Database modeling tool.

www.erdcloud.com

 

1. 데이터모델링이란?

데이터 모델링이란 정보시스템 구축의 대상이 되는 업무 내용을 분석하여 이해하고 약속된 표기법에 의해 표현하는걸 의미한다. 

그리고 이렇게 분석된 모델을 가지고 실제 데이터베이스를 생성하여 개발 및 데이터 관리에 사용되는, 데이터베이스 설계의 핵심 과정이기도 하다.

특히 데이터를 추상화한 데이터 모델은 데이터베이스의 골격을 이해하고 그 이해를 바탄으로 SQL문장을 기능과 성능적인 측면에서 효율적으로 작성하기 위해 꼭 알아야 한다.


2. 데이터 모델링 순서


 2.1 업무파악
 2.2 개념적 데이터 모델링

개념적 데이터 모델은 추상화 수준이 높고 업무중심적이고 포괄적인 수준의 모델일을 수행한다. 

주요 활동으로는 핵심 엔터티와 그들간의 관계를 발견하고, 그것을 표현하기 위해서 엔터티-관계 다이어그램(ER 다이어그램)을 생성하는 것이다.

 

데이터베이스 ERD 다이어그램 테이블 표를 그리기전에 간단하게 도형으로 만들어보는 개념적 데이터 모델링 이라고 이해하면 된다.

그리는 방법은 어렵지 않다. 도형이 의미하는 바를 알고 화살표를 통해 관계를 표현하기만 하면 된다.


 2.3 논리적 데이터 모델링

엔터티 중심의 상위 수준의 엔터티 중심의 모델이 완성되면,

구체화된 업무중심의 데이터 모델을 만들어 내는데 이것을 논리적인 데이터 모델링이라고한다.

 

이 단계에서 업무에 대한 Key, 속성, 관계등을 표시하며, 정규화 활동을 수행한다.

정규화는 데이터 모델의 일관성을 확보하고 중복을 제거하여 신뢰성있는 데이터 구조를 얻는데 목적이 있다.

 

위에서 구현한 개념적 er 다이어그램을 테이블 형태로 재 구성 한다.

이 단계에선 단순히 추상적인 데이터에서 보다 구체화적인 데이터로 작성한다.

예를 들어 회원정보의 아이디, 비밀번호에 각 데이터 타입을 명시해 주고 각 데이터간의 관계를 정밀하게 맺어주며 테이블의 키(key)를 지정해준다.


 2.4 물리적 데이터 모델링

물리적 데이터 모델링은 최종적으로 데이터를 관리할 데이터 베이스를 선택하고, 선택한 데이터 베이스에 실제 테이블을 만드는 작업 을 말한다.


3. ERD
 3.1 엔티티

  • Entity는 정의 가능한 사물 또는 개념을 의미한다.
  • 사람이나, 객체 혹은 개념이나 이벤트 등을 Entity로 둘 수 있다.
    객체에는 가구나 자동차를 예시로 들 수 있다.
    개념은 프로필이나 자기소개서 등이 있을 수 있겠고, 이벤트에는 거래 등이 있을 수 있다.
  • 데이터베이스를 설계할 때, '테이블'이 Entity로 정의될 수 있다.

엔티티도 저장하는 데이터 정보 주제에 따라 종류가 구분된다.

예를들어 고객 정보같은 실제로 물리적인 형태로 있는 정보와 구매 이력같은 무형적이고 개념적인 정보가 있다.

이 엔티티 분류 구분을 잘 해주어야 정규화 및 데이터베이스 설계에 있어 굉장히 도움이 된다.

구 분 내 용
유형 엔티티 물리적인 형태
(예 : 고객, 상품, 거래처, 학생, 교수 등)
무형 엔티티 물리적인 형태가 없고 개념적으로만 존재하는 엔티티
(예 : 인터넷 장바구니, 부서 조직 등)
문서 엔티티 업무 절차상에서 사용되는 문서나 장부, 전표에 대한 엔티티
(거래명세서, 주문서 등)
이력 엔티티 업무상 반복적으로 이루어지는 행위나 사건의 내용을 일자별, 시간별로 저장하기 위한 엔티티
( 예 : 입고 이력, 출고 이력, 구매 이력 등)
코드 엔티티 무형 엔티티의 일종으로 각종 코드를 관리하기 위한 엔티티
(예 : 국가코드, 각종 분류 코드)


 3.2 키와 제약조건

PK (primary key) 🔑

  • 중복이 없고 NULL 값이 없는 유일한 값에 지정하는 키

FK (Foreign Key) ✈️

  • Foreign key를 표시할 때에는 을 사용하는데, 개체와 관계를 따져 표시한다.


 3.3 관계선 표기

  • 먼저, 두 관계중 부모의 키를 PK로 받는지 안받는지에 따라서 점선, 실선 표기가 다르게 된다.

  • 실선 : 식별 관계
     - 부모 자식 관계에서 자식이 부모의 키를 외래키로 참조해서 자신의 키로 설정.
  • ​점선 : 비식별 관계
     - 부모 자식 관계에서 자식이 부모의 키를 외래키로 참조해서 일반 속성으로 사용.


 3.4 관계선 읽기

두 개체의 관계 - 필수 / 선택 기호 

  • '|' 표시가 있는 곳은 반드시 있어야 하는 개체. 필수
  • 'O' 표시가 있다면 없어도 되는 개체. 선택

IE표기법과 Barker 표기법 차이 

 

'DA' 카테고리의 다른 글

mariadb 에서 unsigned 컬럼 join 시 문제점  (0) 2024.01.24
모델링 스터디(쇼핑몰)  (0) 2023.04.09
제 1-2-3 정규화 & 역정규화  (0) 2022.12.16