Программирование на языке pl sql начало. Вспомогательные виды хранимых объектов. Пример "схемы" базы данных

Год выпуска: 2002

Издательство: Гелиос АРВ

Формат: PDF

Книга "Работаем с Oracle" представляет собой быстрое введение в методы и средства распределенной СУБД Oracle. Рассмотрены методологические основы распределенной обработки информации, основные объекты базы данных Oracle, язык SQL -базовое средство взаимодействия с сервером баз данных и его процедурное расширение PL/SQL. Представляется возможность получить углубленные знания по использованию SQL для работы с большими базами данных. Особое внимание уделено технологиям Oracle, обеспечивающим безопасность и целостность данных в условиях многопользовательского доступа. В книге также содержится описание средств, предназначенных для создания приложений на языке Java. Книга ориентирована на студентов, молодых специалистов и всех желающих самостоятельно познакомиться с Oracle - распределенной СУБД для эффективной обработки данных.

Азбука Oracle

Предисловие ко второму изданию

Благодарности

Раздел 1. Архитектура распределенных систем обработки данных

Средства обработки данных: эволюция идей и систем

Эволюция реляционных СУБД на фоне истории Oracle

Oracle 8 . Основные возможности

Архитектуры обработки данных

Локальные вычислительные сети как среда передачи данных

Эталонная модель взаимодействия открытых систем

Компоненты распределенной системы и ЭМВОС

Конфигурирование сетевых компонент Oracle

Архитектура сервера Oracle

Использование инструментального средства SQL*Plus

Информация о результатах операции

Поддержка мультиязычности в Oracle

Соглашения, принятые для описания команд

Раздел 2. SQL - язык обработки данных Oracle

Основные объекты Oracle

Средства манипулирования данными языка SQL

Структура запроса

Простейшие запросы

Формирование критерия отбора,

Базовые средства определения критерия отбора

Язык описания данных Oracle

Типы данных Oracle

Строки символов

Числовые типы

ROWID

Битовые строки

Дата и время

LOB-объекты

Таблицы. Представления. Пользователи

Создание и удаление таблиц в Oracle

Средства определения и уничтожения представлений

Средства регистрации и исключения пользователей

Операция вставки строк

Операция удаления строк

Операция модификации строк

Специальные предикаты SQL

Предикат IN

Предикат BETWEEN

Предикат LIKE

Предикат IS NULL

Предикат EXISTS

Предикаты с кванторами ALL, ANY и SOME

Теоретико-множественные операции

Внешнее объединение

Сортировка

Иерархии

Группирование и агрегатные функции

Синтаксис языка запросов

Связи с удаленными базами данных. Снимки данных

Создание связей с удаленной базой данных Oracle

Средства определения и уничтожения снимков

Последовательности. Синонимы

Создание последовательностей

Создание синонимов в Oracle

Работа с табличными областями в Oracle

Раздел 3. PL/SQL - процедурное расширение языка SQL

Структура программы на PL/SQL

Переменные, константы и типы

Управление выполнением программы

Оператор ветвления

Операторы цикла

Оператор GOTO

Курсоры

Обработка исключительных ситуаций

Процедуры, функции и пакеты

SQL-функции Oracle

Функции, устанавливающие соответствие числовых кодов и символов

Функции преобразования символов подстрок

Символьные функции усечения и дополнения строк

Символьные функции преобразования строк

Функции, связанные с выделением подстрок

Числовые функции, связанные с возведением в степень и логарифмированием

Тригонометрические функции

Числовые функции, связанные с округлениями

Числовые функции, связанные со знаком числа

Числовые функции, связанные с модулярной арифметикой

Функции, оперирующие с датами

Функции преобразования типов данных

Функции замены аргументов

Справочные функции

Создание пользовательских процедур и функций

Пакеты

Триггеры базы данных

Стандартные пакеты Oracle

Динамический SQL

Файловый ввод-вывод

Управление заданиями

Управление LOB-объектами

Управление многопользовательским доступом

Использование функций PL/SQL в SQL-выражениях

Раздел 4. Средства разграничения доступа в Oracle

Анализ включающей инфраструктуры

Идентификация пользователей

Базовое понятие системы разграничения доступа-привилегии

Предоставление системных привилегий

Системные привилегии, определяющие права по работе с таблицами и представлениями

Системные привилегии, определяющие права по работе с процедурами и триггерами

Системные привилегии, определяющие права по работе с пользователями

Системные привилегии, определяющие права по работе с табличными областями

Системные привилегии, определяющие права по работе с последовательностями

Системные привилегии, определяющие права по работе с синонимами

Системные привилегии, определяющие права по выполнению глобальных действий в системе

Системные привилегии, определяющие права по выполнению действий с остальными объектами БД

Использование конструкции PUBLIC и параметра WITH ADMIN OPTION

Предоставление привилегий доступа к объекту

Управление привилегиями с помощью ролей

Системные привилегии, определяющие права по работе с ролями

Предопределенные роли в Oracle

Создание ролей и предоставление им привилегий

Управление допустимостью использования ролей

Отмена привилегий

Отмена системных привилегий и ролей

Отмена привилегий доступа к объекту

Использование представлений для разграничения доступа

Хранимые процедуры как средство разграничения доступа

Использование триггеров для повышения защиты системы

Средства аудита

Аудит системных событий

Аудит событий, связанных с доступом к объекту

Прекращение регистрации событий

Обработка данных аудита

Профили пользователя как средство повышения защищенности системы

Дополнительные сведения

Раздел 5. Создание приложений на языке Java

Средства построения приложений и организации доступа к базам данных

Создание приложений на языке Java

Простейшее приложение на Java

Простейший апплет

Выполнение SQL-операторов создания таблиц, ввода и модификации данных

Простая выборка данных

Параметрические запросы

Хранимые процедуры на языке Java

Раздел 6. Средства обеспечения целостности данных

Определение транзакции и ее роль в СУБД

Начало и окончание транзакции

Предложения SQL, управляющие транзакциями

Предложение COMMIT WORK

Использование предложения SAVEPOINT

Предложение ROLLBACK WORK

Непротиворечивость и параллельная обработка

Типы блокировок

Экспорт/импорт данных

Раздел 7. Методы повышения производительности

Оптимизатор

Ранжирование методов доступа

Анализ запросов с целью повышения скорости их выполнения

Задание режима оптимизации

Обзор индексов Oracle

Эффективное кодирование SQL-выражений

Изменение плана выполнения запроса

Секционирование таблиц

Секционирование индексов

Операции с секциями

Индекс-таблицы

Раздел 8. Объектные расширения в OracleS

Объектные типы

Объекты в базе данных

Массивы

Вложенные таблицы

Спецификации доступа

Объектные представления

Oracle 9i

Заключение

Литература

Structured Query Language (структурированный язык запросов) или SQL - это декларативный язык программирования для использования в квази-реляционных баз данных. Многие из оригинальных черт SQL были взяты для кортежных исчислений, но последние расширения SQL включают все больше реляционной алгебры.
SQL изначально создан IBM , но многие производители разработали собственные диалекты. Он была принят в качестве стандарта американским Национальным институтом стандартов (ANSI) в 1986 и ISO в 1987 . В стандарте языка программирования SQL, ANSI заявил, что официальный произношение SQL является "эс кью эль". Тем не менее, многие специалисты базы данных употребляли "сленговое" произношение «Сиквель», что отражает первоначальное название языка, Sequel, которое было изменено позже из-за возникшего конфликта торговых марок и наименований у компании IBM. Программирование для начинающих.
Язык программирования SQL был пересмотрен в 1992 , и эта версия известна как SQL-92 в. Потом было вновь пересмотрено 1999 , чтобы стать SQL: 1999 (AKA SQL3). Программирование для чайников. SQL 1999 поддерживает объекты, которые ранее не поддерживается и в других версиях, но только в конце 2001 года лишь несколько систем управления базами данных поддерживали SQL реализации: 1999.
SQL, хотя определяется как ANSI и ISO, имеет множество вариаций и расширений, большинство из которых имеют собственные характеристики, такие как реализация корпорации Oracle «PL / SQL» или реализация Sybase и Microsoft под названием «Transact-SQL», что может запутать знакрмящегося с основами программирования. Также не редкость для коммерческих реализаций опустить поддержку основных особенностей стандарта, такие типы данных как дата и время, предпочитая какой-то их собственный вариант. Как результат, в отличие от ANSI C или ANSI Fortran которые обычно можно портирована с платформы на платформу без серьезных структурных изменений, запросы языка программирования SQL редко могут быть перенесены между разными системами баз данных без существенных модификаций. Большинство людей в области баз данных считают, что это отсутствие совместимости является намеренным, с тем чтобы обеспечить каждого разработчика собственной системой управления базами данных и привязать покупателя к конкретной базе данных.
Как следует из названия, язык программирования SQL предназначен для конкретных, ограниченных целей - запросов данных, содержащихся в реляционной базе данных. Как таковой, он представляет собой набор инструкций языка программирования для создания выборок данных, а не процедурный язык, такой как C или BASIC , которые предназначены для решения гораздо более широкого круга проблем. Расширения языка, таких как «PL / SQL» предназначены для решения этого ограничения, добавив процедурные элементы для SQL при сохранении преимуществ SQL. Другой подход заключается в том, что позволяется в зопросы SQL встраивать команды процедурного языка программирования и взаимодействовать с базой данных. Например, Oracle и другие поддерживают язык Java в базе данных, в то время как PostgreSQL позволяет писать функции на Perl, Tcl, или С.
Один анекдот про SQL: "SQL не является ни структурированным, ни языком." Суть шутки состоит в том, что SQL не является языком Тьюринга. .

Select * from T
C1 C2
1 a
2 b
C1 C2
1 a
2 b
Select C1 from T
C1
1
2
C1 C2
1 a
2 b
Select * from T where C1=1
C1 C2
1 a

Учитывая таблицу T, запрос Select * from T выведет на экран все элементы всех строк таблицы.
Из той же таблицы, запрос Select C1 from T выведет на экран элементы из столбца C1 всех строк таблицы.
Из той же таблицы, запрос Select * from T where C1=1 выведет на экран все элементы всех строк, где значение колонки С1 равно "1".

SQL ключевые слова

SQL слова делятся на ряд групп.

Первая - это Data Manipulation Language или DML (язык управления данными). DML является подмножеством языка, используемого для запроса к базам данных, добавления, обновления и удаления данных.

  • SELECT является одной из наиболее часто используемых команд DML и позволяет пользователю задать запрос как описание желаемого результата в виде множества. В апросе не указано, каким образом результаты должны быть расположены - перевод запроса в форму, которая может быть выполнена в базе данных, является работой системы баз данных, более конкретно оптимизатора запросво.
  • INSERT используется для добавления строк (формального набора) для существующей таблицы.
  • UPDATE используется для изменения значений данных в существующей строке таблицы.
  • DELETE определение существующих строк, которые будут удалены из таблицы.

Три другие ключевых слова, можно сказать, что попадают в группу DML:

  • BEGIN WORK (или START TRANSACTION, в зависимости от диалекта SQL) могут быть использованы, чтобы отметить начало транзакции базы данных, которые либо выполнятся все полностью или вообще не выполнятся.
  • COMMIT устанавливает, что все изменения данных в после совершения операций сохраняются.
  • ROLLBACK определяет, что все изменения данных после последней фиксации или отката должны быть уничтожены, до того момента, который был зафиксирован в БД как «откат».

COMMIT и ROLLBACK применяются в таких областях, как контроль транзакций и блокировки. Обе инструкции завершают все текущие транзакции (наборы операций над БД) и снимают все блокировки на изменение данных в таблицах. Присутствие или отсутствие BEGIN WORK или аналогичного заявления зависит от конкретной реализации SQL.

Вторая группа ключевых слов относится к группе Data Definition Language или DDL (язык определения данных) . DDL позволяет пользователю определять новые таблицы и связанные с ними элементы. Большинство коммерческих баз данных SQL имеют собственные расширения в DDL, которые позволяют осуществлять контроль над нестандартныыми, но обычно жизненно важными элементами конкретной системы.
Основные пункты DDL являются команды создавать и удалять.

  • CREATE определяет объекты (например, таблицы), которые будут созданы в базе данных.
  • DROP определяет, какие существующие объекты в базе данных будут удалены, как правило, безвозвратно.
  • Некоторые системы баз данных также поддерживают команду ALTER, которая позволяет пользователю изменять существующий объект по-разному - например, так можно произвести добавление столбцов в существующую таблицу.

Третьей группой ключевых слов SQL является Data Control Language или DCL(язык контроля данных) . DCL отвечает за права доступа к данным и позволяет пользователю контролировать, кто имеет доступ, чтобы просматривать или манипулировать данными в базе данных. Здесь два основных ключевых слова:

  • GRANT - разрешает пользователю выполнять операции
  • REVOKE - удаляет или ограничивает возможность пользователю выполнять операции.

Системы баз данных с использованием SQL

  • InterBase
  • MySQL
  • Oracle
  • PostgreSQL
  • SQL Server

Как стать профессионалом по разработке сайтов и начать зарабатывать? Недорогие видео курсы с ознакомительным введением.

Одна из проблем при наличии множества вариантов разработки - выяснить, какой из них лучше всего подходит в конкретной ситуации. Все хотят получить максимальную гибкость (как можно больше вариантов), но при этом так, чтобы все было просто и понятно. Oracle дает разработчикам практически неограниченный выбор. Никто еще не говорил: Этого нельзя сделать в Oracle ; говорят иначе: Сколько способов сделать это в Oracle вам надо? . Я надеюсь, что книга поможет вам сделать правильный выбор.

Эта книга для тех, кто приветствует свободу выбора, но хотел бы получить рекомендации и узнать особенности реализации тех или ин1х средств и функций Oracle. Например, СУБД Oracle предлагает замечательную возможность создания виртуальной приватной базы данных (virtual private database). В документации Oracle описано, как использовать эту возможность и что она дает. В документации, однако, не сказано, когда ее использовать и, что видимо еще важнее, когда ее не надо использовать. В документации не всегда представлены детали реализации той или иной возможности, а если они не известны, то могут неожиданно встать на вашем пути. (Речь идет не об ошибках, но о предполагавшихся способах работы и первоначальном назначении соответствующих средств.)

Для кого предназначена эта книга?

Целевой аудиторией являются все разработчики приложений для Oracle как сервера баз данных. Книга написана для профессиональных разработчиков Oracle, интересующихся тем, как решить задачу средствами этой СУБД. Практическая ориентация книги означает, что многие разделы будут очень интересны администраторам баз данных (АБД). В большинстве примеров, приведенных в книге для демонстрации ключевых возможностей, используется утилита SQL*Plus, поэтому вы не сможете узнать из нее, как разрабатывать удобный и красивый графический пользовательский интерфейс, но зато узнаете, как работает СУБД Oracle, что позволяют сделать ее основные средства и когда их нужно (и не нужно) использовать.

Книга предназначена для тех, кто хочет получить от СУБД Oracle большую отдачу при меньших усилиях. Она для каждого, кто хочет знать, как средства Oracle могут применяться в практической работе (при этом не только приводятся примеры использования того или иного средства, но и объясняется, почему это средство необходимо). Еще одна категория людей, которым эта книга покажется интересной, - технические руководители групп разработчиков, реализующих проекты на базе Oracle. В некотором отношении очень важно, чтобы они знали особенности СУБД, имеющие принципиальное значение для успешной разработки. Эта книга может дать дополнительные аргументы руководителю проекта, желающему обучить персонал необходимым технологиям или убедиться, что разработчики уже знают то, что им необходимо знать.

Чтобы получить максимальную отдачу от этой книги, читатель должен:

О Знать яз1к SQL. He обязательно быть лучшим специалистом по SQL в стране, но хорошее практическое знание существенно поможет.

Понимать программе! на яз1ке PL/SQL. Это не обязательное требование, но знание PL/SQL поможет воспринять примеры. Эта книга, например, не объясняет, как создавать циклы FOR или объявлять тип записи - об этом достаточно написано в документации Oracle и в многочисленных книгах. Однако это не значит, что вы не узнаете много нового о программировании на PL/SQL, прочтя эту книгу. Узнаете. Вы очень близко познакомитесь со многими возможностями PL/SQL и узнаете новые способы решения задач, изучите пакеты и средства, о существовании которых, возможно, даже и не подозревали.

Иметь определенный опыт работы с процедурным языком программирования, например С или Java. Я уверен, что любой, кто способен понимать и писать код на каком-то процедурном языке программирования, сможет успешно разобраться в примерах, представленных в книге.

Ознакомиться с руководством Oracle Server Concepts Manual.

Несколько слов об этом руководстве. Из-за большого объема многих пугает документация Oracle. Если вы только начинаете изучение руководства или ранее не читали подобной документации, я рекомендую начать именно с OracleSi Concepts. Его объем - около 800 страниц, и в нем описаны многие из фундаментальных концепций Oracle, о которых вам надо знать. Это руководство не описывает все технические детали (именно этому посвящены остальные 10-20 тысяч страниц документации), но представляет все важнейшие концепции. В руководстве затронуты, в частности, следующие темы:

структура базы данных, организация и хранение данных;

распределенная обработка;

архитектура памяти Oracle;

архитектура процессов Oracle;

объекты пользовательской схемы (таблицы, индексы, кластеры и т.д.);

встроенные и определяемые пользователем типы данных;

хранимые процедуры;

особенности организации транзакций;

оптимизатор;

целостность данных;

управление одновременным доступом.

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

Структура книги

Чтобы облегчить восприятие, книга поделена на шесть отдельных частей (они описаны ниже). Это не просто структурные единицы - они помогут быстрее найти наиболее существенную информацию. Книга состоит из 23 глав, каждая из которых - мини-книга, то есть практически отдельный компонент. Изредка я ссылаюсь на примеры или возможности, описанные в других главах (часть, посвященная защите, например, больше других зависит от примеров и понятий, представленных в других главах). Но, как правило, вполне можно читать главу отдельно от остальной книги. Например, вовсе не нужно прочитать главу 10, чтобы понять главу 14.

Форматы и стили глав практически идентичны:

Введение в описываемые средства или возможности.

Почему это нужно (или не нужно) использовать. Я описываю ситуации, когда

имеет смысл использовать данное средство и когда этого делать не стоит.

Как это использовать. Это не просто цитата из справочного руководства по язы-

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

Как применить то или иное средство или прием

Примеры, примеры и еще примеры

Отладка, поиск ошибок при реализации

Подводные камни при использовании средства

Устранение ошибок (превентивное)

О Резюме, подводящее итог рассмотрения.

В книге содержится множество примеров и большое количество кода, причем весь этот код доступен для загрузки на сайте http: www.wrox.com. Далее представлено подробное содержание каждой части.

Основные понятия

Глава 1. Разработка успешн1х приложений для Oracle. В этой главе описан мой принципиальный подход к программированию баз данных. Все СУБД устроены по-разному, и чтобы успешно и в срок разработать приложение, использующее базу данных, необходимо точно знать, что и как позволяет сделать ваша СУБД. Не зная возможностей СУБД, вы рискуете в очередной раз изобрести велосипед, то есть создать средства, уже предоставляемые базой данных. Если вы не знаете, как работает СУБД, то с большой вероятностью будете создавать неэффективные и непредсказуемые приложения.

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

[ 1 ] ...

Играть на онлайн деньги http://asino-zeon.com/ все о бонусах.


Top