데이터베이스의 연결함정(Connection Trap)

    연결함정(Connection Trap)

    연결함정의 개념

    - 관계형 데이터베이스에서 데이터간에 관계가 모호해져서 원하는 결과를 얻을 수 없거나 업무 처리시 영향을 주는 ER모델의 문제점

     

    연결함정의 유형

    부채꼴 함정(Fan Trap)

    - 개체 집합(Entity Set) 사이에 관계성 집합(Relation set)이 정의되어 있지만 관계성이 모호한 경우 부채꼴 함정이라 한다

     

    균열 함정(Chasm Trap)

    - 개체 집합 사이에 관계성 집합이 정의되어 있지만 일부 개체집합과 개체집합 사이에 관계성이 존재하지 않는 경우 균열 함정이라 한다.

     

    부채꼴은 관계성이 모호한 것이고, 균열은 일부 개체의 관계성이 존재하지 않는 경우이다

     

    부채꼴 함정의 사례 및 해결 방법

    부채꼴 함정의 사례

    부채꼴 함정의 개념도
    부채꼴 함정의 ER모델

    유재석이라는 교수 경우 상경대학인것을 알 수 있지만 경영과 경제 둘중에 어디에 소속되어 있는지를 알 수가 없다. 이처럼 관계가 존재하지만 어디에 속해 있는지 모호한 경우 부채꼴 함정이라 한다. ERD를 보면 1:N으로 속해 있어서 별 문제가 없어 보이지만, 실제 결과는 위 개념도같이 관계가 명확하지 않다. 

     

    부채꼴 함정의 해결 방안

    부채꼴 함정의 해결방안

    부채꼴의 함정은 겉으로 보기에는 이상이 없는 1:N 구조로 보였지만 실상 펼쳐보면 N:M과 같은 구조였다. 이를 해결하기 위해서는 1:N의 구조를 명확하게 해야 된다. 위 개념도 같이 교수를 학과에 연결하고 학과는 단과대학에 연결하여 N:M 구조를 1:N으로 명확하게 하였다. 

     

     

    균열 함정의 사례 및 해결방안

    균열 함정의 사례

    균열 함정의 개념도
    균열모델 ER모델

    모호한 관계라도 있던 부채꼴 함정과 다르게 균열 함정은 모호한 관계마저 없이 일부 관계가 아예 분실되는 것을 말한다. 위 개념도를 보면 교수를 통해서 학생들의 학과 소속을 알 수 있게 설계를 하였는데 박나래의 경우 지도하는 교수가 없는 것으로 나온다. 학교를 복학한 학생의 경우 지도교수가 없을 수 있는데 그럴땐 이 복학생이 무슨 학과인지 알 수 없게 된다. 

     

    균열함정의 문제점은 ER모델에서 문제점이 보이지 않다는 것이다. 위 ER모델은 부채꼴 함정을 해결했을때의 ER모델과 유사하여 설계를 잘못했을거라 생각치 못한다는 것이다.

     

    균열 함정의 해결방안

    재학이라는 관계가 추가된 균열함정

    균열함정을 해결하기 위해서 위와 같이 재학이라는 관계를 신규 추가하였다. 즉 학생의 학과를 알기 위해서 지도교수를 걸쳐 아는 것이 아니라 학과와 직접적으로 관계를 맺어서 함정을 해결한다.

     

    연결함정의 예방 방법

    • 정규화를 통해 M:N 의 관계를 분해 할 경우 시나리오 검증을 통해 무손실 분해와 릴레이션 관계의 추론이 가능한지 검증
    • 3개의 개체간 관계를 기존 개체와 1:M의 관계를 갖는 새로운 개체 추가하여 1:M의 관계가 되도록 모델링 수행
    • Entity 생명주기, CRUD 매트릭스를 활용, 조직의 관리 대상 여부의 검증 작업이 필요

    댓글

    Designed by JB FACTORY