본문 바로가기
Programming/Database

[SQLD] 데이터 모델링, 엔터티, 속성, 관계, 식별자

by 디스코비스킷 2024. 10. 24.
반응형

데이터 모델링

데이터 모델링 정의와 특징

  • 현실 세계의 데이터를 약속된 표기법으로 표현하는 과정
  • 추상화
    • 현실 세계를 일정한 형식에 맞추어 표현하는 추상화의 의미를 가질 수 있다.
  • 단순화
    • 복잡한 현실을 제한된 언어나 표기법으로 이해하기 쉽게하는 단순화의 의미를 가진다.
  • 정확화
    • 모호함을 배제하고 누구나 이해가 가능하도록 정확하게 현상을 기술하는 정확화의 의미를 가진다.

데이터 모델링 유의점

  • 중복
    • 여러 장소의 데이터베이스에 같은 정보를 저장하지 않도록 하여 중복을 최소화한다.
  • 비유연성
    • 데이터의 정의를 데이터의 사용 프로세스와 분리
  • 비일관성
    • 데이터 간의 상호 연관관계를 명확하게 정의하여 일관성 있게 데이터가 유지되도록 한다.

데이터베이스 스키마 구조 3단계

  • 외부 스키마
    • View 단계는 여러 사용자 관점으로 구성
  • 개념 스키마
    • 통합된 모든 사용자의 관점
    • 모든 사용자 관점을 통합한 조직 전체 관점의 통합적 표현
    • 모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술한 것으로 DB에 저장되는 데이터와 그들 간의 관계를 표현
  • 내부 스키마
    • 물리적인 저장구조를 표현
  • 논리적인 데이터 독립성을 고려하는 단계: 외부 단계, 개념적 단계

ERD

  • 1976년 피터첸에 의해 ERM이라는 표기법이 만들어졌다.
  • 일반적으로 ERD를 작성할 때 엔터티 도출 → 엔터티 배치 → 관계설정 → 관계명 기술의 흐름으로 작업을 진행한다.
  • 관계의 명칭은 관계 표현에 있어서 매우 중요한 부분에 해당한다.
  • 가장 중요한 엔터티를 왼쪽상단에 배치한다.

엔터티

엔터티 정의

  • 업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것
  • 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상으로서 그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합
  • 인스턴스의 집합
  • SQL에서 테이블

엔터티와 인스턴스

표기법

  • IE 표기법
  • Barker 표기법

엔터티의 분류

  • 유무형에 따른 분류
    • 유형 엔터티: 사원, 물품
    • 개념 엔터티: 조직, 장소
    • 사건 엔터티: 주문, 청구
  • 발생 시점에 따른 엔터티 분류
    • 기본, 키 엔터티: 사원, 부서
    • 중심 엔터티: 접수, 계약
    • 행위 엔터티: 주문내역, 계약진행
  • 기타
    • 스스로 생성될 수 있는지에 따라(독립엔터티, 의존엔터티)

엔터티 특징

  • 엔터티는 다른 엔터티와의 관계가 있어야한다. 단, 통계성 엔터티나, 코드성 엔터티, 시스템 처리시 내부필요에 의한 엔터티 도출의 경우 관계를 생략할 수 있다.
  • 유일한 식별자에 의해 식별이 가능해야한다.
  • 엔터티는 업무 프로세스에 의해 이용되어야 한다.
  • 엔터티는 반드시 속성을 포함해야된다.
    • 관계엔터티 예외: 주식별자 속성만 갖고있어도 엔터티로 인정
  • 속성이 없는 엔터티는 있을 수 없다. 반드시 속성을 가져야한다.
  • 영속적으로 존재하는 인스턴스의 집합이어야한다. (한개가 아니라 두개이상 인스턴스 가져야한다. )
  • 데이터로서 존재하지만 업무에서 필요로 하지 않으면 해당 업무의 엔터티로 성립될 수 없다. = 엔터티는 업무 프로세스에 의해 이용되어야 한다.
  • 시스템 처리시 내부 필요에 의한 엔터티: 트랜잭션 로그 테이블 등

관계

  • 1:1 관계
  • 1:N 관계
  • N:M 관계

식별자와 비식별자 관계

  • 식별자 관계

    • 강한 연결관계 표현
    • 자식 주식별자의 구성에 포함됨
    • 실선표현
    • 연결 고려사항
      • 반드시 부모 엔터티에 종속
      • 자식 주식별자 구성에 부모 주식별자 포함 필요
      • 상속받은 주식별자 속성을 타엔터티에 이전 필요
  • 비식별자 관계

    • 약한 연결관계 표현
    • 자식 일반 속성에 포함됨
    • 점선표현
    • 연결 고려사항
      • 약한 종속관계
      • 자식 주식별자 구성을 독립적으로 구성
      • 자식 주식별자 구성에 부모 주식별자 부분 필요
      • 상속받은 주식별자 속성을 타 엔터티에 차단 필요
      • 부모쪽의 관계참여자 선택관계

        식별자

  • 대표성 여부에 따라

    • 주식별자
      • 엔터티 내에서 각 어커런스를 구분할 수 있는 구분자이며, 타 엔터티와 참조관계를 연결할 수 있는 식별자
      • 대표성을 가지며, 엔터티 내의 여러 인스턴스 중 하나를 유일하게 구분할 수 있는 식별자
    • 보조식별자
      • 엔터티 내에서 각 어커런스를 구할 수 있는 구분자이나 대표성을 가지지 못해 참조 관계 연결을 못함
  • 스스로 생성 여부

    • 내부 식별자
      • 엔터티 내부에서 스스로 만들어지는 식별자
    • 외부 식별자
      • 타 엔터티와의 관계를 통해 타 엔터티로부터 받아오는 식별자
      • 타 엔터티로부터 상속되어 정의된 식별자
  • 속성의 수

    • 단일 식별자
      • 하나의 속성으로 구성된 식별자
    • 복합 식별자
      • 둘 이상의 속성으로 구성된 식별자
  • 대체 여부

    • 본질 식별자
      • 업무에 의해 만들어지는 식별자
      • 엔터티 내의 집합을 명확하게 설명할 수 있는 업무적으로 의미가 부여된 식별자
    • 인조 식별자
      • 업무적으로 만들어지지는 않지만 원조 식별자가 복잡한 구성을 가지고 있기 때문에 인위적으로 만들어진 식별자

속성

속성 정의

  • 더이상 쪼개지지 않는 최소 데이터 단위
    • 등록일시는 일-시-분으로 구분할수있지만 직접적인 관련이 있어서 합쳐서 사용가능
    • 하지만 이름과 주소를 합쳐 사용할 수는 없음

속성의 특징

  • 시스템을 구축하려는 회사 업무 프로세스에 필요한 정보로 구성
  • 유일한 식별자에 함수적 종속성을 가져야 한다.
  • 하나의 속성은 하나의 속성값만을 가진다. 하나의 속성에 여러 속성값이 들어간다면 별도의 엔터티를 이용해서 분리하는 게 좋다. (혹은 1차 정규화 진행)

속성의 분류

  • 속성의 특성에 따른 분류
    • 기본 속성
      • 업무 분석을 통해 바로 정의한 속성
      • 사원 이름, 직책 이름, 고용일자 등
    • 설계 속성
      • 원래 업무상 존재하지는 않지만 설계를 하면서 도출해 내는 속성
      • 업무상 필요한 데이터 외에 데이터 모델링을 위해, 업무를 규칙화 하기위해 속성을 새로 만들거나 변형하여 정의하는 속성
    • 파생속성
      • 다른속성으로부터 계산이나 변형이 되어 생성되는 속성
      • 다른 속성에 영향을 받아 발생하는 속성, 계산된 값들이 여기에 해당.
      • 다른 속성에 영향을 받으므로, 영향받는 속성을 알아두어야 하는 등 유의할점이 많아서 가급적 적게 정의하는것이 좋음.
      • 데이터를 조회할 때 빠른 성능을 낼 수 있도록 하기위해 원래 속성의 값을 계산하여 저장할 수 있도록 만든 속성
  • 엔터티 구성 방식에 따른 분류
    • 주키 속성 PK: 엔터티를 식별할 수 있는 속성
    • 외래키 속성 FK: 다른 엔터티와의 관계에서 포함된 속성
      한 엔터티가 다른 엔터티의 PK를 참조하는 것이 FK. FK는 해당 엔터티에서도 PK가 될 수 있다.
      (식별/비식별 관계 참고)
    • 일반 속성: 둘 다 아닌 속성

도메인

  • 각 속성이 가질 수 있는 값의 범위데이터 모델링
반응형

최근댓글

최근글

© Copyright 2023 jngmnj