데이터베이스 04-01 (ER Model, DB설계 2단계, 개념적 설계 단계)

📌

엔티티 타입 [Entity Type] : 스키마
엔티티 [Entity] : 개체들 : 인스턴스

💡엔티티들간의 관계성 표현

  • 엔티티
    ; 하나의 엔티티는 사람, 장소, 사물, 사건등과 같이 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 객체
    ; 실체가 있는 것도 있지만 생각이나 개념과 같이 추상적인 것도 있음
  • 엔티티 타입
    스키마와 유사
    동일한 애트리뷰트들을 가진 엔티티들의 틀
    직사각형으로 나타냄
  • 엔티티 집합
    동일한 애트리뷰트들을 가진 엔티티들의 모임
    튜플들이 여러개들어있는 DB, DB State
    튜플(인스턴스)들의 집합 (* 각 튜플, record들은 엔티티에 속함 )
ER Diagram에서는 엔티티 타입(스키마)과 엔티티 집합(인스턴스)을 엄격하게 구분하지 않음

강한 엔티티 타입

독자적으로 존재하며,
엔티티 타입 내에서 자신의 키 애트리뷰트를 사용해 고유하게 엔티티들을 식별

약한 엔티티 타입

키를 형성하기에 충분한 애트리뷰트들을 가지지 못한 엔티티 타입

  1. 고유한 식별 정보를 가지지 못함.
  2. 약한 엔티티 타입이 존재하려면 소유 엔티티 타입이 있어야함
  3. 강한 엔티티 타입이 소유 엔티티 타입이 될 수 있음.
  4. 강한 (소유) 엔티티 타입 or 식별 엔티티 타입의 키 애트리뷰트를 결합해야만, 고유하게, 약한 엔티티 타입의 엔티티들을 식별 할 수 있음
  5. 이중선 직사각형으로 표기
  6. 약한 엔티티 타입의 부분키는 점선 밑줄을 그어 표시
  7. 부분 키 : 전체에서는 중복이 생길 수 있음

애트리뷰트

  • 하나의 엔티티는 연관된 애트리뷰트들의 집합으로 설명 됨
    (ex. 사원 엔티티는 사원번호, 이름, 직책, 급여 등의 애트리뷰트를 가짐)
  • 한 애트리뷰트의 도메인은 그 애트리뷰트가 가질 수 있는 모든 가능한 값들의 집합을 의미
    (예: 사원번호는 1000부터 9999까지의 값을 가짐)
  • 여러 애트리뷰트가 동일한 도메인을 공유할 수 있음
    (예: 사원번호와 부서번호가 네 자리 정수를 가질 수 있음)
  • 🔑키 애트리뷰트 : 한 엔티티 타입 내에서 각 엔티티들을 고유하게 식별해낼 수 있는 능력을 가진 애트리뷰트
  • ER Diagram에서 기본 키에 속하는 애트리뷰트는 밑줄을 그어 표시함
  • 애트리뷰트는 요구사항 명세에서 명사나 형용사로 표현

  • ER Diagram에서 애트리뷰트는 타원형으로 나타냄

  • 애트리뷰트 와 엔티티 타입은 실선으로 연결

엔티티와 애트리뷰트의 차이점

엔티티는 독립적인 의미를 갖는데 반해, 애트리뷰트는 독립적인 의미를 갖지 않음.

1). 단순 애트리 뷰트

  • 더 이상 다른 애트리뷰트로 나눌 수 없는 애트리뷰트
  • ER Diagram에서 실선 타원으로 표현
  • 대부분의 애트리뷰트는 단순 애트리뷰트

2). 복합 애트리뷰트 (composite attribute)

  • 두 개 이상의 애트리뷰트로 이루어진 애트리뷰트
  • 동일한 엔티티 타입이나 관계 타입에 속하는 애트리뷰트들 중에서 밀접하게 연관된 것을 모아놓은 것

3). 단일 값 애트리 뷰트(single - valued attribute)

  • 각 엔티티 마다, 정확하게 하나의 값(unique value)을 갖는 애트리뷰트
  • 단순 애트리뷰트 중에서 단일 값 애트리뷰트들은 기본 키를 가짐

4). 다치 애트리뷰트

  • 각 엔티티마다 여러 개의 값을 가질 수 있는 애트리뷰트
  • 이중선 타원으로 표현

5). 저장된 애트리뷰트

  • 다른 애트리뷰트와 연관성 없이 독립적으로 존재
  • 딱히 구분x

6). 유도된 애트리뷰트

  • 다른 애트리뷰트의 값으로부터 얻어진 애트리뷰트
    (ex. 주민번호를 입력하니 나이를 알 수 있다)

  • 관계 DB에서 Relation의 애트리뷰트로 포함시키지 않는 것이 좋음. (변할 수 있기 때문)

  • 점선 타원으로 표현


관계와 관계 타입

관계는 엔티티들 사이에 존재하는 연관이나 연결로서, 두 개 이상의 엔티티 타입들 사이의 사상(=mapping)으로 생각 할 수 있음

  • 관계 '집합'은 동질의 관계들의 집합
  • 관계 '타입'은 동질의 관계들의
  • 관계 = 동사 표현
  • 다이아몬드로 표기
  • 관계 타입이 서로 연관시키는 엔티티 타입들을 관계 타입에 실선으로 연결
  • 관계 집합, 타입을 엄격히 구분x

관계의 애트리뷰트

  • 관계 타입은 관계의 특징을 기술하는 애트리뷰트들을 가질 수 있음
  • 키 애트리뷰트를 갖지 않음
  • 마름모를 설명하는 attribute, quantity

차수(degree)

관계의 차수는 관계로 연결된, 엔티티 타입들의 연관 개수

  • 2진 관계(두 개의 엔티티 타입을 연결)가 가장 흔함

카디널리티 비율

한 엔티티가 참여할 수 있는 관계의 수

  • 관계 타입에 참여하는 엔티티들의 가능한 조합을 제한함.
  • 관련 정보는 간선 위에 표현
  • 관계 타입과 엔티티 타입을 연결하는 실선 위에 (min, max) 형태로 표기
    (💡이 엔티티 타입 내의 각 엔티티는 적어도 n번의 관계에 참여함)
  • min = 0 → 어떤 엔티티가 반드시 관계에 참여해야 할 필요는 없음
  • max = n → 어떤 엔티티가 관계에 n번만큼 참여할 수 있음을 의미

역할 (두번째 제약조건)

관계 타입의 의미를 명확하게 하기 위해 사용

  • 특히 하나의 관계 타입에 하나의 엔티티 타입이 여러번 나타나는 경우 반드시 역할 표기!
  • 관계 타입의 간선 위에 표시

전체 참여

엔티티 타입 E1의 모든 엔티티들이 관계 타입 R에 의해 엔티티 타입 E2의 어떤 엔티티와 연관되는 것

부분 참여

엔티티 타입 E1의 일부 엔티티만 참여하는 것

다중 관계

두 엔티티 타입 사이에 두 개 이상의 관계 타입이 존재할 수 있음

순환적 관계

하나의 엔티티 타입이 동일한 관계 타입에 두번 이상 참여하는 것

좋은 웹페이지 즐겨찾기