SQLP

1장 4절 관계 (Relationship)

Any DB 2013. 8. 7. 22:49

1. 관계의 개념

가. 관계의 정의

   - 사전적인 의미 : 상호 연관성이 있는 상태

   - 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태.

 

나. 관계의 패어링

  - 유의해야할 점

    관계는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링)이 있고, 이것의 집합을 관계로 표현한다는 것.

    따라서 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 엔터티 사이에 두 개 이상의 관계가 형성 될수 있다.

 

 

2. 관계의 분류 

   - UML(Unified Modeling Language) 에는 클래스다이어그램의 관계중 연관관계(Association)와 의존관계

     (Dependency)가 있다.

   - 연관관계(Association)

     항상 이용하는 관계로 존재적 관계에 해당한다.

   - 의존관계(Dependency)

     상대방 클래스의 행위에 의해 관계가 형성될 때 구분하여 표현하는것.

 

3. 관계의 표기법 

가. 관계명(Membership) : 관계의 이름

  - 관계시작점(The Beginning)  : 관계가 시작되는 편

  - 관계끝점(The End) : 관계를 받는 편

  - 애매한 동사를 피한다.

   관계된다, 관련이 있다, 이다, 한다 등은 구체적이지 않아 어떤행위가 있는지 또는 어떤 상태가 존재하는지 파악할수 없음

  - 현재형으로 표현한다. ('수강을 신청했다', '강의를 할 것이다'라는 식으로 표현해서는 안된다)

 

나.  관계차수(Cardinality)

 1) 1:1(ONE TO ONE) 관계를 표시하는 방법

 

 

2) 1:M (ONE TO MANY) 관계를 표시하는 방법

 

3) M:M (MANY TO MANY)관계를 표시하는 방법 

 

다. 관계선택사양(Optionality) 

   - 필수참여 : 참여하는 모든 참여자가 반드시 관계를 가지는, 타 엔터티의 참여자와 연결이 되어야 하는 관계

   - 선택참여 : 목록은 주문이 될수도 있고 되지 않을수도 있는 반드시는 아닌 관계

 

4. 관계의 정의 및 읽는 방법

가. 관계 체크사항

   - 두 개의 엔터티 사이에 관심있는 연관규칙이 존재하는가?

   - 두 개의 엔터티 사이에 정보의 조합이 발생되는가?

   - 업무기술서, 장표에 관계연결에 대한 규칙이 서술되어 있는가?

   - 업무기술서, 장표에 관계연결을 가능하게 하는 동사가 있는가?

 

나. 관계 읽기

  - 기준(Source) 엔터티를 한 개(One) 또는 각(Each)으로 읽는다.

  - 대상(Target) 엔터티의 관계참여도 즉 개수(하나, 하나 이상)를 읽는다.

  - 관계선택사양과 관계명을 읽는다.