DataBase : NoSQL과 RDBMS

ESH'S VELOG·2023년 8월 16일
0
post-thumbnail

오늘은 백엔드 지식 중 중요한 부분 중 하나인 database를 얘기해보려 한다.

백엔드는 database를 다루는 분야라고 해도 과언이 아닐 정도로 database는 중요하다.

RAM과 하드디스크를 일단은 제외하고 말해보려고 한다.
위 부분은 로컬에 저장되는 시스템으로 휘발성이 크고 시스템적으로 적합하지 않다.

따라서 database를 다뤄야 하는 부분이 점점 커지며 database management system(DBMS)이 나왔다.

종류로는 다음과 같다.

  1. 관계형 데이터베이스(Relational Database Service, RDS)
  2. 비관계형 데이터베이스(NoSQL)

둘의 특징을 설명하자면
관계형 데이터베이스는 데이터의 일관성을 유지하고 엄격하게 체크하고 관리하는 구조를 보장한다.
예를 들면 은행어플을 들 수가있다. 은행어플에 저장되는 유저정보와 계좌정보는 계좌이체할 시 오고가는 데이터들의 무결성을 체크하고 하나라도 적용이 되지 않거나 오류가 난다면 계좌이체가 불가능하게 해야한다. 이런 상황에서는 관계형 데이터 베이스를 사용하는 것이 적합하다.
관계형 데이터베이스의 가장 큰 특징중 하나가 트랜잭션(transaction)인데 트랜잭션은 데이터의 처리를 직렬적으로 처리하여 하나가 완료되어야만 그 다음으로 넘어갈 수 있는 특징이있다.
정규화를 해야하는 작업도 필요하다.

장점

  • 명확하게 정의된 스키마, 데이터의 무결성 보장

단점

  • 복잡한 관계설정으로 인해 복잡한 쿼리문으로 데이터를 읽어올 시 속도가 느릴 수 있음
  • 데이터의 스키마를 한 번 결정 후 나중에 변경하기 어려움

**트랜잭션 :
데이터의 상태를 변화시키기 위한 논리적인 하나의 작업 단위이다.

NoSQL은 그에비해 유연한 데이터구조를 가지고있다. 병렬적으로 수행하고 많은양의 데이터를 빠르게 처리할 수 있다. 스키마와 관계설정을 가지지 않아 데이터의 무결성은 떨어지나 속도와 성능은 빠르다.
따라서 NoSQL은 데이터를 거의 수정할 일이 없고 읽기를 자주하는 경우에 더 적합하다. 적용 사례는 빅데이터같이 대량의 정보를 분류하는 곳에서 사용한다.

장점

  • 유연하고 데이터를 읽어오는 속도가 빠름

단점

  • 데이터가 중복될 수 있고 데이터의 일관성이 유지되지 않을 수 있다.

표로 정리하면 다음과 같다.

profile
Backend Developer - Typescript, Javascript 를 공부합니다.

1개의 댓글

comment-user-thumbnail
2023년 8월 16일

큰 도움이 되었습니다, 감사합니다.

답글 달기