Database 복습 (4)

dosiri_·2021년 9월 27일
0

복습

목록 보기
8/14
post-thumbnail

0927

1. NoSQL의 특징 (Not Only SQL)

  • RDBMS 처럼 데이터 간의 관계를 정의하지 않음
  • 대용량 데이터를 구축하는데 특화되어 있음
  • 분산형 저장 구조
  • 고정되지 않은 데이터 스키마 구조(스키마를 따로 작성하지 않으며 데이터 타입도 특정하지 않음)
    => 빅데이터와 같은 비정형 데이터를 사용하는데 유리
  • 유연성, 확장성, 고성능, 고기능성
  • 관계형 데이터베이스에 비해 일관성은 낮음
  • 데이터를 행과 열로 구성하지 않고 collection 과 Json, Field로 구성
  • 기존 RDBMS의 한계를 극복하기 위한 데이터 저장소의 형태로 수평적 확장성을 가짐

2. MongoDB

  • 문서 지향 저장소를 제공하는 NoSQL 데이터베이스 시스템
  • NoSQL 중 인지도 1위
  • 스키마 제약이 없이 자유로움
  • BSON(Binary Json) 형태로 각 문서가 저장됨 ==> Javascript와 찰떡궁합
    => SQL을 이용한 query를 날릴필요 없음! 코드 훨씬 간결
  • 문서지향 데이터베이스로서 객체지향 프로그래밍과 잘 맞다

3. RDBMS와 MongoDB의 용어 차이

    [MySQL]				[MongoDB]
    
     database   			database
     table 				collection
     index		     		index
     row		 		JSON document
     column				JSON field
     join		     		embedding and linking
     primary key	   		_id field
     group by		   		aggregation

4. Mongogoose

  • Node Js와 mongoDB를 위한 ODM (Object Documnet Mapping) 라이브러리
  • Object는 Js의 객체 / Document는 mongoDB의 문서
  • 문서를 DB에서 조회할 때 Js 객체로 변환해주는 역할

5. MongoDB와 Express를 이용한 서버 통신 구축

1) atlas mongodb - 호스팅 서비스 like AWS rgb?

2) express --no-view mongodb_server

3) npm install

4) npm install mongoose

5) config폴더 만들고 안에 json파일 (MongoDB 연결 위함)

6) bin 폴더 내의 www 파일 수정 (MongoDB 연결 위함)

7) mongogoose를 이용하여 스키마 생성
=> 데이터가 작고 정형화 되어있을때는 스키마 있는게 더 편하니까!

8) models 폴더 생성 후 파일을 만들어 스키마 생성

9) router 작성

10) Postman으로 통신해보니 MongoDB에 데이터 저장이 된다!

0개의 댓글