아직 디비 설계까지 내가 한 적이 없어서 정규화에 대한 고민을 해본적이 없지만 개판으로 짜여진 테이블을 보면서 이러지 말아야지 생각하고 있다.
정규화 Normalization 작업에 대한 간단한 요약
보통 1 정규형에서 3 정규형까지 체크한다. 이후의 단계도 있다.
정규화 Normalization 작업에 대한 간단한 요약
보통 1 정규형에서 3 정규형까지 체크한다. 이후의 단계도 있다.
- 제1정규형 : 주 키가 존재해야 한다.
- 제2정규형 : 모든 키가 아닌 컬럼은 주 키에 의존적이어야 한다.
- 제3정규형 : 키가 아닌 컬럼끼리 의존 관계가 존재해서는 안된다.
이정도 내용만 잘 지켜서 설계하면 욕은 안먹을 것 같다.
그 다음은 다대다 관계를 없애는 4정규화 과정이 있지만 때론 필요하기도 하다니... 그런데 다대다는 정말 좀 하지말자. 인간적으로 피곤하다...ㅜㅜ
일부러 비정규화를 하는 경우도 있다. 왜? 필요하니까...
예를 들면
- 테이블 합치기 : 조인 연산이 빡세기 때문에 테이블을 합쳐버리는게 성능상 유리한 경우가 있을 때도 있단다...
- 테이블 미리 계산 : 그룹의 합계를 미리 계산해 놓는 방법... 종종 애용하는 방법이다.
- 테이블 분리 : 자주 사용되는 컬럼과 그렇지 않은 컬럼을 분리해놓기도 한다. 이것도 성능 문제 때문에...
- 중복 컬럼 만들기 : 조인 연산 때문에 특정 컬럼을 테이블에 포함시켜 버리는 경우도 있다.
ERD 멋지게 그리는 날이 언젠가 나도 있겠지?...
'Development > Servers' 카테고리의 다른 글
코드이그나이터codeigniter index.php 관련 (0) | 2010.12.08 |
---|---|
테이블 유무 확인 후 생성하기 (0) | 2009.09.21 |
오라클 익스프레스 oracle express 웹서버 포트 변경하기 (0) | 2008.06.05 |
Rails Powered by the GlassFish Application Server (0) | 2008.05.25 |
Glassfish V3 with Ruby Gem (0) | 2008.03.23 |