ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 엔티티, 속성,관계
    데이터베이스 2021. 5. 2. 14:44

    엔티티

     

    엔티티는 사람, 장소, 물건, 사건, 개념 등의 명사에 해당한다.

    엔티티는 업무상 관리가 필요한 관심사에 해당한다.

    엔티티는 저장이 되기 위한 어떤 것이다.

     

    엔티티란 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것으로 설명할 수 있다.

    또, 엔티티는 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서 그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합으로 정의할 수 있다.

    엔티티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성을 갖는다.

    이러한 속성 가운데는 엔티티 인스턴스 전체가 공유할 수 있는 공통 속성도 있고, 엔티티 인스턴스 중 일부에만 해당하는 개별 속성도 있을 수 있다.

     또한 엔티티는 인스턴의 집합이라고 말할 수 있고, 반대로 인스턴스라는 것은 엔티티의 하나의 값에 해당한다고 정의할 수 있다.

    예를 들어 과목에 수학,국어,영어가 있다면 이들은 각각 과목이라는 엔티티의 인스턴스들이라고 할 수 있다.

    엔티티를 이해할 때 눈에 보이는 것만 엔티티로 생각해서는 안되며, 눈에 보이지 않는 개념에 대해서도 엔티티로 인식할 수 있어야한다.

     

     

    엔티티의 특징

    -반드시 해당 업무에서 필요하고 관리하고자 하는 정보여야한다.

     

    -유일한 식별자에 의해 식별이 가능해야 한다.

     유일한 식별자는 그 엔티티 인스턴스만의 고유한 이름이다. 두 개 이상의 엔티티를 대변하면 그 식별자는 잘못 설계된 것이다.

     

    -영속적으로 존재하는 인스턴스의 집합이어야 한다.(두 개이상)

     두 개 이상이라는 개념은 엔티티뿐만 아니라 엔티티간의 관계, 프로세스와의 관계 등 업무를 분석하고 설계하는 동안 설계자가 모든 업무에 대입해보고 검증해 보아야 할 중요한 개념이다. 

    하나의 엔티티에 하나밖에 인스턴스가 없다면 엔티티 성립이 되지 않는다.

     

    -엔티티는 업무 프로세스에 의해 이용되어야 한다.

     

    -엔티티는 반드시 속성이 있어야 한다.

    속성없이 엔티티의 이름만 갖고 있거나, 주식별자만 존재하고 일반 속성이 전혀 없는 경우에 적절한 엔티티라고 할 수 없다. 예외로 관계엔티티는 주식별자만 있어도 엔티티로 인정한다.

     

    -엔티티는 다른 엔티티와 최소 한 개 이상의 관계가 있어야 한다.

    관계가 없는 경우 부적절한 엔티티가 도출되었거나, 다른 엔티티와 적절한 관계를 찾지 못했을 가능성이 높다.

     

    아래 세 경우는 관계를 생략해서 표현해야하는 예외 경우이다.

    1. 통계를 위한 엔티티는 통계만을 위해 readOnly 엔티티를 다시 정의하게 되므로 생략될 수 있다.

    2. 코드를 위한 엔티티는 너무 많은 관계들로 데이터 읽기 효율성이 떨어져 관계를 생략할 수 있다.

    3. 시스템 처리 시 내부 필요에 의한 엔티티(트랜젝션 로그 테이블 등)는 트랜젝션이 업무적으로 연관된 테이블과 관계설정이 필요하나, 업무적 필요가 아닌 시스템 내부 필요에 따라 생성된 엔티티므로 관계를 생략할 수 있다.


    속성

     

    1. 속성의 특성에 따른 분류

    - 기본 속성

    - 설계 속성

    - 파생 속성

     

    2. 엔티티 구성방식에 따른 분류

    엔티티를 식별할 수 있는 속성을 PK 속성, 

    관계에 포함된 속성을 FK 속성,

    나이, 성별 등 더 이상 다른 속성들로 구성될 수 없는 속성을 단순속성, 

    시/구/동/번지와 같은 여러 세부 속성들로 이루어진 복합속성,

    주민등록번호와 같이 반드시 하나의 값만 존재하는 단일값속성, 

    자동차 색상 속성에서 차 지붕,차체, 외부 색 등 다른 여러 값을 가질 수 있는 다중값속성 등이 있다.

    다중 값속성의 경우 하나의 엔티티에 포함 될 수 없으므로 1차 정규화를 하거나, 아니면 별도의 엔티티를 만들어 관계로 연결해야 한다.

     

    도메인

    속성을 가질 수 있는 값의 범위. 예) 학점 속성에는 0.0~4.0까지의 실수 값이 들어간다. 

    엔티티 내에서 속성에 대한 데이터 타입과 크기/제약사항을 지정하는 것 


    관계

     

    관계의 분류

    존재에 의한 관계 (부서와 사원)

    행위에 의한 관계 (고객과 주문)

    UML 에서는 클래스다이어그램 중 연관관계와 의존관계가 있다.

    연관관계항상 이용하는 관계로 존재적 관계가 형성될 때를 말하며, 연관관계는 실선으로 표현, 클래스의 멤버변수로 사용한다.

    의존관계행위에 의해 관계가 형성될 때를 말한다. 의존관계는 점선으로 표현, 메서드 파라미터로 이용한다.

     

    관계의 표기법

    1. 관계명

    2. 관계차수 

    3. 관계선택사양 (필수참여, 선택참여)

     

    선택참여된 항목은 물리속성에서 FK 로 연결될 경우, Null 을 허용할 수 있는 항목이 된다.

    만약 선택참여해야할 항목을 필수참여로 잘못 지정하면, 애플리케이션에서 데이터가 발생할 때 반드시 한개의 트랜젝션으로 제어해야하는 제약사항이 발생한다.

    그러므로 설계 단계에서 필수참여와 선택참여는 개발시점의 업무 로직과 직접적으로 관련된 부분이므로 반드시 고려해야한다.

     

    관계 정의 읽는 방법


    출처 

    SQL 전문가 가이드 2020 개정판 -한국데이터 산업진흥원

     

    반응형

    '데이터베이스' 카테고리의 다른 글

    조인  (0) 2021.05.08
    단일함수, 집계함수  (0) 2021.05.05
    정규화  (0) 2021.05.03
    식별자  (0) 2021.05.02
    데이터 모델링  (0) 2021.05.01
Designed by Tistory.