- 01 관계
- 02 식별자
- 03 정규화
01 관계
1. 관계란?
관계 : 엔터티와 엔터티의 관계를 의미한다. 어떠한 연관성이 있는지 타입을 분류할 수 있다.

- 존재 관계 : 존재 자체로 연관성이 있는 관계

- 행위 관계 : 특정 행위를 함으로써 연관성이 생기는 관계
2. 표기법
1. 관계명
- 엔터티와 엔터티 사이에 어떠한 관계인지 명확하게 문장으로 표현
2. 관계차수
- 관계가 참여하는 수
- 1:1, 1:M, M:N

3. 관계선택사양
- 이 관계가 필수인지 선택인지 나타내는 것
- 참여자가 반드시 존재해야하는 필수 관계
-참여가 없을 수도 있는 선택적 관계
02 식별자
1. 식별자란?
식별자 : 모든 엔터티는 인스턴스를 가지고 있고, 인스턴스는 속성으로 자신의 특성을 나타낸다. 식별자는 이런 속성 중에 각각의 인스턴스를 구분 가능하게 만들어주는 대표적인 속성
2. 주식별자
기본키, PK(Primary Key)에 해당하는 속성
1. 유일성
- 각 인스턴스에 유니크함을 부여하여 식별이 가능하도록 한다.
2. 최소성
- 유일성을 보장하는 최소 개수의 속성이어야 한다.
3. 불변성
- 속성값이 되도록 변하지 않아야 한다.
4. 존재성
- 속성값이 NULL일 수 없다.
3. 분류

1. 대표성 여부
- 주식별자 : 다른 엔터티와 참조 관계로 연결
- 보조식별자 : 다른 엔터티와 참조 관계로 연결x
2. 스스로 생성되었는가
- 내부 식별자 : 엔터티 내부에서 스스로 생성된 식별자
- 외부 식별자 : 다른 엔터티와의 연결고리 역할
3. 단일 속성의 여부
- 단일 식별자 : 하나의 속성으로 구성된 식별자
- 복합 식별자 : 두 개 이상의 속성으로 구성된 식별자
4. 대체 여부
- 원조 식별자 : 업무 프로세스에 존재, 가공되지않음
- 대리 식별자 : 두 개 이상의 속성을 하나로 묶어서 사용
4. 식별자 관계 VS 비식별자 관계

1. 식별자 관계
- 부모 엔터티의 식별자가 자식 엔터티의 주 식별자가 되는 관계
- 주식별자는 반드시 존재해야함
> 부모 엔터티가 있어야 생성 가능

2. 비식별자 관계
- 부모 엔터티의 식별자가 자식 엔터티의 주식별자가 아닌 일반 속성이 되는 관계
- 일반 속성은 NULL 값이 들어갈 수 있음
> 부모 엔터티 없이도 자식 엔터티 생성 가능
03 정규화
정규화 : 데이터의 정확성과 일관성을 유지하고 보장하기 위해 엔터티를 작은 단위로 분리하는 과정
데이터 조회 성능은 저하될 수 도 향상될 수도 있다. 입력, 수정, 삭제 기능은 보통 향상된다.
1. 제1정규형
모든 속성은 반드시 하나의 값만 가져야 한다. 유사한 속성이 반복되면 1차 정규화 대상이다.
2. 제2정규형

엔터티의 모든 일반 속성은 반드시 모든 주식별자에 종속되어야한다.
정규화 전의 문제점
- 입력 이상 현상 : 주문되지않은 음료는 입력할 수 없음
- 수정 이상 현상 : 음료명이 변경될 경우 주문 데이터를 하나하나 변경해야함
2. 제3정규형

주식별자가 아닌 모든 속성 간에는 서로 종속될 수 없다.