분류 전체보기 99

주식별자 선정 절차

주식별자를 선정하려면 먼저 업무식별자와 후보식별가 인조식별자 등에 대해서 알아야 한다. 업무식별자 : 업무식별자가 도출되지 않는 한 주식별자는 결정될 수 없다. 엔터티를 정의하는 단계에서 도출해야한다. 후보식별자: 주식별자가 될수 있는 유력한 후보이며, 인스턴스 유일성을 보장해 주는 후보식별자는 한엔터티에 여러개 존재할수 있다. 주식별자 후보라서 도출되기도 하지만, 유니크 인덱스를 설정하기 위해서도 도출해야 한다. 만약 업무식별자가 존재하면, 후보식별자 도출을 생략해도 엔터티를 정의하는데는 큰 지장이 없다. 다만 업무 식별자가 올바르게 도출되었는지 한 번 더 검토할수 있으며, 주식별자가 될 가능성이 있어 가능한 도출 하는 것이 좋다. 업무식별자와 후보식별자가 도출되면 그중에서 주식별자를 결정해야 한다. ..

주식별자를 단순하게 설계해야 하는 이유

주식별자를 구성하는 속성의 수는 가능한 적을수록 좋다. 업무식별자를 주식별자로 채택하는 것이 바람직하지만, 업무식별자를 구성하는 속성의 개수가 많고, 해당 엔터티가 비교적 상위 엔터티라면 하위엔터티를 고려해 주식별자를 간략하게 만들어야한다. -주식별자에 속한 속성이 많으면 무엇보다 가독성이 떨어진다. 업무식별자와 인조식별자, 인덱스 용도의 식별자를 혼합해 주식별자를 설계하면 엔터티의 성격을 표현하지 못해 가독성이 떨어진다. 주식별자 속성을 단순화한 것이 좋고, 모델이 단순해지고 관계선이 명확해지고 가독성이 좋아진다. 단순한 모델일수록 좋은 모델!!

주식별자 선택에 대한 기준

업무식별자가 주식별자가 될 수 있고, 후보식별자가 주식별자가 될수 있다. 업무 후보 식별자가 주식별자로 부적절하다면 인조식별자가 주식별자가 될 수 있다. 주식별자 선택 시 고려사항 주식별자 속성의 값이 변경되지 않도록 선정 주식별자는 다른 엔터티의 외래식별자가 되므로 값이 그대로 사용된다. 주식별자의 값이 변경되면 다른엔터티의 외래 식별자 속성 값도 바뀌어야 하기 때문에 주식별자로 사용되는 업무 식별자는 값이 수정되지 않는것이 바람직하다. 업무식별자의 값은 인스턴스를 발생시키는 기준이 된다. 그 기준값이 변경되는 것은 인스턴스를 발생시키는 기준을 변경하는 것이므로 변경되지 않는 속성으로 선정해야 한다. 속성값이 변경되는 두가지 원인 첫번째 업무적으로 변경될 수 있는 속성이 있고, 두번째 업무적으로는 변경..

주식별자가 변경되는 이유

주식별자가 변경되는 이유 설명 엔터티 정의가 불분명할 때 엔터티 정의가 명확하지 않음 엔터티 정의가 명확하지 않으면 엔터티 사용할때 임의대로 사용할수 있음 명확하지 않다 = 모호하다 or 틀렸을 수도 있다 = 정확한지 확신 할수 없음 결국 개인에 따라 판단하기 때문에 임의대로 사용 유연하게 정의한것 & 명확하지 않게 정의한것은 다름 유연하게 정의한 것 : 구체적으로 한정된 범위 내에서 정의한 것 명확하지 않게 정의한것 : 한정된 범위가 없는 것 엔터티를 명확하게 정의하는 것 : 업무식별자나 주식별자 선정을 명확하게 선정한것 데이터 분석이 미흡할 때 정확한 데이터 분석을 통해 엔터티를 정의하면 주 식별자가 변경되는 것을 막을 수 있음 이력데이터를 고려하지 않을때 원천데이터를 설계하면서 이력데이터를 고려하지..

속성

속성은 엔터디의 성격을 상세하게 기술하는 요소 관리하는 엔터티가 무엇인지 알고싶으면 속성을 모두 도출하면 알수있음 속성은 데이터를 저장하는 곳. 독립된 저장단위. 더는 나눌수없는 원자 데이터를 저장하는곳 즉 이런속성에 저장된 데이터가 엔터티를 자세하게 묘사 함 속성의 다양한 분류법 -식별자와 비식별자 -기초 관계 추출 시스템 속성 -원본과 추출 속성 -단일값 다가 속성 -단순 복합 속성 -필수 선택 속성 -코드 바코드 속성 식별 속성 비식별 속성 엔터티에 존재하는 인스턴스의 유일성을 보장해 주는 속성이나 집합 엔터티의 인스턴스마다 서로 다른값을 가지는 속성 결정자속성 엔터티에 물리적으로 존재하는 식별자 : 주식별자, 대리식별자,인조식별자 쓰임새에 따라 구분한 식별자 :업무식별자, 후보 식별자 엔터티 본질..

잘못된 서브타입

잘못된 서브타입 -표현형식이 잘못된 서브타입 -업무 요건과 무관하게 단지 개념적으로만 표현해서 잘못된 서브타입 잘못 설계된 모델 예시) 개인고객과 법인고객을 관리하고 개인고객의 가족 데이터도 관리하며, 개인고객의 가족은 고객으로 등록하지 않는다는 요건을 반영한 모델 개인고객의 가족은 고객으로 통합되지 않는다는 요건에 반해 통합한 것으로 잘못설계한 모델 올바르게 설계된 모델 개인고객의 가족은고객에 통합되지 않기 때문에 고유한 고객번호가 없다. 또한 가족은 여러명일수 있어 개인고객 엔터티와 일대다 관계이다. 서브타입을 단지 개념적으로만 표현할 때 잘못설계한 경우가 많다. 개념모델에 서브타입이 있다면 논리와 물리 모델에 그대로 이어져야 한다. 서브타입도 엔터터 이기 때문에 모델링이 진행되더라도 구조는 그대로 ..

서브타입간의 관계 표현법

서브타입 간의 관계 표현법 서브타입 관계는 서브타입의 성격이 다를수록, 엔터티를 일반화 할 수록 발생할 가능성이 높다. 서브타입 관계는 3가지 방법으로 관리 할 수 있다. 첫번째 슈퍼타입 엔터티의 재귀관계 도출 위 모델은 사원이 개인고객을 관리한다는 요건으로 인해 슈퍼타입에 재귀관계가 생겼다. 재귀관계가 구현된 속성은 관계고객번호 속성이다. 관계고객번호 속성은 다양한 재귀 관계를 관리하기 위해 일반화한 속성이다. 하나의 특정한 관계만을 관리했다면 '개인고개관리사원고객번호' 처럼 구체적으로 사용할 수 있다. 홍길동, 김길동 고객을 관리하는 사원은 박길동이고, 박길동을 관리하는 사원은 없으므로 널값을 갖는다. 이 관계는 개인고객 인스턴스와 사원고객 인스턴스가 다대다일때는 사용할 수 없다. 홍길동 고객을 이길..

중첩 서브타입

서브타입 안에 다시 서브타입에 존재할때 중첩서브타입이라고 한다. 중첩 서브타입은 기초속성은 유사하지만, 고유속성이 존재하는 다수의 엔터티를 통합하는 과정에서 생긴다. 위 모델에서 고객의 정의를 사원과 거래처까지 확대했다. 다양한고객이 존재해서 주민번호 존재하는 자연인과 법인번호가 있는 법인으로 서브타입 설계 자연인을 개인고객과 사원으로 설계 법인은 법인고객과 거래처로 설계 중첩 서브타입은 하나 이상의 서브타입 구분자가 필요하고, 구분자 사이에 계층 체계가 존재 고객유형코드 구분자는 자연인구분코드, 법인구분코드값을 종속 자연인 구분 코드는 자연일일때만, 법인구분은 법인일때만 생성됨 중첩서브타입 그래도 물리모델을 생성하진 않음 데이터 성격 자체를 나타내는 서브타입 구분자와 달리 엔터티는 계층을 그대로 구현하..

728x90
반응형
LIST