OneDev

NoSQL 데이터베이스 본문

DB\SQL/MongoDB

NoSQL 데이터베이스

one_dev 2023. 3. 15. 15:30

<1>  NoSQL 데이터베이스란?

  • NoSQL 데이터 베이스란 "Not Only SQL" 의 줄임말로, SQL 외에 추가적인 기능이 더 있는 데이터 베이스를 말한다.
  • 관계형데이터베이스(Oracle, MySQL 등) 에 있는 기능을 일부 버려 성능(처리속도)을 높인 데이터베이스이다.
  • SNS 사용량 증가에 따라 사진, 동영상 등의 비정형 데이터를 처리하기 위해 등장했다.
  • 데이터구조를 미리 정해두지 않기 때문에  비정형 데이터를 처리하는데 용이하다

<2>  NoSQL 데이터베이스의 종류

MongoDB, 카산드라, H베이스, CouchDB 등이 대표적이다

[1] Key-Value 를 활용해 연관 배열 형태를 가지는 데이터베이스

[2] 데이터를 행단위가 아닌 컬럼단위 지정하 데이터베이스

[3] 데이터를 노드로 표시하고, 노드 사이의 관계를 엣지로 표시하는 Graph 데이터베이스

 

[4] 문서(Document) 기반의 데이터 처리를 하는 데이터베이스

※ 위 4가지 유형의 데이터베이스 분류를 나타낸 그림

 

<3> NoSQL 의 특징

  1. RDBMS와 달리 데이터간의 관계를 정의하지 않는다
    • RDBMS는 데이터 관계를 외래키 등으로 정의하고 JOIN연산을 수행할 수 있지만, NoSQL 은 JOIN 연산이 불가능하다.
  2. RDBMS에 비해 대용량의 데이터를 저장할 수 있다
  3. 분산형 구조를 가지고 있다
    • 여러 곳의 서버에 데이터를 분산저장하여, 특정 서버에 장애가 발생했을 때도 데이터 유실 혹은 서비스 중지가 발생하지 않도록 한다
  4. 고정되지 않은 테이블 스키마를 갖는다
    • RDBMS와 달리 테이블의 스키마가 유동적이다. 데이터를 저장하는 컬럼이 각기 다른 이름과 다른 데이터 타입을 갖는 것이 허용된다.→

 

<4>  SQL, NoSQL의 장점

SQL NoSQL
데이터의 분류,정렬,탐색 속도가 비교적 빠름 스키마가 없어 훨씬 유연한 구조
데이터 무결성보장 RDBMS 보다 복잡도가 떨어져 대용량의 데이터 저장,관리 가능
작업의 완전성을 보장함 수직 및 수평 확장 가능 → 모든 읽기/쓰기 요청 처리 가능
데이터의 업데이트가 빠름 많은 양의 데이터 저장 처리 가능

<5>  SQL, NoSQL의 단점

SQL NoSQL
수평적 확장의 어려움(수직적 확장만 가능) Key값에 대한 입출력만 지원
관계를 맺고 있기 때문에 Join문이 매우 복잡 중복된 데이터가 많기 때문에, 데이터 수정시 모든 컬렉션에서 수행해야 함
스키마로 인한 유연하지 못한 구조 데이터 업데이트가 느림

 

Comments