1. 성능 데이터 모델링의 정의

성능 데이터 모델링

데이터베이스 성능향상을 목적으로 설계단계의 데이터 모델링 때 부터 정규화, 반정규화, 테이블통합, 테이블분할, 조인구조, PK, FK등 여러가지 성능과 관련된 사항이 데이터 모델링에 반영될 수 있도록 하는 것이다.

2. 성능 데이터 모델링 수행시점

성능 데이터 모델링은 언제하면 좋은가?

  • 사전에 할 수록 비용이 들지 않는다.
  • 분석/설계단계에서 성능을 고려한 데이터 모델링을 수행하면, 나중에 성능저하때문에 발생하는 재업무(Rework)비용을 최소화할 수 있다.

비즈니스 처리에 핵심적인 트랜잭션이 있다면, 프로젝트 초기에 운영환경에 대비한 테스트환경을 구축하고 트랜잭션을 발생시켜 실제 성능테스트를 해보아야 한다.
데이터 모델의 구조도 변경하면서, 가장 적절한 구조인지를 검토하여 디자인하는 전략이 요구된다.

3. 성능 데이터 모델링 고려사항

일반적으로 성능 데이터 모델은 다음과 같은 프로세스로 진행하는 것이 데이터 모델링 단계에서 성능을 충분히 고려할 수 있는 방안이 된다.

1) 데이터 모델링을 할 때 정규화를 정확하게 수행한다.
2) 데이터베이스 용량산정을 수행한다.
3) 데이터베이스에 발생되는 트랜잭션의 유형을 파악한다.
4) 용량과 트랜잭션 유형에 따라 반정규화를 수행한다.
5) 이력모델의 조정, PK/FK조정, 슈퍼타입/서브타입 조정 등을 수행한다.
6) 성능관점에서 데이터 모델을 검증한다.

=> 데이터모델을 검토할 때는 일반적인 데이터 모델규칙만 검증하지 말고, 충분하게 성능이 고려되었는지도 체크리스트에 포함하여 검증하도록 한다.

문서정보




제5절 식별자

1. 식별자의 개념

  • Entity 내에서 Instance 들을 구분할 수 있는 구분자

2. 식별자의 특징

특징내용비고
유일성주식별자에 의해 Enriry 내 모든 Instance 들을 유일하게 구분함예) 사원번호가 주식별자가 모든 직원들에 대해 개인별로 고유번호 부여됨
최소성주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함예) 사원번호만으로도 고유한 구조
사원분류코드+사원번허는 부적절함
불변성주식별자가 한번 특정 Entity 에지정되면 그값은 변하지 말아야 함예) 사원번호의 값이 변한다는 의미는 이기록이 말소되고 새로운 기록이 발생되는 개념임
존재성주식별자가 지정되면 반드시 데이터값이 존재(Null 안됨)사원번호 없는 회사직원은 있을 수 없음.

3. 식별자 분류 및 표기법

가. 식별자 분류

분류식별자설명
대표성여부주식별자엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조관계를 연결할 수 있는 식별자
 보조식별자엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조관계 연결을 못함
스스로생성여부내부식별자엔터티 내부에서 스스로 만들어 지는 식별자
 외부식별자타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자
속성의 수단일식별자하나의 속성으로 구성된 식별자
 복합식별자둘 이상의 속성으로 구성된 식별자
대체성여부본질식별자업무에 의해 만들어 지는 식별자
 인조식별자업무적으로 만들어지지는 않지만 원조식별자가 복잡하 구성을 가지고 있기 때문에인위적으로 만드는 식별자

나. 식별자 표기법

4. 주식별자 도출 기준

  • 해당 업무에서 자주 이용되는 속성을 주식별자로 지정하도록 함
  • 명칭, 내역 등과 같이 이름으로 기술되는 것은 피함
  • 속성의 수가 많아지지 않도록 함

5. 식별자관계와 비식별자관계에 따른 식별자

가. 식별자관계와 비식별자관계의 결정

  • 부모 자식간의 관계에 의해 외부식별자가 생성된다.
  • 이때 부모로부터 받은 외부식별자를
    자신의 주식별자로 이용할 것인지? --> 식별자관계 
    부모와 연결이 되는 속성으로만 이용할 것인지? --> 비식별자관계
    결정해야 한다.

나. 식별자관계

다. 비식별자관계

라. 식별자관계로만 설정할 경우 문제점

마. 비식별자관계로만 설정할 경우 문제점

바. 식별자관계와 비식별자관계 모델링

1) 비식별관계 선택 프로세스

2) 식별자와 비식별자관계 비교

항목식별자관계비식별자관계
목적강한 연결관계 표현약한 연결관계 표현
자식 주식별자 영향자식 주식별자의 구성에 포함자식 일반속성에 포함
표기법실선 표현점선 표현
연결 고려사항- 반드시 부모엔터티 종속
- 자식 주식별자 구성에 부모 주식별자 포함 필요
- 상속받은 주식별자속성을 타 엔터티에 이전 필요
- 약한 종속관계
- 자식 주식별자 구성을 독립적으로 구성
- 자식 주식별자 구성에 부모 주식별자 부분 필요
- 상속받은 주식별자속성을 타 엔터티에 차단 필요
- 부모쪽의 관계참여가 선택관계

3) 식별자와 비식별자를 적용한 데이터 모델

문서정보




제4절 관계(Relationship)

1. 관계의 개념

가. 관계의 정의

  • 인스턴스 사이의 논리적 연관성으로서 존재 또는 행위로서 서로에게 연관성이 부여된 상태

나. 관계의 페어링(Relationship Paring)

  • Relationship 은 Entity 안의 Instance 가 개별적으로 관계를 가지는 것(Paring)이고 이것의 집합을 관계로 표현한다는 것이다.
    따라서 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 Entity 사이에 2개 이상의 관계가 형성 될 수 있다.

2. 관계의 분류

3. 관계의 표기법

가. 관계명(Membership) : 관계의 이름


나. 관계차수(Degree / Cardinality) : 1:1, 1:M, M:N

다. 관계선택사양(Optionality) : 필수관계, 선택관계

4. 관계의 정의 및 읽는 방법

가. 관계 체크사항

  • 두개의 Entity 사이에 관심있는 연관규칙이 존재하는가?
  • 두개의 Entity 사이에 정보조합이 발생되는가?
  • 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?
  • 업무기술서, 장표에 관계연결을 가능하게 하는 동사(Verb)가 있는가?

나. 관계 읽기

문서정보




제3절 속성(Attribute)

1. 속성(Attribute)의 개념

  • 속성(Attribute) 의 사전적 의미
    • 사물의 성질, 특징, 또는 본질적인 성질, 그것이 없다면 실체를 생각할 수 없는 것
    • 본질적 송석이란 어떤 사물 또는 개념에 없어서는 안될 징표의 전부이다.
    • 징표는 사물이나 개념이 어떤것인지를 나타내고 그것을 다른 것과 구별하는 성질
  • 데이터 모델링 관점에서 속성(Attribute) 의 정의
    • 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더이상 분리되지 않는 최소의 데이터 단위
    • 엄무상 관리하기 위한 최소의 의미 단위
    • 속성은 엔터티를 성명하고
    • 속성은 인스턴스의 구성요소
  • 예시
    • 생년월일은 그 자체로 의미가 있으므로 속성이라 할 수 있다.
      생년, 생월, 생일 로 분리가 가능하지만 이는 하나의 속성을 관리목적으로 분리한 것일 뿐 각각을 속성이라 할수는 없다.
    • 이름과 주소는 각각 의미있는 속성이지만 '이름주소'로 묶는다면?
      하나의 속성이 두가지 의미를 가지므로 기본 속성이라 할 수 없다.
      차라리 '이름주소'가 아닌 '인적사항'정도로 관리한다면 속성으로 볼수도 있다.

2. 엔터티, 인스턴스와 속성, 속성값에 대한 내용과 표기법

가. 엔터티, 인스턴스, 속성, 속성값의 관계

나. 속성의 표기법

3. 속성의 특징

  • Entity 와 마찬가지로 해당 업무에서 필요하고 관리하고자 하는 정보
  • 정규화 이론에 근간하여 정해진 주식별자에 함수적 종속성을 가져야 한다.
  • 하나의 속성은 하나의 값만 가진다.
    하나의 속성에 여러개의 값이 있는 경우, 별도의 Entity 를 이용하여 분리한다.

4. 속성의 분류

가. 속성의 특성에 따른 분류

  • 1) 기본속성 : 업무로부터 추출한 모든 속성
  • 2) 설계속성 : 코드성 데이터, Entity 식별용 일련번호
  • 3) 파생속성 : 다른 속성에 영향을 받아 발생하는 속성, 계산된 값, 합계, 재고, 잔액
    • 파생속성은 그속성이 가지고 있는 계산방법에 대해 반드시 어떤 엔터티에 어떤 속성에 의 해 영향을 받는지 정의가 되어야 한다.
    • 타 속성에 의해 지속적으로 영향을 받아 자신의 값이 변하는 성질을 가지고 있는 속성
    • 파생속성은 꼭 필요한 경우에만 정의하여 업무로직이 속성내부로 스며들지 못하도록 주의해야 한다.
    • 파생속성을 정의한 경우라면 그 값의 정합성을 유지할 수 있도록 해야 한다.
    • 통계관련 엔터티, 배치작업 수행 관련

나. 엔터티 구성방식에 따른 분류

5. 도메인(Domain)

  • 속성이 가질 수 있는 값의 범위
AttributeDomain
학점0.0~4.0 실수
주소20자리 문자열

6. 속성의 명명(Naming)

  • 용어사전 : 속성 이름을 정확하게 부여하고, 용어의 혼란을 없애기 위함
  • 도메인정의 : 각 속성이 가지는 값의 범위를 명확하게 하기 위해
  • 속성명 부여 원칙
    • 1. 해당 업무에서 사용하는 이름을 부여한다.
    • 2. 서술식 속성명은 사용하지 않는다.
    • 3 약어사용은 가급적 제한한다.
    • 4. 전체 데이터 모델에서 유일성 확보하는 것이 좋다.

문서정보


+ Recent posts