Все базы данных изначально были нереляционными, только с появлением DB2 и Oracle в середине 1980-х годов они стали общими. До этого большинство баз данных были либо плоскими, либо иерархическими.
Плоские файлы по своей сути скучны, но иерархическая база данных намного меньше, особенно потому, что DB2 фактически была реализована поверх иерархической реализации (а именно VSAM) в первом случае. Я полагаю, что VSAM все еще существует на мэйнфреймовых системах и имеет немаловажное значение.
DB / 1 (настолько непонятный, что я даже не могу найти ссылку на википедию) была предшественницей IBM в прайм-тайм для DB2 (отсюда и название). Это было иерархически - в основном у вас был файл, который состоял из любого числа или «корневых» записей, обычно напрямую доступных по ключу. Каждая корневая запись может иметь любое количество дочерних записей, каждая из которых, в свою очередь, может иметь своих собственных дочерних записей. Чистым эффектом является индексный файл или корневые записи, где каждый корень является вершиной потенциальной древовидной структуры. Доступ к дочерним записям может быть сложным - существуют ограничения прямого доступа, поэтому обычно вам приходится обходить дерево в поисках нужной записи. «База данных» может содержать любое количество этих файлов, обычно связанных ключами.
Это имело серьезные недостатки - не в последнюю очередь то, что для выполнения чего-либо требовалась написанная полная программа - в основном это эквивалент работы в течение нескольких дней для того, что мы теперь можем сделать в SQL за несколько минут. Однако он действительно выиграл по скорости выполнения: в те дни мэйнфрейм обладал вычислительной мощностью вашего iPhone (хотя и оптимизирован для ввода / вывода данных), а плохие запросы DB2 могли убить многомиллионную установку. Это никогда не было проблемой с DB / 1, и в мире, где программисты были дешевле, чем процессорное время, это имело смысл.