NoSQL

Moon Blue의 IT 로그 📝·2023년 3월 29일
0
post-thumbnail

NoSQL(Not Only SQL) 은 관계형 데이터베이스 관리 시스템(RDBMS)과 다른 형태의 데이터 저장 및 관리 방식을 가진 비관계형 데이터베이스 관리 시스템을 의미합니다.

기존의 RDBMS가 가진 일부 한계를 극복하기 위해 등장한 데이터베이스로, 빅 데이터 처리와 분산 처리에 적합한 특징을 가지고 있습니다.

🔍 데이터 모델

NoSQL 데이터베이스는 Key-Value, Document, Column-family, Graph 등 다양한 데이터 모델을 제공합니다. 이러한 다양한 데이터 모델을 통해 다양한 형태의 데이터를 더 유연하게 저장하고 관리할 수 있습니다.

  • Key-Value : 키와 값의 쌍으로 데이터를 저장하는 구조로, 검색 및 수정이 빠르다는 장점이 있습니다.
  • Document : JSON, BSON 등의 문서 형식으로 데이터를 저장하는 구조로, 계층적인 데이터를 효율적으로 저장할 수 있습니다.
  • Column-family : 데이터를 컬럼 기반으로 저장하는 구조로, 대용량 데이터를 빠르게 읽고 쓸 수 있습니다.
  • Graph : 노드와 엣지로 이루어진 그래프 형태로 데이터를 저장하는 구조로, 복잡한 관계를 효율적으로 표현할 수 있습니다.

✅ 동적 스키마

NoSQL 데이터베이스는 동적 스키마를 사용하여 데이터 구조가 유연하게 변경될 수 있습니다. 이로 인해 다양한 형태의 데이터를 저장할 수 있으며, 데이터 구조의 변경에 따른 비용을 줄일 수 있습니다.

✅ 확장성

NoSQL 데이터베이스는 수평 확장이 가능하여 대용량 데이터 및 높은 트래픽을 처리하는 데 적합합니다. 데이터를 여러 서버로 분산시켜 저장하고 처리할 수 있어, 성능 및 안정성을 높일 수 있습니다.

✅ 쿼리 언어 및 API

NoSQL 데이터베이스는 각 데이터베이스에 맞는 전용 쿼리 언어를 사용하거나 API를 통해 데이터를 검색, 삽입, 수정, 삭제할 수 있습니다. 이로 인해 사용법이 다양하고 유연하지만, 각 데이터베이스마다 다른 쿼리 언어를 익혀야 하는 단점이 있습니다.

✅ 일관성과 BASE 속성

일부 NoSQL 데이터베이스는 ACID 속성을 지원하지 않고, 대신 BASE 속성(Basically Available, Soft State, Eventually Consistent)을 사용하여 성능과 확장성을 우선시합니다. 이로 인해, 일부 상황에서 데이터 일관성이 떨어질 수 있으나, 빠른 데이터 처리와 분산 시스템의 특성에 적합한 데이터베이스로 활용됩니다.

✅ 사용 사례

NoSQL 데이터베이스는 다양한 사용 사례에 적용됩니다. 예를 들어, 실시간 애플리케이션, 소셜 네트워크, 로그 및 이벤트 데이터 관리, 위치 기반 서비스, 추천 시스템 등에서 NoSQL 데이터베이스가 활용됩니다. 이러한 사용 사례들은 대용량 데이터와 빠른 데이터 처리가 필요하거나, 복잡한 관계를 표현해야 하는 경우에 적합합니다.

🔖 대표적인 NoSQL 데이터베이스

NoSQL 데이터베이스에는 여러 종류가 있습니다. 대표적인 NoSQL 데이터베이스로는 MongoDB, Cassandra, Redis, Couchbase, Neo4j 등이 있습니다. 이들 각각의 데이터베이스는 자신만의 특성과 장점을 가지고 있어, 사용 목적과 요구 사항에 따라 적합한 데이터베이스를 선택하여 사용할 수 있습니다.

profile
What a Beautiful World~ 🌏

0개의 댓글