История развития баз данных

Базы данных — это одна из наиболее важных современных компьютерных технологий. Сегодня они во многом ассоциируются с банковскими транзакциями, хотя так было не всегда. История баз данных начинается с одного из самых значительных инженерных подвигов прошлого столетия: полета на Луну.

Североамериканская компания Rockwell заключила контракт с правительством США на участие в проекте Apollo. Построение космического корабля включает в себя сборку нескольких миллионов деталей, поэтому была создана система управления файлами, отслеживавшая информацию о каждой детали. Однако в ходе последующей проверки обнаружилась огромная избыточность. Выяснилось, что почти все данные повторяются в двух и более файлах.

Столкнувшись с задачей координации заказов на миллионы деталей, компания Rockwell в сотрудничестве с IBM в 1968 году разработала автоматизированную систему заказов. Названная IMS (Information Management System — система управления информацией), она заложила основу концепции СУБД.

Ключевым новшеством IMS было разделение данных и функций деловой логики. Прикладные программисты получили возможность работать с информацией на логическом уровне, а база данных брала на себя задачу физического хранения. Подобное разделение труда привело к резкому скачку производительности.

Еще одним изобретением стал язык DL/I (Data Language/I). Это был специализированный язык составления нерегламентированных запросов к базе данных. Его появление сделало ненужным дорогостоящее программирование на таких языках, как COBOL и FORTRAN, популярных в то время.

В СУБД IMS, применяемой до сих пор, реализована иерархическая модель данных, в которой существует один-единственный путь от корня иерархии к каждой записи. Такая модель стала основой для систем управления данными, она же дала толчок к последующим изобретениям из-за своей ограниченности. Полная история IMS была опубликована в 1998 году .

В 1971 г. состоялась конференция по языкам систем обработки данных (Conference on Data Systems Languages, CODASYL) в задачу которой входила разработка стандартов баз данных. Ранее эта конференция уже стандартизировала язык COBOL. Новый стандарт был расширен на иерархическую модель данных, применяемую в IMS. Результатом стало появление сетевой модели данных.

В сетевой модели любая запись может участвовать в нескольких отношениях предок/потомок. Это позволяло обходить целый ряд ограничений иерархической модели. Разработкой сетевой модели занимался Чарльз Бейчман (Charles Bachman) в то время руководитель проекта IDS (Integrated Data System — интегрированная система обработки данных) в компании General Electric. Он же изобрел «диаграммы Бейчмана» описывающие сетевые базы данных. За свой труд в 1973 г. Бейчман получил награду Тьюринга.

Тем временем научный сотрудник компании IBM доктор Эдгар Кодд (Edgar Codd) работал над эпохальным документом для Ассоциации производителей вычислительной техники (Association for Computing Machinery, ACM). В июне 1970 года этот документ был опубликован в ACM Journal под названием «Реляционная модель для больших банков совместно используемых данных» («A Relational Model of Data for Large Shared Data Banks»). Этот документ в корне изменил теорию баз данных и принес доктору Кодду награду Тьюринга в 1981 году.

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

В результате появились две СУБДSystem R компании IBM и Ingres Калифорнийского университета в Беркли. В обеих был реализована реляционная модель и язык запросов. Последний в СУБД System R первоначально назывался SEQUEL (Structured English Query Language — структурированный английский язык запросов). Позднее появилось название SQL (Structured Query Language). В 1986 году организация ANSI опубликовала официальный стандарт языка SQL