데이터베이스(Database)는 체계적으로 조직된 데이터의 집합을 의미하며, 데이터를 효율적으로 저장, 관리, 검색 및 업데이트할 수 있도록 설계된 시스템입니다. 데이터베이스는 다양한 형태와 크기의 데이터를 저장할 수 있다. 데이터베이스 모델은 크게 두 종류로 나뉜다:
- 관계형 데이터베이스(Relational Database): 데이터가 테이블 형태로 저장되며, 테이블 간의 관계를 통해 데이터를 조직합니다. SQL(Structured Query Language)을 사용하여 데이터를 관리합니다
- 비관계형 데이터베이스(NoSQL Database): 테이블 형태가 아닌 방식으로 데이터를 저장합니다.
Firestore
Firestore는 Google Cloud의 Firebase 플랫폼에서 제공하는 NoSQL 클라우드 데이터베이스다. Firestore는 실시간 데이터 동기화와 오프라인 지원을 제공하며, 웹, iOS, Android와 같은 다양한 플랫폼에서 쉽게 사용할 수 있다.
Firestore에 데이터를 구조화하는 기본단위는 컬렉션(Collection) ,문서(Document) 와 필드(Field)이다.
컬렉션(Collection): 컬렉션은 여러 개의 문서를 포함하는 그룹이다. 컬렉션은 이름을 가지고 있으며, 해당 이름을 통해 접근할 수 있다.
특징:
- 컬렉션 자체는 데이터를 직접 저장하지 않으며, 오직 문서만 포함할 수 있다.
- 컬렉션 내의 각 문서는 고유한 식별자(ID)를 가진다.
- Firestore에서는 컬렉션을 미리 정의할 필요 없이, 문서를 추가하면 자동으로 생성된다.
문서(Document): 문서는 필드와 값의 쌍으로 구성된 데이터 단위이다. 각각의 문서는 고유한 식별자를 가지며, 컬렉션 내에 저장된다.
특징:
- 문서의 ID는 자동으로 생성되거나 수동으로 지정할 수 있다.
- 문서는 다른 문서나 컬렉션을 포함할 수 없습니다. 대신 하위 컬렉션을 가질 수 있다.
- 문서의 각 필드는 다양한 데이터 유형(문자열, 숫자, 불리언, 배열, 맵 등)을 가질 수 있다.
필드(Field): 드는 문서 내에 데이터를 저장하는 기본 단위입니다. 필드는 이름과 값의 쌍으로 구성된 데다.
특징:
- 필드 이름은 문자열이어야 하며, 값은 다양한 데이터 유형을 가질 수 있다.
- Firestore는 중첩된 데이터 구조를 지원하여, 필드 값으로 맵(Map)이나 배열(Array)을 포함할 수 있다.
Firestore과 같은 데이터베이스를 사용하면 HTML을 웹에서 실행하여 데이터를 입력했을 때 서버에 데이터가 남아 창을 새로고침하거나 껐다 켜도 데이터손실이 없어진다.