1장 데이터 모델링 이론 - 핵심 데이터 모델링

김도형·2022년 9월 26일
1

데이터 모델링 이론

데이터 모델링이란

  • 수기로 적은 노트의 정보를 컬럼과 key로 시스템화 하는 것

정규화

  • 개념 설계(모델링) -(정규화)-> 논리 모델링
  • 정규화는 중복제거이다.
  • 속성을 나누는것(= 테이블을 쪼개는 것)
  • 정규화를 너무 심하게 할 경우 Join이 빈번하게 발생하여 성능 저하 우려

제약 조건

  • 데이터 유지하기 위해 "제약조건" 사용
  • 제약 조건(6가지)
    • PK
    • FK
    • Not Null
    • Unique
    • Default
    • Check 제약조건

엔티티

  • 예시 학생이라는 엔티티는 학번, 이름, 학점 등의 속성으로 특정 지어짐.
  • 논리 모델링에서 엔티티가 물리 모델링에서는 테이블로 변경

논리 모델링 순서

  1. grouping
  2. 관계 맺기

ER 모델 구성 요소

  • 엔티티, 관계, 속성
  • 속성과 관계 중 하나 이상의 조합으로 구성된 식별자를 포함

정적 구조 vs 동적 구조

  • 동적 구조
    • 테이블 1개, 확장가능
      ex : 대댓글, 디렉토리 폴더(tree 구조)
  • 정적 구조

배타 관계(서브타입) vs 고객 일반화(슈퍼타입)

  • 배타 관계(서브 타입) : 2개 join
  • 고객 일반화(슈퍼 타입) : 1개 join
  • 고객 일반화 장점
    • 배타관계 해소하고 고객 유형에 신규로 추가 가능.
    • 새로운 엔티티를 추가하지 않아도 되서 유연하다.
    • join 이 줄어드는 것
  • 고객 일반화 단점
    • 개별 엔티티 고유 속성의 의미가 불분명
    • 주민등록번호와 법인등록번호를 슈퍼 타입 엔티티에서 고객등록번호로 대체하여 사용할 경우 의미가 불분명
    • 법인명과 고객명에 대한 데이터 길이의 성격이 달라 큰 도메인으로 정의해야함.

      UNION vs UNION ALL
      UNION : 중복 제외 처리함.
      UNION ALL : 중복 제외 처리안함.
      처리 속도는 UNION ALL이 빠르다.

핵심, 중요, 행위 엔티티

  • 핵심 엔티티
    • 부모 엔티티 없음
    • 고객, 상품, 조직
  • 중요 엔티티(업무 기본)
    • 핵심 엔티티 간의 관계
    • 핵심 엔티티(고객, 상품)가 부모
  • 행위 엔티티(업무 내역)
    • 중요 엔티티에서 발생하는 이력 관리

관계

  • 엔티티 간의 관계
  • 관계수 : 어떤 엔티티의 인스턴스 하나가 다른 엔티티 몇 개(1, m) 인스턴스 대응 하는지
    • 일대일 관계
      • 직원 - 인턴과정
    • 일대다 관계
      • 부서 - 직원
    • 다대다 관계
      • 학생 - 수강과목
  • 관계 선택성 : 엔티티 인스턴스에 대해 상태 엔티티 인스턴스 존재 유무 나타냄.
    • 필수 - 필수 관계
      • 주문 - 주문상품
      • 상품을 선택하지 않고 주문을 하는 경우는 없음.
    • 필수 - 선택 관계
      • 고객 - 주문
      • 꼭 고객이 주문하지 않아도 됨. 하지만 주문은 반드시 고객이 있어야함.
    • 선택 - 선택
      • 사원 - 계좌
      • 사원이 꼭 신규 계좌를 만들지 않아도 됨. 계좌에는 꼭 사원이 존재하지는 않음.
  • 식별자 상속
    • FK이면서 PK(= 다른 테이블 PK이면서 PK)
    • FK는 다른 테이블의 PK
    • 식별관계를 다른말로는 key를 물려주는 것

관계형 모델 키

  • 속성 -> PK 후보(후보키) -> 나머지 대체키, 외래키
  • 외래키
    • NULL 가능
    • 중복된 튜플 가짐
    • 외래키(FK) 부모의 PK내에서 값이 허용됨. 그 이외의 허용 불가

관계형 데이터 모델링의 유래

  • 수학 집합론 유래이다.

부채꼴 함정(Fan Trap)

  • 물품이 어떤 공급사에서 구매하고 관리되는지 알 수 없는 문제 발생
  • 부채꼴 함정 해소(공급사와 물품 간의 관계 명확해짐)

균열 함정(Chasm Trap)

  • 회사의 직원이 꼭 공급사가 아닌 곳에서도 물품을 사는 경우가 있음.
  • 균열 함정 해소

    출처 : 핵심 데이터 모델링 유동오 지음 (주) 디비안

profile
3년간 웹/앱, 자동제어 QA 🔜 개발자로 전향하여 현재 교육 회사에서 백엔드 개발자로 근무 중입니다.(LinkedIn : https://www.linkedin.com/in/dohyoung-kim-5ab09214b)

0개의 댓글