상세 컨텐츠

본문 제목

NoSQL(Not only SQL)이란?

Computer Science/NoSQL

by Yongari 2023. 1. 10. 22:50

본문

 

NoSQL Database가 뭐야?

 

NoSQL은 매우 넓은 범위에서 사용하는 용어이고, 관계형 테이블의 레거시한 방법을 사용하지 않는 데이터 저장소를 말합니다.

"Not only SQL"의 약자로 SQL만을 사용하지 않는 데이터베이스 관리 시스템을 지칭하는 단어다. 관계형 데이터베이스를 사용하지 않는다는 의미가 아니고, 여러 유형의 데이터베이스를 사용하는 것이다.

 

데이터를 조작하는 방법에는 리스트, 해시, 테이블, 트리, 그래프 등의 다양한 방법이 있고 장점과 단점이 명확하기 때문에 NoSQL이라는 단어는 RDBMS의 독점적인 지위를 가지고 있는 현 상황에 반발하는 정신을 담고 있다.

 

NoSQL이라 불리는 데이터베이스들은 대체로 다음과 같은 공통적인 성향을 보인다.
 
  • 대부분 클러스터에서 실행할 목적으로 만들어졌기 때문에 관계형 모델을 사용하지 않는다. 그러나 모든 NoSQL 데이터베이스가 클러스터에서 실행되도록 맞춰진 것은 아니다. 예를 들어 NoSQL 데이터 모델 중 하나인 그래프 데이터베이스는 관계형 데이터베이스와 비슷한 분산 모델을 사용한다.
  • 대부분 오픈 소스다.
  • 보통 21세기 초반 웹 환경의 필요에 기초를 두고 있어서, 이 시기에 개발된 시스템만을 NoSQL이라고 부른다. 따라서 그 이전에 만들어진 ODBMS(Objective Database Management System)은 NoSQL에 해당하지 않는다.
  • 스키마 없이 동작하며, 구조에 대한 정의를 변경할 필요 없이 데이터베이스 레코드에 자유롭게 필드를 추가할 수 있다.

 

그렇다면 어떤 경우에 NoSQL을 사용할까?

 

1. 비구조적인 대용량의 데이터를 저장하는 경우

NoSQL 데이터베이스는 관계에 중점을 둔 RDBMS 보다 자유로운 형태로 데이터를 저장할 수 있으므로 필요에 따라서 새로운 데이터 유형을 추가할 수 있다. 소프트웨어 개발에 정형화 되어있지 않은 많은 양의 데이터가 필요한 경우 NoSQL이 효율적일 수 있다.

 

 

2. 클라우드 컴퓨팅 및 저장공간을 최대한 활용하는 경우

NoSQL 데이터베이스는 데이터베이스를 클라우드 기반으로 쉽게 분리할 수 있게 지원하고 저장공간을 효율적으로 사용한다. 

시스템이 커지면서 DB를 증설해야하는 시점이 오면 RDBMS는 수직적으로 즉 하드웨어적으로 DB를 증설한다. 그에 반해 NoSQL은 수평적 확장의 형태로 증설하고 이론상 무한대로 서버를 계속 분산시켜 DB를 증설할 수 있다.

 

3. 빠르게 서비스를 구축하고 데이터 구조를 자주 업데이트 하는 경우

NoSQL 데이터 베이스의 경우 스키마를 미리 준비할 필요가 없어서 개발을 빠르게 해야하는 경우에 매우 적합함 

시장에 빠르게 프로토타입을 출시하거나 소프트웨어를 자주 업데이트해야하는 경우에는  NoSQL이 효율적이다. 

 

 

그렇다면 MongoDB는 위의 특징을 모두 가지고 있고 NoSQL 데이터베이스인 것은 알겠다.

MongoDB는 그렇다면 어디에서 설정하는 것일까?

 

MongoDB에서는 아틀라스 클라우드에 데이터베이스를 설정한다. 

아틀라스에서 클러스터로 배포하면 레플리카를 자동으로 생성하게 된다.

그렇다면 각각 용어는 무슨 뜻일까??

 

 

 

레플리카세트 : 동일한 데이터를 저장하는 소수의 연결된 머신 레플리카 세트 중 하나에 문제가 발생해도, 데이터를 그대로 유지 가능

 

클러스터 : 데이터를 저장하는 서버 그룹으로 여러 대의 컴퓨터를 네트워크를 통해 연결하여 하나의 단일 컴퓨터처럼 동작하도록 제작한 컴퓨터를 뜻함 

 

 

 

 

출처 : https://namu.wiki/w/NoSQL

출처 : 코드스테이츠 참조

 

 

'Computer Science > NoSQL' 카테고리의 다른 글

MongoDB Database, Collection, Document를 생성하고 제거해보자  (0) 2023.01.17
Import vs Export  (0) 2023.01.13
MongoDB Document  (0) 2023.01.10

관련글 더보기