[SQLD 암기] 데이터 모델링

younghyun·2023년 6월 9일
0

SQLD

목록 보기
1/18

데이터 모델링

유의점

  • 중복: 여러 장소에 같은 정보를 저장하지 않기.
  • 비유연성: 데이터의 정의를 사용 프로세스와 분리하기.
  • 비일관성: 데이터와 데이터간의 상호 연관 관계에 대한 명확한 정의가 필요. 프로세스와 테이블의 연계성을 높이지 않기.

종류

  • 개념적 데이터 모델링: 추상화 수준이 높고, 업무 중심, 포괄적 수준의 모델링, 전사적 데이터모델링, EA 수립 시 사용
  • 논리적 데이터 모델링: 시스템 구축하려는 업무에 대해 KEY, 속성, 관계를 정확하게 표현, 재사용성 높음
  • 물리적 데이터 모델링: 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적 성격을 고려하여 설계

데이터 모델링의 주요 이유

데이터베이스 스키마 구조 3단계

  • 외부스키마: 사용자 관점, DB에 저장되는 데이터와 그들간의 관계를 표현
  • 개념스키마: 개념단계 하나의 개념적 스키마, 조직 전체의 DB
  • 내부스키마: 내부단계, DB가 물리적으로 저장된 형식

엔티티의 특징

  • 유일한 식별자
  • 두 개 이상의 인스턴스의 집합
  • 업무 프로세스에 의해 반드시 이용
  • 반드시 속성이 있어야 함
  • 다른 엔티티와 최소 한 개 이상의 관계, 공통코드나 통계성 엔티티의 경우 생략 가능

발생시점에 따른 엔티티 분류

  • 기본 엔티티: 원래 존재하는 정보, 독립적 생성, 상속받지 않음
  • 중심 엔티티: 업무 중심 역할, 기본 엔티티로부터 발생, 관계를 통해 생성
  • 행위 엔티티: 부모 엔티티로부터 발생, 자주 바뀌거나 데이터 양 증가, 상관 모델링 시 도출

ERD

  • ERD 작성 방법은 엔티티 도출 -> 엔티티 배치 -> 관계 설정 -> 관계명 기술 흐름
  • 관계의 명칭은 관계 표현에 있어서 매우 중요한 부분에 해당
  • ERD에서는 관계를 연결할 때, 존재와 행위를 구분하지 않고 단일화된 표기법 사용

유무형에 따른 엔티티 분류

  • 유형 엔티티: 물리적 형태,안정적이고 지속적으로 활용, 업무로부터 엔티티 구분이 용이
  • 개념 엔티티: 물리적인 형태가 없음, 관리해야 할 개념적 정보로 구분
  • 사건 엔티티: 업무 수행에 따라 발생, 발생량이 많고 각종 통계 자료에 이용

속성

의미상 더 이상 분리되지 않는 최소의 데이터 단위
하나의 속성에는 한 개의 값만 가짐
속성은 하나의 인스턴스에만 속할 수 있음

속성의 특성에 따른 분류

  • 기본 속성: 업무분석을 통해 바로 정의한 속성 (이미 업무상 코드로 정의한 속성이면 기본 속성 아님)
  • 설계 속성: 업무상 존재하지 않지만 설계하면서 도출한 속성
  • 파생 속성: 다른 속성으로부터 계산이나 변형되어 생성

속성 명칭

  • 서술식 속성명을 사용하지 않음
  • 유일성 확보
  • 해당 업무에서 사용하는 이름을 부여

속성의 쪼갤 수 있는지에 따라 분류

속성은 하나의 값을 갖지만,
그 안에 동일한 성질 여러 값이 나타남 – 다중 값
한 개의 값만 가짐 – 단일 값

도메인

속성이 가질 수 있는 값의 범위, 엔티티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정

관계의 표기법

  • 관계명 : 관계의 이름
  • 관계 차수 : 1:1, 1:M, M:N
  • 관계 선택사양 : 필수관계, 선택관계
    • 필수 참여: 참여하는 모든 참여자가 반드시 관계를 가짐
    • 선택 참여: 물리속성에서 외부키로 연결되는 경우 NULL을 허용할 수 있는 항목

관계의 분류

  • 연관 관계: 실선, 소스코드에서 멤버변수로 선언
  • 의존 관계: 점선, 오퍼레이션에서 파라미터로 사용
  • ERD에서는 존재적 관계와 행위에 의한 관계를 구분하지 않지만, 클래스 다이어그램에서는 구분함

두 개의 엔티티 사이에서 관계를 도출할 때 체크할 사항

  • 엔티티 사이에 연관 규칙이 존재하는 지
  • 엔티티 사이에 정보의 조합이 발생되는지
  • 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는지
  • 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는지

식별자 분류

  1. 대표성
  • 주식별자: PK
  • 보조식별자: 일반키
  1. 스스로 생성 여부
  • 내부식별자: 스스로 만들어지는 식별자
  • 외부식별자: FK
  1. 속성의 수
  • 단일식별자: 하나의 속성으로 구성된 식별자
  • 복합식별자: 둘 이상의 속성으로 구성된 식별자
  1. 대체 여부
  • 본질 식별자: 업무에 의해 만들어지는 식별자
  • 인조 식별자: 본질 식별자의 합 (주문번호 = 사번+주문일자)

주식별자 특징

  • 유일성: 유일하게 구분되어야 함
  • 최소성: 유일성을 만족하는 최소의 속성을 사용해야 함
  • 불변성: 자주 변하지 않아야 함
  • 존재성: Not Null

비식별자 관계를 선택하는 기준

  • 상호간 연관성이 약할 경우
  • 자식테이블에서 독립적인 PK의 구조를 가지기를 원할 때
  • SQL 문 복잡성 증가 방지
  • 각 엔티티가 갖던 여러 개별 관계가 통합되는 경우
profile
🌱 주니어 백엔드 개발자입니당

0개의 댓글