728x90
정규화(Normalization)
정규화란 데이터베이스 설계 시 중복을 최소화하며 데이터를 구조화하는 과정이다. 이는 데이터의 무결성을 보장하고 데이터베이스의 성능을 향상시킨다. 정규화는 1970년대 E.F.Codd가提唱한 관계형 데이터베이스 이론의 핵심 개념이다. 이론에 따르면, 데이터베이스의 테이블은 1차 정규화, 2차 정규화, 3차 정규화, BCNF, 4차 정규화, 5차 정규화 등으로 분류된다.
장점
- 데이터 중복 최소화
- 데이터 무결성 유지
- 쿼리의 성능 향상
단점
- 데이터베이스 설계에 많은 시간과 노력이 필요
- 복잡한 데이터베이스 설계로 인한 성능 저하 가능성
- 너무 많은 정규화를 시키면 데이터의 일관성을 유지하거나 읽어오는 데 시간이 더 오래 걸릴 수 있음.
비정규화(Denormalization)
비정규화는 데이터베이스의 성능을 향상시키기 위해 일부러 중복을 포함하는 과정이다. 이는 특히 대규모의 데이터베이스에서 쿼리의 실행 속도를 향상시키는 데 효과적이다. 비정규화는 테이블의 열(column)을 합치거나 새로운 열을 추가함으로써 이루어진다.
장점
- 쿼리의 성능 향상
- 간단한 데이터베이스 설계 가능
단점
- 데이터 중복 발생 가능성
- 데이터 무결성 위험
- 하지만, 비정규화를 지나치게 하면 데이터 일관성이 유지되지 않을 수 있습니다. 또한, 중복 데이터를 허용하면 저장 공간을 많이 차지할 수 있다.
728x90
'Computer Science > DataBase' 카테고리의 다른 글
[DataBase] 정규화(1NF, 2NF, 3NF, BCNF) (0) | 2023.03.10 |
---|---|
[DataBase] RDBMS와 NoSQL의 차이점 (0) | 2023.03.10 |