21. 엔터티 검증
- 조직의 업무를 수행하는데 필요한 의미 있는 정보를 나타내는지 확인
- 특정 사례가 아닌 유사한 사물들을 대표하는 집합체여야 함
- 인스턴스가 포함할 내부 연관성 있는 속성에 의해 결정된 단일 개념을 대표해야 함
- 엔터티 내 인스턴스의 출현을 구별할 수 있는 능력을 제공해야 함 (인스턴스 식별)
- 정규화 규칙을 만족해야 함
22. 배타적 관계(Arc 관계)의 특징
- 관계는 보통 동일함
- 배타적 관계는 항상 필수(Mandatory)이거나 선택(Optional)이어야 함
- 배타적 관계는 반드시 하나의 인스턴스에만 속해야 함
- 어떤 엔터티는 다수의 배타적 관계를 가질 수 있으나, 지정된 관계는 단 하나의 배타적 관계에만 사용되어야 함
23. 엔터티 표기법
정보공학(IE) 표기법
- 독립 엔터티, 종속 엔터티(특성, 연관, 서브타입 엔터티) 존재
- 독립 엔터티: 각진 사각형으로 표시
- 종속 엔터티: 모서리가 둥근 사각형으로 표시
CASE*Method 표기법
- 모든 엔터티를 모서리가 둥근 사각형으로만 표현
- 독립/종속 확인을 위해 부모의 유일 식별자가 자식 유일 식별자의 일부가 되는지 확인하거나 관계선에 수직으로 그어져 있는 UID Bar를 확인
24. 속성 표기법
- 정보공학(IE) 표기법: PK를 사각형의 줄이 그어진 윗부분에 표시
- CASE*Method 표기법: 유일 식별자 속성 앞에 ‘#’ 표시
25. 관계 표기법
- 관계 기수성(Cardinality, Degree) 표기법
- 관계 선택성 표기법: CASE*Method 표기법은 필수를 실선으로 표현함. 정보공학(IE) 표기법은 필수는 동그라미 생략, 선택은 관계 선에 동그라미를 표시함
- 관계 식별성 표기법: CASE*Method 표기법은 수직인 바(UID Bar)를 사용함. 정보공학(IE) 표기법은 실선을 사용하여 표현함
26. 식별자
모든 인스턴스는 유일성이 보장되어야 하며 이를 위해 필요한 것이 식별자임.
식별자 종류
- 본질 식별자: 업무 속성을 이용하여 유일성 보장. (주민등록번호 등 기준 정보 식별자 및 거래 처리 식별자 포함)
- 인조 식별자: 인위적으로 만든 유일성 보장 속성. 최대한 범용적인 값 사용, 유일한 값 생성, 편의성/단순성 확보를 위해 사용함
- 보조 식별자: 유일성을 식별할 수 있으나 대표성을 갖지 못한 속성
- 참고: 신용카드의 카드번호는 인조(실질) 식별자이며, 본질 식별자는 ‘고객번호+상품코드+발급일시’의 조합임
27. 관계
- 논리 데이터 모델은 직접 관계만을 표현함
- 다대다 관계는 논리 단계에서 두 개의 1:M 관계로 해소함
- 관계도 집합이며 관계를 맺는 엔터티의 식별자가 결정되지 않았다면 관계 생성의 의미가 없음
28. 다중 관계 처리
- 병렬식 관계: 두 엔터티 사이에 여러 개의 관계가 병렬로 맺어지는 경우. 테이블 변환 시 여러 칼럼으로 나열되며 관계 변경에 취약함
- 직렬식 관계: 여러 관계를 상위 개념으로 통합하여 관리. 관계 관리용 엔터티가 추가되어 로우(Row) 형태로 나타나며 유연성이 높음
29. 특수 형태 관계
- 순환 관계(Self-Relationship): 자기 자신과 맺는 관계. 반드시 선택(Optional) 관계여야 함 (무한 루프 방지)
- BOM(Bill of Materials) 관계: 네트워크 구조이며 제조업 부품 수요 파악에 유용함. M:M 순환 구조임
- Arc(배타적) 관계: 아크 내 관계는 보통 동일하며 항상 필수이거나 항상 선택이어야 함. 반드시 하나의 인스턴스에만 속해야 함
30. 엔터티 통합과 분할
- 엔터티 통합은 향후 유연성이 크게 향상되나 독립성이 저하될 수 있음
- 하위 엔터티를 위해 최대한 통합을 유도하며, 서브타입 증가 형태의 통합이 바람직함
31. 정규화(Normalization)
데이터 이상 현상을 제거하여 정확성, 일관성, 단순성, 비중복성, 안정성을 만족시키는 최적의 구조를 만드는 과정임.
- 제1정규형(1NF): 모든 속성은 하나의 값(원자 값)을 가짐
- 제2정규형(2NF): 부분 함수 종속 제거 (식별자 전체에 완전 종속)
- 제3정규형(3NF): 이행 함수 종속 제거 (식별자 외 속성 간 종속 제거)
- BCNF: 모든 결정자가 후보 키가 되도록 분해
- 제4정규형(4NF): 다치 종속(Multi-valued Dependency) 제거
- 제5정규형(5NF): 조인 종속 제거
32. 이력 관리
이력 데이터 종류
- 발생 이력: 데이터 발생 시마다 남기는 정보
- 변경 이력: 변경 전후의 차이를 확인해야 할 때 관리
- 진행 이력: 업무 단계별 진행 정보 (예: 주문 단계)
선분 이력 관리 유형
- 인스턴스 레벨: 변경 시 전체 인스턴스 생성. 스냅샷 참조는 쉬우나 공간 낭비 초래 가능
- 속성 레벨: 대상 속성 변화 시에만 관리. 변경 이벤트가 명확함
- 주제 레벨: 유사 속성별로 로우 레벨 관리. 확장성 확보 가능
33. 물리 데이터 모델링
논리적 모델을 특정 DBMS의 특성을 고려하여 물리적인 스키마(저장 구조)로 변환하는 것임.
- 물리 데이터 모델링: 구조를 물리적인 모습까지 설계
- 데이터베이스 디자인: 설계 도면을 DBMS 관점 객체로 최적화 생성 (저장 공간, 파티셔닝, 인덱스 설계 등)
35. 엔터티 - 테이블 변환 (서브타입 변환)
- 슈퍼타입 기준: 서브타입을 슈퍼타입에 통합. Join 감소 및 수행 속도 향상 효과가 있으나 컬럼 수 및 블록 수가 증가함
- 서브타입 기준: 슈퍼타입 속성을 각 서브타입에 추가하여 분할. 타입 구분이 불필요하나 서브타입 통합 처리 시 Union 발생
- 개별타입 기준: 슈퍼타입과 서브타입을 각각 테이블로 변환하여 1:1 관계 생성. 독립적 처리가 빈번하고 컬럼 수가 많을 때 사용함
36 ~ 37. 속성 및 관계 변환
- 속성 → 컬럼: 가급적 표준화된 약어 사용. 필수 입력 속성은 NN(Not Null) 표시
- Primary UID → 기본키(PK): 실제 DDL에서 PK 제약조건으로 생성
- 1:M 관계: 1쪽의 PK를 M쪽의 FK로 상속
- 1:1 관계: Mandatory(필수) 쪽 테이블에 FK 생성 및 Unique Key 필수 지정
- 배타적 관계: 외래키 분리 방법(FK 제약 생성 가능) 또는 외래키 결합 방법(구분 컬럼 TYPE 추가) 사용
38. 데이터 표준 적용
논리에서 물리 변환 과정에서 명칭 표준을 준수함. (데이터베이스, 스토리지 그룹, 테이블스페이스, 테이블, 컬럼, 인덱스, 뷰 등)
39 ~ 40. 반정규화(De-normalization)
시스템 성능 향상 및 운영 단순화를 위해 수행하나 데이터 정합성 훼손 위험이 있음.
반정규화 종류
- 테이블 분할(Partitioning): 수평 분할(레코드 기준), 수직 분할(컬럼 기준)
- 중복 테이블 생성: 집계(통계) 테이블 추가, 진행 테이블 추가 등을 통해 대량 데이터 처리 속도 개선