[SQLD] 1-1. 데이터 모델링의 이해

0-x-14·2025년 3월 2일
0

SQLD

목록 보기
1/5




데이터 모델의 이해



모델링이란 현실 세계를 단순화하여 표현하는 기법 이다.



  • 모델링의 특징
    • 추상화
      • 현실 세계를 일정한 형식에 맞추어 표현
    • 단순화
      • 복잡한 현실을 제한된 언어나 표기법으로 이해하기 쉽게 함
    • 명확화
      • 애매모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술

구분추상화단순화
목적일반화간소화
방법불필요한 세부 사항 제거생략 or 단순한 방식으로 표현
비교무엇이 중요한가어떻게 쉽게 표현할 것인가

✅ 모델링 시스템 구현만을 위한다? → X
    시스템 구현 포함 업무 분석 및 업무 형상화 목적



  • 모델링의 관점
    • 데이터 관점
    • 프로세스 관점
    • 데이터와 프로세스의 상관 관점
      • 데이터-프로세스의 관계를 위주로 모델링
      • 프로세스의 흐름에 따라 데이터가 어떤 영향을 받는지



  • 모델링시 유의사항
    • 중복
    • 비유연성
      • 유연성 - 유지보수를 위해
    • 비일관성
      • 다른 데이터 연관성 고려하지 않고 일부 데이터만 변경시 발생
      • 데이터 간 연관관계 명확하게 정의해야 함

✅ 유의사항 문제 나오면 중복, 비유연성, 비일관성 먼저 찾기



  • 모델링 단계
    • 개념적 데이터 모델링
      • 첫 번째 단계, 전산적
    • 논리적 데이터 모델링
      • 두 번째 단계, 재사용성 높음
    • 물리적 데이터 모델링
      • 세 번째 단계, 실제 구현 위해



  • 3단계 스키마 구조
    • 외부 스키마
      • 여러 사용자 관점
    • 개념 스키마
      • 통합된 관점. 모든 사용자 관점 통합
    • 내부 스키마
      • 물리적인 관점. 실질적

✅ <헷갈리지 않게 주의>
     여러 사용자 → 외부 스키마
     모든 사용자 관점 통합 → 개념 스키마



  • 3단계 스키마 구조가 보장하는 독립성
    • 논리적 독립성
      • 개념 스키마가 변경되어도 외부 스키마는 영향 X
    • 물리적 독립성
      • 내부 스키마가 변경되어도 외부, 개념 스키마는 영향 X
      • ✅ 데이터베이스의 파일 구조 변화가 논리스키마에 영향을 주지 않음
      • ✅ 데이터베이스의 색인 구조 변화가 응용 프로그램에 영향을 주지 않음



  • ERD
    • IE/Crow's Foot : 가장 많이 사용



  • IE/Crow's Foot 표기법



✅ ERD 작성 순서

 엔터티 도출 및 그림
  → 배치
  → 관계 설정
  → 관계명 기입
  → 참여도 기입
  → 필수/선택 여부 기입









엔터티 (Entity)



엔터티 - Table
인스턴스 - Row
속성 - Column





  • 엔터티 특징
    • 업무에서 쓰이는 정보여야 함
    • 유니크함을 보장할 수 있는 식별자가 있어야 함 (중복X, 모호X)
    • 2개 이상의 인스턴스를 가지고 있어야 함
    • 반드시 속성을 가지고 있어야 함
    • 다른 엔터티와 1개 이상의 관계를 가지고 있어야 함



  • 엔터티 분류 - 유형 vs 무형
    • 유형 엔터티
      • 물리적 형태 O
    • 개념 엔터티
      • 물리적 형태 X, 개념적
    • 사건 엔터티
      • 행위를 통해 발생



  • 엔터티 분류 - 발생시점
    • 기본 엔터티
      • 원래 존재. 독립적. 자식 엔터티 가질 수 O
    • 중심 엔터티
      • 기본 엔터티로부터 파생, 행위 엔터티 생성
    • 행위 엔터티
      • 2개 이상의 엔터티로부터 파생
      • ex) 주문 내역, 이벤트 응모 이력




엔터티명 정할 때 규칙

   - 실제 쓰이는 용어 사용
   - 영문 대문자 표기 / 한글 약어 X
   - 단수 명사
   - 띄어쓰기 X
   - 의미상 중복 X (주문, 결제는 중복 가능)
   - 명확하게 표현









속성 (Attribute)



속성 - 더이상 쪼개지지 X. 최소의 데이터 단위. 필요해야 함



  • 특성에 따른 분류
    • 기본 속성
      • 바로 정의 가능
    • 설계 속성
      • 설계 과정에서 만들어짐
      • ex) 고유번호
    • 파생 속성
      • 다른 속성으로부터 파생된 속성
      • ex) 계산된 값

✅ 설계 vs 파생 헷갈리지 않게 주의
     계산된 값은 파생된 속성이므로 파생속성!!!



  • 구성 방식에 따른 분류
    • PK 속성
      • 유니크함 부여
    • FK 속성
      • 다른 엔터티와 관계 맺게 해주는 매개체 역할
    • 일반 속성
      • PK, FK 제외한 나머지



  • 도메인
    • 속성이 가질 수 있는 속성값의 범위



  • 용어 사전
    • 속성 이름 정확, 직관적으로 부여하기 위해
    • 용어 혼란 없애기 위해



  • 시스템 카탈로그
    • 시스템 관련 데이터 담고있는 DB
    • SQL 이용하여 조회 가능



속성 명칭 - 다른 테이블이더라도 속성명 다르게!!!
     전체 데이터 모델에서 유일성 확보하도록









관계 (Relationship)



  • 존재 관계
    • 존재 자체로 연관성이 있는 관계
    • ex) 엄마-아기, 직원-부서, 학생-학과



  • 행위 관계
    • 특정한 행위를 함으로써 연관성이 생기는 관계
    • ex) 회원-주문, 학생-출석부



  • 표기법
    • 관계명 (Membership)
      • 관계의 이름
      • 명확한 문장, 현재형
      • ex) 포함한다, 소속된다 ex) 포함한다, 소속된다
    • 관계차수 (Cardinality)
      • 관계에 참여하는 수
    • 관계선택사양 (Optionality)
      • 필수/선택 여부



  • ✅ 엔터티 간 관계 도출시 확인사항
    • 연관규칙 존재?
    • 정보 조합 발생 O?
    • 업무기술서, 장표에 관계연결에 대한 규칙 서술 O?
    • 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb) 존재 O?









식별자 (Identifiers)



식별자 - 인스턴스를 구분 가능하게 해주는 대표격 속성



  • 주식별자 (PK, Primary Key)
    • 유일성
      • 유니크함 부여하여 식별 가능하도록
    • 최소성
      • 최소 개수 속성 (유일성 보장하는)
    • 불변성
      • 속성값 변하지 X
      • ✅ '자주 변하지 않는 것이어야 한다'라고 되어있어도 O
    • 존재성
      • 속성값 NULL X



  • 분류 - 대표성 여부
    • 주식별자 (PK)
    • 보조식별자

  • 분류 - 스스로 생성되었는지 여부
    • 내부식별자
      • 엔터티 내부에서 스스로 생성됨
    • 외부식별자 (FK)

  • 분류 - 단일 속성 여부
    • 단일식별자
    • 복합식별자

  • 분류 - 대체 여부
    • 본질식별자
      • 가공 X 원래의 식별자
      • 원조식별자
      • ✅ 엔터티 내 집합을 명확하게 설명할 수 있는 업무적으로 의미가 부여된 식별자
    • 인조식별자
      • PK 속성이 두 개 이상인 경우 하나로 묶어서 사용하는 식별자



  • 식별자 관계
    • 부모 엔터티의 식별자가 자식 엔터티의 PK
    • 실선으로 표시
    • 부모 엔터티가 있어야 생성 가능
    • 단일식별자/복합식별자에 따라 1:1/1:M 결정
  • 비식별자 관계
    • 부모 엔터티의 식별자가 자식 엔터티의 일반 속성
    • 점선으로 표시
    • 부모 엔터티 없이 자식 엔터티 생성 가능
    • 자식 엔터티 존재하는 상태에서 부모 엔터티 삭제 가능









출처

  • 유선배 SQLD 과외노트

1개의 댓글