데이터베이스 정리 - 3

김상혁·2021년 5월 17일
0

개념정리

목록 보기
13/15

정규화

갱신이상(Update anomalies)로부터 자유로운 데이터베이스를 만드는 과정
-> 데이터베이스 속 갱신이상과 함수 종속성을 없애기 위해 정규화를 진행

갱신이상

RDB에서 데이터 중복으로 인해 발생하는 문제

  • Insertion Anomaly (삽입 이상)
    데이터를 삽입할 때 불필요한 데이터도 삽입해야하는 것
  • Modification Anomaly (수정 이상)
    중복된 데이터 중 일부만 수정되어 데이터 불일치가 발생하는 것
  • Deletion Anomaly (삭제 이상)
    일부 데이터를 삭제했을 때 삭제를 원치 않는 필요한 데이터도 삭제되는 것

함수종속성

함수종속성(Functionally dependent)란 하나의 컬럼이 다른 컬럼을 결정하는 것을 의미
ex)
-> 컬럼 B가 컬럼 A에 함수 종속적(Functionally dependent)이다.
== 컬럼 A가 컬럼 B를 함수적으로 결정(Functionally determines)한다.

정규화 과정

1NF(First Normal Form)

Repeating group : 한개의 칸 안에 여러 엔트리가 있는 것을 제거
-> 한 셀 안에 데이터가 1개만 있는 것을 권고

tags와 같이 개수가 정해지지 않은 경우 ","를 구분점으로 여러 값을 저장한 뒤 코드에서 split으로 쪼개어 사용하는 경우도 있음

2NF(Second Normal Form)

함수 종속성을 없애는 과정
e.g. 주문 번호 -> 주문일자를 결정 (주문일자는 주문번호에 종속적)
제품 번호 -> 제품 설명을 결정
=> 주문번호와 제품번호는 같은 테이블에 존재하면 안됨

3NF(Third Normal Form)

이행 함수 종속 제거

이행 함수 종속
A 컬럼이 B 를 결정하고, B 컬럼이 C 컬럼을 결정하면
A 컬럼은 C 컬럼을 결정한다 (=이행 함수 종속)

e.g. 학번 -> 학부 결정, 학부 -> 등록금 결정
학번, 학부 테이블, 학부 등록금 테이블 2개로 나누는 과정

0개의 댓글