OneDev
NoSQL 데이터베이스 본문
<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 의 특징
- RDBMS와 달리 데이터간의 관계를 정의하지 않는다
- RDBMS는 데이터 관계를 외래키 등으로 정의하고 JOIN연산을 수행할 수 있지만, NoSQL 은 JOIN 연산이 불가능하다.
- RDBMS에 비해 대용량의 데이터를 저장할 수 있다
- 분산형 구조를 가지고 있다
- 여러 곳의 서버에 데이터를 분산저장하여, 특정 서버에 장애가 발생했을 때도 데이터 유실 혹은 서비스 중지가 발생하지 않도록 한다
- 고정되지 않은 테이블 스키마를 갖는다
- RDBMS와 달리 테이블의 스키마가 유동적이다. 데이터를 저장하는 컬럼이 각기 다른 이름과 다른 데이터 타입을 갖는 것이 허용된다.→
<4> SQL, NoSQL의 장점
SQL | NoSQL |
데이터의 분류,정렬,탐색 속도가 비교적 빠름 | 스키마가 없어 훨씬 유연한 구조 |
데이터 무결성보장 | RDBMS 보다 복잡도가 떨어져 대용량의 데이터 저장,관리 가능 |
작업의 완전성을 보장함 | 수직 및 수평 확장 가능 → 모든 읽기/쓰기 요청 처리 가능 |
데이터의 업데이트가 빠름 | 많은 양의 데이터 저장 처리 가능 |
<5> SQL, NoSQL의 단점
SQL | NoSQL |
수평적 확장의 어려움(수직적 확장만 가능) | Key값에 대한 입출력만 지원 |
관계를 맺고 있기 때문에 Join문이 매우 복잡 | 중복된 데이터가 많기 때문에, 데이터 수정시 모든 컬렉션에서 수행해야 함 |
스키마로 인한 유연하지 못한 구조 | 데이터 업데이트가 느림 |
Comments