NoSQL 이해
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
1. NoSQL 이해¶
- Not only SQL
- RDBMS의 한계를 극복하기 위해 만들어진 새로운 형태의 데이터저장소
- RDBMS처럼 고정된 스키마 및 JOIN 이 존재하지 않음
- 스키마 변경? ALERT 등 필요 없음
1.1. Why NoSQL?¶
RDBMS를 기본으로 사용하지만,
초당 데이터가 수십만개씩 쌓이는 서비스가 많아지면서(쇼셜, 온라인 서비스등), NoSQL을 사용하는 경우가 많아지고 있음
경험적 수치
- 95% read, 5% write 경우는 RDBMS 가 성능이 나쁘지 않음
- 50% write > 인 경우 RDBMS는 성능 저하 또는 불안정
- NoSQL + Redis (In memory cache) 등을 고려하게 됨
- NoSQL 데이터베이스는 각 데이터베이스마다 기반으로 하는 데이터 모델이 다르므로, 데이터 모델별로 대표적인 데이터베이스를 알아둘 필요가 있음
- 각기 데이터베이스 다루는 인터페이스가 다름
- Key/Value Store
- Wide Column Store
- Document Store
- Graph Store
- 각기 데이터베이스 다루는 인터페이스가 다름
1.2. mongoDB 란?¶
- mongoDB는 document db
- JSON 기반의 Document 기반 데이터 관리
MongoDB Document 예) { "_id": ObjectId("5099803df3f42312312391"), "username": "davelee", "name": { first: "Dave", last: "Lee" } }
1.3. MongoDB 데이터 구조¶
- Database - Collection(table대신) - Document(low 대신에. column이라는 개념이 없다.)
- RDBMS의 table이 아니라, collection 에 JSON 형태의 Document를 넣습니다.
- Document 하나가 하나의 로우(레코드)임