https://firebase.google.com/docs/database/rtdb-vs-firestore?hl=ko
❓ NoSql 데이터베이스란?
- 데이터 간의 관계를 정의하지 않는다.
- RDBMS는 데이터 관계를 외래키 등으로 정의하고 JOIN 연산을 수행할 수 있지만, NoSQL은 기본적으로 JOIN 연산이 불가능합니다. (JOIN 연산 = 서로 다른 두 개의 테이블을 결합하는 연산)
- RDB에 비해 더 많은 용량의 데이터를 저장할 수 있다.
- RDB는 주로 단일 시스템에서 작동하며, 이 시스템의 저장 용량은 해당 하드웨어의 한계에 의해 제한됩니다.
- 반면에 NoSQL은 '스케일 아웃'이라는 기법을 사용하여 데이터를 여러 서버에 분산시켜 저장할 수 있습니다. 따라서 훨씬 더 큰 데이터 세트를 관리하는데 용이합니다.
- 유연한 스키마를 가지고 있다.
- NoSQL 데이터베이스는 비정형 데이터를 저장하고 관리하는데 특화 되어있습니다. 비정형 데이터를 다루기 때문에 다양한 데이터 형태를 받아들일 수 있으며, 데이터 구조 변경 없이 새로운 데이터 타입을 도입할 수 있습니다.
- 데이터를 저장하는 칼럼이 각기 다른 이름과 다른 데이터 타입을 갖는 것이 허용됩니다. schemaless라고도 하며, 구조에 대한 정의를 변경할 필요 없이 데이터베이스 레코드에 자유롭게 필드를 추가할 수 있다.
Cloud Firestore
- 모바일 앱 개발을 위한 Firebase의 최신 데이터베이스로서 실시간 데이터베이스를 바탕으로 더욱 직관적인 새로운 데이터 모델을 선보인다.
- 실시간 데이터베이스보다 풍부하고 빠른 쿼리와 원활한 확장성을 제공한다.
Realtime Database
- Firebase의 기존 데이터베이스로, 여러 클라이언트에서 실시간으로 상태를 동기화해야하는 모바일 앱을 위한 효율적이고 지연 시간이 짧은 솔루션
- 간단한 조회와 확장성이 제한적
공통점
- 모두 NoSql, 비관계형 데이터베이스
- 관계형의 테이블은 collection이, record는 document가 담당함
- 오프라인 로컬 데이터 스토리지 지원
- 쿼리를 통해 데이터를 검색,필터,정렬 가능