Featured image of post 1. 데이터 모델링의 이해

1. 데이터 모델링의 이해

데이터 모델링, 스키마 구조 3단계, 엔터티, 속성, 관계, 식별자

본 문서는 SQLD 시험 대비를 위한 것으로, 1. 데이터 모델링의 이해 단원의 내용을 요약한 문서입니다.

 

데이터 모델링

현실 세계를 추상화하기 위해 일정한 표기법을 사용하여 표현하는 기법

데이터 모델링 단계

  1. 개념적 모델링
    • 업무 측면에서 모델링
    • 기술적인 용어 사용 X
    • 엔터티, 속성 도출 / 개념적 ERD 작성
  2. 논리적 모델링
    • 필요한 모든 관계를 정의
    • 특정 데이터베이스 모델에 종속
    • 식별자 도출 / 정규화 수행
  3. 물리적 모델링
    • 데이터베이스 구축

데이터 모델링의 특징

  • 추상화
  • 단순화
  • 명확성

데이터 모델링 관점

  • 데이터
  • 프로세스
  • 데이터와 프로세스

ERD 작성 절차

  1. 엔터티 도출 및 그림
  2. 엔터티 배치
  3. 엔터티 관계 설정
  4. 관계명 서술
  5. 관계 참여도 표현
  6. 관계 필수 여부 표현

데이터 모델링 고려 사항

  • 중복: 여러 장소에 같은 정보를 저장하지 않는다.
  • 비유연성: 데이터 정의를 사용 프로세스와 분리한다.
  • 비일관성: 데이터 간 상호 연관 관계에 대해 명확히 정의한다.
  • 데이터 모델의 독립성
  • 고객 요구사항의 표현
  • 데이터 품질 확보

 

3단계 구조

사용자, 설계자, 개발자의 관점에 따라 데이터를 기술하고, 이들 간의 관계를 정의한 ANSI 표준

스키마구조 3단계

  • 외부 스키마: 사용자 관점, 업무상 관련이 있는 데이터 접근
  • 개념 스키마: 설계자 관점, 사용자 전체 집단의 데이터베이스 구조
  • 내부 스키마: 개발자 관점, 데이터베이스의 물리적 저장 구조

데이터 독립성

  • 논리적 독립성: 개념 스키마 변경, 외부 스키마에 영향 X
  • 물리적 독립성: 내부 스키마 변경, 개념 스키마에 영향 X

 

엔터티

업무에서 관리해야 하는 데이터 집합, 명사(개념, 사건, 장소 등)

엔터티의 특징

  • 유일한 식별자가 있어야 한다.
  • 2개 이상의 인스턴스가 있어야 한다.
  • 2개 이상의 속성을 가져야 한다.
  • 다른 엔터티와 최소한 한 개 이상 관계가 있어야 한다.
  • 업무에서 관리되어야 하는 집합이다.

엔터티의 종류

  • 유형과 무형에 따른 종류
    • 유형 엔터티: 물리적 형태
    • 개념 엔터티: 개념적 정보
    • 사건 엔터티: 업무 수행 시 발생
  • 엔터티가 발생하는 시점에 따른 종류
    • 기본 엔터티: 키 엔터티, 다른 엔터티로부터 영향을 받지 않음.
    • 중심 엔터티: 기본 엔터티로부터 발생, 행위 엔터티를 생성
    • 행위 엔터티: 2개 이상의 엔터티로부터 발생

 

속성(Attribute)

업무에서 필요한 정보인 엔터티가 가지는 항목, 더 이상 분리되지 않는 단위

속성의 특징

  • 업무에서 관리되는 정보
  • 하나의 값만 가진다.
  • 주식별자에게 함수적으로 종속된다. → 기본키가 변경되면 속성의 값도 변경됨.

속성의 종류

  • 분해 여부에 따른 속성의 종류
    • 단일 속성: 하나의 의미로 구성
    • 복합 속성: 여러 개의 의미가 있는 것 → 속성으로 분해
    • 다중값 속성: 속성에 여러 개의 값을 가질 수 있는 것 → 엔터티로 분해
  • 특성에 따른 속성의 종류
    • 기본 속성: 본래의 속성
    • 설계 속성: 모델링 과정에서 발생되는 속성, 유일한 값을 부여
    • 파생 속성: 다른 속성에 의해 만들어지는 속성

도메인

속성이 가질 수 있는 값의 범위

 

관계

엔터티 간의 관련성

관계의 종류

  • 존재 관계: 엔터티 간의 상태
  • 행위 관계: 엔터티 간에 어떤 행위가 있는 것

관계 차수(Cardinality)

두 엔터티 간에 관계에 참여하는 수

  • 1:1 관계, 1:N 관계, N:M 관계
  • 필수적 관계: 반드시 하나 존재해야 하는 관계
  • 선택적 관계: 없을 수도 있는 관계

식별 관계

강한 개체의 기본키를 다른 엔터티의 기본키로 관계를 가지는 것

  • 실선으로 표현
  • 강한 개체는 다른 엔터티에게 기본키를 공유
  • 강한 개체의 기본키 값이 변경되면 약한 개체의 값도 변경된다.

비식별 관계

강한 개체의 기본키를 다른 엔터티의 기본키가 아닌 일반 칼럼으로 관계를 가지는 것

  • 점선으로 표현

강한 개체와 약한 개체

  • 강한 개체: 누구에게도 지배되지 않는 독립적인 개체
  • 약한 개체: 개체의 존재가 다른 개체의 존재에 달려있는 개체

 

식별자

엔터티를 대표할 수 잇는 유일성을 만족하는 속성

키의 종류

  • 기본키(Primary Key): 후보키 중에서 대표성을 만족하는 키
  • 후보키(Candidate Key): 유일성과 최소성을 만족하는 키
  • 슈퍼키(Super Key): 유일성은 만족하지만 최소성을 만족하지 않는 키
  • 대체키(Alternate Key): 후보키 중에서 기본키를 선정하고 남은 키
  • 외래키(Foreign Key): 다른 테이블의 기본 키 필드를 가리키는 것

💡 외래키는 참조 무결성을 확인하기 위해서 사용된다.

식별자의 종류

  • 대표성에 따른 종류
    • 주식별자: 엔터티를 대표할 수 있는 식별자
    • 보조 식별자: 유일성과 최소성은 만족하지만 대표성을 만족하지 못하는 식별자
  • 생성 여부에 따른 종류
    • 내부 식별자: 엔터티 내부에서 스스로 생성되는 식별자
    • 외부 식별자: 다른 엔터티와의 관계로 만들어지는 식별자
  • 속성의 수에 따른 종류
    • 단일 식별자: 하나의 속성으로 구성
    • 복합 식별자: 두 개 이상의 속성으로 구성
  • 대체 여부에 따른 종류
    • 본질 식별자: 비즈니스 프로세스에서 만들어지는 식별자
    • 인조 식별자: 인위적으로 만들어지는 식별자
comments powered by Disqus