본문 바로가기

DATABASE/# MongoDB

[MongoDB]몽고DB - 1 : 소개 및 용어 정리

반응형

By Commin .September 27, 2016

몽고DB - 1 : 소개 및 용어 정리

간단한 소개

MongoDB 는 무료 오픈 소스 플랫폼 문서 지향 데이터 베이스(Cross-Platform Document-Oriented)입니다. NoSQL의 일종으로 확장성이 좋고 성능이 우수합니다. JSON과 같은 동적 스키마(Schema)형 문서들을 선호함으로써 전통적인 테이블 기반 관계형 데이터베이스들(RDMS)과는 차별화 됩니다. 

NoSQL이란?

NoSQL 데이터베이스는 전통적인 관계형 데이터베이스 보다 덜 제한적인 일관성 모델을 이용합니다. 때문에 NoSQL데이터베이스는 단순 검색 및 추가 작업이 쉬워서 빅데이터(Big Data) 및 실시간 웹 애플리케이션(Web Application)에 자주 쓰입니다. NoSQL이란 이름은 "SQL을 사용하지 않는다(No SQL)" 라는 의미가 아니고, SQL 계열 쿼리 언어를 사용 할 수도 있다는 사실을 강조하기 위한 이름으로 "Not only SQL" 의 약어입니다.

Document - Oriented Database (문서 지향 데이터베이스)란?

일반적인 RDMS(관계형 데이터베이스) 에서 사용하는 행(row)라는 개념보다 유연한 모델인 문서(document)를 사용하는 데이터베이스로 복잡한 계층관계를 하나의 레코드(Record)에 입력 및 표현 할 수 있습니다.
문서 지향 데이터베이스의 대표 격인 MongoDB는 통신규격으로 JSON을 사용합니다. 한개 이상의 Key : Value 로 이루어지며 사용 예는 다음과 같습니다.

1
2
3
4
5
6
{
    "_id":1,
    "subject":"Mathematic",
    "score":100,
    "student_name":"commin"
}
cs

여기서 : (콜론)을 기준으로 왼쪽은 Key 값이 되며 오른쪽은 Value 값이 됩니다. 여기서 주의해야 할 점은 Document는 고정된 형태가 아니며 필요에 따라 한 Collection 안에 여러개의 Schema를 가질 수 있습니다. 그럼 Collection은 무엇일까요?

Collection이란?

컬렉션은 쉽게 말해서 문서의 모음입니다. 관계형 데이터베이스에서 row(행)의 모음이 Table(테이블)이 되는 것처럼 Document가 1개이상 모여 이루어지는 것이 Collection 입니다. 컬렉션은 별도의 스키마를 가지고 있지 않기때문에 하나의 컬렉션 안에 있는 Document는 모두 다른 구조를 가질 수 있습니다. 그러면 왜 Collection을 여러개 생성할까요?
하나의 Collection 안에 학교문서,회사문서,집문서,땅문서 등 여러 Document들이 들어있다면 조회하고 입력할 때 특정 Document를 찾는것이 쉽지 않습니다. 때문에 Collection은 여러개 만들어서 성격에 맞는 데이터들의 문서를 저장하는 것이 올바른 일입니다. 

Collection을 만들때 주의사항입니다.

  • 빈문자열을 넣으면안된다.
  • system으로 시작하면안된다.
  • null을 포함하면안된다.
  • 사용자가만든 컬렉션 이름에는 $ 를사용하면안된다.

Sub-Collection이란?

학교 구성원 관리 데이터베이스 프로그램을 만든다고 가정 할 때, 학교-선생님, 학교-학생 으로 나눌 수 있습니다. 이때 같은 속성인 학교에서 선생님과 학생을 나눠서 Collection을 만들면 이렇게됩니다.
school.teacher
school.student 
이때 school 컬렉션과 자식 컬렉션인 teacher 와 student 사이에는 아무런 관계도 없습니다. 이러한 점은 MongoDB의 데이터를 체계화 시켜줍니다.


반응형

'DATABASE > # MongoDB' 카테고리의 다른 글

[MongoDB]몽고DB - 2 : 몽고DB Window에 설치 및 실행  (0) 2016.11.04