데이터모델링) 1. 데이터 모델링 이론

Choonsik S·2024년 11월 7일

데이터모델링

목록 보기
1/3

1. 데이터 모델링이란

모델 : 작품을 만들기 전에 미리 만든 물건. 완성된 작품의 대표적인 보기. 일종의 ‘추상화’

모델링 : 모델을 만드는 것, 그룹핑하고, 관계를 맺는 것

데이터 모델링 : (업무)데이터 모델을 만드는 것

  • 개념적⭐⭐⭐ : 식별(구별, 인지, 분류)하는 과정
  • 논리적⭐⭐⭐ : 추상화로 표현
  • 물리적⭐⭐⭐ : 추상화 모델을 구체화된 형태로 변환

ER모델 (Entity-Relationship Model)

  • 개체관계모델
  • 가장 대표적인 데이터모델
  • 그룹핑하고 관계끼리 줄 긋는 것
  • 영수증 종이 데이터 통째로 나열, 저장 -> 쪼개서 분류하기 > 줄긋기 = RDB
  • ERD(Entity-Relationship Diagram) : 객체를 그리고 관계를 줄 그어 맺음(DB구조를 그림으로 나타낸 것)
    ex. 레고조립을 보고 다시 설명서를 작성해 보는 것

ER모델의 질적 특성

  • 완전성 (업무에 빠진 곳이 있으면 안됨)
  • 정확성
  • 최소성 (너무 불필요하게 복잡해서 안됨)
  • 자명성 (스스로 이해하기 쉬워야 함)
  • 확장성 (시스템 확장에 무리가 없어야 함)
  • 표현성
  • 가독성



2. ER 모델 구성 요소


엔티티(Entity)

  • table⭐⭐⭐

  • 엔티티 표기법

    출처 https://brunch.co.kr/@yoongg59/5
  • 엔티티 슈퍼타입/서브타입 표기법

    출처 https://velog.io/@chosj1526/DB-%EC%8A%88%ED%8D%BC-%EC%84%9C%EB%B8%8C%ED%83%80%EC%9E%85-%EB%AA%A8%EB%8D%B8%EB%A7%81
  • 상위수준과 하위수준 엔티티의 일반화

    출처 https://blog.naver.com/sanguineous/222280719741

시스템만들 때 UNION, Outer Join 이용하는데 두 그룹을 잘 합쳐서 한 테이블 만들면 Join할 필요 없게되고, 개발이 쉽고 성능이 좋아져. But, '개인정보'와 '법인정보'가 같은 테이블에 있으면 정보의 의미를 구분하기 어려워져서 FK조건, Not Null적용이 어렵고 무결성에 문제생김

  • 제약조건(if문) 많이 걸면 걸수록 데이터 품질이 좋아지고, 제약조건이 없으면 성능이 좋아짐

엔티티 형태

  • 독립 엔티티 : 강의, 수강생

  • 업무중심 엔티티 : 주문, 결제

  • 종속 엔티티 : 다른 엔티티 꼭 필수



관계(Relationship)

관계 구성요소⭐⭐⭐

  • 관계수 : 1:1, 1:多, 多:多

  • 선택성 : 선택 or 필수

  • 식별자상속 : PK이면서 FK인 것

관계 유형

  • 병렬관계 (join)

  • 엔티티 추가 설계 (join많으면 엔티티 추가함)

관계 차원

  • 단항관계(Self join) : table 1개

  • 이항관계 : 두 개 엔티티간의 관계

속성

  • 도메인 : 문자형, 숫자형, 날짜형 등이 있음 (Type)

  • 분류
    - 단순속성(단일함, 1개), 복합속성(단순속성들 조합)
    - 저장속성(cache쓰는 것과 비슷, 성능 높음), 파생속성(저장하지 않는 속성)
    - 단일 값, 다중 값

식별자의 특징

  • 유일성 : Not Null(Null이 아니다)

  • 최소성 : 너무 불필요하게 복잡해서 안됨

  • 불변성 : 식별자의 값은 변하지 않아야 함

  • 존재성 : 반드시 데이터 값이 존재



3. 관계형 데이터 모델 이론


관계형 모델의 키

  • 슈퍼키 (최소성 보장X, 유일성 보장)
  • 후보키 : 식별할 수 있는 최소한의 속성집합 (최소성 보장)
  • 기본키 : 후보키 중 하나만 기본키 가능, 유일성, 최소성가짐
  • 대체키 : 후보키 중 기본키 外
  • 외래키 : 다른 릴레이션(table)에 속한 어트리뷰트(필드)의 기본키를 참조하는 경우
출처 https://meteorfish.blog/m/145

제약조건⭐⭐⭐

  • 키 제약조건 (PK)
  • 실체 무결성 (Not Null) : 데이터가 null값이면 안된다(데이터가 있어야 한다.)
  • 영역 무결성 (Check, type)
  • 참조 무결성 (FK)

함수 종속

함수에 키를 넣었을 때 키에 해당하는 내용


정규화(Normalization)

  • 테이블 쪼개기
  • 역정규화(반정규화) : 너무 과하게 정규화가 된 경우에 다시 붙임
profile
One step, Two step

0개의 댓글