제 1절. 데이터모델의 이해
-
모델링의 이해
1) 모델링의 정의 : 복잡한 현실세계를 일정한 표기법에 의해 표현하는 일
2) 모델링의 특징
ㄱ) 추상화(모형화, 가설적) : 현실세계를 일정한 형식에 맞추어 표현
ㄴ) 단순화
ㄷ) 명확화
3) 모델링의 관점
ㄱ) 데이터관점 : 업무가 어떤 데이터와 관련있는지, 데이터간의 관계가 무엇인지.
ㄴ) 프로세스관점 : 업무가 무엇을 어떻게 하는지
ㄷ) 데이터와 프로세스의 상관관점 : 업무가 처리하는 일의 방법에 따라 데이터는 어떻게 영향받는지 -
데이터모델링의 기본개념의 이해
- 정보시스템을 구축하기 위한 데이터관점의 업무 분석 기법
- 현실세걔의 데이터에 대해 약속된 표기법에 의해 표현되는 과정
- 데이터베이스를 구축하기 위한 분석,설계의 과정
-
데이터 모델링의 중요성/유의점
1) 중요성
ㄱ) 파급효과 : 데이터구조변경작업으로 인한 다른변경작업들은 전체 시스템 구축 프로젝트의 큰 위험요소
ㄴ) 요구사항의 간결한 표현
ㄷ) 데이터품질 : 데이터품질 문제는 오랜기간 숙성된 데이터를 전략적으로 활용하려는 시점에 발생, 데이터구조에 신경써야 함
2) 유의점
ㄱ) 중복
ㄴ) 비유연성 : 데이터정의와 데이터사용프로세스가 분리되지 않음
ㄷ) 비일관성 : 데이터 간 상호 연관 관계에 대한 명확한 정의가 없음 -
데이터모델링의 3단계 진행
1) 개념적 데이터 모델링 : 업무중심적, 포괄적, 추상적, 엔터티관계 다이어그램
2) 논리적 데이터 모델링 : key, 속성, 관계 등을 정확하게 표현
3) 물리적 데이터 모델링 : 실제 데이터 베이스에 이식하고 성능과 저장여부를 고려
- 프로젝트 생명주기(Life Cycle)
현실 프로젝트에서는 개념적 데이터모델이 생략된 개념/논리 데이터모델링이 분석단계 때 대부분 수행
-
데이터모델링에서 데이터독립성 이해
1) 데이터독립성의 필요성데이터 독립성의 효과
- 각 view의 독립성을 유지하고 계층별 view에 영향을 주지 않고 변경 가능
- 단계별 스키마에 따라 데이터 정의어(DDL)과 데이터조작어(DML)가 다름을 제공
- 데이터 독립성을 이해하기 위해서는 ANSI 표준 모델을 보면되며, 특히 3단계인 구조, 독립성, 사상 3가지를 이해야한다.
2) 데이터베이스 3단계 구조(ANSI/SPARC의 3단계 구성의 데이터독립성 모델)
- 논리적데이터 독립성 → 개념스키마가 변경되도 외부스키마에 영향주지 않음
- 물리적데이터 독립성 → 내부스키마가 변경되도 외부/개념스키마에 영향주지 않음
3) 데이터독립성 요소
ㄱ) 외부스키마 : 개개인의 사용자가 보는 개인적 DB스키마
ㄴ) 개념스키마 : 모든사용자의 관점 통합, 조직전체의 DB를 기술
ㄷ) 내부스키마 : 내부단계, 내부스키마로 구성, 물리적DB, 저장장치
4) 사상(Mapping) : 상호 독립적인 개념 연결
- 논리적 사상 : 외부 화면이나 사용자에게 인터페이스하기 위한 스키마 구조는 전체가 통합된 개념적 스키마와 연결된다는 것
- 물리적 사상 : 통합된 개념적 스키마 구조와 물리적으로 저장된 구조의 물리적인 테이블스페이스와 연결되는 구조
-
데이터모델링의 3가지 개념
- 어떤 것 : 실제 실무 현장에서는 복수/집합개념도 엔터티로 짧게 명명
엔터티를 집합개념으로 사용하는 경우, 개별요소에 대해서는 인스턴스/어커런스를 단수의 개념
- 관계(Relationship) : 단수든 복수든 대부분 관계라고 표현
- 어떤 것 : 실제 실무 현장에서는 복수/집합개념도 엔터티로 짧게 명명
- 데이터모델링의 이해관계자
-
데이터 모델의 표기법인 ERD이해
1) 데이터모델 표기법2) ERD모델링
- 좋은 데이터 모델의 요소
1) 완전성(Completeness) : 업무에서 필요로 하는 모든 데이터가 데이터 모델에 정의
2) 중복배제(Non-Redundancy) : 동일한 사실은 반드시 한번만 기록
3) 업무규칙(Business Rules) : 데이터모델에 업무규칙 표현하여 다같이 공유
4) 데이터 재사용(Data Reusability) : 통합모델 및 데이터와 어플리케이션을 독립하여 재사용성 높이기
5) 의사소통(Communication) : 업무규칙을 동일한 의미로 받아들이고 정보시스템 활용
6) 통합성(Integration) : 동일한 데이터는 한번만 기록, 이를 다른 영역에서 참조, 활용
제 2 절 : 엔터티
-
개념
• 엔터티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다.
• 엔터티는 업무상 관리가 필요한 관심사에 해당한다.
• 엔터티는 저장이 되기 위한 어떤 것(Thing)이다. -
특징
1) 업무에서 필요로하는 정보
2) 유일한 식별자로 식별 가능
3) 여러개의 인스턴스를 포함
4) 반드시 속성이 존재
5) 다른 엔터티와의 관계가 1개 이상 -
분류
1) 유무형에 따라 : 유형, 사건, 개념
2) 발생시점에 따라
ㄱ) 기본엔터티 : 업무에 원래 존재하는 정보, 독립적으로 생성, 다른엔터티로부터 주식별자 상속안받음
ㄴ) 중심엔터티 : 기본엔터티로부터 발생
ㄷ) 행위 엔터티 : 두개 이상의 부모 엔터티로부터 발생
- 엔터티의 명명
1) 가능하면 현업업무에서 사용하는 용어
2) 가능하면 약어사용 안함
3) 단수명사 사용
4) 모든엔터티에서 유일하게 이름 부여
5) 생성 의미대로 이름 부여
제 3절 속성
- 개념 : 업무에서 필요로하는 인스턴스에서 관리하고자 하는 최소의 데이터 단위
- 특징
- 업무에서 필요
- 주식별자에 함수적 종속성을 가짐
- 분류
1) 특성에 따른 분류- 기본속성 : 업무로 부터 추출한 모든 속성
- 설계속성 : 기본속성 이외에 데이터모델링을 위해 만든 속성(ex.일련번호)
- 파생속성 : 다른 속성으로부터 파생
2) 구성방식에 따른 분류
- 복합속성 : 여러세부속성들로 구성 ex)주소 : 시+구+동
- 단순속성 : 나이 성별 등cf)도메인 : 속성이 가질 수 있는 값의 범위
제 4절 관계
-
개념
-
분류
-
관계의 표기법
1) 관계명 : 포함/소속
2) 관계차수 : 1:1, 1:N, N:N
3) 관계선택사양 : 필수관계, 선택관계(Foreign Key로 연결될 경우 Null을 허용할 수 있는 항목이 된다) -
관계의 정의 및 읽기
제 5 절 : 식별자
-
개념
- 식별자는 엔터티를 구분지으며, 엔터티를 대표할 수 있는 속성
- 엔터티에는 반드시 하나의 유일한 식별자가 존재
-
특징
- 유일성 : 주 식별자에 의해 엔터티내에 모든 인스턴스들이 유일하게 구분됨
- 희소성 : 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수
- 불변성 : 주식별자의 값은 한번 지정되면 불변
- 존재성 : null 안됨
-
분류
1) 대표성여부- 주식별자 : 다른 엔터티와 참조관계를 연결할 수 있는 식별자
- 보조식별자 : 대표성을 가지지 못해 참조관계 연결할 수 없음
2) 스스로 생셩여부 - 내부식별자/외부식별자
3) 속성의수 : 단일식별자/복합식별자
4) 대체여부 - 본질식별자 : 업무로부터 만들어짐(복잡한 구성을 가짐)
- 인조식별자 : 인위적으로 반들어짐(본질식별자가 복잡한 구성을 가졌기 때문)
-
식별자관계와 비식별자관계
1) 식별자관계 : 자식엔터티의 주식별자로 부모엔터티의 주식별자가 상속
2) 비식별자관계 : 부모엔터티의 주식별자가 자식엔터티의 일반속성으로 상속- 자식엔터티에서 받은 속성이 반드시 필수가 아니기에 부모 없는 자식이 생성될 수 있는 경우
- 엔터티별로 데이터의 생명주기(Life Cycle)를 다르게 관리할 경우.
- 여러 개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가질 때.
- 자식엔터티에서 별도의 주식별자를 생성하는 겻이 더 유리할 경우.
3) 식별자관계로만 설정할 경우 문제점 - 주식별자의 속성 수가 많아지는 엔터티가 생김
4) 비식별자관계로만 설정할 경우 문제점 - SQL문에 많은 조인이 걸리게 되고 그에따라 복잡성이 증가하고 성능이 저하
'자격증 & 문제풀이 > SQLD 정리' 카테고리의 다른 글
[SQLD][과목 2] 제 3 장 : SQL 최적화 기본원리 (0) | 2020.08.18 |
---|---|
[SQLD][과목 2] 제 2 장 : SQL활용 (0) | 2020.08.18 |
[SQLD][과목 2] 제 1 장 : SQL 기본 (0) | 2020.08.18 |
[SQLD][과목 1] 제 2 장 : 데이터모델과 성능 (0) | 2020.08.14 |