👉 강의: 인프런 - [NoSQL DB (몽고DB/mongodb) 기본부터 파이썬/데이터분석 활용까지!]
👉 발제자: 노연수 (2021.03.20)
- 기존: 관계형 데이터베이스 (RDBMS)
- SQL 언어로 사용 가능
- SQL 데이터베이스
- 빅데이터는 기존의 관계형 데이터베이스로 처리하기 어려운 부분 존재
- 빅데이터: NoSQL 데이터베이스 (Not only SQL, SQL보다 좀 더 기능이 많다!)
- SQL은 저장할 데이터의 규격을 미리 만들어야 한다 → 저장하고 싶은 데이터를 늘리고 싶을 때 규격을 새로 업데이트
- 이러한 RDBMS의 한계 극복을 위해 만들어진 새로운 형태의 데이터 저장소가 NoSQL
- 고정된 스키마 및 JOIN 존재 X
-
NoSQL은 빅데이터를 다루는 데에 있어 성능 면에서 개선이 있다
-
RDBS는 read를 주로 할 때는 성능이 나쁘지 않지만, write의 비중이 늘어나면 성능이 저하되거나 불안정
-
초당 데이터가 수십만개씩 쌓이는 서비스가 많아지는 경우(SNS, 온라인 서비스 등) NoSQL이 유리
-
NoSQL 데이터베이스는 각기 데이터베이스를 다루는 인터페이스가 다르다
- Key/Value Store
- Wide Column Store
- Document Store
- Graph Store
-
document db
- JSON 기반 데이터 관리
- JSON document = { "id":"01", "languange":"java", "edition": { "first": "1st", "second":"2nd", "third":"third" } }
-
mongoDB document 예)
{ "_id": ObjectId("5099803df3f42312312391"), "username": "davelee", "name": { first: "Dave", last: "Lee" } }
-
Database - Collection - Document
-
Database는 Collection의 집합
-
Collection은 Document의 집합
-
Collection은 RDBMS의 Table과 유사한 개념이나 Schema 정의 x
-
Collection에 JSON 형태의 Document를 넣는다
-
RDBMS: Database - Table - Data
→ 데이터베이스 안에 테이블이 있고, 각각의 테이블마다 데이터가 있으며, 테이블 간 관계가 있다.