Недавно у меня была возможность уделить немного времени и просмотреть урок, который я выбрал. Недавно мы также погрузились в моделирование данных и теорию хранения данных приложений. Я нахожу эту тему очень ценной, но, будучи не очень организованным человеком, мне также трудно понять обсуждаемые темы.

В чем разница между реляционной и нереляционной базой данных?

Реляционные базы данных хранят данные в таблицах и строках, причем каждая таблица связана первичным ключом. Эта структура называется схемой, и в этой схеме определяются типы данных для каждой строки. Например: если бы я создал базу данных, которая отслеживала бы журналы, в которые писал пользователь. А) У пользователя могло бы быть много журналов. Б) Журналы могут иметь много записей. Запись в журнале будет связана с журналом по идентификатору журнала. Точно так же журнал будет связан с пользователем по идентификатору пользователя. Недавно мы воспользовались этим, создав API с использованием базы данных PostgreSQL.

Напротив, нереляционные базы данных хранят данные без необходимости следовать структуре таблиц и строк. Эти типы баз данных предназначены для обработки данных, которые не соответствуют структурированной схеме. Это также позволяет изменять типы данных. Мы использовали этот тип модели при работе с Firebase, который хранит данные в виде вложенного объекта JSON. С этой моделью наш предыдущий пример не будет связан первичным ключом. Вместо этого наш пользователь будет иметь значение журнала, которое затем будет иметь значение чтения.

Хранилище на стороне клиента

Когда мы впервые узнали о том, как сохранять данные в наших приложениях, мы сделали это с помощью localStorage. Это позволяло пользователям устанавливать элементы в хранилище для последующего извлечения в браузере. Это также пример нереляционной базы данных, поскольку мы храним значения в виде хранилища ключей и значений. В то время, когда мы узнали об этом, мы делали очень маленькие приложения для списка дел, и нам нужно было хранить только минимальное количество значений. localStorage хорошо работал для этого, потому что он был простым, синхронным, а события, которые вызываются в localStorage API, были семантическими.

Что я лучше понимаю теперь, когда вы просмотрели во второй раз?

После второго прохождения этого урока я чувствую, что лучше понимаю различия между реляционными и нереляционными базами данных. Я также больше ценю то, как мы эволюционировали от обучения хранению данных в веб-хранилище с помощью localStorage к изучению того, как хранить данные в более сложной нереляционной базе данных с помощью Firebase, и, наконец, к созданию полноценной реляционной базы данных.