데이터 모델링
1. 모델링 : 카테고리
- 추상화 : 일정한 형식
- 단순화 : 규약, 약속된 언어로 표현
- 명확화 : 애매모호함 제거
2. 모델링 관점
- 데이터 : what 무엇, 어떤 데이터, 데이터 간의 관계
- 프로세스 : how 어떻게, 비즈니스가 어떻게 이루어지는가
- 데이터&프로세스(상관 관점) : 데이터와 프로세스 사이 어떤 영향을 받는지
3. 데이터 모델링
- 현실 세계의 비즈니스를 it시스템으로 구축하기 위한 데이터 관점 모델링.
* 유의점 (하지 말것)
1. 중복 : 데이터 중복 안되도록 ex) 주민번호 중복 X
2. 비유연성 : 데이터와 프로세스 사용을 분리
3. 비일관성 : 데이터와 데이터 간 명확한 정의 ex) '홍길동' 저장했는데 '홍길순'??
4. 데이터 모델링 진행
- 개념적 데이터 모델링 -> 논리적 데이터 모델링 -> 물리적 데이터 모델링
- 개념적 : 추상화 수준 높음. 카테고리. ERD 작성
- 논리적 : 기본키, 관계, 속성, 조인키, 외래키 등 정의
- 물리적 : 추상화 수준 낮음. DB저장
5. 3단계 스키마
- 외부 스키마 : 사용자가 보는 DB.
- 개념 스키마(논리 스키마) : 사용자 관점과 프로그램 관점을 통합.
- 내부 스키마 : 데이터베이스 관점. DB 저장하는 형식
6. 데이터 독립성
- 논리적 데이터 독립성 : 개념 스키마는 외부 스키마 영향 X
- 물리적 데이터 독립성 : 내부 스키마는 개념&외부 스키마 영향 X
7. ERD 순서 (필수 암기)
- 엔터티 도출 -> 배치 -> 관계 설정 -> 관계명 기술(포함하다, 포함되다 등) -> 참여도(관계차수) 기술 -> 관계 필수 여부 기술(IE 필수는 동그라미, 바커 필수는 실선)
엔터티 - 문제가 많다.
- 저장하는 어떤 것
-> 정의가 명확하지 않다.
1. 엔터티
- 유일한 식별자
- 인스턴스 2개이상, 하나의 인스턴스는 1개 속성
엔터티 > 인스턴스 2개 이상 > 속성(속성값) 2개 이상 (필수)
ex) 엔터티는 테이블, 인스턴스는 행, 속성은 컬럼, 속성값은 컬럼데이터 하나하나
- 업무에 반드시 이용
- 다른 엔터티와 최소 1개 이상의 관계 있어야함
2. 엔터티 분류
- 유무
- 유형 : 물리적으로 O (사원, 물품)
- 개념 : 물리적으로 X (조직, 상품)
- 사건 : 업무 수행으로 생김 (주문, 청구)
- 발생시점
- 기본 : 스스로 생성, 기본단위 (사원, 상품)
- 중심 : 기본에서 파생 (계약, 사고)
- 행위 : 2개 이상의 엔터티에서 파생 (주문목록, 사원변경이력)
3. 엔터티 명명규칙 (필수 암기)
- 업무 담당자 사용용어 (별도의 용어 쓴다 X)
- 약어 자제 (정확한 의미를 알 수 있게 쓴다 O)
- 단수 명사
- 유일한 이름
- 의미에 맞게
인스턴스
- 엔터티에 속한 객체
- 행 단위 = ex) 한 사원의 정보 모음집
- 1개 이상 속성
속성
- 데이터 최소 단위
- 속성 안 속성값 최소 1개 이상
1. 속성
- 1개 엔터티는 2개 이상 인스턴스
- 1개 엔터티는 2개 이상 속성
- 1개 속성은 1개 속성값
2. 속성 표기법
- IE 표기법 : 네모 상단칸이 식별자
- Barker 표기법 : #식별자, *필수, °선택(null가능)
3. 속성 특징
- 업무에 필요
- 엔터티 주식별자에 함수적 종속성을 가짐
- 주식별자를 알면 속성이 구분되는 가?
된다 -> 함수적 종속 가졌다.
안된다 -> X
- 1개 속성, 1개 속성값
- 1개 인스턴스는 속성마다 1개의 속성값(원자성)
4. 속성 분류
- 기본 : 업무생성 ex) 원금, 예치기간
- 설계 : 데이터 모델 설계 시 ex) 상품번호, 예금번호
- 파생 : 계산, 통신, 변형 중 도출 ex) 합계, 평균
- PK : 유일한 식별키
- FK : 다른 엔터티의 주식별키
속성 명명규치 (필수)
- 업무에 사용
- 약어 자제
- 서술식 자제 = 단순 명사
- 유일한 이름
도메인 (보너스)
관계
- 엔터티와 엔터티, 엔터티와 인스턴스 사이의 관계
1. 관계
- 존재 관계 ex) 부서와 사원
- 행위 관계 ex) 고객과 주문
2. 관계표기법
- 관계명 : 포함된다. 소속된다. 주문없는 고객 등
- 관계차수 : 까치발 = 다수
- 관계 선택사항 : 필수, 선택
- IE : 동그라미 선택
- 바커 : 실선 필수, 점선 선택

3. 관계 정의 시 주의사항
- 2개 엔터티 사이 연관규칙 존재여부
- 2개 엔터티 사이 정보조합 발생여부
- 업무기술서, 장표에 관계 서술여부
- 업무기술서, 장표에 관계가 동사(Verb)인지
식별자
1. 식별자
- 유일성 : 인스턴스를 주식별자에 의해 유일하게 구분
- 최소성 : 주식별자를 구성하는 속성은 최소한의 수
- 불변성 : 한번 정해진 주식별자는 변치 않음
- 존재성 : not null
2. 식별자 종류
- 대표성
- 주 : 엔터티에서 인스턴스를 구분
- 보조 : 인스턴스를 구분하나, 대표성이 없다.(다른 엔터티와 참조관계 X)
- 생성 여부
- 내부 : 엔터티에서 스스로 생성
- 외부 : 다른 엔터티에서 받아온 식별자
- 속성수
- 단일 : 하나의 속성으로 구성된 식별자
- 복합 : 하나 이상의 속성으로 구성된 식별자
- 대체 여부
- 본질 : 업무에서 생성
- 인조 : 본질식별자 너무 복잡 -> 인위적 생성
3. 식별자 도출기준
- 명칭, 장소, 이름은 주식별자 X
- 주식별자가 복합식별자인 경우 속성은 적게 한다
4. 식별자 관계와 비식별자 관계 (필수)
- 식별자 관계 : 부모엔터티 주식별자 = 자식엔터티 주식별자
- 비식별자 관계 : 부모엔터티 주식별자 != 자식엔터티 주식별자
'부모 없이 자식엔터티가 생성될 있는 경우' -> 비식별자 관계
'부모 엔터티가 먼저 없어질 수 있는 경우' -> 비식별자 관계