[데이터 모델링] 데이터를 어떻게 저장해야할까

2025. 9. 25. 22:53·데이터 분석/06. 데이터 모델링

 

1. 데이터 모델링

데이터를 사용하려는 목적에 맞게 정리하고 체계화해놓은 모형

  • 데이터 베이스를 어떻게 만들고, 수정할 건지에 대한 계획을 세우는 작업
    따라서 실제로 만든 계획을 반영하는 건 모델링에 포함되지 않는다. 

 

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

  • Entity(개체) : 저장하고 싶은 데이터의 대상, 실제 대상 하나하나(행)
  • Entity type:일반화한 Entity(테이블)
  • Attribute(속성): Entity에 대해서 저장하려는 내용(컬럼)
  • Relationship(관계) : Entity들 사이의 연결점
  • Constraint(제약조건): 데이터의 규칙 "학번은 겹치면 안된다",'수업은 적어도 한명의 지도교수가 있어야한다'

 

1-2. 데이터 모델링의 목적

  • 저장하고자 하는 데이터에서 Entity,Attribute, Relationship, Constraint를 파악
  • 데이터베이스를 구축할 때 기반이 될 모델 만들기

2. Relational 모델

데이터를 row와 column으로  이루어진 테이블로 표현한 모델

여기서 relational은 테이블 간의 연결관계를 의미하지 않는다

  • relation = 테이블, 하나의 테이블이 하나의 relation이다
  • relationship = foregin key 를 통한 관계 즉, 테이블들 사이 맺어지는 관계
  • relational model = 데이터를 테이블 단위로 정리해서 표현한 모델 

단점) 관계가 있다는 것을 알 수 있어도 관계들의 특징을 알아내기는 한계가 있다

  • child table : foregin key를 저장하고 있는 테이블
  • parent table : foregin key를 통해 참조되는 테이블

3. Entity Relationship Model (ERM)

: 개체와 관계를 중심으로 모델링

1.entity 간의 관계를 선으로 연결

2. 선의 양 끝쪽에는 entity사이에 관계를 알 수 있는 정보가 들어있다.

  • 이 기호들의 관계들의 특징을 설명.
  • entity들이 어떤 관계를 갖는지에 따라 모델링을 하는 방법이 바뀌기 때문에 중요.

4. 데이터 모델 스펙트럼

데이터 모델은 얼마나 자세하게 표현됐는지에 따라 3종류로 구별한다.

 

1) 개념 모델(Conceptual Model)

: attribute의 내용은 구체화 하지 않고, 큼지막한 entity와 간단한 연결 관계만을 나타낸다

 

2) 논리 모델(Logical Model) : 개발자 구체화 단계

Entity 뿐만 아니라 attribute까지 표현하고, 이 중에서 primary key, foregin key가 무엇인지 표시한다

 

3) 물리 모델(Physical Model) : 데이터베이스 구축 단계

데이터를 구축할 수 있을 정도로 자세한 정보가 담긴 모델 

각 attribute에서 사용하는 데이터 타입, 변수이름의 저장, 인덱스의 추가 등을 담고있다.


5. 좋은 데이터 베이스의 조건

  • 중복되는 데이터가 저장되지 않는다
  • null이 생기지 않는다
  • 데이터가 늘어날 때 테이블 구조가 변하지 않는다.

'데이터 분석 > 06. 데이터 모델링' 카테고리의 다른 글

카디널리티 관계 유형  (0) 2025.09.29
식별자의 종류와 주식별자의 특성  (0) 2025.09.29
Attribute 후보에 대한 예외 경우  (0) 2025.09.29
데이터 모델링 초안 : 비즈니스 룰에서 ERD까지  (0) 2025.09.29
[데이터 모델링] 모델링의 시작! 비즈니스 룰 이해하기  (0) 2025.09.29
'데이터 분석/06. 데이터 모델링' 카테고리의 다른 글
  • 식별자의 종류와 주식별자의 특성
  • Attribute 후보에 대한 예외 경우
  • 데이터 모델링 초안 : 비즈니스 룰에서 ERD까지
  • [데이터 모델링] 모델링의 시작! 비즈니스 룰 이해하기
Growth DA Log
Growth DA Log
Growth DA Log 님의 블로그 입니다.
  • Growth DA Log
    Growth DA Log님의 블로그
    Growth DA Log
  • 전체
    오늘
    어제
    • 분류 전체보기 (125)
      • TIS_COMPANY (6)
      • 코딩 테스트 (61)
        • 01. Python (3)
        • 02. SQL (58)
      • 데이터 분석 (53)
        • 01. BigQuery (9)
        • 02. GA4 (1)
        • 02-1. GA4를 더 잘 다루기 위한 마케팅 개.. (5)
        • 03. streamlit (5)
        • 04. Git (12)
        • 05. 데이터 엔지니어링 (3)
        • 06. 데이터 모델링 (11)
        • 07. Excel (0)
        • 08. Tableau (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    revert
    윈도우함수
    쿼리테스트
    AARRR
    tableau
    streamlit
    코드잇스프린트후기
    Reset
    solvesql
    tableaubootcamp
    이행성
    rank
    프로그래머스
    코딩테스트
    cross_join
    SQL
    ROW_NUMBER
    코테
    git
    DENSE_RANK
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Growth DA Log
[데이터 모델링] 데이터를 어떻게 저장해야할까
상단으로

티스토리툴바