ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 데이터 모델링 - 기준 엔터티
    카테고리 없음 2024. 6. 26. 14:04

     

    1. 낱개의 물건 & 물건의 상징 

     

    기준 엔터티는 크게 두 가지로 구분할 수 있다. 

     

    기준 정보 관리 - 환율, 코드 데이터 

     

    기본 정보 - 과목, 상품 (실체 엔터티와 특성이 유사함!)

     

    둘 다 업무의 기준이 되는 엔터티로서, 업무를 수행할 때 참조되기 때문에 참조 엔터티라고도 합니다. 

    기준 엔터티는 다른 엔티에서 참조해서 사용한다 (특히 행위 엔터티에서 많이 참조한다) 

    김기창 데이터 모델링

     

    여기서 책 엔터티는 낱권의 책을 나타내므로, 실체이다. 

     

    도서 엔터티는 누가 썼고, 어디에서 출판했는지, 가격이 얼마인지 책의 개념을 상징할 뿐 낱권 의미는 아니다. 

     

    만약 데이터 모델링 노트 책을 3만권 출판했고, 그 중 도서관에 세 권이 있다면, 도서 엔터티에는 한 개의 인스턴스가 존재하고, 책 엔터티에는 세 개의 인스턴스가 존재한다. 

     

    김기창 데이터 모델링

     

    다른 예시를 살펴보자, 상품 엔터티는 실체를 의미할 때도 있지만, 대체로는 실체를 의미하지 않는다. 

    인터넷으로 주문할 때는 낱개의 상품을 보고 주문하는 것이 아니라, 상품에 대한 정보를 보고 주문하는 것이다. 

    여기서 상품 엔터티는 해당 상품에 대한 기본 정보를 관리하는 기준 엔터티이다. 

    김기창 데이터 모델링

    이와 같은 경우 실체 엔터티이다. 상품을 골라서 바코드를 찍고 결제하기 때문이다. 

     

     

    2. 사람 & 사람의 역할 

     

    김기창 데이터 모델링

     

    여기서 고객 엔터티는 사람 데이터를 관리한다 (실체 엔터티이다)

     

    김기창 데이터 모델링

     

    반면에 위와 같이 개인고객, 사원고객으로 나뉜다면, 특정 사람이 고객이면서, 사원일 수도 있다. 

    고객 엔터티의 주민등록번호 123456-7890123인 홍길동이 개인과 사원에 둘 다 존재할 수 있다. 

    위와 같이 한 사람에 대해 역할에 따라 두 개의 서로 다른 인스턴스로 관리하므로, 고객 엔터티는 사람이 아닌 사람의 역할을 관리하는 엔터티이다. 

     

    사람을 관리하는 실체 엔터티와 역할을 관리하는 기준 엔터티를 구분하는 것은 중요하다. 

     

     

    기준 엔터티와 실체 엔터티는 매우 비슷하지만, 데이터의 성격상 실체 엔터티는 보이는 것을 관리하지만, 기준 엔터티는 개념적인 것을 관리한다는게 다르다 

    데이터 성격이 다르니 업무 식별자가 달라지는 것은 당연한 얘기이다! 

     

     

    3. 기준 정보를 관리하는 기준 엔터티

     

    기준 정보를 관리하는 기준 엔터티는 이해하기 간편하다. 

     

    환율 엔터티와 같이 업무에서 기준 정보로 사용되는 데이터를 관리하는 엔터티가 기준 정보를 관리하는 기준 엔터티이다.

    김기창 데이터 모델링

     

     

    기준 정보로 사용되는 데이터는 업무에 따라 다양하게 존재한다. 우편번호 데이터나 상품 분류 데이터도 기준 정보이다. 

    가장 대표적인 기준 데이터는 코드 성격의 데이터다. 모든 종류의 코드를 하나의 엔터티에서 통합 관리하는 엔터티나 코드 종류 별로 관리하는 개별 엔터티는 기준 엔터티다. 

     

    기준 정보는 추상적인 데이터이기 때문에 도출하기 어려울 수 있다. 

    이런 기준 엔터티는 기본 정보를 관리하는 기준 엔터티와 특징이 다소 다르다. 

     

    하위 엔터티에서 참조할 때 참조 무결성 관계로 관리하지 않을 수 있다. 

    -> 이와 같은 이유로 기준 엔터티는 주로 업무 식별자를 주 식별자로 사용하고, 변경 이력 데이터까지 원천 데이터와 함께 관리하도록 설계한다. 

     

    4. 기준 엔터티의 주 식별자 

     

    기본 정보를 관리하는 기준 엔터티는 실체 엔터티와 특성이 유사하다 따라서 주 식별자도 인조 식별자를 사용한다. 

     

    기준 정보를 관리하는 기준 엔터티는 주식별자가 대체로 복잡하다. 업무 식별자를 주 식별자로 사용하기 때문이다. 

     

    김기창 데이터 모델링

     

     

    수수료율 엔터티처럼 주식 등의 거래 수수료율을 정하는 요소가 9개 존재하면, 9개의 속성이 업무 식별자가 된다. 

     

    5. 기준 엔터티의 참조 무결성

     

    기준 데이터를 관리하는 기준 엔터티의 가장 두드러진 특징은 관계와 연관된다. 

    기준 엔터티는 업무의 기준이 되는 엔터티이기 때문에 다른 엔터티에서 참조하여 사용한다.

     

    다른 엔터티에서 기준 엔터티를 참조할 때는 두 가지 방법이 있다. 

    기본 정보를 관리하는 기준 엔터티를 참조할 때는 이견이 없다. 하위 엔터티와 참조 무결성 관계가 존재한다.

    김기창 데이터 모델링

     

    수수료율 엔터티와 같이 기준 정보를 관리하는 기준 엔터티의 경우 하위 엔터티와 참조 무결성 관계가 존재할 수도 있고, 존재하지 않을 수도 있습니다. 

     

    - 기준 데이터가 바뀌면 참조 데이터가 바뀌어야 하는지 따져보기

    - 참조되는 데이터를 입력할 때 텍스트박스에 직접 수기로 입력해서 저장한다면, 성립하지 않는다. ( 환율이나 수수료율은 해당 기준을 조회해서 참고한 후 실제 적용할 율을 직접 입력하게 된다 - 0.55라는 수수료율이 없더라도, 0.55를 입력할 수 있어야함! ) 

     

    수수료율 엔터티가 하위 엔터티와 참조 무결성 관계가 존재하는지 결정하는 요소는 참조 무결성 제약이 존재하는지이다.

     

    두 엔터티에 참조 무결성 제약이 존재한다는 것은 한 엔터티에서 데이터를 수정하면, 참조하는 테이블은 자동으로 영향을 받게 된다. 

     

    엔터티 사이에 무결성 조건이 존재하지 않을 수 있는데, 한 엔터티의 주 식별자를 속성으로 가지지 않으면 참조 무결성 제약이 존재하지 않는 것이다. 

     

    이럴 경우 데이터가 바뀐다고, 영향을 받지 않는다. (입력만 할 뿐!)

     

    업무에 따라 다르지만 대체로 기준 엔터티와 하위 엔터티의 참조 무결성 관계를 관리하지 않는 편이다. 

     

    기준 정보를 보고 업무는 수행하지만, 선택할 시점의 데이터를 관리하는 면이 강해서 참조한 엔터티는 해당 시점의 데이터로 관리합니다.

     

    김기창 데이터 모델링

     

    예를 들어 기간에 따라 수수로율을 달리 관리하기로 했다면, 수수로율 엔터티의 주 식별자가 변경된다. 

    기준 엔터티는 이렇게 업무의 변경이 발생할 수 있다는 점에서 하위 엔터티와 참조 무결성 관리 하지 않기도 한다.

     

    * 계약 당시 수수료율이 적용되어야함! 수수료율 테이블의 변화가 영향을 줄 가능성이 너무 높다!

     

     

Designed by Tistory.