데이터 모델링
유의점
- 중복: 여러 장소에 같은 정보를 저장하지 않기.
- 비유연성: 데이터의 정의를 사용 프로세스와 분리하기.
- 비일관성: 데이터와 데이터간의 상호 연관 관계에 대한 명확한 정의가 필요. 프로세스와 테이블의 연계성을 높이지 않기.
종류
- 개념적 데이터 모델링: 추상화 수준이 높고, 업무 중심, 포괄적 수준의 모델링, 전사적 데이터모델링, EA 수립 시 사용
- 논리적 데이터 모델링: 시스템 구축하려는 업무에 대해 KEY, 속성, 관계를 정확하게 표현, 재사용성 높음
- 물리적 데이터 모델링: 실제로 데이터베이스에 이식할 수 있도록 성능, 저장 등 물리적 성격을 고려하여 설계
데이터 모델링의 주요 이유
데이터베이스 스키마 구조 3단계
- 외부스키마: 사용자 관점, DB에 저장되는 데이터와 그들간의 관계를 표현
- 개념스키마: 개념단계 하나의 개념적 스키마, 조직 전체의 DB
- 내부스키마: 내부단계, DB가 물리적으로 저장된 형식
엔티티의 특징
- 유일한 식별자
- 두 개 이상의 인스턴스의 집합
- 업무 프로세스에 의해 반드시 이용
- 반드시 속성이 있어야 함
- 다른 엔티티와 최소 한 개 이상의 관계, 공통코드나 통계성 엔티티의 경우 생략 가능
발생시점에 따른 엔티티 분류
- 기본 엔티티: 원래 존재하는 정보, 독립적 생성, 상속받지 않음
- 중심 엔티티: 업무 중심 역할, 기본 엔티티로부터 발생, 관계를 통해 생성
- 행위 엔티티: 부모 엔티티로부터 발생, 자주 바뀌거나 데이터 양 증가, 상관 모델링 시 도출
ERD
- ERD 작성 방법은 엔티티 도출 -> 엔티티 배치 -> 관계 설정 -> 관계명 기술 흐름
- 관계의 명칭은 관계 표현에 있어서 매우 중요한 부분에 해당
- ERD에서는 관계를 연결할 때, 존재와 행위를 구분하지 않고 단일화된 표기법 사용
유무형에 따른 엔티티 분류
- 유형 엔티티: 물리적 형태,안정적이고 지속적으로 활용, 업무로부터 엔티티 구분이 용이
- 개념 엔티티: 물리적인 형태가 없음, 관리해야 할 개념적 정보로 구분
- 사건 엔티티: 업무 수행에 따라 발생, 발생량이 많고 각종 통계 자료에 이용
속성
의미상 더 이상 분리되지 않는 최소의 데이터 단위
하나의 속성에는 한 개의 값만 가짐
속성은 하나의 인스턴스에만 속할 수 있음
속성의 특성에 따른 분류
- 기본 속성: 업무분석을 통해 바로 정의한 속성 (이미 업무상 코드로 정의한 속성이면 기본 속성 아님)
- 설계 속성: 업무상 존재하지 않지만 설계하면서 도출한 속성
- 파생 속성: 다른 속성으로부터 계산이나 변형되어 생성
속성 명칭
- 서술식 속성명을 사용하지 않음
- 유일성 확보
- 해당 업무에서 사용하는 이름을 부여
속성의 쪼갤 수 있는지에 따라 분류
속성은 하나의 값을 갖지만,
그 안에 동일한 성질 여러 값이 나타남 – 다중 값
한 개의 값만 가짐 – 단일 값
도메인
속성이 가질 수 있는 값의 범위, 엔티티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정
관계의 표기법
- 관계명 : 관계의 이름
- 관계 차수 : 1:1, 1:M, M:N
- 관계 선택사양 : 필수관계, 선택관계
- 필수 참여: 참여하는 모든 참여자가 반드시 관계를 가짐
- 선택 참여: 물리속성에서 외부키로 연결되는 경우 NULL을 허용할 수 있는 항목
관계의 분류
- 연관 관계: 실선, 소스코드에서 멤버변수로 선언
- 의존 관계: 점선, 오퍼레이션에서 파라미터로 사용
- ERD에서는 존재적 관계와 행위에 의한 관계를 구분하지 않지만, 클래스 다이어그램에서는 구분함
두 개의 엔티티 사이에서 관계를 도출할 때 체크할 사항
- 엔티티 사이에 연관 규칙이 존재하는 지
- 엔티티 사이에 정보의 조합이 발생되는지
- 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는지
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는지
식별자 분류
- 대표성
- 스스로 생성 여부
- 내부식별자: 스스로 만들어지는 식별자
- 외부식별자: FK
- 속성의 수
- 단일식별자: 하나의 속성으로 구성된 식별자
- 복합식별자: 둘 이상의 속성으로 구성된 식별자
- 대체 여부
- 본질 식별자: 업무에 의해 만들어지는 식별자
- 인조 식별자: 본질 식별자의 합 (주문번호 = 사번+주문일자)
주식별자 특징
- 유일성: 유일하게 구분되어야 함
- 최소성: 유일성을 만족하는 최소의 속성을 사용해야 함
- 불변성: 자주 변하지 않아야 함
- 존재성: Not Null
비식별자 관계를 선택하는 기준
- 상호간 연관성이 약할 경우
- 자식테이블에서 독립적인 PK의 구조를 가지기를 원할 때
- SQL 문 복잡성 증가 방지
- 각 엔티티가 갖던 여러 개별 관계가 통합되는 경우