[DataBase] NoSQL의 특징

2024. 4. 27. 23:16·개발지식

목차

    NoSQL이란 

    NoSQL은 = "Not Only SQL"의 약자로 SQL만을 사용하지 않는 데이터베이스 관리 시스템(DBMS)을 뜻한다.

    NoSQL은 비관계형 데이터베이스 유형을 가리키며  데이터 베이스 언어마다 관습화된 API, 선언적 구조의 쿼리 언어, 쿼리별 언어를 사용하며 질의한다.
    이 데이터베이스는 관계형 테이블과는 다른 형식으로 데이터를 구성한다. 데이터를 구성하는 방법으로는 리스트,  해시 테이블, 트리, 그래프 등의 다양한 방법이 있고 각각의 방식은 명확한 장단점이 존재한다.

     

    NoSQL의 장점

    1. 스키마 유연성: NoSQL은 스키마가 동적이거나 덜 제한적이어서 데이터 모델을 쉽게 조정하고 변경할 수 있다.

     

    2. 분산처리: NoSQL은 대부분 분산 데이터베이스로 설계되어 있어 대량의 데이터를 여러 서버에 분산하여 처리할 수 있다.

     

    3. 높은 가용성과 확장성: NoSQL은 높은 가용성과 확장성을 제공하여 시스템이 확장될 때 성능이 떨어지지 않도록 한다.

     

    4. 다양한 데이터 모델: NoSQL은 다양한 데이터 모델을 지원한다. 주요 모델로는 문서 지향, 키-값, 와이드 컬럼, 그래프 등이 있다.

    NoSQL의 단점

    1. 낮은 일관성
    2. Key에 대한 입출력만 지원
    3. 데이터에 대한 규격화가 되어 있지 않음
    4. 데이터가 여러 컬렉션에 있을 경우 속도가 느림
    5. 데이터 중복에 따른 수정 작업의 번거로움

    NoSQL의 주요 유형

    1. Key-Value
      Redis, AWS DynamoDB, Riak
    2. Document
      MongoDB, Azure Cosmose DB, Couch DB, Mark Login, OrientDB
    3. Graph
      Neo4 j, Blazegraph, OrientDB
    4. Wide-Column
      Cassandra, HBase

     

    1. 키-값 데이터베이스(Key-Value Stores): Redis, DynamoDB, Riak

    - 키와 값의 쌍으로 데이터를 저장하는 방식

    - 주로 캐시나 설정 데이터와 같이 단순한 데이터에 사용

     

    2. 문서 지향 데이터베이스(Document Stores): MongoDB, Azure Cosmose DB, Couch DB, Mark Login, OrientDB

    - NoSQL에서 가장 많이 사용되는 타입

    - 여러 필드를 포함하고 있어 복잡한 구조의 데이터를 표현 가능

     

    3. 그래프 데이터베이스(Graph Databases): Neo4j, Amazon Neptune, Blazegraph, OrientDB

    - 계형 데이터를 표현하기 위해 그래프 구조를 사용하는 데이터 모델

    - Node와 Edge로 구성

     

    4. 와이드 컬럼 데이터베이스(Wide-Column Stores): Cassandra, HBase

    - 열 기반의 데이터 모델을 사용하여 테이블을 열의 집합으로 표현

    - 각 로우는 여러 가지 컬럼데이터를 가질 수 있다.

     

    NoSQL 과 RDBMS의 차이

     

      NoSQL SQL
    데이터 중복
    데이터 중복 O
    (데이터의 최신을 보장X)
    데이터 중복 X
    (데이터의 무결성 보장)
    확장성 수직적, 수평적 확장 가능
    대체로 수직적 확장
    (수평적 확장이 불가능한것은 아님)
    구조 
    스키마가 없음
    (관계형 모델 사용X)
    명확하게 정의된 스키마 형식
    (관계형 모델 사용)
    사용
    읽기를 자주 하지만,
    데이터 변경이 없는 경우
    데이터가 자주 변경되는 경우

    '개발지식' 카테고리의 다른 글

    NCP를 이용한 서버 관리  (0) 2024.09.09
    Web에 대한 이해도 높이기  (0) 2024.05.28
    '개발지식' 카테고리의 다른 글
    • NCP를 이용한 서버 관리
    • Web에 대한 이해도 높이기
    Gomnonix
    Gomnonix
    • Gomnonix
      재주곰
      Gomnonix
    • 전체
      오늘
      어제
      • 분류 전체보기
        • aws
        • computer sciernce
        • 개발지식
        • 프로젝트
    • 블로그 메뉴

      • 홈
      • 태그
      • 방명록
    • 링크

    • 공지사항

    • 인기 글

    • 태그

      -
      AWS
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    Gomnonix
    [DataBase] NoSQL의 특징
    상단으로

    티스토리툴바