데이터 모델링의 유의점
데이터베이스 스키마 3단계
- 외부 스키마
- 사용자 관점
- 개별 사용자나 응용 프로그램이 보는 데이터의 뷰(View)
- 전체 데이터베이스 중 일부만 보여주며 보안과 접근 권한 통제에 활용
- 개념 스키마
- 조직 전체 관점 (논리적 구조)
- 데이터베이스의 전체 구조와 논리적 관계 정의
- 테이블, 속성, 관계, 제약조건 등을 정의
- DBMS가 관리하는 메인 스키마
- ERD 모델
- 내부 스키마
- 물리적 저장 관점
- 데이터가 실제로 어떻게 저장되는지를 기술
- 저장 경로, 인덱스, 압축 방식 등 물리적 구조 포함
- DBMS 내부에서만 사용
발생 시점에 따른 엔터티 분류
엔터티 특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
- 유일한 식별자에 의해 식별이 가능해야 한다.
- 두 개 이상의 인스턴스의 집합이어야 한다.
- 엔터티는 업무 프로세스에 의해 이용되어야 한다.
- 반드시 속성이 있어야 한다.
- 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
엔터티 분류
- 기본 엔터티
- 업무에서 독립적으로 존재할 수 있는 실체
- 외부에 의존하지 않고 스스로 식별 가능
- 가장 기본적인 데이터 저장 대상
- 중심 엔터티
- 기본 엔터티 간의 관계를 연결하는 중심 역할
- 업무의 중심 흐름을 형성하며 여러 엔터티와 연결
- 자체 식별자 (Primary Key) 를 가지고 있음
- 행위 엔터티
- 특정 행위나 이벤트를 기록하는 엔터티
- 대부분 시간 속성과 함께 발생
- 기록성, 이력성, 로그성 데이터
- 관계 엔터티
- n:m 관계를 해결하기 위해 새로 만든 엔터티
- 두 개 이상의 엔터티 간 다대다 관계를 1:n, n:1 로 분해하면서 생김
- 다른 엔터티의 PK를 외래키로 가짐
속성 명칭 부여
- 해당 업무에서 사용하는 이름을 부여 한다.
- 서술식 속성명은 사용하지 않는다.
- 약어 사용은 가급적 제한한다.
- 전체 데이터 모델에서 유일성을 확보하는 것이 좋다.
식별자 관계
- 자식 테이블의 기본키에 부모의 기본키가 포함
- 부모 없이는 자식이 식별될 수 없음
- 강한 결합(존재적 종속)
비식별자 관계
- 부모의 키는 자식 테이블의 외래키(FK)로만 존재
- 자식 테이블의 기본키에 부모 키가 포함되지 않음
- 약한 결합(참조 관계)
식별자 분류
- 주 식별자
- 엔터티의 대표 키
- 해당 엔터티의 각 데이터를 고유하게 구분
- 다른 엔터티에서 참조할 수 있음
- 보조 식별자
- 고유하게 구분은 가능하지만 대표키로 선택되지 않음
- 참조에 사용되지 않음
- 내부 식별자
- 자체적으로 생성되는 식별자
- 외부와 관계없이 생성
- 외부 식별자
- 다른 엔터티와의 관계를 통해 식별되는 키
- 보통 부모의 식별자를 가져옴
- 단일 식별자
- 복합 식별자
- 본질 식별자
- 업무상 실제로 존재하는 값으로 식별
- 현실 세계의 키를 반영
- 인조 식별자
속성 분류
- 기본 속성
- 현실 세계에서 실제 존재하는 값을 저장하는 속성
- 시스템에서 직접 입력 또는 저장되는 데이터
- 설계 속성
- 업무적으로 필요해서 설계자가 인위적으로 만든 속성
- 현실엔 없지만 시스템 운영을 위해 필요
- 주로 식별자(PK), 코드형 속성 등등
- 파생 속성
- 다른 속성에서 계산된 결과값
- 저장하지 않고 필요할 때 계싼하거나 저장할 수 있음