본문 바로가기
Certificate/SQLD

[SQLD]1과목 - 1장 2절. 엔터티, 속성, 관계

by Istj_eff 2022. 10. 9.

엔터티(Entity)

 : 업무에서 관리해야하는 데이터의 집합, 명사형, 인스턴스의 집합 (보이지않는 것 포함)

  1. 특징
    • 업무에서 필요로 함
    • 유일한 식별자를 가짐
    • 2개 이상의 인스턴스를 포함함
    • 업무 프로세스에 이용
    • 속성 포함
    • 최소 1개 이상 관계 존재 (통계성, 코드성, 내부필요 엔터티 제외)
  2. 종류
    • 유무형에 따른 분류
      • 유형 엔터티 : 물리적 형태가 있고 지속적으로 활용되는 엔터티 ex) 사원, 물품, 강사
      • 개념 엔터티 : 물리적 형태가 없는 엔터티 ex) 조직, 보험상품
      • 사건 엔터티 : 업무 수행함에 따라 발생됨 ex) 주문, 청구, 미납
    • 발생시점에 따른 분류
      • 기본 엔터티(Key Entity) : 업무에 원래 존재하는 정보. 자신은 타 엔터티의 부모역할. 독립적으로 생성. 자신의 고유한 주식별자 가짐. 다른 엔터티로부터 주식별자 상속X
        ex) 사원, 부서, 고객, 상품, 자재
      • 중심 엔터티(Main Entity) : 기본 엔터티와 행위 엔터티의 중간에 존재하는 엔터티. 기본 엔터티로부터 발생. 다른 엔터티와의 관계로 많은 행위 엔터티 생성
        ex) 계약, 사고, 주문, 매출
      • 행위 엔터티(Active Entity, 사건 엔터티) : 2개 이상의 부모 엔터티로부터 발생함
        비즈니스 프로세스를 실행하면서 생성됨. 지속적으로 정보가 추가되고 변경되어 데이터양이 가장 많음
        ex) 주문목록, 사원변경 이력
  3. 명명 규칙 ★
    1) 현업업무에서 사용하는 용어
    2) 약어 사용X, 복합명사 사용해서 구체적 :
    3) 단수 명사(서술식 금지)
    4) 유일성 보장
    5) 명확성 (생성의미대로 부여)
  4. 관계차수(Cardinality) : 엔터티간 관계에서 참여자의 수를 표현하는 것


속성(Attribute)

 : 업무에서 필요로 하는 인스턴스로 관리하고자 하는 엔터티가 가지는 최소 의미 단위, 인스턴스의 구성요소

  • 관계
    • 1개의 엔터티는 2개 이상의 인스턴스 집합이어야 한다.
    • 1개의 엔터티는 2개 이상의 속성을 갖는다.
    • 1개의 속성은 1개의 속성값을 갖는다. (1개 이상이면 정규화가 필요하다.)
  • 속성 표기법 : IE 표기법, Barker 표기법
    • 업무에서 필요하고 관리하고자 하는 정보
    • 주식별자에 함수적으로 종속됨 
    • 속성값 하나만 가짐 (원자값 Atomic value, 하나의값) 하나 이상의 속성값이면 정규화 필요!
  • 종류
    • 특성에 따른 분류
      • 기본 속성 : 비즈니스 프로세스에서 도출되는 본래의 속성
        ex) 제품이름, 제조년월, 제조원가
      • 설계 속성 : 데이터 모델링 과정에서 업무 규칙화를 위해 발생하는 속성
        ex) 코드성, 일련번호 등
      • 파생 속성 : 다른 속성에 의해 만들어지는 속성(계산되는값)  
        (↔ 저장 속성은 유도 속성을 생성하는 데 사용)

        ex) 이자 (이자율,원금은 아님!!)  단가, 수량, 최초주문일자
    • 분해 가능 여부에 따른 분류
      • 단일 속성 : 하나의 의미
      • 복합 속성 : 여러 의미, 단일 속성으로 분해 가능 ex) 주소
      • 단일값(single value) 속성 : 하나의 값
      • 다중값(multi value) 속성 : 여러 값, 엔터티로 분해 가능
    • 엔터티 구성방식에 따른 분류
      • 기본키(PK) 속성 : 엔터티를 식별할 수 있는 속성
      • 외래키(FK) 속성 : 다른 엔터티와의 관계에서 포함된 속성
      • 일반 속성 : 엔터티에 포함되고 PKFK 속성이 아닌 속성
    • 도메인 : 속성이 가질 수 있는 값의 범위. 엔터티 내에서 속성에 대한 데이터타입과 크기, 제약사항을 지정하는 것

관계(Relationship)

 : 인스턴스 사이의 논리적인 연관성. 존재 or 행위로서 서로에게 연관성이 부여된 상태 (동사형)

  • 관계의 패어링 : 인스턴스 간 개별적 관계. 이것의 집합을 논리적으로 표현한 것이 관계
  • 관계 표기법
    1. 관계명 : 엔터티가 관계에 참여하는 형태. 각 관계는 2개의 관계명 및 관점을 가짐
    2. 관계차수(Cardinality) : 관계 내 튜플의 전체 개수, 1은 직선, 는 삼발로 표시
      M : N 관계 : 관계형 DB에서 M:N 관계의 조인은 카테시안 곱 발생
    3. 관계선택사양: 필수는 I , 선택은 O 표시
  • 종류
    • ERD 기준: 표기구분 안함
      • 존재에 의한 관계 : 엔터티 간의 상태
      • 행위에 의한 관계 : 엔터티 간에 발생하는 행위
    • UML(Unified Modeling Language) 기준
      • 연관 관계(Association) : 실선 표기. 항상 이용하는 관계로 존재적 관계에 해당
      • 의존 관계(Dependency) : 점선 표기. 상대방 클래스의 행위에 의해 관계가 형성될 때
    • 식별자에 따른 분류
      • 식별 관계 : 부모 엔터티의 식별자를 자식 엔터티에서 주식별자로 사용 (강한연결관계-실선)
        약한 엔터티: 부모 엔터티에 종속되어 존재 (강한 엔터티는 독립적으로 존재함)
      • 비식별 관계 : 부모 엔터티의 식별자를 자식 엔터티에서 일반 컬럼으로 참조 사용, 약한 종속 관계(점선)
        • 식별 관계만으로 연결되면 주식별자 수가 많아질 수밖에 없으므로
          1) 관계 강약 분석
          2) 자식 엔터티의 독립 PK 필요성
          3) SQL 복잡성과 개발 생산성 고려 필요
    • 관계 읽기 : 각각의/하나의 > 기준 엔터티 > 관계차수 > 대상 엔터티 > 관계선택사양 > 관계명

4번 틀림

 

댓글