의견.png

"몽고디비"의 두 판 사이의 차이

해시넷
이동: 둘러보기, 검색
74번째 줄: 74번째 줄:
 
|}<ref name="NoSQL">수워니s,〈[https://cionman.tistory.com/44 MongoDB(몽고디비) Study-NoSQL이란? 그리고 MongoDB 소개]〉, 《티스토리》,2017-10-09</ref>
 
|}<ref name="NoSQL">수워니s,〈[https://cionman.tistory.com/44 MongoDB(몽고디비) Study-NoSQL이란? 그리고 MongoDB 소개]〉, 《티스토리》,2017-10-09</ref>
  
==노에스큐엘==
+
===노에스큐엘===
 
[[노에스큐엘]](NoSQL)은 'Non Relational Operation Database SQL'의 줄임말로써 관계형 데이터베이스가 아닌 SQL이다.
 
[[노에스큐엘]](NoSQL)은 'Non Relational Operation Database SQL'의 줄임말로써 관계형 데이터베이스가 아닌 SQL이다.
  

2019년 7월 25일 (목) 14:24 판

몽고디비(MongoDB) 로고

몽고디비(MongoDB)는 무료 오픈소스 기반의 데이터베이스 관리 시스템(DBMS)이다. 오라클(Oracle), 마이에스큐엘(MySQL), 큐브리드(Cubrid) 등의 관계형 데이터베이스 관리 시스템(RDBMS)과 달리, 몽고디비는 빅데이터와 같은 비정형 데이터 분석에 주로 사용되는 노에스큐엘(NoSQL)의 일종이다. 몽고디비는 유연한 스키마를 가진 제이슨(JSON) 방식의 문서에 데이터를 저장한다. GNU AGPL아파치 라이선스(Apache License)를 따른다.

개요

몽고디비(MongoDB)는 크로스 플랫폼 도큐먼트 지향 데이터베이스 시스템이다. NoSQL 데이터베이스로 분류되는 몽고디비는 JSON과 같은 동적 스키마형 도큐먼트들(몽고DB는 이러한 포맷을 BSON이라 부름)을 선호함에 따라 전통적인 테이블 기반 관계형 데이터베이스 구조의 사용을 삼간다. 이로써 특정한 종류의 애플리케이션을 더 쉽고 더 빠르게 데이터 통합을 가능케 한다. 아페로 GPL과 아파치 라이선스를 결합하여 공개된 몽고디비는 자유-오픈 소스 소프트웨어이다. 10gen에서 2007년 10월, PaaS제품의 구성요소로 처음 개발하였으며 10gen이 상용 지원 및 기타 서비스를 제공한 2009년에 오픈 소스 개발 모델로 전향하였다. 그 뒤로 몽고디비는 크레이그리스트, 이베이, 포스퀘어, 소스포지, 뉴옥 타임즈, 구글, 페이스북과 같은 수많은 주요 웹 사이트 및 서비스에 백엔드 소프트웨어로 채택되고 있다.[1]

특징

몽고디비(MongoDB)는 데이터 객체들이 컬렉션 내부에서 독립된 문서로 저장되는, 문서 모델을 기반으로 하는 노에스큐엘(NoSQL) 데이터베이스이다.

  • Document-oriented database : 노에스큐엘(NoSQL) 중 에서도 유명한 몽고디비(MongoDB)는 비즈니스 요구에 맞도록 시스템을 확장하는 기능이 유연한 문서지향의 데이터베이스이다. 문서 지향 데이터베이스에서는 RDBMS에서 사용하는 행 개념 대신에 더욱 유연한 모델인 문서를 이용하는데, 내장 문서와 배열 같은 표현이 가능하기 때문에 복잡한 객체의 계층 관계를 하나의 레코드(열)로 표현할 수 있다.
  • Schemaless : 몽고디비(MongoDB)는 스키마가 없다. 이것은 필요할 때마다 필드를 추가하거나 제거하기가 매우 쉬워졌음을 의미한다. 따라서 개발 과정이 매우 단순해지고 빠르게 개발할 수 있다.
  • Scale Out : 소프트웨어 마에스트로라는 국가인재양성 프로그램에서 뉴스를 추천해주는 서비스를 프로젝트로 하고 있다. 언론사들을 크롤러가 돌며 뉴스를 수집하여 개인의 선호에 맞게 추천하는 서비스다. 이때 엄청난 양의 사용자 선호 로그 데이터를 필요할 때마다 필드를 바꾸며 빠른 속도로 쌓여야 하는데, 이것에 적합하다고 판정된 DB가 몽고디비(MongoDB)이다. 데이터베이스에 엄청난 로그가 쌓여야 하는데 Scale out도 가능할뿐더러 스키마가 없어 필요할 때마다 필드를 변형시킬 수 있기 때문이다.
  • Universal Database : 몽고디비(MongoDB)는 유니버셜 데이터베이스(Universal Database)를 목적으로 만들어졌기 때문에 CRUD의 작업 이외에도 다양한 기능을 제공하며, 쿼리를 사용할 수 있다. 아래는 몽고디비(MongoDB)가 제공하는 기능이다.
  1. 인덱싱 제공
  2. 집계 파이프라인의 지원
  3. 특수한 컬렉션 유형 제공.
  4. 파일 저장소의 지원
  • High performance : 몽고디비(MongoDB)는 쓰기와 읽기에서 기존의 관계형 데이터베이스(Relational Database)보다 수십 배의 성능을 발휘한다.[2]


데이터 형식

몽고디비(MongoDB)는 형식(type)으로 질의할 때, 1~255사이의 정수형 ID 숫자를 각 데이터 형식에 할당한다.

형식 숫자 형식 숫자
실수형(Double) 1 정규표현식 11
문자열(String) 2 자바 스크립트 13
객체 3 심볼(Symbol) 14
배열 4 자바 스크립트(with scope) 15
바이너리 데이터 5 32비트 정수형 16
객체ID 7 타임스탬프 17
불린(Boolean) 8 64비트 정수형 18
날짜(Date) 9 Min 키 255
널(Null) 10 Max 키 127

다른 BSON형식의 값을 비교할 때, 몽고디비는 숫자가 제일 낮은 순서부터 높은 순서대로 비교한다.[3]


관계형 데이터베이스와 몽고디비의 논리적 구조

관계형 데이터베이스 몽고디비
Table Collection
Row Document
Column Field
Primary Key Object_ID Field
Relationship Embbeded & Link
[4]

노에스큐엘

노에스큐엘(NoSQL)은 'Non Relational Operation Database SQL'의 줄임말로써 관계형 데이터베이스가 아닌 SQL이다.

  1. 불필요한 Join의 최소화
  2. 유연성있는 서버구조 제공
  3. 비정형 데이터 구조로 설계비용 감소
  4. 읽기/쓰기가 빠르며 빅데이터 처리 가능
  5. 저렴한 비용으로 분산처리 및 병렬처리 가능
  1. KEY-VALUE - Redis , Memcached
  2. COLUMN - Hbase, Casandra
  3. DOCUMENT - MongoDB,
  4. GRAPH - GraphDB


관계형 데이터베이스(Relational Database)와 노에스큐엘(NoSQL) 비교

관계형 데이터베이스 노에스큐엘
Scale-up - 서버 한대 중심으로 확장 Scale-out - 여러대의 서버를 중심으로 확장
무결성 유연성
데이터 중복 제거 데이터 중복 허용
트랜잭션 빠른 쓰기, 읽기
[4]

각주

  1. 몽고DB〉, 《위키백과》
  2. jmkang,〈MongoDB 특징〉, 《人CoDOM》, 2018-03-28
  3. 청정코딩샘물,〈몽고DB란 무엇일까?〉, 《티스토리》, 2018-10-12
  4. 4.0 4.1 수워니s,〈MongoDB(몽고디비) Study-NoSQL이란? 그리고 MongoDB 소개〉, 《티스토리》,2017-10-09

참고 자료

같이 보기


  의견.png 이 몽고디비 문서는 데이터에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.