RDB(Relational) vs NoSQL(Non-Relational)

2DH·2023년 7월 25일
0
post-thumbnail

변역 및 정리 - MongoDB Document : NoSQL vs Relational Databases

Summary

  • Relational Database로 잘알려진 SQL DataBase는 Table 기반으로 한 고정적, 사전 스키마 정의가 꼭 필요한 구조이다.
  • No SQL 또는 Non Relational Database는 문서 기반, 그래프, Key-Value, Wide-Column 구조를 가진 DataBase를 칭한다.
    • No SQL은 사전 스키마 정의가 필요 없다.
    • 그렇기에 자유롭게 “unstructed data” 들을 사용하고 다를 수 있다.
  • Relational Database 는 수직 확장(Vertically Scalable) 으로 성능을 향상 시키지만, 비용이 보통 많이 비싸다.
  • 반면 No SQL은 수평 확장(Horizontal Scaling)을 통해 성능 향상을 이뤄 더욱 비용적인 측면에서 효과적이다.

1. History of Relational Databases (RDBMS) and NoSQL


RDMBS는 40년 이상 사용되어 왔다. 간단하고 정적인 데이터를 관리하는 시기에는 잘 작동해왔다. 하지만 현대사회와 같이 기술과 대량의 데이터가 발전함에 따라 전통 DataBase는 빠르게 확장하는 데이터 용량과 복잡한 데이터 형태를 다루기엔 역부족이고 적합하지 않았다. 최근 10년간 NoSql이 더 인기가 많은 이유는 유연하고, 비용 효과적인 면들이 전통 SQL Database를 대체할만 하였다.

2. Data Models and Schema


NoSQL은 사전 스키마 설정이 필요 하지 않다. 즉, App을 개발할때 스키마를 먼저 설정할 필요 없이 개발이 가능하다. 등등, 나머지 내용은 비슷함.

3. Data Structure


RDBMS는 테이블 기반이다. 하지만 NoSQL은 문서 기반, 그래프, Key-Value, Wide-Column 구조등 다양한 구조를 가진다. RDBMS는 완벽하게 정리된 구조와 관계를 가질때만 생성이 가능하다. 요즘은 모든 데이터가 복잡하고 관계를 알수 없다. No SQL은 복잡하고 비정형화된 데이터(사진, 미디어 포스트, 비디오, 이메일 등)을 다루기 위해 설계되었다.

4. Scaling


RDB는 수직확장이 가능하지만 보통은 비싸다. 더 비싼 서버, 스토리지등을 구매해야한다, 하지만 No SQL은 보다 저렴한 비용으로 확장이 가능하다. 동급 Machine들을 병렬로 연결하여 확장.

5. Common NoSQL vs Relational Database (aka SQL) Questions


Is NoSQL better than SQL?

  • 개인적으로 Mongo 에서 만든 문서라 No SQL 장점만 표현한걸로 보임
  • 위의 장점들을 나열
    • 자유로운 스키마, 확장 비용, 개발자의 선호, 자유로운 형식에 따른 Application 개발의 용이 등

6. What is difference between NoSQL and SQL Databases


  • TLDR
    • NoSQL은 2000년대 개발
    • 확장성, 빠른 쿼리, Application 잦은 변화에 대응, 더욱 간편한 개발용이성 등에 초점
    • 하지만 RDB는 1970년대에 개발되었으며, 중복데이터 제거를 초점을하고 있다.
      이러한 것들은 개발속도를 저해한다.

다른 내용들은 위에 설명한 내용들을 간략하게 정리한 정도로 파악하면 된다.

7. RDMS와 NoSQL은 각각 언제 사용해야할까?


  • RDBMS : 데이터 구조가 확실하고, 잦은 변경이 없는 비즈니스 시스템에 적합하다. ACID가 필수적으로 지켜져야할 업무에 사용.
  • NoSQL : 구조가 다양하여 타입에 상관없이 저장되어아 할 경우에 사용, 시스템이 확장에 용이하고 비용적인 측면에서도 상대적 저렴한 확장이 필요한 시스템에서 사용.
profile
Becoming the Data Engineer

0개의 댓글