본문 바로가기
자격증/SQLD

SQLD 정리 - 1과목 데이터 모델링의 이해 정리

by char_lie 2023. 3. 12.
반응형

자격증 준비하면서 내가 이해하기 편하게, 다시 보기 좋게 정리하는 SQLD의 기본 내용 (자격증 상세 내용은 아래)

https://www.dataq.or.kr/www/sub/a_03.do

 

데이터자격시험

SQL 전문가(SQLP*, SQL Professional)란 데이터베이스와 데이터모델링에 대한 지식을 바탕으로 데이터를 조작하고 추출하는데 있어서 정확하고 최적의 성능을 발휘하는 SQL을 작성할 수 있고, 이를 토대

www.dataq.or.kr

데이터자격 검정 사이트에 나와있는 1과목의 데이터 모델링의 이해에 해당하는 내용을 정리한 것


 

데이터 모델링

모델링

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

모델링의 특징

  • 추상화 (현실세계 반영)
  • 단순화 (단순하고 쉽게 표현)
  • 명확화 (불분명함을 제거하고 명확하게 해석할 수 있도록 기술)

모델링의 관점

  • 데이터 관점(데이터 중심의 모델링, 데이터 간의 관계 표현)
  • 프로세스 관점(프로세스 중심의 모델링)
  • 데이터와 프로세스의 상관 관점 (데이터와 프로세스의 관계 중심의 모델링)

모델링의 단계

  • 1단계 : 개념적 데이터 모델링 (추상화 레벨이 높은 모델링, 업무중심적·포괄적 모델링)
  • 2단계 : 논리적 데이터 모델링 (재사용성이 가장 높은 모델링, 데이터베이스 모델에 대해 모두 표현)
  • 3단계 : 물리적 데이터 모델링 (성능이나 가용성 등의 물리적 특성을 고려한 모델 표현)

스키마 구조

  • 외부 스키마 → 사용자의 관점(view 단계)으로 데이터베이스의 스키마 정의
  • 개념 스키마 → 사용자가 보는 데이터베이스의 스키마를 통합하여 전체 데이터베이스를 나타내는 것
  • 내부 스키마 → 물리적 저장 구조, 칼럼 정의 인덱스 등

스키마 구조의 독립성

  • 논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마는 영향 없음
  • 물리적 독립성 : 내부 스키마가 변경되어도 외부·개념 스키마는 영향받지 않음

엔터티(entity)

데이터베이스에서 식별이 가능한 객체라는 의미

  • 엔터티가 작성이 되려면 명확한 조건이 기준이 되어야 함
  • 보통 엔터티는 표로 표기
  • 엔터티의 행을 인스턴스, 열을 속성이라 부름

엔터티의 특징

  • 실제 업무에서 사용되는 정보
  • 고유성을 보장할 수 있는 식별자 존재
  • 2개 이상의 인스턴스 존재
  • 반드시 속성을 가짐
  • 다른 엔티티와 1개 이상의 관계를 가짐

엔터티의 분류

  • 형태로 분류하는 경우
    • 유형 엔티티 (물리적 형태, 안정적, 지속적)
    • 개념 엔티티 (물리적 형태 X, 개념적)
    • 사건 엔티티 (행위로 인해 발생)
  • 발생 시점으로 분류하는 경우
    • 기본 엔티티 (독립적 생성, 자식 엔티티를 가질 수 있음)
    • 중심 엔티티 (기본 엔티티로부터 파생, 행위 엔터티를 생성할 수 있음)
    • 행위 엔터티 (2개 이상의 엔터티로부터 파생)

엔티티의 이름 설정

  • 실제 업무에서 사용되는 용어
  • 약어 사용 x, 영문은 대문자 표기
  • 단수 명사로 표현, 띄어쓰기 x
  • 다른 엔터티와 의미상 중복 x
  • 해당 엔터티가 갖고 있는 데이터가 무엇인지 명확하게 표현

IE/Crow’s Foot 표기법

여러 표기법 중 가장 많이 사용되는 표기법이며 ERD를 그리는 모델링 툴에서 사용되는 모델

ERD 작성 순서

  1. 엔터티를 도출하여 그림
  2. 엔터티를 적절히 배치
  3. 엔터티 간의 관계 설정
  4. 관계명 기입
  5. 관계 참여도 기입
  6. 관계 필수·선택 여부 기입

속성

사물이나 개념의 특징을 설명해 줄 수 있는 항목

  • 의미상 더 이상 쪼개지지 않는 레벨
  • 각각의 속성은 엔티티에 속한 하나의 인스턴스를 구체적으로 나타내주는 데이터를 갖는 1개의 속성값을 가짐

분류

  • 특성으로 분류
    • 기본 속성 : 업무 프로세스 분석을 통해 바로 정의가 가능한 속성 (상품이름, 상품가격 등)
    • 설계 속성 : 업무에 존재하지는 않지만 설계상 필요하다고 판단되어 도출해 낸 속성 (학번 등)
    • 파생 속성 : 다른 속성의 속성값을 계산하거나 특정한 규칙으로 변형하여 생성한 속성, 필요한 경우에만 정의하는 것이 좋음 (데이터의 정합성 고려 필수) 데이터 조회 시 빠른 성능 보장
  • 구성방식으로 분류
    • PK 속성 : 엔터티의 인스턴스들을 식별할 수 있는 속성 (고유성)
    • FK 속성 : 다른 엔터티의 속성에서 가져온 속성 (다른 엔터티와의 관계를 맺게 해주는 매개체 역할) → 다른 엔터티의 PK값과 일치하거나 NULL 값을 가질 수 있음
    • 일반속성 : PK, FK를 제외한 나머지 속성

도메인

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

용어사전

엔터티의 속성명을 정의할 때 명확한 의미의 이름을 부여하고 다른 엔터티와의 혼란을 예방하기 위해 이용하는 것

엔터티 & 인스턴스 & 속성의 관계

  • 속성 ⊂ 인스턴스 ⊂ 엔터티의 관계
  • 1개의 엔터티 → 2개 이상의 인스턴스를 가짐
  • 1개의 인스턴스 → 2개 이상의 속성을 가짐
  • 1개의 속성 → 1개의 속성 값을 가짐

관계

엔터티와 엔터티 사이의 연관성

  • 존재 관계 : 존재 자체로 연관성이 있는 관계 (직원 <> 부서 등)
  • 행위 관계 : 특정 행위로 연관성이 생기는 관계 (회원 <> 주문 등)
  • 표기하기 위해 사용하는 항목 : 관계명, 관계차수, 관계선택사양

관계 차수

  • 1:1 관계

  • 1:N 관계

  • N:M 관계


식별자

각각의 인스턴스를 구분할 수 있게 해주는 대표적인 표식

주식별자

기본키에 해당하는 속성, 하나의 속성이 주식별자가 될 수도 있고, 여러 개의 속성이 주식별자가 될 수도 있음 (적을수록 좋음)

  • 유일성 : 각 인스턴스에 고유성을 부여하여 식별
  • 최소성 : 유일성을 보장하는 최소 개수의 속성
  • 불변성 : 속성값이 되도록 변하지 않아야 함
  • 존재성 : 속성값이 NULL일 수 없음

주식별자 분류

  • 대표성
    • 주식별자 : 유일성, 최소성, 불변성, 존재성을 가진 대표식별자로 다른 엔터티와 참조 관계로 연결
    • 보조식별자 : 주식별자가 아닌 인스턴스를 구별할 수 있는 식자로 다른 엔터티와 참조 관계로 연결되지 않음
  • 스스로 생성 여부
    • 내부식별자 : 엔티티 내부에서 스스로 생성된 식별자
    • 외부식별자 : 다른 엔터티에서 온 식별자로 다른 엔터티와 연결하는 역할
  • 단일 속성
    • 단일식별자 : 1개의 속성으로 구성된 식별자
    • 복합식별자 : 2개 이상의 속성으로 구성된 식별자
  • 대체 가능성
    • 원조식별자 : 업무 프로세스에 존재하는 식별자, 가공되지 않은 원래의 식별자
    • 대리식별자 : 주식별자의 속성이 2개 이상인 경우 그 속성을 하나로 묶어 사용하는 식별자

식별자 관계

부모 엔터티의 식별자가 자식 엔터티의 주식별자가 되는 관계, 부모 엔터티가 있어야 생성 가능하고, 1:1이거나 1:M으로 구성

비식별자 관계

부모 엔터티의 식별자가 자식 엔터티의 일반 속성이 되는 관계, 일반 속성은 NULL 값을 가질 수 있으므로, 부모 엔터티 없는 자식 엔터티도 생성이 가능 (자식 엔터티가 존재하는 상태에서 부모 엔티티 제거도 가능)

반응형

댓글