RDBMS vs NoSQL
2020. 10. 5. 11:08ㆍAndroid
728x90
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) 입니다. 따라서 미리 테이블 생성 할 필요가 없습니다.
- 두번째로 NoSQL은 오토 샤딩 기능이 있어서 대용량의 데이터를 자동으로 분산 처리합니다.
- RDB는 비슷한 기능으로 클러스터링이 있지만 설정이 복잡합니다.
- 마지막으로 RDB는 트랜잭션(Transaction) 처리가 가능하여 중요한 데이터를 저장하는데 사용합니다.
- 하지만 NoSQL은 트랜잭션이 보장되지 않기 때문에 데이터의 양과 속도가 중요할 때 사용합니다.
4. 세가지 관점에서의 RDBMS 와 NoSQL
- 스키마
- 오토 샤딩
- 트랜잭션
5. 트랜잭션 처리 예
- 트랜젝션을 시작하고 세이브포인트 a를 설정했다.
- 그리고나서 인서트문으로 데이터 1개를 넣어줬다.
- 세이브포인트 b를 설정하고 샐러리를 900에서 1000으로 업데이트 했다.
- 이 상태에서 b로 롤백하면 b 이후에 수행된 SQL 문은 전부취소된다.
- 따라서 b 이후에 수행한 업데이트문은 취소되므로, 샐러리는 900으로 돌아간다.
- 이 상태에서 a 로 롤백하면 a 이후에 수행한 인서트문도 취소된다.
- 따라서 테이블에는 아무것도 들어가 있지 않은 상태로 된다.
728x90
'Android' 카테고리의 다른 글
자바스크립트 Scope (0) | 2020.10.12 |
---|---|
VCS (Version Control System) - Git / Github (0) | 2020.10.06 |
On- Premise 와 Cloud Services (0) | 2020.09.29 |
자바 클래스와 객체(Class, Object / Instance) (0) | 2020.09.28 |
Data Structure (JAVA Collections) (0) | 2020.09.25 |