데이터 모델링
- 업무보다는 데이터 중심 모델링 진행 방법
- 개념적 모델링, 논리적 모델링, 물리적 모델링
개념적 모델링
- 요구 사항 이후 요구 사항을 보고 ERD를 생성
- ERD를 생성하는 단계
- Entity Relationship Diagram
- ERD-Cloud : IE 표기법
엔티티
- 유형 엔티티 : 물리적 형태가 있음. EX) 고객, 사원, 상품
- 무형 엔티티 : 물리적 형태 없이 개념만 존재. EX) 생산, 계획, 부서 조직, 구매 내역
- 문서 엔티티 : 거래 명세서, 입출금 전표

속성
- 엔티티가 가지는 데이터/특징
- 학생이라는 엔티티는 학번, 이름, 나이 ,성별이라는 속성을 가짐
- 키 모양을 가진 것은 식별자

주식별자
- 엔티티의 데이터들을 서로 구분 해 줄 수 있는 속성
- 학생 엔티티의 학번
- 중복 X. 유일성 가짐
- 여러개의 그룹핑한 결과일수도 있음.
- 변경 불가능
- 값을 반드시 가지고 있어야됨
- 나중에 primary key가 됨
보조식별자
- 주식별자를 대체할 수 있는 또 다른 속성
- 학생 엔티티의 이메일이나 주민번호
- unique 제약조건이 걸려있는 열로 바뀜
- unique key
외래식별자
- 외부 식별자
- 추가 or 상속되는 식별자
- 분홍색 키 모양
- 외래키
- 엔티티의 관계를 연결
관계(Relationship)
일대일 관계
- 1:1 관계
- 두 엔티티가 1건:1건의 관계
- 상품 - 상품상세 엔티티 관계

일대다 관계
- 학생 - 학과 엔티티 관계
- 관계형 데이터 베이스에서 가장 보편적인 관계

다대다 관계
- 관계형 데이터 베이스에서 물리적으로 표현할 방법 X
- 키의 중복 등 때문에 직접 연결 불가
- 가운데에 교차 엔티티를 두고 일대다, 다대일 관계로 서로 연결
- 불특정 관계
- 학생 - 수강과목 - 과목

식별/비식별 관계
- 식별 관계 : 부모 엔티티의 주 식별자를 자식 엔티티의 주 식별자, 외래 식별자로 사용하는 관계. 부모 엔티티에 반드시 데이터가 존재해야함. 실선
- 비식별 관계 :부모 엔티티의 주 식별자를 자식 엔티티의 외래 식별자로만 사용. 점선

논리적 모델링
- 개념적 모델링 과정에서 추상화된 데이터를 구체화
- 속성을 테이블화/상세화
이상
- 데이터 모델링 과정에서의 오류
- 삽입 이상/갱신 이상/ 삭제 이상
<삽입 이상>

- 주문에 대한 정보를 입력 하고 싶지만, 제품에 대한 정보도 입력이 됨
- 중복데이터가 들어가거나 Null이 생김
- 데이터 삽입 시 발생하는 문제
- 무결성 위배
<갱신 이상>

- 팔걸이 의자의 단가를 수정하고 싶을 때 모두 바꿔줘야함
- 불필요한 변경
- 동일 제품을 중복되어 있는 수만큼 수정해야함
<삭제 이상>

- 주문 정보만 삭제하고 싶은데, 제품에 대한 정보도 같이 삭제됨
정규화
- 제 1~5 정규화.
- 이전 정규화를 만족한 상태로 다음 정규화 진행 가능
- 상황에 따라서는 정규화를 진행하지 않는 것이 효율적일 수도 있음.
<제 1 정규화>

- 하나의 속성이 하나의 값을 가지도록
- 각각의 속성이 하나의 값만 가지도록 만드는 것
- 원자성
<제 2 정규화>

- 학번, 강의 이름을 하나의 주식별자로 만든거임(주 식별자가 복합 식별자)
- 나머지 속성들이 주식별자에 모두 종속적인지 확인하는 것
- 학번 - 강의실은 관련이 없음. 종속적 X
- 이를 분리하는 것
- 하나의 엔티티가 두개의 엔티티로 나누어짐
<제 3 정규화>

- 주 식별자에게 종속적이지 않고 다른 속성에 종속적인 속성을 분리
- 등급은 고객번호에 종속적. But 할인율은 고객번호에 종속적 X
- 이를 분리하는 것.
물리적 모델링
- 사용하는 실제 데이터베이스에 맞도록 구현하는 단계

반정규화
- 정규화의 반대
- 두 개의 테이블이 있을 때, 두 테이블을 무조건적으로 분리하는 것보다 합치는 것이 성능이 더 좋을 수 있다.