NoSQL

TaeWoo Lee / Kris·2022년 1월 28일
0

NoSQL 소개

  • 비관계형 데이터베이스 기술을 아우르는 말
  • 관계형 데이터베이스(RDB) vs. NoSQL(비관계형 데이터베이스)
  • SQL과 NoSQL의 차이점
    • 데이터 저장(Storage)
      • 관계형 데이터베이스는 SQL을 이용해서 데이터를 테이블에 저장
      • 미리 작성된 스키마를 기반으로 정해진 형식에 맞게 데이터를 저장
      • NoSQL은 key-value, document, graph, wide-column 형식등의 방식으로 데이터를 저장
    • 스키마(Schema)
      • SQL을 사용하려면 형식이 고정된 스키마가 필요
      • NoSQL은 스키마의 형태가 보다 동적(행을 추가할 때 즉시 열을 함께 추가할 수 있고, 개별 속성에 대해서 모든 열에 대한 데이터를 반드시 입력하지 않아도 된다는 장점)
    • 쿼리(Querying)
      • 관계형 데이터베이스는 테이블의 형식과 테이블간의 관계에 맞춰서 데이터를 요청
      • 비관계형 데이터베이스의 쿼리는 데이터 그룹 자체를 조회하는 것에 초점 (구조화 되지 않은 쿼리 언어로도 데이터 요청이 가능)
    • 확장성(Scalability)
      • SQL 기반의 관계형 데이터베이스는 보통 수직적으로 확장
      • NoSQL로 구성된 데이터베이스는 수평적으로 확장
  • SQL 기반의 관계형 데이터베이스를 사용하는 케이스
    • 데이터베이스의 ACID 성질을 준수해야 하는 경우
    • 전자 상거래, 금융 서비스를 위한 소프트웨어 개발에서는 데이터베이스의 ACID 성질을 잘 준수하는 것이 필수 옵션
    • 소프트웨어에 사용되는 데이터가 구조적이고 일관적인 경우(높은 성능 적은 서버?)
  • NoSQL 기반의 데이터베이스를 사용하는 케이스
    • 데이터의 구조가 거의 또는 전혀 없는 대용량의 데이터를 저장
    • 클라우드 컴퓨팅 및 저장공간을 최대한 활용
    • 빠르게 서비스를 구축하고 데이터 구조를 자주 업데이트 하는 경우

MongoDB

  • 대표적인 NoSQL 의 종류
    • Key-Value 타입
    • 문서형(Document) 데이터베이스(JSON 유사 형식)
    • Wide-Column 데이터베이스
  • Document Databases
    • 문서들은 BSON 형태로 저장이 되고 정해진 틀이나 데이터 타입이 없음(자유롭게 문자, 숫자, 객체, 배열 등을 저장)
profile
일단 저지르자! 그리고 해결하자!

0개의 댓글