DA 가이드

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

논리 데이터 모델 품질 검토

데이터 모델링
논리 데이터 모델링
논리 데이터 모델 품질 검토
작성자
admin
작성일
2021-02-10 14:52
조회
3838

논리 데이터 모델 품질 검토 개요

데이터 모델 설계가 완료되면 모델러를 비롯한 이해관계자는 데이터 모델 리뷰 세션을 통해 작성된 데이터 모델의 품질을 검토한다. 데이터 모델 검토는 개념 데이터 모델링, 논리 데이터 모델링, 물리 데이터 모델링의 각 단계가 수행된 후 각 단계에서 작성된 개념 데이터 모델, 논리 데이터 모델, 물리 데이터 모델에 대해 이루어진다. 일반적으로 논리 데이터 모델과 물리 데이터 모델은 모든 이해 관계자들이 가장 관심을 갖고 검토하는 산출물로, 데이터 모델의 중요성을 생각하면 이 검토 과정이야말로 향후의 모든 공정에 대해 영향을 미칠 수 있는 매우 의미 있는 작업이라 할 수 있다. 데이터 모델을 검토하기 위해서는 모든 이해관계자가 동의하는 검토 기준이 필요하며, 통상 논리·물리 데이터 모델에 대한 검토 기준은 과목Ⅰ. 전사아키텍처 이해 부분에서 설명한 데이터아키텍처 정책 수립 시 DA원칙/표준에 포함되어야할 중요한 사안이다.

데이터 모델의 품질 검토 기준은 주로 논리 데이터 모델과 물리 데이터 모델에 대해 적용하며, 조직에 따라서는 개념 데이터 모델에 대한 검토 기준을 추가하기도 한다. 기본적인 품질 검토 기준은 과목VI. 데이터 품질 관리 이해 부분에서 설명한 데이터 구조의 관리 기준을 준용할 수 있으며, 논리 데이터 모델에 대한 품질 기준을 좀 더 세분화해 보면 [표 4-3-1]과 같이 정의해 볼 수 있다. 논리 데이터 모델 품질 검토의 목적은‘완벽한 모델’보다‘(조직에) 적합한 모델’의 관점에서 생각해 볼 수 있으며, 이에 따라 논리 데이터 모델의 품질 기준도 조직에 따라 혹은 업무 상황이나 여건에 따라 가감하거나 변형하여 사용하기도 한다.

[표 4-3-1] 논리 데이터 모델의 품질 기준


기준 항목 설 명 검토 관점 사례
정확성 데이터 모델이 표기법에 따라 정확하게 표현되었고, 업무영역 또는 요구사항이 정확하게 반영되었음을 의미함 - 사용된 표기법에 따라 데이터 모델이 정확하게 표현 되었는가
- 대상 업무영역의 업무 개념과 내용이 정확하게 표현 되었는가
- 요구사항의 내용이 정확하게 반영 되었는가
- 업무규칙이 정확하게 표현 되었는가
완전성 데이터 모델의 구성 요소를 정의하는데 있어서 누락을 최소화하고, 요구사항 및 업무영역 반영에 있어서 누락이 없음을 의미함 - 모델 표현의 충실성(완성도)
- 필요한 항목(엔터티/속성 설명 등)들의 작성 상태
- 논리 데이터 모델링 단계에서 결정해야할 항목들의 작성 상태(속성의 선택성(optionality), 식별자, 정규화, 엔터티/속성의 중복배제, 이력관리 등)
- 요구사항 반영 및 업무 영역 반영의 완전성: 목적하는 업무 영역을 기술(설계)하는데 있어서 논리 데이터 모델 구성요소(엔터티, 속성, 관계 등)들이 누락없이 정의 된 정도
준거성 제반 준수 요건들이 누락 없이 정확하게 준수되었음을 의미함 - 데이터 표준, 표준화 규칙 등을 준수하였는가
- 법적 요건을 준수 하였는가
최신성 데이터 모델이 현행 시스템의 최신 상태를 반영하고 있고, 이슈사항들이 지체없이 반영되고 있음을 의미 - 업무상의 변경이나 결정사항 등이 시의 적절하게 반영되고 있는가
- 최근의 이슈사항이 반영 되었는가
- 현행 데이터 모델은 현행 시스템과 일치 하는가
일관성 여러 영역에서 공통 사용되는 데이터 요소가 전사 수준에서 한 번만 정의되고 이를 여러 다른 영역에서 참조·활용되면서, 모델 표현상의 일관성을 유지하고 있음을 의미함 - 여러 주제영역에서 공통적으로 사용되는 엔터티는 일관성 있게 사용되는가(전사 수준에서 한 번만 정의되고 이를 여러 다른 영역에서 참조·활용한다는 의미에서 통합성이라 하기도 함)
- 모델 표현상의 일관성을 유지하고 있는가
활용성 작성된 모델과 그 설명 내용이 이해관계자에게 의미를 충분하게 전달할 수 있으면서, 업무 변화 시에 설계 변경이 최소화되도록 유연하게 설계되어 있음을 의미 - 작성된 설명 내용이나 모델 표기 등이 사용자나 모델을 보는 사람에게 충분히 이해가 될 수 있고, 모델의 작성 의도를 명확하게 이해할 수 있는가(의사소통의 충분성)
- 데이터 모델은 유연성을 갖고 있는가(오류가 적고 업무변화에 유연하게 대응하여 데이터 구조의 변경이 최소화 될 수 있는 설계 결과)

논리 데이터 모델 품질 검토 체크리스트의 활용

논리 데이터 모델의 품질 검토 기준에 따라서 논리 데이터 모델에 정의된 엔터티, 관계, 속성 등 데이터 모델의 주요 구성요소와 논리 데이터 모델 전반에 대한 체크리스트를 구성할 수 있으며, 이를 통해 논리 데이터 모델의 품질 검토를 보다 용이하게 수행할 수 있다. [표 4-3-2]는 논리 데이터 모델의 주요 구성 요소별로 품질 검토 기준 항목을 적용하여 작성한 품질 검토 체크리스트의 사례이다.

[표 4-3-2] 논리 데이터 모델 품질 검토 체크리스트 사례


검토대상 검토항목 검토 내용
엔터티 엔터티명 - 사용된 표기법에 따라 데이터 모델이 정확하게 표현 되었는가
- 대상 업무영역의 업무 개념과 내용이 정확하확하게 반영 되었는가
- 업무규칙이 정확하게 표현 되었는가
- 데이터 집합의 개요나 성격, 관리 목적 등을 설명하였는가?
- 데이터 집합 구성상의 특징이 설명되어 있는가?
- 데이터 집합의 생명주기나 오너쉽 등을 비롯한 기타 특이사항에 대한 내용을 포함하고 있는가?
- 설명된 내용은 모든 이해관계자가 이해하고 의사소통 하는 데에 어려움이 없도록 쉽고 상세하게 기술되었는가?
엔터티 정의 - 도출된 엔터티는 요구사항을 충족하거나 업무 영역을 설명하기에 충분한가?
- 우선순위에 따른 엔터티 분류 관점에서 중요한 키엔터티나 메인엔터티가 누락되지 않았는가?
- 엔터티는 서브타입을 사용하여 구체적·입체적으로 정의되었는가?
- 서브타입 정의 시 구분자 속성은 명확하게 정의하였는가?
- 서브타입 구성은 엔터티의 성격을 설명하기에 충분한가?
- 서브타입은 충분하게 도출되었는가? (전체집합=Σ서브타입)
- 향후의 업무 변화 가능성에 대비하여 모델 변경을 최소화할 수 있도록 유연성, 확장성이 고려되었는가?
통합 수준 - 업무 행위의 주체가 될 수 있는 전사관계자와 같은 중요 기준데이터는 통합이 고려되었는가?
- 엔터티간 동질성을 부여할 수 있는 유사 목적·구성의 엔터티에 대해 통합이 고려되었는가? (서브타입 사용)
- 코드 엔터티는 통합이 고려되었는가?
- 계층구조 엔터티에 대한 통합은 고려되었는가?
- 배타관계 엔터티의 통합은 고려되었는가?
- 다른 영역에서 동일 목적의 엔터티는 동일 명칭과 구조로 일관되게 사용되었는가?
- 엔터티 분리는 명확하고 합리적인 근거와 목적에 의해 적절한 형태로 이루어졌는가?
권한 - 메타데이터 권한을 정의 하였는가? (엔터티 생성/변경/삭제)
- 데이터 오너쉽을 정의 하였는가? (데이터 생성/변경/삭제)
발생 건수/
빈도
- 현재의 데이터 저장 건수/빈도는 파악하였는가?
- 향후 예상되는 데이터 저장 건수/빈도의 변화가능성은 파악하였는가?
다른 엔터티와의
관계
- 다른 엔터티와 하나 이상의 관계를 가지고 있는가?
법규 준수 - 관련 법규에서 요구하는 데이터를 보관하기 위한 엔터티를 정의하였는가?
- 조직 특성에 비추어 보호가 요구되는 엔터티를 식별하였는가?
요구사항
추적가능성
- 정의된 엔터티는 요구사항과 매핑이 되었는가?
속성 속성명 - 속성명은 명명규칙을 준수하였는가?
- 제한요건에 따라 약어를 사용한 경우 약어사용 규칙을 준수하였는가?
- 의미 전달이 명확한 명칭을 사용하였는가?
속성 정의 - 엔터티명이나 엔터티 성격에 맞는 속성이 도출되었는가?
- 엔터티의 성격이나 목적에 비추어 속성은 충분하게 도출되었는가?
- 속성의 선택성 결정은 적절한가?
- 유일값 원칙에 위배되는 속성이 존재하는가?
- 속성의 원자단위 구성은 적절한가?
- 속성의 관리 목적상 상세화 여부 검토가 수행되었는가?
- 인조 속성의 생성 단위나 생성 규칙이 정의되었는가?
속성 설명 - 속성의 개요나 성격, 관리 목적 등을 설명하였는가?
- 속성으로 관리하고자 하는 데이터의 형태적 혹은 구성상의 특징이 포함되어 있는가?
- 데이터 집합으로서 속성의 생명주기나 오너쉽 등을 비롯한 기타 특이사항에 대한 내용을 포함하고 있는가?
- 설명된 내용은 모든 이해관계자가 이해하고 의사소통 하는 데에 어려움이 없도록 쉽고 상세하게 기술되었는가?
속성 유형 - 엔터티 성격에 맞게 식별자가 정의되었는가?
- 관계를 통해 상속받은 관계속성은 명확한 역할명을 사용하고 있는가?
식별자 정의 - 모든 본질식별자가 적절하게 파악되었는가?
- 인조식별자 사용 시 대응하는 속성 구성이 파악되었는가?
- 실질식별자로서 본질식별자나 인조식별자를 사용하는 기준을 준수하고 있는가?
법규 준수 - 법규상 암호화 대상인 속성은 식별하였는가?
- 법규상 필요한 속성은 정의되었는가?
- 법규상 수집·보관에 따른 제약이 존재하는 속성은 처리 방안을 고려하고 적용하였는가?
도메인 정의 - 표준 도메인을 정의하여 적용하였는가?
- 속성의 도메인은 일관성 있게 정의되었는가?
추출
속성의 정의
- 추출 속성은 명확하고 합리적인 이유를 토대로 정의하였는가?
- 추출 속성의 원시 속성은 식별하였는가?
- 추출 속성은 추출 방법 또는 산식이 명확하게 정의되었는가?
- 추출 속성의 빈도(구성 수준)는 적절한가?
요구사항 추적가능성 - 속성 수준에서 필요한 요구사항 매핑은 수행되었는가?
오너쉽 정의 - 속성 수준에서 데이터 오너쉽 정의가 필요한 경우 데이터 오너쉽이 정의 되었는가?
관계 관계명 - 관계명이 누락된 관계가 존재하는가?
- 관계명 부여 규칙 존재 시 이를 준수하였는가?
- 두 엔터티 간의 업무적 관계를 자식(자식 엔터티)이 바라보는 부모(부모 엔터티)의 역할 관점으로 파악하여 관계명을 표현하였는가?
관계 정의 - 업무 영역을 설명하거나 요구사항을 충족하는데 있어서 필요한 관계들이 충분히 도출·정의되었는가?
- 관계 정의는 업무 영역의 내용이나 요구사항과 일치하는가?
- 배타적 관계가 정의된 경우 업무 내용과 일치하는가?
- 배타적 관계가 정의된 경우 현재의 업무 개선 관점이 고려되었는가?
- 배타 관계 해소를 위한 검토가 수행되었는가?
관계 설명 - 관계가 왜 존재해야 하는지의 관점에서 기술하고 있는가?(업무규칙, 정규화 등)
관계 표현 - 표기법에 따라 정확하게 표현하였는가?
- 관계에 표현된 기수성·선택성은 업무규칙을 정확하게 설명하는가?
식별자 상속 - 자식에 상속된 관계 속성은 정확한 역할명으로 표현되었는가?
- 모든 관계 속성들의 출처(또는 관계)가 명확하게 파악되었는가?
요구사항
추적가능성
- 관계에 대해 필요한 요구사항 매핑은 수행되었는가?
외부키
(외래키)*
- 외부키(외래키)가 부모 엔터티의 주식별자(실질식별자)와 일치하는가?
- 외부키 항목이 기본키와 기본키가 아닌 속성에 펼쳐져 있는가?
- 자식에 상속된 관계 속성의 선택성은 적절한가?
참조무결성** - 업무규칙에 근거하여 참조무결성을 정의하였는가?
모델
전반
주제영역
적절성
- 주제영역의 구성은 적절한가?
논리 모델
상세화
- 데이터 모델상에 정규화가 미흡한 부분이 존재하는가?
- 최종적인 논리 데이터 모델에서 다대다 관계는 모두 해소 하였는가?
이력 관리 - 이력관리 대상 선정과 이력관리 방법은 적절한가?
※ *, ** 표기한 부분은 방법론이나 모델링 도구에 따라 물리 데이터 모델의 검토 항목으로 보기도 함.