Программа oracle как читается
Перейти к содержимому

Программа oracle как читается

История СУБД 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-х годов СУБД начала стремительно распространяться.

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-программистов.

Конечно, над СУБД нужно было еще долго работать. В Oracle 2, например, не поддерживались транзакции: если в процессе обновления базы данных происходил сбой, предыдущее состояние БД восстановить было практически невозможно. Поэтому пользователи были вынуждены часто делать резервные копии базы данных во избежание потерь информации.

29 октября 1982 года компания переименована в Oracle Systems.

Oracle 3 и 4

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

image

С выходом Oracle 4 система была портирована на большие компьютеры c ОС 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. Ларри оставил в компании Боба Майнера, которого всегда считал одаренным программистом и просто хорошим добрым человеком.

Столь жесткие методы Ларри объяснил так:

Кроме того, из-за совершенных ошибок в регистрации продаж и учёта ещё не прошедших сделок в бухгалтерских документах у Oracle возникли сложности с регуляторами на местном рынке.

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

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

image

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

А в 1992 году релиз Oracle 7 окончательно изменил ситуацию в лучшую сторону.

Oracle 7

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

  • разделяемый SQL-кэш на сервере: сервер распознает посылаемые клиентами SQL-запросы, которые ранее уже были проанализированы и скомпилированы и в данный момент находятся в кэш-памяти, за счет чего экономится время анализа, оптимизации и трансляции, а также память, требуемая для хранения SQL-запросов;
  • разделяемый пул процессов сервера вместо отдельного процесса для каждого клиента, что позволяет сэкономить значительный объем памяти.

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

Другим важным нововведением стали триггеры базы данных.

Триггер представляет собой пару (событие+действие), где событие — это удаление/занесение/обновление записей таблицы, а действие (тело триггера) — процедура PL/SQL, выполняемая при совершении события.

Триггеры могут определяться на уровне операций (DELETE, INSERT, UPDATE) или на уровне отдельных строк (FOR-EACH-ROW-триггеры, которые, к тому же, могут работать со старыми и новыми значениями строк). С помощью триггеров можно реализовать сложные правила контроля целостности, прав доступа, вывода значений и прочее.

В 1994 году компания выпустила версию Oracle 7.1, в том числе и для IBM PC. Ранее Oracle не рассматривала эту платформу как серверную, а ограничивалась лишь созданием для нее клиентских частей своей СУБД.

В Oracle 7.1 появилась опция параллельных запросов (parallel query option), а также возможность определения количества серверных процессов, необходимых для выполнения SQL-запроса, на основе результатов работы оптимизатора запросов. В данной версии была достигнута полная интеграция PL/SQL и SQL, введен встроенный пакет DBMS_SQL и асинхронная симметричная репликация данных вместе с асинхронным вызовом удаленных процедур.

Oracle 8 и 9

В 1997 году вышла версия 8, в которой появились объектная модель, новые свойства и средства администрирования. Oracle 8.0 была более надежной по сравнению с предыдущей версией, обладала большей устойчивостью к высоким нагрузкам. Кроме того, в ней была реализована возможность партиционирования таблиц.

В 1998 году компания анонсировала Oracle 8i Release 1 (8.1.5). Буква «i» означает, что версия обладает поддержкой Интернета.

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

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

В новой версии появились средства обработки 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 миллиарда. Основные факторы развития: поддержка электронной коммерции, поддержка хранилищ данных и консолидация серверов.

Примерное разделение рынка СУБД для платформы Unix.

Примерное разделение рынка СУБД для платформы 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 («ПО как услуга»).

Что такое Oracle?

Oracle – это система управления базами данных (СУБД), которая была создана одноименной компанией. Её основал Ларри Эллисон, который родился в США 1994 года от девятнадцати летней еврейки, муж которой ее бросил еще до появления ребенка. В конце семидесятых этот человек создал первую версию системы, ее назвали Oracle версия 2. Именование продукта было взято из одного из проектов ЦРУ, остановка от работы над ним заставила Ларри подыскать работу получше. Стартовая версия сего продукта была написана на assembler, который вскоре заменили. Был выбран язык Си для написания последующих версий, ибо Паскаль был дороже по лицензии, а про Аду ничего не известно, хоть и была популярной в те времена.

Ларри очень был категоричным к СССР, писав в 1988 году, что в матушку-Россию эта СУБД попадет лишь с ядерными бомбами, ведь Oracle была на счету Министерства обороны США. Первая незаконная русификация СУБД очень огорчила дядю Ларри, который принял меры к наказанию этих ребят-энтузиастов. Но в настоящее время очень активно используются продукты этой компании как Java, Virtual Box и Oracle DataBase.

Смешной факт таков, что компания очень «эффективно» боролась с терроризмом, ведь любой пользователь кто бы ни качал с сайта версию программы, обязан был поставить галочку под соглашением, что он не террорист и не будет использовать программу для незаконных действий.

Основное что известно об этой компании, что она в 2009 году поглотила Sun Microsystems вместе с правами на язык программирования Java и другими пирожками. Уволили с Ларри-несогласных людей, позакрывав кучу проектов, например OpenSolaris. Хотел придушить еще OpenOffice, но это у него, к счастью, не получилось. Довольствовался лишь сменой названия на LibreOffice.

Спустя 10 лет со времени создания корпорации Ларри все еще проводил собеседования абсолютно с каждым новым сотрудником, пришедшем в эту компанию.

На сегодняшний день компания Oracle является лидером на рынке разработки ПО для управления данными и вторым по масштабу независимым производителем различного полезного софта. Трудно представить программиста на Java, который ничего не знает об этой корпорации. Но их главный продукт Oracle DataBase занимает достойное место среди различных систем управления базами данных, которые используются чуть ли не на каждом предприятии. А основатель компании Ларри Элиссон в 2010 году был на шестой позиции в мировом рейтинге миллиардеров. Его состояние измерялось в двадцать семь миллиардов долларов США, и, судя по темпам развития компании, его достаток будет лишь расти.

Эс-Кью-Эль или Сиквел: как произносится «SQL»

Image by Andrew Martin from Pixabay

SQL существует уже десятки лет и является частью рынка в миллиарды долларов. Но многие люди по-прежнему сомневаются, как правильно произносить этот термин. Это «S.Q.L» [ˈɛs kjuː ˈɛl] (эс-кью-эль) или «sequel» [ˈsiːkwəl] (сиквел)?

SQL: с чего все началось

Начнем с начала.

Реляционные базы данных начали свой путь с публикации Эдгара Кодда «A Relational Model of Data for Large Shared Data Banks» (1970 год). Идеи Кодда в то время были примечательными.

В то же время в Сан-Хосе (Калифорния) двое коллег — Дональд Чемберлин и Рэймонд Бойс — занимались разработкой языка запросов SQUARE (Specifying Queries As Relational Expressions). В 1974 году они опубликовали язык запросов SEQUEL (Structured English Query Language — «структурированный английский язык запросов»), в основе которого лежал SQUARE.

(Примечание ред. Techrocks: SEQUEL как раз и читается как «сиквел»).

К сожалению, акроним SEQUEL уже был зарегистрирован как торговая марка британской компании Hawker Siddeley, производящей авиационную технику. Поэтому название языка запросов было изменено на Structured Query Language, сокращенно — SQL.

В 1979 году был выпущен первый SQL-продукт — СУБД Oracle V2. Выпустила его компания Relational Software (позже переименованная в Oracle Corporation).

Буквально в течение нескольких недель IBM выпустила свой вариант — СУБД System R. Там тоже использовался новый язык запросов SEQUEL. Затем вышла SQL/DS в 1981 г. и, наконец, DB2 в 1983 г., которая до сих пор остается флагманом СУБД-продуктов IBM.

«S.Q.L» или «SEQUEL»?

В интернете постоянно ведутся споры о том, как нужно произносить SQL. Одни выступают за «эс-кью-эль», другие за «сиквел», а у третьих вообще свои варианты.

Стандарт говорит, что правильное произношение SQL — «эс-кью-эль». Тем не менее, многие англоговорящие специалисты по базам данных продолжают использовать «сиквел».

Например, профессор Дженнифер Уидом, соавтор четырех популярных книг по базам данных, в своем Стэнфордском курсе произносит SQL как «сиквел». Профессор Кристофер Дэйт в своей книге «A guide to the SQL Standard» (1987) тоже использует«сиквел».

(Примечание ред. Techrocks. Мы, честно говоря, не сразу поняли, как произношение может отражаться в книге. Но из комментариев разработчиков на эту тему стало ясно, что дело в артиклях. Если написано «an SQL», то читается как «эн эс-кью-эль», а «a SQL», соответственно, «э сиквел»).

Кто же прав? Я думаю, тут нет однозначного ответа. «Сиквел» получает больше голосов, но вот Чемберлин говорит «эс-кью-эль», а его голос весомее, потому что он соавтор этого языка.

Также стоит отметить, что разные реализации могут произноситься по-разному.

MySQL официально произносится как «май-эс-кью-эль», не «май-сиквел», но некоторым и второй вариант не жмет.

Microsoft SQL Server тоже часто произносят как «сиквел сервер». Например, так говорит Билл Гейтс:

Вообще в выборе произношения есть некоторая последовательность. Заметно, что, говоря о самом языке, практически все называют его «эс-кью-эль». А вот когда говорят о продуктах, используется «сиквел». Например, «PL – sequel» (PL/SQL), «Transact – sequel» (T-SQL) и «sequel server» (Microsoft SQL Server и Sybase SQL Server).

SQL в MySQL, PostgreSQL и SQLite официально произносится как «эс-кью-эль». Продукты Microsoft и Oracle приняли произношение «сиквел».

Oracle и Microsoft — гиганты в мире баз данных. Стоит ли нам прислушаться к их мнению насчет произношения SQL?

Многие возражают: «Если бы использовал Sequel, то так бы и говорил — «сиквел». Но я использую SQL, так что и говорить буду «эс-кью-эль»». Кроме того, фантазия людей не имеет границ, и встречаются довольно необычные варианты произношения: squall, sqwool, sqwll, squirrel.

От редакции Techrocks. Мы решили также заглянуть на Quora и почитать мнение разработчиков на этот счет. Из дискуссии о том, можно ли судить об опытности разработчика по тому, как он произносит SQL:

Walter Smith

Я работал в Microsoft с парой очень опытных архитекторов баз данных. Так вот они произносили SQL как «эс-кью-эль».

Мне говорили, что стандарт ISO предполагает именно такое произношение, потому что там пишется “an SQL”, а не “a SQL”.

Билл Карвин, автор книги «SQL Antipatterns: Avoiding the Pitfalls of Database Programming»

Оба варианта нормальные. Оба используются как джуниорами, так и сеньорами, причем уже много лет.

Если кто-то отпускает комментарии о том, как вы произносите SQL, этот «кто-то» просто ищет повод поспорить. Озадачьте собеседника: заявите, что пользователи vim говорят “S-Q-L”, а пользователи emacs — “Sequel”. И уйдите.

Кевин Эдвард Кляйн, автор книги «SQL in a Nutshell»

В Северной Америке говорят «сиквел», когда имеют в виду СУБД. А говоря о самом языке, произносят «эс-кью-эль». Также побуквенно произносятся названия диалектов — T-SQL, PL/SQL и т. п.

Mark Flory

Однажды я проходил телефонное собеседование в компании, которая, как я надеялся, должна была статьи моим вторым рабочим местом.

Интервьюер: «В вашем резюме говорится, что вы знаете SEQUEL».
Я: «Нет. Я о нем только слышал. Профессор в колледже упоминал этот язык однажды».
Интервьюер: «Но он значится в вашем резюме».
Я: «Эээ… Нет».
Конец разговора.

Я пошел и рассказал о происшедшем моему боссу.

Босс: «Идиот, он же об SQL говорил».
Я: «А! Вот черт. »

Mike Richmond

Люди, которые публикуют книги и статьи по SQL, вероятно, являются самыми компетентными пользователями и знают, как это произносится. Если сравнить частотность “a SQL” и “an SQL” в литературе, мы получим представление о том, какой вариант предпочитают авторы (ну или редакторы):

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *