soominkim Study
article thumbnail
Published 2022. 11. 18. 14:33
[MongoDB] MongoDB 란 DB/MongoDB
728x90


해당 글은 MongoDB 공식 홈페이지에서 더 자세하게 확인할 수 있습니다.

 

MongoDB Atlas: Cloud Document Database

Cloud-hosted MongoDB service on AWS, Azure, and GCP

www.mongodb.com


MongoDB는 문서 데이터베이스(Document Database)입니다.
문서 데이터베이스는 문서에 정보를 저장하는 데이터베이스로 다음과 같은 다양한 이점을 제공합니다.

① 개발자가 빠르고 쉽게 작업할 수 있는 직관적인 데이터 모델
② 애플리케이션 요구 사항이 변경됨에 따라 데이터 모델을 발전시킬 수 있는 유연한 스키마
③ 수평 확장 가능

이러한 장점 때문에 문서 데이터베이스는 다양한 사용 사례와 산업에서 사용할 수 있는 범용 데이터 베이스입니다.
문서 데이터베이스는 비 관계형(NoSQL) 데이터베이스로 간주되며 고정된 행과 열에 데이터를 저장하는 것이 아닌 유연한 문서에 사용합니다.

1. Document

문서(Document)는 문서 데이터베이스의 레코드(Record)입니다. 문서는 일반적으로 하나의 개체 및 관련 메타데이터에 대한 정보를 저장합니다.

이 문서는 데이터를 필드(Field) - 값(Value) 쌍으로 저장하며 값은 문자열, 숫자, 날짜, 배열 또는 객체를 포함하여 다양한 유형 및 구조일 수 있습니다.

문서의 저장 형태는 JSON, BSON 및 XML과 같은 형식으로 저장할 수 있습니다.
예제를 살펴보겠습니다.

{
     "_id": 1,
     "first_name": "Tom",
     "email": "tom@example.com",
     "cell": "765-555-5555",
     "likes": [
        "fashion",
        "spas",
        "shopping"
     ],
     "businesses": [
        {
           "name": "Entertainment 1080",
           "partner": "Jean",
           "status": "Bankrupt",
           "date_founded": {
              "$date": "2012-05-19T04:00:00Z"
           }
        },
        {
           "name": "Swag for Tweens",
           "date_founded": {
              "$date": "2012-11-01T04:00:00Z"
           }
        }
     ]
  }


① TOM이라는 사용자에 대한 정보를 저장하는 JSON 문서입니다.
② 문서는 각각 필드와 값으로 데이터를 저장하고 있습니다.
③ likes 필드를 보면 값은 리스트 형태로 저장되어 있습니다.
④ businesses 필드를 보면 likes 필드와 동일하게 리스트 형태로 저장되어 있습니다.
→ ③,④를 통해 우리는 한 개의 필드 안에 복수의 값을 넣고자 할 때 리스트 형태를 취하면 된다는 것을 알 수 있습니다.
→ businesses 필드를 통해 우리는 필드 안의 값이 다시 필드-값 형태로 저장될 수 있다는 것을 알 수 있습니다.



2. Collections

컬렉션(Collection)은 문서 그룹입니다. 컬렉션은 일반적으로 콘텐츠(Content)가 유사한 문서를 저장합니다.
문서 데이터베이스에는 유연한 스키마가 있기 때문에 컬렉션의 모든 문서가 동일한 필드를 가질 필요는 없습니다. 또한 일부 문서 데이터베이스는 스키마 유효성 검사를 제공하므로 필요할 때 스키마를 선택적으로 잠글 수 있습니다.


예제를 살펴보겠습니다.

{
     "_id": 2,
     "first_name": "Donna",
     "email": "donna@example.com",
     "spouse": "Joe",
     "likes": [
        "spas",
        "shopping",
        "live tweeting"
     ],
     "businesses": [
        {
           "name": "Castle Realty",
           "status": "Thriving",
           "date_founded": {
              "$date": "2013-11-21T04:00:00Z"
           }
        }
     ]
  }

 

① 위의 예제인 TOM이라는 정보를 USER라는 컬렉션에 저장했습니다.
② 그렇다면 Dona라는 정보를 우리는 USER라는 컬렉션에 동일하게 저장할 수 있습니다.
③ 같은 컬렉션에 저장했지만 Dona에는 TOM의 문서와 동일한 필드가 포함되지 않았습니다.


3.CRUD

문서 데이터베이스에는 일반적으로 개발자가 CRUD 작업을 실행할 수 있는 API 또는 쿼리 언어가 있습니다.

  • Create : 데이터베이스에 문서를 만들 수 있습니다. 각 문서에는 고유한 식별자가 있습니다.
  • Read : 데이터베이스 문서를 읽을 수 있습니다. API 또는 쿼리 언어를 사용하면 개발자가 고유 식별자 또는 필드 값을 사용하여 문서를 쿼리 할 수 있습니다. 읽기 성능을 향상하기 위해 데이터 베이스에 인덱스를 추가할 수 있습니다.
  • Update : 기존 문서를 전체적으로 또는 부분적으로 업데이트할 수 있습니다.
  • Delete : 데이터베이스에서 문서를 삭제할 수 있습니다.

 

4. 주요 기능

문서 데이터베이스에는 다음과 같은 주요 기능이 있습니다.

Document model : 데이터는 문서에 저장됩니다. 테이블이나 그래프와 같은 구조로 데이터를 저장하는 다른 데이터베이스와 달리 문서는 개발자가 응용 프로그램을 신속하게 개발할 수 있도록 가장 널리 사용되는 프로그래밍 언어로 개체에 매핑됩니다.
Flexible schema : 문서 데이터베이스에는 유연한 스키마가 있습니다. 즉 컬렉션의 모든 문서가 동일한 필드를 가질 필요는 없습니다. 일부 문서 데이터베이스는 스키마 유효성 검사를 지원하므로 스키마를 선택적으로 잠글 수 있습니다.
Distributed and resilient : 문서 데이터 베이스가 분산되어 수평 확장 및 데이터 배포가 가능합니다. 또한 문서 데이터베이스는 복제를 통해 복원력을 제공합니다.
Querying through an API or query language : 문서 데이터베이스에는 개발자가 데이터베이스에서 CRUD 작업을 실행할 수 있는 API 또는 쿼리 언어가 있습니다. 개발자는 고유 식별자 또는 필드 값을 기반으로 문서를 쿼리 할 수 있습니다.


728x90

'DB > MongoDB' 카테고리의 다른 글

[MongoDB] MongoDB Altas  (0) 2023.01.07
profile

soominkim Study

@soominkim

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

검색 태그