포스트

5. er model

5. er model

5. ER Model (23. 10. 26)

개체 관계 데이터 모델

  • 데이터를 개체(Entity), 속성(Attribute), 관계(Relationship)로 나타내는 데이터 모델
  • 실 세계를 개체(Entity)라 불리는 기본 객체들과 그 객체들 사이의 관계로 인식
  • 데이터베이스의 전체 논리적 구조를 나타내는 조직의 스키마(Enterprise Schema)를 명시함으로써 데이터베이스를 쉽게 설계하도록 개발됨
  • 실세계의 조직의 의미와 상호작용을 개념적 스키마로 나타내는데 매우 유용함

개체, 속성, 개체 집합

  • 개체 (Entity)
    • 실제 세계에서 다른 객체와 구별되는 유, 무형의 사물
  • 속성(Attribute)
    • 한 개체를 기술하기 위한 속성
    • 개체 집합에 속한 모든 개체들은 동일한 속성을 가짐
    • 가능한 집합을 Domain으로 설정, 식별을 위한 Key를 가진다.
  • 개체 집합(Entity Set)
    • 개체들의 집합

관계, 관계 집합

  • 관계 (Relationship)
    • 여러 개체들 사이의 연관성
  • 관계 집합(Relationship set)
    • 같은 유형의 관계들의 집합. n ≥ 2 개의 개체집합(중복 허용) 사이의 수학적 관계
  • 만약 E1, E2… 들이 개체 집합일때 관계집합 R은

    ${(e1, e2,… en)e1 ∈ E1 … en ∈ En}$

    의 부분 집합이다. 여기서 e1, e2… 는 관계

개체 집합 → 관계 집합

  • 개체 집합은 하나의 릴레이션으로 매핑
사번이름주차구역번호
1이순신47
2홍길동16

Untitled

이러한 직원 테이블의 DDL 은 다음과 같다 .

1
2
3
4
5
6
7
CREATE TABLE 직원 (
	사번	        int,
	이름	        varchar(10)m
	주차구역번호	int,

	CONSTRAINT pk_employee PRIMARY KEY(사번)
)
  • 이러한 둘 이상의 개체과 관련성을 말한다면 이를 관계로 연계하고 합하는 것을 관계 집합 이라고 한다.
  • 만약 관계로 매핑한다면?

Untitled

  • 개체 집합처럼 관계집합도 관계로 매핑된다.
    • 참여하는 각 개체 집합의 기본키 속성 (외래 키 필드의 자격)
    • 관계 집합 자체의 설명형 속성
  • DDL

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
      CREATE TABLE 근무 (
      	사번 int,
      	부서번호 int,
      	근무시작일 date,
        
      	CONSTRAINT pk_근무 PRIMARY KEY(사번, 부서번호),
      	CONSTRAINT fk_근무_직원 FOREIGN KEY(사번) REFERENCES 직원(사번),
      	CONSTRAINT fk_근무_부서 FOREIGN KEY(부서번호) REFERENCS 부서(부서번호)
      )
    
    1
    2
    3
    4
    5
    6
    7
    
      CREATE TABLE 보고 (
      	상급자_사번	int,
      	하급자_사번	int,
      	CONSTRAINT pk_보고 PRIMARY KEY(상급자_사번, 하급자_사번),
      	CONSTRAINT fk_보고_상급자 FOREIGN KEY(상급자_사번) REFERENCES 직원(사번),
      	CONSTRAINT fk_보고_하급자 FOREIGN KEY(하급자_사번) REFERENCES 직원(사번)
      )
    

대응 수

  • 참여 제약 조건(Participation Constraint)을 이루는 관계 비율
  • 대응 수(Mapping Cardinality) 또는 수비율(Cardinality Ratio)
    • One-to-One

      A의 한 개체는 B의 한 개체와 연관을 가지고 B의 한 개체는 A의 한 개체 연관을 가진다.

    • One-to-Many

      A의 한 개체는 임의의 수 (0 또는 그 이상)의 B 개체와 연관을 가진다. 그러나 B의 개체는 A의 한 개체만 연관을 가진다.

    • Many-to-One

      A의 한 개체는 B의 한 개체와 연관을 갖는다. 그러나 B의 개체는 A의 임의의 수 (0또는 그 이상)의 개체와 연관을 갖는다.

    • Many-to-Many

      A의 한 개체는 임의의 수(0 또는 그 이상)의 B 개체와 연관을 갖고 B의 한 개체도 임의의 수 (0 또는 그 이상)의 A 개체와 연관을 갖는다 s

  • 수 비율이라도 불리며 관계집합을 통하여 다른 개체와 관련 될 수 있는 개체의 수를 나타낸다.

키 제약 조건

  • 키 제약 조건에 따라 대응수가 정해짐

    Untitled

    • 각 부서에 한명의 부서장이 있다 → 키 제약조건
    • 한 직원이 부서장으로 여러 부서와 관련있을 수 있지만, 각 부서는 한명의 직원만 부서장으로 관련되는것 → 일대다
    • 한명의 직원이 여러 부서 근무 가능, 부서에는 여러명의 직원이 근무 가능 → 다대다

약 개체 집합

  • 키가 존재하지 않는 개체집합
    • 자신의 일부 속성과 다른 개체의 Primary Key를 조합하여야 유일하게 식별 됨
    • 다른 개체를 식별 소유자(Identity Owner)라고 함
  • 다음 조건들을 만족할 때 성립
    • 식별 소유자와 약 개제 집합 사이에는 One-to-Many 관계 집합이 성립
    • 약 개체 집합은 식별 관계집합에 전체적으로 참여하여야 함
    • 소유자 개체에 대해 약 개제 하나를 유일하게 식별해 주는 속성 집합을 약 개체집합에 대한 구별자(discriminator) 또는 부분 키(Partial Key)라고 함
  • 예를 들어 직원들에 대한 가족에 대한 보험증권 구매의 경우 피 부양자를 약 개체 집합 이라고 부른다.
  • 자기 자신의 일부 속성과 다른 개체의 기본키를 조합해야만 식별 가능한 것 이때 사용되는 다른 개체를 식별 소유자 라고 불린다. 그리고 자기 자신의 일부 속성을 부분 키 라고 불린다.

Specialization와 Generalization

  • 하나의 개체 집합은 집합내의 다른 개체들과 구분되는 개체들의 하위집합을 가질 수 있음
    • 개체 집합 내의 어떤 부분집합은 개체 집합내의 모든 개체들과 공유되지 않는 속성들을 가질 수 있음
    • 개체 집합에 속한 세부 개체들을 세부 부류(subclass)로 분류
  • 포함 제약 조건(Inclusion Constraint)
    • 중첩 제약 조건(Overlap Constraints)

      두 서브 클래스에 같은 개체가 포함될 수 있는가를 결정

    • 포괄 제약 조건(Covering Constraints)

      서브 클래스의 모든 개체를 모으면 수퍼 클래스의 모든 개체가 되어야 하는가를 결정

  • ISA 계층 구조 → 자바의 상속과 비슷함
  • 만약 일반 직원 개체와 시간제 직원 개체를 만든다면 일반 개체에 시간제 직원을 자식으로 일반적인 직원의 정보와 시간제 직원 개체만의 특성을 갖는다. (상속) → 임원도 마찬가지지
  • 하지만 Java 와 다른 포함 제약조건 이 따른다.

개념적 설계 고려사항

ER 모델을 이용한 개념적 설계

  • ER 다이어그램 개발 과정은 선택의 연속
  • ER 다이어그램은 데이터를 최대한 비슷하게 설명할 뿐, 모든 의미를 다 표현할 수 없음
  • ER 모델링은 스키마 설계에 대한 완벽한 방법이 아님

개체 or 속성

  • 속성으로 모델링 하는 경우
  • 한 개체가 속성을 단일 값으로 가지는 경우
  • 요구 사항에서, 수직, 수평적으로 분리될 수 없는 값인 경우
  • 개체로 모델링하는 경우
  • 한 개체가 여러 개의 값을 가지는 경우
  • ER 다이어그램에서 주소의 구조를 표현해야 하는 경우

  • 어떤 개체 집합에 있어 속성으로 표현할 것인지 관계집합으로 표현할 것인지는 요구사항에 따라 달라진다.
  • 만약 주소를 하나의 개체 집합으로 만들고 관계를 할 수도 있다. → 만약 직원들이 여러 주소를 가지고 있을 경우
    • 이럴 경우 주소에 대한 질의를 작성하기도 가능하다.

개체 or 관계

  • 개체로 모델링하는 경우
    • 관계가 관계로 생성되는 한 개체에 국한되는 속성을 가짐
    • A 개체집합의 개체가 정확히 B 개체집합의 한 개체에만 해당
  • 관계로 모델링 하는 경우
    • 관계집합에서 중복이 발생하는 경우
    • 두 개체 사이에 일어나는 동작을 기술하는 경우
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

© 김규형. 일부 권리 보유

Powered by Jekyll with Chirpy theme