Realtime Database(실시간 데이터 베이스)
- 비관계형 클라우드 데이터베이스(No SQL Database)
- 보통의 관계형 데이터베이스와 다르다.
- 비관계형 데이터베이스는 대량의 데이터를 대량으로 처리하는데, 점점더 많은더 많은 데이터를수집하고 활용하는 모바일, 웹, 어플리케이션을 개발하는데 조금 더 적당하다.
- JSON 기반의 데이터를 가져오고, 내보내고, 관리하는데에 최적화 되어있다.
- 실시간
- HTTP요청이 아닌 동기화 방식
실시간 데이터 베이스는 옵저버와 스냅샷과 같은 SDK를 통해서 클라이언트와 직접 실시간으로 동기화 하게 된다.
따라서 실시간 데이터 베이스와 연결된 모든 기기는 거의 동시에 서버의 모든 변경 사항을 실시간으로 반영할 수 있다.
- 앱이 오프라인 일 때도 사용자 액션에 대한 변경 사항을 로컬에 저장 해 두었다가 앱이 다시 네트워크에 연결되었을때 자동적으로 실시간 데이터베이스에 업데이트 하는 기능을 제공.
- 클라이언트가 오프라인동안 놓쳤던 서버의 변경 사항도 자동으로 수신을 해서 서버의 최신 상태로 동기화 함.
- 별도의 서버개발 없이 데이터 베이스에 엑세스 할 수 있다.
- 데이터를 읽거나 쓸 때 보안규칙을 이용해서 데이터베이스 접근 권한에 대한 보안, 데이터 검증을 제공하여 안전성 제공
- 하나의 큰 JSON트리로 저장
- 하나의 쿼리에 정렬, 또는 필터링을 할 수 있지만 동시에 두가지 일을 할 순 없다
- 결과 값이 가지는 하위값 모두를 반환하여 하위값까지 한번에 엑세스 할 수 있다.
- 데이터 세트가 커질수록 쿼리의 성능이 떨어진다.
1. 기본적인 데이터 동기화
2. 적은양의 데이터가 자주변경
3. 간단한 JSON 트리
4. 많은 데이터 베이스
실시간 데이터 베이스에서 제공하는 벨류타입 종류:
1. String
2. Int, float, double
3. 딕셔너리
4. Array