데이터 모델링이란?
- 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법
- 시스템 구현만이 목적이 아니다.
- 정보시스템 구축의 대상이 되는 업무 내용을 정확하게 분석하는 것이다.
- 현실 세계의 데이터를 약속된 표기법으로 표현하는 과정
- 데이터베이스를 구축하기 위한 분석 및 설계의 과정
- 데이터베이스를 구축하는 것만이 목적이 아니다.
- 데이터 모델링 자체로도 업무를 설명하고 분석한다.
- 분석된 모델로 실제 데이터베이스를 생성하여 개발 및 데이터관리에 사용하기 위한 것이다.
데이터 모델링의 유의점
중복 (Duplication)
- 여러 장소의 데이터베이스에 같은 정보를 저장하지 않도록 하여 중복성을 최소화한다.
비유연성 (Inflexibility)
- 데이터 모델이 수시로 변경되어 유지보수의 어려움을 가중시킬 수 있다.
- 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터나 프로세스의 작은 변화가 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
비일관성 (Inconsistency)
- 데이터 중복이 없더라도 비일관성은 발생할 수 있다.
- 데이터 간의 상호 연관관계를 명확하게 정의하여 일관성 있게 데이터가 유지되도록 한다.
- 프로그램과 테이블의 연계성을 높이는 것은 데이터 모델이 업무 변경에 대해 취약하게 만드는 단점이다.
데이터베이스 스키마 3단계
스키마란 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것이다.
외부스키마 (External Schema)
개념스키마 (Conceptual Schema)
- 통합된 모든 사용자의 관점으로 구성한다.
- DB에 저장되는 데이터와 그들 간의 관계를 표현하는 스키마이다.
내부스키마 (Internal Schema)
ERD 란?
가장 중요한 엔터티는 왼쪽 상단에서 조금 아래쪽 중앙에 배치한다.
- 작성 순서
엔터티 도출 → 배치 → 관계 설정 → 관계명 기술 → 관계의 참여도 기술 → 필수여부 기술
엔터티의 특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야 한다.
- 유일한 식별자에 의해 식별이 가능해야 한다.
- 영속적으로 존재하는 두 개 이상의 인스턴스의 집합이어야 한다.
- 업무 프로세스에 의해 이용되어야 한다.
- 반드시 속성을 가진다.
- 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다. 그러나 통계성, 공통코드 경우는 관계를 생략할 수 있다.
발생 시점에 따른 엔터티
엔터티, 인스턴스, 속성의 관계
- 하나의 엔터티는 두 개 이상의 속성을 갖는다. (또는 두 개 이상의 인스턴스 집합)
- 하나의 인스턴스에서 각각의 속성은 하나의 속성값을 갖는다.
식별자
주식별자 지정시 고려 사항
- 주식별자에 의해 엔터티 내의 모든 인스턴스들이 유일하게 구분되어야 한다.
- 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 한다.
- 지정된 주식별자의 값은 자주 변하지 않는 것이어야 한다.
- 주식별자가 지정이 되면 반드시 값이 들어와야 한다. (NULL 허용 안됨)
식별자의 분류 체계
속성
특성에 따른 분류
- 기본속성
- 설계속성
- 원래 업무상 존재하지는 않지만 설계를 하면서 도출해 내는 속성
- 파생속성
- 다른 속성으로부터 계산이나 변형이 되어 생성되는 속성
- 데이터를 조회할 때 성능을 빠르게 하기 위해 원래 속성의 값을 계산하여 저장할 수 있도록 만든 속성
- 일반속성
- 엔터티 구성방식에 따른 분류속성으로 엔터티에 포함되어 있고 PK, FK 에 포함되지 않은 속성
데이터 모델의 개념
도메인 (Domain)
- 속성이 가질 수 있는 값의 범위
- 속성에 대해서 어떤 유형의 값이 들어가는지를 정의하는 개념
데이터 모델링의 관계
- 존재에 의한 관계와 행위에 의한 관계로 구분될 수 있으나 ERD 에서는 구분하지 않고 단일화된 표기법을 사용한다.
- UML 에는 클래스다이어그램의 관계 중 연관관계와 의존관계가 있고, 실선과 점선의 표기법으로 표현한다.
- 연관관계는 항상 이용하는 관계로 존재적 관계에 해당하고, 의존관계는 행위에 의해 관계가 형성되는 행위적 관계에 해당한다.
- 연관관계는 소스코드에서 멤버변수로 선언하여 사용할 수 있고, 의존관계는 오퍼레이션에서 파라미터 등으로 이용할 수 있다.
- 관계 표기법 : 관계명, 관계차수(1:1, 1:M, M:N), 선택성(선택사양)
엔터티 관계 도출시 확인 사항
- 두 엔터티 사이에 관심 있는 연관규칙이 존재하는가?
- 두 엔터티 사이에 정보의 조합이 발생되는가?
- 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
- 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있는가?
데이터 독립성
- 논리적 독립성
- 물리적 독립성
- 물리 스키마(파일 저장구조 등)가 변경되어도 논리 스키마에 영향을 주지 않는다.
- 개념적 독립성
- 내부적 독립성