[NoSQL] MongoDB

may_yun·2022년 10월 9일
0

NoSQL(Not Only SQL)이란?

참고
: 관계형 DBMS에서 데이터 CRUD를 할 때 SQL을 사용하는데, 사진이나 메시지들을 저장할 때 많은 분들이 동시에 웹 쇼핑몰에 접속했을 떄 선호하는 상품을 실시간으로 추천해줄 때! 거의 예외없이 사용되는 시술이 NoSQL DB 기술이다.

20년 후반 인터넷이 활성화되면서 소셜네트워크 서비스 등이 등장하면서 정형데이터가 아닌 비정형데이터라는 것을 보다 쉽게 담아서 저장하고 처리할 수 있는 구조를 가진 데이터베이스인 NoSQL 데이터베이스가 각광을 받게 된 것

  • 데이터의 저장 및 검색을 위한 특화된 매커니즘을 제공하여 응답속도나 처리 효율 등에 있어서 뛰어난 성능을 나타낸다.

기존 관계형 데이터베이스와의 차이점

: 초고용량 데이터 처리 등 성능에 특화된 목적을 위해 비관계형 데이터 저장소에 비구조적인 데이터를 저장하기 위한 분산 저장 시스템

  • 관계형 모델을 사용하지 않고 테이블간 조인이 없다.
  • 직접 프로그래밍을 하는 등의 비SQL 인터페이스를 통한 데이터 액세스
  • 여러대의 데이터베이스 서버를 묶어서 하나의 데이터베이스를 구성
  • 관계형 DB에서는 지원하는 Data처리 완결성 (ACID)미보장
  • 데이터의 스키마와 속성들을 다양하게 수용 및 동적 정의
  • 데이터베이스의 중단 없는 서비스와 자동 복구 기능 지원
  • 다수가 오픈소스로 제공
  • 확장성, 가용성, 높은 성능

종류

: mongodb가 앞도적인 1위, 2위권은 cassandra,hbase 그리고 다음이 redis 맨 아래로 riak,couchdb 등이 있다. 아무래도 기능이 편리한 mongodb 가 단연 인기고, 난이도는 있지만 확장성에 우위가 있는 cassandra,hbase가 그 뒤를 따른다. 


MongoDB

: 기존의 테이블 기반의 관계형 DB 구조가 아닌 문서 지향 데이터 모델을 사용하는 교차 플랫폼 오픈 소스 데이터베이스이다. JSON과 같은 문서를 사용하여 대량의 데이터를 저장하는 NoSQL 데이터베이스이다.

  • 관계형 DB 논리적 구조 VS mongoDB 비교

특징

: JSON 형식의 데이터구조로 문서에 저장

{"key Field" : "value"}
  • 필드가 문서에 따라 다를 수 있으며 데이터 구조가 시간에 따라 변할 수 있다
  • 문서 모델은 애플리케이션 코드의 객체들로 맵핑
  • 분산, 복제 기능을 제공

MongoDB 설치

공식사이트

homebrew로 설치

brew tap mongodb/brew
brew install mongodb-community@6.0

설치된 mongoDB 버전 확인

mongod -version

//db version v6.0.1

몽고디비 실행(start) 및 정지(stop)

  • 서버 시작 (서버를 시작하면 몽고DB 기본 포트인 27017 로컬서버가 구동)
brew services start mongodb-community

: 서버 접속에 성공 했을 경우 아래와 같이 접속 확인 가능

  • 서버 종료
brew services stop mongodb-community

터미널에서 mongoDB 실행

  • 몽고디비 서버를 시작하고, 터미널에 mongo 입력
  • >가 활성화 되면 문법을 통해 사용이 가능하다

MongoDB GUI 설치

  • 터미널에서 서버 시작하고 connect 클릭하면 기본으로 세팅
profile
개발 일지

0개의 댓글