데이터베이스의 연결함정(Connection Trap)
- 정보처리기술사/데이터베이스
- 2020. 11. 27.
연결함정(Connection Trap)
연결함정의 개념
- 관계형 데이터베이스에서 데이터간에 관계가 모호해져서 원하는 결과를 얻을 수 없거나 업무 처리시 영향을 주는 ER모델의 문제점
연결함정의 유형
부채꼴 함정(Fan Trap)
- 개체 집합(Entity Set) 사이에 관계성 집합(Relation set)이 정의되어 있지만 관계성이 모호한 경우 부채꼴 함정이라 한다
균열 함정(Chasm Trap)
- 개체 집합 사이에 관계성 집합이 정의되어 있지만 일부 개체집합과 개체집합 사이에 관계성이 존재하지 않는 경우 균열 함정이라 한다.
부채꼴은 관계성이 모호한 것이고, 균열은 일부 개체의 관계성이 존재하지 않는 경우이다
부채꼴 함정의 사례 및 해결 방법
부채꼴 함정의 사례
유재석이라는 교수 경우 상경대학인것을 알 수 있지만 경영과 경제 둘중에 어디에 소속되어 있는지를 알 수가 없다. 이처럼 관계가 존재하지만 어디에 속해 있는지 모호한 경우 부채꼴 함정이라 한다. ERD를 보면 1:N으로 속해 있어서 별 문제가 없어 보이지만, 실제 결과는 위 개념도같이 관계가 명확하지 않다.
부채꼴 함정의 해결 방안
부채꼴의 함정은 겉으로 보기에는 이상이 없는 1:N 구조로 보였지만 실상 펼쳐보면 N:M과 같은 구조였다. 이를 해결하기 위해서는 1:N의 구조를 명확하게 해야 된다. 위 개념도 같이 교수를 학과에 연결하고 학과는 단과대학에 연결하여 N:M 구조를 1:N으로 명확하게 하였다.
균열 함정의 사례 및 해결방안
균열 함정의 사례
모호한 관계라도 있던 부채꼴 함정과 다르게 균열 함정은 모호한 관계마저 없이 일부 관계가 아예 분실되는 것을 말한다. 위 개념도를 보면 교수를 통해서 학생들의 학과 소속을 알 수 있게 설계를 하였는데 박나래의 경우 지도하는 교수가 없는 것으로 나온다. 학교를 복학한 학생의 경우 지도교수가 없을 수 있는데 그럴땐 이 복학생이 무슨 학과인지 알 수 없게 된다.
균열함정의 문제점은 ER모델에서 문제점이 보이지 않다는 것이다. 위 ER모델은 부채꼴 함정을 해결했을때의 ER모델과 유사하여 설계를 잘못했을거라 생각치 못한다는 것이다.
균열 함정의 해결방안
균열함정을 해결하기 위해서 위와 같이 재학이라는 관계를 신규 추가하였다. 즉 학생의 학과를 알기 위해서 지도교수를 걸쳐 아는 것이 아니라 학과와 직접적으로 관계를 맺어서 함정을 해결한다.
연결함정의 예방 방법
- 정규화를 통해 M:N 의 관계를 분해 할 경우 시나리오 검증을 통해 무손실 분해와 릴레이션 관계의 추론이 가능한지 검증
- 3개의 개체간 관계를 기존 개체와 1:M의 관계를 갖는 새로운 개체 추가하여 1:M의 관계가 되도록 모델링 수행
- Entity 생명주기, CRUD 매트릭스를 활용, 조직의 관리 대상 여부의 검증 작업이 필요
'정보처리기술사 > 데이터베이스' 카테고리의 다른 글
데이터베이스의 논리적 작업단위, 트랜잭션(Transaction) (0) | 2020.11.28 |
---|---|
정규화의 기반이론인 함수적 종속성(Functional Dependency) (0) | 2020.11.28 |
DB 무결성 확보를 위한, 동시성 제어(Concurrency control) (0) | 2020.10.07 |
DB의 분산처리 기법, 샤드(Shard), 샤딩(Sharding) (0) | 2020.08.14 |
자기참조관계, 순환관계(Recursive Relationship) (0) | 2020.03.24 |