목차
1. 데이터 모델의 이해
2. 엔터티
3. 속성
4. 관계
5. 식별자
*데이터 모델링의 유의점
1. 중복 (Duplication)
2. 비유연성 (Inflexibility) : 데이터, 프로세스
데이터 모델이 수시로 변경되어 유지보수의 어려움이 증가할 수 있음. 그러므로 데이터의 정의를 사용 프로세스와 분리할 것
3. 비일관성 (Inconsistency) : 프로세스, 프로그램, 테이블, 데이터
사용자가 처리하는 프로세스 혹은 이와 관련된 프로그램과 테이블의 연계성이 높아 데이터 모델이 업무 변경에 대해 취약할 수 있음. 데이터와 데이터 간의 상호 연관 관계에 대해 명확하게 정의할 것
*모델링의 세 가지 단계
1. 개념적 데이터 모델링
추상화 레벨 높음
업무 중심적이고 포괄적인 수준의 모델링
전사적 데이터 모델링 수행 시 행해짐
2. 논리적 데이터 모델링
재사용성 높음
Key, 속성, 관계 등을 표현
구체화된 업무 중심의 데이터 모델링
3. 물리적 데이터 모델링
실제 데이터베이스로 구현
성능, 가용성 등의 물리적 성격을 고려하여 표현
*3단계 스키마 구조
1. 외부 스키마 (External Schema) : VIEW 단계, 여러 사용자 관점, 논리적인 데이터 독립성 고려
2. 개념 스키마 (Conceptual Schema) : 통합된 모든 사용자 관점, 논리적인 데이터 독립성 고려
3. 내부 스키마( Internal Schema) : 물리적인 저장구조 표현
*3단계 스키마 구조가 보장하는 독립성
1. 논리적 독립성 : 개념 스키마가 변경되어도 외부 스키마는 영향받지 않는다.
2. 물리적 독립성 : 내부 스키마가 변경되어도 외부/개념 스키마는 영향받지 않는다.
*데이터 독립성
물리적 독립성 : DB의 파일 구조의 변화가 논리스키마에 영향을 주지 않음
DB의 색인 구조의 변화가 응용 프로그램에 영향을 주지 않음
*속성 : 업무에서 필요로 하는 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
*속성 분류
1. 기본속성 : 바로 정의
2. 설계속성 : 설계 시 필요 ( 업무상 필요한 데이터 이외에 데이터 모델링을 위해, 업무를 규칙화하기 위해 속성을 새로 만들거나 변형하여 정의하는 속성)
3. 파생속성 : 다른 속성의 속성값을 계산한 값
4. 단순속성 : 쪼갤 수 없음
5. 복합속성 : 쪼갤 수 있음
6. PK속성 : 엔터티의 인스턴트들을 식별
7. FK속성 : 다른 엔터티에서 가져온 속성
8. 일반속성 : PK, FK에 포함되어 있지 않은 속성
*도메인
속성이 가질 수 있는 값의 범위(데이터 타입과 크기, 제약사향)
*모델링의 3가지 관점
데이터 관점 : Data, What
- 업무가 어떤 데이터와 관련이 있는 지 또는 데이터 간의 관계는 무엇인지에 대해 모델링하는 방법
프로세스 관점 : Process, How
- 업무가 실제로 하고 있는 일은 무엇인지 또는 무엇을 해야 하는지를 모델링하는 방법
데이터와 프로세스의 상관 관점 : Data vs Process
- 업무를 처리하는 일의 방식에 따라 데이터가 어떻게 영향을 받고 있는지 모델링하는 방법
엔터티 : 영속적으로 존재하는 인스턴스의 집합
엔터티 명명
1. 현업 업무에서 사용하는 용어 사용
2. 가능하면 약어를 사용하지 않을 것
3. 단수명사 사용
4. 모든 엔터티를 통틀어 유일할 것
5. 엔터티 생성의미대로 이름 부여
엔터티 분류
1. 유무형에 따른 분류
1) 유형 엔터티 : 물리적인 형태, 안정적, 지속적
2) 개념 엔터티 : 물리적인 형태가 아님, 관리해야 할 개념적 정보
3) 사건 엔터티 : 업무를 수행함에 따라 발생되는 엔터티, 비교적 발생량이 많으며 각종 통계자료에 이용 가능
2. 발생시점에 따른 분류
1) 기본 엔터티 : 업무에 원래 존재하는 정보로서 독립적으로 생성이 가능한 것
2) 중심 엔터티 : 기본 엔터티로부터 발생되고 그 업무에 있어서 중심적인 역할을 하는 것
3. 행위 엔터티 : 두 개 이상의 부모 엔터티로부터 발생되고 자주 내용이 바뀌거나 데이터량이 증가하는 것
*엔터티 간의 관계 분류
1. 존재 관계
2. 행위 관계
*UML에서 클래스다이어그램의 관계
3. 연관 관계 : 항상 이용하는 관계 (실선), 멤버변수 이용
4. 의존 관계 : 잠깐 이용하는 관계 (점선), 파라미터 이용
*엔터티 사이의 관계
1. 두 개의 엔터티 사이에 관심 있는 연관규칙이 존재하는가?
2. 두개의 엔터티 사이에 정보의 조합이 발생되는가?
3. 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?
4. 업무기술서 ,장표에 관계연결에 대한 규칙이 서술되어 있는가?
*ERD 작성 순서
엔터티 도출
엔터티 배치
엔터티 관계 설정
관계명 기술
관계 참여도 기술 (1:1, 1:M, N:M)
관계 선택사양(필수여부) 기술 (실선, 점선)
'Database > SQL' 카테고리의 다른 글
[SQLD] ALTER TABLE ~ (0) | 2024.05.15 |
---|---|
[SQLD] NULL 함수 (0) | 2024.05.15 |
[SQLD] 계층형 쿼리 (0) | 2024.05.15 |
[SQLD] 식별자 (0) | 2024.05.15 |
[SQLD] ERD 관계 (0) | 2024.05.14 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!