데이터 모델링
논리적 데이터 모델링은 정확하고 일관적인 형식으로 포괄적인 비즈니스 정보 요구사항을 서술하는 프로세스입니다.
회사의 요구를 만족시키는 성공적인 데이터베이스를 설계 및 구현하려면 논리적 데이터 모델이 필요합니다. 데이터 모델링을 수행하는 분석가가 해당 데이터 항목에 영향을 미치는 데이터 항목과 비즈니스 규칙을 정의합니다. 데이터 모델링 프로세스는 비즈니스 데이터가 조직이 이해하고 주의해서 관리해야 할 중요한 자산임을 인지합니다.
제조 회사가 데이터 모델에서 표시해야 하는 다음의 비즈니스 요소를 고려하십시오.
- 고객이 제품을 구매합니다.
- 제품은 부품으로 이루어집니다.
- 제조업체에서 부품을 제조합니다.
- 웨어하우스에서 부품을 보관합니다.
- 운송 수단이 부품을 제조업체로부터 웨어하우스로, 그런 다음 제조업체로 이송합니다.
이들은 모두 제조 회사의 논리적인 데이터 모델이 포함해야 하는 비즈니스 요소입니다. 회사 내부와 외부의 많은 사람들이 이러한 요소에 기초한 정보에 의존합니다. 많은 보고서가 이러한 요소에 관한 데이터를 수록하고 있습니다.
제조 회사 뿐 아니라 모든 비즈니스는 데이터 모델링 태스크로부터 이익을 얻을 수 있습니다. 의사 결정자, 고객, 제공업체 등에 정보를 제공하는 데이터베이스 시스템은 올바른 데이터 모델을 근거로 할 때 보다 성공적입니다.
데이터 모델링 과정의 개요
데이터 모델을 빌드하는 방법이 궁금할 것입니다. 데이터 분석가는 다양한 방법으로 데이터 모델링 태스크를 수행합니다 (이 프로세스에서는 데이터 분석가가 단계를 수행중이지만, 일부 회사는 이러한 태스크를 조직의 다른 사람에게 위임할 수도 있다고 가정합니다). 많은 데이터 분석가들이 다음 단계를 수행합니다.
- 중요한 사용자 뷰 빌드.
분석가는 단일 비즈니스 활동 또는 기능을 주의깊게 조사하여 논리적인 데이터 모델의 빌드를 시작합니다. 이들은 비즈니스 활동이 요구하는 중요한 정보의 모델이거나 표시인 사용자 뷰를 개발합니다. (후속 단계에서, 분석가는 각 개별 사용자 뷰를 다른 모든 사용자 뷰와 함께 통합된 논리적 데이터 모델로 결합합니다). 데이터 모델링 프로세스의 이러한 초기 단계는 주로 대화식입니다. 데이터 분석가는 모델링하고 있는 모든 영역의 비즈니스를 완전히 이해할 수 없기 때문에 실제 사용자와 밀접하게 작업합니다. 분석가와 사용자는 협동하여 주요 엔티티(관련된 중요한 오브젝트)를 정의하며 이들 엔티티간의 일반적인 관계를 판별합니다.
- 사용자 보기에 주요 비즈니스 규칙을 추가합니다.
다음으로, 분석가는 키 세부 정보 항목과 가장 중요한 비즈니스 규칙을 추가합니다. 키 비즈니스 규칙은 데이터의 삽입, 갱신 및 삭제 조작에 영향을 미칩니다.
예를 들어, 비즈니스 규칙에 따라 각 고객 실체는 하나 이상의 고유 식별자를 가져야 할 수 있습니다. 다른 고객 식별자와 일치하는 고객 식별자를 삽입하거나 갱신하기 위한 모든 시도는 유효하지 않습니다. 데이터 모델에서 고유 식별자를 기본 키라고 합니다. - 사용자 뷰에 세부사항 추가 및 유효성 검증.
분석가는 사용자와 협동하여 키 엔티티와 관계를 정의한 다음, 비교적 덜 중요한 그밖의 설명식 세부사항을 추가합니다. 또한 속성이라고 하는 설명식 세부사항을 엔티티와 연관시킵니다.
예를 들어, 고객 실체에는 아마도 관련된 전화번호가 있을 것입니다. 전화번호는 고객 엔티티의 비핵심 속성입니다.분석가는 또한 개발한 모든 사용자 뷰의 유효성을 확인합니다. 분석가들은 뷰의 유효성을 검증하기 위해 정규화 프로세스와 프로세스 모델을 사용합니다. 프로세스 모델은 비즈니스에서 데이터를 사용하는 방법에 대한 세부사항을 기술합니다. 프로세스 모델과 데이터 모델에 대한 자세한 내용은 해당 주제에 관한 다른 책에서 확인할 수 있습니다.
- 속성에 영향을 미치는 추가 비즈니스 규칙 판별.
그 다음 분석가는 데이터 구동 비즈니스 규칙을 명확히 합니다. 데이터 기반 비즈니스 규칙 은 특정 데이터 값에 대한 제약 조건입니다. 이러한 제한조건은 특정 처리 요구사항에 관계없이, 참이어야 합니다. 분석가는 응용프로그램 설계 단계가 아닌, 데이터 설계 단계에서 이러한 제한조건을 정의합니다. 데이터 중심의 비즈니스 규칙을 정의하는 이점은 많은 응용프로그램의 프로그래머가 이러한 비즈니스 규칙을 강제 수행하기 위한 코드를 작성할 필요가 없다는 점입니다.
예를 들어, 비즈니스 규칙에 따라 고객 실체가 전화번호나 주소, 또는 둘 다를 가지고 있어야 한다고 가정해 보십시오. 이 규칙이 데이터 자체에 적용되지 않을 경우, 프로그래머는 이러한 속성 중 하나가 존재하는지 확인하는 응용프로그램을 개발하고, 테스트하며, 유지보수해야 합니다.데이터 구동 비즈니스 요구사항은 데이터와 직접적인 관계를 가지므로, 프로그래머에게 필요없는 작업을 덜어줍니다.
- 사용자 뷰 통합.
데이터 모델링의 이 마지막 단계에서, 분석가는 빌드한 다양한 사용자 뷰를 하나의 통합된 논리적 데이터 모델로 결합합니다. 조직에 다른 데이터 모델이 이미 존재할 경우, 분석가는 새로운 데이터 모델을 기존 모델과 통합합니다. 이 단계에서, 분석가는 현재 비즈니스 환경 및 추후 가능한 변경사항을 지원할 수 있도록 데이터 모델을 유연하게 만들도록 노력하기도 합니다.
예를 들어, 소매 회사가 한 국가에서 사업을 운영하고 있고 사업 계획에 다른 국가로의 확장이 포함되어 있다고 가정해 보겠습니다. 분석가는 이러한 플랜을 인식하고, 다른 국가로의 확장을 지원할만큼 충분히 유동적인 모델을 빌드할 수 있습니다.
논리적 데이터 모델링을 위한 권장 사항
완전한 데이터 모델을 빌드하기 위해 분석가는 다음을 포함하는 제대로 계획된 방법론을 따릅니다.
- 가능한 많이 사용자와 대화식으로 작업하기.
- 다이어그램을 사용하여 가능한 많은 논리적인 데이터 모델을 표시하기.
- 논리적인 데이터 모델 다이어그램을 보충하는 데이터 사전 빌드하기. (데이터 사전은 조직의 응용프로그램, 데이터베이스, 논리적 데이터 모델, 사용자 및 권한 부여에 관한 정보의 저장소입니다. 데이터 사전은 수동 또는 자동일 수 있습니다.)
데이터 모델링: 몇 가지 실용적인 예
데이터 모델링 작업을 수행하려면, 관심 대상인 중요한 개체들을 정의하는 것부터 시작합니다. 엔티티는 해당 정보를 저장하려는 대상입니다. 예를 들어, 조직에서 일하는 모든 사람에 대한 정보를 저장해야 하므로 직원이라는 엔티티를 정의할 수 있습니다. 부서라는 엔티티를 정의할 수도 있습니다.
다음으로, 엔티티에 대한 기본 키를 정의합니다. 1차 키는 엔티티의 고유 ID입니다. 직원 엔티티의 경우, 아마도 많은 정보를 저장해야 할 것입니다. 그러나, 이러한 정보의 대부분(예: 성별, 생년월일, 주소 및 채용 날짜)은 기본 키로서 적합하지 않습니다. 이 경우, 고유한 직원 ID 또는 번호(EMPLOYEE_NUMBER)를 기본 키로 선택할 수 있습니다. DEPARTMENT 엔티티의 경우, 고유한 부서 번호(DEPARTMENT_NUMBER)를 기본 키로 사용할 수 있습니다.
실체와 그 기본 키를 결정한 후, 실체들 사이에 존재하는 관계를 정의할 수 있습니다. 관계는 1차 키를 기본으로 합니다. 직원이라는 엔티티와 부서라는 엔티티가 있다면, 직원들이 부서에 배정된다는 관계가 존재합니다.
실체, 그것들의 기본 키, 그리고 그것들의 관계를 정의한 후에, 실체에 대한 추가 속성을 정의할 수 있습니다. 직원 엔티티의 경우, 다음과 같은 추가 속성을 정의할 수 있습니다
- 생년월일
- 채용 날짜
- 집 주소
- 사무실 전화번호
- 성별
- 다시 시작
속성 정의에 대한 자세한 내용은 이 정보의 뒷부분에서 확인할 수 있습니다.
마지막으로, 데이터를 정규화합니다.