Been2 2020. 11. 11. 01:40
728x90

What is NoSQL?

 

NoSQL은 non SQL 또는 non relational이란 의미로 전통적인 관계형 데이터베이스가 아닌 다른 데이터 모델을 사용하는 데이터 베이스 입니다. NoSQL DB는 특정 데이터 모델에 대해 특정 목적에 맞추어 구축되는 DB로서 애플리케이션 구축을 위한 유연한 스키마를 갖추고 있습니다.

 

 

NoSQL 데이터베이스의 작동 방식

 

NoSQL 데이터베이스에서는 더욱 유연한 애플리케이션 구축을 위해 다양한 데이터 모델을 사용합니다.

이러한 데이터 베이스 유형은 큰 데이터 볼륨, 짧은 지연 시간등이 필요한 애플리케이션에 최적화 되어있으며 이는 전통적인 RDB의 데이터 일관성 제약 일부를 완화함으로써 이루어집니다.

 

SQL DB와 NoSQL DB의 차이를 스키마 모델 구축 사례를 통해 보겠습니다.

1. SQL DB :

SQL DB(Relation DB)에서는 레코드는 별도의 테이블에 보관되고 관계는 PK와 FK 제약조건으로 정의됩니다.

 관계형 모델은 정규화를 통해 중복성을 줄이고 저장에 최적화된 DB에서 테이블 사이 참조 무결성을 실현합니다.

 예시)

BOOK(ISBN, Book_title, Edition_no)

 Author(Author_id, name)

 Author-ISBN(Autor_id, ISBN)

 

2. NoSQL DB :

 Nosql 데이터베이스에서, 서적 레코드는 보통 JSON 문서로 저장됩니다. 이 모델에서, 데이터는 직관적 개발과 수평 확장성에 최적화 됩니다.

예시)

{"BOOK" : {

 

 

                  "title" : " Do it! C",

                  "ISBN" : "",

                   ...

              }

}

 

 

Why we should use NoSQL

 

NoSQL 데이터베이스는 유연성과 확장성을 비롯해 고성능등을 위해 구현된 데이터베이스입니다.

모바일, 웹이나 게이밍과 같은 다양한 현대적인 애플리케이션에 적합합니다.

 

  • 유연성 : NoSQL DB는 유연한 스키마를 제공하여 보다 빠르고 반복적인 개발을 가능하게 해줍니다. 이같은 유연한 데이터 모델은 NoSQL DB를 반정형 및 비정형 데이터에 이상적으로 만들어 줍니다.
  • 확장성 : NoSQL DB는 고가의 강력한 서버를 추가하는 대신 분산형 하드웨어 클러스터를 이용해 확장하도록 설계 되었습니다. 일부 클라우드 제공자들은 완전관리형 서비스로서 이런 운영 작업을 보이지 않게 처리합니다.
  • 고성능 : NoSQL DB는 특정 데이터 모델및 액세스 패턴에 대해 최적화되어 RDB를 통해 유사한 기능을 사용하려 할 때 보다 뛰어난 성능을 얻게 해줍니다.
  • 고기능성 : NoSQL DB는 각 데이터 모델에 맞춰 특별히 구축된 뛰어난 기능의 API와 데이터 유형을 제공합니다.

NoSQL DB Models

 

  • Column-based
  • Key-Value
  • Document-oriented
  • Graph

 

 

출처 : aws.amazon.com/ko/nosql/

728x90