Средства разработки приложений баз данных Oracle

Средства программирования приложений для базы данных OracleСУБД Oracle обычно используется для хранения данных, которые извлекаются приложениями. Описанные в этом разделе средства и соответствующие продукты применяются для создания таких приложений. Мы решили отдельно рассмотреть программирование баз данных и возможности их расширения. Далее в моем блоге я опишу инструменты разработки и другие продукты, встроенные в СУБД, отвечающие особым потребностям развертывания приложений.

Программирование баз данных Oracle

Во все варианты СУБД Oracle включены языки и интерфейсы, позволяющие программистам извлекать данные из базы и манипулировать ими. Средства программирования баз данных обычно интересуют разработчиков, которые создают коммерческие приложения на базе Oracle, а также ИТ-отделы, создающие приложения для нужд собственных организаций. Для доступа к данным в Oracle можно использовать SQL, ODBC, JDBC, SQLJ, OLE DB, ODP.NET, SQL/XML, XQuery и WebDAV. Программы, хранящиеся в самой базе данных, могут быть написаны на языках PL/SQL и Java.

 

SQL

Описываемый стандартом ANSI язык Structured Query Language (SQL) включает базовые средства манипулирования данными, управления транзакциями и извлечения записей из базы данных. Бизнес-пользователи по большей части взаимодействуют с Oracle посредством приложений или инструментов бизнес-анализа, которые предоставляют интерфейсы, скрывающие SQL и присущую ему сложность.

PL/SQL

PL/SQL – это разработанное Oracle процедурное расширение языка SQL. Обычно на нем реализуются логические программные модули для приложений. На языке PL/SQL можно писать хранимые процедуры, триггеры, циклы, условные предложения и обработку ошибок. Процедуры на PL/SQL можно откомпилировать и сохранить в базе данных. Блоки, написанные на PL/SQL, можно также исполнять непосредственно с помощью интерактивного инструмента SQL*Plus, имеющегося во всех версиях Oracle. Программные блоки на PL/SQL можно скомпилировать заранее.

Java

В Oracle8i язык Java впервые начал использоваться для написания хранимых процедур, а виртуальная Java-машина (JVM) была встроена непосредственно в СУБД (первоначальное название JServer). JVM обеспечивает поддержку написания на Java хранимых процедур, методов и триггеров, а также технологий Enterprise JavaBeans™ (EJB), CORBA, IIOP и HTTP.

Включение Java в СУБД Oracle позволяет программистам, владеющим Java, применить свои знания к разработке приложений для Oracle. Java-приложения можно развертывать на стороне клиента, внутри сервера приложений или в базе данных – в зависимости от конкретных обстоятельств. Oracle Database 11g включает JIT-компилятор Java, по умолчанию активированный.

Некоторых аспектов разработки на Java мы еще коснемся в будущих статьях моего блога.

Oracle и веб-службы

Начиная с версии Oracle Database 11g, СУБД может служить поставщиком веб-служб, реализованных в базе данных с помощью технологии XML DB. Веб-службы позволяют создавать запросы на языках SQL или XQuery и получать результаты в формате XML либо вызывать PL/SQL-функции или функции в составе пакета и получать их результаты. Реализация XQuery в Oracle Database 11g поддерживает пока еще обсуждаемый стандарт JSR-225 и включает ряд мер, повышающих производительность.

Большие объекты

Интерес к применению больших объектов (LOB) постоянно растет, особенно в контексте хранения таких нетрадиционных типов данных, как изображения. В базе данных Oracle уже довольно давно можно было хранить большие объекты. В Oracle8 появилась возможность иметь в одной таблице несколько LOB-столбцов. В Oracle Database 10g по существу было снято ограничение на размеры больших объектов. В Oracle Database 11g внедрена технология SecureFiles, что заметно повысило производительность операций выборки и вставки больших объектов. Для LOB-данных с применением SecureFiles поддерживается прозрачное шифрование.

Объектно-ориентированное программирование

Инфраструктура объектов для поддержки объектно-ориентированного подхода в программировании существовала со времен Oracle8i. Например, программист мог создать определяемый пользователем тип данных, содержащий методы и атрибуты. Поддержка объектов в Oracle включает механизм Object Views, с помощью которого объектно-ориентированные программы могут работать с уже хранящимися в базе реляционными данными. Хранить объекты в базе данных можно в виде массивов переменной длины (VARRAY), вложенных таблиц или индекс-таблиц (index organized tables, IOT). Объектно-ориентированные средства Oracle мы обсудим в будущих статьях блога.

Языки третьего поколения (3GL)

Программисты могут обращаться к базе данных Oracle из программ, написанных на языках C, C++, Java или COBOL, встраивая в них команды SQL. Перед тем как подавать такое приложение на вход платформенного компилятора, его необходимо пропустить через прекомпилятор. Последний заменяет команды SQL вызовами библиотечных функций, понятных стандартному компилятору. Oracle поддерживает такую методику с помощью дополнительного прекомпилятора Pro*C для языков C и C++ и прекомпилятора Pro*COBOL для языка COBOL.

В последние версии Oracle включен прекомпилятор SQLJ для языка Java, который заменяет команды SQL обращениями к библиотеке времени выполнения SQLJ, также написанной на Java.

Драйверы базы данных

Во все версии Oracle включены драйверы, позволяющие приложению обращаться к базе данных посредством ODBC (открытый стандарт взаимодействия с базами данных) или JDBC (открытый стандарт взаимодействия с базами данных для Java). Имеются также поставщики данных для OLE-DB и .NET.

Интерфейс уровня вызовов Oracle

Опытный программист, стремящийся добиться максимальной производительности, может определить команду SQL в виде символьной строки объемлющего языка, затем явно разобрать эту команду, привязать к ней переменные и выполнить ее с помощью интерфейса уровня вызовов Oracle (Oracle Call Interface, OCI). Интерфейс OCI гораздо детальнее предыдущих, для работы с ним и последующей отладки программисту придется затратить много времени и усилий. Разработка приложений с помощью OCI может занять много времени, но расширение функциональности и повышение быстродействия оправдают дополнительные затраты. Например, если механизм обеспечения высокой доступности реализован так, что несколько систем разделяют общие диски с помощью подсистемы Real Application Clusters, то OCI дает возможность написать программу, которая позволит пользователю прозрачно присоединиться ко второму серверу, если первый выйдет из строя.

Поддержка национальных языков

Подсистема поддержки национальных языков (National Language Support, NLS) предоставляет наборы символов и прочие данные, например форматы записи чисел и дат, для различных языков. В Oracle Database 11g добавлена поддержка Unicode 5.0. Кодировка Unicode позволяет хранить все данные или постепенно переводить на нее отдельные столбцы. Кодировки UTF-8 и UTF-16 обеспечивают поддержку более 57 языков и 200 наборов символов. Многие вещи локализованы изначально (например, форматы данных), но при желании с помощью утилиты Oracle Locale Builder можно создать нестандартную локаль.

Включен также инструментарий Globalization Toolkit для создания приложений, поддерживающих несколько языков.

 

Расширяемость базы данных

Работа в Интернете и в корпоративных сетях интранет выдвигает новые требования к хранению данных нетрадиционных типов и манипулированию ими. Если нужно расширить стандартную функциональность базы данных для хранения изображений, аудио, видео, пространственных данных и временных рядов, то эти возможности можно добавить путем расширения стандартного языка SQL. Дополнительную информацию об этом вы найдете в новых моих статьях.

Подсистема Oracle Multimedia

Подсистема Oracle Multimedia (бывшая interMedia) предоставляет средства манипулирования текстом, изображениями, аудио- и видеоинформацией, географическими координатами, а именно:

  • часть Multimedia, относящаяся к тексту (Oracle Text), может распознать смысл документа, производя в нем поиск по темам и ключевым фразам;
  • часть Multimedia, относящаяся к изображениям, умеет сохранять и извлекать изображения в различных форматах; начиная с версии Oracle Database 11g, поддерживается формат DICOM медицинских изображений;
  • части Multimedia, относящиеся к аудио- и видеоинформации, способны сохранять и извлекать аудио- и видеоклипы соответственно;
  • часть Multimedia, относящаяся к геоинформации, умеет извлекать данные о пространственных координатах.

Управление контентом в Oracle

К средствам управления контентом относится подсистема Content Database Option, позволяющая сохранять в базе данных документы, а также приложения для управления контентом компании Stellent, приобретенной Oracle в 2007 году: Universal Content Management, Universal Records Management и Information Rights Management.

Средства поиска в Oracle

В состав продуктов Oracle Database и Application Server входит инструмент поиска Ultra Search. Обычно он применяется для сбора информации о местонахождении различных текстовых данных, хранящихся в корпоративной сети. Выборка документов базируется на правах доступа конкретного пользователя. Кроме того, предлагается альтернативная система Secure Enterprise Search, обладающая большей гибкостью в среде, не основанной целиком на продуктах Oracle.

Подсистема Oracle Spatial Option

Подсистема Oracle Spatial Option включена только в редакцию Oracle Enterprise Edition. Она позволяет оптимизировать выборку и отображение данных, привязанных к координатам, и применяется при разработке геоинформационных систем (ГИС). Некоторые производители таких систем уже включили ее в свои продукты и применяют в качестве механизма поиска и выборки.

XML DB

Поддержка типа данных XML была встроена в СУБД Oracle9i. Структурированный XML-объект хранится в объектно-реляционной базе данных в соответствии со спецификацией W3C DOM. Встраивание синтаксиса XPath в поисковые запросы на языке SQL отвечает спецификациям группы SQLX. Язык XQuery также поддерживается.

Вас заинтересует / Intresting for you:

Oracle Personal Edition
Oracle Personal Edition 5174 просмотров Надин Tue, 21 Nov 2017, 13:32:12
Oracle изменения изменений!
Oracle изменения изменений! 2251 просмотров Stas Belkov Tue, 21 Nov 2017, 13:18:46
Основные функций СУБД Oracle (...
Основные функций СУБД Oracle (... 2861 просмотров Stas Belkov Tue, 21 Nov 2017, 13:19:55
Разница между базой данных и э...
Разница между базой данных и э... 2127 просмотров Александров Попков Tue, 21 Nov 2017, 13:18:46
Войдите чтобы комментировать

iVoron аватар
iVoron ответил в теме #8736 09 окт 2017 08:52

apv пишет: А на С++ пишет кто-то серьезные приложения под базы данных Oracle?

Да, еще как. У нас несколько серьезных корпоративных систем написаны на Си.
apv аватар
apv ответил в теме #8421 13 апр 2017 07:52
А на С++ пишет кто-то серьезные приложения под базы данных Oracle?