👋 Hello, I am Seung-ho Ham

🧑🏻‍💻 A Developers who create code that changes the world

Development/NoSQL

SQL과 NoSQL은 뭐가 다를까? 차이점은?

Potato_H 2024. 8. 2. 15:15
반응형

SQL (Structured Query Language)NoSQL (Not Only SQL)은 데이터베이스 관리 시스템(DBMS)의 두 가지 주요 유형입니다.

 

이 두가지 시스템은 데이터 저장 및 관리 방식에서 중요한 차이점을 가지고 있습니다.

 

첫번째로 데이터 모델 부분에서의 차이를 가지고 있습니다.

SQL은 구조화된 스키마로 이루어져 있습니다. 정해진 스키마를 사용하며, 데이터는 행과 열로 저장이 됩니다. 또한 테이블은 정해진 구조와 유형을 갖춘 데이터 필드로 구성됩니다. 그리고 관계형 데이터베이스로 관계형 모델에 따라 데이터가 저장되고 테이블간의 관계는 외래키를 통해 정의됩니다.

 

반면 NoSQL은 유연한 스키마로 이루어져 있습니다. 스키마가 없거나 매우 유연하며, 데이터 구조가 필요에 따라 동적으로 변경될 수 있습니다. 그리고 비관계형 데이터베이스로 다양한 모델(문서, 키:값, 그래프, 컬럼, 등)로 저장됩니다.

 

 

두번째로 확장성 부분에서의 차이가 있습니다.

SQL은 수직 확장의 확장성을 가지고 있습니다. 수직 확장은 서버를 확장하는 수평 확장과 다르게 더 강력한 하드웨어를 통해 성능을 향상시킵니다. 그리고 복잡한 분산처리가 가능합니다. 관계형 데이터베이스에서는 수직 확장이 수평 확장보다 상대적으로 트랜잭션 관리가 용이합니다.

 

반면 NoSQL은 수평 확장의 확장성을 가지고 있습니다. 여러 서버에 데이터를 분산시켜 수평 확장을 지원하며, 더 많은 서버를 추가하여 데이터베이스의 용량과 성능을 향상시키는 것입니다.

 

 

세번째로 트랜잭션 지원 부분에서의 차이가 있습니다.

SQL은 ACID 특성을 따르며, 원자성(Atomicity), 일관성(Consistency), 고립성(Isolation), 지속성(Durability)이라는 ACID 특성을 준수합니다. 이는 데이터 무결성을 보장하는데 중요합니다.

 

반면 NoSQL은 BASE 접근법을 따르며,  ACID 대신 BASE (Basically Available, Soft state, Eventually consistent) 특성을 따르는 경우가 많습니다. 이것은 높은 가용성과 성능을 제공하는 대신, 데이터 일관성은 결국 일관성을 보장합니다.

 

 

SQL의 사용 사례로는 전통적인 기업 애플리케이션들(재무, ERP, CRM 시스템)과 같이 구조화된 데이터와 강력한 트랜잭션이 필요한 경우에 사용합니다.

NoSQL은 빅데이터와 실시간 웹 애플리케이션들(SNS, 로그/실시간 데이터)과 같이 대규모 데이터와 높은 속도의 읽기/쓰기 작업이 필요한 경우에 사용합니다.

 

 

SQL - MySQL, PostgreSQL, OracleDatabase, Microsoft SQL Server

NoSQL - MongoDB(문서지향), Cassandra(칼럼 패밀리 저장소), Redis(키:값 저장소), Neo4j(그래프 데이터베이스)