본문 바로가기

ComputerScience/Database

DB - 18. Normalization 2

728x90

1. Universal relaction

- E-R 모델링에서 테이블 R들로 변환을 하였는데 다른 approach를 알아본다.

- 모든 속성을 포함하는 single relation을 하나 만드는데 이를 universal relation라고 한다.

- 이 single table을 함수종속에 기반해서 쪼개어 normalization을 수행하는 방법이 다른 한가지의 approach이다.

2. Denormalization

- BCNF를 만드는 방법을 배웠지만 꼭 모든 테이블이 BCNF여야 하는 것은 아니다. 이것은 설계자가 판단한다.

- 만약 모든 테이블을 BCNF로 쪼개버리면 나중에 검색,조회시, 분리된 두 테이블간의 join연산이 필요할 수 있다.

- 따라서 검색,조회가 빈번하고 높은 성능이 필요하다면 선택적으로 decomposition을 수행하지 않을 수 있다.

- 즉 정규화 입장에서 데이터의 중복이 생기니 좋은 형태는 아니지만 응용 입장에서는 장점이 있다. 따라서 설계자의 판단이 중요하다.

3. Other design issue

- bncf가 만능은 아니다. 모든 테이블이 bcnf라고 하더라도 잡지 못하는 bad design이 있을 수 있다.

- 회사의 2004년도 수입 테이블, 2005년도 수입테이블, 2006년도 수입테이블은 각각 모두 bcnf이지만 년도가 지날수록 테이블이 하나씩 생긴다는 점은 좋지 못한 설계이다.

- 마찬가지로 년도별 수입을 속성으로 넣더라도 매년 새로운 속성이 추가되는 문제가 생긴다. 이 또한 bcnf지만 좋은 디자인은 아니다.

3. Normal Form

- 제1정규형 : 임의의 레코드와 임의의 column이 교차하는 지점에서 값이 하나로 결정되는 형태

- RDB의 기본 요건으로 이를 만족 못하면 애초에 RDB가 아니다.

- 3정규형, BCNF가 주로 사용된다.

728x90
반응형

'ComputerScience > Database' 카테고리의 다른 글

DB - 20. Intermediate SQL - View  (0) 2021.11.30
DB - 19. Intermediate SQL - Join  (0) 2021.11.30
DB - 17. Boyce Codd Normal Form  (0) 2021.11.24
DB - 16. Normalization  (0) 2021.11.23
DB - 15. University Enterprise ER -> RDB  (0) 2021.11.23