👨‍💻
Hamin TIL
  • Today I Learned 🧑🏻‍💻
  • 회고
  • git
    • git_basics
      • Git 101
      • Git branch
      • Git_ignore
    • Git Book
    • 우아한형제들
    • pull_request
  • db
    • DA
      • 데이터표준화
      • 데이터_요건분석
      • 전사아키텍처_이해
      • 데이터모델링
    • SQL
      • SQL기본및활용
        • SQL활용
          • 절차형SQL
          • 계층형질의와셀프조인
          • DCL
          • 그룹함수
          • 윈도우함수
          • 표준조인
          • 집합연산자
          • 서브쿼리
        • SQL고급활용및튜닝
          • 옵티마이저와실행계획
          • 조인수행원리
          • 인덱스기본
        • SQL기본
          • 함수
          • 관계형데이터베이스개요
          • GROUPBY,HAVING절
          • DDL
          • 조인
          • ORDERBY절
          • DML
          • WHERE절
          • TCL
      • 데이터모델링의이해
        • 데이터모델과성능
          • 정규화의 성능
          • 데이터베이스구조와성능
          • 분산데이터베이스와성능
          • 대량 데이터에 따른 성능
          • 반정규화와 성능
          • 성능데이터모델링의 개요
        • 데이터모델링의이해
          • 식별자
          • 속성
          • 관계
          • 엔터티
          • 데이터 모델의 이해
    • DB
  • trouble
    • libomp
    • After macOS update, git command
    • system
  • algorithm
    • BOJ
      • 평범한 배낭
      • 17825-주사위윷놀이
      • 14888-연산자끼워넣기
      • 14503-로봇청소기
      • 10157
      • 14502-연구소
      • 18428-감시피하기
      • 14501
      • 18405-경쟁적전염
      • 14499-주사위굴리기
      • 16236-아기상어
      • 15686-치킨배달
      • 19237-어른상어
      • 16234-인구이동
      • 19236-청소년상어
      • 1339-단어수학
      • 리모콘
      • 18353 - 병사배치하기
      • 18352-특정거리의도시찾기
      • 12100-2048
      • N-Queen
      • 3190-뱀
      • 11724
    • programmers
      • 영어끝말잇기
      • 기둥과 보
      • H - index
      • 정수삼각형
      • 2018 KAKAO BLIND RECRUITMENT - 압축
      • 삼각달팽이
      • 거스름돈
      • [1차] 셔틀버스
    • data_structure
      • Queue
      • Graph
      • Stack
      • Hash table
    • implementation
      • dynamic_programming
      • sort
      • Least common multiple
      • dfs
      • dijkstra
      • bfs
      • binary_search
    • aps
      • notes
    • modules
  • python
    • requirements.txt
    • Jupyter notebook
    • 00_들어가기 전에
    • Python Virtual Environment
    • Python Syntax
  • django
    • Class Based View in Django
    • Model in Django
    • URL Name
    • Form and ModelForm
    • Authentication
    • Tips & Tricks
    • Optimization
    • Request and Response Objects
    • Templates
    • Variable Routing & DTL
    • Django REST API with JSON web token (JWT)
    • Intro to Django
    • Django REST Framework
    • Wrap-up
    • Image Upload
  • javascript
    • Ajax (Asynchronous Javascript And XML)
    • Document Object Model
    • Java Script 101
    • ES (ECMAscript)
  • java
    • Java 101
  • aws
    • beginning_cloud_computing_with_aws
      • 02 AWS 주요 서비스 이해하기
      • 01 아마존 웹 서비스 Cloud 개요
  • programming
    • Communication
    • CS_용어사전
  • vue.js
    • 01_Vue.js_Intro
  • data_science
    • 01_데이터에서인사이트발견하기
    • pandas
    • 04_데이터분류모델
    • 02_텍스트마이닝첫걸음
    • 05_종합예제
    • 03_미래를예측하는데이터분석
    • Statistics
      • 모수와 추정량
    • 통계학노트
  • linux
    • Linux Commands
  • ide
    • VScode
    • Pycharm
  • html,css
    • HTML 101
    • CSS 101
  • colab
    • colab_101
  • 의사결정나무및모형비교
Powered by GitBook
On this page
  • 1. 식별자 (Identifiers) 개념
  • 2. 식별자의 특징
  • 3. 식별자 분류 및 표기법
  • 4. 주식별자 도출기준
  • 5. 식별자관계와 비식별자관계에 따른 식별자

Was this helpful?

  1. db
  2. SQL
  3. 데이터모델링의이해
  4. 데이터모델링의이해

식별자

Previous데이터모델링의이해Next속성

Last updated 4 years ago

Was this helpful?

1. 식별자 (Identifiers) 개념

여러 개의 집합체를 담고 있는 하나의 통에서 각각을 구분할 수 있는 논리적인 이름

업무적으로 구분이 되는 정보로서 키와는 다르다. 키는 테이블에 접근을 위한 매개체로 물리 데이터 모델링 단계

2. 식별자의 특징

특징

내용

비고

유일성

주식별자에 의해 엔터티내에 모든 인스턴스들을 유일하게 구분함

사원번호가 주식별자가 모든 직원들에 대해 개인별로 고유하게 부여됨

최소성

주식별자를 구성하는 속성의 수는 유일성을 만족하는 최소의 수가 되어야 함

사원번호만으로도 고유한 구조인데 사원분류코드+사원번호로 식별자가 구성될 경우 부적절한 주식별자 구조임

불변성

주식별자가 한 번 특정 엔터티에 지정되면 그 식별자의 값은 변하지 않아야함

사원번호의 값이 변한다는 의미는 이전기록이 말소되고 새로운 기록이 발생되는 개념임

존재성

주식별자가 지정되면 반드시 데이터 값이 존재 (Null 안됨)

사원번호 없는 회사직원은 있을 수 없음

3. 식별자 분류 및 표기법

  1. 식별자 분류

    분류

    식별자

    설명

    대표성

    주식별자

    엔터티 내에서 각 어커런스를 구분 / 타 엔터티와 참조관계를 연결할 수 있음

    여부

    보조식별자

    엔터티 내에서 각 어커런스를 구분 / 대표성을 가지지 못해 참조관계 연결 못 함

    스스로

    내부식별자

    엔터티 내부에서 스스로 만들어지는 식별자

    생성여부

    외부식별자

    타 엔터티와의 관계를 통해 받아오는 식별자

    속성의

    단일식별자

    하나의 속성으로 구성된 식별자

    수

    복합식별자

    둘 이상의 속성으로 구성된 식별자

    대체

    본질식별자

    업무에 의해 만들어지는 식별자

    여부

    인조식별자

    원조식별자가 복잡한 구성을 갖고 있기 때문에 인위적의로 만든 식별자

  2. 식별자 표기법

4. 주식별자 도출기준

  1. 해당 업무에서 자주 이용되는 속성을 주식별자로 지정하도록 함

    유일하게 식별가능한 속성

    Ex) 사원번호 (속성)

  2. 명칭, 내역 등과 같이 이름으로 기술되는 것은 피함

    이름이 같을 수 있고, 길어지면 조건절에 기술할 때 틀림

  3. 속성의 수가 많아지지 않도록 함

    주식별자 속성이 복합일 때, 가능하면 주식별자 속성 많지 않게

5. 식별자관계와 비식별자관계에 따른 식별자

  1. 식별자관계와 비식별자 관계의 결정

    외부식별자(Foreign Identifier)는 자기 자신 엔터티에서 필요하지 않고, 다른 엔터티와의 관계를 통해서 자식 엔터티에 생성되는 속성

    데이터베이스 생성시 FK 역할을 함

    이 때 부모로부터 받은 외부식별자를 자신의 주식별자로 할 것인지, 아님 부모와 연결만 되는 속성으로 할 것인지 결정해야함.

  2. 식별자관계 (Identifying Relationship)

    부모의 주식별자가 상속되어 자식엔터티의 주식별자가 되는 경우

  3. 비식별자관계 (Non-Identifying Relationship)

    부모로부터 속성을 받았지만, 주식별자로 안 쓰고 일반적인 속성으로만 쓰는 경우

    • 필수가 아닌 경우

    • 엔터티별로 데이터의 생명주기(Life Cycle)를 다르게 관리할 경우

      • Ex) 부모엔터티에 인스턴스가 자식의 엔터티와 관계를 가지고 있었지만 자식만 남겨두고 먼저 소멸될 수 있는 경우.

      • 이에 대한 방안: 물리데이터베이스 생성 시 Foreign Key를 연결하지 않는 임시적인 방법을 사용하기도 하지만 데이터 모델상에서 관계를 비식별 자관계로 조정하는 것이 가장 좋은 방법.

    • 여러 개의 엔터티가 하나의 엔터티로 통합되어 표현되었는데 각각의 엔터티가 별도의 관계를 가질 때.

    • 자식엔터티에 주식별자로 사용하여도 되지만 자식엔터티에서 별도의 주식별자를 생성하는 것이 더 유리하다고 판단 될 때

  4. 식별자 관계로만 설정할 경우의 문제점

    주식별자가 많아지기 때문에 복잡해지며 오류가능성 유발

  5. 비식별자 관계로만 설정할 경우의 문제점

    • 일반적으로 각각의 엔터티에는 중요한 기준 속성 이 있다.

      • 후에 상속을 위해 기준이 필요함

  6. 식별자관계와 비식별자관계 모델링

    • 비식별자관계 선택 프로세스

      자식엔터티의 독립된 주식별자 구성이 필요한지가 가장 중요

    • 식별자와 비식별자관계 비교

      항목

      식별자관계

      비식별자관계

      목적

      강한 연결관계 표현

      약한 연결관계 표현

      자식 주식별자 영향

      자식 주식별자의 구성에 포함됨

      자식 일반 속성에 포함됨

      표기법

      실선 표현

      점선 표현

      연결 고려사항

      - 반드시 부모엔터티 종속 - 자식 주식별자구성에 부모 주식별자포함필요 - 상속받은 주식별자속성을 타 엔터티에 이전 필요

      - 약한 종속관계 - 자식 주식별자구성을 독립적으로 구성 - 자식 주식별자구성에 부모 주식별자 부분 필요 - 상속받은 주식별자속성을 타 엔터티에 차단 필요 - 부모쪽의 관계참여가 선택관계

  • 식별자와 비식별자를 적용한 데이터 모델

    위를 고려해 균형있게 표현한 데이터 모델