본문 바로가기
데이터베이스/SQL

[SQLD] 데이터 모델링의 이해

by qkzkdo 2023. 8. 16.
728x90

01 데이터 모델의 이해

모델링이란?

데이터베이스의 모델링은 '현실 세계를 단순화하여 표현하는 기법'이다.

 

모델은 현실 세계에서 일어날 수 있는 다양한 현상에 대해서 일정한 표기법에 의해 표현해 놓은 모형

모델링은 이런 모델을 만들어가는 일

 

모델링이 갖춰야 할 조건

  • 현실세계를 반영해야 한다.
  • 단순화하여 표현해야 한다.
  • 관리하고자 하는 데이터를 모델로 설계한다.

 

모델링의 특징

  1. 추상화
  2. 단순화
  3. 명확화

모델링의 세 가지 관점

  1. 데이터 관점
  2. 프로세스 관점
  3. 데이터와 프로세스의 상관 관점

모델링의 세 가지 단계

  1. 개념적 데이터 모델링
  2. 논리적 데이터 모델링
  3. 물리적 데이터 모델링

 

3단계 스키마 구조

  1. 외부스키마 - 사용자의 관점
  2. 개념스키마 - 통합된 관점
  3. 내부스키마 - 물리적인 관점

 

3단계 스키마 구조가 보장하는 독립성

  1. 논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마는 영향받지 않는다.
  2. 물리적 독립성 : 내부 스키마가 변경되어도 외무/개념 스키마는 영향받지 않는다.

 

02 엔터티(Entity)

엔터티란?

엔터티의 사전적 의미는 '독립체'이다. 데이터베이스에서 엔터티는 식별이 가능한 객체라는 의미를 가지고 있다.

 

엔터티의 특징

  1. 업무에서 쓰이는 정보여야 함
  2. 유니크함을 보장할 수 있는 식별자가 있어야 함
  3. 2개 이상의 인스턴스를 가지고 있어야 함
  4. 반드시 속성을 가지고 있어야 함
  5. 다른 엔터티와 1개 이상의 관계를 가지고 있어야 함

 

엔터티의 분류

  • 유형 vs 무형
    • 유형 엔터티 - 물리적인 형태 존재, 안정적, 지속적
    • 개념 엔터티 - 물리적인 형태 없음, 개념적
    • 사건 엔터티 - 행위를 함으로써 발생, 빈번함, 통계 자료로 이용 가능
  • 발생 시점
    • 기본 엔터티 - 독립적으로 생성됨, 자식 엔터티를 가질 수 있음
    • 중심 엔터티 - 기본 엔터티로부터 파생, 행위 엔터티 생성
    • 행위 엔터티 - 2개 이상의 엔터티로부터 파생

 

03 속성(Attribute)

속성이란?

사물이나 개념의 특징을 설명해줄 수 있는 항목들을 속성이라고 부른다.

 

속성값

각각의 속성은 속성값을 가지며 속성값은 엔터티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터라고 볼 수 있다.

하나의 속성은 한 개의 속성값만 가질 수 있다.

 

엔터티, 인스턴스, 속성, 속성값의 관계

  1. 한 개의 엔터티는 두 개 이상의 인스턴스를 갖는다.
  2. 한 개의 인스턴스는 두 개 이상의 속성을 갖는다.
  3. 한 개의 속성은 하나의 속성값을 갖는다.

 

분류

  • 특성에 따른 분류
    • 기본 속성 - 업무 프로세스 분석을 통해 바로 정의가 가능한 속성
    • 설계 속성 - 업무에 존재하지는 않지만 설계하다 보니 필요하다고 판단되어 도출해낸 속성(인위적으로 만듦)
    • 파생 속성 - 다른 속성의 속성값을 계산하거나 특정한 규칙으로 변형하여 생성한 속성
  • 구성 방식에 따른 분류
    • PK속성 - 엔터티의 인스턴스들을 식별할 수 있는 속성
    • FK속성 - 다른 엔터티의 속성에서 가져온 속성
    • 일반속성 - PK, FK를 제외한 나머지 속성

 

도메인

속성이 가질 수 잇는 속성값의 범위를 도메인이라고 한다.

 

04 관계(Relationship)

관계란?

엔터티와 엔터티와의 관계를 의미하며, 어떠한 연관성이 있는지 타입을 분류하여 존재 관계와 행위 관계로 나눌 수 있다.

 

존재관계

존재 자체로 연관성이 있는 관계를 의미한다. ex. 직원과 부서, 학생과 학과 엔터티

 

행위 관계

특정한 행위를 함으로써 연관성이 생기는 관계 ex. 회원과 주문, 학생과 출석부 엔터티

 

표기법

  • 관계명 - 관계의 이름
  • 관계차수 - 관계에 참여하는 수
  • 관계선택사양 - 필수인지 선택인지의 여부
    • 필수적 관계 - 참여자가 반드시 존재해야 하는 관계
    • 선택적 관계 - 참여자가 없을 수도 있는 관계

 

05 식별자(Identifiers)

식별자란?

식별자는 속성 중에 각각의 인스턴스를 구분 가능하게 만들어주는 대표 격인 속성을 의미한다.

 

주식별자

  • 유일성 - 각 인스턴스에 유니크함을 부여하여 식별이 가능하도록 한다.
  • 최소성 - 유일성을 보장하는 최소 개수의 속성이어야 한다.
  • 불변성 - 속성값이 되도록 변하지 않아야 한다.
  • 존재성 - 속성값이 NULL일 수 없다.

 

분류

  • 대표성 여부
    • 주식별자
    • 보조식별자
  • 스스로 생성되었는지 여부
    • 내부식별자
    • 외부식별자
  • 단일 속성의 여부
    • 단일식별자
    • 복합식별자
  • 대체 여부
    • 원조 식별자
    • 대리식별자

 

식별자 관계 vs 비식별자 관계

  • 식별자 관계
  • 비식별자 관계

 

 

출처 : 정미나. 「유선배 SQL개발자(SQLD) 과외노트」. (주)시대교육. 2023

728x90

'데이터베이스 > SQL' 카테고리의 다른 글

[SQLD] SQL 활용 (1) - 서브쿼리, 뷰, 집합연산자  (0) 2023.08.20
[SQLD] SQL 기본 (3)  (0) 2023.08.19
[SQLD] SQL 기본 (2)  (0) 2023.08.19
[SQLD] SQL 기본 (1)  (0) 2023.08.18
[SQLD] 데이터 모델과 SQL  (0) 2023.08.17