RDBMS VS NOSQL

배병일 ㅣ 2023. 8. 16. 21:31


RDBMS(Relational DataBase Management System)

 

RDBMS관계형 데이터베이스를 관리하는 시스템을 말한다.

 

MYSQL, ORACLE, SQL Server 등 이 전부 RDBMS 이다.

 

RDB를 사용해보면 알겠지만 

 

User Table
userId name age
1 배병일 24
2 홍길동 28

스키마에 맞는 테이블을 생성하고 그에 맞게 데이터를 정확히 입력해줘야 하는 걸 알 수 있다.

이 부분에서 우리는 고정된 ROW와 COLUMN으로 명확한 데이터 구조를 보장하며

데이터 중복 없이 저장이 가능하다는 걸 알 수 있다.

 

favoriteFood Table
Id userId foodName
1 2 apple
2 1 banana

각 데이터들마다 외래 키가 생성하여 관계 설정을 하면

JOIN문을 사용하여 다른 테이블의 데이터를 불러 올 수 있다.

 

 

해당 시스템은 서버가 커질 수록 JOIN문이 복잡해진다. 

 

이를 해결하기 위해 수직 확장(Scale Up)이 가능하다.

 

수직 확장(Scale Up)이란

단일 서버의 스펙을 업그레이드 시키는 것을 말한다.

 

확장이 비교적 간단하고 하나의 서버만을 관리하면 되므로

데이터 일관성 유지가 쉽고 그에 대한 비용이 발생하지 않는다.

하지만 서버의 스펙을 업그레이드 시키는 부분에 있어 큰 비용이 들어 갈 수 있고

하나의 서버로 운영되기 때문에 단일 장애점(Single Point of Failure, SPOF)을 갖게된다.

 

단일 장애점이란 시스템에서 문제가 발생하면 모든 시스템을 사용할 수 없는 구성요소를 의미한다. 즉, 장애에 치명적이다.

 

 

 


NOSQL(Not Only SQL)

 

RDBMS비관계형 데이터베이스를 관리하는 시스템을 말한다.

 

정의만 보더라도 RDB와 반대될 거라는 걸 예상 할 수 있다.

 

name age
배병일 24
홍길동 28

NOSQL의 경우 key, Value 형식으로 저장되며 
이렇게 유연한 데이터 구조를 가져 새로운 필드를 추가하는데 있어 자유롭다.

 

NOSQL의 경우 수평적 확장을 통한 샤딩 방법을 사용하는데 유용하다.

 

수평적 확장이란

운영중인 서버의 부품을 더 좋은 것으로 바꾸는 대신,

여러대의 서버를 추가로 설치하는 방식을 수평 확장 이라고 한다.

즉, 하나의 서버가 처리하는 일을 여러대의 서버가 처리하도록 만드는 것 이다.

 

하지만 여러 서버를 하나의 서버처럼 이용하기 위한 작업에 대해 추가 비용이 발생하고

기술적으로나 관리적으로 수직확장에 비해 까다롭다.

 

데이터 중복이 발생할 수 있고 명확한 데이터 구조를 보장하지 않는 부분이 단점이 될 수도 있다

'DBMS' 카테고리의 다른 글

DDL , DML , DCL  (0) 2024.02.15
Primary Key, Foreign Key  (0) 2023.09.23
RDBMS 정규화  (0) 2023.09.23