햄녕하세요!
햄토리입니다람쥐!!
SQL이 뭔지는 이미 알고있죠?? Structured Query Language. 즉 관계형 DBMS에서 데이터를 조회, 수정, 삭제하는 등 조작하는데 사용되는게 SQL언어이죠! 근데 NO! SQL이라니!!
하지만 NOSQL은 우리 주변에서 아주 많이 사용되고 있어요! 흠 예를들면 선호하는 해바라기씨를 실시간으로 추천해줄 때 사용되는 DB도 NoSQL DB랍니다.
특히 요즘은 Big Data를 활용하는 기업과 고객이 늘어나면서 NOSQL을 많이 사용하고 있습니다.
NoSQL ?
그럼 NoSQL는 No SQL, Not Only SQL, Non-Relational Operational Database SQL로 엇갈리는 의견들이 있습니다만, 현재 Not Only SQL로 풀어 설명하는 것이 다수를 차지하고 있습니다. 즉 단순히 기존 관계형 DBMS의 특징뿐만 아니라 다른 특징들을 부가적으로 가지고 있다는 것을 의미합니다람쥐!
NoSQL 등장 배경
2000년 후반으로 넘어오면서 인터넷이 활성화되고, 소셜네트워크 서비스 등이 등장하면서 관계형 데이터 또는 정형데이터가 아닌 데이터, 즉 비정형데이터라는 것을 보다 쉽게 담아서 저장하고 처리할 수 있는 구조를 가진 데이터 베이스들이 관심을 받게 되었고, 해당 기술이 점점 더 발전하게 되면서, NoSQL 데이터베이스가 각광을 받게 된 것입니다.
NoSQL 특징
NoSQL 데이터베이스의 특징을 살펴보면, 기존의 관계형 데이터베이스 보다 더 융통성 있는 데이터 모델을 사용하고, 데이터의 저장 및 검색을 위한 특화된 매커니즘을 제공합니다.
이를 통해 NoSQL DB는 최적화된 키 값 저장 기법을 통해 검색 및 추가 작업을 빠르게 처리할 수 있습니다.
그럼 여기서 융통성이 있다는 말은 무슨 말일까요?
- 관계형 모델을 사용하지 않으며 테이블간의 조인 기능 없음
- 직접 프로그래밍을 하는 등의 비SQL 인터페이스를 통한 데이터 액세스
- 대부분 여러 대의 데이터베이스 서버를 묶어서(클러스터링) 하나의 데이터베이스를 구성
- 관계형 데이터베이스에서는 지원하는 Data처리 완결성(Transaction ACID 지원) 미보장
- 데이터의 스키마와 속성들을 다양하게 수용 및 동적 정의 (Schema-less)
- 데이터베이스의 중단 없는 서비스와 자동 복구 기능지원
- 다수가 Open Source로 제공
- 확장성, 가용성, 높은 성능
정리해보면, NoSQL은 초고용량 데이터 처리 등 성능에 특화된 목적을 위해, 비관계형 데이터 저장소에, 비구조적인 데이터를 저장하기 위한 분산 저장 시스템이라고 볼 수 있습니다.
NoSQL의 종류
그럼 NoSQL의 종류에 대해 알아보겠습니다
- Key Value DB
Key와 Value의 쌍으로 데이터가 저장되는 가장 단순한 형태의 솔루션으로 Amazon의 Dynamo Paper에서 유래되었습니다. Riak, Vodemort, Tokyo 등의 제품이 많이 알려져 있습니다.
- Wide Columnar Store
Big Table DB라고도 하며, Google의 BigTable Paper에서 유래되었습니다. Key Value 에서 발전된 형태의 Column Family 데이터 모델을 사용하고 있고, HBase, Cassandra, ScyllaDB 등이 이에 해당합니다.
- Document DB
Lotus Notes에서 유래되었으며, JSON, XML과 같은 Collection 데이터 모델 구조를 채택하고 있습니다. MongoDB, CoughDB가 이 종류에 해당합니다.
- Graph DB
Euler & Graph Theory에서 유래한 DB입니다. Nodes, Relationship, Key-Value 데이터 모델을 채용하고 있습니다. Neo4J, OreientDB 등의 제품이 있습니다.
여러분들도 NoSQL로 많은 해바라기씨를 마구마구 모아서 잘 활용해보세용가리!
'Database' 카테고리의 다른 글
[24/365] RAC와 HA의 정의와 차이점 (0) | 2022.07.01 |
---|---|
[24/365] Lock (0) | 2022.06.21 |
[24/365]AWS DMS 소개 (0) | 2022.06.14 |
반 정규화(De-normalization) (0) | 2022.06.10 |
[24/365] Oracle DB 물리적 구조 (0) | 2022.06.07 |
댓글