RDB, RDBMS, SQL, NOSQL 간단 개념정리

JIYEON KIM·2023년 12월 20일
  • RDB(관계형 데이터베이스)를 RDBMS(데이터베이스를 관리)로 생성하고 수정하고 관리한다.
  • SQL은 RDBMS를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이고,
  • NOSQL(비관계형 데이터베이스)는 RDB 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장방식

RDMBS가 클라이언트/서버 환경에 맞는 데이터 저장기술이라면, NOSQL은 클라우드 환경에 맞는 저장기술

RDB(Relational Database)

RDB는 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 데이터베이스
구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체
이러한 관계를 나타내기 위해 외래 키(foreign key)라는 것을 사용
이러한 테이블간의 관계에서 외래 키를 이용한 테이블 간 조인이 가능하다는 게 가장 큰 특징이다.

DBMS(database management system)

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

장점

  • 구조화된 데이터를 저장할 수 있어 정확한 데이터 관리에 용이하다.
  • ACID(원자성, 일관성, 고립성, 지속성) 특성을 제공하여 데이터 일관성과 안정성을 보장한다.
  • 복잡한 쿼리와 데이터 Join이 필요한 경우에 유리하다.
  • 성숙한 기술이며, 다양한 데이터 모델링 기법과 최적화 기능을 제공한다.
  • 데이터 무결성을 보장하여 데이터 정합성을 유지할 수 있다.

단점

  • 수평적 확장(스케일 아웃)에 어려움이 있어서 대규모의 데이터 처리에 한계가 있다.
  • 스키마 변경이 어렵고, 유연성이 부족하다.
  • 대용량 데이터 처리, 분산 처리에 비효율적이다.
  • 데이터 모델 변경이 어렵고 복잡하다.

RDBMS(Relational Database Management System)

사용자의 요구에 따라 정보를 생성해 관계형 데이터베이스를 생성하고 수정하고 관리할 수 있는 소프트웨어

SQL(Structured Query Language)

데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이며 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안
SQL의 예시로는 MySQL, Oracle, DB2 등

스키마
데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것
스키마:데이터베이스:테이블 = 평면도:집:방

NoSQL(Not Only SQL)

SQL을 사용하지 않는 데이터베이스 관리 시스템을 지칭하는 단어
NoSQL이란(Not Only SQL)의 약자로 말 그대로 위에서 설명한 RDB 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장
NoSQL에서는 RDBMS와는 달리 테이블 간 관계를 정의하지 않음
데이터 테이블은 그냥 하나의 테이블이며 테이블 간의 관계를 정의하지 않아 일반적으로 테이블 간 Join도 불가능
NoSQL의 예시로는 mongoDB, redis 등

장점

  • 수평적 확장에 용이해서 대용량 데이터 처리와 분산 처리에 효율적이다.
  • 유연한 스키마로 인해 데이터 구조의 변경이 쉽다.
  • 비정형 데이터 처리에 유리하다.
  • 빠른 속도로 데이터를 처리할 수 있다.
  • 데이터 모델링이 간단하고, 데이터 저장에 최적화되어 있다.

단점

  • ACID 특성을 제공하지 않기 때문에 데이터 일관성과 안정성 보장이 어렵다.
  • 다양한 데이터 모델링 기법이 제공되지만, 관계형 데이터베이스에 비해 다루기 어렵다.
  • 분산 데이터베이스로서의 복잡한 구성과 운영이 필요하다.
  • 데이터 무결성을 보장하기 어렵다.

사용 시 고려사항

  • 데이터의 구조와 요구사항을 고려하여 RDB 또는 NoSQL을 선택한다.
  • 데이터의 일관성과 안정성이 중요하고, 복잡한 쿼리와 데이터 조인이 필요한 경우, RDB를 선택한다.
  • 대용량 데이터 처리와 분산 처리, 유연한 스키마 등이 요구되는 경우 NoSQL을 선택한다.
  • 데이터 모델링의 복잡성과 데이터 무결성을 고려하여 적합한 데이터베이스를 선택한다.
  • 현재 및 향후의 확장성과 성능 요구사항을 고려하여 데이터베이스를 선택한다.

예시와 사용법

예를 들어, 관계형 데이터베이스는 주로 정형화된 데이터를 저장하고 복잡한 쿼리 및 데이터 조인을 수행할 때 사용된다.
주문 관리 시스템과 같이 고객 정보, 주문 정보, 상품 정보 등을 관리하는 경우 RDB를 사용할 수 있다.

반면에, SNS나 로그 데이터와 같이 비정형 데이터를 다루는 경우, NoSQL 데이터베이스가 적합하다.
유연한 스키마 구조로 데이터를 저장하고, 대용량의 데이터 처리 및 분산 처리를 효율적으로 수행할 수 있다.

결론

  • RDB와 NoSQL은 각각 장단점을 가지고 있으며, 데이터의 구조와 요구사항에 따라 선택되어야 한다.
  • RDB는 정형화된 데이터와 복잡한 쿼리가 필요한 경우에 유리하며, NoSQL은 대용량 데이터 처리와 유연한 데이터 구조가 필요한 경우에 적합하다.
  • 적절한 데이터베이스 선택은 데이터 관리와 처리의 효율성을 결정하는 중요한 요소이다.
  • 데이터베이스에서 가장 많이 사용되는 방식이 관계형 데이터베이스(RDB) 방식이다.
  • 관계형 데이터베이스(RDB)는 엑셀 시트처럼 정해진 번호의 칸 안에 내용을 차곡차곡 쌓아 나가는 방식이다.
  • 관계형 데이터베이스(RDB)는 내용을 찾아 정렬하는 속도가 매우 빠른 편이다.
  • 대기업을 위한 Oracle이 유명하며, 가격 대비 효율로 MySQL이 그 뒤를 잇는다.
profile
안녕하세요. 개발을 공부하고 있습니다.

0개의 댓글