- 논리적 설계는 e-r 다이어그램을 릴레이션 스키마로 변환하는 것이다.
- e-r 다이어그램을 릴레이션 스키마로 변환하는 규칙이 있다.
- 모든 개체는 릴레이션으로 변환한다
- 다대다 관계는 릴레이션으로 변환한다.
- 일대다 관계는 외래키로 표현한다.
- 일대일 관계는 외래키로 표현한다.
- 다중 값 속성은 릴레이션으로 변환한다.
- 1 규칙은 모든 개체를 대칭되는 릴레이션으로 변환하는 것이. e-r 다이어그램의 각 개체를 하나의 릴레이션으로 변환한다.
- "고객","상품" e-r 다이어그램을 "고객", 상품" 릴레이션으로 변환하는 것을 볼 수 있다.
- 위 e-r 다이어그램에 규칙 1을 적용한 결과 아래의 릴레이션이 도출된다.
- 두번째 규칙은 e-r 다이어그램의 다대다 관계를 하나의 릴레이션으로 변환하는 것이다.
- 위 e-r다이어그램에서 고객<->상품 간 "주문" 관계의 다대다 관계가 형성된다. 따라서 "주문"릴레이션이 따로 생생된다.
- 세 번째 규칙은 일반적인 일대다 관계를 외래키로 표현하는 것이다.
- 1측 개체 릴레이션의 기본키를 n 측 개체 릴레이션에 포함시켜 외래키로 지정한다.
- 관계의 속성들도 n측 개체 릴레이션에 포함시킨다.
- 위 사례에서는 제조업체<->상품 간 "공급"이라는 일대다 관계가 있다. n측인 상품 릴레이션에 제조업체의 기본키인 제조업체명을 n측의 외래키로 포함시킨다.
- 3-2규칙은 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키를 저장한다.
- n측 개체 릴레이션은 외래키를 포함하여 기본키를 지정한다.
- 약한 개체가 참여하는 일대다 관계는 외래키를 포함해서 기본키를 지정한다.
- e-r 다이어그램에 규칙 3을 적용한 결과 관계에 인한 별도의 릴레이션이 만들어지고 1측으로부터 n측의 외래키가 포함된다.
- 네 번째 규칙은 일대일 관계는 외래키로 표현한다는 것이다.
- 일반적인 일대일 관계는 외래키를 서로 주고 받는다. 양측이 모두 참여하기에 중복이 발생할 수 있다.
- 4-2 규칙은 필수적으로 참여하는 개체 릴레이션만 외래키를 받는 것이다.
-4-3 규칙은 모든 개체가 필수적으로 참여하면 릴레이션을 하나로 합치는 것이다.
- 5규칙은 다중 값 속성은 독립적인 릴레이션으로 변환하는 것이다. 이때 다중값 속성과 함께 그 속성을 가지고 있던 개체 릴레이션의 기본키를 외래키로 가져와 새로운 릴레이션에 포함시킨다.
- 새로운 릴레이션의 기본키는 다중 값 속성과 외래키를 조합하여 지정한다.
- 의에서 부하직원 속성이 다중 값 속성을 가진다.
- 외래키와 사원-부하직원 릴레이션을 따로 생성한다.
- 위 경우에서도 사원 릴레이션은 부하직원의 다중 값 속성 때문에 릴레이션 특성을 위반한다.
- 따라서 다중 값 속성을 새로운 릴레이션으로 표현한다.
- 불필요한 중복을 제거하면서 릴레이션의 특성을 만족시킬 수 있다.
- 모든 관계를 독립적인 릴레이션으로 변환할 수 있다.
- 속성이 많은 관계는 유형에 상관없이 릴레이션으로의 변환을 고려할 수 있다.
- 개체가 자시자신과 관계를 맺는 순환관계도 기본규칙을 그대로 적용한다.
- 사원 개체가 스스로와 관리라는 관계를 맺는데, 상사번호라는 외래키로 하여 사원 릴레이션을 생성한다.
- 최종적으로 e-r 다이어그램을 릴레이션 스키마로 변환한 결과는 다음과 같다.
안녕하세요. 궁금해서 질문 해요. 혹시 릴레이션 스키마만으로 e-r다이어그램으로 변환 할 수 있나요?