데이터로그😎

[MySQL] 데이터 모델링 본문

SQL/MySQL

[MySQL] 데이터 모델링

지연v'_'v 2024. 1. 10. 12:36

데이터 모델링이란?

데이터 모델링

  • 현실 세계의 데이터를 데이터 베이스로 옮기는 과정
  • 데이터 베이스 설계의 핵심 과정

 

데이터 모델

  1. 개념적 데이터 모델
    • 개체 - 관계 모델 
  2. 논리적 데이터 모델
    • 데이터베이스의 논리적 구조로 표현하는 도구

1. 개념적 데이터 모델

  • 피터 첸(Peter Chen)이 제안한 개념적 데이터 모델
  • 개체-개체 간의 관계를 이용해 현실 세계를 개념적 구조로 표현
  • 핵심 요소: 개체, 속성, 관계
  • 개체 - 관계 다이어그램 (E-R diagram) : 개체 - 관계 모델을 이용 

E-R diagram

개체 (Entity)

  • 현실세계에서 사람이나 사물과 같이 구별되는 모든 것
  • 저장할 가치가 있는 중요 데이터를 가지고 있는 사람이나 사물, 개념, 사건 등
  • 다른 개체와 구별되는 이름을 가지고 있고, 각 개체만의 고유한 특성이나 상태, 즉 속성을 하나 이상 가지고 있음
  • E-R diagram에서 STUDENT, COURSE, LECTURER, SUBJECTS에 해당
    개체 타입 (Entity type) - 개체를 고유의 이름과 속성들로 정의한 것
    - 파일 구조의 레코드 타입(record type)에 대응됨
    개체 인스턴스 (Entity Instance) - 개체를 구성화하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체
    - 개체 어커런스 (entity occurrence) 라고도 함
    - 파일 구조의 레코드 인스턴스 (record instance)에 대응됨
    개체 집합 (Entity Set) - 특정 개체 타입에 대한 개체 인스턴스들을 모아놓은 것

속성 (Attribute)

  • 개체나 관계가 가지고 있는 고유의 특성
  • 의미있는 데이터의 가장 작은 논리적 단위
  • 파일 구조의 필드(field)와 대응됨
  • E-R diagram에서 타원형으로 표현하고 타원 안에 이름을 표기

 

 

관계 (Relationship)

  • 개체와 개체가 맺고 있는 의미 있는 연관성
  • 개체 집합들 사이의 대응관계, 즉 매핑(mapping)을 의미
  • 관계의 유형: 관계에 참여하는 개체 타입의 수 기준
    • 이항 관계: 개체 타입 두 개가 맺는 관계
    • 삼항 관계: 개체 타입 세 개가 맺는 관계
    • 순환 관계: 개체 타입 하나가 자기 자신과 맞는 관계
  • 관계의 유형: 매핑 카디널리티 기준

 

 

  • 일대일(1:1) 관계
    1. 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 하나와 관계를 맺을 수 있음
    2. 개체 B의 각 개체 인스턴스도 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있음
  • 일대다(1:n) 관계
    1. 개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러개와 관계를 맺을 수 있음
    2. 개체 B의 각 객체 인스턴스는 개체 A의 개체 인스턴스 하나와 관계를 맺을 수 있음
  • 다대다(n:m) 관계
    1.  개체 A의 각 개체 인스턴스가 개체 B의 개체 인스턴스 여러개와 관계를 맺을 수 있음
    2.  개체 B의 각 개체 인스턴스가 개체 A의 개체 인스턴스 여러개와 관계를 맺을 수 있음
  • 매핑 카디널리티 (Mapping Cardinality): 관계를 맺는 두 개체 집합에서 각 개체 인스턴스가 연관성을 맺고 있는 상대 개체 집합의 인스턴스 개수
  • 관계 참여 특성

 

2. 논리적 데이터 모델

  • 관계 데이터 모델
  • 하나의 개체에 대한 데이터를 하나의 릴레이션에 저

 

 

출처

https://youtu.be/pNrxmHpzcYU?feature=shared

 

'SQL > MySQL' 카테고리의 다른 글

[MySQL] JOIN 🆚 서브쿼리  (0) 2024.01.04
[MySQL] 데이터베이스 & 유저 생성  (0) 2024.01.01
[MySQL] 테이블 생성, 입력, 수정, 삭제  (0) 2023.12.29
[MySQL] 테이블 정보 확인  (0) 2023.12.29
[MySQL] 날짜형식 관련 함수  (0) 2023.12.29