русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Хранимые процедуры и их назначение. Команды создания, удаления и модификации хранимых процедур.


Дата добавления: 2015-07-09; просмотров: 3293; Нарушение авторских прав


Хранимая процедура – это отдельная программа, написанная на SQL для процедур и триггеров InterBase. Сами процедуры хранятся в базе данных. Хранимые процедуры позволяют вести поиск и обработку данных непосредственно на сервере, обеспечивая максимальную независимость клиентской части приложений. В них могут использоваться любые конструкции SQL для процедур и триггеров InterBase. Они, как обычные программы, могут получать входные параметры и возвращать значения вызвавшим их приложениям. Кроме того, они могут возвращать не только отдельный набор значений – строку, но и множество строк, которое можно рассматривать как виртуальную таблицу.

Хранимая процедура может также вызываться непосредственно из приложения или других хранимых процедур или триггеров. Хранимые процедуры, возвращающие множество строк, можно использовать в команде SELECT на месте таблиц или обзоров.

Использование хранимых процедур дает ряд преимуществ:

¯ Модульность проектирования. Приложения, которые обращаются к одной базе данных, могут совместно использовать хранимые процедуры, устраняя двойной код, уменьшая размер приложений и устраняя потенциальные ошибки.

¯ Локализация изменений. Если процедура модифицируется, то все внесенные изменения автоматически отражаются во всех приложениях, которые используют процедуру, обеспечивая их согласованность. При этом нет необходимости в перетрансляции и перекомпоновке приложений.

¯ Ускорение обработки. Хранимые процедуры выполняются сервером, а не клиентом, что позволяет ускорить обработку запросов и сократить сетевой трафик.

Процедуры по своему назначению разделяются на два вида: выполнимые процедуры и процедуры выбора.

требуются следующие привилегии:

CREATE ROUTINE для создания хранимых процедур

ALTER ROUTINE необходимы для изменения или удаления процедур. Эта привилегия автоматически назначается создателю процедуры (функции)



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

Хранимые подпрограммы создаются с помощью выражений CREATE PROCEDURE или CREATE FUNCTION. Хранимая подпрограмма вызывается, используя выражение CALL , причем только возвращающие значение переменные используются в качестве выходных. Функция может быть вызвана подобно любой другой функции и может возвращать скалярную величину. Хранимые подпрограммы могут вызывать другие хранимые подпрограммы.

CREATE PROCEDURE имя_процедуры ([параметр_процедуры[,...]])

[характеристёика ...] тело_подпрограммы

CREATE FUNCTION имя_функции ([параметр_функции[,...]])

RETURNS тип

[характеристика ...] тело_подпрограммы

параметр_процедуры:

[ IN | OUT | INOUT ] имя_параметра тип

параметр_функции:

имя_параметра тип

тип:

Любой тип данных MySQL

характеристика:

LANGUAGE SQL

| [NOT] DETERMINISTIC

| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }

| SQL SECURITY { DEFINER | INVOKER }

| COMMENT 'string'

тело_подпрограммы:

Правильное SQL выражение.

 

 

39. Работа с BLOB и функции, определенные пользователем.

BLOB – (большой двоичный объект) предназначен для хранения данных произвольного формата переменной длины, и, как правило, значительного размера. BLOB представляет собой тип данных с динамически изменяемым размером, для этого типа не указываются ни размеры, ни способ кодирования. Внутри таблиц вместо данных BLOB записываются их уникальные дескрипторы (указатели) фиксированного размера на место их фактического хранения. Доступ к дескрипторам данным BLOB в InterBase осуществляется также, как к данным, хранимым в других форматах. Кроме того, InterBase хранит данные BLOB внутри базы.

Прежде чем сохранить элементы типа BLOB в базе данных, эти элементы создаются как файлы определенной структуры:

· Растровые или векторно-графические файлы;

· Звуковые файлы;

· Интерактивные аудио-видео файлы;

· Текстовые файлы

· Файлы CAD.

InterBase хранит данные BLOB используя метод сегментации. Использовать дисковое пространство для хранения каждого BLOB в одном непрерывном участке из-за возможных изменений длин объектов было бы неэффективно, поскольку их перезапись потребовала бы либо перемещения всех BLOB, либо привела бы к возникновению дыр, устранение которых также требует периодической реорганизации базы. Вместо этого, InterBase хранит каждый BLOB в сегментах, которые индексируются дескриптором, генерируемом InterBase, когда создается BLOB. Этот дескриптор называется идентификатором BLOB (BLOB ID) и представляет собой учетверенное слово, содержащее уникальную комбинацию идентификатора таблицы и идентификатора BLOB.

· Работа с BLOB осуществляется на базовом языке. Доступ реализуется одним из трех способов:

· 1) С использованием специально включаемого в программу SQL-текста. В этом случае программа перед ее компиляцией обрабатывается специальным препроцессором. Для InterBase таковым является утилита GPRE. В результате ее работы этот текст транслируется в последовательность вызовов функций API. Поскольку аналогичные методы используются и другими СУБД, то это создает возможность с минимальными потерями переходить от работы с одной базы на другую.

· 2) Предполагается прямой вызов функций API. В этом случае программа оказывается явно привязанной к платформе InterBase, но не требует предварительной препроцессорной обработки. Наиболее выгоден при написании стандартных функций.

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

· Пример 1. Изменить структуру таблицы STUDENT, добавив к ней столбец RESUME типа BLOB.

· ALTER TABLE student

· ADD resume BLOB SUB_TYPE 0 SEGMENT SIZE 80;

· Пользовательские функции (UDF) – это программы на базовом языке для выполнения в приложениях, часто используемых при работе с базой данных задач. UDF помогают обеспечить модульность приложений, выделяя их в отдельные модули многократного использования.

· К UDF можно обращаться из программ на базовом языке, а также из хранимых процедур и триггеров.

· Пользовательские функции не являются частью базы. Они помещаются в отдельную библиотеку (DLL), находящуюся на той же машине, что и база данных. Чтобы сделать функции доступными в базе, их надо в ней объявить. После этого, обращение к ним осуществляется точно так же, как к стандартным функциям InterBase. Вызов этих функций может производится везде, где синтаксисом SQL предусмотрено использование выражений.

· Синтаксис объявления внешней функции:

· DECLARE EXTERNAL FUNCTION<имя функции>

· [<список типов данных входных параметров>]

· RETURNS{<тип данных> [BY VALUE] | CSTRING (int)}

· [FREE IT]

· ENTRY_POINT‘имя функции в библиотеке’

· MODULE_NAME‘имя файла библиотеки’;

 

40. Процессор БД BDE. Архитектура и функции BDE.

BDE представляет собой набор динамических библиотек, функции которых позволяют не только обращаться к данным, но и эффективно управлять ими на стороне приложения.

В состав BDE входят следующие функциональные системы:

- администратор системных ресурсов (управляет процессом подключения к данным, при необходимости устанавливает нужные драйверы, а при завершение работы автоматически освобождает занятые ресурсы.).

-система обработки запросов (обеспечивает выполнение запросов под приложение к любым БД, для которых установлен драйвер)

-система сортировки (является запатентованной технологией и обеспечивает очень быстрый поиск по запросам SQL и через стандартные драйверы)

-система пакетной обработки (представляет собой механизм преобразования данных из одного формата в другой при выполнении операций над целыми таблицами)

-менеджер буфера (управляет единой для всех драйверов буферной областью памяти, которую одновременно могут использовать несколько драйверов, это позволяет существенно экономить системные ресурсы)

-менеджер памяти (взаимодействует с Оси обеспечивает эффективное использование выделяемой памяти, ускоряет работу драйвера, которые для получения небольших фрагментов памяти обращаются к нему, а не к ОС). Менеджер памяти выделяет большие объемы ОП и затем распределяет ее небольшими частями между драйверами согласно их потребностям.

-транслятор данных (обеспечивает преобразование форматов данных для различных типов БД)

-кэш BLOB (используется для ускорения работы с данными в формате BLOB)

-SQL генератор (транслирует запросы из формата QBEв формат SQL)

-система поддержки драйверов SQL (повышает эффективность механизма поиска при выполнении запросов SQL)

 



<== предыдущая лекция | следующая лекция ==>
Триггеры и их назначение. Команды создания, удаления и модификации триггеров. | Псевдоним БД и настройка BDE.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.72 сек.