NoSQL은 간단하게 보면 비관계형 데이터베이스라고 이해하면 편하다. 부가적으로 말하자면 스키마가 없는 데이터 베이스이다.(스키마란? Table, Column과 같은 데이터베이스를 구성하는 도식(설계) 혹은 구성을 말한다.) 스키마가 없는 데이터베이스 이기 때문에 테이블을 구성하는 스키마 혹은 컬럼의 자료형 등 규칙이 따로 없다. 덕분에 확장성이 용이하다. (관계형 데이터베이스 기준으로는 스키마를 바꾸게 되면 필요한 작업을 해야 하고, 데이터에 대한 마이그레이션을 진행해야 한다.) 하지만 NoSQL은 스키마가 없기 때문에 그냥 새로운 컬럼이 있으면 데이터를 넣기만 하면 된다.
전반적으로 봤을때 NoSQL은 기존의 관계형 데이터베이스가 가진 단점을 보완한 형태라고 생각하면 좋다. 최근에는 빅데이터 시대가 대두하며 이를 저장하는 데이터 베이스도 기존의 형태와는 달라야 한다. 그리고 관리를 용이하게 하기 위한 분산처리와 데이터의 안정성을 위해서 개발이 되었다.
Firebase는 SQL(Structure Query Language)를 사용하지 않고, JSON(JavaScript Object Notation) 방식의 문서를 사용해 저장한다. 가장 이해하기 쉽게 말하면 JSON을 Dictionary 형태(Key-Value)를 사용해 데이터를 주고 받을 수 있도록 제공하고 있다.
구조적으로 부모자식관계를 가지고 Node 형태의 방식으로 데이터 구조가 쌓이게 되어 있다. Dictionary 구조로 설명을 하자면 키(부모) 값(자식) 구조로 이루어져 있따고 생각하면 이해하기 쉽다.
반드시 읽고 넘어가기
Firebase 실시간 데이터베이스 규칙 이해하기