Top 48 정규형 All Answers

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 정규형 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://toplist.maxfit.vn team, along with other related topics such as: 정규형 정규형 랄로, 보이스 코드 정규형, 정규화 과정, 3NF BCNF 차이, 다중값 속성을 갖는 릴레이션은 정규형을 위반한다., 데이터베이스 정규화 연습문제, 데이터베이스 정규화 쉽게


관계형 데이터 모델링 – 6.3. 제2 정규화
관계형 데이터 모델링 – 6.3. 제2 정규화


[DB] 8. 정규형 (1NF, 2NF, 3NF, BCNF)

  • Article author: rebro.kr
  • Reviews from users: 15259 ⭐ Ratings
  • Top rated: 4.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [DB] 8. 정규형 (1NF, 2NF, 3NF, BCNF) 정규형이란 정규화된 결과를 말하며, 제1 정규형, 제2 정규형, 제3 정규형, BCNF, 제4 정규형, 제5 정규형이 있다. 실무적으로 제4, 제5 정규형은 잘 … …
  • Most searched keywords: Whether you are looking for [DB] 8. 정규형 (1NF, 2NF, 3NF, BCNF) 정규형이란 정규화된 결과를 말하며, 제1 정규형, 제2 정규형, 제3 정규형, BCNF, 제4 정규형, 제5 정규형이 있다. 실무적으로 제4, 제5 정규형은 잘 … [목차] 1. 제1 정규형 2. 제2 정규형 3. 제3 정규형 4. BCNF 정규형이란 정규화된 결과를 말하며, 제1 정규형, 제2 정규형, 제3 정규형, BCNF, 제4 정규형, 제5 정규형이 있다. 실무적으로 제4, 제5 정규형은 잘..
  • Table of Contents:

태그

‘데이터베이스(DB)’ Related Articles

티스토리툴바

[DB] 8. 정규형 (1NF, 2NF, 3NF, BCNF)
[DB] 8. 정규형 (1NF, 2NF, 3NF, BCNF)

Read More

[DB] 정규화(Normalization)란? 정규화 예시, 1NF, 2NF, 3NF, BCNF

  • Article author: code-lab1.tistory.com
  • Reviews from users: 4330 ⭐ Ratings
  • Top rated: 3.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [DB] 정규화(Normalization)란? 정규화 예시, 1NF, 2NF, 3NF, BCNF 이를 단계별로 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다. 정규화의 장점. 데이터베이스 변경 시 이상 현상(Anomaly)을 제거할 수 있다 … …
  • Most searched keywords: Whether you are looking for [DB] 정규화(Normalization)란? 정규화 예시, 1NF, 2NF, 3NF, BCNF 이를 단계별로 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다. 정규화의 장점. 데이터베이스 변경 시 이상 현상(Anomaly)을 제거할 수 있다 … 정규화(Normalization)란? 정규화는 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정이다. 이상현상이 존재하는 릴레이션을 분해하여 여러 개의 릴레이션을 생성하게 된다. 이를 단계별로 구분하여..
  • Table of Contents:

Header Menu

Main Menu

[DB] 정규화(Normalization)란 정규화 예시 1NF 2NF 3NF BCNF

‘Computer Science[DB]’ 관련 글

Sidebar – Right

Copyright © 코드 연구소 All Rights Reserved

Designed by JB FACTORY

티스토리툴바

[DB] 정규화(Normalization)란? 정규화 예시, 1NF, 2NF, 3NF, BCNF
[DB] 정규화(Normalization)란? 정규화 예시, 1NF, 2NF, 3NF, BCNF

Read More

제1정규형 – 위키백과, 우리 모두의 백과사전

  • Article author: ko.wikipedia.org
  • Reviews from users: 42691 ⭐ Ratings
  • Top rated: 4.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 제1정규형 – 위키백과, 우리 모두의 백과사전 제1정규형(1NF 또는 최소형)은 데이터베이스 정규화에서 사용하는 정규형중 하나이다. 관계형 데이터베이스의 테이블이 1NF이면 최소한 테이블은 관계이며, … …
  • Most searched keywords: Whether you are looking for 제1정규형 – 위키백과, 우리 모두의 백과사전 제1정규형(1NF 또는 최소형)은 데이터베이스 정규화에서 사용하는 정규형중 하나이다. 관계형 데이터베이스의 테이블이 1NF이면 최소한 테이블은 관계이며, …
  • Table of Contents:

관계를 의미하는 1NF 테이블[편집]

중복되는 항목[편집]

원자성(Atomicity)[편집]

1NF 이상의 정규화[편집]

참고 자료[편집]

인용 자료[편집]

더 읽을거리[편집]

외부 링크[편집]

제1정규형 - 위키백과, 우리 모두의 백과사전
제1정규형 – 위키백과, 우리 모두의 백과사전

Read More

데이터베이스 정규화(Normalization)란 :: AndroidTeacher

  • Article author: hongcoding.tistory.com
  • Reviews from users: 8620 ⭐ Ratings
  • Top rated: 3.8 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 데이터베이스 정규화(Normalization)란 :: AndroidTeacher 제1정규형에 속하는 릴레이션이 제2정규형을 만족하게 하려면, 부분 함수 종속을 제거하고 모든 속성이 기본키에 완전 함수 종속되도록 릴레이션을 … …
  • Most searched keywords: Whether you are looking for 데이터베이스 정규화(Normalization)란 :: AndroidTeacher 제1정규형에 속하는 릴레이션이 제2정규형을 만족하게 하려면, 부분 함수 종속을 제거하고 모든 속성이 기본키에 완전 함수 종속되도록 릴레이션을 … 데이터베이스 정규화(Normalization) 란? 관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스를 정규화라고 한다. 정규화의 기본 목표는 관련이 없는 함수 종속성은 별개의 릴레이션..
  • Table of Contents:

데이터베이스 정규화(Normalization)란

티스토리툴바

데이터베이스 정규화(Normalization)란 :: AndroidTeacher
데이터베이스 정규화(Normalization)란 :: AndroidTeacher

Read More

[Database] 정규화(Normalization) 과정 (1NF, 2NF, 3NF, BCNF) | Hoyeon

  • Article author: hoyeonkim795.github.io
  • Reviews from users: 35157 ⭐ Ratings
  • Top rated: 3.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [Database] 정규화(Normalization) 과정 (1NF, 2NF, 3NF, BCNF) | Hoyeon Telephone Number에 2가지가 들어가 있기 때문에 제1 정규형을 만족할 수 없게 된다. 관계형 데이터 베이스의 경우 기본적으로 도메인은 모두 원자값이기 때문에 제1 … …
  • Most searched keywords: Whether you are looking for [Database] 정규화(Normalization) 과정 (1NF, 2NF, 3NF, BCNF) | Hoyeon Telephone Number에 2가지가 들어가 있기 때문에 제1 정규형을 만족할 수 없게 된다. 관계형 데이터 베이스의 경우 기본적으로 도메인은 모두 원자값이기 때문에 제1 … 정규화 과정
  • Table of Contents:

제1 정규화 (1NF)

제2 정규화 (2NF)

제3 정규화

BCNF(Boyce and Codd Normal Form) 결정자 중 후보키가 아닌 것들은 제거

[Database] 정규화(Normalization) 과정 (1NF, 2NF, 3NF, BCNF) | Hoyeon
[Database] 정규화(Normalization) 과정 (1NF, 2NF, 3NF, BCNF) | Hoyeon

Read More

면접을 위한 CS 전공지식 노트 – 주홍철 – Google Sách

  • Article author: books.google.com.vn
  • Reviews from users: 41210 ⭐ Ratings
  • Top rated: 3.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 면접을 위한 CS 전공지식 노트 – 주홍철 – Google Sách Updating …
  • Most searched keywords: Whether you are looking for 면접을 위한 CS 전공지식 노트 – 주홍철 – Google Sách Updating 디자인 패턴, 네트워크, 운영체제, 데이터베이스, 자료 구조, 개발자 면접과 포트폴리오까지!CS 전공지식 습득과 면접 대비, 이 책 한 권이면 충분하다!개발자 면접에서 큰 비중을 차지하는 CS(Computer Science) 전공지식! 디자인 패턴부터 자료 구조까지 알아야 할 게 너무 많은데, 어떻게 준비해야 할까? 이 책은 디자인 패턴, 네트워크, 운영체제, 데이터베이스, 자료 구조 등 면접에 필요한 CS 전공지식을 모두 담고 있다. 200여 개의 그림과 코드로 이론을 자세히 설명하고, 실제 라이브러리에서 사용된 디자인 패턴 등으로 실무 활용법을 함께 다뤄 이론과 실무를 놓치지 않고 학습할 수 있도록 구성했다. 또한, 중요한 내용은 깊게, 덜 중요한 내용은 핵심만 설명하며, 책 곳곳에 70여 개의 용어 풀이도 담고 있다. 마지막으로 구글, 네이버, 카카오 등 탑티어급의 회사에 합격한 저자의 경험을 기반으로 한 포트폴리오 작성법과 챕터별 예상 질문, 면접 준비 노하우도 알려준다. 개발자 면접을 준비하거나 더 나은 개발자가 되기 위해 CS 전공지식을 배우고 싶다면 이 책으로 시작하자.* 종이책 3쇄 출간에 따라 오탈자 및 내용 수정을 반영했습니다.
  • Table of Contents:
면접을 위한 CS 전공지식 노트 - 주홍철 - Google Sách
면접을 위한 CS 전공지식 노트 – 주홍철 – Google Sách

Read More

[DB 정규화] 1정규형, 2정규형, 3정규형

  • Article author: mentha2.tistory.com
  • Reviews from users: 4070 ⭐ Ratings
  • Top rated: 3.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [DB 정규화] 1정규형, 2정규형, 3정규형 정규형(Normal Form, NF)은 데이터 이상(Anomaly) 현상을 제거하기 위한 관계형 모델의 설계 지침입니다. 1, 2, 3 정규형(NF)은 관계형 데이터 모델을 … …
  • Most searched keywords: Whether you are looking for [DB 정규화] 1정규형, 2정규형, 3정규형 정규형(Normal Form, NF)은 데이터 이상(Anomaly) 현상을 제거하기 위한 관계형 모델의 설계 지침입니다. 1, 2, 3 정규형(NF)은 관계형 데이터 모델을 … 정규형(Normal Form, NF)은 데이터 이상(Anomaly) 현상을 제거하기 위한 관계형 모델의 설계 지침입니다. 1, 2, 3 정규형(NF)은 관계형 데이터 모델을 만든 에드거 F. 커드(E.F. Codd) 박사가 제안했습니다. 정규..행궁동에 사는 데이터 엔지니어 Mentha 입니다.
    Python, Hadoop, SQL, 알고리즘 그리고 엑셀과 관련된 포스팅을 주로 합니다.
    궁금하신 사항은 메일 또는 방명록에 언제든지 남겨주세요 ^.^
  • Table of Contents:
[DB 정규화] 1정규형 2정규형 3정규형

티스토리툴바

[DB 정규화] 1정규형, 2정규형, 3정규형
[DB 정규화] 1정규형, 2정규형, 3정규형

Read More

정규화 (1정규형, 2정규형, 3정규형) 변환과정

  • Article author: bebeya.tistory.com
  • Reviews from users: 9216 ⭐ Ratings
  • Top rated: 4.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 정규화 (1정규형, 2정규형, 3정규형) 변환과정 정규화 (1정규형, 2정규형, 3정규형) 변환과정 · 정규화 · 제 1 정규화 (비정규형 -> 1NF) · 제 2 정규화 (1NF-> 2NF) – 부분함수 종속 제거 · 제 3정규화(2NF … …
  • Most searched keywords: Whether you are looking for 정규화 (1정규형, 2정규형, 3정규형) 변환과정 정규화 (1정규형, 2정규형, 3정규형) 변환과정 · 정규화 · 제 1 정규화 (비정규형 -> 1NF) · 제 2 정규화 (1NF-> 2NF) – 부분함수 종속 제거 · 제 3정규화(2NF … 정규화 정규화 과정이란 중복된 속성을 최소화 하고 종속관계에 있는 속성을 제거하는 과정입니다. 이러한 정규화 과정을 다시 조인하면 데이터의 손실없이 이전상태로 복구가 가능해야 한다 정규형은 1,2,3 형..
  • Table of Contents:

정규화

제 1 정규화 (비정규형 – 1NF)

제 2 정규화 (1NF- 2NF) – 부분함수 종속 제거

제 3정규화(2NF- 3NF) – 이행적 함수 종속 제거

비정규형 테이블의 정규화 최종 결과

관련글

댓글0

최근댓글

태그

티스토리툴바

정규화 (1정규형, 2정규형, 3정규형) 변환과정
정규화 (1정규형, 2정규형, 3정규형) 변환과정

Read More

제 2 정규형 : définition de 제 2 정규형 et synonymes de 제 2 정규형 (coréen)

  • Article author: dictionnaire.sensagent.leparisien.fr
  • Reviews from users: 20433 ⭐ Ratings
  • Top rated: 3.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 제 2 정규형 : définition de 제 2 정규형 et synonymes de 제 2 정규형 (coréen) Définitions de 제 2 정규형, synonymes, antonymes, dérivés de 제 2 정규형, … [ 14 ] 1NF 이상의 정규화 어떤 테이블이 제 2 정규형 ( 2NF ) 이거나 그 이상이면 … …
  • Most searched keywords: Whether you are looking for 제 2 정규형 : définition de 제 2 정규형 et synonymes de 제 2 정규형 (coréen) Définitions de 제 2 정규형, synonymes, antonymes, dérivés de 제 2 정규형, … [ 14 ] 1NF 이상의 정규화 어떤 테이블이 제 2 정규형 ( 2NF ) 이거나 그 이상이면 … Définitions de 제 2 정규형, synonymes, antonymes, dérivés de 제 2 정규형, dictionnaire analogique de 제 2 정규형 (coréen)
  • Table of Contents:
제 2 정규형 : définition de 제 2 정규형 et synonymes de 제 2 정규형 (coréen)
제 2 정규형 : définition de 제 2 정규형 et synonymes de 제 2 정규형 (coréen)

Read More

데이터베이스 정규화

  • Article author: velog.io
  • Reviews from users: 29113 ⭐ Ratings
  • Top rated: 4.9 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 데이터베이스 정규화 데이터베이스 · 데이터베이스 정규화란? · 데이터베이스 정규화의 장점 · 논리적 구조의 이상(anomaly)현상 · 함수 종속(Functional Dependency) · 제 1 정규형 … …
  • Most searched keywords: Whether you are looking for 데이터베이스 정규화 데이터베이스 · 데이터베이스 정규화란? · 데이터베이스 정규화의 장점 · 논리적 구조의 이상(anomaly)현상 · 함수 종속(Functional Dependency) · 제 1 정규형 … 데이터베이스 정규화란?
    데이터베이스의 중복을 최소화하여 저장 효율을 높이고
    연산 시 이상 현상을 최소화할 수 있는 논리적 구조로 변환시키는 작업

    데이터베이스 정규화의 장점
    데이터베이스의 일관성을 향상 시킬 수 있다.
    데이터베이스의 확장성을 보장할 수 있다.
    데이터베이

  • Table of Contents:

데이터베이스

데이터베이스 정규화란

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

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

함수 종속(Functional Dependency)

제 1 정규형(1NF)

제 2 정규형(2NF)

제 3 정규형(3NF)

데이터베이스 정규화
데이터베이스 정규화

Read More


See more articles in the same category here: toplist.maxfit.vn/blog.

[DB] 8. 정규형 (1NF, 2NF, 3NF, BCNF)

728×90

반응형

[목차]

1. 제1 정규형

2. 제2 정규형

3. 제3 정규형

4. BCNF

정규형이란 정규화된 결과를 말하며, 제1 정규형, 제2 정규형, 제3 정규형, BCNF, 제4 정규형, 제5 정규형이 있다. 실무적으로 제4, 제5 정규형은 잘 쓰이지 않는다고 한다. 따라서 BCNF까지만 설명할 예정이다.

1. 제1 정규형 (1NF)

제1 정규형은 릴레이션에 속하는 속성의 속성 값이 모두 원자값(Atomic Value)만으로 구성되어야 한다.

원자값이란 더 이상 쪼개질 수 없는 단위를 말한다.

예를 들어 위처럼 릴레이션이 이루어져 있다면, 제1 정규형을 만족하지 못한다. 학번이 100인 학생의 과목 번호와 성적이 2개로 이루어져 있기 때문이다. 따라서 제1 정규형이 되려면 다음과 같이 속성 값을 분리해주어야 한다.

제1 정규형에서는 어떠한 이상현상이 발생할까?

– 삽입 이상 : 학생이 새 과목을 수강 신청할 때 반드시 학생의 학과와 지도교수를 알아야 한다. (불필요한 정보)

– 삭제 이상 : 300번 학생이 C400 과목을 취소하면, 해당 과목에 대한 정보가 모두 사라진다.

– 갱신 이상 : 100번 학생이 지도교수를 변경할 때, P1인 행을 모두 찾아서 변경해주어야 한다.

제1 정규형에서 이러한 이상현상이 발생하는 이유는, 기본키(primary key)가 아닌 속성들이 기본키에 완전 함수 종속되지 못하고 부분 함수 종속되어 있기 때문이다. 즉, 기본키의 일부 속성에만 의존하고 있기 때문이다. 아래의 그림을 참고하면 기본키는 (학번, 과목 번호)이고, 지도교수와 학과가 부분 함수 종속되어 있다.

2. 제2 정규형 (2NF)

제2 정규형은 제1 정규형이면서, 기본키(primary key)에 속하지 않은 속성 모두가 기본키에 완전 함수 종속인 정규형을 말한다.

위 그림처럼 각 속성들이 모두 완전 함수 종속이 되도록 릴레이션을 분리시켜준다. 따라서 아래와 같이 릴레이션이 형성된다.

제2 정규형에도 여전히 이상현상이 존재한다.

– 삽입 이상 : 지도교수가 학과에 소속되어 있음을 추가할 때 반드시 지도 학생이 있어야 한다. (불필요한 정보 필요)

– 삭제 이상 : 300번 학생이 자퇴하는 경우 P3 교수의 학과 정보가 사라진다.

– 갱신 이상 : 지도교수의 학과가 변경되는 경우 모두 찾아서 변경시켜주어야 한다. (지도교수가 동일한 학생이 여러 명 있는 경우)

제2 정규형에서 이상현상이 여전히 발생하는 이유는 ‘이행적 함수 종속성’ 때문이다. 이행적 함수 종속성은 속성이 A→B이고, B→C이면서 A→C의 관계에 있는 것을 말한다.

위 예시에서는 학번 → 지도교수, 지도교수 → 학과, 학번 → 학과의 관계가 존재한다.

따라서 지도교수의 학과를 추가하기 위해서 지도 학생까지 필요하게 되고, 학생이 자퇴하였는데 지도교수의 학과 정보가 사라지는 문제점이 발생하게 되는 것이다.

3. 제3 정규형 (3NF)

제3 정규형은 제2 정규형이면서, 이행적 함수 종속성을 제거한 정규형을 말한다.

즉, 기본키에 속하지 않은 모든 속성이 기본키에 이행적 함수 종속이 아닐 때 제3 정규형이라고 한다. 다르게 표현하면, 기본키 이외의 속성이 그 외 다른 속성을 결정할 수 없는 것이다.

이렇게 이행적 함수 종속 관계에 있는 속성을 분리한다. 테이블로 나타내면 아래와 같다.

4. BCNF

BCNF (Boyce and Codd Normal Form)은 제3 정규형을 조금 더 강화시킨 개념이다. 강한 제3 정규형이라고도 한다.

아래와 같은 제3 정규형을 만족하는 릴레이션이 있다고 가정하자. 한 교수당 하나의 수업만 맡는다고 가정한다.

이렇게 되면 제3 정규형을 만족한다. 이 경우에는 어떤 이상현상이 생길까?

– 삽입 이상 : 새로운 교수가 특정 과목을 담당한다는 새로운 정보를 추가할 수 없다. 적어도 한 명 이상의 수강 학생이 필요하다.

– 삭제 이상 : 학번 100이 C234 과목을 취소하면, P2가 C234 과목을 담당한다는 정보도 삭제된다.

– 갱신 이상 : P1의 과목이 변경되면 P1인 행을 모두 찾아 변경시켜주어야 한다.

이러한 이상현상이 생기는 이유는, 결정자(Determinant)가 후보키(Alternative Key)로 취급되고 있지 않기 때문이다.

후보키는 슈퍼키(super key) 중에서 최소성을 갖는 키 이므로 이 릴레이션에서는 (학번, 과목명)이나 (학번, 담당교수)가 후보키가 된다. 담당 교수만으로는 후보키가 될 수 없다.

하지만, 후보키가 아님에도 과목명을 결정할 수 있기 때문에 담당 교수는 결정자에 속한다.

이 이상현상을 해결하기 위해서 모든 결정자는 항상 후보키가 되도록 릴레이션을 분해해주면 강한 제3 정규형, 즉 BCNF를 만족하게 된다.

참고) KOCW 공개 강의 (데이터베이스 – 원광대학교 / 한성국 교수)

PC로 보시는 것을 권장합니다.

피드백은 언제나 환영입니다. 댓글로 달아주세요 ^-^

728×90

반응형

[DB] 정규화(Normalization)란? 정규화 예시, 1NF, 2NF, 3NF, BCNF

정규화(Normalization)란?

정규화는 이상현상이 있는 릴레이션을 분해하여 이상현상을 없애는 과정이다. 이상현상이 존재하는 릴레이션을 분해하여 여러 개의 릴레이션을 생성하게 된다. 이를 단계별로 구분하여 정규형이 높아질수록 이상현상은 줄어들게 된다.

정규화의 장점

데이터베이스 변경 시 이상 현상(Anomaly)을 제거할 수 있다.

정규화된 데이터베이스 구조에서는 새로운 데이터 형의 추가로 인한 확장 시, 그 구조를 변경하지 않아도 되거나 일부만 변경해도 된다.

데이터베이스와 연동된 응용 프로그램에 최소한의 영향만을 미치게 되어 응용프로그램의 생명을 연장시킨다.

정규화의 단점

릴레이션의 분해로 인해 릴레이션 간의 JOIN연산이 많아진다.

질의에 대한 응답시간이 느려질 수도 있다. 데이터의 중복 속성을 제거하고 결정자에 의해 동일한 의미의 일반 속성이 하나의 테이블로 집약되므로 한 테이블의 데이터 용량이 최소화되는 효과가 있다.

있다. 데이터의 중복 속성을 제거하고 결정자에 의해 동일한 의미의 일반 속성이 하나의 테이블로 집약되므로 한 테이블의 데이터 용량이 최소화되는 효과가 있다. 따라서 데이터를 처리할 때 속도가 빨라질 수도 있고 느려질 수도 있다.

만약 조인이 많이 발생하여 성능저하가 나타나면 반정규화(De-normalization)를 적용할 수도 있다.

정규화를 알아보기 전에, 이상현상과 함수 종속성에 대해서 꼭 알아야 한다. 아래 포스팅을 참고하자.

제 1정규형 (1NF)

제 1정규형은 다음과 같은 규칙들을 만족해야 한다.

1. 각 컬럼이 하나의 속성만을 가져야 한다.

2. 하나의 컬럼은 같은 종류나 타입(type)의 값을 가져야 한다.

3. 각 컬럼이 유일한(unique) 이름을 가져야 한다.

4. 칼럼의 순서가 상관없어야 한다.

조금 복잡해보이지만, 간단하게 예시를 들면 이해가 빠르다. 아래 테이블을 살펴보자.

1정규화가 필요한 테이블

각 컬럼이 하나의 값(속성)만을 가져야 한다. -> 불만족! 하나의 컬럼(과목)에 두 개의 값을 가짐 하나의 컬럼은 같은 종류나 타입(type)의 값을 가져야 한다. -> 만족 각 컬럼이 유일한(unique) 이름을 가져야 한다. -> 만족 칼럼의 순서가 상관없어야 한다. -> 만족

1번 규칙을 불만족하므로 이를 고치기 위해서는 아래와 같이 분해하면 된다.

1NF

위와 같이 각 컬럼이 원자 값을 갖도록 테이블을 분해하면 1정규형을 만족하게 바꿀 수 있다.

제 2정규형 (2NF)

제 2정규형은 다음과 같은 규칙을 만족해야 한다.

1. 1정규형을 만족해야 한다.

2. 모든 컬럼이 부분적 종속(Partial Dependency)이 없어야 한다. == 모든 컬럼이 완전 함수 종속을 만족해야 한다.

부분적 종속이란 기본키 중에 특정 컬럼에만 종속되는 것이다.

완전 함수 종속이란 기본키의 부분집합이 결정자가 되어선 안된다는 것이다. ( 비슷한 말이다 )

2정규화가 필요한 테이블

위와 같은 테이블과 FD 다이어그램을 보자.

성적의 특정 값을 알기 위해서는 학생 번호+과목이 있어야 한다. (ex : 102번의 자바 성적 70 )

하지만 특정 과목의 지도교수는 과목명만 알면 지도교수가 누군지 알 수 있다. (ex : 자바의 지도교수 박자바)

위 테이블에서 기본키는 (학생 번호, 과목)으로 복합키이다.

그런데 이때 지도교수 칼럼은 (학생번호, 과목)에 종속되지 않고 (과목) 에만 종속되는 부분적 종속이다.

따라서 제 2정규화를 만족하지 않으므로 아래와 같이 분해해야 한다.

2NF

위와 같이 분해하면 제 2정규형을 만족한다.

제 3정규형 (3NF)

제 3정규형은 다음과 같은 규칙을 만족해야 한다.

1. 2정규형을 만족해야 한다.

2. 기본키를 제외한 속성들간의 이행 종속성 (Transitive Dependency)이 없어야 한다.

이행 종속성이란 A->B, B->C 일 때 A->C 가 성립하면 이행 종속이라고 한다.

3정규화가 필요한 테이블

위와 같은 테이블을 보자. ID를 알면 등급을 알 수 있다. 등급을 알면 할인율을 알 수 있다. 따라서 ID를 알면 할인율을 알 수 있다. 따라서 이행 종속성이 존재하므로 제 3정규형을 만족하지 않는다.

3정규형을 만족하기 위해서는 아래와 같이 분해해야 한다.

3NF

위와 같이 분해하면 제 3정규형을 만족한다.

BCNF (Boyce-Codd Normal Form)

BCNF는 제 3정규형을 좀 더 강화한 버전으로 다음과 같은 규칙을 만족해야 한다.

1. 3정규형을 만족해야 한다.

2. 모든 결정자가 후보키 집합에 속해야 한다.

모든 결정자가 후보키 집합에 속해야 한다는 뜻은, 후보키 집합에 없는 컬럼이 결정자가 되어서는 안된다는 뜻이다.

BCNF가 필요한 테이블

위와 같은 테이블을 보자. (학생번호, 과목)이 기본키로 지도교수를 알 수 있다. 하지만 같은 과목을 다른 교수가 가르칠 수도 있어서 과목->지도교수 종속은 성립하지 않는다. 하지만 지도교수가 어떤 과목을 가르치는지는 알 수 있으므로

지도교수->과목 종속이 성립한다.

이처럼 후보키 집합이 아닌 컬럼이 결정자가 되어버린 상황을 BCNF를 만족하지 않는다고 한다.

(참고로 위 테이블은 제 3정규형까지는 만족하는 테이블이다 )

BCNF를 만족하기 위해서는 아래와 같이 분해하면 된다.

BCNF

4정규형 이상~

정규형

보통 정규화는 BCNF 까지만 하는 경우가 많다. 그 이상 정규화를 하면 정규화의 단점이 나타날 수도 있다.

4정규형 이상은 다음에 알아보도록 하자.

반응형

위키백과, 우리 모두의 백과사전

제1정규형(1NF 또는 최소형)은 데이터베이스 정규화에서 사용하는 정규형중 하나이다. 관계형 데이터베이스의 테이블이 1NF이면 최소한 테이블은 관계 이며, 중복되는 항목이 없어야 한다[2]이다.

“중복되는 항목이 없다”에 대한 정의는 학자마다 주장이 조금씩 달라서, 1NF를 만족하는 테이블에 대해서의 정확한 정의는 없다. 대부분의 학자들(에드거 F. 커드, Ramez Elmasri, Shamkant B. Navathe[3])은 1NF를 만족하는 테이블은 관계 값을 가지는 항목(테이블 내 테이블)을 허용하지 않으나, 일부 학자들(크리스토퍼 J. 데이트 등)은 이를 허용하기도 한다.

제1정규형은 다음 표준을 요구한다.

각 테이블에서 중복을 제거한다.

각각 관계된 데이터 모임을 위하여 분리된 테이블을 만든다.

각각 관계된 데이터 모임을 기본키로 식별한다.

관계를 의미하는 1NF 테이블 [ 편집 ]

크리스토퍼 J. 데이트에 의하면 테이블은 “어떤 관계와 동일 구조”이면 1NF이다. 이는 아래의 5가지 조건을 충족한다는 의미이다:

열에는 위-아래의 순서가 없다. 행에는 좌-우의 순서가 없다. 중복되는 열이 없다. 모든 열과 행의 중복지점에는 (열과 행의)해당되는 분야에서 한 개의 값을 가진다. 모든 행은 규칙적이다. [즉, 열은 열ID, 오브젝트ID, 숨어있는(hidden) 타임 스탬프등과 같은 숨어있는 요소(행)를 가지지 않는다.]

— Chris Date, “What First Normal Form Really Means”, pp. 127–8

이런 조건을 충족하지 않는 테이블은 엄격히 보면 관계형이 아니라는 의미이며, 1NF가 아니다.

1NF의 정의를 충족하지 못하는 테이블(또는 뷰)의 예제들을 보자면,

유니크 키가 없다. 이런 테이블은 열의 중복을 허용하기 때문에, 3번 조건을 위배한다.

뷰의 결과가 특정한 순서를 가지게 정의한 뷰. 뷰의 측면에서 열의 정렬이 본질적이고 의미가 있을 경우. [5] 이는 1번 조건을 위배한다. 관계에서의 튜플은 서로간의 순서가 없다.

이는 1번 조건을 위배한다. 관계에서의 튜플은 서로간의 순서가 없다. 최소한 하나의 Null 속성을 가지는 테이블. Null 속성은 모든 행의 영역에서 꼭 한 개의 값만을 가져야 하는 4번 조건을 위배한다. 하지만 4번 조건은 논란이 많은데, 에드거 F. 커드는 최근의 관계형 모델에 관한 견해에서 Null에 대한 명시적인 조항을 만들었었다.[7]

중복되는 항목 [ 편집 ]

많은 사람들이 1NF를 정의하는 특성이라고 생각하는 에드거 F. 커드의 4번째 조건은 중복되는 항목에 관한 조건이다. 아래의 시나리오들은 데이터베이스 디자인이 1NF를 위배하는 중복되는 항목을 가지는 경우이다.

영역과 값 [ 편집 ]

초보 디자이너가 고객의 이름과 전화번호를 기록하고자 한다. 그는 아래와 같이 테이블을 정의하였다:

Customer Customer ID First Name Surname Telephone Number 123 Robert Ingram 555-861-2025 456 Jane Wright 555-403-1659 789 Maria Fernandez 555-808-9633

디자이너는 이후에 어떤 고객들은 전화번호를 여러개 가지고 있다는 사실을 알게 되었다. 그는 아래와 같이 단순히 가장 간단한 방법을 생각하여 “전화번호”항목에 여러 개의 값을 두었다:

Customer Customer ID First Name Surname Telephone Number 123 Robert Ingram 555-861-2025 456 Jane Wright 555-403-1659

555-776-4100 789 Maria Fernandez 555-808-9633

하지만 전화번호 행에는 전화번호가 아닌 전화번호와 유사한 도메인(12개의 길이를 가지는 문자열)이 정의되게 된다. 1NF(그 점에 있어서 관계형 데이터베이스도 마찬가지로)는 행 도메인에서 정확하게 한 개의 값만을 허용하기 때문에 위의 테이블은 1NF가 아니다.

행을 가로지르며 중복되는 항목 [ 편집 ]

그래서 이 디자이너는 이번에는 이 제한을 충족하기 위해 여러개의 전화번호 행을 두었다:

Customer Customer ID First Name Surname Tel. No. 1 Tel. No. 2 Tel. No. 3 123 Robert Ingram 555-861-2025 456 Jane Wright 555-403-1659 555-776-4100 555-403-1659 789 Maria Fernandez 555-808-9633

하지만 이 디자인 역시 Null값을 가지는 행이 있기 때문에 크리스토퍼 J. 데이트의 1NF정의에 위배된다. 뷰가 Null 행을 허용하여도 이 디자인은 엄격히 보자면 1NF가 아니다. Tel. No. 1, Tel. No. 2., Tel. No. 3. 행은 완전히 동일한 도메인과 의미를 가진다. 위와 같이 전화번호 행을 3개로 인위적으로 나누게 된다면 아래와 같은 논리적인 문제들을 낳게 된다:

테이블 질의시 어려움. “어느 고객이 전화번호 X 를 가지고 있는가?”, “어떤 고객들끼리 같은 전화번호를 공유하는가?” 질의들은 답하기 어렵다.

를 가지고 있는가?”, “어떤 고객들끼리 같은 전화번호를 공유하는가?” 질의들은 답하기 어렵다. RDBMS에서 고객-전화번호의 유일성을 확보하기 어렵다. 고객 789가 실수로 Tel. No. 2값이 Tel. No. 1값과 동일한 값이 들어갈 수 있다.

전화번호 개수의 제한. 어떤 고객이 4개의 전화번호를 가진다면 4번째 전화번호는 기록될 수 없다.이는 데이터베이스 디자인이 비즈니스 프로세스를 제한하고 있다는 의미인데, 사실 이상적으로는 반대가 되어야 한다.

행 내에서의 중복되는 항목 [ 편집 ]

그래서 이 디자이너는 이번에는 이 제한을 충족하기 위해 한개의 전화번호 행을 두면서 전화번호 행 길이를 여러개의 전화번호를 기록하기 충분한 길이로 변경하였다 :

Customer Customer ID First Name Surname Telephone Numbers 123 Robert Ingram 555-861-2025 456 Jane Wright 555-403-1659, 555-776-4100 789 Maria Fernandez 555-808-9633

이 디자인은 1NF와 일치하지만, 디자인상의 문제점이 여러개 있다.전화번호는 의미상으로 모호해져서 전화번호를 표현할 수도, 전화번호들의 리스트를 표현할 수도, 심지어는 아무거나 표현할 수도 있다.”어떤 고객들이 같은 전화번호를 공유하는가?” 질의는 답하기 더욱 어려워 졌으며, 전화번호와 전화번호들의 리스트를 수집해야 할 필요성이 생겼다. RDBMS 내에서 전화번호에 대한 의미적인 제한을 정의하는 것 또한 어려워 졌다.

1NF를 충족하는 디자인 [ 편집 ]

1NF 측면에서 모호하지 않은 디자인은 2개의 테이블을 이용하는 것이다: 고객 명 테이블과 고객 전화번호 테이블이다.

Customer Name Customer ID First Name Surname 123 Robert Ingram 456 Jane Wright 789 Maria Fernandez

Customer Telephone Number Customer ID Telephone Number 123 555-861-2025 456 555-403-1659 456 555-776-4100 789 555-808-9633

이 디자인에서는 전화번호들의 중복되는 항목은 나오지 않는다. 대신 고객 대 전화번호의 연결이 레코드에 나온다. 고객 ID가 키 항목으로, “부모-자식” 또는 “일대 다(1:M)” 관계가 2개의 테이블사이에 존재하게 되는데, 이는 (“부모” 테이블에 있는) 고객 열이 (“자식” 테이블에 있는) 전화번호 열을 여러개 가질 수 있기 때문이다. 참고로 이 디자인은 제 2 정규형과 제 3 정규형을 충족하기도 한다.

에드거 F. 커드는 1NF의 정의에서 원자성에 대해서 언급하고 있다.에드거 F. 커드는 “관계가 정의된 도메인의 값은 DBMS에 대하여 원자성을 가져야 한다.”[9] 고 하였다. 에드거 F. 커드는 원자성을 갖는 값은 “(특수한 어떤 함수를 제외하고) DBMS에 의해서 더 작은 값으로 쪼개 지지 않는다”[10] 고 하였다. 이는 한 항목이 하나 이상의 자료형으로 나뉘면서 DBMS가 분리된 다른 부분에 대해서 의존적이지 않아야 한다는 의미이다.

허그 다윈과 크리스토퍼 J. 데이트는 에드거 F. 커드의 “원자성을 갖는 값”의 정의가 모호하며, 이런 모호성이 1NF를 이해하는데 크게 방해된다고 제안하였다.[11] “값이 나뉘지 않아야 한다”라는 정의에 해당하는 데이터형이 아래와 같은 이유로 거의 존재하지 않기 때문에 문제가 많다:

문자열도 원자성이 없다. RDMS가 일반적으로 작은 문자열로 나눌 수 있는 연산자를 제공하기 때문이다.

고정 소수점 수자도 원자성이 없다. RDBS가 일반적으로 이를 정수와 나머지 부분으로 나눌 수 있는 연산자를 제공하기 때문이다.

크리스토퍼 J. 데이트는 “원자성이란 절대적인 정의가 없다”: 고 하였다. 값은 목적에 따라서 원자성을 가질 수 도 있으며, 다른 목적을 위해서 나뉠 수도 있다. 이런 의견을 받아들이면 1NF의 정의에 원자성은 관련이 없어진다. 임의의 편한 자료형(문자열, 숫자형, 배열, 테이블 등)으로 정의된 행이라도 1NF 테이블일 수 있지만, 항상 그런 것은 아니다(예를 들어서, 고객 이름을 성과 이름으로 나누어야 할 때가 있다.) 크리스토퍼 J. 데이트는 심지어 관계 값을 갖는 속성, 즉 항목 안에 테이블이 있는 경우도 드문 경우에 유용하다고 하였다.

1NF 이상의 정규화 [ 편집 ]

어떤 테이블이 제 2 정규형(2NF)이거나 그 이상이면 정의에 따라서 1NF이기도 하다.(어떤 정규형이라도 그 이전 정규형의 충분조건이 된다.) 반대로 어떤 테이블이 1NF이면 2NF가 아닐수도 있다. 2NF이면 제 3 정규형일 수도 있고, 아닐 수도 있다.

1NF 이상의 정규형은 디자인 문제로 인하여 그 안의 데이터의 완전성을 절충해야 하는 상황을 고려하여야 한다. 예를 들어 아래의 테이블은 1NF이지만 2NF가 아니며, 이에 따라서 논리적 불일치에 있어서 취약하다:

Subscriber Email Addresses Subscriber ID Email Address Subscriber First Name Subscriber Surname 108 [email protected] Steve Wallace 252 [email protected] Carol Robertson 252 [email protected] Carol Robertson 360 [email protected] Harriet Clark

이 테이블의 키는 {Subscriber ID, Email Address}이다.

Carol Robertson이 결혼을 해서 성을 바꾼다면, 2개의 열을 변경하여야 한다. 1개의 열만 변경할 경우, 모순이 생긴다: “고객 252의 이름은 무엇인가?”에 대한 질문에 2개의 혼란스러운 답변이 생긴다. 2NF는 이 문제를 해결한다. Carol Robertson의 레코드는 그녀가 1개 이상의 이메일 주소를 사용함에 따라서 테이블에서 2개로 나타나는 것을 주목하기 바란다.

1NF 이상의 정규화에 대해서 생각해볼 수 있는 실질적인 방법은 레코드(행)들과 엔티티(테이블) 또는 속성(열)의 관계에 대해서 끊임없이 질문해 보는 것이다. 예를 들어, 이용자 레코드가 많은 이메일 주소 레코드와 관계가 있는가? 하나의 이메일 주소가 많은 이용자들과 관계가 있는가? 위의 테이블에서는 Carol Robertson이 하나 이상의 이메일 주소를 가지고 있었다. 하나의 이용자는 다수의 이메일 주소를 가질수 있고, 다수의 이메일 주소는 하나의 이용자를 가질수 있으므로 위의 테이블운 이용자와 이메일 주소간에 일대다(1:M) 관계가 있다고 답할 수 있다. 이제 ID, 성, 이름을 가지고 ID를 주 키로 하는 “이용자 테이블” 과 ID, 이메일을 가지고 ID를 주 키로 하는 “이용자 이메일 테이블”이라는 두 테이블이 있다면 ID를 주 키로 하는 “이용자 테이블” 과 ID를 외래 키로 하는 “이용자 이메일 테이블” 간에 1대 다 관계가 생기며, 이 테이블들도 1NF이게 된다.

참고 자료 [ 편집 ]

인용 자료 [ 편집 ]

더 읽을거리 [ 편집 ]

So you have finished reading the 정규형 topic article, if you find this article useful, please share it. Thank you very much. See more: 정규형 랄로, 보이스 코드 정규형, 정규화 과정, 3NF BCNF 차이, 다중값 속성을 갖는 릴레이션은 정규형을 위반한다., 데이터베이스 정규화 연습문제, 데이터베이스 정규화 쉽게

Leave a Comment