1. 데이터 모델링이란
모델: 작품을 만들기 전에 미리 만든 물건
ER 모델(Entity-Relationship Model)
: 개체와 개체 간의 관계를 ER표기법을 사용하여 표현
* ERD(Entity-Relationship Diagram)은 ER모델에서 사용하는 실체와 관계를 도식화한 것
ER 모델의 질적 특성
- 완전성
- 정확성
- 최소성
- 자명성
- 확장성
2. ER 모델 구성 요소
: 엔티티, 관계, 속성
엔티티(Entity)
iv 집합, 그룹
: 현실세계에 실제로 존재하는 실체(고객, 상품, 직원,,)이거나 개념적인 것(조직, 서비스, 직업..)
엔티티는 슈퍼타입 엔티티나 서브타입 엔티티로 확장할 수 있다.
슈퍼타입 엔티티: 하나 이상의 서브타입 엔티티와 관계된 일반화된 엔티티, 서브타입에 공통으로 존재하는 속성 관리
서브타입 엔티티: 서브타입에만 존재하는 고유한 속성 관리
일반화 : 엔티티의 일반화는 엔티티 각각이 가지고 있는 고유한 특징을 일반화하여 공통의 속성으로 재정의한 것
상위 수준의 엔티티와 하위 수준의 엔티티를 일반화하여 표현할 수도 있다.
엔티티 관계에 따라 강한 엔티티와 약한 엔티티로 나눈다.
강한 엔티티 : 독립적으로 존재 (고객, 상품..)
약한 엔티티 : 다른 엔티티에 종속적 (고객 주소..)
관계의 구성
관계는 관계수, 선택성, 식별성, 관계면 등으로 구성된다.
- 관계수 : 1:1 / 1:N / N:M
- 선택성 : NOT NULL/ NULL
- 식별자 상속 : Primary Key/ Foreign Key
병렬 관계 : 엔티티와 엔티티 간에 두 개 이상의 관계를 맺는다.
속성
: 데이터를 표현하는 가장 작은 단위, 속성이 가지는 의미를 통해 엔티티 특성이나 상태를 알 수 있다.
속성의 특징
- 하나의 엔티티는 두 개 이상의 속성을 가진다.
- 도메인은 속성이 허용하는 데이터 형식과 범위를 가진다.
- 속성은 속성 값의 구성이나 성격에 따라 다양하게 분류할 수 있다.
- 단순 속성과 복합 속성
: 단순 속성은 속성을 더 분해할 수 없는 원자 값을 갖는다. 복합 속성은 단순 속성들의 조합으로 구성된다.
- 저장 속성과 파생 속성
: 저장 속성은 원래 존재하는 속성이다.파생 속성은 저장 속성이나 다른 파생 속성으로부터 파생된 속성이다. 파생 속성은 특수한 경우가 아니면 별도로 도출하지 않는다.
- 단일 값 속성과 다중 값 속성
: 단일 값 속성은 한 사람에 대해 하나의 값만 가지는 속성이다. 다중 값 속성은 하나의 속성이 여러 개의 값을 가지는 속성이다.
식별자
: 식별자의 특징으로는 유일성, 최소성, 불변성, 존재성이 있다.
본질 식별자: 업무에서 일반적으로 통용되는 식별자
인조 식별자: 데이터를 효율적으로 관리하기 위해 별도로 추가한 식별자
3. 관계형 데이터 모델 이론
정규화
: 관계형 데이터베이스의 테이블에 대해 데이터를 입력, 수정, 삭제할 때 발생하는 이상 현상을 최소화하기 위해 좀 더 작은 단위의 테이블로 설계하는 과정
제1정규형
- 중복되는 행이 없어야 한다.
- 모든 열의 값은 원자 값을 가져야 한다.
제2정규형
- 키가 아닌 속성(후보키에 속하지 않는 속성)은 후보키 전체에 종속되어야 한다.
제3정규형
- 키가 아닌 속성들 간에서 서로 종속적인 관계가 없어야 한다.