[Database] SQL 과 NoSQL 의 차이

naneun·2022년 7월 26일
2

Database

목록 보기
1/1
post-thumbnail

🔳 SQL

SQL 이란?

SQL 은 'Structured Query Language' 의 약자로 관계형 데이터베이스와 상호작용하기 위한 구조화 된 쿼리 언어를 뜻합니다.
이를 사용하여 RDBMS (관계형 데이터베이스 관리 시스템) 에서 데이터를 저장, 수정, 삭제 및 검색할 수 있습니다.

SQL 의 특징 및 장점

SQL 데이터베이스의 가장 큰 특징으로는 스키마관계 가 있습니다.
명확하게 정의된 스키마가 존재하여, 정의된 스키마를 준수하지 않으면 데이터를 추가할 수 없습니다.
또한, 관계된 데이터들을 여러 개의 테이블에 분산하여, 데이터들의 중복을 피할 수 있으며 이를 통해 데이터의 무결성을 보장할 수 있습니다.

부가적으로, SQL 데이터베이스의 트랜잭션은 ACID 속성을 준수하여 보안과 안정성을 보장합니다.

따라서, 관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션이나 높은 트랜잭션 기반 어플리케이션에 적합합니다.

+ ISI, ANSI 와 같이 잘 정의된 표준을 따르는 단일 표준화 된 언어로 마이그레이션이 용이합니다.

SQL 의 단점

위와 같은 특징으로 인해 장점이 존재하지만 또 다른 측면에선 단점이 존재합니다.
데이터 스키마를 사전에 계획해야하며 관계를 맺고 있기 때문에 데이터 모델링에 있어서 유연성이 떨어지고 복잡한 쿼리가 만들어 질 수 있습니다.

또한, 수평적 확장이 어렵고, 대체로 수직적 확장만 가능합니다.

예시

대표적인 SQL 데이터베이스로는 MySQL, Oracle, MSSQL, SQLite 이 있습니다.


🔲 NOSQL

NoSQL 이란?

NoSQL 은 기본적으로 비 관계형 또는 분산 데이터베이스로 SQL (관계형 데이터베이스) 와 반대되는 접근방식을 따르기 때문에 지어진 이름입니다. 즉, 스키마와 관계가 존재하지 않습니다. 또한, NoSQL 은 SQL 과 달리 BASE 속성을 따르기 때문에 최종 일관성 만 제공합니다.

NoSQL 의 장점

이로써, 정확한 데이터 구조를 알 수 없거나 변경 / 확장 될 수 있는 경우 데이터 모델에 높은 수준의 유연성을 제공합니다.
즉, 언제든지 저장된 데이터를 조정하고 새로운 필드를 추가할 수 있습니다.

또, 다른 구조의 데이터를 같은 컬렉션에 추가할 수 있습니다. NoSQL 에서는 레코드를 문서(documents) 라고 부르는데, 여러 테이블에 조인할 필요없이 이미 필요한 모든 것을 갖춘 문서를 하나의 컬렉션에 저장할 수 있습니다.

NoSQL 의 단점

하지만, 데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 특정 데이터를 같이 사용하는 모든 컬렉션에서 같은 작업을 수행해야 합니다. 따라서, 읽기 처리를 자주하지만, 데이터를 자주 변경하지 않는 경우에 사용하는 것이 좋습니다.

아직까진 표준화가 부족하여 마이그레이션에 어려움이 존재하지만, 수직적, 수평적 확장이 모두 가능하기 때문에 대용량 데이터를 처리하는 성능이 뛰어납니다.

관계형 데이터베이스에서는 같은 테이블 스키마를 가진 데이터를 다수의 데이터베이스에 분산하여 저장하는 방식인 '샤딩(Sharding)'을 활용하여 데이터를 저장해서 활용할 수 있지만 구현하기가 대체로 어렵습니다. 하지만 NoSQL 데이터베이스는 이를 기본적으로 지원하므로 여러 서버에서 데이터베이스를 쉽게 분리할 수 있습니다.  즉, SQL 데이터베이스와 달리 수평적 확장에 용이합니다.

예시

대표적인 NoSQL 데이터베이스로는 MongoDB, Apache CouchDB, Redis, HBase 이 있습니다.


Reference

https://academind.com/tutorials/sql-vs-nosql

https://gyoogle.dev/blog/computer-science/data-base/SQL%20&%20NOSQL.html

https://ko.myservername.com/25-top-business-intelligence-tools

https://siyoon210.tistory.com/130

https://overcome-the-limits.tistory.com/283

profile
riako

0개의 댓글