IT

RDBMS 와 NoSQL

jeonganWkd 2020. 10. 5. 12:07

1. RDBMS

  • Relational DataBase Management System
  • 관계형 데이터베이스 시스템
  • 트랜잭션 처리 가능
  • MySQL, Oracle, MS-SQL

2. NoSQL

  • 대용량의 데이터를 분산 처리하는 데이터베이스 시스템
  • 오토 샤딩 (Auto Sharding) 기능으로 분산처리가 가능
  • Mongo DB, AWS DynamoDB, Firebase Firestore

 

3. RDB 와 NoSQL의 차이점

  • RDB는 스키마를 미리 정의 해야 한다(테이블 생성문을 사용하여 스키마를 정의)

Schema

  • NoSQL은 스키마 프리(free) 이므로 미리 테이블 생성 할 필요가 없다. 또한 오토 샤딩(Auto Sharding) 기능이 있어서, 대용량의 데이터를 자동으로 분산 처리한다
  • RDB는 비슷한 기능으로 클러스터링이 있지만 설정이 복잡하다

Sharding

  • 마지막으로 RDB는 트랜잭션 (Transaction) 처리가 가능하여 중요한 데이터를 저장하는데 사용하고, NoSQL은 트랜잭션이 보장되지 않기 때문에 데이터의 양과 속도가 중요할때 사용한다

Transaction

4. 세가지 관점에서의 RDBMS와 NoSQL

  • 스키마(Schema)
  • 오토 샤딩(Auto Sharding)
  • 트랜잭션(Transaction)

RDBMS NoSQL 장단점

5. 트랜잭션의 처리 예시

  • 트랜잭션을 시작하고, 세이브포인트 a를 설정한다
  • 그 다음 인서트문으로 데이터 1개를 넣는다

Transaction

  • 세이브포인트 b를 설정하고, 샐러리를 900에서 1000으로 업데이트 한다

  • 이 상태에서 b 로 롤백하면 b 이후에 수행된 SQL문은 전부 취소된다(따라서 b 이후에 수행한, 업데이트문은 취소되므로 샐러리는 900으로 돌아간다)

  • 이상태에서 a 로 롤백하면 a 이후에 수행한 인서트문도 취소된다(따라서 테이블에는 아무것도 들어가 있지 않은 상태가 된다)