데이터 아키텍처 - 데이터 모델링 [2]
#개념 데이터 모델링에서는 부서 엔터티 자체의 정의를 명확히 하는 것은 바람직하지만 부서 엔터티와 연관된 하위 엔터티들을 정의하는 것은 수평적 사고를 방해할 위험요소가 있기 때문에 바람직한 모델링의 방향이라 할 수 없다.
#후보키에 대한 설명
1) 각 인스턴스를 유일하게 식별할 수 있어야 한다.
2) 후보키의 데이터들은 가능하면 자주 변경되지 않는 것이 좋다.
3) 가능하면 키길이가 작은 속성들을 선택하는 것이 바람직하다.
#성격기준으로 데이터를 분류하는 방법의 장점
1) 엔터티 후보들간의 미묘한 차이를 분석하는데 유리하다.
2) 엔터티 통합여부 판단의 기초가 된다.
3) 엔터티의 정의를 견고하게 할 수 있다.
#ERD의 직렬 관계의 특성
1) 새로운 테이블이 추가됨
2) 인덱스 수가 감소될 가능성이 높음
3) 여러 개의 로우(Row)로 나누어짐
4) 변화에 유리함(로우만 추가됨)
#본질 식별자에 대한 설명
1) 1:M 관계에서 1쪽의 식별자가 M쪽에서 항상 식별자로 되는 것은 아니다.
2) 인조 식별자도 때로는 본질 식별자가 될 수 있다.
3) 본질 식별자는 만약 본질 식별자를 이루는 속성이 없을 때 자신이 절대로 태어날 수 없는 경우에만 해당한다.
#논리 데이터 모델링을 수행할 때 고려할 사항
1) 특정한 응용프로그램이나 기술에 특화되지 않고 다수에 의해 사용 가능해야 한다.
2) 현재 상태를 근간으로 최소한의 노력을 통해 새로운 요구 사항을 수용할 수 있어야 한다.
3) 업무가 데이터를 이용하고 관리하는데 있어서 데이터 값의 일관성이 있어야 한다.
#실제 데이터 모델링 과정에서 엔터티 정의의 판단 기준을 설명
1) ‘고객’은 엔터티 후보라고 볼 수 있지만, ‘불량거래자’는 엔터티 후보라고 보기에는 무리이다.
2) ‘금융기관’은 ‘금융’과 ‘기관’의 합성어 형태이고, 엔터티로 정의할 수도 있다.
3) ‘배송처’는 순수 본질 집합이 아니지만 경우에 따라서는 엔터티로 정의될 수도 있기 때문에 이 과정에서 엔터티 후보로 도출하는 것은 가능하다.
#서브타입 엔터티에 대한 설명
1) 서브타입 간에는 교집합이 존재하지 않아야 한다.
2) 서브타입을 모두 결합하면 반드시 전체 집합이 되어야 한다.
#서브타입의 적용 기준
1) 분류 속성에 따라 엔터티의 정보가 차별화 되는 경우
2) 서브타입으로 분활함으로써 관계가 필수관계로 변하는 경우
#엔터티는 통합 할수록 집합의 유연성은 향상되지만 독립성은 저하된다.
#관계에 대한 설명
1) 집합 간에는 하나 이상의 많은 관계들이 존재할 수 있다.
하지만 이러한 관계들 중에서 직접 관계만을 표현하는 것이 논리 데이터 모델링이다.
2) 관계의 내용에 따라서 얼마든지 관계의 형태가 달라질 수 있다.
3) 관계를 맺는 두 엔터티의 의미상 식별자가 결정되지 않았다면 관계를 생성하는 것은
무의미하다고 볼 수 있다.
4) 관계도 집합이다.
5) 집합 간에 존재하는 무수히 많은 관계 중에 직접종속인 것만을 관계로 모델링한다.
#논리 데이터 모델링에 대한 설명
1) 논리 데이터 모델은 논리적 관점에서 데이터 모델링이 최종적으로 완료된 상태를 말한다.
2) 비즈니스 데이터에 존재하는 사실을 인식:기록하는 기법이다.
3) 데이터 모델링 과정에서 가장 핵심이 되는 부분으로 분석 초기 단계에서부터 인간이 결정해야 할 대부분의 사항을 모두 정의함으로써 설계의 전 과정을 지원하는 ‘과정의 도구’라고 할 수 있다.
#전사화 대상 시스템의 형태, 목적 등에 의해 영향을 받는 것은 물리 데이터 모델
#논리적 데이터 모델링의 목적 및 효과
1) 해당 비즈니스에 대해 데이터 관점에서 명확한 이해가 가능하다.
2) 사용자와 명확한 의사소통을 하기 위한 수단으로 활용 된다.
3) 데이터의 일관성 및 정확성 유지를 위한 규칙을 도출할 수 있다.
4) 안정적인 데이터베이스 설계의 토대가 된다.
#논리 데이터 모델링의 필수 성공 요소
1) 절차보다는 데이터에 초점을 두고 모델링을 진행해야 한다.
2) 데이터의 구조와 무결성을 함께 고려해야 한다.
#엔터티 후보의 분류를 위한 모델러의 수행내용
1) 우선순위가 높은 엔터티들은 대개 전체 데이터 모델링의 골격에 해당하는 주요 엔터티들이기 때문에 먼저 이들을 명확하게 함으로써 모델링의 골격을 갖출 수 있다.
2) 데이터 모델링의 골격에 해당하는 엔터티는 각 회사마다 가장 중요한 데이터의 집합인데 비즈니스 영역마다 유사한 형태를 가지고 있는 것이 보통이다.
3) 최상위 우선순위를 가지는 엔터티들은 대개 행위를 발생시키는 주체나 목적에 해당한다.
#속성 정의에 대한 서명
1) 엔터티에 통합되는 구체적인 정보항목으로써 더 이상 분리될 수 없는 최소의 데이터 보관 단위이다.
2) 관계도 속성이다.
3) 속성들은 서로 독립적이고 식별자에만 종속되어야 한다.
#속성 검증의 방법
1) 최소 단위 분할 여부를 판단한다.
2) 해당 속성 후보가 단일값을 갖는지 판단한다.
3) 추출 속성인지 판단한다.
#실체 유형에 대한 정의를 기술할 때 고려해야 할 사항
1) 실체 유형의 정의(설명)는 그 실체 유형이 무엇인지를 설명해야 한다.
2) 실체 유형의 정의(설명)는 왜 그 실체 유형이 업무에서 중요한가를 설명해야 한다.
4) 실체 유형의 정의(설명)는 실체 유형명은 명확하고 간결하게 설명해야 한다.
#속성은 최소단위로 분할해서 정의하는 것이 일반적이다.
하지만 경우에 따라서는 복합속성을 구성 하는 것도 가능하다.
#1차 정규화 - 하나의 속성은 반복되는 중복값을 가질 수 없다는 것이다.
하나의 속성이 중복값을 가지기 위해서는 새로운 엔터티를 생성해야 한다.
#순환관계 데이터 모델에 대한 설명
1) 순환관계 모델은 새로운 계층의 추가:수정에 대해서 유연하게 대처할 수 있다.
즉, 구조의 변화가 필요 없이 변화에 대처할 수 있다.
2) 순환관계 모델에서 최상위는 의미적으로 NULL이지만 물리적인 요소(수행 성능 등)를 고려해서 특정 값을 갖는 것이 바람직하다.
3) 다대다(M:M) 순환관계를 처리하기 위해서는 별도의 엔터티를 추가하여야 한다.
#속성 정의 시에 유의사항
1) 의미가 명확한 속성 명칭을 부여한다.
2) 단수형으로 속성명을 사용한다.
#논리 데이터 모델링의 필수 성공 요소
1) 현업 사용자보다 업무 시스템 운영경험이 많은 유지보수 담당자의 참여가 필수적이다.
2) 절차(Procedure)보다는 데이터에 초점을 두고 모델링을 진행하여야 한다.
3) 데이터의 구조(Structure)와 무결성(Integrity)을 함께 고려해야 한다.
4) 데이터 모델링을 지원하는 CASE 도구의 사용은 권장사항이지만 필수사항은 아니다.