Программирование на языке 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 не является языком Тьюринга. .
C1 | C2 |
---|---|
1 | a |
2 | b |
C1 | C2 |
---|---|
1 | a |
2 | b |
C1 |
---|
1 |
2 |
C1 | C2 |
---|---|
1 | a |
2 | b |
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/ все о бонусах.