SQLD : 식별자와 데이터 모델 이해

커비·2024년 10월 19일
0

SQLD

목록 보기
3/7
post-thumbnail

📌 데이터 모델링이란?

현실세계의 복잡한 대상을 단순하게 표현하기 위해 추상화, 단순화, 명확화하여 일정 표기법으로 표시하는 것으로 계획/분석/설계업무분석 및 설계, 설명에 사용, 구축/운영 시에는 변경, 관리 목적으로 사용

📍 개념적 모델링 순서

  • 엔터티를 그린다. (보통 중요한 엔터티를 왼쪽 상단에 둔다)
  • 엔터티를 적절하게 배치한다.
  • 관계를 설정한다. (서로 관계가 있는 엔터티끼리 선으로 이어준다)
  • 관계명을 기술한다. (ex. 소속되다, 보유되다 등)
  • 관계의 참여도(Cardinality)를 기술한다. (참여도란 엔터티 안의 인스턴스들이 얼마나 참여하는지를 의미)
  • 관계의 필수여부(Optionality)를 기술한다. (엔터티 안의 인스턴스들이 반드시 참여하는지를 의미, 최초 참여는 (ㅣ), 선택 참여는 (0으로 표시)

📍 논리적 모델링 순서

  • 속성을 아래로 모두 입력한다.
  • 각 엔터티에서 식별자를 선택한다.
  • 정규화를 수행해 중복되는 데이터 입력이 없도록 한다.
  • 관계설정(Foreign key)을 한다. (정규화로 쪼개진 대상들을 연결하기 위해 식별자를 빌려온다)

📌 ERD란?

엔터티와 엔터티 간의 관계를 발견하고 이를 그림(Diagram)으로 표현하는 행위로 개념적 데이터 모델링의 결과물이다.


📌 데이터 모델링의 중요성

파급효과 : 초반에 엉망으로 설계하고 개발하다가 나중에 엎게되면 수정이 힘들어짐
간결한 표현 : 서로 의사소통을 위해 모델링된 설계도(ERD 등)으로 쉽게 이해 가능
데이터 품질 : 애초에 데이터 모델링을 제대로 해야 이상한 데이터(데이터중복, 비유연성, 비일관성)가 안들어감


📌 논리적 모델링 표기법 2가지

📍 IE 표기법

  • 구분된 선 위에는 PK(식별자)이다
  • FK라고 붙은 속성은 빌려온 외래키(FK)이다
  • 그 외 아무것도 안적힌 속성은 '일반속성'
  • 관계차수나 관계선택사양은 그대로 작성
  • 관계선이 점선이라면 '비식별자관계'

📍 Barker 표기법

  • #은 PK(식별자)이다.
  • O는 선택사항, * 은 필수사항임을 의미
  • 관계차수나 관계선택사양은 그대로 작성
  • 여기는 FK가 O이므로 '비식별자관계'임 (#이었으면 식별자관계)

📌 데이터베이스 3단계 구조

외부(External)스키마 : 여러 사용자 각각의 관점
개념(Conceptual)스키마 : 통합적, 조직 전체의 DB관점
내부(Internal)스키마 : 데이터 물리 저장 구조 표현


📌 식별자(Identifiers)란?

엔터티 내 유일하게 인스턴스를 식별할 수 있는 속성의 집합

📍 식별자 분류

대표성 여부 : 주식별자 VS 보조식별자
스스로 생성여부(자생여부) : 내부식별자 VS 외부식별자
단일속성여부 : 단일식별자 VS 복합식별자
대체여부 : 본질식별자 VS 인조식별자


📌 주식별자 도출기준

  • 업무에서 자주 사용하는 속성일 것
  • 명칭, 이름 등은 피할 것
  • 속성의 수가 많지 않을 것

📌 주식별자 특징

  • 유일성 : 인스턴스를 유일하게 식별하기
  • 최소성 : 속성의 수가 많지 않기
  • 불변성 : 가급적 변하지 않기
  • 존재성 : 값이 꼭 입력되기
profile
전공은 컴퓨터공학, 복수전공은 해킹보안학, 직장은 방학(파워 구직중)

0개의 댓글