SQLD #1

_ne·2026년 1월 20일

1. 데이터 모델링의 이해

모델링
현실 세계의 정보를 약속된 표기법을 활용하여 데이터베이스의 구조로 표현하는 과정

특징
1) 단순화(누구나 쉽게 이해)
2) 추상화(간략히 표현)
3) 명확화(모호함X)

관점
데이터관점, 프로세스 관점, 데이터와 프로세스의 상관관점(CRUD)

데이터베이스의 모델링 단계
1. 개념적 모델링: ERD 작성
2. 논리적 모델링: 정규화, 재사용성
3. 물리적 모델링

물리적 모델링으로 갈수록 높은 수준의 구체화(낮은 수준의 추상화) 레벨을 가짐
데이터 모델의 필수 구성요소는 엔티티, 속성, 관계

개념적 모델링을 사용하는 ERD에는 여러 표기법이 있다.
IE표기법 / Barker표기법

ERD 작성순서
엔터티 도출 > 배치 > 관계 설정 > 관계명 기술 > 관계차수기술 > 필수/선택사양 기술


ANSI-SPARC 스키마 구조(스키마는 DB설계도라고 생각하면됨)

스키마의 3계층

  • 외부스키마(=서브스키마, 사용자 뷰): 사용자의 입장
  • 개념스키마(=전체적인 뷰): 전체적 논리 구조, DB관리자에 의해서 구성
  • 내부스키마(=저장스키마): 물리적 저장장치 입장에서의 구조

독립성

  • 논리적 독립성: 개념 스키마 변경시, 외부 스키마 영향 없음
  • 물리적 독립성: 내부 스키마 변경시, 개념/외부 스키마 영향 없음
스키마 구조는 3개의 계층으로 구성이 되고 독립성을 갖는다.

엔터티

현실세계에 존재하며 명확하게 구분가능한 객체. 두개 이상의 속성 보유. 유일한 식별자를 보유.
인스턴스가 2개 이상인 집합. 다른 엔터티와의 관계 필수

엔터티 분류

  1. 유무형에 따른 분류(개사유)
  • 유형 엔터티: 물리적 형태가 존재(학생, 책, 고객)
  • 개념 엔터티: 형태는 없지만 개념적으로 구분(과목, 학과, 부서)
  • 사건 엔터티: 특정 시점에 발생한 사건(수강, 주문, 예약)
  1. 발생 시점에 따른 분류
  • 기본 엔터티: 독립적으로 존재 (학생, 과목, 고객, 직원)
  • 중심 엔터티: 기본과 행위 엔터티를 연결 (수강신청, 주문)
  • 행위 엔터티: 두 개 이상의 엔터티를 상속받아 생성되는 행위 (수강내역, 주문내역)

속성

더이상 분리되지 않는 최소의 데이터 단위 (원자성)
엔터티는 속성의 집합. 한개의 속성은 한개의 속성값만 갖는다.
주식별자의 함수적 종속이다(A속성에 의해 B가 유일하게 결정)

속성의 분류

  1. 특성에 따른 분류
  • 기본 속성: 본래 가지고 있는 속성(이름, 학번, 고객ID)
  • 설계 속성: 필요에 의해 도출된 속성(주문번호, 일련번호)
  • 파생 속성: 변형되어 만들어진 속성. 계산된 값들이 해당(합계, 평균)
  1. 분해 가능 여부에 따른 분류
  • 단일 속성: 하나의 의미로 구성(이름, 학번)
  • 복합 속성: 여러개의 하위 속성으로 나눌 수 있음(주소 -> 시/도, 도로명, 건물번호)
  • 다중값 속성: 여러 값을 가질 수 있으며, 별도 테이블로 분리 관리(전화번호, 이메일)
  1. 구성방식에 따른 분류
  • 기본키 속성(Primary Key): 인스턴스를 유일하게 구별 가능하게 하는 속성
  • 외래키 속성(Foregin Key): 다른 엔터티의 관계로 연결된 속성
  • 일반 속성: PK/FK가 아닌 나머지 속성
 자식 엔터티는 부모의 기본키(PK)를 외래키(FK)로 포함

도메인

속성이 가질 수 있는 데이터 타입과 크기에 대한 제한 사항을 정의 (데이터 무결성 보장)
예시) 성별(남/여), 나이(0~120 정수)


관계

엔터티와 엔터티간의 논리적 연관성
다른 엔터티가 존재해야만 존재할수있는 존재적 관계. 행동/동작/사건에 의해 발생하는 행위적 관계. ERD에서는 존재적 관계와 행위적 관계를 구분하지 않으나 UML에서는 구분

관계의 구성(관차선)

  1. 관계명: 관계의 이름
  2. 차수: 엔터티간의 참여자의 수를 표현(1:1, 1:M, M:N)
  3. 선택사양: 엔터티가 관계에 항상 참여하는지 여부
    (IE표기법에선 선택적 참여를 O로 표시하지만 Barker 표기법에서는 점선/직선으로 표현)

교차 엔터티

M:N의 관계를 표현하기 위해 생성된 엔터티 (관계형DB는 M:N 관계의 표현 불가)

참고 | https://www.youtube.com/watch?v=mmffFBEc4LI

profile
끄적이는 곳

0개의 댓글