개인 재정 SQL 도메인 키 정규형 (DK / NF) 및 비정상 형

SQL 도메인 키 정규형 (DK / NF) 및 비정상 형

차례:

비디오: 오라클 DB SQL 강좌 | 테이블 참조, Foreign Key, 참조 무결성 제약조건, SQLP, SQLD, 데이터베이스 실습 강의 2024

비디오: 오라클 DB SQL 강좌 | 테이블 참조, Foreign Key, 참조 무결성 제약조건, SQLP, SQLD, 데이터베이스 실습 강의 2024
Anonim

SQL 데이터베이스가 세 번째 정규 형식으로 된 후에는 수정 예외의 가능성은 거의 없지만 모두 제거되었습니다. 세 번째를 넘어서는 정상적인 형태는 남아있는 버그를 거의 없애기 위해 정의됩니다.

도메인 키 정규형 (DK / NF)

Boyce-Codd 정상형 (BCNF), 네 번째 정규형 (4NF) 및 다섯 번째 정규형 (5NF)이 이러한 형태의 예입니다. 각 양식은 가능한 수정 변형을 제거하지만 모든 가능한 수정 변형의 방지를 보장하지는 않습니다. 그러나 도메인 키 정규형은 그러한 보증을 제공합니다.

도메인 키 정규형 (DK / NF) 에 관계가있다. 이 정의에서 제약 조건 은 그것이 사실인지 아닌지를 평가할 수있을만큼 충분히 정확한 규칙입니다. 키 는 테이블의 행에 대한 고유 한 식별자입니다. 도메인 은 속성의 허용 된 값 집합입니다.

1NF에있는이 데이터베이스를보고 DK / NF에 데이터베이스를 저장하기 위해해야 ​​할 일을 확인하십시오. Customer_ID

제약 조건:

Customer_ID는 제품을 결정합니다. 제품은 가격을 결정합니다.

Customer_ID는 정수 여야합니다. 표:

영업 (Customer_ID, Product, Price) > 1000

  • Constraint 3 (Customer_ID가 1000보다 큰 정수 여야 함)을 적용하려면 Customer_ID의 도메인을 정의하여이 제약 조건을 통합하면됩니다. 그러면 제약 조건이 CustomerID 열의 도메인의 논리적 인 결과가됩니다. 제품은 Customer_ID에 따라 달라지며 Customer_ID는 키이므로 제약 조건 1에 아무런 문제가 없으므로 키 정의의 논리적 결과입니다.

  • 제약 2 999는 문제가된다. 가격은 (제품의 논리적 인 결과이므로) 제품에 달려 있으며 제품은 핵심이 아닙니다. 해결책은 SALES 테이블을 두 개의 테이블로 나누는 것입니다. 한 테이블은 Customer_ID를 키로 사용하고 다른 테이블은 Product를 키로 사용합니다. 데이터베이스는 3NF 외에 DK / NF에도 있습니다.

    가능하면 데이터베이스가 DK / NF가되도록 설계하십시오. 그렇게 할 수있는 경우 키와 도메인 제한을 적용하면 모든 제약 조건이 충족되고 수정 변형이 불가능합니다. 데이터베이스 구조가 DK / NF에 넣지 못하도록 설계된 경우 데이터베이스를 사용하는 응용 프로그램에 제약 조건을 작성해야합니다. 데이터베이스 자체가 제약 조건이 충족 될 것이라고 보장하지는 않습니다.

비정상적인 형태

인생과 마찬가지로 데이터베이스에서도: 때로는 비정상적인 결과가 발생합니다.정상화로 도취 될 수 있고 너무 멀리 갈 수 있습니다. 데이터베이스를 너무 많은 테이블로 나누면 전체가 다루기 힘들고 비효율적이게됩니다. 성능이 떨어질 수 있습니다. 종종 데이터베이스의 최적 구조가 다소 비정규 화됩니다. 실제로, 실용적인 데이터베이스 (실제로는 큰 데이터베이스)는 DK / NF 에까지 정규화 된 적이 거의 없습니다. 그러나 수정 한 데이터베이스를 정상화하여 수정 예외로 인한 데이터 손상 가능성을 제거하려고합니다. 가능한 한 데이터베이스를 정규화 한 후 일부 검색을 마른 실행으로 만듭니다. 성능이 만족스럽지 않으면 디자인을 검토하여 선택적인 비정규 화로 인해 무결성을 유지하면서 성능이 향상되는지 확인하십시오. 전략적 위치에 중복성을 신중하게 추가하고 비정상적인 ,

를 사용하면 예외적으로 효율적이고 안전한 데이터베이스에 도달 할 수 있습니다.

SQL 도메인 키 정규형 (DK / NF) 및 비정상 형

편집자의 선택

OneNote 2013에서 메모 서식을 지정하는 방법 - 인형

OneNote 2013에서 메모 서식을 지정하는 방법 - 인형

Windows 용 OneNote에서 메모를 서식 지정하는 과정은 OneNote 2013과는 조금 다른 것입니다. 다음은 Windows 용 OneNote에서 주요 서식 지정 작업을 수행하는 방법입니다. OneNote에서 텍스트를 수정하고 조작하는 방법 Windows 용 OneNote에는 리본이 없으므로 ...

OneNote 2013에서 메모를 보내는 방법 - 간단한 방법 인

OneNote 2013에서 메모를 보내는 방법 - 간단한 방법 인

OneNote 2013과 메모를 공유하는 방법은 전자 메일 수신자 또는 Microsoft Word 또는 블로그에 파일로 보내는 것입니다. 현재 메모를 파일로 보내려면 다음과 같이하십시오. OneNote 2013에서 공유하려는 메모를 열고 선택하십시오.

OneNote 2013에서 메모를 동기화하는 방법 - 인형

OneNote 2013에서 메모를 동기화하는 방법 - 인형

OneNote 2013은 수동으로 파일을 저장하는 전체 개념 동기화하는 데 유리합니다. 자동 또는 수동으로 파일을 동기화 할 수 있습니다. 이렇게하면 파일을 관리 할 때 약간의 자유가 생깁니다. OneNote에서 자동으로 동기화하는 방법 OneNote는 노트, 섹션 등을 변경할 때마다 노트를 자동 저장합니다.

편집자의 선택

루비 인형 용 인형 치트 시트 - 인형

루비 인형 용 인형 치트 시트 - 인형

루비 온 레일스는 오픈 소스 프레임 워크입니다. 웹 사이트 및 웹 기반 데이터베이스를 구축하는 데 사용할 수 있습니다. 물론 다른 프로그래밍 언어와 마찬가지로 Ruby의 키워드와 Rail의 명명 규칙을 알아야합니다.

웹 사이트 재 설계를위한 테스트 방법론 - 새로운 웹 사이트를 구축하거나 웹 사이트 디자인을 재 설계 할 때

웹 사이트 재 설계를위한 테스트 방법론 - 새로운 웹 사이트를 구축하거나 웹 사이트 디자인을 재 설계 할 때

웹 사이트를 통해 테스트 방법론을 표준화하는 데 시간을 투자해야합니다. 하나의 테스트 방법론으로 표준화함으로써 테스트 결과를보다 정확하게 평가할 수 있습니다. 또한 테스트를 팀의 일부 직원에게 위임 할 수 있습니다. 체크리스트가 있습니다 ...

웹 사이트 호스팅을위한 열 개의 장소 - 인형

웹 사이트 호스팅을위한 열 개의 장소 - 인형

항상 좋은 질문입니다 . 요즘에는 매우 다양한 웹 서비스가 있기 때문에 웹 사이트의 정의가 문제가되고 있습니다. 따라서 여기에는 두 개의 블로깅 사이트를 포함하여 "실제"웹 사이트를 호스팅 할 수있는 10 개의 장소가 있습니다. Google Page Creator :이 유연한 페이지 생성 서비스는 ...

편집자의 선택

Mac 용 Office 2011의 스크랩북에 클립을 추가하는 방법 - 스크랩북은 하나임

Mac 용 Office 2011의 스크랩북에 클립을 추가하는 방법 - 스크랩북은 하나임

Office 2011 Toolbox 인터페이스의 중요한 탭에 대해 설명합니다. PowerPoint 슬라이드의 그림과 같은 것을 선택하고 편집 → 복사를 선택하면 해당 그림이 클립 보드로 전송됩니다. 이제 열려있는 Word 문서로 이동하여 편집 → 붙여 넣기를 선택하여 복사본을 가져올 수 있습니다.

Mac 용 Office 2011의 올바른 버전을 선택하는 방법 - 마네킹

Mac 용 Office 2011의 올바른 버전을 선택하는 방법 - 마네킹

Office 2011 for Mac 여러 버전이 제공되므로 Mac에 새로운 Word, Excel, PowerPoint 등을 설치할 때 약간의 연구가 필요합니다. Mac 용 Office 2011의 각 버전에는 다른 가격 및 다양한 응용 프로그램 및 기능 세트가 있습니다. 다음 목록은 에디션을 선택하는 데 도움이됩니다.

Mac 용 Office 2011에서 리본을 사용자 지정하는 방법 - Office 2011의 새로운

Mac 용 Office 2011에서 리본을 사용자 지정하는 방법 - Office 2011의 새로운

리본은 고정 된 화면 영역을 차지하는 크고 두꺼운 도구 모음과 같습니다. Office 2011의 첫 번째 리본 반복은 제한적인 사용자 지정 기능을 제공합니다. 리본의 오른쪽 가장자리에있는 휠을 클릭하여 리본을 사용자 정의 할 수 있습니다. 리본이 응답하지 않습니다 ...