요약

7. 데이터 모델링 요약(1) - 패스트캠퍼스 백엔드 부트캠프 3기

gkss2tpt 2025. 3. 11. 20:36

모델링 이론

 

데이터 모델링 : 업무를 파악하고 개념을 정리, 분류하여 엔티티, 속성, 관계로 형상화하는 과정
ER모델(Entity-Relationship Model) : 업무를 개체와 관계로 표현하는 모델
ER모델의 특성 : 완전성, 정확성, 최소성, 자명성, 확장성, 표현성, 가독성
완전성 : ER모델은 모든 업무적인 요구사항을 표현하고 있어야 한다.
정확성 : ER모델이 실제 시스템의 데이터를 정확하게 표현해야 한다.
최소성 : 요구사항의 모든 특성이 ER모델에 한 번만 나타나도록 설계해야 한다.
자명성 : 설명이나 증명이 없어도 요구사항에 대한 뜻이나 의미를 명확히 설명할 수 있어야 한다.
확장성 : 업무 범위나 규모가 확대, 변경시 쉽게 반영할 수 있도록 유연해야 한다.
표현성 : ER모델의 의미를 쉽게 이해할 수 있도록 명확하게 설계해야 한다.
가독성 : ER모델을 쉽게 읽고 이해하도록 표현해야 한다.

ER모델의 구성 요소
엔티티 : 실제 존재하는 실체 혹은 개념(객체)
엔티티타입 : 설계도
엔티티의 일반화 : 엔티티 각각이 가지고 있는 고유한 특징을 공통의 속성으로 재정의한 것
하위 수준 일반화 : 상위 엔티티를 세분화하여 더 구체적인 하위 엔티티로 나누는 과정
상위 수준 일반화 : 공통 특성을 가진 하위 엔티티들을 하나의 상위 엔티티로 통합하는 과정
특수화 : 하나의 상위 수준 엔티티를 두 개 이상의 하위 수준 엔티티로 분할하는 과정
강한 엔티티 : 독립적으로 존재, 엔티티 내에서 자체 식별자를 사용하여 고유하게 인스턴스를 식별할 수 있는 엔티티
약한 엔티티 : 다른 엔티티에 종속적, 다른 엔티티의 식별자를 상속받아 사용하는 엔티티
관계수 : 엔티티의 인스턴스 하나가 다른 엔티티 몇개 인스턴스와 대응될 수 있는지 표시한 것
선택성 : 해당 엔티티의 인스턴스에 대해 상대 엔티티 인스턴스가 반드시 존재해야 하는지 표시
식별자 상속 : 식별자를 상속받을 때 식별자로 상속(식별)받을지 일반 속성으로 상속(비식별)받을지 표시 
재귀적 관계 : 계층적 구조 표현
병렬 관계 : 엔티티간 두 개 이상의 관계 맺음, 병렬 관계가 많아지면 특정 고객 데이터를 찾기 어렵거나 물리 설계 시 인덱스를 여러 개 생성해야 할 수 도 있다.
슈퍼타입 : 공통 속성을 관리
서브타입 : 개별 속성 관리

속성 : 데이터를 표현하는 가장 작은 단위
도메인 : 데이터 형식과 범위를 가지고 있다.(타입)
단순 속성 : 더 이상 나눌 수 없는 기본적인 속성 하나의 값만을 가진다.
복합 속성 : 여러 개의 단순 속성으로 구성된 속성
저장 속성 : 실제로 저장되는 속성으로, 계산되거나 변환되지 않은 값
파생 속성 : 다른 속성에 의해 계산되거나 유도되는 속성으로, 데이터베이스에 저장되지 않고 다른 값으로부터 파생
식별자 : 엔티티에서 인스턴스를 개별적으로 식별할 수 있는 속성(들)

식별자의 특징 : 유일성, 최소성, 불변성, 존재성
유일성 : 각 엔티티가 고유하게 식별될 수 있도록 하는 속성으로, 동일한 값이 존재하지 않음을 보장
최소성 : 엔티티의 식별에 필요한 최소한의 속성만을 사용하며, 불필요한 속성을 포함하지 않음
불변성 : 식별자나 주요 속성이 시간에 따라 변하지 않음
존재성 : 식별자는 반드시 데이터 값이 존재(Not Null)해야 한다.
본질 식별자 : 일반적인 식별자
인조 식별자 : 고유성만을 위해 인위적으로 생성된 식별자


관계형 데이터 모델 이론
관계형 데이터 모델 : 데이터를 2차원 테이블 형식으로 정의해 표현한 모델
스키마 : 정의(클래스), 어트리뷰트
인스턴스 : 실제 값(인스턴스), 튜플

관계형 모델의 키
슈퍼 키 : 엔티티에서 유일하게 식별할 수 있는 속성들의 집합으로, 중복된 값이 없도록 식별할 수 있는 속성들의 조합
후보 키 : 슈퍼키 중에서 유일성만을 충족하는 최소한의 키
기본 키 : 후보 키 중 엔티티를 대표하는 속성, Null을 가질 수 없으며, 유일성을 보장
대체 키 : 후보 키 중 기본 키가 아닌 키 
외래 키 : 다른 엔티티의 기본키를 참조하는 속성, 두 엔티티 간의 관계를 표현

제약조건 : 키 제약조건, 무결성 제약조건
키 제약조건 : 각 엔티티가 고유하게 식별될 수 있도록 하는 제약, 기본키,후보키, 외래키 등을 통해 유일성과 무결성을 보장
실체무결성 : 기본키의 모든 속성은 Null이 될 수 없고, 오직 하나의 값만 존재해야 한다. 각 엔티티가 고유하게 식별될 수 있도록 보장
영역무결성 : 속성 값이 정의된 유효한 값의 범위 내에 있도록 보장
참조무결성 : 외래키가 참조하는 값이 실제로 존재하는 기본키의 값이어야한다는 제약, 데이터간 관계 일관성 보장
함수 종속성 : 한 속성의 값이 다른 속성의 값을 고유하게 결정하는 관계

정규화(테이블 나누기) : 중복 제거, 바뀌지 않는 데이터는 정규화 필요X
반정규화 : 다시 붙이기
제1 정규형 : 각 속성이 원자값(더 이상 나눌 수 없는 값)만을 가질 수 있도록 하는 것
제2 정규형 : 부분 함수 종속성을 제거하는 정규화
제3 정규형 : 이행적 함수 종속성을 제거하는 정규화