TIL - 20250811

juni·2025년 8월 11일

TIL

목록 보기
91/315

0811 SQLD 데이터 모델링의 핵심 요소


✅ 1. 데이터 모델의 이해

  • 데이터 모델링(Data Modeling)이란 현실 세계의 업무 프로세스와 데이터의 관계를 정보 구조(개념, 논리, 물리)로 단순화하고 명확하게 표현하는 과정입니다. 즉, 복잡한 현실을 추상화하여 데이터베이스로 옮기기 위한 설계도를 만드는 작업입니다.

➕ 데이터 모델링의 3단계

단계설명특징
개념적 모델링현실 세계의 중요 데이터와 관계를 추상적으로 표현엔터티와 관계 중심으로 기술, 포괄적, 업무 중심
논리적 모델링특정 데이터베이스 기술에 독립적으로 데이터 구조를 설계모든 엔터티, 속성, 관계, 식별자 정의, 정규화 수행
물리적 모델링특정 데이터베이스 시스템에 맞게 물리적 구조를 설계테이블, 컬럼, 인덱스 등 구체적 객체 설계, 성능 고려

✅ 2. 엔터티 (Entity)

  • 엔터티란 업무에서 관리해야 할, 의미 있는 정보를 담고 있는 명사형 대상입니다. 데이터베이스에서는 테이블로 변환됩니다.

➕ 엔터티의 특징

  1. 식별 가능성: 각 인스턴스(행)는 식별자(PK)에 의해 유일하게 구분 가능해야 합니다.
  2. 인스턴스 집합성: 2개 이상의 인스턴스(행)를 포함해야 합니다.
  3. 업무 관련성: 반드시 해당 업무에서 관리하고 사용하는 데이터여야 합니다.
  4. 영속성: 데이터는 영구적으로 저장되고 관리되어야 합니다.
  5. 속성 보유: 엔터티는 반드시 속성(컬럼)을 가져야 합니다.

➕ 엔터티의 종류

구분설명예시
유형 vs 무형물리적 형태 유무에 따라 구분유형: 사원, 상품, 건물
무형: 부서, 주문, 과정
발생 시점업무 발생에 따른 구분기본/키 엔터티: 사원, 부서 (독립적으로 생성)
중심 엔터티: 주문, 수강 (기본 엔터티로부터 파생)
행위 엔터티: 주문이력, 수강이력 (중심 엔터티로부터 파생)

✅ 3. 속성 (Attribute)

  • 속성이란 엔터티가 가지는 세부적인 정보 항목으로, 엔터티를 설명하는 최소의 데이터 단위입니다. 데이터베이스에서는 컬럼으로 변환됩니다.

➕ 속성의 종류

구분설명예시
기본/설계/파생속성의 생성 방식에 따른 분류기본: 사원명, 상품가격 (업무에서 자연 발생)
설계: 상품코드, 주문번호 (업무 규칙에 따라 인위적 생성)
파생: 총주문금액, 나이 (다른 속성으로부터 계산)
단일값/다중값하나의 인스턴스에 몇 개의 값을 갖는지단일값: 사원번호 (하나의 값만 가짐)
다중값: 전화번호 (여러 값을 가질 수 있음) → 정규화 대상
단순/복합속성의 분해 가능 여부단순: 나이 (더 이상 분해 불가)
복합: 주소 (시, 구, 동으로 분해 가능) → 정규화 대상

✅ 4. 관계 (Relationship)

  • 관계란 엔터티와 엔터티 간의 논리적인 연관성 또는 상호작용을 의미합니다. 관계는 어떤 행위나 존재의 형태로 표현됩니다.

➕ 관계의 표현 요소

  1. 관계 차수 (Cardinality): 두 엔터티 간에 참여하는 인스턴스의 개수를 나타냅니다.

    • 1:1 (일대일): 한 사원은 하나의 좌석만 가질 수 있다.
    • 1:N (일대다): 한 부서에는 여러 사원이 소속될 수 있다. (가장 일반적인 관계)
    • M:N (다대다): 한 학생은 여러 과목을 수강하고, 한 과목은 여러 학생이 수강한다. → 관계형 DB에서 직접 표현 불가, 중간에 관계 엔터티(수강)를 두어 1:N 관계로 해소해야 함.
  2. 관계 선택성 (Optionality): 다른 엔터티와의 관계가 필수적인지 선택적인지를 나타냅니다.

    • 필수적 관계 |: 주문은 반드시 고객이 있어야만 존재할 수 있다. (실선)
    • 선택적 관계 O: 사원프로젝트에 참여할 수도, 안 할 수도 있다. (점선)

✅ 5. 식별자 (Identifier)

  • 식별자란 하나의 엔터티 내에서 각 인스턴스를 유일하게 구분해주는 속성 또는 속성들의 집합입니다. 데이터베이스에서는 기본 키(Primary Key)로 변환됩니다.

➕ 식별자의 특징 (유일성, 최소성, 불변성, 존재성)

  • 유일성: 모든 인스턴스는 식별자 값이 유일해야 한다. (e.g., 주민번호는 중복되지 않음)
  • 최소성: 유일성을 만족하는 최소한의 속성으로 구성되어야 한다. (e.g., (학번, 과목코드)는 식별자이지만, (학번, 과목코드, 이름)은 최소성 위반)
  • 불변성: 식별자 값은 자주 변경되지 않아야 한다. (e.g., 이름보다 학번이 더 좋은 식별자)
  • 존재성: 식별자 값은 반드시 존재해야 한다. (NOT NULL)

➕ 식별자의 종류

구분설명
주/보조 식별자주 식별자: 엔터티를 대표하는 식별자 (PK).
보조 식별자: 유일성은 만족하지만 대표는 아닌 식별자 (Unique Index).
내부/외부 식별자내부 식별자: 엔터티 내부에서 스스로 생성된 식별자 (e.g., 사원번호).
외부 식별자: 다른 엔터티와의 관계를 통해 받아온 식별자 (FK).
식별/비식별 관계식별 관계: 부모 엔터티의 식별자를 자식 엔터티가 자신의 주 식별자로 사용하는 관계 (자식은 부모 없이 존재 불가).
비식별 관계: 부모 엔터티의 식별자를 자식 엔터티가 일반 속성으로 사용하는 관계 (자식은 부모 없이도 존재 가능).

📌 요약

  • 데이터 모델링은 현실 세계를 엔터티, 속성, 관계를 사용해 데이터베이스 설계도로 만드는 과정입니다.
  • 엔터티는 관리할 대상(테이블)이며, 각 엔터티는 고유한 식별자(PK)를 통해 구분됩니다.
  • 속성은 엔터티의 세부 정보(컬럼)를 나타냅니다.
  • 관계는 엔터티 간의 연관성을 정의하며, 차수(1:1, 1:N, M:N)와 선택성(필수/선택)으로 구체화됩니다.
  • 이 다섯 가지 핵심 요소를 통해 데이터의 구조를 체계적으로 정의하고, 데이터의 일관성과 무결성을 보장할 수 있습니다.

0개의 댓글