끄적끄적

NoSQL이란?

integerJI 2023. 12. 10. 20:27

NoSQL이란

비관계형 데이터베이스를 말한다. 일반적인 관계형 데이터 모델을 지양하고 많은 분산된 데이터를 저장, 조회하는데 특화되어 있으며 스키마 없이 사용이 가능한 점이 큰 특징이며 기존의 RDBMS(Relational DataBase Management System) 형태의 관계형 데이터베이스의 한계를 극복하기 위해 만들어졌다.

 

RDBMS와 NoSql의 차이

  RDBMS NoSql
장점 * 정해진 스키마에 따라 데이터를 저장하여 명확한 데이터 구조를 보장한다.
* 관계는 각 데이터를 중복없이 한 번만 저장할 수 있다.
* 스키마가 없기때문에 자유로운 데이터 구조를 가질 수 있다.
* 언제든 데이터를 조정하고 새로운 필드를 추가하기 자유롭다.
* 데이터 분산에 용이하며 성능 향상을 위한 Saclue-up 또는 Scale-out도 가능하다.
단점 * 시스템이 커질 수록 테이블간의 JOIN이 많아져 쿼리가 복잡해질 수 있다.
* 스키마로 인하여 데이터가 유연하지 못하며 스키마가 변경될 경우 번거로워진다.
* 데이터 중복이 발생할 수 있다. 중복된 데이터가 수정될 경우 모든 컬렉션에서 수행이 되어야 한다.
* 스키마가 존재하지 않기 때문에 명확한 데이터 구조를 보장하지 않으며 데이터 구조 결정이 어려울 수 있다.

 

NoSql은 어떤 상황에서 사용을 할까

1. 비구조화 데이터를 다루어야 할 때

 - 일반적으로 행과 열의 형태로 표현하기 어려운 데이터들을 다룰 때 사용하면 좋다.

2. 대량의 데이터를 읽기, 쓰기를 할 때

 - 수평 확장성을 제공하여 분산 아키텍처에서 쉽게 확장할수 있다. 

3. 유연한 스키마가 필요한 경우 

 - RDBMS의 경우 사전에 데이터 모델을 정의해야 하지만 NoSql은 스키마가 동적이거나 유연하여 데이터 모델을 쉽게 변경할 수 있다.

4. 큰 규모의 분산 시스템

 - 수많은 서버에 데이터를 분산하고있고 클라우드 환경에서의 확장성이 중요한 경우 유리한 점을 가지고 있다.

5. 빠른 개발 및 서비스 출시가 필요한 경우 

 - 초기 개발 단계의 스키마가 자주 변경될 경우 매우 유용하다.

6. 다양한 종류의 데이터 모델이 필요한 경우 

 - 다양한 데이터 모델을 지원하여 키-값 저장소, 문서 저장소, 그래프 데이터베이스 등 다양한 유형의 데이터를 다룰 수 있다.

 

알아보면서 들었던 나의 생각

우선 NoSql이 어떤것인지에 대하여 간단하게 알아보았다. 하지만 왜인지 아직 실감이 안나는 것일까? NoSql의 MongoDB를

사용해서 프로젝트를 직접 해가면서 장단점을 찾아가 보아도 좋을 것 같다.

 

GPT로 글을 한번 더 적어보기

https://integer-ji.tistory.com/419

 

GPT로 글을 적어 보았다. 확실히 간결하게 글이 작성이 되었고 또 이해가 더 쉽게 되었다. 

 

앞으로는 GPT로 글을 한번 적어보고 나의 스타일로 한번 더 적어보면서 글을 써보면 더 좋을 것 같다!!

 

* 리마인드

 - RDBMS (MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, Oracle Database 등)

 - DBMS : DataBase Management System

 - Sql : Strucured Query Language

 

* 참고

https://code-lab1.tistory.com/53

'끄적끄적' 카테고리의 다른 글

레디스(Redis) 알아보기  (2) 2024.01.07
.  (0) 2023.09.25
근황  (0) 2023.09.11
비사이드 포텐데이 후기 - 10일만에 서비스 배포하기  (0) 2023.08.15
DDD 8기의 마무리와 새로운 시작  (2) 2023.02.12