기술 스택을 정리하다 데이터 베이스 종류와 구조에대해 정리를 하고 가면 좋겠다고 생각했다. 현재 우리는 gameStartSet 정보를 인메모리 디비인 Redis를 사용하고 있는데, 멘토님은 RDB인 MySQL사용을 추천해 주셨다. 그 차이가 뭔지 정리해 보자.


1. RDB(Relational Database)

  • RDB는 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 관계형 데이터베이스
  • 대표적으로 Mysql, Oracle, PostgreSql 등이 가장 많이 알려진 RDB. 아래의 그림과 같은 구조를 나타낸다.

 

 

 

- 특징

 

  • 테이블(Table) 마다 스키마(Schema)를 정의해야 된다
    •  스키마
      데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것
      스키마 : 데이터베이스 : 테이블 = 평면도 : 집 : 방
  • 데이터 타입과 제약(Constraint)를 통해서 데이터의 정확성을 보장함
  • SQL 질의문을 통해 요청을 처리
  • 성능을 높이려며 하드웨어(H/W)를 고성능으로 교체해야 된다. (Scale Up)
  •  고성능 하드웨어는 가격이 비싸기 때문에, RDB의 성능을 높이거나 확장하기 어렵기 때문에 확장성에 좋지 않다.
  • 구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체
  • 이러한 관계를 나타내기 위해 외래 키(foreign key)라는 것을 사용
  • 이러한 테이블간의 관계에서 외래 키를 이용한 테이블 간 Join이 가능하다는 게 가장 큰 특징입니다.

 

DBMS database management system

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

 

RDBMS Relational Database Management System

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

 

 

2. NoSQL(Not only SQL)

  • 대표적으로 mongoDB, hBase, redies(key-value) 등이 있으며, mongoDB의 경우 문서(document)형 데이터베이스이다.
  • hBase 같은 경우는 빅데이터 처리를 한다고 하면 누구나 한번쯤은 들어봤을 법한 DB. 아래의 그림과 같은 구조를 나타낸다.

 

 

- 특징

 

  • RDB의 확장성 이슈를 해결하기 위해 나온 데이터베이스 모델
  • 분산 컴퓨팅 활용이 목적이고, 이것을 통해 비교적 저렴한 가격으로 DB 성능을 높일 수 있다. (Scale Out)
  • 여러 개의 테이블이 아닌, 큰 테이블 하나만을 사용
  • 가장 많이 쓰이는 NoSQL의 방식은 key-value방식으로 데이터를 관리한다
  • SQL 질의문을 사용하지 않는다.
  • Schema-less (구조 변경이 용이하고, 데이터 형식이 다양하며, 바꾸기 쉬우며, 정확성 보다는 데이터 양이 중요한 빅데이터(Big Data)에 사용
  • NoSQL에서는 RDBMS와는 달리 테이블 간 관계를 정의하지 않음
  • 데이터 테이블은 그냥 하나의 테이블이며 테이블 간의 관계를 정의하지 않아 일반적으로 테이블 간 Join도 불가능

 

3. In-Memory DB

  • In-Memory DB의 경우에는 NoSQL 방식에 속하는 데이터베이스 이며, key-value방식을 사용하고 있다. 아래와 같은 구조를 갖는다.

 

 

- 특징

 

  • Memory의 가격이 용량 대비, 충분히 낮아지면서 빠른 데이터베이스 성능을 위해서 등장했다.
  • 디스트(Disk) 대신 메모리(Memory)를 사용함으로써, I/O(input/output)의 성능을 높여준다.
  • 대표적으로 Redis 및 LMDB 등이 있다

RDB(관계형 데이터베이스) RDBMS(데이터베이스를 관리)로 생성하고 수정하고 관리한다.
SQL은 RDBMS를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이고,

NOSQL(비관계형 데이터베이스)는 RDB 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장방식.


[ 참고 자료 ]

 

https://im-designloper.tistory.com/67

 

[ DataBase ] RDB, RDBMS, SQL, NOSQL 간단 개념정리

데이터베이스 종류인 RDB, RDBMS, SQL, NOSQL에 대한 간단한 개념 정리!! 일단 자세한 설명전에 간단하게 용어들의 관계를 정의하자면 아래와 같습니다. 🅐RDB(관계형 데이터베이스)를 🅑RDBMS(데이터

im-designloper.tistory.com

https://toma0912.tistory.com/83

 

RDB, NoSQL, In-Memory DB 비교

안녕하세요. 오늘은 최근 많이 쓰이고 있는 데이터베이스 종류에 대해서 비교하는 포스팅을 하려고합니다. 대표적으로 분류하면 RDBMS, ORDBMS, NOSQL, NoSQL에 포함되어 있지만 In-Memory DB등이 있으며,

toma0912.tistory.com

 

'Coding > 기타' 카테고리의 다른 글

WebServer vs Was  (0) 2023.01.13
ChatGPT !! 엄청나다 !!  (0) 2023.01.10
HTTP 이해  (0) 2022.12.06
기술매니저님 추천 사이트 ( Spring 관련 )  (0) 2022.12.02
RESTful API 설계 가이드  (0) 2022.12.01

+ Recent posts