Creative Saplings

데이터베이스 정규화 (간단한 영어로 설명)

9월 27, 2020
No Comments

데이터베이스 정규화 소개

데이터베이스 정규화는 데이터베이스를 테이블과 열로 구성하는 데 사용되는 프로세스입니다. 이것의 주요 아이디어는 테이블이 특정 주제에 관한 것이며 지원 주제 만 포함되어야한다는 것입니다. 정보가 포함 된 스프레드 시트를 예로 들어 보겠습니다. 데이터에는 여러 목적을 수행하는 영업 담당자와 고객이 포함되어 있습니다.

  • 조직의 영업 담당자 식별
  • 회사에서 문의하는 모든 고객 나열 제품 판매
  • 특정 고객에게 전화를 거는 영업 사원을 식별합니다.

테이블을 하나의 목적으로 제한함으로써 데이터베이스에 포함 된 중복 데이터의 수를 줄일 수 있습니다. 이렇게하면 데이터베이스 수정으로 인한 일부 문제가 제거됩니다.

이러한 목표를 달성하기 위해 몇 가지 정해진 규칙을 사용할 것입니다. 이러한 규칙을 적용하면 새 테이블이 형성됩니다. 무질서에서 최적화로의 진행은 몇 가지 일반 양식을 통과합니다.

대부분의 데이터베이스에서 사용하는 세 가지 일반 양식이 있습니다. 테이블이 각각의 연속적인 데이터베이스 정규화 양식을 충족하면 데이터베이스 수정 이상이 발생하지 않고 유일한 목적이나 주제에 더 집중됩니다. 계속 진행하기 전에 데이터베이스 테이블의 정의를 이해해야합니다.

데이터베이스 정규화 이유

데이터베이스를 정규화해야하는 세 가지 주요 이유가 있습니다. 첫 번째는 중복 데이터를 최소화하는 것이고, 두 번째는 데이터 수정 문제를 최소화하거나 방지하는 것이며, 세 번째는 쿼리를 단순화하는 것입니다.

다양한 정규화 상태를 살펴보면서 각 양식이 이러한 문제를 해결하는 방법을 논의하지만 먼저 정규화되지 않은 일부 데이터를 살펴보고 잠재적 인 함정에 대해 논의하겠습니다.

문제를 이해하면 정규화에 대해 더 잘 이해할 수있을 것 같습니다. 다음 표를 고려하십시오.

참고 : 기본 키 열에는 밑줄이 표시됩니다.

가장 먼저 주목할 점은이 테이블이 다음과 같은 다양한 용도로 사용된다는 것입니다.

  1. 조직의 영업 담당자 식별
  2. 판매 목록 사무실 및 전화 번호
  3. 영업 사원과 영업소 연결
  4. 각 영업 사원의 고객 표시

DBA로서 이것은 위험 신호를 불러옵니다. 일반적으로 저는 하나의 목적을 가진 테이블을보고 싶습니다. 테이블이 다양한 용도로 사용되면 많은 문제가 발생합니다. 즉, 데이터 중복, 데이터 업데이트 문제 및 데이터 쿼리 노력 증가.

데이터 중복 및 수정 이상

각 영업 담당자에 대해 SalesOffice 및 OfficeNumber를 모두 나열했습니다. 중복 된 영업 사원 데이터가 있습니다. 중복 된 정보는 두 가지 문제를 야기합니다.

  1. 저장 용량을 늘리고 성능을 저하시킵니다.
  2. 데이터 변경을 유지하기가 더 어려워집니다.

예를 들면 다음과 같습니다.

시카고 사무실을 일리노이 주 Evanston으로 이전하는 경우를 고려하십시오. 이를 표에 올바르게 반영하려면 현재 시카고에있는 모든 영업 사원의 항목을 업데이트해야합니다. 우리의 표는 작은 예이지만 더 큰지, 잠재적으로 수백 건의 업데이트가 포함될 수 있음을 알 수 있습니다.

이러한 상황은 수정 이상입니다. 데이터베이스 정규화가이를 수정합니다. 다음과 같은 세 가지 수정 이상이 발생할 수 있습니다.

Insert Anomaly

전체 행에 대한 정보를 알 때까지 기록 할 수없는 사실이 있습니다. 이 예에서는 영업 사원을 알 때까지 새 영업소를 기록 할 수 없습니다. 왜? 레코드를 생성하려면 기본 키를 제공해야합니다. 우리의 경우 이것은 EmployeeID입니다.

이상 업데이트

이 경우 여러 행에 동일한 정보가 있습니다. 예를 들어 사무실 번호가 변경되면 여러 번 업데이트해야합니다. 모든 행을 업데이트하지 않으면 불일치가 나타납니다.

삭제 이상

행을 삭제하면 둘 이상의 사실 집합이 삭제됩니다. 예를 들어 John Hunt가 은퇴하는 경우 해당 행을 삭제하면 뉴욕 사무실에 대한 정보를 잃게됩니다.

검색 및 정렬 문제

마지막으로 고려할 이유는 데이터를보다 쉽게 검색하고 정렬하는 것입니다. SalesStaff 테이블에서 Ford와 같은 특정 고객을 검색하려면 다음과 같은 쿼리를 작성해야합니다.

SELECT SalesOfficeFROM SalesStaffWHERE Customer1 = ‘Ford’ OR Customer2 = ‘Ford’ OR Customer3 = ‘Ford’

고객이 어떤 식 으로든 한 열에서 쿼리는 더 간단합니다. 또한 쿼리를 실행하고 고객별로 정렬 할 것인지 고려하십시오.

현재 테이블은이를 어렵게 만듭니다. 세 개의 개별 UNION 쿼리를 사용해야합니다!데이터를 다른 테이블로 분리하여 이러한 이상을 제거하거나 줄일 수 있습니다. 이렇게하면 데이터가 단일 용도로 사용되는 테이블에 저장됩니다.

테이블을 재 설계하는 프로세스는 데이터베이스 정규화입니다.

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

데이터베이스 정규화에는 1 차, 2 차, 3 차 정규화의 세 가지 일반적인 형식이 있습니다. 또한 각각 1NF, 2NF 및 3NF로 축약됩니다.

BCNF와 같은 몇 가지 추가 양식이 있지만 저는 이러한 양식을 고급이라고 생각하며 처음에는 배우기에 너무 필요하지 않습니다.

양식은 점진적입니다. 즉, 3 차 정규형에 대한 자격을 갖추려면 테이블이 먼저 2 차 정규형에 대한 규칙을 충족해야하고 2 차 정규형이 1 차 정규형에 대한 규칙을 준수해야합니다. 다양한 형식과 규칙을 자세히 논의하기 전에 다양한 형식을 요약 해 보겠습니다.

  • 첫 번째 정규 형식 – 정보는 원자 값을 포함하는 각 열과 함께 관계형 테이블에 저장됩니다. 반복되는 열 그룹이 없습니다.
  • 두 번째 일반 형식 – 테이블은 첫 번째 일반 형식이고 모든 열은 테이블의 기본 키에 따라 다릅니다.
  • 세 번째 일반 형식 – 테이블 두 번째 정규 형식이며 모든 열이 기본 키에 전 이적으로 의존하지 않습니다.

규칙이 너무 의미가 없더라도 걱정하지 마세요. 이해하는 데 도움이되는 기사를 링크했습니다.

지금은 데이터베이스 정규화를위한 세 가지 규칙이 서로간에 존재한다는 것을 이해하는 것이 중요합니다. 어떤 사람들은 데이터베이스 정규화를 복잡하게 보이게 만듭니다.

하지만 그럴 필요는 없으며 이해하면 직관적이됩니다.

Articles
Previous Post

Gov. Charlie Baker (한국어)

Next Post

벌, 말벌 및 말벌 : 어떤 쏘임이 가장 아프고 어떻게 자신을 보호 할 수 있습니까?

답글 남기기 답글 취소하기

최신 글

  • 2020 년 세계 최고의 사진 학교
  • 주권 시민이 반정부 철학을 도로로 가져옴
  • 치장 벽토 수리 비용 가이드
  • Muckrakers (한국어)
  • 정밀 종양학

보관함

  • 2021년 2월
  • 2021년 1월
  • 2020년 12월
  • 2020년 11월
  • 2020년 10월
  • 2020년 9월
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.