4번 - 데이터 모델링 유의점
“데이터의 정의를 데이터의 사용 프로세스와 분리”
=> 비유연성
- 중복Duplication
: 데이터 모델은 같은 데이터 사용하는 사람, 시간, 장소 파악에 도움 줌. - 비유연성Inflexibility
: 데이터 정의를 데이터 사용 프로세스와 분리하기
=> 데이터, 프로세스의 작은 변화가 앱과 DB에 중대 변화 발생 가능성 낮춤. - 비일관성Inconsistency
:데이터와 데이터 사이의 상호 연관 관계에 대해 명확하게 정의하기.
5번 - 데이터 모델링 3단계
데이터모델링 3단계
- 개념적
: 추상화 수준 high, 업무중심적/포괄적 수준 모델링.
전사적 데이터 모델링 - 논리적
: 시스템으로 구축하려는 업무에 대한 Key, 속성, 관계 명확히 표현.
재사용성 high - 물리적
: 실제로 DB에 이식 가능하도록 성능, 저장 등 물리적 성격 고려 설계.
6번 - DB 스키마 구조 3단계
- 외부 스키마
: View 단계의 여러 개 user 관점으로 구성.
DB의 user나 응용프로그래머가 접근하는 DB 정의. - 개념 스키마
: 모든 user 관점 통합한, 조직 전체의 DB를 기술.
DB에 저장되는 데이터와 그들 간의 관계 표현. - 내부 스키마
: DB가 물리적으로 저장된 형식.
물리적 장치에서 데이터가 저장되는 방법 표현한 스키마.
9번 - 엔터티의 특징
- 반드시 해당 업무에서 필요하고, 관리하고자 하는 정보여야 함.
- 유일한 식별자에 의해 식별 가능해야 함.
- 영속적으로 존재하는 인스턴스의 집합이어야 함. (두 개 이상)
- 업무 프로세스에 의해 이용돼야 함.
- 반드시 속성이 있어야 함.
- 다른 엔터티와 최소 한 개 이상의 관계 있어야 함.
12번 - 엔터티 분류
- 기본 엔터티
: 대상 업무에 원래 존재하는 정보.
다른 엔터티와 관계에 의해 생성되지 않고 독립적 생성.
자신은 타 엔터티의 부모 역할.
타 엔터티로부터 주식별자 상속받지 않고, 자신 고유 주식별자 가짐.
e.g. - 사원, 부서, 고객, 상품, 자재
15번 - 속성
엔터티, 인스턴스, 속성, 속성값 관계
- 한 개의 엔터티는 두 개 이상의 인스턴스의 집합이어야 함.
- 한 개의 엔터티는 두 개 이상의 속성을 가짐.
- 한 개의 속성은 한 개의 속성값을 갖는다.
속성의 정의
- 업무에서 필요로 함.
- 의미상 더 이상 분리되지 않음.
- 엔터티를 설명하고 인스턴스의 구성요소.
속성의 특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 함.
- 정규화 이론에 근거하여 주식별자에 함수적 종속성 가져야 함.
- 하나의 속성에는 한 개의 값만을 가짐.
하나의 속성에 여러 개의 값 있는 다중값이면 별도 엔터티로 분리.
속성의 분류
- 기본속성
: 업무로부터 추출한 모든 속성. - 설계속성
: 업무상 필요한 데이터 이외에,
데이터 모델링, 업무 규칙화 위해 속성 새로 생성/변형/정의하는 속성.
코드성 속성은 원래 속성을 업무상 필요에 의해 변형하여 만든 설계속성.
e.g. - 일련번호 - 파생속성
: 다른 속성에 영향 받아 발생하는 속성.
계산된 값들이 여기에 해당.
데이터 정합성 유지 고려!
18번 - 도메인
각 속성이 가질 수 있는 값의 범위.
=> 이걸 그 속성의 도메인.
==> 엔터티 내에서 속성에 대한 데이터타입, 크기, 제약사항 지정.
21번 - 관계
엔터티와 인스턴스 사이의 논리적인 연관성.
존재/행위의 형태로서 서로에게 연관성이 부여된 상태.
표기법
- 관계명
- 관계차수
- 관계선택사양
관계 체크사항
두 엔터티 사이에서 관계 정의 시 체크할 사항
- 두 엔터티 사이에 관심있는 연관규칙 존재하는가?
- 두 엔터티 사이에 정보의 조합이 발생하는가?
- 업무기술서, 장표에 관계연결 관한 규칙이 서술돼 있는가?
- 업무기술서, 장표에 관계연결 가능케 하는 동사가 있는가?
25번 - 주식별자
주식별자
: 엔터티에 대해 각각을 구분할 수 있는 논리적 이름(구분자)
특징
- 유일성
: 주식별자 의해 엔터티 내 모든 인스턴스들이 유일하게 구분돼야 함. - 최소성
: 주식별자를 구성하는 속성 수는 유일성 만족하는 최소의 수 돼야 함. - 불변성
: 지정된 주식별자의 값은 자주 변하지 않는 것이어야 함. - 존재성
: 주식별자가 지정 되면 반드시 값이 들어와야 함.
그 외 식별자
- 본질식별자
: 업무에 의해 만들어지는 식별자 - 인조식별자
: 업무적으로 만들어지지 X.
원조식별자의 복잡한 구성으로 인해 인위적으로 만든 것.
29번 - 식별자관계/비식별자관계
항목 | 식별자관계 | 비식별자관계 |
목적 | 강한 연결관계 표현 | 약한 연결관계 표현 |
자식 주식별자 영향 | 자식 주식별자의 구성에 포함됨. | 자식 일반속성에 포함됨. |
표기법 | 실선 | 점선 |
연결 고려사항 | - 반드시 부모엔터티 종속 - 자식 주식별자 구성에 부모 주식별자포함 必 - 상속받은 주식별자 속성을 타 엔터티에 이전 필요 | - 약한 종속관계 - 자식 주식별자 구성을 독립적 구성 - 자식 주식별자 구성에 부모 주식별자 부분적 필요 - 상속받은 주식별자속성을 타 엔터티에 차단 필요 - 부모쪽의 관계참여가 선택관계 |
30번 - 비식별자관계 외부속성 생성
자식 엔터티에서 받은 속성이 반드시 필수가 아니어도 무방하므로
부모 없는 자식이 생성될 수 있는 경우.엔터티별로 데이터 생명주기를 다르게 관리할 경우.
ex) 부모 엔터티에 인스턴스가 자식의 엔터티와 관계 가지고 있었으나,
자식만 남겨두고 먼저 소멸될 수 있는 경우.
=>(방안) 물리 DB 생성 시 Foreign Key를 연결하지 않는 임시적 방법.
이것보다는, 데이터 모델상에서 관계를 비식별자로 조정하는 것!여러 개의 엔터티가 하나로 통합되어 표현되었을 때
각각의 엔터티가 별도의 관계를 가질 때.자식엔터티에 주식별자로 사용해도 되지만,
자식엔터티에서 별도 주식별자 생성하는 것이 더 유리하다 판단될 때
비식별자 관계에 의한 외부식별자로 표현.