어플리케이션개발/DB

Logical Design by ER Relation Mapping

안잡아모찌 2018. 10. 13. 14:32

Conceptual schema design을 ER model로 변환하기 위해서는 7 단계의 알고리즘이 필요.


#Target relational DM

 

 관계들의 집합으로서의 데이터들을 표현

 값의 Table(Relation)

  • Row(Tuple) : 관련된 데이터 값들의 집합, 현실세계의 앤티티 또는 관계와 상응하는 사실, 튜플들은 원자 값 혹은 널값만을 갖는다.
  • Flat Relational model : Composite ,multivalued 속성이 허락되지 않는 가장 일반적인 형태
  • Multivalued attribute : 반드시 분리된 관계들에 의해 대표되어야 한다.
  • Composite attribute : 오직 기초 관계모델에 안에 간단한 구성요소 속성들로 대표되어야 한다.





ER to relation mapping의 7 단계


<Step 1 : 일반적인 앤티티 타입의 mapping >

만약 composite이면 그것의 단일 구성요소들을 Relation R에 넣음

entity relation 이라고 부른다.



Locations은 멀티벨류 어트리뷰트이기 때문에, 6단계에서 처리해준다. 




<Step 2 : weak entity 타입의 mapping>


오너의 주키를 외래키로써 사용한다!!



오너키의 주키를 외래키로 사용할 때, 주키의 일부분이 되도록 해야한다!



<Step3 : Binary 1:1 관계 타입의 Mapping>

  • 외래 키 접근법 (가장 많이 이용된다 )

  • 병합 관계 접근법( 1:1이면서 둘다 전체암여 일때는 합쳐주는 것을 고려해볼수 있다. 너무 커지면 효율성이 떨어진다.)

  • 상호 참조 또는 관계 관계 접근법(새로운 테이블을 만드는것. 질의가 비효율적이므로 거의 사용하지 않는다.)



전체참여 쪽으로 주키를 외래키로써 넘겨준다. 전체참여가 없는 경우는 어느방향이는 주키를 외래키로 넘겨준다.

1:1 일때 관계에 붙어있는 속성은 어떤 앤티티에 넘겨주든지 상관이 없지만, 효율성을 고려해서 이동해줘야한다.




<Step 4 : binary 1:N 관계 타입 Mapping >


1:N 관계에 있을 때, 1쪽 방향의 주키를 N쪽 방향의 일반속성으로 포함시킨다.






<Step 5 : binary M:N 관계 타입의 Mapping >


새로운 관계S 를 만들어서 관계에 참여하고 있는 앤티티들의 주키를 일반속성으로 포함한다.






<Step 6 : multivalued attributes의 Mapping >


새로운 관계를 만들고 주키는 앤티티와 속성의 조합으로 만든다. 멀티 어트리뷰트가 composite이라면  각 구성요소들을 포함한다.






<Step 7 : n-ary 관계타입의 Mapping >


새로운 관계를 만들어서, 연관된 앤티티들의 주키를 모두 포함하고 자신의 속성도 포함한다.





<Step 8 : Options for mapping specialization or generalization >

  1. 여러개의 관계 : 슈퍼클래스와 서브클래스 ( 가장 많이 이용 , 토탈,파셜,disjoint,overlap 모두 사용가능 )

  2. 여러개의 관계 : 서브클래스만 사용( 서브클래스로 모두 토탈 , disjoint 인 경우 )

  3. 한개의 관계 : 한개의 타입을 추가함 ( 서브클래스들은 disjoint, 속성으로 구분해줌)

  4. 한개의 관계 : 여러개의 타입을 추가함( 서브클래스가 overlap일때 주로사용)

A)


테이블이 많아 진다. 정보들이 따로 이용될 때 많이 사용한다.



B)


부모의 속성들을 그대로 자식으로 내려준다. (Specialization)



C)

(Generalization)

자식의 속성들을 부모의 속성으로 올려준다.(속성이 많을수록 비효율적)

정보들을 한번에 access하는 경우 많을 경우 사용한다. 테이블의 수가 적다.

Null값이 생길 가능성이 많아진다.



D)