728x90
SQL 장점
- 명확하게 정의된 스키마, 데이터 무결성 보장한다.
- 관계는 각 데이터를 중복 없이 한번만 저장한다.
SQL 단점
- 덜 유연하다. 데이터 스키마를 사전에 계획하고 알려야 한다.
- 관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어질 수 있다.
- 대체로 수직적 확장만 가능하다.
NoSQL 장점
- 스키마가 없어서 유연하다. 언제든지 저장된 데이터를 조정하고 새로운 필드 추가 가능하다.
- 데이터는 애플리케이션이 필요로 하는 형식으로 저장된다. 데이터 읽어오는 속도 빨라진다.
- 수직 및 수평 확장이 가능해서 애플리케이션이 발생 시키는 모든 읽기/쓰기 요청 처리 가능하다.
NoSQL 단점
- 유연성으로 인해 데이터 구조 결정을 미루게 될 수 있다
- 데이터 중복을 계속 업데이트 해야 한다
- 데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수행해야 한다 (SQL에서는 중복 데이터가 없으므로 한번만 수행이 가능하다.)
SQL 데이터베이스 사용이 더 좋을 때
- 관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우
- NoSQL에서는 여러 컬렉션을 모두 수정해야 하기 때문에 비효율적이다.
- 변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우
NoSQL 데이터베이스 사용이 더 좋을 때
- 정확한 데이터 구조를 알 수 없거나 변경/확장 될 수 있는 경우
- 읽기를 자주 하지만, 데이터 변경은 자주 없는 경우
- 데이터베이스를 수평으로 확장해야 하는 경우 (막대한 양의 데이터를 다뤄야 하는 경우)
728x90
'Computer > CS' 카테고리의 다른 글
Database - Index (0) | 2024.07.09 |
---|---|
Database - Anomaly (0) | 2024.07.09 |
SQL Injection (0) | 2024.07.08 |
Database - Join (0) | 2024.07.08 |
Database - Key (0) | 2024.07.08 |