Oracle — это реляционная база данных. Язык программирования, используемый для доступа к реляционным базам данных, называется языком структурированных запросов (SQL, Structured Query Language; часто произносится как "сиквэл"). SQL — гибкий и эффективный язык, все средства которого служат для манипулирования реляционными данными и для их исследования. Например, с помощью SQL-оператора можно удалить из базы данных сведения обо всех студентах (students), профилирующей дисциплиной (major) которых является питание (nutrition):
(Таблицы, используемые в этой книге, в том числе и таблица students, описаны в конце данной главы.)
SQL является языком четвертого поколения. Это означает, что он описывает то, что нужно выполнить, а не то, как это должно быть сделано. В приведенном операторе DELETE (удалить) неизвестно, как база данных найдет студентов, специализирующихся по питанию. Чтобы узнать, какие записи необходимо удалить, сервер, скорее всего, просмотрит сведения обо всех студентах, однако реальную картину этой операции пользователи не видят.
Языки третьего поколения, например С и COBOL, по природе своей более процедурны. Программа, составленная на языке третьего поколения (3GL, third — generation language), реализует пошаговый алгоритм решения проблемы. Например, можно выполнить операцию DELETE примерно таким образом:
Объектно-ориентированные языки программирования, такие как C++ и Java, также являются языками третьего поколения. Хотя в них реализуются принципы объектно-ориентированного программирования, алгоритмы все еще остаются пошаговыми.
У каждого типа языка программирования есть свои достоинства и недостатки. Языки четвертого поколения, подобные SQL, как правило, проще (по сравнению с языками третьего поколения) и содержат меньшее число команд. Кроме того, они изолируют пользователя от базовых структур данных и алгоритмов, реализуемых исполняющей системой. Однако в некоторых случаях процедурные конструкции языков 3GL полезны для более точного описания программы. Именно для этого применяется PL/SQL, который объединяет мощь и гибкость SQL (языка 4GL) и процедурные конструкции языка 3GL.
PL/SQL означает Procedural Language/SQL (процедурный язык/SQL). Как видно из названия, PL/SQL расширяет возможности SQL, добавляя в него такие конструкции процедурных языков, как:
Переменные и типы данных (как предварительно определенные, так и определяемые пользователями)
Управляющиесгруктуры. такие как условные операторы и циклы
Процедуры и функции
• Объектные типы и методы (OracleS и выше)
Процедурные конструкции объединяются с Oracle SQL, что дает в результате структурированный и эффективный язык программирования. Предположим, что требуется изменить профилирующую дисциплину некоего студента. Если записи о нем нет, нужно создать новую запись. Это можно сделать при помощи следующего кода PL/SQL:
В этом примере содержатся два разных SQL-оператора (UPDATE (обновить) и INSERT (ввести)), а также ЗСЬ-конструкции (операторы объявления переменных и условный оператор IF).
Внимание
Для того чтобы выполнить приведенный пример, необходимо вначале создать объекты базы данных, на которые производятся ссылки (таблицу students и последовательность student_sequence). Это можно сделать при помощи сценария tables, sql, находящегося на сайте издательства "Лори" по адресу: www. lory-press, ru. Болееподробно о создании объектов и о поставляемых текстах программ рассказывается ниже в разделе "Расположение примеров".
PL/SQL уникален тем, что объединяет гибкость SQL с мощью и способностью к конфигурированию языка 3GL. В нем имеются как процедурные конструкции, так и средства обращения к базе данных. Таким образом, это надежный, эффективный язык программирования для разработки сложных приложений.
< Предыдущая | Следующая > |
---|