데이터 모델링
데이터 모델링의 이해
데이터 모델링
데이터 모델링 특징
- 추상화
- 단순화
- 명확성
데이터 모델링 단계
- 개념적 모델링
- ERD를 만드는 과정
- 추상적
- 논리적 모델링
- ERD로 스키마를 만드는 과정
- 정규화
- 물리적 모델링
- 실제 데이터베이스를 구축하는 과정
- 테이블, 인덱스 등 실제 구축
데이터 모델링의 3가지 관점
- 데이터 : 구조 분석, 정적 분석
- 프로세스 : 시나리오 분석, 도메인 분석, 동적 분석
- 데이터와 프로세스 : CRUD 분석
ERD 작성 절차
- 엔티티 도출 및 그리기
- 엔티티 배치
- 엔티티 관계 설정
- 엔티티 관계를 서술
- 관계 참여도 표현(1:1, 1:N, M:N 등의 관계 수 표현)
- 관계 필수 여부 표현(0 or |)
데이터 모델링 고려사항
- 데이터 모델의 독립성(정규화가 필요한 이유)
- 고객요구사항의 표현
- 데이터 품질 확보
3층 스키마(3-Level Schema)
3층 스키마
- 사용자, 설계자, 개발자
- ANSI 표준
- 데이터의 독립성을 확보하기 위한 방법
- 독립성의 장점: 데이터 복잡도 감소, 데이터 중복 제거, 변경에 대한 대응력 향상, 유지보수 유용 등의 장점
- 3층 스키마 중 하나의 스키마 층이 변경되더라도 다른 층의 스키마는 여향을 받지 않는다
3층 스키마 구조
- 외부 스키마
- 개념 스키마
- 내부 스키마
3층 스키마 구조 설명
- 외부 스키마
- 사용자 관점 스키마
- 기능적(업무적) 데이터 접근
- 개념 스키마
- 설계자 관점 스키마
- 데이터 베이스의 규칙, 구조 표현
- 내부 스키마
- 개발자 관점 스키마
- 데이터베이스의 물리적 저장 구조를 의미(테이블, 인덱스 등)
엔터티
엔터티
- 업무에서 관리해야 하는 데이터 집합
- 비즈니스 프로세스에서 엔터티를 도출할 수 있다. (실제 기능을 사용하면서 필요한 부분에 대해 엔터티를 도출)
엔터티의 특징
- 식별자 : 엔티티는 유일한 식별자가 있어야 한다.
- 인스턴스 집합 : 엔티티는 2개 이상의 인스턴스(데이터)가 있어야 한다.
- 속성 : 엔티티는 반드시 속성을 가지고 있다. (두 개 이상)
- 관계 : 엔티티는 다른 엔티티와 최소 한 개 이상의 관계가 있어야 한다.
- 업무 : 엔티티는 업무에서 관리되어야 하는 집합이다.
릴레이션, 테이블, 인스턴스
- 릴레이션 == 테이블
- 인스턴스 == rows, records를 의미
엔터티 종류
- 형태에 따른 구분
- 유형 엔터티 : 업무에서 도출되며 지속적으로 사용되는 엔터티, 물리적인 형태가 존재함
- 개념 엔터티 : 물리적인 형태가 없이 개념적으로만 존재함
- 사건 엔터티 : 비즈니스 프로레스를 실행하면서 생성되는 엔터티
- 발생 시점에 따른 구분
- 기본 엔터티(키 엔터티) : 다른 엔터티에 영향을 받지 않고 독립적으로 생성되는 엔터티
- 중심 엔터티(메인 엔터티) : 기본 엔터티와 행위 엔터티 중간, 기본 엔터티로부터 발생되고, 행위 엔터티를 생성하는 엔터티
- 행위 엔터티 : 2개 이상의 엔터티로부터 발생되는 엔터티
속성
속성
- 엔터티가 가지는 항목
- 더 이상 분리되지 않는 단위
- 인스턴스의 구성요소(같다고 봐도 무관할 듯?)
속성의 특징과 종류
- 특징
- 업무에서 관리되는 정보(엔터티가 가지는 정보)
- 속성은 하나의 값만 가진다.
- 주식별자에 종속된다. (기본키가 변경되면 속성의 값도 변경됨)
- 종류
- 분해 여부에 따른 구분
- 단일 속성
- 복합 속성 : 주소(시, 군, 동)와 같이 여러 의미를 포함하는 속성(분해 가능)
- 다중값 속성 : 상품 리스트와 같이 여러 값을 갖는 속성. 이는 엔터티로 분해 가능하다.
- 특성에 따른 구분
- 기본 속성 : 비즈니스 프로세스에서 도출되는 본래의 속성
- 설계 속성 : 데이터모델링 과정에서 발생되는 속성. 유일한 값을 부여(상품 코드)
- 파생 속성 : 다른 속성에 의해서 만들어지는 속성(평균, 합계)
도메인
- 분해 여부에 따른 구분
- 속성이 가질 수 있는 값의 범위
- 성별이라는 속성의 도메인은 남자와 여자
관계; Relationship
관계
- 두 엔터티 간의 관련성
- 존재 관계와 행위 관계로 분류
관계의 종류
- 존재 관계
- 회원과 관리점의 관계처럼 엔터티 간에 상태(종속 여부)를 의미
- 행위 관계
- 회원과 주문의 관계처럼 엔터티 간에 특정 행위가 있는 것
관계 차수
- 회원과 주문의 관계처럼 엔터티 간에 특정 행위가 있는 것
- 엔티티 간에 관계에 참여하는 수
- 1:1
- 1:N
- M:N : M:N의 경우 카테시안 곱, 즉 M*N의 연산이 발생하므로 관계를 해소해야 한다.
- 필수적 관계, 선택적 관계 : O 와 |로 표현한다.
식별 관계와 비식별 관계
- 식별 관계(강한 연결 관계)
- Strong Entity: 다른 엔터티에 의존하지 않고 독립적으로 존재할 수 있는 엔터티
- 식별 관계란 공유받는 Strong Entity의 기본키, 즉 FK를 기본키로 하는 관계이다.
- 실선으로 표현
- 비식별 관계(약한 연결 관계)
- 공유받는 Strong Entity의 기본키, 즉 FK를 일반 Column으로 하는 관계
- 점선으로 표현
엔터티 식별자
주식별자의 조건
- 유일성
- 주식별자에 의해 엔티티 내의 모든 인스턴스(데이터)들이 유일하게 구분되어야 한다.
- 데이터의 중복이 없다는 의미
- 최소성
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수이어야 한다.
- 주식별자는 하나의 속성만으로 이루어져야 한다는 의미
- 불변성
- 주식별자 값은 자주 변하지 않는 것이어야 함
- 존재성
- 주식별자가 지정이 되면 반드시 값이 들어와야 한다.
- NOT NULL
- 대표성
- 주식별자는 엔터티를 대표할 수 있어야 한다.
키의 종류
- 주식별자는 엔터티를 대표할 수 있어야 한다.
- 기본키 : 대표
- 후보키 : 유일성 O, 최소성 O
- 슈퍼키 : 유일성 O, 최소성 X
- 대체키 : 남은 키
- 외래키 : 참조 무결성을 확인하기 위해 사용되는 키(허용된 값만 저장하기 위함)
식별자의 종류
- 대표성에 따른 구분
- 주식별자
- 유일성, 최소성 만족
- 엔터티를 대표하는 식별자
- 보조 식별자
- 유일성, 최소성은 만족하지만 대표성을 만족하지 못하는 식별자
- 주식별자
- 생성 여부에 따른 구분
- 내부 식별자
- 엔터티 내부에서 스스로 생성되는 식별자
- 외부 식별자
- 다른 엔터티와의 관계로 인해 생성되는 식별자
- 내부 식별자
- 속성의 수에 따른 구분
- 단일 식별자
- 하나의 속성
- 복합 식별자
- 두 개 이상의 속성
- 단일 식별자
- 대체 여부
- 본질 식별자 : 비즈니스 프로세스에서 만들어지는 식별자
- 인조 식별자 : 인위적으로 만들어지는 식별자, 최대한 범용적인 값을 사용해서 만든 식별자
'Database > SQLD 개념' 카테고리의 다른 글
3. SQL 기본 및 활용 (0) | 2023.06.14 |
---|---|
2. 데이터 모델과 성능 (0) | 2023.06.14 |
0. 용어 정리 (0) | 2023.06.14 |