История простая.
Когда компьютеры были большими а оперативная память стоила как самолет, были изобретены реляционные СУБД, который хранили данные на диске, а индексы - в памяти. Работают быстро, масштабируются, оптимизируются, хранят данные в легко описываемой и структурированной форме.
Когда оперативная память подешевела, появились стильные модные молодежные базы данных типа nosql. Которые делятся на тупо живущие в оперативе, то есть по сути не являющиеся базами данных вообще, а скорее кэширующими демонами, как например пример редис, и "документо-ориентированные" БД, которые тоже живут исключительно если только целиком помещаются в оперативе, как например Монго. Из-за принципа "храним всё как бог на душу положит", каждая запись содержит не только сами данные, но и их структуру - имена полей, вложенность, и пр. То есть если в реляционной БД ты просто смотришь на заголовок таблицы, и понимаешь, в какое поле тебе класть вот эти данные, то в no-sql ты перебираешь ВСЕ записи в поисках нужного поля. И все равно одни и те же данные в итоге хранятся в десятках разных полей. Ну и добавляет удобства ещё то, что поскольку все имена полей хранятся вместе с записями, то сообразительные разработчики для экономии памяти сокращают имена до одной-двух букв. Что конечно сильно облегчает работу с базой
Ну и есть еще специализированные БД, например хранящие данные не в строках, как реляционные, не в пампасах, как nosql, а в колонках, для быстрой агрегации. Например Кликхаус.
Есть еще всякая мелочь, типа key-value storage, но у меня не поднимается рука называть их БД. Не называешь же ты массив в программе базой данных.