데이터 모델링을 할 때 유의할 사항
- 중복(Duplication)
- 데이터 모델은 같은 데이터를 사용하는 사람, 시간, 그리고 장소를 파악하는데 도움을 줌으로써 데이터베이스가 여러 장소에 같은 정보를 저장하는 잘못을 하지 않도록 한다.
- 비유연성(Inflexibility)
- 데이터 모델을 어떻게 설계했느냐에 따라 사소한 업무 변화에도 데이터 모델이 수시로 변경됨으로써 유지보수의 어려움을 가중시킬 수 있다. 데이터의 정의를 데이터의 사용 프로세스와 분리함으로써 데이터 모델링은 데이터 혹은 프로세스의 작은 변화가 애플리케이션과 데이터베이스에 중대한 변화를 일으킬 수 있는 가능성을 줄인다.
- 비일관성(Inconsistency)
- 데이터의 중복이 없더라도 비일관성은 발생할 수 있는데, 예를 들면 신용 상태에 대한 갱신 없이 고객의 납부 이력 정보를 갱신하는 경우이다. 개발자가 서로 연관된 다른 데이터와 모순된다는 고려 없이 일련의 데이터를 수정할 수 있기 때문에 이와 같은 문제가 발생할 수 있다. 데이터 모델링을 할 때 데이터와 데이터 간의 상호 연관 관계에 대해 명확하게 정의한다면 이러한 위험을 사전에 예방하는데 도움을 줄 수 있다. 사용자가 처리하는 프로세스 혹은 이와 관련된 프로그램과 테이블의 연계성을 높이는 것은 데이터 모델이 업무 변경에 대해 취약하게 만드는 단점에 해당한다.
개념 스키마
- ANSI-SPARC에서 정의한 3단계 구조(three-level architecture) 중 하나
- 모든 사용자 관점을 통합한 조직 전체 관점의 통합적 표현
- 모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술한 것으로 DB에 저장되는 데이터와 그들 간의 관계를 표현하는 스키마
- 데이터 모델링 → 개념 스키마를 만들어가는 과정으로 이해 가능
엔터티의 특징
- 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 한다.
- 유일한 식별자에 의해 식별이 가능해야 한다.
- 영속적으로 존재하는 (두 개 이상의) 인스턴스의 집합이어야 한다.
- 엔터티는 업무 프로세스에 의해 이용되어야 한다.
- 엔터티는 반드시 속성이 있어야 한다.
- 엔터티는 다른 엔터티와 최소 한 개 이상의 관계가 있어야 한다.
도메인
- 각 엔터티(테이블)의 속성에 대해서 어떤 유형의 값이 들어가는지를 정의하는 개념
- 엔터티 내에서 속성에 대한 데이터 타입과 크기, 제약사항을 지정하는 것
데이터 모델링의 관계
- 데이터 모델링에서 존재적 관계와 행위에 의한 관계를 구분하는 표기법은 없다.
- UML에서는 연관 관계와 의존관계에 대해 다른 표기법을 가지고 표기한다.
식별자의 종류
- 주식별자(Primary Identifier)와 보조식별자(Alternate Identifier)
- 엔터티 내에서 대표성을 가지는가
- 내부 식별자와 외부 식별자(Foreign Identifier)
- 엔터티 내에서 스스로 생성되었는가
- 단일 식별자(Single Identifier)와 복합 식별자(Composit Identifier)
- 단일 속성으로 식별이 되는가
- 본질 식별자와 인조 식별자
- 원래 업무적으로 의미가 있던 식별자 속성을 대체하여 (일련번호와 같이) 새롭게 만든 식별자인가
비식별자 관계로 연결하는 것을 고려해야 하는 경우
- 엔터티 별로 데이터의 생명주기 (LIFE CYCLE)를 다르게 관리할 경우
- 예를 들어, 부모 엔터티의 인스턴스가 자식의 엔터티와 관계를 가지고 있지만 자식만 남겨두고 먼저 소멸될 수 있는 경우
- 부모 엔터티에 참조값이 없어도 자식 엔터티의 인스턴스가 생성될 수 있는 경우
- 여러 개의 엔터티를 하나로 통합하면서 각각의 엔터티가 갖고 있던 여러 개의 개별 관계가 통합되는 경우
- 자식 쪽 엔터티의 주식별자를 부모 엔터티와는 별도로 생성하는 것이 더 유리하다고 판단하는 경우
'자격증 > sqld' 카테고리의 다른 글
2장,데이터 모델과 성능 (0) | 2022.05.13 |
---|