[데이터베이스] RDB, RDBMS, SQL, NoSQL 개념

용어들의 관계

  • RDB(관계형 데이터베이스)를 RDBMS(데이터베이스를 관리)로 생성하고 수정하고 관리한다.
  • SQL은 RDBMS를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.
  • NoSQL(비관계형 데이터베이스)은 RDB 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 방식이다.
  • RDBMS가 클라이언트/서버 환경에 맞는 데이터 저장 기술이라면, NoSQL은 클라우드 환경에 맞는 저장 기술이다.

RDB(Relational Database)

  • RDB는 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 데이터베이스이다.
  • SQL에 의해 저장되고 있으며 정해진 스키마에 따라 데이터를 저장할 수 있다.
    • 스키마: 데이터베이스에 저장되는 데이터 구조와 제약 조건을 정의한 것이다.
  • 구성된 테이블이 다른 테이블과 관계를 맺고 모여있는 집합체이다.
  • 이러한 관계를 나타내기 위해 외래 키(foreing key)라는 것을 사용한다.
  • 이러한 테이블간의 관계에서 외래 키를 이용한 테이블 간 조인(Join)이 가능하다는게 가장 큰 특징이다.

[회원 Table]

회원 번호(Primary Key) 회원 이름 휴대폰 번호
1111111 김희진 010-xxxx-xxxx
2222222 김또깡 010-yyyy-yyyy

[주문 Table]

주문 번호 (Primary Key) 주문 회원 번호 (foreign key) 주문 상품
20200207xxxxxxxx 1111111 컴퓨터
20200207yyyyyyy 2222222 키보드
20200207zzzzzzz 2222222 마우스

RDBMS(Relational Database Management System)

  • 사용자의 요구에 따라 정보를 생성해 RDB를 생성하고 수정하고 관리할 수 있는 소프트웨어이다.

SQL(Structured Query Language)

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

NoSQL(Not Only SQL)

  • SQL을 사용하지 않는 데이터베이스 관리 시스템을 지칭하는 단어이다.
  • RDB 형태의 관계형 데이터베이스가 아닌 다른 형태로 데이터를 저장한다.
  • NoSQL의 예시로는 MongoDB, DynamoDB 등이 있다.
  • NoSQL에서는 테이블 간 관계를 정의하지 않는다.
  • 데이터 테이블은 그냥 하나의 테이블이며, 테이블간의 관계를 정의하지 않아 일반적으로 테이블 간 조인도 불가능하다.
  • 데이터 일관성은 포기하되 비용을 고려하여 여러 대의 데이터에 분산하여 저장하는 스케일 아웃(Scale-Out)을 목표로 등장하였다.

NoSQL vs RDBMS

구분 NoSQL RDBMS
장단점 데이터 무결성, 정합성 보장하지 않음
비정형, 반정형 데이터 처리
데이터 무결성 보장(CA)
정규화된(정형) 데이터 처리
확장성 이슈, 분산환경 부적합
특징 약한 consistency
schema가 없거나 변경이 용이
JOIN
ACID
use case 대량 데이터 처리
빠른 성능 요구
중요한 트렌젝션처리(금융) 요구되는 경우

참조

0%