mun dev

[DB] RDBMS와 NoSQL 본문

DB

[DB] RDBMS와 NoSQL

mndev 2023. 4. 21. 14:53

DBMS(Database Management System)


사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어

 

RDBMS란?


RDBMS는 관계형 데이터베이스 관리 시스템을 의미합니다. 표준화된 쿼리언어를 사용하여 데이터를 조작하고, 데이터의 일관성, 무결성, 보안, 안전성(ACID)의 특성을 갖추고 있다. 주로 정형화된 데이터를 다루는 경우 사용됩니다.

 

 

전통적인 데이터베이스 시스템으로는 Oracle, MySQL, SQL Server, PostgreSQL등이 있습니다.

 

 

직원 정보 테이블 예

테이블은 employee_id, first_name, last_name, hire_date, salary 열로 구성되어 있습니다. 각 행은 특정 직원에 대한 정보를 나타내며, employee_id 열은 해당 직원의 고유 식별자 입니다.

employee_id(Primary key)  first_name last_name hire_date salary
1 John Smith 2015-01-01 50000
2 Jane Doe 2016-03-15 60000
3 Bob Johnson 2017-05-20 55000

관계형 데이터베이스(RDMBS)는 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체로도 이해할 수 있습니다.

 

 

NoSQL(Not Only SQL)


테이블이나 스키마와 같은 고정된 구조를 갖지 않고, 다양한 형태의 데이터를 유연하게 저장하고 관리한다. NoSQL은 고가용성, 높은 성능등을 강조하며, 대용량의 비 정형화된 데이터를 다루는 경우 주로 사용된다. 데이터의 변화나 확장에 빠르게 대응할 수 있다는 특징이 있습니다.

 

 

데이터 테이블은 그냥 하나의 테이블이며 테이블 간의 관계를 정의하지 않아 일반적으로 테이블 간 Join도 불가능합니다.

NoSQL 데이터베이스는 MongoDB, Cassandra, Redis, Couchbase, Elasticsearch등이 있습니다.

 

RDBMS

장점

  • 데이터의 일관성과 무결성을 보장하므로 트랜잭션 처리와 복잡한 데이터 관리에 적합합니다.
  • 테이블 간의 관계를 통해 데이터 모델링하므로 데이터의 구조와 관계가 명확하게 정의되어 있습니다.

단점

  • 데이터 모델이 변경되는 경우 스키마를 수정해야 합니다.
  • 대량의 데이터 처리나 고가용성을 확보하는데 어려움이 있습니다.

 

 

NoSQL

장점

  • 수평적 확장에 강점이 있어 대용량 데이터를 처리하고 높은 트래픽을 다룰 수 있습니다.
  • 다양한 유형의 데이터를 저장하고 처리할 수 있습니다.

단점

  • NoSQL은 일관성을 포기하고 가용성과 분산성을 강조하는 경우가 많아 데이터 일관성이 떨어질 수 있습니다.
  • NoSQL은 관계형 데이터베이스의 SQL과 다른 쿼리언어를 사용하며, 다양한 쿼리를 지원하지 않는 경우가 있기에 복잡한 조인이나 집계연산을 처리하기에는 제한적일 수 있습니다.

 

 

RDBMS, NoSQL 언제 사용해야 될까요?

RDBMS는 정형화된 데이터를 다루고, 복잡한 트랜잭션 처리가 필요한 경우에 적합하며, NoSQL은 비정형화된 대용량의 데이터를 다루고, 확장성과 성능이 중요한 경우 적합하다.

데이터의 특성과 요구사항에 따라 RDBMS 또는 NoSQL중 적절한 데이터베이스 시스템을 선택하여 사용하는 것이 중요하다.