Історія СУБД Oracle — першою комерційно успішною реляційної СУБД

image

До середини 70-х років інформація в базах даних розподілялася за старовинним ієрархічним, або «деревоподібному», принципом, який до цих пір використовується в настільних операційних системах.

Перші прототипи реляційних СУБД існували вже в 70-ті роки ХХ століття. Однак мало хто вірив у можливість добитися ефективної реалізації таких систем. Тим не менше, до кінця 1980-х років реляційні системи зайняли на світовому ринку СУБД домінуюче положення.

У зв'язку з цим багато компаній стали позиціонувати свої СУБД як «реляційні» в рекламних цілях. Але далеко не завжди вони мали для цього достатньо підстав. Тому автор реляційної моделі даних Едгар Кодд в 1985 році опублікував свої знамениті «12 правил Кодда», яким повинна відповідати кожна РСУБД.

Одним з перших прототипів реляційних баз даних була система System R. Це проект компанії IBM, який з'явився в 1976 році. Він надихнув майбутніх засновників Oracle на створення власної реляційної СУБД , але сам так і не отримав комерційного успіху.

Головним серед творців Oracle був Ларрі Еллісон, який разом з Бобом Майнером і Едом Оутсом до Oracle працював над проектом для ЦРУ. У ряді джерел зазначається, що йому було присвоєно кодове найменування «Oracle». У 1977 році молодий програміст Ларрі Еллісон кинув навчання в Єльському університеті, щоб почати власний бізнес. У розпорядженні Ларрі Еллісона тоді було всього $1200. Він умовив вкластися двох зазначених вище друзів, але стартовий капітал від цього зріс лише на $500.

image

16 червня 1977 року Едом Оутсом, Бобом Майнером і Ларрі Еллісоном в Каліфорнії (США) була заснована компанія Software Development Laboratories, незабаром перейменована в Relational Software Inc. Молоді програмісти почали розробку системи управління базами даних (СУБД), побудованої на принципах реляційної алгебри.

Oracle 2
Перша комерційна версія СУБД Oracle отримала назву Oracle 2. Такий хід мав дати замовникам зрозуміти, що система надійна і навіть пройшла перевірку часом.

В кінці 70-х головною конкурентною перевагою СУБД Oracle була висока швидкість обробки величезних масивів інформації, яку відзначили всі експерти. На відміну від System R, для роботи якої був необхідний потужний суперкомп'ютер — мейнфреймів, Oracle 2 справлялася з обробкою інформації на більш «мініатюрних» машинах. Ці та інші переваги призвели до того, що на початку 80-х років СУБД почала стрімко поширюватися.
У Еллісона з колегами виникли складності при реалізації сумісності з СУБД IBM System R. Небажання IBM розкривати вихідні коди стало ключовою проблемою. В результаті сумісності між двома системами так і не вдалося досягти.
image
Ларрі Еллісон — засновник Oracle

Oracle стала історично першою і однією з найбільш розвинених реалізацій архітектури клієнт/сервер. Переносимість і масштабованість завжди мали високий пріоритет у розробників Oracle. Це зіграло ключову роль в досягненні успіху компанії на ринку СУБД.

Oracle 2 працювала на міні-комп'ютер PDP-11 фірми Digital Equipment в операційному середовищі RSX-11. Велика частина Oracle була написана на асемблері PDP-11, а окремі компоненти — на новий для того часу мовою C. Вже в ті дні система була портируемой і працювала в інших операційних середовищах PDP-11: IAS, RSTS і UNIX. Тоді ж було прийнято рішення про перенесення Oracle в нову ОС VMS. Завдяки цьому СУБД Oracle зайняла велику нішу корпоративних інформаційних систем на швидко зростаючому ринку VAX.

Ще однією важливою особливістю системи стала повна реалізація можливостей нової мови запитів SQL — підпорядкований, операція з'єднання і так далі. Завдяки цьому багаторазово зросла продуктивність праці SQL-програмістів.
Стандартний SQL (IBM) був розширений операцією CONNECT BY, який дозволяє обробляти деревоподібні структури, що стає унікальним для SQL-систем.
Звичайно, над СУБД потрібно було ще довго працювати. В Oracle 2, наприклад, не підтримувалися транзакції: якщо в процесі оновлення бази даних відбувався збій, попередній стан БД відновити було практично неможливо. Тому люди були змушені часто робити резервні копії бази даних щоб уникнути втрат інформації.

29 жовтня 1982 року компанія перейменована в Oracle Systems.

Oracle 3 і 4
В 1983 році на ринок вийшла Oracle 3. Вона була повністю переписана на С. Це багато в чому допомогло вирішити проблему переносимості Oracle на широкий спектр платформ – їх тоді було не менше 20. Крім того, було реалізовано атомарний виконання транзакцій: операція або виконувалася повністю, або взагалі не виконувалася, відповідно, транзакція або завершувалася успішно зміни бази даних, або откатывала всі зроблені нею зміни.

image

З виходом Oracle 4 система була портована на великі комп'ютери з ОС VM і MVS, а також на персональний комп'ютер з 640 кілобайтами оперативної пам'яті.

Також була реалізована модель контролю доступу до бази даних, яка гарантувала, що результат запиту не суперечить станом бази даних на початок запиту. Завдяки цьому було усунуто відоме протиріччя між процесами читання і запису.

Oracle 5
У 1985 році Oracle випустила на ринок версію 5.0, у якої була вперше введена архітектура клієнт/сервер. Крім того, компанія випустила SQL*Net – мережевий продукт, що забезпечує прозоре з'єднання між клієнтом і базою даних або між двома базами даних.

У версії 5.1 були вперше реалізовані розподілені запити — це давало можливість звертатися до даних, фізично розміщених в різних вузлах. Кілька взаємодіючих серверів могли створити у користувача багатьох фізично рознесених баз даних ілюзію єдиної логічної бази даних.

12 березня 1986 року відбулося первинне публічне розміщення акцій Oracle Corporation. Високі темпи зростання дозволили Oracle вийти на IPO з прибутком в $55 мільйонів в 1986 році і всього за три роки подесятерити прибуток до $584 мільйони.

Oracle 6
Розробники версії 6 прагнули створити інструмент побудови великомасштабних інформаційних систем, орієнтованих на обробку транзакцій в режимі реального часу.

Були введені генератори послідовностей та блокування на рівні запису. В цей же час Oracle став першим багатокористувацьким сервером баз даних для OS/2, Xenix, Banyan Vines і Macintosh.

У версії 6 були закладені принципово нові можливості, в повному обсязі реалізовані пізніше:

  • SQL-запити могли використовуватися спільно з конструкціями процедурного мови PL/SQL і надсилатися для виконання на сервер як анонімні процедури;
  • мова PL/SQL став використовуватися в SQL*Forms як засоби програмування додатків;
  • опис схеми бази даних на синтаксичному рівні були введені (згідно з ANSI/ISO стандартом) декларативні визначення обмежень посилальної цілісності.
Криза
У 1990 році компанія зіткнулася з серйозними проблемами, повідомивши про значні збитки. Еллісону довелося звільнити понад 400 співробітників для скорочення витрат. Він також розпустив практично весь топ-менеджмент, в числі якого були близькі Ларрі люди, протягом 10 років разом з ним приумножавшие славу і добробут Oracle. Ларрі залишив у компанії Боба Майнера, якого завжди вважав обдарованим програмістом і просто хорошою доброю людиною.

Такі жорсткі методи Ларрі пояснив так:
Ми були найбільш швидкозростаючою компанією в історії комп'ютерної індустрії, але раптово зайшли в глухий кут і стали битися головою об стіну, – сказав він. – Ми досягли мільярдного доходу, але зіткнулися з практично нерозв'язними проблемами управління. Справа в тому, що люди, які управляли мільярдної компанією, залишилися такими ж, як у ті часи, коли наша компанія коштувала $15 мільйонів. Я відчував неймовірне почуття вдячності всім, хто працював зі мною, всім, з ким ми створювали Oracle. Але у мене не було вибору. Я повинен був звільнити їх, розуміючи, що якщо цього не зробити, то незабаром просто не буде ніякого Oracle. Я відчував, перш за все, відповідальність перед всією компанією, перед усім персоналом, всіма акціонерами і клієнтами.
Крім того, з-за досконалих помилок в реєстрації продажу і обліку ще не пройшли операцій в бухгалтерських документах у Oracle виникли складнощі з регуляторами на місцевому ринку.

В результаті Oracle виявилася близька до банкрутства, а такі конкуренти, як Informix і Sybase, почали повільно збільшувати свою частку на ринку.

На той момент конкуренція між великими гравцями ринку досягла свого апогею — 90-ті могли запам'ятається багатьом, як період рекламної війни Oracle і Informix. Так, остання викупила білборд поруч з офісом Oracle і розмістила на ньому напис «Обережно, динозаври переходять дорогу», натякаючи на застарілі технології Oracle.

image

Проте Ларрі все-таки знайшов рішення: він сформував новий управлінський штат, який був «вишколена» на величезні обсяги виробництва та жорстку конкуренцію. В результаті через певний час Oracle знову повернулася на колишні висоти.

А в 1992 році реліз Oracle 7 остаточно змінив ситуацію в кращу сторону.

Oracle 7
Крім загального підвищення ефективності введення/виводу, використання центрального процесора і роботи з пам'яттю, версія СУБД Oracle 7 володіла рядом інноваційних архітектурних рішень:

  • розділяється SQL-кеш на сервер: сервер розпізнає посилаються клієнтами SQL-запити, які раніше вже були проаналізовані і склали і в даний момент знаходяться в кеш-пам'яті, за рахунок чого економиться час аналізу, оптимізації та трансляції, а також пам'ять, необхідна для зберігання SQL-запитів;
  • розділяється пулу процесів сервера замість окремого процесу для кожного клієнта, що дозволяє заощадити значний обсяг пам'яті.
В області адміністрування баз даних також було запроваджено низку нововведень: дзеркальний журнал транзакцій, динамічне створення журналів, команда ANALYZE, що дозволяє збирати статистику про використання таблиць, індексів та інших фізичних об'єктів, профілі користувачів на використання системних ресурсів – ЦПУ, введення/виводу і так далі.

У версії 7 були повністю реалізовані декларативні обмеження посилальної цілісності у відповідності зі стандартами ANSI/ISO. В рамках цих обмежень (первинні та зовнішні ключі) користувач міг специфікувати каскадне видалення пов'язаних з деякими первинним ключем записів. Процедури PL/SQL могли описуватися на рівні схеми бази даних (збережені процедури і викликатися будь-яким додатком, іншими процедурами і тригерами.

Іншим важливим нововведенням стали тригери бази даних.
Тригер являє собою пару (подія+дія), де подія — це видалення/занесення/оновлення записів таблиці, а дія (тіло тригера) — процедура PL/SQL, виконувана при вчиненні події.

Тригери можуть визначатися на рівні операцій (DELETE, INSERT, UPDATE) або на рівні окремих рядків (FOR-EACH-ROW-тригери, які, до того ж, можуть працювати зі старими і новими значеннями рядків). З допомогою тригерів можна реалізувати складні правила контролю цілісності, прав доступу, виведення значень та інше.
Управління безпекою і цілісністю істотно спростилося завдяки введенню ролей.
Роль — це сукупність прав доступу до об'єктів бази даних (INSERT, UPDATE, SELECT та інші) і системних прав (CREATE TABLE, ALTER SYSTEM і так далі). Визначивши роль, адміністратор бази даних може з допомогою однієї команди дати користувачеві привілеї для роботи з деяким додатком.
У 1994 році компанія випустила версію Oracle 7.1, в тому числі і для IBM PC. Раніше Oracle не розглядала цю платформу як серверну, а обмежувалася лише створенням для неї клієнтських частин своєї СУБД.

В Oracle 7.1 з'явилася опція паралельних запитів (parallel query option), а також можливість визначення кількості серверних процесів, необхідних для виконання SQL-запиту, на основі результатів роботи оптимізатора запитів. У даній версії була досягнута повна інтеграція PL/SQL і SQL, введений вбудований пакет DBMS_SQL і асинхронна симетрична реплікація даних разом з асинхронним викликом віддалених процедур.
У 1994 році в Росії з'явився перший офіційний представник Oracle — Андреас Харт. Тоді ж клієнтами Oracle в Росії стали такі потужні структури, як ФСБ, Кабінет Міністрів, Мосприватизация, МПС, РАО ЄЕС і так далі.
Oracle 8 і 9
У 1997 році вийшла версія 8, в якій з'явилися об'єктна модель, нові властивості і засоби адміністрування. Oracle 8.0 була більш надійною порівняно з попередньою версією, володіла більшою стійкістю до високих навантажень. Крім того, в ній була реалізована можливість партиционирования таблиць.

В 1998 році компанія анонсувала Oracle 8i Release 1 (8.1.5). Буква «i» означає, що версія володіє підтримкою Інтернету.

image

Починаючи з Oracle 8.1.5 в наступних версіях з'являється вбудована в СУБД віртуальна машина Java (JVM). Далі вийшла версія Oracle 8i Release 2 (8.1.6), яка підтримувала XML, а також містила певні нововведення, пов'язані зі створенням сховищ даних.

У 2001 році з'явилася версія Oracle 9i Release 1 (9.0.1), в якій було зроблено понад 400 змін порівняно з попередньою. Серед них – «інтелектуалізація» автоматизованих систем і розширення можливостей для аналітики.

image

У новій версії з'явилися засоби обробки XML-документів, технологія Oracle RAC (Real Application Clusters) – як заміна Oracle Parallel Server (OPS), механізм створення реплікацій Oracle Streams, скроллируемый курсор для програм на Сі та C++, вбудована в СУБД підтримка OLAP і Data Mining, перейменування стовпців і обмежень цілісності, підтримка Java 1.3.1 і Unicode 3.1.

Кращі фінансові роки
Згідно даними Giga Information Group (The RDBMS Market: An Update, квітень 2001 року), загальний обсяг ринку СУБД в 2000 році зріс порівняно з 1999 роком на 20% і склав у грошовому вираженні $8,8 мільярда. Основні фактори розвитку: підтримка електронної комерції, підтримка сховищ даних і консолідація серверів.

image
Приблизний поділ ринку СУБД для платформи Unix.

image
Приблизний поділ ринку СУБД для платформи Windows NT.

У 2004 році з'явилася версія Oracle 10g Release 1 (10.1.0). Літера «g» в назві означає «Grid» («мережа») і символізує підтримку Grid-обчислень.

Цей рік став одним з найуспішніших в історії компанії – норма прибутку склала 38% (найвищий показник за весь час існування корпорації), річний оборот зріс до 7% ($10,2 мільярда), доходи від продажу ЗА піднялися на 12% ($8,1 млрд), чистий прибуток виріс на 16% ($2,7 мільярда).

image

Офіс Oracle в Росії і СНД увійшов у трійку кращих представництв Oracle за темпами зростання в регіоні ЕМЕА (Європа, Близький Схід і Африка), а також п'ятий рік поспіль — в п'ятірку кращих серед 145 представництв Oracle в світі.

До наших днів
У 2005-му була анонсована Oracle 10g Release 2 (10.2.0.1). А в 2007-му – Oracle 11g Release 1 (11.1.0.6).

image
Стан ринку СУБД на 2007 рік

У 2009 році компанія випустила Oracle 11g Release 2 (11.2.0.1). У версію була введена нова для Oracle можливість «гарячого» (без зупинки сервера) внесення змін до метадані та бізнес-логіку на PL/SQL – це стало можливим завдяки механізму одночасної підтримки декількох версій схеми та логіки під назвою editions.

2013 рік — вийшла версія 12c (12.1.0.1), основне нововведення — підтримка підключаються баз даних (pluggable database), що забезпечує властивості мультиарендности і живої міграції баз даних, суфікс «c» в назві позначає cloud (хмара).

24 квітня 2015 року стало відомо про плани Oracle перевести майже всі свої продукти в хмару. Таким чином, американська компанія вирішила змінити свою бізнес-модель, щоб відповідати змінам на ринку.

image

У вересні 2016 року Ларрі Еллісон оголосив про створення в Oracle дата-центрів для роботи з IaaS другого покоління і заявив, що лідерство компанії Amazon на хмарному ринку підходить до кінця. Мета компанії – запропонувати клієнтам Oracle пакет послуг, де будуть поєднані IaaS, PaaS і SaaS («ПО як послуга»).
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.