NoSQL과 MongoDB
NoSQL
전통적인 관계형 데이터베이스 관리 시스템(RDBMS)과는 다르게 대규모의 데이터를 유연하게 처리하기 위해 설계된 비관계형(non-relational) DBMS
NoSQL은 워낙 데이터가 많아 한군데에서 데이터 저장이 불가능하고 클라우드 환경에 적합하다.
일관성을 버리고 검색 기능에 좀 더 치중
NoSQL 데이터베이스 유형
NoSQL은 정형화된 데이터가 없기에 유형이 다 다르다. 회사 조직에 특징을 파악하고 그에 맞는 유형을 써야한다.
1) 키 - 값 형 NoSQL
<키 , 값 > 쌍으로 데이터 표현, 관리, 구조상 정교한 질의는 어렵다 .값은 single value임
ex 학번 - 컴퓨터학과,
2) 컬럼 패밀리 형 NoSQL
<키, 값> 쌍으로 데이터를 표현하고 관리하나 값이 해당 키와 연관된 {<컬
럼, 값>} 형태임
값만 있으면 안되고 값이 무엇을 의미한다 까지
한 키에 대해 복수개에 값이 들어있다.
키값에 들어있는 value값이 2개던 3개던 채워지던 않던 상관없다. 제약이 없다.
컬럼패밀리
컬럼패밀리는 CF1, CF2 형태로 묶인다.
컬럼패밀리 : 검색을 빨리하기 위해 디스크 탐색시간 줄이기 위해 같은 공간에 물리적으로 저장한다.
주로 같이 질의되는 컬럼들을 묶는다.
3) 문서형(document) 형 NoSQL
키 벨류 쌍이지만 single value가 아닌 문서가 들어간다. 문서는 구조화된 문서이다(xml or json) 형태
• 구조화된 문서 - 계층적 구조(트리)를 갖는 문서
• RDB와 유사한 조건을 포함한 질의 처리 가능
예 ) MongoDB, CouchDB
JSON 이란 ?
• 웹과 컴퓨터 프로그램에서 용량이 적은 데이터를 교홖하기 위해 데이터 객 체를 <속성, 값>의 쌍 형태로 표현하는 형식(표기법)
• 데이터 트리(=문서)를 문자열로 표현 한 것
즉 웹 상에서의 데이터 교환
구조
{ 필드명, 필드값 } 즉, { 키, 값 } 으로 표현(표기)
JSON 객체의 값에 배열이 올 수도있다. 객체 안에 객체가 올수있다.
트리 형태의 구조화된 문서가 될 것.
문서형 NoSQL의 예
정리 ) 관계형 데이터 베이스 대신 NoSQL을 사용하는 경우?
1. 대량의 데이터 입력이 필요하다
2. 대량의 단순한 정보의 빠른 저장 및 조회가 필요하다
3. 스키마가 고정되지 않은 데이터