정규화와 비정규 화의 차이점

Anonim

정규화와 비정규 화

관계형 데이터베이스는 릴레이션 (관련 테이블)으로 구성되며 테이블은 열로 구성됩니다. 테이블이 두 개의 커다란 경우 (즉, 하나의 테이블에 너무 많은 열이있는 경우) 데이터베이스 이상이 발생할 수 있습니다. 테이블이 두 개의 작은 테이블 인 경우 (예: 데이터베이스가 여러 개의 작은 테이블로 구성되는 경우) 쿼리하는 데 비효율적입니다. 데이터베이스의 성능을 최적화하는 데 사용되는 두 가지 프로세스입니다. 정규화는 데이터 테이블에있는 중복을 최소화합니다. 비정규 화 (정규화 반대)는 중복 데이터 또는 그룹 데이터를 추가합니다.

< 정규화 란 무엇입니까?

정규화는 관계형 데이터베이스의 데이터에 존재하는 중복성을 최소화하기 위해 수행되는 프로세스입니다.이 프로세스는 대용량 테이블을 주로 적은 수의 중복 테이블 ("정규형")이 작은 테이블은 관련이 있습니다 서로 잘 정의 된 관계를 통해 잘 정규화 된 데이터베이스에서 데이터의 변경이나 수정은 단일 테이블 만 수정하면됩니다. Edgar F. Codd는 첫 번째 표준 형식 (1NF), 두 번째 표준 형식 (2NF) 및 세 번째 표준 형식 (3NF)을 도입했습니다. Boyce-Codd Normal Form (BCNF)은 Codd와 Raymond F. Boyce에 의해 1974 년에 소개되었습니다. 더 높은 표준 양식 (4NF, 5NF 및 6NF)이 정의되었지만 거의 사용되지 않습니다.

1NF를 준수하는 테이블은 실제로 관계를 나타냅니다 (즉, 반복되는 레코드를 포함하지 않음). 그리고 관계형 값을 갖는 속성을 포함하지 않습니다 (즉, 모든 속성 원자 값을 가져야 함). 테이블이 2NF를 준수하기 위해서는 1NF를 준수해야하며 임의의 후보 키 (즉, 논 - 프라임 속성)의 일부가 아닌 임의의 속성은 테이블 내의 임의의 후보 키들에 전적으로 의존해야한다. Codd의 정의에 따르면 테이블이 3NF에 있다고 말하면, 해당 테이블이 두 번째 정규형 (2NF)이고 후보 키에 속하지 않는 테이블의 모든 속성은 모든 테이블에 직접적으로 의존해야합니다. 그 테이블의 후보 키. BCNF (3. 5NF라고도 함)는 3NF에서 다루지 않는 몇 가지 예외를 포착합니다.

비정규 화 (denormalization) 란 무엇입니까? 비정규 화는 정규화 프로세스의 역 과정이다. 비정규 화는 중복 데이터를 추가하거나 데이터를 그룹화하여 성능을 최적화하여 작동합니다. 중복 데이터를 추가하는 것이 비생산적인 경우에도 불구하고 비정규 화는 관계형 데이터베이스 소프트웨어의 단점을 극복하기위한 매우 중요한 프로세스로, 정규화 된 데이터베이스 (성능 향상을 위해 조정 된 경우조차도)에서 성능 저하를 초래할 수 있습니다.이것은 데이터베이스 시스템의 실제 실제 구현에 따라 질의에 대한 결과를 생성하기 위해 여러 관계 (정규화의 결과)를 결합하는 것이 때로는 느릴 수 있기 때문입니다.

정규화와 비정규 화의 차이점은 무엇입니까? 정규화와 비정규 화는 완전히 반대되는 두 가지 과정이다.

- 정규화는 큰 테이블을 작은 테이블로 나누는 프로세스로 중복 된 데이터를 줄이는 반면 비정규 화는 중복 된 데이터를 추가하여 성능을 최적화하는 프로세스입니다.

- 데이터베이스 비정상을 방지하기 위해 정규화가 수행됩니다. 비정규 화는 대개 데이터베이스의 판독 성능을 향상시키기 위해 수행되지만, 비정규 화에 사용되는 추가적인 제약으로 인해 기입 (즉, 삽입, 갱신 및 삭제 동작)이 느려질 수있다. 따라서 비정규 화 된 데이터베이스는 정규화 된 데이터베이스보다 쓰기 성능이 떨어집니다.

- "상처를 입을 때까지 정상화", "정상적으로 작동 할 때까지 비정규 화"해야합니다.