DataBase/Mongo DB

Mongo DB 2강 - RDBS vs NoSQL / 접속

상맹 2021. 9. 23. 16:52
반응형

1. RDBS vs NoSQL

I/O 발생 시 속도가 매우 느리다.

 - RDBMS

  ① ACID ( 원자성, 일관성, 격리성, 지속성)

  ② 데이터 중복 X → 공유

  ③ FK(관계)

 

 - 수직적 확장 : 컴퓨터 성능을 올리는것 → 한번 쓰기, 읽기, 성능 X, 읽기 일관성 우수

 - 수평적 확장 : 컴퓨터 분산(동일한 컴퓨터를 복제) → N번 쓰기, 읽기 성능 O, 읽기 일관성이 좋지않다 (ACID 깨짐)

 속도 보다 ACID가 훨씬 중요하다. 데이터가 100% 정확해야한다.

 

 - NoSQL

  * ACID가 별로 중요하지 않다.

   → 사용하는 목적 데이터가 100% 필요 없는 프로그램

  * 데이터 중복 OK → 한방에 Select(읽기 미친속도로 하고 싶어서)

   → 공유 할 수도 안할 수도 있다.

  * FK(관계) 할 수도 있고 안할수도 있다.

  * MongoDB → 수평적 확장 (데이터가 중복되어서 느린 쓰기 속도를 커버 - 샤딩)

 

※ Redis

 - 메모리 저장소 ( 세션 저장 할 때 많이 사용 )


Example)

 남극 추운 곳 - 기계 설치 → 현재 온도 1초마다 실시간 전송 - NoSQL

 남극 추운 곳 - 기계 설치 → 현재 온도 1초마다 이상기온 전송 - RDBMS


2. Mongo DB 기본 명령어 해보기

cmd → mongo
몽고 최초 접속 명령어 → show dbs;

 

 - 접속 사용자 조회 : show users;

 

 - 다른 db는 db를 만들면 collection이 만들어지지만, mongo는 collection을 만들면 바로 db가 만들어진다.

 - collsections 조회 : show collections;

 

 - greendb 생성 후 데이터 저장

  스키마가 없기때문에 데이터 저장 하면 컬렉션이 없을경우 자동으로 생성된다.

 

db.users.save(JSON으로); - Insert문
insert 조회 (select) - db.users.find(); / db.users.find().pretty(); → bson(binary) 타입으로 저장되어 진다.

memory에 저장되어진다. (I/O를 하지 않기 때문에 Select가 엄청 빠르다)

 

* 만약 Data를 입력하자마자 종료되어서 하드디스크에 Data 저장이 되어지지 않았다?(명령어는 실행되어지지 않았다.)

→ 내용을 기억하는것이 아니라 입력한 명령어를 기억하고 있다.(하드디스크에 저장이 되지 않았으면 명령어를 자동 실행되어 하드디스크에 저장)

 

 - "_id" 는 Primary Key 이며, 데이터 입력시 자동으로 입력되어 진다.(Hash값으로 되어져 있다. / 수동으로도 입력가능)

_id 값 1번입력후 조회
id 1번값이 있는 곳에 이름만 바꿔서 입력 
전화번호 추가후 저장(love만 전화번호 테이블?이 존재)
show collections; → show dbs; greendb → db확인가능!

 

 

 

반응형

'DataBase > Mongo DB' 카테고리의 다른 글

Mongo DB 6강 - 배열 연산자 (고급)  (0) 2021.09.27
Mongo DB 5강 - Update, Remove  (0) 2021.09.24
Mongo DB 4강 - Save, Find, 연산  (0) 2021.09.23
Mongo DB 3강 - Spring Boot 연결 / CRUD  (0) 2021.09.23
Mongo DB 1강 - 설치  (0) 2021.09.23