데이터베이스 정규화

Inah-_-·2022년 4월 18일
0

데이터베이스

목록 보기
13/13
post-thumbnail

데이터베이스 정규화란?

데이터베이스의 중복을 최소화하여 저장 효율을 높이고
연산 시 이상 현상을 최소화할 수 있는 논리적 구조로 변환시키는 작업

데이터베이스 정규화의 장점

  • 데이터베이스의 일관성을 향상 시킬 수 있다.
  • 데이터베이스의 확장성을 보장할 수 있다.
  • 데이터베이스의 논리적 구조를 견고하게 만들 수 있다.

논리적 구조의 이상(anomaly)현상

  • 삭제 이상(deletion anomaly)
    한개의 튜플을 삭제할 경우 참조된 테이블의 유지 되어야 할 데이터가 손실되는 현상

  • 삽입 이상(insertion anomaly)
    어떤 정보를 테이블에 삽입하고자 할 때 불필요한 정보까지도 삽입해야 하는 경우

  • 갱신 이상(update anomaly)
    중복된 튜플들 중에 일부만 갱신함으로써 정보의 불일치성이 발생하게 되는 현상

함수 종속(Functional Dependency)

  • 데이터베이스 릴레이션에서 두 개의 속성
  • 릴레이션 R에서 속성들의 부분 집합을 X, Y라고 할 때
    임의의 튜플에서 X의 값이 Y의 값을 함수적으로 결정한다면
    Y가 X에 함수적으로 종속되었다고 한다.
    R.X -> R.Y
    X = 결정자
    Y = 종속자
함수 종속의 예
수강 학번 과목명 성적 이름
2022101 정보통신개론 90 홍길동
2022101 데이터베이스 80 홍길동
2022100 데이터베이스 90 아무개

릴레이션 명이 수강일 때
수강 릴레이션에서 학번이름을 고유하게 결정한다 수강.학번 -> 수강.이름
[학번, 과목명]성적을 고유하게 결정한다. {수강.학번, 수강.과목명} -> 수강.성적


다중값 속성을 갖는 릴레이션

학번 이름 주소 취미
202201 홍길동 서울 볼링, 게임
202202 김길동 경기 야구, 농구, 핸드볼

단일값 속성을 갖는 릴레이션

학번 이름 주소 취미
202201 홍길동 서울 볼링
202201 홍길동 서울 게임
202202 김길동 경기 야구
202202 김길동 경기 농구
202202 김길동 경기 핸드볼

제 1 정규형(1NF)

릴레이션의 모든 속성들이 단일값(atomic value)만을 갖는 형태

제 2 정규형(2NF)

기본키로 여러 개의 속성이 함께 사용되는 복합키를 사용하는 릴레이션의 일반 속성이
모두 복합키에 종속되는 형태 기본적으로 제 1 정규형을 만족시키는 것을 전제로 한다.

제 3 정규형(3NF)

기본키가 아닌 일반 속성들 간의 종속 관계가 존재하지 않는 형태
기본적으로 제 2 정규형을 만족시키는 것을 전제로 한다.


profile
Backend Developer

0개의 댓글