1. RDBMS
- Relational DataBase Management System
- 관계형 데이터베이스 시스템
- 트랜잭션 처리 가능
- MySQL, Oracle, MS-SQL
2. NoSQL
- 대용량의 데이터를 분산 처리하는 데이터베이스 시스템
- 오토 샤딩 (Auto Sharding) 기능으로 분산처리가 가능
- Mongo DB, AWS DynamoDB, Firebase Firestore
3. RDB 와 NoSQL의 차이점
- RDB는 스키마를 미리 정의 해야 한다(테이블 생성문을 사용하여 스키마를 정의)
- NoSQL은 스키마 프리(free) 이므로 미리 테이블 생성 할 필요가 없다. 또한 오토 샤딩(Auto Sharding) 기능이 있어서, 대용량의 데이터를 자동으로 분산 처리한다
- RDB는 비슷한 기능으로 클러스터링이 있지만 설정이 복잡하다
- 마지막으로 RDB는 트랜잭션 (Transaction) 처리가 가능하여 중요한 데이터를 저장하는데 사용하고, NoSQL은 트랜잭션이 보장되지 않기 때문에 데이터의 양과 속도가 중요할때 사용한다
4. 세가지 관점에서의 RDBMS와 NoSQL
- 스키마(Schema)
- 오토 샤딩(Auto Sharding)
- 트랜잭션(Transaction)
5. 트랜잭션의 처리 예시
- 트랜잭션을 시작하고, 세이브포인트 a를 설정한다
- 그 다음 인서트문으로 데이터 1개를 넣는다
- 세이브포인트 b를 설정하고, 샐러리를 900에서 1000으로 업데이트 한다
- 이 상태에서 b 로 롤백하면 b 이후에 수행된 SQL문은 전부 취소된다(따라서 b 이후에 수행한, 업데이트문은 취소되므로 샐러리는 900으로 돌아간다)
- 이상태에서 a 로 롤백하면 a 이후에 수행한 인서트문도 취소된다(따라서 테이블에는 아무것도 들어가 있지 않은 상태가 된다)
'IT' 카테고리의 다른 글
자바스크립트(JavaScript) - Hoisting, let, const, Dynamic Typing (0) | 2020.10.12 |
---|---|
VCS(Version Control System) - Git (0) | 2020.10.06 |
On-Premise / Cloud Services (0) | 2020.09.29 |
자바의 클래스와 객체 Class/Object / Instance (0) | 2020.09.29 |
Data Structure(JAVA Collections) Stack, Queue ... (0) | 2020.09.25 |