[데이터베이스] ER Model 설계(1)- 엔티티, 애트리뷰트, 관계

728x90
반응형

 

목차

    ER Model 설계

    1. 엔티티(Entity)

    2. 강한 엔티티 타입과 약한 엔티티 타입

    3. 애트리뷰트(Attribute)

    4. 관계(Relationship)


    ER Model 설계

    ER Model

    • 초기 고수준(개념적) Database 설계를 표현하는데 사용되는 모델

    • ER Model은 쉽게 관계 데이터모델로 사상됨

    • 기본적인 구문으로는 엔티티, 관계, 애트리뷰트가 있음

    • 기타 구문으로는 카디날리티 비율, 참여 제약조건 등이 있음

     

    [장점]

    • 적은 노력으로 쉽게 배울 수 O

    • 쉽게 이해할 수 O

    • 자연어보다 좀 더 정형적

    • 구현에 독립적이어서 DB설계자들이 최종 사용자들과 의사소통 하는데 적합


    1. 엔티티(Entity)

     

    • 하나의 엔티티: 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 객체

    • 실체가 있는 것(ex. 사원)도 있지만 추상적인 것(생각, 개념)도 O

    • 엔티티 타입은 스키마, 엔티티는 인스턴스

     

     

    * 엔티티 타입 (Entity type, 속성의 집합을 “타입”이라고 명함)

    • 엔티티 타입: 관계 모델의 릴레이션의 내포(스키마). 동일한 애트리뷰트들을 가진 엔티티들의 틀

    • 엔티티 집합: 관계 모델의 릴레이션의 외연(인스턴스, 튜플). 동일한 애트리뷰트들을 가진 엔티티들의 모임

    • 엔티티들: 엔티티 타입(or 엔티티 집합)들에 따라 분류됨.

    • ER Diagram에서는 엔티티 타입과 엔티티 집합을 엄격하게 구분할 필요는 X

     

     

    2. 강한 엔티티 타입과 약한 엔티티 타입

     

    강한 엔티티 타입(정규 엔티티 타입)

        - 독자적으로 존재

        - 엔티티 타입 내에서 자신의 키 애트리뷰트를 사용하여 고유하게 엔티티들을 식별할 수 있는 엔티티 타입

     

    약한 엔티티 타입

        - 키를 형성하기에 충분한 애트리뷰트들을 갖지 못한 엔티티 타입 (꼭 없어도 되지만, 있으면 유익한..)

        - 이게 존재하려면 (이거의 주인격인) 소유 엔티티 타입이 있어야 함.

        - 강한 엔티티 타입이 소유 엔티티 타입이 될 수 O

        - 강한 소유 엔티티 타입의 애트리뷰트를 결합해야만, 고유하게, 약한 엔티티 타입의 엔티티들 식별 가능

        - 약한 엔티티 타입에게 키 애트리뷰트를 제공하는 엔티티 타입

            - 소유(강한) 엔티티 타입(Owner entity type)

            - 식별 엔티티 타입(Identifying entity type)

        - ER Diagram에서 이중선 직사각형으로 표기

        - 부분키 (partial key)

            ⇒ 점선 밑줄을 그어 표시

            - 부양가족의 이름(ex. 김철수)처럼 한 사원에 속한 부양가족 내에서는 서로 다르지만, 회사 전체 사원의 부양가족들 전체에서는 같은 경우(ex. 여러 명의 김철수)가 생길 수 있는 애트리뷰트

     

     


    <관련 기출문제>

    정보감리사 2022년

    3번이 옳지 않은 설명인 이유:

    약한 엔티티 타입의 엔티티들을 식별하기 위해 강한 엔티티 타입의 "키" 애트리뷰트들 중 임의의 하나와 결합해야 한다.

     

     


     

    3. 애트리뷰트(Attribute)

     

    - 하나의 엔티티는 연관된 애트리뷰트들의 집합으로 설명됨

        - ex) 사원 엔티티는 사원번호, 이름, 직책, 급여 등의 애트리뷰트를 가짐

    - 한 애트리뷰트의 도메인은 그 애트리뷰트가 가질 수 있는 모든 가능한 값들의 집합을 의미

        - ex) 사원번호는 1000부터 9999까지의 값을 가짐

    - 여러 애트리뷰트가 동일한 도메인을 공유할 수 있음

        - ex) 사원번호와 부서번호가 네 자리 정수를 가질 수 있음

    - 키(key) 애트리뷰트는 한 애트리뷰트 또는 애트리뷰트들의 모임으로서 

    한 엔티티 타입 내에서 각 엔티티를 고유하게 식별

    - ER Diagram에서 기본 키(Primary Key)에 속하는 애트리뷰트는 밑줄을 그어 표시함.

    - 애트리뷰트는 요구사항 명세에서 명사나 형용사로 표현됨.

     

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

        - 엔티티: 독립적인 의미를 가짐

        - 애트리뷰트: 독립적인 의미X. (종속적임)

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

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

     

     

     

    ## 애트리뷰트의 종류 6가지

    - 단순 애트리뷰트(simple attribute)

        - 더 이상 다른 애트리뷰트로 나눌 수 없는 애트리뷰트

        - ER Diagram에서 실선 타원으로 표현함

        - ER Diagram에서 대부분의 애트리뷰트는 단순 애트리뷰트

     

    - 복합 애트리뷰트(composite attribute)

        - 두 개 이상의 애트리뷰트로 이루어진 애트리뷰트

        - 동일한 엔티티 타입이나 관계 타입에 속하는 애트리뷰트들 중에서 밀접하게 연관된 것을 모아놓은 것

     

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

        - 각 엔티티마다, 정확하게 하나의 값(unique value)를 갖는 애트리뷰트

        - 단일 값 애트리뷰트는 ER Diagram에서 단순 애트리뷰트와 동일하게 표현됨

            - ex) 사원의 사원번호 애트리뷰트는 어떤 사원도 두 개 이상의 사원번호를 갖지 않으므로 단일 값 애트리뷰트

        - ER Diagram에서 대부분의 애트리뷰트는 단순 애트리뷰트

     

    - 다치 애트리뷰트(multi-valued attribute)

        - 각 엔티티마다 여러 개의 값을 가질 수 있는 애트리뷰트

        - ER Diagram에서 이중선 타원으로 표현함

     

    - 저장된 애트리뷰트(stored attribute)

        - 다른 애트리뷰트와 연관성 없이 독립적으로 존재하는 애트리뷰트

            - ex) 사원 엔티티 타입에서 사원 이름, 급여는 다른 애트리뷰트와 연관 관계가 없이 독립적으로 존재하므로 저장된 애트리뷰트에 속함.

            - ex) 시(city), 도(province) 등은 주소(address) 애트리뷰트와 연관되며, 독립적으로 존재하지 않으므로 저장된 애트리뷰트에 속하지 않음.

        - ER Diagram에서 대부분의 애트리뷰트는 저장된 애트리뷰트

        - ER Diagram에서 단순 애트리뷰트와 동일하게 표현됨.

     

    - 유도된 애트리뷰트(derived attribute)

        - 다른 애트리뷰트의 값으로부터 얻어진 애트리뷰트

        - 유도된 애트리뷰트는 관계 Database에서 Relation의 애트리뷰트로 포함시키지 않는 것이 좋음.

            - ex) 주민번호 → 생일, 나이 유도 가능

        - ER Diagram에서 점선 타원으로 표현함.

     


     

    4. 관계(Relationship)와 관계 타입

     

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

    - 관계 집합 ⇒ 동질의 관계들의 집합

    - 관계 타입 ⇒ 동질의 관계들의 틀

    - 요구사항 명세에서 흔히, 동사는 ER Diagram에서 관계로 표현됨

    - ER Diagram에서 다이아몬드(마름모꼴)로 표기

    - 관계 타입이 서로 연관시키는 엔티티 타입들을 관계 타입에 실선으로 연결함

    - 관계 집합과 관계 타입을 엄격하게 구분할 필요는 없음

     

    관계의 애트리뷰트

    - 관계 타입은 관계의 특징을 기술하는 애트리뷰트들을 가질 수 있음

    - 관계 타입은 키 애트리뷰트를 갖지 않음.

     

    차수(degree)

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

    - 실세계에서 가장 흔한 관계: 두 개의 엔티티 타입을 연결하는 2진 관계

    - 쉽게 말하면 스키마에서 속성의 개수

     


    (이어서)

     

    [데이터베이스] ER Model 설계(2) - 카디날리티 비율, 참여 제약조건

    목차 1. 카디날리티 비율 2. 카디날리티 비율의 최솟값과 최댓값 3. 역할(role) 데이터베이스 설계 과정 ER Model 설계(2) - 카디날리티 비율, 참여 제약조건 ER Model 설계(계속) [데이터베이스] ER Model 설

    ynslee627.tistory.com

     

    728x90
    반응형