Database

[Database] ER(Entity-Relationship) Model과 IE(Information Engineering)

구루싸 2020. 11. 11. 15:21
반응형
SMALL

ER Model은 1976년 ER모델에 대한 Peter Chen의 논문에 의해 발표되고 미국 산업 표준으로 채택되었으며 시스템 개발의 최고의 기법이며 데이터베이스 설계를 위한 최고의 방법론으로 선정되었습니다. 현장에서는 이 모델링 기법보다는 IE(Information Engineering) 기법이 적용되고 있습니다.

 

엔터티(Entity)

  • 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것
  • 반드시 해당 업무에서 필요하고 관리하고자 하는 정보이어야 함
  • 유일한 식별자에 의해 식별이 가능해야 함
  • 영속적으로 존재하는 인스턴스의 집합이어야 함
  • 업무 프로세스에 의해 이용되어야 함
  • 반드시 속성이 있어야 함
  • 다른 엔터티와 최소 한 개 이상의 관계가 있어야 함

엔터티의 분류

  1. 유무형에 따른 분류
    • 유형 엔터티
    • 개념 엔터티
    • 사건 엔터티
  2. 발생시점에 따른 분류
    • 기본/키 엔터티
    • 중심 엔터티
    • 행위 엔터티

속성

  • 인스턴스에서 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위
  • 엔터티는 속성들에 의해 설명됨

속성의 분류

  1. 특성에 따른 분류
    • 기본 속성
      • 업무분석을 통해 바로 정의한 속성
    • 설계 속성
      • 원래 업무상 존재하지는 않지만 설계를 하면서 도출해내는 속성
    • 파생 속성
      • 다른 속성으로부터 계산이나 변형이 되어 생성되는 속성
  2. 구성방식에 따른 분류
    • PK(Primary Key) 속성
      • 엔티티를 식별할 수 있는 속성
    • FK(Foreign Key) 속성
      • 다른 엔티티와의 관계에서 포함된 속성
    • 일반 속성
      • 엔티티에 포함되고 PK, FK가 아닌 속성

관계

  • 엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태

식별자

  • 하나의 엔터티에 구성되어 있는 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성을 의미
  • 주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분함(유일성)
  • 주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함(최소성)
  • 주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야 함(불변성)
  • 주식별자가 지정되면 반드시 데이터 값이 존재(존재성)

식별자의 분류 및 표기법

분류 식별자 설명
대표성여부 주식별자 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조 관계를 연결할 수 있는 식별자
보조식별자 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이나 대표성을 가지지 못해 참조 관계 연결을 못하는 식별자
스스로 생성 여부 내부식별자 엔터티 내부에서 스스로 만들어지는 식별자
외부식별자 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자
속성의 수 단일식별자 하나의 속성으로 구성된 식별자
복합식별자 둘 이상의 속성으로 구성된 식별자
대체 여부 본질식별자 업무에 의해 만들어지는 식별자
인조식별자 업무적으로 만들어지지는 않지만 원조식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만든 식별자

관계에 따른 식별자

부모 엔터티의 주식별자가 자식 엔터티의 주식별자 혹은 일반 속성으로 상속이 되는지에 따라 데이터 모델링에서는 다양한 의미를 가질 수 있습니다. 

항목 식별자 관계 비식별자 관계
목적 강한 연결 관계 약한 연결 관계
관계 자식 주식별자 구성에 포함 자식 일반 속성에 포함
표기법 실선 점선
고려사항 ☞ 반드시 부모 엔터티 타입 종속
☞ 자식 주식별자 구성에 부모 주식별자 포함 필요
☞ 상속 받은 주식별자 속성을 타 엔터티에 이전 필요

☞ 약한 종속 관계
☞ 자식 주식별자 구성에 독립적으로 구성
☞ 자식 주식별자 구성에 부모 주식별자 부분 필요
☞ 상속받은 주식별자 속성을 타 엔터티 타입에 차단 필요
☞ 부모쪽의 관계 참여가 선택 관계
☞ SQL 문장이 Join의 조건절 연결로 너무 길어질 경우

 

 

확장(Extended) ER Model

  • 기본적 개체-관계 모델에 일반화와 집단화를 지원할 수 있는 기능들을 첨가해서 모델을 만듬
  • 하나의 개체 집합을 몇 개의 하위 개체(Subtype) 집합으로 분리하고 상위 개체의 속성을 상속함(특수화)
  • 특수화의 역방향 설계로서 몇 개의 개체 집합으로 합해서 상위 레벨의 한 개체 집합으로 만듬(일반화)
  • 부분집합들의 합집합 개념(집단화)이 있으며 아래의 두 가지 경우가 있음
    • 한 엔터티의 속성들을 집단화해서 하나의 엔터티로 만드는 경우
    • 엔터티와 엔터티 간의 관계 집합 자체를 하나의 복합 개체로 만들어 일반 개체 집합으로 취급하는 경우
  • 대표적으로 수퍼타입/서브타입 모델링 기법이 있으며 수퍼타입/서브타입 관계를 살펴보면 아래와 같음
    • 공통의 속성을 가지는 수퍼 타입과 공통 부분을 제외하고 두 개 이상의 엔터티 타입의 속성이 상호간 차이가 있을 때 별도의 서브타입으로 존재
    • 수퍼타입과 서브타입은 1:1 관계를 가짐
    • 서브 타입을 구분할 수 있는 구분 형식에 따라 수퍼 타입의 특정 엔터티가 반드시 하나의 서브 타입에만 속해야 하는 배타적 관계(Exclusive Relationship)와 수퍼타입의 특정 엔터티가 두 개 이상의 서브 타입에 포함될 수 있는 포함 관계(Inclusive Relationship)로 구분
  • 논리적인 데이터 모델링을 전개할 때 수행하는 방식
  • 물리적인 데이터 모델링을 할 때는 관계형 데이터베이스에 생성하기 위해 아래의 변환과정을 거쳐야 함
구분 OneToOne Type(Rollup) Plus Type(Rolldown) Single Type(Identity)
특징 개별 테이블 유지 수퍼/서브 타입 테이블 하나의 테이블
확장성 우수함 보통 나쁨
조인 나쁨 나쁨 우수함
I/O 좋음 좋음 나쁨

연결 함정(Connection Trap)

  • 데이터모델의 관계가 연결되어 있음에도 불구하고 정확하게 정보를 찾아갈 수 없는 함정을 의미함
  • 연결 함정의 종류는 아래와 같음

1) 부채꼴 함정(Fan Trap)

  • 기준 엔터티를 중심으로 양쪽으로 1:M의 관계를 형성

2) 균열 함정(Chasm Trap)

  • 선택 관계가 양쪽에 존재할 때 조부모에서는 중간에 경로가 끊기는 관계를 의미함

데이터 무결성

  • 데이터의 중복이나 누락이 없는 정확성과 원인과 결과 의미의 연속성이 보장되는 일관성이 확보된 상태
  • 자료의 효율적 관리가 가능
  • 사용자 및 개발자의 생산성 향상
  • 약간의 성능 저하를 동반
  • 무결성 종류는 아래와 같음
종류 의미
엔터티 무결성 PK의 속성이 Null을 허용할 수 없음
키 무결성 한 릴레이션에 같은 키 값을 가진 튜플을 허용하지 않음
참조 무결성 FK가 참조하는 다른 개체의 해당하는 값이 PK 값이나 Null이어야 함
속성 무결성 속성의 값은 기본값, Nullable, 도메인이 지정된 규칙을 준수하여 존재해야 함
사용자 무결성 사용자의 의미적 요구사항을 준수 해야함

OR매핑(Object Relational Database Mapping)

  • 객체지향 프로그래밍시 설계할 클래스들과 데이터 저장소로 이용될 RDBMS 테이블 간의 Mapping을 의미함
  • OR매핑은 아래와 같은 절차로 수행됨
    • Class를 Table로 변환
    • Attribute를 Column으로 변환
    • Operation은 변환하지 않음
  • 클래스의 관계를 테이블의 관계로 변환함

이번 학습을 마치겠습니다.

그럼 이만-_-

 

반응형
LIST