Chapter 1-1. 데이터 모델링의 이해
- 모델링의 이해
- 정의 : 다양한 현상을 표기법에 의해 표기하는 것
- 특징 : 추상화, 단순화, 명확화
- 모델링의 관점 : 데이터 관점(what), 프로세스 관점(How), 상관관점(Interaction)
- 데이터 모델링의 이해
- 정의 : 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 제공하는 기능 : 시스템 가시화, 시스템 구조와 행동의 명세화, 구조화된 틀 제공, 문서화, 세부사항은 숨기는 다양한 관점 제공
- 데이터 모델링의 중요성와 유의점
- 중요성 : 파급효과, 복잡한 요구사항의 간결 표현, 데이터 품질
- 유의성 : 중복, 비일관성, 비유연성(데이터 정의를 데이터 사용프로세스와 분리 X)
- 데이터 모델링의 3단계
- 개념적 : 추상화 수준이 높고 업무 중심적이고 포괄적인 수준
- 논리적 : 시스템으로 구축하고자 하는 업무에 대해 Key, 속성, 관계 등 정확히 표현, 높은 재사용
- 물리적 : DB에 이식할 수 있도록 물리적인 성격 고려 설계
5. 데이터 모델링에서 독립성 이해
- 단계
- 외부단계 : IT 시스템의 사용자와 가장 가까운 단계
- 개념적 단계 : 통합된 뷰를 스키마 구조로 디자인한 형태
- 내부적 단계 : 물리적으로 저장된 방법에 대한 스키마 구조
- 스키마
- 외부스키마 : 사용자가 보는 개인적 DB스키마(사용자 관점)
- 개념스키마 : DB에 저장된 데이터들 간 관계 표현한 스키마(통합관점)
- 내부스키마 : DB가 물리적으로 저장된 형식(물리적 관점)
6. 데이터 모델링 & ERD
1) 세 가지 요소 : 엔터티, 관계, 속성
2) ERD(Entity Relation Diagram) : 엔터티 그리기 --> 엔터티 배치 --> 엔터티 간 관계설정 --> 관계명 기술
--> 관계 참여도 기술 --> 관계의 필수 여부
7. 좋은 데이터 모델의 요소
: 완전성, 중복 배제, 업무규칙, 데이터 재사용, 의사소통, 통합성
Chapter 1-2. 엔터티(Entity)
1. 엔터티 개념
: 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것, 인스턴스의 복수형
2. 엔터티의 특징 (6; 업무 2 + SQL4)
업무에서 필요로 하는 정보, 업무 프로세스에 의해 활용, 식별이 가능해야 함,
인스턴스의 집합, 속성을 포함, 관계의 존재
3. 엔터티의 분류
1) 유무형에 따른 분류 : 유형, 개념, 사건 엔터티
유형(물리적 형태 O), 개념(형태 X, 개념적 정보), 사건(업무 수행 시 발생)
2) 발생시점에 따른 분류 : 기본, 중심, 행위 엔터티
기본 엔터티 : 원래 존재하는 정보, 독립적으로 생성, 다른 엔터티로 Pk 상속 X
중심 엔터티 : 기본 엔터티로부터 발생
행위 엔터티 : 두 개 이상의 부모 엔터티로부터 발생
4. 엔터티의 명명
현업 업무에서 사용하는 용어 사용, 약어 사용 X, 단수명사 사용, 고유이름 사용, 생성의미대로 부여
Chapter 1-3. 속성(Arrtibute)
1. 속성의 개념
: 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 더 이상 분리되지 않는 최소의 데이터 단위
2. 표기법
1) 한 개의 엔터티는 두 개 이상의 인스턴스 집합
2) 한 개의 엔터티는 두개 이상의 속성을 갖는다
3) 한 개의 속성은 한 개의 속성값을 갖는다
3. 속성의 특징
: 정해진 주식별자에 함수의 종속성을 가져야 한다.
4. 속성의 분류
1) 속성의 특성에 따른 분류 : 기본속성, 설계속성(1:1 치환), 파생속성(계산값)
2) 엔터티 구성방식에 따른 분류
- PK 속성 : 엔터티 식별 가능한 속성
- FK 속성 : 자식 엔터티가 부모 엔터티의 PK 속성을 가지는 경우
- 일반 속성 : PK도 FK도 아닌 속성
- 단순형/복잡형, 단일속성/다중속성
5. 도메인 : 각 속성이 가질 수 있는 값의 범위
속성에 대한 데이터 타입과 크기, 제약사항 지정. 해당 속성의 값은 도메인 이외의 값을 갖지 못한다.
Chapter 1-4. 관계(Relation)
1. 관계의 정의
: 인스턴스 사이의 논리적인 연관성으로 존재나 행위로써 서로에게 연관성이 부여된 상태
2. 관계의 분류
1) ERD : 존재에 의한 / 행위에 의한
2) UML : 연관관계 / 의존관계
3. 관계의 표기법
: 관계명, 관계차수, 관계선택사양(필수/선택)
4. 관계 읽기
각각의/하나의 --> 기준 엔터티 --> 관계차수 --> 관련 엔터티 --> 관계선택사양 --> 관계명
5. 관계 체크사항
- 엔터티 간 연관규칙 존재하는가?
- 엔터티 간 정보의 조합이 발생하였는가?
- 관계 연결에 대한 규칙 서술이 되어 있는가?
- 관계 연결을 가능하게 하는 *동사가 있는가?
Chapter 1-5. 식별자(Identity)
1. 식별자 개념
: 하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성을 의미,
하나의 엔터티에 반드시 우일한 식별자 존재해야 함.
2. 주식별자 특징 : 유일성, 최소성, 불변성, 존재성
- 유일성 : PK에 의해 모든 인스턴스들이 유일하게 구분
- 최소성 : PK 구성하는 속성의 수는 유일성 만족하는 최소의 수가 되어야 함
- 불변성 : PK 값을 한번 정하면 불변
- 존재성 : Null 일 수 없다
3. 식별자 분류
- 주식별자/보조식별자 : 대표성 여부, 인스턴스 구분가능
- 내부/외부 식별자(FK) : 스스로 생성 여부
- 단일/복합 식별자 : 속성의 수
- 본질/인조 식별자 : 대체여부, 본질식별자가 복잡한 구성
4. 식별자와 비식별자 관계
1) 식별자 관계 : 부모 엔터티의 주식별자(PK)가 자식엔터티의 주식별자로 상속
2) 비식별자 관계 : 부모엔터티 PK 자식엔터티 일반속성으로 상속
정규화(Normalization)
1. 정규화 개념
: 데이터의 일관성을 유지하고 중복을 방지하고 유연성을 유지하기 위해 데이터를 분해하는 과정
2. 정규화 용어
- 정규화 : 이상 현상을 최소화하기 위해 좀 더 작은 단위의 테이블로 설계하는 과정, 정규화는 데이터 모델을 정규형에 맞도록 고치는 과정
- 정규형(NF; Normal Form) : 정규화한 결과
- 함수 종속성(FD; Function Dependency) : 칼럼 A를 알면 B를 알 수 있을 때, B는 A에 함수의 종속성이 있다.
- 다치 종속(MVD; Multivalued Dependency) 예) 학번을 알면 수광과목(다수) 알 수 있음. 이때, 수강과목은 학번에 다치 종속 관계임
3. 정규화 효과
- 상호 종속성이 강한 데이터 분리, 독립된 개념으로 정의 -> 높은 응집도&낮은 결합도 원칙에 충실해져 유연성 극대화
- 세분화되기 때문에 해당 개념에 대한 재활용 가능성 높아짐
- 속성이 한 번만 표현됨에 따라 중복이 최소화, DML 처리 시 성능이 향상됨