RDB & NoSQL

참새·2023년 4월 6일
0

RDB(Relational Database)

  • 관계형 데이터베이스로 데이터를 테이블 형태로 구성하며 테이블 간의 관계를 이용하여 데이터를 저장하고 관리. 각 테이블은 행(row)과 열(column)로 구성되며 행은 레코드(record)라고도 불리며 각 레코드는 고유한 식별자인 기본키(primary key)로 구분.
  • SQL(Structured Query Language)을 사용하여 데이터를 검색하고 조작할 수 있으며 다양한 쿼리(Query)를 통해 원하는 데이터를 검색하고, 삽입(Insert), 수정(Update), 삭제(Delete) 등의 작업을 수행할 수 있다는 것을 의미.
  • 현대적인 애플리케이션에서 가장 많이 사용되는 데이터베이스 중 하나로 MySQL, Oracle, Microsoft SQL Server 등의 대표적인 상용 RDBMS(Relational Database Management System) 제품이 있으며, PostgreSQL, SQLite 등의 오픈소스 RDBMS도 있음.

NoSQL(Not only SQL)

  • "Not Only SQL" 또는 "Non-Relational" 데이터베이스를 의미. 기존의 관계형 데이터베이스(RDB)와는 달리, NoSQL은 스키마가 없거나 유연한 스키마를 가지며, 특정 언어나 플랫폼에 종속되지 않음.
  • 대량의 비정형 데이터(예: 로그, 소셜 미디어 데이터, 센서 데이터 등)는 RDB에서 처리하기 어렵거나 불가능한 경우가 많기 때문에 개발되었으며 수평적 확장이 용이하고 대부분 분산환경에서 동작하기 때문에 높은 가용성과 확장성을 가지고 있음.
  • 가장 대표적인 종류로 Document-Oriented Database, Key-Value Store, Column-Family Database, Graph Database 등이 있고 대표적인 제품으로는 MongoDB, Cassandra, Redis, HBase, Neo4j 등이 있음.

차이점

  • 데이터 모델

    RDB
    관계형 데이터 모델을 사용하여 데이터를 정형화된 형식의 테이블로 저장하고 각 테이블은 정해진 스키마를 가지고 있음.
    NoSQL
    Document, Key-Value, Column-Family, Graph 등 다양한 모델을 사용할 수 있으며, 스키마가 없거나 유연한 스키마를 가지고 있음.

  • 확장성

    RDB
    단일 서버의 성능을 높이는 방식인 수직적 확장(vertical scaling)만 가능.
    NoSQL
    수평적 확장(horizontal scaling)이 가능하며 여러 대의 서버를 이용하여 데이터를 분산 저장하고 처리할 수 있으며, 대규모 데이터 처리에 적합.

  • 일관성(Consistency)

    RDB
    ACID 트랜잭션을 지원하여 데이터 일관성을 보장.
    NoSQL
    일관성 모델이 다양함. Strong Consistency, Eventual Consistency 등의 모델을 지원하며, 분산 시스템에서는 Consistency, Availability, Partition Tolerance 중에서 두 가지만 선택할 수 있음.

  • 처리 속도

    RDB
    대체로 높은 처리 속도를 가지고 있지만 대량의 비정형 데이터 처리에는 적합하지 않음.
    NoSQL
    일반적으로 빠른 처리 속도를 가지고 있으며 대규모 비정형 데이터 처리에 적합.

  • 데이터 분산

    RDB
    분산 처리를 지원하지 않으며 수동적인 복제만 가능.
    NoSQL
    데이터 분산을 지원하며, 자동적인 복제 및 데이터 분배가 가능.

결론

  • RDB는 정형화된 데이터를 다루는 경우에 적합하며, NoSQL은 대규모의 비정형 데이터 처리와 분산환경에서의 대규모 확장이 필요한 경우에 적합.
  • RDB는 데이터 일관성과 안정성이 중요한 경우에 사용하며, NoSQL은 높은 처리 속도와 확장성이 필요한 경우에 사용.
profile
응애 나 아기 개발자

0개의 댓글