[SQLD] 데이터 모델링의 이해
1. 데이터 모델의 이해
1-1. 모델링이란?
- 현실 세계를 일정한 표기법에 의해 단순화하여 표현하는 것
- 특징
- 추상화: 일정한 형식에 맞춰 표현
- 단순화: 제한된 표기법이나 언어로 표현
- 명확성: 이해가 쉽게 표현
1-2. 모델링의 세 가지 관점
시스템의 대상이 되는 업무를 분석해 정보시스템으로 구성하는 과정에서 업무의 내용과 정보시스템의 모습을 적절한 표기법으로 표현하는 것을 모델링이라고 한다. 모델링은 크게 세 가지 관점으로 구분된다.
- 데이터 관점: 업무가 어떤 데이터와 관련이 있는지(What, Data)
- 프로세스 관점: 업무가 실제 하고 있는 일은 무엇인지(How, Process)
- 상관 관점: 업무가 처리하는 일의 방법에 따라 데이터가 어떻게 영향을 받고 있는지(Interaction)
2. 데이터 모델링
2-1. 데이터 모델링이란?
- 정보 시스템 구축을 위한 데이터 관점의 업무 분석 기법
- 목적
- 정보에 대한 표기법을 통일해 업무 내용 분석 시 정확도 증대
- 데이터 모델을 기초로 DB 개발 및 데이터 관리
- 기능
- 가시화
- 명세화
- 구조화
- 문서화
- 다양한 관점 제공
- 구체화
- 데이터 모델링의 중요성 및 유의점
- 파급효과: 병행 테스트, 통합테스트 수행 시 영향 분석
- 간결한 표현: 정보 요구사항과 한계를 간결하게 표현하는 도구
- 데이터 품질
- 유일성: 데이터 중복 저장 방지
- 유연성: 데이터 정의와 데이터 사용 프로세스 분리
- 일관성: 데이터와 데이터 간 상호 연관 관계에 대한 명확한 정의 필요
- 데이터 모델링 3단계
- 개념적 모델링: 엔티티 및 속성 도출 - ERD 작성 - 업무 중심적이고 포괄적인 수준의 모델링
- 논리적 모델링: 식별자 도출 - 속성과 관계 정의 - 정규화 수행 - 데이터 모델의 독립성과 재사용성 확보, 논리 데이터 모델은 데이러 모델링 완료 상태
- 물리적 모델링: DB를 구축함, 성능 및 보안 등 물리적인 성격 고려
- 프로젝트 생명주기에서의 모델링
- 계획 > 분석 > 설계 > 개발 > 테스트 > 전환, 이행 단계로 구성
- 계획/분석 단계는 개념적 모델링
- 분석 단계는 논리적 모델링
- 설계 단계는 물리적 모델링
- 데이터 모델링의 이해 관계자
- DBA, 개발자, 현업업무 전문가, 전문 모델러
3. 데이터베이스 3단계 구조
외부 단계와 개념적 단계, 내부적 단계로 구성된 서로 간섭되지 않는 모델을 제시한다.
3-1. 3층 스키마
- 외부 스키마: 각 사용자 단계의 개인적 DB 스키마, 사용자 관점
- 개념 스키마: 모든 사용자 관점을 통합한 조직 전체의 DB 스키마, 설계자 관점
- 내부 스키마: 물리적으로 데이터가 저장된 형식을 표현하는 스키마, 개발자 관점
3-2. 데이터 독립성의 필요성
- 지속적으로 증가하는 유지보수 비용 절감
- 데이터 복잡도를 낮추고, 중복된 데이터를 줄이기 위한 목적
- 끊임없이 요구되는 사용자 요구사항에 대해 화면과 DB 간 서로 독립성을 유지하기 위한 목적
3-3. 데이터 독립성
- 논리적 독립성: 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않음
- 물리적 독립성: 내부 스키마가 변경되어도 외부/개념 스키마에 영향을 미치지 않음
4. 데이터 모델링의 세 가지 요소
- 업무가 관여하는 어떤 것(Things)
- 어떤 것이 가지는 성격(Attributes)
- 업무가 관여하는 어떤 것 같의 관계(Relationships)
- 엔터티, 속성, 관계
4-1. 데이터 모델 표기법
- 엔터티: 사각형
- 관계: 마름모
- 속성: 타원형
4-2. ERD 작업 순서
- 엔터티 도출
- 엔터티 배치
- 엔터티 간 관계 설정
- 관계명 기술
- 관계의 참여도 기술(관계차수, 1:1, 1:N, M:N)
- 관계의 필수여부 기술
4-3. 좋은 데이터 모델의 요소
- 완전성
- 중복 배제
- 업무 규칙
- 데이터 재사용
- 의사소통
- 통합성
5. 엔터티
- 정의: 업무에 필요하고 유용한 정보를 저장 및 관리해야 하는 데이터의 집합
5-1. 엔터티의 특징
- 업무에서 필요로 하는 정보
- 식별자를 가진다
- 인스턴스의 집합이다
- 업무 프로세스에 의해 이용된다
- 속성을 가진다
- 관계를 가진다
5-2. 엔터티의 분류
- 유무형에 따른 분류
- 유형 엔터티: 물리적 형태가 있고 지속적으로 활용되는 엔터티
- 개념 엔터티: 물리적 형태가 존재하지 않고 관리해야 할 개념적 정보로 구분이 되는 엔터티
- 발생 시점에 따른 분류
- 기본 엔터티(Key Entity): 독립적으로 생성
- 중심 엔터티(Main Entity): 기본 엔터티와 행위 엔터티의 중간에 존재
- 행위 엔터티(Active Entity): 두 개 이상의 부모 엔터티로부터 발생되고, 비즈니스 프로세스를 실행하면서 생성되는 엔터티. 데이터 양이 가장 많다
- 명명 규칙
- 현업 업무에서 사용하는 용어
- 약어 지양
- 단수 명사
- 유일성 보장
- 명확성
6. 속성
-
정의: 엔터티가 가지는 최소 의미 단위, 인스턴스의 구성 요소
-
속성 표기법: IE 표기법, Baker 표기법
- 특징
- 업무에서 필요하고 관리하고자 하는 정보
- 주식별자에 함수적 종속성을 가져야 한다
- 하나의 속성에는 한 개의 값만을 가진다
- 분류
- 특성에 따른 분류
- 기본 속성: 비즈니스 프로세스에서 도출되는 본래 속성
- 설계 속성: 데이터 모델링 과정에서 업무 규칙화를 위해 발생되는 속성
- 파생 속성: 다른 속성에 영향을 받아 발생하는 속성
- 분해 가능 여부에 따른 분류
- 단일 속성
- 복합 속성
- 단일값 속성
- 다중값 속성
- 엔터티 구성 방식에 따른 분류
- 기본키 속성(Primary Key)
- 외래키 속성(Foreign Key)
- 일반 속성: 엔터티에 포함되어 있고 PK, FK에 포함되지 않은 속성
- 특성에 따른 분류
7. 관계
- 정의
- 엔터티의 인스턴스 사이의 논리적인 연관성
- 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태
- 관계의 패어링: 인스턴스 간 개별적 관계를 가지는 것
- 관계의 분류(종류)
- ERD 기준
- 존재에 의한 관계: 엔터티 간의 상태
- 행위에 의한 관계: 엔터티 간에 발생하는 행위
- UML(Unified Modeling Language) 기준
- 연관 관계(Association): 실선 표기
- 의존 관계(Dependency): 점선 표기
- 식별자에 따른 분류
- 식별 관계: 부모 엔터티의 식별자를 자식 엔터티에서 주식별자로 사용
‒ 비식별 관계: 부모 엔터티의 식별자를 자식 엔터티에서 일반 컬럼으로 참조 사용, 약한 종속 관계
- 식별 관계: 부모 엔터티의 식별자를 자식 엔터티에서 주식별자로 사용
‒ 비식별 관계: 부모 엔터티의 식별자를 자식 엔터티에서 일반 컬럼으로 참조 사용, 약한 종속 관계
- ERD 기준
- 관계의 표기법
- 관계명: 관계의 이름
- 관계차수(Cardinality)
- 1:1, 1:M(One to Many), M:M(Many to Many)
- 두 개의 엔터티 간 관계에서 참여자의 수를 표현하는 것
- 관계형 DB에서 M:N 관계의 조인은 카테시안 곱 발생
- 관계선택사양(Optionality)
- 필수관계, 선택관계
- 관계 읽기
- 각각의/하나의 > 기준엔터티 > 관계차수 > 대상 엔터티 > 관계선택사양 > 관계명
8. 식별자
- 정의: 하나의 엔터티에 구성되어 있는 여러 개의 속성 중 엔터티를 대표할 수 있는 속성을 의미
- 특징
- 유일성
- 최소성
- 불변성
- 존재성
8-1. 식별자의 분류
- 대표성 여부에 따른 분류
- 주식별자: 대표성을 만족하는 식별자
- 보조식별자: 유일성과 최소성만을 만족하는 식별자, 참조관계 연결에 사용할 수 없음
- 생성 여부에 따른 분류
- 내부 식별자: 엔터티 내부에서 스스로 만들어지는 식별자
- 외부 식별자: 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자
- 속성 수에 따른 분류
- 단일 식별자: 하나의 속성으로 구성된 식별자
- 복합 식별자: 둘 이상의 속성으로 구성된 식별자
- 대체 여부에 따른 분류
- 본질 식별자: 대체될 수 없는 식별자, 업무에 의해 만들어지는 식별자
- 인조 식별자: ‒ 인위적으로 만들어지는 대체가능한 식별자 (ex. 순서번호(Sequence Number)를 사용하여 생성된 식별자)
8-2. 주식별자 도출 기준
- 업무에서 자주 이용되는 속성, 이름 명명 지양, 복합 식별자 지양
※ DB 키의 종류
‒ 기본키(PK; Primary Key): 엔터티를 대표하는 키, 후보키 중 선정됨
‒ 후보키: 유일성과 최소성을 만족하는 키
‒ 슈퍼키: 유일성만 만족하는 키
‒ 대체키: 기본키를 제외한 나머지 후보키