Tag Archives: nosql

[독후감] 빅 데이터 세상으로 떠나는 간결한 안내서, NoSQL

NoSQL 데이터베이스를 학습하던 중에, 다양한 NoSQL 데이터베이스간의 차이점을 정리한 내용이 필요하던 차에 이 책을 발견했다. 후회하지 않을 마틴 파울러씨의 새 책이, 믿고 사는 인사이트에서 번역되었다.

martinfowler_nosql

이전의 UML Distilled가 그랬듯이 이 책 또한 말 그대로 간결하다. 하지만 내용마저 간결하다는게 흠이라면 흠이다. 늘 그렇듯 일단 개념정리부터 하고보는 저자의 성격답게 “1부 기본 개념”에서는 NoSQL 관련 서적에서는 깊이 다루지 못했던 데이터베이스와 관련된 기본 개념을 충실히 설명한다. 중요한 내용을 꽤 쉽게 설명하여 지금까지 이해했던 내용들을 엮는데 도움이 되었다. 다만 저자가 쓴 PoEAA를 읽지 못헀던 독자라면 이해하기가 상당히 버거울 수 있다는 생각은 든다.

또한 NoSQL을 이 책을 통해 처음 접하는 독자라면 오히려 뜬 구름만 잡을 수도 있겠다. 차라리 몽고 DB나 HBase와 같은 특정 NoSQL 데이터베이스를 조금 접했던 독자에게 더 유익하리라고 본다.

“2부 적용”에서는 1부에서 정의한 기본 개념이 각 NoSQL 데이터베이스 솔루션에서 어떻게 구현되었는지에 대해 패턴 형식으로 기술한다. 이 떄부터 각 솔루션별 API를 가지고 설명을 하는데 읽기가 상당히 버거웠다. 이 역시도 해당 솔루션을 이미 알고 있는 독자라면 장/단점을 일목요연하게 이해하는데 도움이 더 될 듯 하다.

결론적으로 책 두께는 간결하지만 내용은 그렇게 간단하지 않다. 하지만 저자의 다른 책과 마찬가지로 핵심 내용을 잘 짚었으며 NoSQL에 대해 약간의 지식이 있는 사람에게는 꽤 유용하리라고 본다. 다만 각 솔루션별로 설명하는 내용은 너무 간략하여 내용을 습득하기가 어렵다는 게 조금 아쉽다.

이와 유사한 책으로는 이 책보다 먼저 나온 “빅 데이터 시대를 위한 NoSQL 핵심 가이드”가 있다.

nosql_guide

다양한 NoSQL 데이터베이스 솔루션 별로 설치 부터 사용까지, 활용 위주로 비교한 책이다. 실제 NoSQL 솔루션을 직적 사용해야 하는 독자라면 이 책 역시 유용하리라고 본다.

 

[번역] mongodb에서 데이터베이스 생성하기

원문 : How To Create Database In MongoDB

 

mongodb는 “데이터베이스”를 생성하는 명령어를 제공하지 않는다. 사실 데이터베이스를 직접 생성할 필요도 없는데, mongodb가 데이터베이스가 필요하다고 판단할 때, 즉 지정된 컬렉션(collection)에 처음으로 값을 입력할 때 데이터베이스를 자동으로 만들어주기 때문이다.
SQL 배경지식을 가진 개발자라면, 먼저 데이터베이스를 생성하고, 테이블을 만든 후 테이블에 값을 일일이 입력해야 했다. 하지만 mongodb는 다르다. 무엇을 생성할 지 명령할 필요가 없다. 데이터베이스를 선택한 후, 지정된 컬렉션(또는 테이블)에 값을 처음으로 입력할 때, mongodb가 값, 컬렉션, 데이터베이스를 모두 자동으로 생성한다.

주의
mongodb는 컬렉션을 수동으로 생성할 수 있는 “db.createCollection()” 명령어를 제공하지만, 데이터베이스를 생성하는 명령어는 제공하지 않는다. 이 가이드에서는 mongodb가 언제 그리고 어떻게 데이터베이스와 컬렉션을 생성하는지 설명하려고 한다.

1. 모든 데이터베이스 보기

“show dbs” 명령어를 실행하면, 사용가능한 데이터베이스 목록을 표시한다.

 

현재 “admin”과 “loca” 2가지 데이터베이스만 사용가능하다.

역주) 내가 설치한 mongodb에서는 local 데이터베이스만 보인다. admin은 어디갔나?????

2. 데이터베이스 이름 정의하기

“use new-databasename” 명령어를 실행하면 기본 데이터에비스에서 지정한 데이터베이스로 전환된다(비록 해당 데이터베이스가 없더라도 명령어는 성공한다). 하지만 mongodb는 이 순간에도 데이터베이스를 생성하지 않고, 무언가를 데이터베이스에 저장할 때까지 기다린다.

 

참고로 이 시점에도 “test” 데이터베이스는 아직 생성되지 않았다.

3. 저장하기

“users”라는 이름으로 컬렉션을 정의한 후, 더미 문서(값)을 이 컬렉션에 저장하자.

 

위의 명령어를 설명하면 다음과 같다.

문서를 users 컬렉션에 저장한다. 문서는 ‘{username:”mkyong”}‘이다. “save” 명령이 끝나면, mongodb는 “user” 컬렉션과 “test” 데이터베이스를 자동으로 생성한다.