В 1977 году Ларри Эллисон, Боб Майнер и Эд Оутс образовали в Кремниевой Долине компанию Software Development Lab. со стартовым капиталом в 2 тыс. долл.
Компания, известная сегодня под названием Oracle, ведет свое летосчисление с 1977 года. Но прежде чем рассказать об этой и других важных датах в ее жизни, стоит заглянуть на несколько лет назад, чтобы понять предысторию событий двадцатипятилетней давности, связанных с появлением первой в мире коммерческой реляционной системы управления базами данных.
Ларри Эллисон и премьер-министр Великобритании Тони Блэр обсуждают инициативу Oracle по организации обучения через Internet. В Британии корпорация вложила в этот проект более 4 млн. фунтов стерлингов |
Истоки реляционных СУБД
В конце 50-х возможности хранения данных ограничивались простыми файлами. Однако, когда в ряде проектов в США возникла необходимость управлять гигантскими объемами данных, встал вопрос об их эффективной структуризации. Усилиями компаний North American Aviation и IBM была разработана иерархическая модель данных, представлявшая собой древовидную структуру с зависимостями между записями по принципу «один ко многим». В середине 60-х годов IBM выпустила первый коммерческий продукт под названием Information Management System, реализующий иерархическую модель. Примерно в то же время в General Electric создали и воплотили в системе Integrated Data Systems сетевую модель данных.
В 1970 году Эдгар Кодд, тогда работник исследовательской лаборатории IBM, предложил новый метод организации баз данных, основанный на принципах реляционной алгебры. Поначалу реляционный подход не считали перспективным: многие полагали, что его реализации окажутся гораздо медленнее сетевых и иерархических систем. Тем не менее несколько лет статья Кодда послужила одним из стимулов для разработки прототипа реляционной СУБД в лаборатории IBM в Сан-Хосе. Речь идет о знаменитом проекте System R, завершенном в 1976 году. В System R появился язык запросов SQL, первоначально называвшийся SEQUEL. Таким образом, IBM играла весьма заметную роль в формировании индустрии баз данных, и вполне логично было предположить, что за ней будет первенство в выпуске первой коммерческой реляционной СУБД. Но Голубого гиганта опередила небольшая, амбициозная команда молодых программистов.
Рождение Oracle
В 1977 году Ларри Эллисон, Боб Майнер и Эд Оутс образовали в Кремниевой Долине компанию Software Development Laboratories со стартовым капиталом в 2 тыс. долл. Проект по разработке реляционной СУБД назвали Oracle: такое же наименование имел секретный контракт с ЦРУ, который основатели компании вели на предыдущем месте работы. Oracle была выпущена на рынок в июне 1979 года, и это была «вторая» версия системы. Комментаторы расходятся в своих суждениях: некоторые утверждают, что первая версия существовала, но не стала коммерческой, другие полагают, что выпуск системы сразу за номером два был ловким маркетинговым ходом очень талантливого в этом отношении Эллисона. Клиенты никогда не стали бы покупать первую версию разработки никому не известной компании (она, кстати, к тому времени уже сменила название на Relational Software Inc., которое точнее отражало суть ее деятельности).
Однако все едины во мнении, что выход Oracle v2 стал революцией в сфере управления данными. На смену громоздким сетевым и иерархическим базам данных, работа с которыми требовала детального понимания того, как организованы данные на физических дисках, пришла простая в использовании система на базе реляционного подхода.
Революционность Oracle состояла и в ориентации системы на мини-машины DEC PDP-11. В то время обработка данных была сосредоточена на мэйнфреймах. Один из участников проекта System R Майк Блазген вспоминал, как поразила его демонстрация Oracle на одной из компьютерных конференций в 1980 году. Система была простой и быстрой и при этом работала на компьютере размером с «сигарный ящик», в то время как опытная реализация System R функционировала только на мэйнфрейме, занимавшем целую комнату. Разработчики продолжили линию на освоение малых машин и к осени 1979 года перенесли свою систему на платформу VAX/VMS.
Благодаря использованию платформы VAX, которая получала в начале 80-х все более широкое распространение, Oracle завоевывала популярность, и ее создатели вновь решили поменять название компании, чтобы ассоциировать себя с уже известным на рынке продуктом. В 1982 году она стала называться Oracle Systems Corporation, а затем — просто Oracle Corporation, каковой мы и знаем ее сегодня.
Работая над третьей версией, Эллисон и его коллеги приняли стратегическое решение сделать ее переносимой, не привязанной к определенной аппаратной платформе. Поэтому система писалась уже не на языке ассемблера, а на Си, недорогие компиляторы для которого начали появляться на большом числе различных машин. Так Oracle завоевала новых клиентов, использующих варианты ОС Unix от Sun, IBM и НР, операционные системы IBM MVS, DEС Ultrix и др. Число платформ, на которых функционировала СУБД Oracle, приблизилось к двум десяткам. Значительная часть программистской работы над версией, впервые воплотившей принципы открытых систем в сфере баз данных, была возложена на Брюса Скотта, самого первого служащего, нанятого компанией.
В своей СУБД Oracle постепенно двигалась к обеспечению обработки транзакций, которая в полном объеме стала поддерживаться с шестой версии. Первые выпуски системы находили применение в основном для приложений поддержки принятия решений. В третьей версии Oracle была реализована «атомарность транзакций» — принцип, в соответствии с которым транзакция может быть либо выполнена от начала до конца, либо не выполнена совсем. В следующей версии, вышедшей в 1984 году, в Oracle впервые для систем управления базами данных появилась возможность «согласованности по чтению», которая гарантировала, что в ходе выполнения операции чтения данных их состояние не изменяется. В большинстве систем того времени для достижения условия согласованности при чтении приходилось «замораживать» транзакции, т. е. блокировать доступ к данным для всех остальных приложений, что отрицательно сказывалось на общей производительности.
Все выше и вышe
В середине 80-х Oracle перестала быть монополистом на рынке реляционных СУБД. Собственные решения появились у IBM, на сцену вышли новые компании — Informix, Ingres, Sybase. Конкуренция подстегивала Эллисона и заставляла искать нетривиальные решения по совершенствованию своего детища. В 1986 году Oracle одной из первых среди СУБД стала работать в архитектуре клиент-сервер с обеспечением доступа множества клиентских машин к базам данных на сервере. Поддержка распределенных запросов, появившаяся в пятой версии, давала возможность один запрос адресовать к данным, размещенным в разных физических хранилищах. Версия 5.1 предоставила поддержку кластеризации. В шестой версии, выпущенной в 1988 году, появилась возможность блокировки на уровне строк, повышавшая производительность системы, а также была реализована идея «горячего» резервирования базы данных. В 1987 году была реализована поддержка SMP, а спустя четыре года — серверов с массовым параллелизмом (МРР). Вместе с «шестеркой» Oracle выпустила начальный вариант языка PL/SQL, который расширял возможности языка запросов к базам данных поддержкой хранимых процедур и триггеров.
В первое десятилетие существования компании промежутки между выпусками очередных версий иногда составляли чуть более года. На рубеже 80- и 90-х годов темп меняется — над седьмой версией в Oracle работают почти пять лет, добиваясь более высокой надежности и разрабатывая новые возможности. Вышедшая в 1993 году Oraclе7 обеспечила полноценную поддержку ограничений целостности данных и предоставила усовершенствованные возможности администрирования, управления производительностью и разработки приложений. Oracle8 отличало появление поддержки объектов в реляционной СУБД. Кроме того, эта версия, датированная 1997 годом, обеспечивала возможности работы со сверхбольшими базами данных, развивая новое для Oracle направление хранилищ данных. Спустя два года выходит Oracle8i — впервые в названии продукта появляется обозначение i, символизирующее стратегическую ориентацию компании на поддержку возможностей хранения и работы с данными в Internet. В Oracle9i выпуска 2001 года вошло около четырех сотен новых возможностей. Следующий шаг — нынешний дебют Oracle 10.