비디오: Week 9 2024
수정 변형 이라고하는 문제의 호스트는 데이터베이스를 구조화하지 않으면 데이터베이스를 괴롭 히게됩니다. SQL 데이터베이스를 올바르게. 이러한 문제를 방지하기 위해 데이터베이스 구조를 정상화 할 수 있습니다. 정규화는 일반적으로 하나의 데이터베이스 테이블을 두 개의 더 간단한 테이블로 분할하는 것을 수반합니다. 수정 변형
은 데이터베이스 테이블에서 데이터를 추가, 변경 또는 삭제하여 생성되기 때문에 이름이 지정됩니다. ->
그렇다면 고객 1001이 세탁 세제를 구입했다는 사실을 잃을뿐만 아니라, 세탁 세제는 $ 12의 비용이 들지 않습니다. 이 상황을
삭제 예외라고합니다.하나의 사실 (고객 1001이 세탁 세제를 구입 한 사실)을 삭제할 때 의도하지 않게 다른 사실 (세탁 세제는 12 달러)을 삭제합니다. 동일한 표를 사용하여 삽입 변형을 설명 할 수 있습니다. 예를 들어, $ 2의 가격으로 스틱 탈취제를 제품 라인에 첨가하고 싶다고 가정 해보십시오. 고객이 스틱 탈취제를 구입할 때까지이 데이터를 SALES 테이블에 추가 할 수 없습니다.
고객 구매에 대한 단일 아이디어를 다루는 CUST_PURCH.
PROD_PRICE: 제품 가격 책정에 대한 단일 아이디어를 다루고 있습니다.세탁 세제가 $ 12라는 사실을 잃지 않고 CUST_PURCH에서 고객 1001의 행을 삭제할 수 있습니다. (세탁 세제 가격은 이제 PROD_PRICE에 저장됩니다.) 제품을 구입했는지 여부와 관계없이 PROD_PRICE에 스틱 탈취제를 추가 할 수도 있습니다. 구매 정보는 CUST_PURCH 테이블의 다른 곳에 저장됩니다.
-
하나의 테마를 가진 여러 테이블로 테이블을 분할하는 프로세스를
-
정규화라고합니다. 하나의 문제를 해결하는 정규화 연산은 다른 문제에 영향을주지 않을 수도있다.결과 테이블을 하나의 테마로 줄이려면 여러 개의 연속적인 정규화 작업을 수행해야 할 수 있습니다.
각 데이터베이스 테이블은 유일하고 유일한 주제를 다루어야합니다. 때로는 (아마도 짐작 하듯이) 두 개 이상의 주제를 다루는 테이블이 실제로는 어려울 수 있다고 판단합니다.
수정 이슈의 유형에 따라 테이블을 분류 할 수 있습니다. 1970 년 논문에서 E.F.Codd는 변형 변형의 세 가지 원인을 확인하고 이러한 유형의 변형에 대한 구제책으로 1, 2, 3 번째 정규 양식을 정의했습니다. 계속되는 해에 Codd와 다른 사람들은 추가적인 유형의 이상과 새로운 정상적인 형태를 발견하여이를 처리했습니다. Boyce-Codd 정상형 (BCNF), 네 번째 정규형 (4NF) 및 다섯 번째 정규형 (5NF)은 각각 변형 변형에 대해 높은 수준의 보호를 제공했습니다. 그러나 1981 년까지 Ronald Fagin이 작성한 논문에서 도메인 키 정규형 또는 DK / NF를 기술 했습니까? 이 마지막 표준 형식을 사용하면 테이블에 수정 변형이 없음을 보장 할 수 있습니다.
정규형은 2NF에있는 테이블이 1NF에서도 자동으로 된다는 점에서
중첩 된 입니다. 마찬가지로, 3NF의 테이블은 자동으로 2NF에 있습니다. 가장 실용적인 응용 프로그램의 경우, 3NF에 데이터베이스를두면 고도의 무결성을 보장하기에 충분합니다. 무결성을 절대적으로 확신하려면 데이터베이스를 DK / NF에 저장해야합니다. 가능한 한 데이터베이스를 표준화 한 후에는 성능을 향상시키기 위해 선택된 비정규 화를 수행 할 수 있습니다. 그렇다면 지금 가능할 수있는 예외의 유형을 알고 있어야합니다.