Programing/[DB]SQL

[DB] E-R 모델을 이용한 데이터베이스 디자인(2), UML

바오밥 하단 2020. 10. 11. 02:54


(Key 정리)

- 슈퍼키(super key): 중복되지 않고 어떤 튜플을 유일하게 구분할 수 있는 테이블 안의 속성들의 조합. 튜플을 유일하게 구분할 수 만 있으면 여러개가 존재 할 수 있음.

- 후보키(candidate key): 슈퍼키 중 최소성(최소한의 속성의 집합)을 만족 하는 키. 유일성 + 최소성

- 기본키(primary key): 후보키 중에서 하나를 선택한 키. NULL값과 중복값을 가질 수 없음.

- 대체키(alternate key): 후보키 중에서 기본키로 선택되지 못한 키

- 부분키(partial key): 약한 개체를 유일하고 최소한으로 구분하는 키. 즉, 약한 개체의 기본키. (= 구별자)

- 외래키(foreign key): 다른 테이블의 기본키를 참조하는 키. 중복 값을 가질 수 있으며 NULL값이 허용됨.

 


특수화(Specialization)

- 하향식 설계방식(Top-down design process)

- 하나의 개체 타입을 속성을 같는 몇 개의 하위 레벨 개체 타입으로 분리한다.

- ISA라고 적힌 삼각형으로 표현.

- 개체 상속 (Attribute inheritance): 하위 레벨 개체는 자신과 연결된 상위 레벨 개체 집합의 모든 속성과 관계를 상속받는다. 맨 위의, 상위 계층 개체가 가장 많이 상속한다.

 

일반화(Generalization)

- 상향식 설계방식(bottom-up design process)이다.

- 특수화의 역 방향 설계로 ER 다이어그램에서 같은 방식으로 표현되며 서로 바꿔서 부를 수 있다.

- 몇 개의 개체 타읍을 합쳐서 상위 레벨의 한 개체로 만든다.

 

※ ISA 관계는 superclass - subclass relationship로 불리기도 한다


특수화/일반화의 제약 조건

- 하위 레벨 개체 집합의 멤버가 될 수 있는 제약: 조건에 의한 정의(condition-defined)/사용자에 의한 정의(user-defined)

- 분리(disjoint): 하나의 객체는 반드시 하나의 하위 개체 집합에만 속할 수있다. ISA 삼각형 옆에 'disjoint'라고 표기함으로써 표현되며 반드시 특수화/일반화에 명시되어야 한다.

- 중첩(overlapping): 한 객체가 하나 이상의 하위 개체 집합에 속할 수 있다. 중첩이 기본 사항이므로 따로 표기하지 않는다.

- 완전성 제약조건(Completeness constraint): 상위 개체 집합의 개체가 특수화/일반화에서 반드시 하나 이상의 하위 개체 집합에 속해야하는지 아닌지에 대한 것.

  • 전체(total): 상위 개체는 반드시 하위 개체 집합에 속한다. 이중선을 이용하여 표현.
  • 부분(partial): 어떤 상위 개체는 하위 개체 집합에 속할 수도, 속하지 않을 수도 있다. 기본사항이므로 따로 표시하지 않는다.

 

집단화(Aggregation)

- 각 구성 요소를 표현하는 개체 집합으로부터 새로운 개체를 정의한다. 서로 관련이 있는 여러 개체 타입을 묶어 한 개의 상위 개체 타입으로 만든다.

- 중복되는 관계를 단순한 관계로 표현하는 것이 가능해진다.

※ 아래 그림에서 모든 manages는 work_on와 연결되지만 모든 woks_on는 manages에 연결되지 않기 때문에 이 둘은 중첩된다. 중첩을 지우기 위해 관계들 사이에 추상적인 개체의 관계를 만들어 그 밑의 그림처럼 바꿔줄 수 있다.

 


ER 다이어그램 표현 Symbol 정리


UML(Unified Modeling Language)

- 전체 소프트웨어 시스템의 다양한 측면을 그래픽으로 모델링하는 많은 컴포넌트를 가지고 있다.

- UML Class Diagram은 E-R Diagram과 유사하지만 몇가지 차이가 있다.

1) 개체타입과 속성: 개체 집합은 박스로 표현되고, 속성은 박스 안에 있다.

2) 관계: binary 관계 집합은 집합을 연결하는 선만 그린다. 관계 집합의 이름과 관계 집합 안의 개체 집합에 수행되는 역할은 줄에 인접하여 작성한다. 관계집합의 이름은 속성과 함께 박스 안에 기재할 수 있고 점선으로 연결된다. non-binary는 다이아몬드를 이용한다.

3) 카디널리티 제약 조건: 제약조건의 위치는 E-R과 반대이다. 아래 그림에서 E2의 0..*은 최대 하나의 관계에 참여한다는 것을 뜻하고, E1의 0..1은 각 E1의 개체는 다양한 관계에 참여할 수 있다는 것을 의미한다. 1 혹은 * 같은 단일값 중에서 1은 1..1(오직 하나만)과 같고 *은 0..*(0부터 *개까지)과 동일하게 처리된다.

4) 특수화/일반화