데이터 모델링2010. 6. 24. 05:52
서브타입

확장된 개체-관계 다이어그램은 서브타입의 개념을 도입했다. 서브타입은 정확한 의미로는 서브 타입 엔터티이며 그것의 전체집합인 슈퍼타입(Supertype)의 부분집합이다. 예를 들어 학생들은 학 부학생이나 대학원생으로 분류될 수 있다. 이 경우 학생이 슈퍼타입이고 학부학생과 대학원생은 서브타입이다.

사용자 삽입 이미지
                                                                       [그림 3]

[그림 3]은 바커 표기법에 따른 서브타입 표현으로, 슈퍼타입인 사원은 서브타입인 내근사 원, 설계사, 대리점을 가지고 있다. 슈퍼타입은 세 서브타입에 공통적인 모든 속성을 포함하고 있고 서브타입은 각 서브타입에 적절한 속성만을 포함하고 있다.

사용자 삽입 이미지

                                                                           [그림 4]


사용자 삽입 이미지
                                                                       [그림 5]

[그림 3]에서 속성‘사원구분’은 내근사원, 설계사, 대리점인지를 가리킨다. 어떤 서브타입 이 적합한지를 결정해 주는 속성을 구분자(Discriminator)라고 부른다. IE 표기법을 사용하는 툴을 사용하면 [그림 5]와 같이 구분자는 서브타입 부호 바로 옆에 나타난다. 모든 슈퍼타입이 구분 자를 가지고 있는 것은 아니다. 만일 구분자가 없다면 적합한 서브타입을 생성하기 위해 응용 코드가 작성되어야 한다. 서브타입은 배타적(Exclusive) 또는 포괄적(Inclusive)일 수 있다. 만약 배타적이 라면 슈퍼타입은 많아야 1개의 서브타입과 관련될 수 있다. 만약 포괄적이라면 슈퍼타입은 1개 또는 그 이상의 서브타입과 관련될 수 있다. [그림 5]는 서브타입 MANAGER와 DB_ADMIN을 가진EMPLOYEE 슈퍼타입을 보여주고 있다. 돔 안의 X는 서브타입이 배타적인 것을 의미한다. 따라서 사원은 MANAGER나 DB_ADMIN 중 하나가 될 수 는 있으나 둘 다 될 수는 없다. [그림 6] 은 이러한 동일한 서브타입을 포괄적으로 보여주고 있다. 여기서 사원은 MANAGER, DB_ADMIN, 또는 양쪽 모두 될 수도 있다. 슈퍼타입은 두 개 이상의 서브타입과 관련되므로, 포괄적 서브타입은 구분자를 가지고 있지 않다.

사용자 삽입 이미지

                                                             [그림 6]


출처 : DB 포탈 사이트 DBguide.net
Posted by choi1779
데이터 모델링2010. 6. 23. 09:48
카디날리티(Cardinality)

개체-관계 다이어그램은 데이터베이스가 지켜야 할 제약 조건들을 명시할 수 있다. 중요한 제약 조건 중의 하나로 연결(Connectivity)이라는 것이 있는데, 이는 한 개체가 관계를 통하여 다른 개체 와 관련된 개체들의 수를 나타낸다. 관계의 연결은 1:1, 1:M, M:M으로 분류된다. 개체-관계 다이어 그램에서는 관계의 연결을 1, M 을 사용하여 표현하며 [그림1]의 예와 같다. 표기법에 따라서 는 M:M을 M:N으로 표현하기도 하나 여기서는 M:M으로 나타내기로 한다.


사용자 삽입 이미지

                                                                      [그림 1]

  • 일대일(One To One, 1:1) : X에 속하는 한 개체는 Y에 속하는 한 개체에만 연결되며, Y에 속하는 한 개체도 X 에 속하는 한 개체에만 연결된다.
  • 일대다(One To Many, 1:M) : X에 속하는 한 개체는 Y에 속하는 한 개체에만 연결되며, Y에 속 하는 한 개체는 X에 속하는 여러 개체들과 연결된다.
  • 다대다(Many To Many, M:M) : X에 속하는 한 개체는 Y에 속하는 여러 개체들과 연결될 수 있 으며, Y에 속하는 한 개체도 X에 속하는 여러 개체들과 연결될 수 있다.

또한 카디날리티(Cardinality)란 관계에 참여하는 하나의 개체에 대해 다른 엔터티에서 몇 개의 개체가 참여하는지를 나타낸다. 예를 들면 한 명의 학생이 1개 이상 6개 이하의 과목에 등록할 수 있 다면 카디날리티는 (1, 6)이다. 한 명의 교수는 최대 3개의 과목을 가르칠 수 있다면 카디날리티는(0, 3)이다. 카디날리티는 (Min, Max)의 한 쌍의 값으로 표현하는데 여기서 Min은 관계에 참여하는 개체의 최소 개수, Max는 관계에 참여하는 최대 개수를 각각 의미한다. 여기서 Max의 값이 M으로 표시되면 최대 개수에 제한이 없음을 의미한다. [그림 2]에서 PROFESSOR-COURSE의 관 계를 살펴보면 다음과 같이 해석할 수 있다.

사용자 삽입 이미지

                                                                       [그림 2]

1) PROFESSOR-COURSE는 1:M 관계이다.

2) PROFESSOR의 카디날리티는 (0, 3) 이다. 즉 각 교수는 3개 이하의 과목을 가르칠 수 있다.

3) COURSE의 카디날리티는 (1, 1)이다. 즉 각 과목을 가르치는 교수는 반드시 1명이어야 한다.


출처 : DB 포탈 사이트 DBguide.net
Posted by choi1779