16.2 Normalization vs Denormalization

2024. 2. 29. 00:01CS - Roadmap.sh/16. Databases

Normalization vs Denormalization

Database normalization is a process used to organize a database into tables and columns. The idea is that a table should be about a specific topic and that only those columns which support that topic are included. This limits the number of duplicate data contained within your database. This makes the database more flexible by eliminating issues stemming from database modifications.

Denormalization is the opposite of normalization. It is the process of adding redundant data to a database to improve read performance. This is done by adding duplicate data into multiple tables to avoid expensive joins. This is done at the expense of increased storage and decreased write performance.



데이터베이스 정규화는 데이터베이스를 테이블과 열로 구성하는 데 사용되는 프로세스입니다. 테이블은 특정 주제에 관한 것이어야 하며, 해당 주제를 뒷받침하는 열만 포함해야 한다는 개념입니다. 이렇게 하면 데이터베이스에 포함된 중복 데이터의 수가 제한됩니다. 이렇게 하면 데이터베이스 수정으로 인한 문제를 제거하여 데이터베이스를 더욱 유연하게 만들 수 있습니다.

비정규화는 정규화의 반대 개념입니다. 읽기 성능을 개선하기 위해 데이터베이스에 중복 데이터를 추가하는 프로세스입니다. 이는 비용이 많이 드는 조인을 피하기 위해 중복 데이터를 여러 테이블에 추가하는 방식으로 수행됩니다. 이 작업은 저장 공간이 증가하고 쓰기 성능이 저하되는 대신 수행됩니다.

 

 

 

 

정규화(Normalization)


데이터베이스 설계에서 정규화는 중요한 개념입니다. 이는 데이터를 효율적으로 저장하고 관리하기 위해 테이블의 설계를 최적화하는 과정을 말합니다. 정규화는 데이터 중복을 최소화하고 비효율적인 데이터 저장을 방지하여 데이터의 무결성을 보장합니다.

 

정규화의 주요 목표

 

데이터 중복성 제거: 같은 정보가 두 번 이상 저장되는 것을 방지합니다.
데이터 무결성 보장: 모든 데이터가 정확하고 일관성이 있도록 합니다.
데이터베이스 구조 확장성 향상: 새로운 데이터 타입이나 관계를 추가하기 쉽게 합니다.

 

비정규화(Denormalization)


비정규화는 반대로, 데이터의 읽기 성능을 향상시키기 위해 데이터 중복을 허용하는 과정입니다. 이는 일반적으로 대용량 데이터를 빠르게 조회해야 하는 경우에 사용됩니다. 비정규화는 정규화가 초래할 수 있는 성능 저하를 방지하며, 데이터베이스에서 데이터를 더 빠르게 액세스할 수 있게 합니다.

 

비정규화의 주요 목표


데이터 읽기 성능 향상: 중복을 허용함으로써 조회 성능을 개선합니다.
쿼리의 복잡성 감소: 조인 등의 복잡한 연산 없이도 필요한 정보를 얻을 수 있습니다.

728x90

'CS - Roadmap.sh > 16. Databases' 카테고리의 다른 글

16.3 Entity Relationship Model (+ERD) (추가필요)  (0) 2024.03.28
16.1 SQL vs NoSQL databases  (0) 2024.02.27