Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 1 - ОБЗОР баз данных Oracle.doc
Скачиваний:
93
Добавлен:
15.05.2015
Размер:
920.58 Кб
Скачать

Использование и преимущества pl/sql

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

  • Языку PL/SQL легко научиться и им легко пользоваться. Даже профессионалы со скромным уровнем предварительных знаний по программированиюмогут теперь без слишком больших усилий довольно быстро освоить синтаксис PL/SQL и приступить к разработке программ средней сложности.

  • Профессионалы, если у них отсутствует какой бы то ни было предварительный опыт программирования, могут при изучении PL/SQL затратить больше усилий на ознакомление с такими базовыми конструкциями языка, как определение переменных, обработка условных операторов и тому подобное.

  • PL/SQL хранится в базе данных Oracle, что значительно повышает производительность. Это означает, что достаточно скомпилировать код в базе данных Oracle, после чего он сразу становится доступным всем пользователям системы. Исчезает необходимость в длительном развертывании, как в традиционных приложениях клиент/сервер. Результатом компиляции является код, который быстро выполняется и естественным образом работает с данными Oracle.

  • PL/SQL легко интегрируется с базами данных Oracle. Для выполнения операций SQL, в которых задействованы данные из базы данных Oracle, не требуется специального синтаксиса команд. Не требуется в качестве префиксов переменных использовать двоеточия, вопросительные знаки или какие-то другие дополнительные символы, как в других языках. Единственным исключением из этого правила является разработка триггеров, которые являются гибридом объекта базы данных и PL/SQL.

  • PL/SQL особенно хорош при обработке больших блоков данных. Oracle PL/SQL предлагает специальную конструкцию, которая называется ЦИКЛом cursor for и которая позволяет вам делать запросы к нескольким строкам данных таблицы, а затем интерактивным образом обрабатывать по одной строке данных. Этот режим позволяет обрабатывать очень большое количество данных.

  • PL/SQL приходит к пользователям с большим количеством поставляемых Oracle кодов (программ), помогающих при выполнении конкретных задач. Oracle распространяет вместе с каждой поставляемой базой данных несколько пакетов с кодами PL/SQL. Эти коды позволяют пользователям выполнять в высшей степени специализированные задачи типа ввода-вывода файлов, выборки web-страниц из базы данных, планирования заданий, динамических операторов SQL, межпроцессных взаимодействий, управления ресурсами и многие другие. Ссылаться на эти поставляемые Oracle пакеты можно точно так же, как и на другие программы на PL/SQL.

  • PL/SQL поддерживает именованные и анонимные программы. Имеется много различных типов именованных программ, которые можно разрабатывать в PL/SQL, в том числе хранимые процедуры, функции и пакеты. Эти блоки кода обычно компилируются и хранятся в базе данных, где они доступны для дальнейшего использования. Кроме того, можно писать и так называемые анонимные программы, которые компилируются в тот момент, когда вы размещаете код для выполнения, и затем выполняются, но не записываются на хранение в базу данных.

  • PL/SQL можно интегрировать с таблицами базы данных через триггеры .Oracle через триггеры интегрирует программную деятельность PL/SQL с таблицами баз данных. Эта характеристика позволяет разрабатывать приложения, использующие для регулирования данных в базе данных сложные бизнес-правила, что существенно снижает для пользователей возможность разрушения базы данных или ввода в нее неподходящих данных.

  • PL/SQL поддерживает инкапсуляцию и модуляризацию. Термин "инкапсуляция" означает использование одной именованной программы PL/SQL для вызова другой именованной программы PL/SQL. Модуляризация заключается в разбивке большой задачи на несколько более мелких и в последующем написании именованных программ PL/SQL для обработки этих более мелких задач. В результате получается код, который легче читать и сопровождать.

  • PL/SQL поддерживает перегрузку. Перегрузка происходит в том случае, когда имеется пакет, содержащий процедуры или функции с одними и теми же именами, которые принимают в качестве входных параметров различные наборы переменных или различные типы данных. Когда вызывается перегружаемая процедура, Oracle динамически определяет, какую версию процедуры следует использовать, опираясь на типы данных переданных в процедуру переменных.

  • PL/SQL позволяет программистам собирать написанные на этом языке коды в пакеты (пакетировать коды). Oracle PL/SQL поддерживает конструкцию, которая называется пакетом. Эта характеристика позволяет логически объединять несколько процедур или функций, которые работают совместно, в единую конструкцию. Сгруппированные в пакеты процедуры работают лучше, чем они работали бы поодиночке, потому что все процедуры пакета будут загружены в память сразу же после вызова первой входящей в него процедуры. Напротив, одиночные (т.е. не входящие в пакет) процедуры загружаются только после того, как они будут вызваны. За счет пакетирования сокращаются так называемые накладные расходы, требующиеся Oracle для управления памятью, и увеличивается производительность.

  • PL/SQL поддерживает расширенные типы данных. PL/SQL дает пользователям возможность определять абстрактные типы данных, например записи, позволяя добиться объектно-ориентированной гибкости в процедурном коде. Кроме того, PL/SQL предлагает конструктивные элементы таблиц для определения и использования переменных, приближающиеся к использованию массивов. Наконец, PL/SQL позволяет декларировать ссылочные типы (REF) данных, что дает возможность использовать типы данных, аналогичные указателям в С и C++.

Код PL/SQL является переносимым. Можно написать на PL/SQL программу для базы данных Oracle, выполняющейся в среде Solaris, а затем перенести программу в среду Oracle для Windows 2000 или для любой другой операционной системы, не переписывая программу.