MONGO DB -Nosql 기초

Jelkov Ahn·2021년 12월 24일
0

mongoDB

목록 보기
2/2
post-thumbnail

MongoDB

NoSQL 도큐먼트 데이터베이스입니다. MongoDB는 데이터를 도큐먼트의 형태로 저장합니다.
도큐먼트는 컬렉션에 저장되며, 이것이 MongoDB가 NoSQL 도큐먼트 데이터베이스로 분류되는 이유입니다.

NoSQL 비관계형 데이터베이스 자주 사용하는 경우

1. 비구조적인 대용량의 데이터를 저장하는 경우

NoSQL 데이터베이스는 관계에 중점을 둔 SQL 데이터베이스보다 자유로운 형태로 데이터를 저장할 수 있으므로 필요에 따라서 새로운 데이터 유형을 추가할 수 있습니다. 소프트웨어 개발에 정형화되지 않은 많은 양의 데이터가 필요한 경우, NoSQL이 효율적일 수 있습니다.

2. 클라우드 컴퓨팅 및 저장 공간을 최대한 활용하는 경우

NoSQL 데이터베이스는 데이터베이스를 클라우드 기반으로 쉽게 분리할 수 있도록 지원하여, 저장 공간을 효율적으로 사용합니다. 시스템이 커지면서 DB를 증설해야 하는 시점이 오면, SQL 데이터베이스에서는 수직적 확장의 형태로 DB를 증설합니다. 수직적으로 확장된 데이터베이스는 관리가 어려워질 수 있는 데에 반해, NoSQL은 수평적 확장의 형태로 증설하므로, 이론상 무한대로 서버를 계속 분산시켜 DB를 증설할 수 있습니다.

3. 빠르게 서비스를 구축하고 데이터 구조를 자주 업데이트 하는 경우

NoSQL 데이터베이스의 경우 스키마를 미리 준비할 필요가 없어서, 개발을 빠르게 해야 하는 경우에 매우 적합합니다. 시장에 빠르게 프로토타입을 출시해야 하는 경우나, 소프트웨어 버전별로 많은 다운타임(데이터베이스의 서버를 오프라인으로 전환하여 작업하는 시간) 없이 데이터 구조를 자주 업데이트해야 하는 경우에는 일일이 스키마를 수정해 주어야 하는 관계형 데이터베이스 보다 NoSQL 기반의 비관계형 데이터베이스가 더 효율적입니다.

정리

1. 거대한 데이터들을 다룰때

2. 엄청난 데이터 쓰기 성능이 필요할 때

3. 빠른 key-value 접근

4. 유연한 스키마와 데이터타입

4. 쉬운 유지보수, 관리 및 운영

5. 고가용성

6. 개발자에게 쉬운 사용법

QUIZ

Q) MongoDB가 왜 NOSQL 데이터 베이스 인지?

  • 구조화된 방법으로 데이터를 저장하고 접근하기 때문에
  • 행과 열을 이용하여 데이터를 구성하지 않기 때문에

Q) MongoDB 데이터베이스의 정의

  • MongoDB 데이터베이스는 체계적으로 데이터를 저장하고 접근하는 방법.
  • MongoDB는 NoSQL 데이터 베이스로 도큐먼트를 이용해 데이터를 구성한다.

Q) MongoDB에서 도큐먼트와 컬렉션의 관계에 대해 맞는 설명을 고르세요.

  • 컬렉션은 한 개 또는 여러 개의 도큐먼트로 이루어져 있다.

FIle-based System 저장의 문제점

Data redundancy(데이터 중복)

  • 똑같은 정보를 계속 담을수 있다.

Data inconsistency(데이터 불일치)
Difficult data accesss
Security problems(unauthorized access)
Difficult concurrent access (동시 접근이 어려움)

  • typically, in a file-based system, when an application opens a file, that file is locked.

데이타베이스 출연

  • A database is a shared collection of related data.
    데이터베이스는 관련된 데이터들의 집합으로서 공유된다.
  • A database can be viewed as a repository of data that is defined once and then accessed by vairous users and programs.
    데이터베이스는 데이터의 저장소인데 이는 한번 정의되며 여러 사용자나 프로그램에 의해 접근된다.

DBMS 출연 - 데이터를 잘관리 !!
(sql nosql 모두 포함하는 개념)

RDBMS 관계형 데이터 베이스 자주 쓰인다.

  • sql은 쓰는 사람이 다양한다.
  • 데이터 베이스를 쓰는 역사가 엄청 오래 되었다.
  • sql은 오래되었다. 맨처음 기업에서 많이쓰였다. 기업 소비자의 관계 이런것이 중요시해서 관계형데이터베이스가 자리잡게 되었다.

-----> NOSQL 인터넷이 발전하면서 관리해야 하는 파일이 늘어난다. !! 그래서 새로운 관점으로 데이터를 관리해야 하는 방법을 괸 하게 되었고, NOSQL이 등장하게 되었다.

Atlas Cloud

MongoDB에서는 아틀라스(Atlas)로 클라우드에 데이터베이스를 설정합니다.
아틀라스는 GUI와 CLI로 데이터를 시각화, 분석, 내보내기, 그리고 빌드하는 데에 사용할 수 있습니다. 아틀라스 사용자는 클러스터를 배포할 수 있으며, 클러스터는 그룹화된 서버에 데이터를 저장합니다.

이 서버는 레플리카 세트(Replica set)로 구성되어 있으며, 레플리카 세트는 동일한 데이터를 저장하는 몇 개의 연결된 MongoDB 인스턴스의 모음입니다.

도큐먼트나 컬렉션을 변경할 경우, 변경된 데이터의 중복 사본이 레플리카 세트에 저장됩니다.
이 설정 덕분에 레플리카 세트의 인스턴스 중 하나에 문제가 발생하더라도 데이터는 그대로 유지되며, 레플리카 세트의 애플리케이션에서 나머지 작업을 할 수 있습니다.
이 과정을 위해 클러스터(서버 그룹)를 배포하면, 자동으로 레플리카 세트가 구성됩니다.

  • 레플리카 세트
    동일한 데이터를 저장하는 소수의 연결된 머신을 뜻합니다. 레플리카 세트 중 하나에 문제가 발생하더라도, 데이터를 그대로 유지할 수 있습니다.

  • 인스턴스
    로컬 또는 클라우드에서 특정 소프트웨어를 실행하는 단일 머신, MongoDB에서는 데이터베이스입니다.

  • 클러스터
    데이터를 저장하는 서버 그룹으로 여러 대의 컴퓨터를 네트워크를 통해 연결하여 하나의 단일 컴퓨터처럼 동작하도록 제작한 컴퓨터를 뜻합니다.

  • Ubuntu mongosh 설치
    https://docs.mongodb.com/mongodb-shell/install/

  • Ubuntu connecting to Atlas Cluster
    https://docs.atlas.mongodb.com/tutorial/connect-to-your-cluster/

MongoDB Document

  • 도큐먼트(Document)
    필드 - 값 쌍으로 저장된 데이터

  • 필드(Field)
    데이터 포인트를 위한 고유한 식별자

  • 값(Value)
    주어진 식별자와 연결된 데이터

  • 컬렉션(Collection)
    MongoDB의 도큐먼트로 구성된 저장소입니다.
    일반적으로 도큐먼트 간의 공통 필드가 있습니다.
    데이터베이스 당 많은 컬렉션이 있고, 컬렉션 당 많은 도큐먼트가 있을 수 있습니다.

profile
끝까지 ... 가면 된다.

0개의 댓글