ERD와 정규화 과정

2023. 9. 28. 21:20· CS 기본/DB
목차
  1. ERD(Entity Realationship Diagram)
  2. 예시
  3. 정규화 과정
  4. 이상(anomaly) 현상
  5. 정규화 원칙

본 포스팅은 '면접을 위한 CS 전공지식 노트'를 기반으로 작성되었습니다.

 

ERD(Entity Realationship Diagram)

  • 데이터베이스를 구축할 때 가장 기초적인 뼈대 역할
  • 릴레이션 간의 관계들을 정의
  • 시스템의 요구사항을 기반으로 작성
  • ERD를 기반으로 DB구축
  • 비정형 데이터를 충분히 표현할 수 없다는 단점

예시

정규화 과정

  • 릴레이션 간의 잘못된 종속 관계로 인한 이상현상을 제거하기 위함.
  • 릴레이션을 여러 개로 분리하는 과정
  • 정규형 원칙을 기반으로 정규형을 만들어 가는 과정
  • 정규형(NF, Normal Form)
    • 1, 2, 3, 보이스/코드 정규형 존재

이상(anomaly) 현상

  1. 삽입 이상 : 새 데이터를 삽입하기 위해 불필요한 데이터도 함께 삽입해야 하는 문제
  2. 갱신 이상 : 중복 튜플 중 일부만 변경하여 데이터가 불일치하게 되는 모순의 문제
  3. 삭제 이상 : 튜플을 삭제하면 꼭 필요한 데이터까지 함께 삭제되는 데이터 손실의 문제

정규화 원칙

  1. 무손실 분해
  2. 데이터의 중복성 감소
  3. 분리의 원칙

제 1 정규형

  • 릴레이션의 모드 도메인이 더 이상 분해될 수 없는 원자 값(atomic value)만으로 구성되어야 한다.
  • 릴레이션의 속성 값 중에서 한개의 기본키에 대해 두개 이상의 값을 가지는 반복 집합이 있으면 안됨.

제 2 정규형

  • 릴레이션이 제 1정규형이며 부분 함수 종속을 제거한 형태
  • 부분 함수 종속 제거: 기본키가 아닌 모든 속성이 기본키에 완전 함수 종속적인  것

제 3 정규형

  • 제 2 정규형이고 기본키가 아닌 모든 속성에 대해서 이행적 함수 종속을 만족하지 않는 상태

이행적 함수 종속

 

보이스/코드 정규형(BCNF)

  • 제 3정규형이고 결정자가 후보키가 아닌 함수 종속 관계를 제거하여 릴레이션의 함수 종속 관계에서 모든 결정자가 후보키인 상태를 말함

요구사항

  • 결정자가 후보키가 아니므로 분리해야함.

  • 그러나 정규형으로 바꾼다고 성능이 100%좋아지는 것은 아님
  • 따라서 서비스에 따라 정규화 또는 비정규화 과정을 진행해야함.

'CS 기본 > DB' 카테고리의 다른 글

조인의 종류  (0) 2023.10.04
인덱스  (1) 2023.10.03
데이터베이스의 종류  (0) 2023.10.01
트랜잭션과 무결성  (0) 2023.10.01
데이터베이스 기초  (0) 2023.09.27
  1. ERD(Entity Realationship Diagram)
  2. 예시
  3. 정규화 과정
  4. 이상(anomaly) 현상
  5. 정규화 원칙
'CS 기본/DB' 카테고리의 다른 글
  • 인덱스
  • 데이터베이스의 종류
  • 트랜잭션과 무결성
  • 데이터베이스 기초
LTSGOD
LTSGOD
LTSGOD
TS's log
LTSGOD
전체
오늘
어제
  • 분류 전체보기 (138)
    • 언어 공부 (18)
      • C++ (6)
      • Python (12)
    • AI (39)
      • Numpy (2)
      • Pandas (5)
      • Pytorch (11)
      • Deep Learning (9)
      • CV (11)
      • 과제에서 얻은 것 (1)
    • 수학 (17)
      • 확률론 (8)
      • AI Math (9)
    • Spring (24)
      • 스프링입문 (8)
      • 스프링 원리 - 기본편 (5)
      • 스프링부트와 AWS로 혼자구현하는 웹 서비스 (10)
      • JPA (1)
      • spring MVC (0)
    • CS 기본 (25)
      • 네트워크 (5)
      • OS (4)
      • 자료구조 (9)
      • DB (7)
    • Git (2)
    • 백준 (1)
    • 활동 (8)
      • 2023 겨울 (1)
      • 네이버 부스트캠프 AI Tech (7)
    • HTML,CSS (2)
    • 도커 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 부스트캠프
  • 회고
  • AWS
  • pytorch
  • BOOSTCAMP
  • AI Tech 5기
  • 5기
  • 붓캠
  • 후기
  • Camper
  • AI
  • 백준

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
LTSGOD
ERD와 정규화 과정
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.