[DB] 데이터 모델링
데이터 모델링
데이터 모델링의 단계
개념적 모델링
- 고객의 비지니스 프로세스를 분석하고 업무 전체에 대해서 데이터 모델링을 수행
- 복잡하게 표현하지 않고,
중요한 부분을 위주
로 모델링하는 단계 업무적 관점
에서 모델링하며, 기술적 용어는 가급적 사용 X- 엔티티와 속성을 도출하고
개념적 ERD
를 작성한다.
논리적 모델링
- 개념적 모델링을 논리적 모델링으로 변환하는 과정
식별자를 도출
하고 필요한 모든 릴레이션을 정의한다.정규화를 수행
해서 데이터 모델의 독립성을 확보한다.
물리적 모델링
- 데이터베이스를 실제 구축한다.
- 테이블, 인덱스, 함수 등을 생성한다.
- 성능, 보안, 가용성을 고려하여 구축한다.
ERD (Entity Relationship Diagram)
- 1976년
피터첸
이 ERD 표기법을 만들었고, 사실상 데이터 모델링의 표준으로 사용되고 있음. - 엔티티 간의 관계를 정의하는 모델링 방법
작성 절차
- 엔티티를 도출하고 그린다.
- 엔티티를 배치한다.
- 엔티티를 도출한 후 엔티티를 베치한다.
- 중요한 엔티티를 왼쪽 상단에 배치 (가시성)
- 엔티티 간의 관계를 설정한다.
- 관계명을 서술한다.
- 엔티티 간의 어떤 행위나 존재가 있는지 표현
- 관계 참여도를 표현한다.
- 관계 참여도 : 1개의 엔티티와 다른 엔티티 간의 참여하는 관계 수
- 관계의 필수 여부를 표현한다.
- 필수 : 반드시 존재해야 하는 것.
ERD 작성 시 고려사항
- 중요한 엔티티를 가급적
왼쪽 상단에 배치
- ERD는 이해하기 쉽고 복잡하지 않아야 함.
3중 스키마(3-Level Schema)
외부 스키마
- 사용자 관점, 업무상 관련이 있는 데이터 접근
- 응용 프로그램이 접근하는 데이터베이스를 정의한다.
개념 스키마
- 설계자 관점, 사용자 전체 집단의 데이터베이스 구조
- 전체 데이터베이스 내의 규칙과 구조를 표현한다.
- 통합 데이터베이스 구조이다.
내부 스키마
- 개발자 관점, 데이터베이스의 물리적 저장 구조이다.
- 데이터 저장 구조, 레코드 구조, 필드 정의, 인덱스 등을 의미
엔티티(Entity)
엔티티 특징
- 식별자
- 엔티티는
유일한 식별자
가 있어야 한다.
- 엔티티는
- 인스턴스 집합
- 2개 이상의 인스턴스를 가져야 한다.
- 속성
- 엔티티는 반드시 속성을 가지고 있어야 한다.
- 관계
- 엔티티는 다른 엔티티와 최소 1개 이상의 관계가 있어야 한다.
- 업무
- 엔티티는 업무에서 관리되어야 하는 집합이어야 한다.
엔티티의 종류
엔티티의 종류에 대해서는 아래 그림을 참고하자.
물리적 형태의 존재 여부에 따른 분류
발생 시점에 따른 분류
속성(Attribute)
속성이란?
- 업무에서 필요한 정보인 엔티티가 가지는 항목
- 더 이상 분리되지 않는 단위로, 업무에 필요한 데이터를 저장할 수 있다.
- 인스턴스의 구성요소이고 의미적으로 더 이상 분해되지 않는다.
특징
- 속성은 하나의 값만 가진다.
- 주식별자에게 함수적으로 종속된다.
- 기본키가 변경되면, 속성의 값도 변경된다.
분류
속성의 분류는 아래 표를 참고하자.
분해 여부에 따른 속성의 분류
특성에 따른 속성의 분류
도메인이란?
- 속성이 가질 수 있는 값의 범위를 의미한다.
- 예를 들어 성별이라는 속성의 도메인은 ‘남자’, ‘여자’ 이다.
관계(Relationship)
관계란?
- 엔티티 간의 관련성을 의미를 한다.
관계의 종류
- 존재 관계
- 엔티티 간의 상태를 의미
- 행위 관계
- 엔티티 간의 어떤 행위가 있는 것.
관계 차수
- 두 개의 엔티티 간에 관계의 참여하는 수
필수적 관계와 선택적 관계
- 필수적 관계는 ‘l’로 표현되고, 선택적 관계는 ‘O’로 표현된다.
- 필수적 관계
- 반드시 하나가 있어야 하는 관계
- 고객이 반드시 있어야 계좌를 개설할 수 있음.
- 선택적 관계
- 없을 수도 있는 관계
- 고객은 있지만, 계좌가 없을 수도 있다면 선택적 관계가 됨.
식별 관계와 비식별 관계
- 식별 관계
- 강한 개체의 기본키를 다른 엔티티의 기본키로 가지는 관계
실선
으로 표현한다.
- 비식별 관계
- 강한 개체의 기본키를 다른 엔티티의 기본키가 아닌 일반 컬럼으로 관계를 가지는 것.
점선
으로 표현한다.
엔티티 식별자(Entity Identifier)
식별자란?
- 엔티티를 대표할 수 있는 유일성을 만족하는 속성
주식별자 속성
- 최소성
- 주식별자는 최소성을 만족하는 키이다.
- 대표성
- 주식별자는 엔티티를 대표할 수 있어야 한다.
- 유일성
- 주식별자는 엔티티의 인스턴스를 유일하게 식별한다.
- 불변성
- 주식별자는 자주 변경되지 않아야 한다.
키의 종류
아래 표를 참고하자
식별자의 종류
- 대표성 여부에 따라 주식별자, 보조 식별자로 나뉜다.
- 주식별자
- 유일성과 최소성을 만족하면서, 엔티티를 대표하는 식별자
- 다른 엔티티의 참조 관계로 연결될 수 있다.
- 보조 식별자
- 유일성과 최소성을 만족하지만, 대표성을 만족하지 못하는 식별자
- 주식별자
- 생성 여부에 따른 분류
- 내부 식별자
- 엔티티 내부에서 스스로 생성되는 식별자
- 외부 식별자
- 다른 엔티티와의 관계로 인하여 만들어지는 식별자
- 내부 식별자
- 속성의 수에 따른 분류
- 단일 식별자
- 하나의 속성으로 구성
- 복합 식별자
- 2개 이상의 속성으로 구성
- 단일 식별자
- 대체 여부
- 본질 식별자
- 비지니스 프로세스에서 만들어지는 식별자
- 인조 식별자
- 인위적으로 만들어지는 식별자
- 본질 식별자
참고 사이트 출처
- https://starrykss.tistory.com/1612