권순용의 데이터모델링 이야기
속성의 개념을 확인하자 0 0 1,966

by axiom 속성 Attribute [2015.08.07]


데이터 모델의 주요 요소 가운데 엔티티에 대해 언급했는데, 속성(Attribute) 역시 데이터 모델의 중요한 요소 중 하나다. 이와 같은 속성은 해당 엔티티의 성격을 좌우하는 역할을 한다.

사람으로 말하면 DNA와 같은 셈이다. 속성은 프로젝트 중에도 변할 수 있고 운영 중에도 변할 수 있다. 이는 사람이 태어나서 계속 변하는 것과 같지 않을까 생각한다.

이 글에서는 데이터 모델링에서 속성에 대해 살펴본다. 속성에 대한 정확한 개념을 확립하는 것은 데이터 모델링에서 매우 중요하다. 속성을 이해한다면 속성을 통해 엔티티 구현을 효과적으로 할 수 있게 된다.

속성의 개념

데이터 모델링 과정에서 속성을 잘못 설정하게 되면 세 가지 문제가 발생할 수 있다.

  • [그림 1]
  • 속성의 개념을 확인하자

해당 속성으로 SQL을 작성할 경우 복잡해짐

속성을 잘못 선정한 후 해당 속성을 조회하는 경우에는 해당 속성을 분리하거나 여러 속성을 합하는 과정을 수행해야 의미 있는 데이터가 되므로 SQL이 복잡해질 수 있다.

해당 속성으로 SQL을 작성할 경우 성능 저하 우려

Where 절에 잘못 선정된 속성을 이용한다면 이 또한 속성을 분리하거나 여러 속성을 합하는 과정을 수행해야 한다.

만약 해당 속성이 인덱스를 구성하는 속성이라면 인덱스 컬럼이 변경되면 인덱스를 이용하지 못한다는 원리에 의해 해당 SQL은 인덱스를 이용하지 못하고 테이블을 FULL SCAN으로 수행하게 될 것이다. 이와 같이 의도하지 않은 테이블의 FULL SCAN은 성능을 저하시킬 수 있다.

함수 사용의 과다로 인한 CPU 사용률 증가

함수의 과다 사용으로 CPU 사용률이 증가할 수 있다. 하지만 [그림 1]의 SUBSTR 함수 등 데이터베이스에서 제공하는 함수는 일반적으로 많은 CPU를 사용하지 않는다.

데이터 정합성의 문제

속성을 도출하면서 잘못된 속성은 데이터를 왜곡시킬 수 있게 된다. 데이터의 왜곡은 전반적인 데이터 모델의 왜곡으로 전이될 수 있다.

위와 같이 속성을 잘못 도출함으로써 발생하는 문제는 여러 가지가 존재한다. [그림 2] 참고

  • [그림 2]
  • 속성의 개념을 확인하자

속성의 이름은 앞서 언급한 것과 같이 업무를 잘 표현할 수 있는 명사를 사용해야 한다. 약어의 경우 일반적으로 자주 사용하는 약어라면 상관이 없지만 임의로 만든 약어라면 다른 사람이 봤을 때 이해하지 못할 수도 있기 때문에 잘못된 애플리케이션을 작성할 수도 있다.

이와 같이 속성의 이름을 선정하기 위한 기준을 가지고 있어야 하며 데이터 모델링 시 속성의 개수는 많기 때문에 많은 시간이 소요될 수 있다.

속성의 도출

속성은 업무 관련된 모든 것으로부터 도출할 수 있다. 그렇기 때문에 항상 메모를 하는 것이 중요하며 이와 같이 정리한 자료를 중심으로 속성을 도출해야 한다.

  • [그림 3]
  • 속성의 개념을 확인하자

업무자료를 통해 속성 도출

업무자료에서는 속성에 대한 도출뿐만 아니라 엔티티 및 관계에 관련된 사항도 도출이 가능하다. 그렇기 때문에 이와 같은 분류를 정확히 해서 속성을 도출해야 한다.

엔티티 도출 과정에서 속성 도출

엔티티 도출 과정에서 속성을 도출할 수 있다. 엔티티 도출 과정에서 속성에 해당하는 명사를 제거하는 단계가 존재한다. 이 단계에서 속성을 도출할 수 있을 것이다.

프로세스 모델링을 통한 속성 도출

프로세스 모델링 시 엔티티에 필요한 속성의 일부가 표현되며 이를 통해 속성을 도출할 수 있다.

시스템 구축 단계에서 도출

시스템의 서비스를 개시하는 그 순간까지 속성은 도출될 수 있으며 이와 같은 단계에서의 속성 도출은 기존 엔티티와 속성을 검토하고 데이터 정합성 및 애플리케이션을 고려해 속성을 추가 도출해야 한다.

속성의 검증

모든 속성에 대해 속성의 검증을 수행하기는 어렵다. 하나의 엔티티는 여러 개의 속성으로 구성되며 데이터 모델링 시에는 많은 개수의 엔티티가 도출되기 때문이다. 그렇다고 할지라도 해당 엔티티의 중요 속성에 대해 속성을 검증하는 단계는 반드시 필요하다.

  • [그림 4]
  • 속성의 개념을 확인하자

참고링크

- 강좌 URL : http://www.gurubee.net/lecture/2857

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입