DB/MongoDB

몽고DB 3강. 몽고디비 컨셉

JJJAEOoni 2022. 4. 27. 02:03
반응형

 

RDB와 MongoDB의 구조는 조금 다르다.

 

RDB는 데이터베이스 안에 테이블이 있고, 테이블에는 row들로 이루어져 있다.

MongoDB는 데이터베이스안에 테이블이 아닌 document로 이루어져 있다.

{"id":1, "name":"홍길동"} 과 같이 json과 모양이 똑같은 중괄호 하나가 하나의 document이다.

데이터베이스는 이 document가 모인 컬렉션인 것이다. 

 

1. 비정형 데이터

 

기존에 우리가 사용하던 RDBMS는 통신을 할 때

json을 자바 오브젝트로 파싱하고, INSERT문을 작성하여 DB에 save

DB에서 row를 반환하면 ResultSet에 담아 자바 오브젝트로 파싱 하고 json으로 변환했다.

 

몽고 디비를 사용하면 json을 파싱 하지 않고 바로 DB에 넣을 수 있다.

파이썬에 dict이라는 dictionary 타입이 json 모양과 동일하게 생겼기 때문에 또한 파싱이 필요없다.

 

통신할 때 치환할 필요가 없는 것이다.

 

2. SELECT에 강력한 데이터베이스

 

RDB는 테이블끼리 관계를 가진다.

 

user의 name이 update 될 때

user 테이블의 데이터만 수정해주면 된다.

 

몽고 디비는 관계하지 않기 때문에 하나의 document에 다 포함되어있다.

 

RDB는 테이블끼리 관계하고 있기 때문에 post를 SELECT 하면 user를 JOIN 하여 데이터를 반환한다.

MongoDB는 이런 과정이 필요 없이 한 번의 SELECT로 끝난다.

 

SELECT에 강력하다!!

 

하지만 이런 구조를 가진 데이터베이스는 강력한 장점만큼 단점도 많다.

 

데이터가 중복되어 저장되기 때문에 데이터의 일관성 유지가 어렵다.

 

user의 name이 변경되었을 때 하나씩 다 수정해야 하기 때문에

무결성 유지가 힘들다.

 

수정하다가 실수해도 DB에서 확인해줄 수 없기 때문에 신뢰도가 없는 데이터베이스이다.

때문에 비정형 데이터인 것이다.

 

이런 데이터베이스는 인스타그램과 같이 SELECT가 중요한 프로그램에 사용된다.

 

유명인이 인스타그램에 글을 한 번 INSERT 하면

SELECT가 폭발적이기 때문에 이때는 비정형 DB를 사용한다.

 

 

 

[출처]

 

https://cafe.naver.com/metacoding

 

메타코딩 : 네이버 카페

코린이들의 궁금증

cafe.naver.com

메타 코딩 유튜브

https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9

 

메타코딩

문의사항 : getinthere@naver.com 인스타그램 : https://www.instagram.com/meta4pm 깃헙 : https://github.com/codingspecialist 유료강좌 : https://www.easyupclass.com

www.youtube.com

 
반응형