상세 컨텐츠

본문 제목

SQL, RDBMS vs NoSQL 공부

AWS/Storage

by 데이터 개발자 2024. 8. 19. 09:21

본문

AWS Storage를 공부하려고 보니 Database의 RDB와 NoSQL을 또 살펴보게 됐다.

해당 주제는 내가 신입 사원 면접을 준비하는 과정에서 공부했던 내용인데 결국 또 공부하게 될 만큼 굉장히 중요한 주제라고 생각한다.

 

Database의 중요한 부분 중 하나로 하나씩 알아보자

 

SQL, RDBMS

  • 관계형 데이터베이스라고 불린다
  • 데이터를 Column, Row로 구성된 테이블 형식으로 저장한다
    • Colume : 데이터 속성, Row : 데이터 값
  • Transaction 을 보장하고 엄격한 스키마 관리로 명확한 데이터 구조를 보장한다
  • 데이터 무결성이 중요한 시스템에 용이하다 (높은 수준의 ACID)
  • Scale up (Vertical Scaling) / Horizontal scaling = reading capacity
  • Join, Aggregation 등 복잡한 쿼리도 빠르게 처리한다
  • 전통적인 데이터베이스 구조로 EC2에서 접근하는 RDB를 구축하여 애플리케이션을 운영한다

 

 

 

 

NoSQL

  • 비관계형 데이터베이스로 자유로운 형식이다.
    • Key-Value Database
    • Document Database
    • Graph Database
  • 엄격하지 않은 스키마로 자유로운 데이터 구조를 가진다
  • 일부 ACID를 지원한다.
  • Scale up & out (Vertical Scaling, Horizontal scaling) => 확장성이 굉장히 좋다
  • Join과 같은 복잡한 Query를 지원하지 않거나 지원하더라도 비효율적이다

 

확장성이 굉장히 좋다

 

 

 

SQL, NoSQL 용어차이

 

 

 

어떤 DB를 선택해야할까?

 

각 비즈니스 요구사항에 맞게 선택하면 좋다. 

NoSQL의 경우 유연한 스키마로 빠르게 개발과 확장성 높은 데이터베이스로 선택이 가능하다.

하지만 트랜잭션과 같은 무결성이 중요한 데이터 처리의 경우 RDBMS를 선택하는 것이 좋다.

 

데이터엔지니어링 관점에서는 대용량의 데이터, 많은 양의 데이터를 분석하고 싶다면 결국 별도의 저장소에 저장을 해서 데이터를 분석하는 환경을 구축하는게 좋다고 생각한다.

서비스 DB에 부하를 줄이고 별도의 분석 layer를 구축함으로써 더 효율적인 데이터분석 환경을 구축할 수 있다고 생각한다.

 

 

'AWS > Storage' 카테고리의 다른 글

AWS Redshift 란 무엇인가  (0) 2024.08.20
AWS S3 Object Lambda 공부하기  (1) 2024.08.18
AWS EBS, AWS EFS 공부하기 (feat. S3)  (0) 2024.08.18
AWS S3 Storage Class  (0) 2024.08.18
AWS S3 Versions, Lifecycle  (0) 2024.08.18

관련글 더보기