Oracle editionable что это

Обновлено: 03.07.2024

В этом году бренду QIWI исполнилось 10 лет. За это время в нашей основной транзакционной базе накопилось более чем 130 тысяч строк хранимого PL/SQL кода. На Хабре регулярно встречаются статьи о том, как различные команды разработчиков категорически не используют хранимый код в БД, стараясь убрать излишнюю нагрузку с БД и таким образом удешевить систему. По этой теме можно долго дискутировать, и такая точка зрения опровергается, например, вот в этом видео.

Что бесспорно — хранимый PL/SQL код традиционно имел один существенный минус: релиз PL/SQL программы требовал остановки сервиса, поскольку процесс компиляции этого кода должен был получить эксклюзивную блокировку в словаре БД (так называемый library cache pin). Не вовремя запущенная случайная рекомпиляция могла подвесить всю систему. Приходилось регулярно выделять технические окна для релиза PL/SQL кода. Заверенные скриншоты жалоб наших возмущённых клиентов, попавших в такие окна, бережно хранятся в наших архивах. Однако не прошло и 20 лет от создания PL/SQL, как Oracle этот недостаток если не устранил полностью, то существенно смягчил.

Welcome to Oracle Edition-Based Redefinition

Мы не будем приводить детальные примеры кода с использованием Edition-Based Redefinition, а опишем несколько ключевых пунктов проекта по его внедрению. С некоторой натяжкой этот механизм, который принято сокращать до EBR, можно считать системой контроля версий объектов БД внутри самой БД. Теперь приложения способны работать с разными версиями одних и тех же процедур, пакетов и представлений. Однако в БД, кроме кода, есть еще и структуры данных в виде таблиц, и Oracle пришлось придумать способ межверсионной трансформации как самих таблиц, так и данных в них.

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

Приложение

Наше Java-приложение умеет само переключаться на использование новой версии PL/SQL кода. Текущий edition можно извлечь из базы таким нехитрым запросом:


Приложение хранит это значение и регулярно опрашивает базу, не изменилось ли оно.

Успешный релиз новой версии PL/SQL кода выполняет команду вида


а приложение, узнав, что edition изменился, в подходящий момент выполняет команду вида

и тем самым переключается на использование новой версии хранимого кода.

Теоретически возможен и откат PL/SQL кода на предыдущую версию – для этого надо выполнить команду alter database с установкой предыдущего edition, а приложение должно на него переключиться.

СУБД Oracle внутри крайне сложна, в её оптимизацию и развитие вложено столько человеко-лет, что любые новые возможности в её ядре не проходят безболезненно для остального функционала. Речь конечно же идёт о багах и устраняющих их патчах. EBR был вовсе не исключением, а, наоборот, существенным возмутителем спокойствия. Скажем так: без техподдержки обойтись невозможно.

К сожалению, отдельного списка патчей, устраняющих связанные с EBR баги, Oracle не ведёт. Однако Oracle активно использует EBR в одной из своих популярных ERP-систем – Oracle E-Business Suite (OEBS). Поэтому можно взять набор патчей, который Oracle рекомендует к установке на базу OEBS, и установить на вашу базу те из них, которые потенциально наиболее вероятны для вашего приложения. Найти его можно на сайте поддержки Oracle в Section 3 документа Oracle E-Business Suite Release 12.2: Consolidated List of Patches and Technology Bug Fixes (Doc ID 1594274.1)

Подводные камни

При работе с Oracle Edition-Based Redefinition мы нашли четыре недостатка:

  1. Ограничение на число editions, равное 2000. Со скоростью 2 релиза в неделю мы исчерпаем их за 20 лет. Надеемся, к тому времени Oracle сподобится-таки убрать это ограничение.
  2. Плоская, а не древовидная структура editions, 1 parent <–> 1 child. Нам это пока что никак не мешает.
  3. Не-версионируемые (non-editioned) объекты не могут ссылаться на версионируемые (например, в версии 11g такие объекты, как materialized view, являются non-editioned и не могут ссылаться на editioned view).
  4. Специфика в раздаче прав на версионируемый код.

Дело в том, что выдача прав на версионируемый объект, последний раз изменявшийся в каком-либо предыдущем edition, копирует этот объект в текущий edition, со всеми уже знакомыми нам симптомами перекомпиляции и, если не повезет, зависаниями на словарной блокировке library cache pin. По всей видимости, это связано с внутренней реализацией editioned схем в БД.

Поэтому процедуру раздачи прав пришлось слегка изменить: сначала мы находим edition, в котором искомый объект был изменен последний раз, устанавливаем этот edition в нашей сессии с помощью вышеописанной команды alter session, и лишь после этого выдаем нужные права.

Как говорится, не баг 26654363, а expected behavior. Что ж, обходной путь не слишком трудозатратен и с ним в подавляющем большинстве случаев можно ужиться.


В последнее время к мне, один за другим, обратилось уже три крупных российских ISV-разработчика приложений с вопросами по технологии Edition Base Redefinition [EBR]. Причем все они разрабатывают ПО для банков. Я думаю, что Вы поняли, чем вызван их интерес. Ведь каждое обновление приложения - это вынужденный простой для заказчика, что особенно болезненно для банковского сектора. Вообще говоря, минимизация плановых простоев - это важная задача в любой организации.

Технология версионирования PL/SQL-объектов Edition Base Redefinition появилась в Oracle Database версии 11.2. EBR позволяет проводить обновление приложения (вернее изменять код его хранимых процедур) "на лету", без остановки приложения. При этом, компиляция новой версии PL/SQL-объекта (пакета, объектного типа, функции или процедуры) производится в новой версии; работающие в этот момент пользователи НЕ получают исключение "ORA-04068 existing state of packages has been discarded", а продолжают работу с старой версией PL/SQL-кода.

Помимо чисто технических вопросов, главные вопросы, которые задавали мне представители этих компаний, звучали примерно так: "Есть ли примеры крупных внедрений этой технологии, что будет с этой технологией в дальнейшем, и можно ли воообще полагаться на нее?".

Что касается примеров использования этой технологии.
В сентябре этого года была выпущена новая версия ERP-системы от Oracle - Oracle E-Business Suite 12.2. Начиная с версии 12.2, процедура "наката" обновлений на Oracle EBS происходит без остановки, на уровне БД это достигается с помощью технологии EBR. Oracle EBS - это очень сложное приложение, которое содержит десятки тысяч таблиц и миллионы строк PL/SQL-кода. На мой взгляд, использование EBR в таком приложении, говорит о зрелости технологии. Конечно, поставщик технологии (то есть Oracle Corp.), а EBR не является готовым продуктом, а представляет собой базовую технологию, не использовал бы ее в своем основном приложении, если бы не был уверен в ее надежности и не имел бы планов по ее дальнейшему развитию.


По поводу дальнейшего развития технологии EBR.
В недавно вышедшей СУБД Oracle Database 12c R1, технология EBR получила свое дальнейшее развитие - в ней появились очень полезные новые возможности. Давайте рассмотрим их более подробно.

1. Потенциальная версионируемость отдельного объекта, а не всех объектов схемы.
1.1 В Oracle Database 11g версионируемость включается для всех объектов схемы

В версии Oracle Database 11.2 потенциальная версионируемость включалась на уровне всей схемы. То есть, когда Вам нужно было включить версионирование объектов, это производилось на уровне всей схемы:

Таким образом, при помощи команды "ALTER USER ENABLE EDITIONS" версионируемость включалась для всех объектов схемы! Как Вы помните, неверсионируемый объект не может зависеть от версионируемого объекта. Если, например, мы создадим объектный тип PL/SQL в схеме, для которой включена потенциальная версионируемость, то мы не сможем создать таблицы с столбцом этого объектного типа (поскольку таблицы не версионируются!): В вышеприведенном примере объектный тип TMyType потенциально может иметь другие версии, поэтому невозможно использовать его в качестве типа для столбца таблицы, несмотря на то, что мы не собираемся иметь другие версии этого типа. Это происходит потому-что потенциальная версионируемость была включена для всех объектов схемы RSCOTT. По этой причине, кстати, в версии 11.2 нельзя было создавать очереди Advanced Queuing с типом из схемы для которой включено версионирование: Для решения вышеописанной проблемы, в Oracle Database 11.2 приходилось использовать обходной путь (workaround), заключающийся в выводе НЕверсионируемых объектов в отдельную схему, для которой версионируемость не включалась: 1.2 В Oracle Database 12с версионируемость включается для уровне объекта

Начиная с Oracle Database версии 12.1 в вышеприведенных дополнительных действиях нет необходимости, поскольку теперь потенциальная версионируемость PL/SQL-объекта может включаться для отдельного объекта. При создании PL/SQL-объекта указывается ключевое слово EDITIONABLE, если объект потенциально может версионироваться, NONEDITIONABLE - если объект не будет версионироваться:

2. Ограничение версий для выражений вычисляемых столбцов в таблицах и материализованных представлениях
2.1 Особенности использования виртуальных столбцов в Oracle Database 11g

Еще начиная с версии 11g Release 1, в СУБД Oracle появилась поддержка виртуальных столбцов, то есть столбцов, которые заданы вычисляемым выражением. В выражении виртуального столбца также могут участвовать хранимые PL/SQL-функции, как например в следующем случае:

Обратите внимание, что нам удалось создать неверсионируемый объект (таблицу), который зависит от версионируемого объекта (PL/SQL-функции).
Поскольку значение виртуального столбца на диске не сохраняется, мы смогли это сделать!

Занесем одну строку в таблицу и проверим значение виртуального столбца: Как Вы наверно догадались, наc подстерегает одна очевидная опасность: при смене версии функции, виртуальный столбец изменит свое значение!
Например: Понятно, что если если наша функция getMyId изменит свое поведение в новой версии, то значение виртуального столбца будет зависеть от текущей версии в сессии пользователя: 2.2 Определение доступных версий для виртуальных столбцов в Oracle Database 12c
Начиная с Oracle Database 12c для виртуальных столбцов можно задавать различные ограничения на используемые версии. С помощь модификатора EVALUATE USING CURRENT EDITION мы жестко фиксируем версию для виртуального столбца на версию, которая была в момент создания таблицы (либо в момент выдачи оператора ALTER TABLE): Как видите, несмотря на переключение версий, виртуальный столбец всегда использует версию которая была в момент выдачи DDL-оператора. Также мы можем явно указать используемую версию для виртуального столбца: Если для виртуального столбца указать EVALUATE USING NULL EDITION, то поведение виртуального столбца будет как в Oracle 11gR2 - значение будет вычисляться в текущей версии в которой происходит обращение к столбцу. Это поведение будет работать по умолчанию, - если фраза EVALUATE USING для столбца не задана:

Дополнительно, c помощью фразы UNUSABLE BEGINNING WITH указывается версия, начиная с которой в иерархии версий, будет запрещено использование виртуального столбца:

Наоборот, c помощью фразы UNUSABLE BEFORE, можно указать версию, для всех родительских версий которой будет запрещено использование виртуального столбца.

2.3 Поддержка версионированных PL/SQL-функций в материализованных представлениях в Oracle Database 12c

До Oracle Database 12c было запрещено использование версионированных PL/SQL-функций в материализованных представлениях:

Начиная с Oracle Database 12c стало возможным обращение к версионируемым PL/SQL-объектам внутри материализованного представления. Для этого необходимо при создании материализованного представления указать фразу EVALUATE USING . , либо фразу UNUSABLE BEGINNING . . Назначение этих модификаторов установки версии для PL/SQL-вызовов внутри материализованных представлений, полностью совпадает с их назначением в рассмотренных ранее примерах версионированиия виртуальных столбцов:

В вышерассмотренном примере, для вызова функции getMyId жестко устанавливается версия MyVersion1.
Как Вы могли заметить, установка версии действует на все PL/SQL-вызовы внутри материализованного представления: в вычисляемых столбцах, и в предикатах фразы WHERE.

3 Версионирование для публичных синонимов (public synonym)

В Oracle Database 11g Release 2 (11.2) публичный синоним не мог ссылаться на версионируемый объект: В версии 12с эта проблема решена и теперь публичный синоним может версионироваться. Для создания версионируемого синонима при его создании необходимо указать ключевое слово EDITIONABLE

В новейшей версии СУБД Oracle Database - 12c, технология обновления PL/SQL-кода без остановки - Edition Base Redefinition, получила свое дальнейшее развитие. Появились такие мощные возможности, как потенциальное версионирование на уровне отдельного объекта, версионирование виртуальных столбцов, версионирование кода в материализованных представлениях. Также следует отметить очень полезную новую возможность - версионирование публичных синонимов.

Blockquote

В чем разница между созданием EDITIONING и созданием EDITIONABLE EDITIONING представлений?


50.3k 152 152 золотых знака 54 54 серебряных знака 211 211 бронзовых знаков
  • EDITIONING - это тип представления, то есть - тип обьекта в БД
  • (NON)EDITIONABLE - это свойство некоторых типов обьектов в БД

Эти клаузы относятся к Переопределение на основе редаций (EBR=Edition-based redefinition).

EBR вводит концепцию редакций. Оно расширяет пространство имён для объектов БД. Теперь полное квалифицированное имя объекта:

Таким образом, один объект может иметь множество определений в одной и той же схеме. Имя edition_name является частью настроек сессии, добавляется неявно, оно не может быть указано напрямую.

Редактирующие представления (editioning views) - это специальный тип представления, используемый для поддержки изменений схемы с нулевым временем простоя. Это своего рода обёртка для базовой таблицы, которая позволяет в каждой редакции иметь свою проекцию таблицы, и тем самым, каждая из них видит только свои колонки. Код приложения должен быть изменён, чтобы доступ к базовым таблицам был только через эти представления. На них распространяется ряд ограничений:

  • Within any edition, you can create only one editioning view for any single table.

  • You cannot specify the object_view_clause, XMLType_view_clause, or BEQUEATH clause.

  • You cannot define a constraint WITH CHECK OPTION on an editioning view.

  • In the select list of the defining subquery, you can specify only simple references to the columns of the base table, and you can specify each column of the base table only once in the select list. The asterisk wildcard symbol * and t_alias.* are supported to designate all columns of a base table.

  • The FROM clause of the defining subquery of the view can reference only a single existing database table. Joins are not permitted. The base table must be in the same schema as the view being created. You cannot use a synonym to identify the table, but you can specify a table alias.

  • The following clauses of the defining subquery are not valid for editioning views: subquery_factoring_clause, DISTINCT or UNIQUE, where_clause, hierarchical_query_clause, group_by_clause, HAVING condition, model_clause, or the set operators (UNION, INTERSECT, or MINUS)

На редактирующие представления можно создать межредакционные триггеры (cross-edition triggers). Они используется для сохранения колонок, присутствующих в одной редакции, но отсутствующих в другой.

Ключевые слова EDITIONABLE/NONEDITIONABLE применяются к обычным видам представлений. Они определяют, может ли каждая редакция иметь свою собственную версию представления ("подлежит редактированию"), или все редакции должны иметь одну и ту же версию представления ("подлежит редактированию").

В Oracle PL/SQL набор элементов: процедур, функций, определения типов; объявления переменных, констант можно объединить в пакет. После написания пакет PL/SQL компилируется, а затем сохраняется в базе данных Oracle, где его содержимое может использоваться многими приложениями.

Что такое пакет Oracle PL/SQL?

Пакет Oracle PL/SQL - это объект схемы, который группирует логически связанные типы, элементы и подпрограммы. Пакеты обычно состоят из двух частей: спецификации и тела, хотя иногда тело не нужно. Спецификация - это интерфейс для ваших приложений.
В спицификации пакета объявляются типы, переменные, константы, исключения, курсоры и подпрограммы, доступные для использования.
Тело пакета полностью определяет курсоры и подпрограммы и реализует спецификацию.

Пакеты Oracle PL/SQL

Как показано на рисунке, вы можете думать о спецификации как о рабочем интерфейсе, а о теле - как о «черном ящике». Вы можете отлаживать, улучшать или изменять тело пакета без изменения интерфейса (спецификации) пакета.

Для создания пакетов используйте оператор CREATE PACKAGE.

Синтаксис

Синтаксис CREATE PACKAGE в Oracle PL/SQL:

CREATE [OR REPLACE] PACKAGE package_name
[AUTHID ]

[PRAGMA SERIALLY_REUSABLE;]
[collection_type_definition . ]
[record_type_definition . ]
[subtype_definition . ]
[collection_declaration . ]
[constant_declaration . ]
[exception_declaration . ]
[object_declaration . ]
[record_declaration . ]
[variable_declaration . ]
[cursor_spec . ]
[function_spec . ]
[procedure_spec . ]
[call_spec . ]
[PRAGMA RESTRICT_REFERENCES(assertions) . ]
END [package_name];

[CREATE [OR REPLACE] PACKAGE BODY package_name
[PRAGMA SERIALLY_REUSABLE;]
[collection_type_definition . ]
[record_type_definition . ]
[subtype_definition . ]
[collection_declaration . ]
[constant_declaration . ]
[exception_declaration . ]
[object_declaration . ]
[record_declaration . ]
[variable_declaration . ]
[cursor_body . ]
[function_spec . ]
[procedure_spec . ]
[call_spec . ]
[BEGIN
sequence_of_statements]
END [package_name];]

collection_type_definition - определение типа коллекции
record_type_definition - определение типа записи
subtype_definition - определение подтипа
collection_declaration - объявление коллекции
constant_declaration - объявление константы
exception_declaration - объявление исключения
object_declaration - объявление объекта
record_declaration - объявление записи
variable_declaration - объявление переменной
cursor_spec - спецификация курсора
function_spec - спецификация функции
procedure_spec - спецификация процедуры
call_spec - спецификация вызова

Спецификация пакета содержит публичные объявления, которые видны вашему приложению. Вы должны объявить подпрограммы в конце спецификации после всех других элементов (кроме прагм, которые вызывают конкретную функцию; такие прагмы должны следовать спецификации функции).

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

Пример пакета Oracle PL/SQL

В приведенном ниже примере, вы определяете тип запись, курсор и две процедуры по трудоустройству. Обратите внимание, что процедура hire_employee использует последовательность базы данных empno_seq и функцию SYSDATE для вставки нового номера сотрудника и дату приема на работу соответственно.

Oracle Database

Oracle – это крупнейшая в мире компания по разработке программного обеспечения для предприятий. Специализацией Oracle является разработка систем управления базами данных, таких как Oracle Database, а также других бизнес-приложений.

Oracle Database

Oracle Database — это объектно-реляционная система управления базами данных (RDBMS или Relational DataBase Management System). Многие крупнейшие компании мира в качестве системы хранения баз данных выбирают именно Oracle Database.

В названии каждой версий Oracle Database мы наблюдаем номер версии и букву, например 11g, где g – это «grid» или сеть, символизируя тем самым поддержку grid-вычислений.

В 2013 году вышла версия 12c, где c означает cloud (облако).

В 2018 году вышла версия 18c, а на текущий момент активно используется версия 19с, которая вышла в 2019 году.

Данная СУБД поддерживает работу на многих платформах, включая: Linux, Windows, Oracle Solaris, Mac OS X Server и т.д.

В Oracle Database используется язык программирования PL/SQL (Procedural Language / Structured Query Language) — это расширение языка SQL, которое разработала компания Oracle.

Редакции Oracle Database

У компании Oracle есть несколько предложений в отношении продукта Oracle Database, при этом есть редакции, которые можно использовать локально (On-Premise) и в облаке (Cloud).

Давайте коротко рассмотрим эти редакции.

On-Premise

Oracle Database Standard Edition 2 (SE2)

Стандартная редакция, включающая в себя все средства, необходимые для создания критически важных бизнес-приложений. Данная редакция не поддерживает кластеризацию Oracle Real Application Clusters (Oracle RAC).

Примечание. Oracle Database Standard Edition 2 доступна, начиная с Oracle Database 12 c Release 1 (12.1.0.2). Для версии 12.1.0.1 доступны Oracle Database Standard Edition One и Oracle Database Standard Edition.

Oracle Database Enterprise Edition (EE)

Oracle Database Enterprise Edition обеспечивает производительность, доступность, масштабируемость и безопасность для разработки приложений, таких как: приложения для обработки больших объемов транзакций (OLTP), хранилища данных с интенсивными запросами и требовательные интернет-приложения.

Oracle Database Enterprise Edition содержит все компоненты Oracle Database, но может быть дополнительно расширена путем приобретения опций и пакетов.

Oracle Database Enterprise Edition on Engineered Systems (EE-ES)

Специальная редакция для установки в локальной системе Oracle Exadata Database Machine или Oracle Database Appliance.

Включает в себя все компоненты Oracle Database, но может быть дополнительно расширена путем приобретения опций и пакетов.

Политики лицензирования EE-ES различаются в зависимости от того, установлена ли она на Oracle Exadata Database Machine или Oracle Database Appliance.

Oracle Database Personal Edition (PE)

Редакция Oracle Database Personal Edition поддерживает однопользовательские среды разработки и развертывания, требующие полной совместимости с Oracle Database Standard Edition 2 и Oracle Database Enterprise Edition.

Данная редакция включает в себя все компоненты и опции, входящие в Enterprise Edition, за исключением опции Oracle RAC One Node и Oracle Real Application Clusters, которые нельзя использовать с Personal Edition. Кроме этого пакеты управления Oracle также не получится использовать с редакцией Personal Edition.

Oracle Database Express Edition (XE)

Oracle Database Express Edition – это бесплатная редакция, которую можно использовать для обучения или для разработки небольших приложений.

Безусловно данная редакция имеет много ограничений как в части функциональности, так и в объеме использования ресурсов, но об этом чуть позже.

Кроме этого, поддержка предоставляется только на онлайн-форуме.

Cloud

Кроме редакций, которые можно установить локально, есть еще и несколько облачных редакций:

  • Oracle Database Cloud Service Standard Edition (DBCS SE)
  • Oracle Database Cloud Service Enterprise Edition (DBCS EE)
  • Oracle Database Cloud Service Enterprise Edition – High Performance (DBCS EE-HP)
  • Oracle Database Cloud Service Enterprise Edition – Extreme Performance (DBCS EE-EP)
  • Oracle Database Exadata Cloud Service (ExaCS)

Более подробно о редакциях, их возможностях и ограничениях можете почитать на официальном сайте в разделе – Информация о лицензировании базы данных.

Ну а мы перейдем к знакомству с редакцией Oracle Database Express Edition (XE), которую можно использовать абсолютно бесплатно.

Oracle Database Express Edition (XE)

Oracle Database Express Edition (Oracle Database XE) – это бесплатная редакция системы управления базами данных Oracle Database.

Oracle Database Express Edition (XE)

Данная редакция хоть и бесплатна, но обладает достаточно хорошим функционалом, это и Oracle Database In-Memory, и секционирование, функционал для аналитики и безопасности данных и многое другое.

Иными словами, не нужно думать, что в этой редакции нет никакого функционала, он есть, и может удовлетворить многие предприятия. Безусловно, для крупных компаний данная редакция не подойдет, но для компаний, которые только стартуют, Oracle Database Express Edition будет неплохим выбором, а если вдруг компания вырастет и ей нужно будет масштабироваться, то она легко может перейти на более функциональные редакции Oracle Database, и тем самым получать регулярные исправления и круглосуточную поддержку.

Ограничения редакции Oracle Database Express Edition (XE)

Данная редакция имеет ограничения как в части функциональности, так и в объеме использования ресурсов, а также в формате поддержки:

  • Размер баз данных до 12 ГБ
  • Объем оперативной памяти, который может быть задействован, 2 ГБ
  • До 2 потоков CPU
  • До 3 подключаемых баз данных
  • Поддержка только в формате онлайн-форума

Для чего можно использовать Oracle Database Express Edition (XE)

Давайте поговорим о том, в каких случаях нам может пригодиться данная редакция, кто и для чего ее может использовать.

Для разработки приложений

Если Вы планируете разрабатывать различные приложения для клиентов, при этом эти приложения должны иметь возможность хранения и обработки данных, то в качестве системы хранения данных Вы можете использовать бесплатную редакцию Oracle Database Express Edition (XE) и тем самым снижать стоимость своего продукта и, как следствие, первоначальные расходы своих клиентов.

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

Для хранения и анализа небольших данных

Если в Вашей компании возникла необходимость в хранении, обработке и анализе данных, при этом текущая информационная система не обладает теми преимуществами, которыми обладает реляционная система управления базами данных, то Вы можете использовать бесплатную редакцию Oracle Database Express Edition (XE) и тем самым хранить какую-то часть данных в реляционном виде и решать определенные задачи.

Для изучения языка SQL

Если Вы хотите изучить язык SQL, то Вам обязательно необходима площадка для обучения, где бы Вы смогли практиковаться и решать различные задачки.

Однако для таких целей покупать целую систему управления базами данных, конечно же, не стоит, да и не требуется, так как есть бесплатные системы, которые отлично справятся с такой ролью. В число таких систем входит как раз Oracle Database Express Edition (XE), которую можно использовать для изучения языка SQL или языка PL/SQL, который является процедурным расширением языка SQL в Oracle Database.

Например, если Вы планируете устроиться в компанию, где используется Oracle Database и требуются знания языка SQL, или Вы уже работаете в такой компании и Вам предстоит работать с этой системой, то Вы можете абсолютно свободно установить Oracle Database Express Edition (XE) к себе на домашний компьютер с целью изучения языков SQL и PL/SQL.

Заметка! Если Вас интересует язык SQL, то рекомендую почитать книгу «SQL код» – это самоучитель по языку SQL для начинающих программистов. В ней очень подробно рассмотрены основные конструкции языка.

Для тестирования функционала Oracle Database

Безусловно, данную редакцию не стоит рассматривать в качестве системы хранения данных для крупных Enterprise проектов, так как ограничения этой редакции не позволят Вам в полном объёме использовать возможности и функционал этой системы.

Однако, крупные компании перед покупкой лицензии, с целью тестирования функционала системы, планирования инфраструктуры, а также тестирования приложений, могут абсолютно свободно использовать для таких задач бесплатную редакцию Oracle Database Express Edition (XE).

Для реализации разовых проектов

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

Например, у меня как-то раз стояла задача мигрировать данные с Microsoft SQL Server в Oracle Database, дело в том, что компания внедряла новую информационную систему, разработкой которой занимался подрядчик, и этому подрядчику необходимо было предоставлять данные из нашей прежней системы в формате дампа Oracle Database.

Но, как было уже отмечено, наша система работала с Microsoft SQL Server, поэтому чтобы представлять данные в формате дампа Oracle, мне пришлось установить бесплатную редакцию Oracle Database Express Edition (XE), загружать данные с Microsoft SQL Server в эту промежуточную систему, и затем выгружать данные в дамп.

Подробно о том, как создать дамп базы данных Oracle Database, я рассказывал в материале – Экспорт и импорт дампа базы данных Oracle с помощью утилит expdp и impdp.

Таким образом, Oracle Database Express Edition (XE) можно использовать не только для хранения данных на постоянной основе, но и для хранения промежуточных данных при реализации того или иного проекта.

На сегодня это все. В следующих материалах мы продолжим знакомство с Oracle Database Express Edition (XE) и начнем с рассмотрения процесса установки, поэтому следите за выходом новых статей в моих группах в социальных сетях: ВКонтакте, Facebook, Одноклассники, Twitter и Tumblr. Подписывайтесь, и Вы не пропустите выход нового материала!

Читайте также: