개인 재정 SQL 첫 번째, 두 번째 및 세 번째 정규 양식 - 더미

SQL 첫 번째, 두 번째 및 세 번째 정규 양식 - 더미

차례:

비디오: 파이썬 입문 강좌 | TEAMLAB X Inflearn | 14-3 정규 표현식: Regular Expression 2024

비디오: 파이썬 입문 강좌 | TEAMLAB X Inflearn | 14-3 정규 표현식: Regular Expression 2024
Anonim

SQL에 수정 변형 원인은 세 가지가 있습니다. 는 제 1, 제 2 및 제 3 999 형태 (1NF, 2NF, 3NF)로 정의된다. 이러한 정상적인 형태는 수정 변형에 대한 해결책으로 작용합니다. 첫 번째 정규형 첫 번째 정규형 (1NF)이 되려면 테이블의 품질이 다음과 같아야합니다.

이 테이블은 행과 열이 2 차원입니다.

각 행에는 사물의 일부 또는 일부와 관련된 데이터가 들어 있습니다.

  • 각 열에는 설명 대상의 단일 속성에 대한 데이터가 들어 있습니다.

    표의 각 셀 (행과 열의 교차점)은 하나의 값만 가져야합니다.
  • 모든 열의 항목은 모두 같은 종류 여야합니다. 예를 들어 한 열의 한 행에있는 항목에 직원 이름이 포함되어 있으면 다른 모든 행에도 해당 열에 직원 이름이 포함되어야합니다.

  • 각 열에는 고유 한 이름이 있어야합니다.

    두 행이 동일하지 않을 수 있습니다 (즉, 각 행은 고유해야 함).
  • 열의 순서와 행의 순서는 중요하지 않습니다.

  • 첫 번째 정규 형식의 표 (관계)는 몇 가지 변형 변형에 영향을받지 않지만 여전히 다른 대상의 영향을받습니다. SALES 테이블은 첫 x ​​째 정규 양식이며 테이블은 h 제 및 삽입 이상이 _ 생합니다. 첫 번째 정규형은 일부 애플리케이션에서는 유용 할 수 있지만 다른 애플리케이션에서는 신뢰할 수 없습니다.

두 번째 정규 형식

두 번째 정규 형식을 이해하려면 기능 종속성에 대한 아이디어를 이해해야합니다.

기능적 종속성

은 속성 들간 또는 속성 들간의 관계이다. 두 번째 속성의 값이 첫 번째 속성의 값을 결정하면 하나의 속성은 다른 속성에 기능적으로 종속됩니다. 두 번째 속성의 값을 알고 있으면 첫 번째 속성의 값을 결정할 수 있습니다. 예를 들어 테이블에 다음 방정식과 관련된 특성 (열) StandardCharge, NumberOfTests 및 TotalCharge가 있다고 가정합니다. TotalCharge = StandardCharge * NumberOfTests

TotalCharge는 StandardCharge 및 NumberOfTests에 기능적으로 종속됩니다. StandardCharge 및 NumberOfTests 값을 알고 있으면 TotalCharge 값을 결정할 수 있습니다.

첫 번째 정규 형식의 모든 테이블에는 고유 한 기본 키가 있어야합니다. 이 키는 하나 이상의 열로 구성 될 수 있습니다. 둘 이상의 열로 구성된 키를

복합 키라고합니다. 두 번째 정규형 (2NF)이 되려면 모든 비 핵심 속성이 전체 키에 의존해야합니다. 따라서 하나의 속성 키를 가진 1NF에있는 모든 관계는 자동으로 두 번째 정규 형식입니다.관계에 복합 키가있는 경우, 키가 아닌 모든 속성은 키의 모든 구성 요소에 의존해야합니다. 키가 아닌 속성이 키의 모든 구성 요소에 종속되지 않는 테이블이있는 경우, 테이블을 두 개 이상의 테이블로 분리하여 - 새 테이블 각각에서 모든 비 핵심 속성이 모든 구성 요소에 종속되도록하십시오 기본 키의.

소리가 혼란 스럽습니까? 문제를 명확히하기 위해 예를보십시오. SALES 테이블을 고려하십시오. 각 고객에 대해 단일 구매를 기록하는 대신 고객이 처음 항목을 구입할 때마다 행을 추가합니다. 추가적인 차이점은 전세 고객 (Customer_ID 값이 1001 ~ 1007 인 고객)이 정상 가격에서 할인을 받는다는 것입니다. Customer_ID가 행을 고유하게 식별하지 않습니다. Customer_ID 열과 Product 열의 조합은 행을 고유하게 식별합니다. 이 두 열은 함께 복합 키입니다. 가격 (비 핵심 속성)이 키의 일부에만 의존하기 때문에 일부 고객이 할인 대상이고 다른 고객은 그렇지 않은 경우 표가 두 번째 정규 형식이 아닐 수 있습니다 (생성물). 일부 고객은 할인 대상이므로 가격은 CustomerID와 Product에 따라 달라지며 테이블은 두 번째 정규 형식입니다.

세 번째 정규 형식

두 번째 정규 형식의 테이블은 특정 유형의 수정 예외, 특히 전 이적 종속성에서 비롯된 테이블의 취약성에 특히 취약합니다.

전이 종속성

은 하나의 속성이 두 번째 속성에 종속 될 때 발생합니다. 두 번째 속성은 세 번째 속성에 따라 다릅니다. 이러한 종속성이있는 테이블에서 삭제하면 원하지 않는 정보가 손실 될 수 있습니다. 세 번째 정규형의 관계는 전이 의존성이없는 두 번째 정규형의 관계입니다.

첫 번째 정규 양식을 알고있는 SALES 테이블을 다시보십시오. 각 Customer_ID에 대해 한 행만 허용하도록 항목을 제한하는 한 단일 속성 기본 키가 있으며 테이블은 두 번째 정규 형식입니다. 그러나 테이블에는 여전히 예외가있을 수 있습니다. 예를 들어, 고객 1010이 염소 표백제에 만족하지 못하고 환불을 위해 물품을 반환한다면 어떻게 될까요?

고객 1010이 염소 표백제를 구입했다는 사실을 기록하는 테이블에서 세 번째 행을 제거하려고합니다. 문제가 있습니다: 그 행을 제거하면 염소 표백제 가격이 $ 4입니다. 이 상황은 전이 종속성의 예입니다. 가격은 제품에 따라 다르며, 차례대로 기본 키 Customer_ID에 따라 다릅니다.

SALES 테이블을 두 개의 테이블로 나누면 전이 종속성 문제가 해결됩니다. 두 테이블은 세 번째 정규 형식의 데이터베이스를 구성합니다.

SQL 첫 번째, 두 번째 및 세 번째 정규 양식 - 더미

편집자의 선택

럭비 토너먼트의 개요 - 인형

럭비 토너먼트의 개요 - 인형

프로 럭비 캘린더는 다양한 국제, 지역간 및 국내 토너먼트를 특징으로합니다. 럭비 선수들은 클럽, 주 및 국가를 대표하여 1 년 내에 3 개 또는 그 이상으로 경쟁합니다. 수년에 걸쳐 많은 럭비 토너먼트의 이름과 형식은 성장과 스폰서 십 변경으로 인해 변경되었습니다. ...

럭비 - 인형의 법을 다루기

럭비 - 인형의 법을 다루기

럭비는 규칙이 아닌 법에 의해 규율된다. 게임의 법칙은 가장 많은 점수를 매기려고 재미 있고 자유로운 흐름을 유지하기 위해 고안되었습니다. 럭비의 법칙은 끊임없이 진화하고 있으며 게임이 진행되는 곳마다 전 세계에서 동일합니다. 일반적으로 법률은 ...

누가 슈퍼 럭비 팀입니까? - 인형

누가 슈퍼 럭비 팀입니까? - 인형

Super Rugby는 15 개 팀으로 구성됩니다. 공격을 장려하는 포인트 시스템은 경쟁자를 시청자에게 더욱 매력적으로 만듭니다. 수퍼 럭비 팀 15 명은 블루스 : 뉴질랜드 북섬의 오클랜드 블루스 우박. Brumbies : ACT Brumbies는 캔버라 스타디움에서 홈구장을하고 있습니다 ...

편집자의 선택

귀하의 LinkedIn 네트워크에 직업 목록 광고 - 인형

귀하의 LinkedIn 네트워크에 직업 목록 광고 - 인형

LinkedIn은 귀하에게 "공유" Facebook 및 Twitter와 같은 소셜 네트워킹 사이트를 사용하여 귀하의 직업 목록을 작성하고, 네트워크의 모든 사람들 또는 일부 사람들에게 메시지를 보내고, 일자리에 대해 알리고 그들이 알고있는 사람이 누구인지 물어볼 수 있습니다

귀하의 LinkedIn 프로필을 보지 못하도록 차단 - 인형

귀하의 LinkedIn 프로필을 보지 못하도록 차단 - 인형

LinkedIn 사용자가 원하지 않는 자신의 프로파일에 대한 연락처 정보를 제공합니다. 스토커 나 학대받는 사람을 상대 할 때가 있습니다. 이러한 상황에서 LinkedIn을 사용하면 프로필 및 LinkedIn 활동에 대한 사용자의 액세스를 제한 할 수 있습니다. 당신은 오직 ...

자신의 LinkedIn 라이온 또는 그들과의 만남 - 인형

자신의 LinkedIn 라이온 또는 그들과의 만남 - 인형

LinkedIn의 사람들은 이름 옆에있는 "LION"이라는 별명을 사용하거나 요약에 나열해야합니다. 아니요,이 사람들은 실제 고양이 애호가가 아닙니다. LION은 LinkedIn Open Networker의 약자입니다. 라이온은 LinkedIn에있는 사람들과 관계없이 그들이 알고 있는지 여부에 관계없이 누구와도 연결할 수있는 사람입니다.

편집자의 선택

시작 버튼에서 Word 2007을 여는 방법 - 반드시

시작 버튼에서 Word 2007을 여는 방법 - 반드시

더미 인형, Word를 시작할 장소 2007 전설적인 시작 버튼에 있습니다. Word를 시작하는 가장 멋진 방법은 아니지만 일관성 있고 신뢰할 수 있습니다. 문서를 만들어야 할 때 사용할 수있는 좋은 도구입니다. 시작 버튼을 클릭하십시오. 시작 메뉴가 표시됩니다. Word를 선택하십시오 ...

Word 2013에서 하나의 문서를 여는 방법 - 더미

Word 2013에서 하나의 문서를 여는 방법 - 더미

하나의 문서를 다른 문서의 내부에서 엽니 다. 그렇게하는 것은 생각만큼 희귀하지 않습니다. 예를 들어, 약력, 이력서 또는 이력서를 디스크에있는 파일에 올릴 수 있으며 그 정보를 구걸하는 편지 끝에 붙여 넣을 수 있습니다. 그렇다면 ...

빠른 실행 도구 모음으로 Word 2007을 여는 방법 - 더미

빠른 실행 도구 모음으로 Word 2007을 여는 방법 - 더미

Word 2007을 빠르게 시작할 수 있습니다 빠른 실행 도구 모음을 쉽게 사용할 수 있습니다. 작업 표시 줄의 시작 단추 바로 옆에있는 빠른 실행 도구 모음은 프로그램을 나타내는 일련의 아이콘으로 마우스를 한 번 클릭하여 시작할 수 있습니다.