-
NoSQL이란?Topic/Database 2022. 6. 22. 23:35반응형
NoSQL :
NoSQL은 (non SQL 또는 non relational) 기존 RDBMs 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미하며, 관계형 데이터 베이스의 한계를 극복하기 위한 데이터 저장소의 새로운 형태로, 수평적 확장성을 갖고 있다.
RDBMS가 클라이언트/서버 환경에 맞는 데이터 저장기술이라면, NoSQL은 클라우드 환경에 맞는 저장 기술이다.
NoSQL의 특징
- NoSQL은 RDBMS와는 달리 데이터 간의 관계를 정의하지 않는다.
- RDBMS에 비해 훨씬 더 대용량의 데이터를 저장할 수 있다.
- 분산형 구조이다.
- 고정되지 않은 테이블 스키마를 갖는다.
RDBMS 와 NoSQL의 차이
- RDBMS
장점
- - DATA를 Column과 Row 형태로 저장
- - 데이터의 분류, 정렬, 탐색 속도가 비교적 빠름
- - SQL 이라는 구조화 된 질의를 통해 데이터를 다룰 수 있음
- - 작업의 완전성을 보장
- 단점
- - 데이터의 UPDATE가 빠르다
- - 반드시 스키마 규격에 맞춰서 데이터를 다뤄야 한다.
- - 데이터 처리에 대한 부하 발생시, 처리가 어렵다.
- NoSQL
장점
- - 데이터간의 관계를 정의 하지 않는다(테이블 간의 관계(JOIN) 불필요)
- - RDBMS 보다 복합도가 떨어져, 훨씬 대용량의 데이터를 저장, 관리 할 수 있다.
- - 테이블에 스키마가 정해져있지 않아 데이터 저장이 비교적 자유롭다.
- - 수평적 확장이 어려운 RDBMS보다는 수평적 확장이 쉽다.
단점
- - 스키마가 정해져 있지 않아, 데이터에 대한 규격화가 되어있지 않음.
- - DATA를 UPDATE하는데 비교적 느림
- - 중복된 데이터가 저장될 수 있다.
NoSQL에 대한 오해
NoSQL이 등장하면서 기존의 RDBMS의 단점들이 부각되기는 하지만 여전히 RDMB의 성능과 기능은 뛰어나다.
설정과 튜닝을 통해서 NoSQL에 비해 원하는 성능과 확장성을 충분히 갖추고 있다.
NoSQL을 검토할때는 3가지 측면을 고려한다.
데이터의 규모와 데이터의 처리속도 그리고 데이터의 형태이다.
많은 데이터와 빠른 속도로 데이터를 처리하는 것을 다 만족하는 데이터베이스는 없습니다.
인메모리 기반의 데이터베이스는 당연히 속도가 빠르겠지만 확장성에 있어서 한계가 있기 때문에 수십테라바이트, 수백테라바이트의 빅데이터를 다루기에는 적합하지 않습니다.
반면, 빅데이터를 처리하는 경우에는 상대적으로 읽기/쓰기/업데이트등의 성능 및 기능의 제약이 존재합니다.
데이터의 복잡도에 따라서 성능의 차이가 발생하게 됩니다. 단순한 작은 크기의 값을 다루는 key/value 인 경우에는 그 성능이 매우 뛰어난 데이터베이스더라도 처리하는
value의 데이터 크기가 좀 커지고 복잡해지면 성능이 떨어지는 경우도 있지만 NoSQL의 경우에는 좀 더 복잡한 데이터 구조를 수용하면서도 성능을 어느정도 보장해주는것이 있다.
NoSQL들을 보면 메모리를 많이 사용해서 성능도 향상시키면서 확장성도 어느 정도갖추도록 아키텍쳐들이 개선되어 가고 있지만 이를 위해서 필요한 서버의 성능도 올라가야합니다.
이를 위해 서버의 비용도 부담이 되기 때문에 이점도 고려를 해야하는 사항입니다.
반응형'Topic > Database' 카테고리의 다른 글
[ MongoDB ] mongoose 배열 값 추가, 삭제 (0) 2022.09.13 [ MongoDB ] 몽고DB 컬렉션 내 필드 전체에 update하는 방법 (0) 2022.09.01 MVC 파트, Short.ly (0) 2022.01.26 MVC, Database 구현 (0) 2022.01.25 SQL 데이터베이스 연결, 스키마, Schema (0) 2022.01.21