인공지능 개발자 양성 과정

[0428] NoSQL - 몽고DB 다루기

AI gina 2022. 5. 8. 06:16

1. 몽고DB 특징

- 문서 모델이다
  : 속성의 값은 숫자, 문자열, 날짜와 같은 데이터 타입이나
   문서도 가능하다.
- jason 구조 형태 (key-value로 구성되어 있다.)
- 스키마 X
- 구조가 없어서, 별도 구조 정의할 수 있다.
- 한 컬랙션(=테이블)에 64개까지 인텍스 생성 가능.
- 빅데이터에서 가장 필요한 복제환경 구성 가능, 분산 저장 환경 가능해서
  확장성 좋지만, 무결성, 정합성은 보장하지 

2. 질의어
         MySQL / MongoDB 비교
설명
create:    
read :       $        / find 
                         aggregate
update :  update   / update
delete : delete from / delete one, delete many


3. 데이터 자료형
- MongoDB는 UTF-8 형식만 저장 가능.

4. Document
 검색::: find() 함수


' ' 작은 따옴표 R에서 붙여줘야 함
" " 문자형 묶어줌
===============================================
R에서 NoSQL 쿼리 활용 방법
- MongoDB 불러오는 2가지 패키지 있음

===============================================
NoSQL 데이터베이스 다루기

- 관계형 데이터 베이스 처리가 어려울 경우
  NoSQL은  데이터가 분산된 형태로 저장되더라도 마치 한 논리 데이터베이스 인 것처럼
  접근할 수 있으므로 데이터베이스 관리 복잡성에 새로운 레이어가 추가됨.
- 빅데이터 분석 및 실시간 애플리케이션에서 나타나는 놀라운 성능으로 이전보다 대중화됨.
- 가용성, 확장성, 유연성, 고성능을 위해 설계함. 

1. NoSQL 데이터베이스로 작업하기
- MongoDB를 사용하여 저장하는 경우 각 상품은 문서(도큐먼트)로 저장됨
- 이상품의 모든 고객 의견은 문서 필드로 배열에 저장됨
- 데이터를 좀 더 쉽게 쿼리할 수 있고, 수월하게 데이터베이스를 많은 서버에 배포할 수 있음
- MongoDB는 문서 중심의 데이터 저장 방법을 제공하는 인기 있는 비관계형 데이터베이스임
- 각 제품을 한 컬렉션 안에 있는 문서임
- 각 제품 문서에는 제품 정보가 들어 있는 필드가 있음
- 고객 의견을 담고 있는 배열이 한 필드로 존재함
- 모든 의견은 일종의 하위 문서고, 각 논리 항목은 각자의 논리 형식에 따라 저장할 수 있음


인덱스 생성 및 제거하기
- 인덱싱 순서 : 인덱스 만들고 데이터 넣으면 성능저하.  데이터가 많을 경우 인덱싱작업에 시간 많이 걸림.
  -> 인덱싱 붙일 경우, 전체 데이터 중에 유니크한 값이 20% 미만. 그 이상일 경우 성능저하 우려.