Post

DBMS vs. NoSQL

DBMS vs. NoSQL

DBMS

DBMS

데이터베이스는 모든 소프트웨어 애플리케이션에 필수적인 데이터 저장소이다. 예를 들어 누군가 웹 검색을 수행하거나, 계정에 로그인하거나, 트랜잭션을 완료할 때마다 데이터베이스 시스템은 추후 액세스할 수 있도록 해당 정보를 저장한다.

  • DBMS는 DataBase Management System의 약자로 데이터베이스를 관리하는 시스템이다.
  • 사용자와 DB사이에서 사용자의 요구에 따라 데이터를 생성해주고, DB를 관리해주는 소프트웨어이다.
  • DBMS는 데이터를 계층 또는 탐색 형식으로 저장한다. 파일 시스템을 사용해 저장하며, 따라서 테이블 간에는 아무런 관계가 없다.
  • 데이터에 대한 많은 보안을 제공하지 않으며 정규화를 수행할 수 없어 데이터는 높은 중복성을 가질 수 있다.

RDB(Relational DataBase)

  • 우선 RDB는 관계형 데이터 모델에 기초를 둔 데이터 베이스이다.
  • 모든 데이터를 2차원의 테이블 형태로 표현한다.

RDBMS(Relational DataBase Management System)

DBMS의 한 유형이다.

관계형 데이터베이스는 모든 데이터를 하나의 큰 저장소에 저장하는 대신 테이블 단위로 나누어 저장한다. 관계형 데이터베이스의 구조는 쿼리 속도 향상을 위해 최적화된 물리적 파일들로 구성되어 있다. 데이터 테이블, 뷰, 행, 열 등의 객체들이 포함된 논리적 데이터 모델은 유연한 프로그래밍 환경을 제공한다. 사용자는 일대일, 일대다, 고유, 필수 또는 선택 사항, 그리고 서로 다른 테이블 간의 ‘포인터’ 등 서로 다른 데이터 필드 간의 관계를 제어하는 규칙을 직접 설계한다. 규칙 설계가 완료되면 관계형 데이터베이스가 설정된 규칙을 적용한다. 잘 설계한 규칙은 일관성이 없거나, 중복되거나, 동떨어지거나, 오래되었거나, 누락된 데이터는 사용자의 애플리케이션에 아예 표시되지 않게 만들어 준다.

  • RDB를 생성하고 수정하고 관리할 수 있는 소프트웨어이다.
  • RDBMS의 테이블은 서로 연관되어 있어 일반 DBMS보다 효율적으로 데이터를 저장, 구성 및 관리할 수 있다.
  • 정규화를 통해 데이터의 중복성을 최소화하여 트랜잭션을 수행하는 것이 더 쉽다.
  • 데이터의 원자성, 일관성, 격리 및 내구성을 유지하며 데이터 무결성을 높인다.
  • MSSQL, MySQL , Oracle이 RDBMS의 몇 가지 예이다.
  • 모든 데이터를 2차원 테이블 형태로 표현한다.
  • 장점 : 스키마에 맞춰 데이터를 관리하기 때문에 데이터의 정합성을 보장할 수 있다.
  • 단점 : 시스템이 커질 수록 쿼리가 복잡해지고 성능이 저하되며 Scale-out이 어렵다(Scale-up만 가능)

NoSQL(Not Only SQL)

RDBMS와 반대로 데이터간의 관계를 정의하지 않고, 스키마가 없어 좀 더 자유롭게 데이터를 관리할 수 있으며, 컬렉션이라는 형태로 데이터를 관리합니다.

  • 장점 : 스키마 없이 Key-Value 형태로 데이터를 관리해 자유롭게 데이터를 관리할 수 있다. 데이터 분산이 용이하여 성능 향상을 위한 scale-up 뿐만아닌 scale-out 또한 가능하다.
  • 단점 : 데이터 중복이 발생할 수 있고, 중복된 데이터가 변경될 경우 수정을 모든 컬렉션에서 수행해야 한다. 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않아 데이터 구조 결정이 어려울 수 있다.
  • MongoDB
This post is licensed under CC BY 4.0 by the author.