NoSQL (Not Only SQL) » 이력 » 버전 1
이태훈, 2022/08/02 08:16
| 1 | 1 | 이태훈 | h1. NoSQL (Not Only SQL) |
|---|---|---|---|
| 2 | |||
| 3 | * NoSQL은 Not Only SQL의 약자로 기본 RDBMS의 한계를 극복하기 위해 만들어진 새로운 형태의 데이터베이스입니다. |
||
| 4 | |||
| 5 | h2. 1) RDBMS의 한계 |
||
| 6 | |||
| 7 | * 스키마 문제 : 빅데이터를 RDB의 스키마에 맞춰 변경해서 넣으려면 매우 긴 시간의 down time이 발생 |
||
| 8 | * 스케일업의 한계 : RDBMS는 애초부터 Scale-out(분산 환경)을 염두 해 두고 설계되지 않아 관계 모델과 트랜젝션의 연산, 일관성, 속성을 유지하면서 분산 환경에서 RDBMS를 조작하는 것이 어렵다. |
||
| 9 | |||
| 10 | h2. 2) 특징 |
||
| 11 | |||
| 12 | * 반정형화, 비정형화된 데이터에 적합하다 |
||
| 13 | * 'ACID(Atomicity, Consistency, Isolation, Durability)'대신 Eventual Consistency'를 허용한다. |
||
| 14 | * 대용량의 데이터 저장에 더 유리하다. |
||
| 15 | * 특정 도메인의 문제해결에 뛰어나다 |
||
| 16 | * 데이터를 질의하는 API가 다양하다. |
||
| 17 | * 데이터 모델이 매우 다양하다. |
||
| 18 | * 분산형 컴퓨팅에 최적화되어 있고 확장성이 뛰어나다 |
||
| 19 | |||
| 20 | h2. 3) 장점 |
||
| 21 | |||
| 22 | * 스키마가 없기 때문에 언제든지 저장된 데이터를 조정하고, 새로운 필드 추가 가능 |
||
| 23 | * 데이터의 저장은 앱이 필요한 부분에 유동적으로 저장 |
||
| 24 | * 수직, 수평 확장이 가능 |
||
| 25 | |||
| 26 | h2. 4) 단점 |
||
| 27 | |||
| 28 | * 중복된 데이터가 변경된 경우 여러개의 콜렉션에서 데이터를 바꿔야한다. |
||
| 29 | * 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않으며 데이터 구조를 결정하기 어려울 수 있다. |
||
| 30 | |||
| 31 | h2. 5) NoSQL 종류 |
||
| 32 | |||
| 33 | # Document 방식 |
||
| 34 | |||
| 35 | * MongoDB |
||
| 36 | * CouchDB |
||
| 37 | # Key-Value 방식 |
||
| 38 | |||
| 39 | * Redis |
||
| 40 | * memchached |
||
| 41 | # Big Table DB |
||
| 42 | |||
| 43 | * HBase |
||
| 44 | * Cassandra |
||
| 45 | * Hypertable |
||
| 46 | * ScyllaDB |