2. Conceptual Design: ER Modeling

코와->코어·2021년 10월 7일
0

데이터베이스

목록 보기
3/6
post-thumbnail

데이터베이스 설계: 3단계

  1. 개념 설계 : ER Model
  • 사용자의 데이터 요구사항 기술
  • DBMS, H/W와 무관
  • High Level Conceptual Schema (= ER Diagram)
  1. Logical Design
  • 특정 DBMS를 이용해 실제 구현
  • DBMS 종속, but H/W 무관
  • Logical (Low Level Conceptual) Schema
  1. Physical Design
    – 접근 경로, 인덱스, 파일 구조 구체화
    – DBMS,H/W 종속
    – Internal Schema

왜 개념적 설계(ER Model)가 필요한가?

  • 자동화된 소프트웨어 툴이 없다: 데이터베이스 설계자가 해야 한다
  • target DBMS 선택을 연기할 수 있다
  • ER Model이 가장 광범위하게 사용되는 툴이다

Terms

Entity 개체

  • Entity는 실세계에 존재하는 사물 혹은 객체이다

Attribute 속성

  • Attribute는 entity를 묘사하는 성질이다

  • Simple Attribute : 하나만 있고 쪼갤 수 없는 값

  • Composite Attribute : 다른 속성들로 구성되는 값

  • Multi-Valued Attribute : 하나 이상의 여러 값을 가진다

  • Complex Attribute : Composite + Multi-valued

  • Derived Attribute : 다른 속성들로부터 계산되는 값

  • Null Attribute : 알지 못하거나 존재하지 않는 값

Entity type 개체형

  • 같은 속성 구조를 공유하는 개체들의 집합

Key 키

  • 각각의 개체를 유일하게 식별하는 속성들의 집합
  • 키 속성의 모든 값들은 서로 달라야 한다
  • 개체형은 하나 이상의 키 속성을 가질 수 있다

Relationship 관계

  • 여러 개체형들을 연결/관련짓는다

Relationship Type 관계형

  • 비슷한 관계들의 집합
  • 관계에 참여하는 개체형들의 숫자에 따라
    1) Unary (= Recursive) Relationship : Degree 1
    2) Binary Relationship : Degree 2
    3) Ternary Relationship : Degree 3

관계 제약조건

1. Mapping Constraints

  • 관계형을 통해 다른 개체와 연결될 수 있는 개체의 개수
  • One to One (1 : 1)
  • Many to One (M : 1)
  • One to Many (M : 1)
  • Many to Many (M : N)

2. Participation Constraints

  • Total (= Mandatory) : 모든 개체가 관계에 참여해야 함
  • Partial (= Optional) : 어떤 개체들은 참여안 해도 됨

3. (Min, Max) Constraints

  • min = 0 : partial
  • min > 0 : total
  • min <= max; min >= 0; n >= max >= 1

Recursive Relationship

  • 참여하는 양쪽의 동일한 entity type들을 구분하기 위해 서로 맡은 다른 role (역할)들이 필요함.

Weak entity type 약한 개체형

  • 키를 갖지 않은 개체형

  • 약한 개체형을 식별하기 위해 주인 개체형(강한 개체형)을 찾아야 한다

  • 주인 개체형은 약한 개체형과 약한 관계를 가진다

  • 주인은 항상 자신의 키를 가진다

  • Weak entity type은 Owner와 M : 1 (1 : 1) 관계;

  • Weak entity type은 항상 total participation;

  • Weak entity type의 Key는? : {Key of Owner + Partial Key of Weak entity type}

  • Partial key는 owner key의 도움을 받아 weak entity들을 식별할 수 있는 일종의 부분 key를 의미

  • 존재 종속 : Weak entity의 존재는 owner에 종속됨. 만약 어떤 owner entity가 DB에서 삭제되면, 이와 relationship을 갖는 weak entity들 모두 역시 삭제되어야 함)

attribute to a relationship 관계 속성;

  • 일반적으로 m : n 관계를 갖는 relationship에서 요구됨.
  • 1 : 1인 경우, relationship의 attribute를 양쪽 entity type들 중 어떤 쪽으로도 이동해도 상관없음;
  • 반면에 m : 1 인 경우에는 반드시 m-side의 entity type으로만 이동해야 함.

Ternary Relationship
두 개 이상의 개체형을 연결하는 관계

  • 어떤 데이터베이스 설계 도구는 ternary 관계를 허락하지 않음

  • ternary 관계는 여러 개의 binary 관계로 표현될 수 있음

  • ternary 관계를 약한 개체형으로 표현하면 binary로 바꿀 수 있음

  • ternary 관계에서 약한 개체형은 부분 키 없이 3개의 주인 키에 의해 식별된다
    SUPPLY의 key = {Sname, Proj-name, Part-no} 부분 키 없어도 됨

A Few ER Design Guidelines

  • 중복을 피하라
  • entity와 attribute를 잘 구분해라
profile
풀스택 웹개발자👩‍💻✨️

0개의 댓글