Пояснити призначення процедур, що зберігаються, тригерів, генераторів; привести приклади цих програм. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Пояснити призначення процедур, що зберігаються, тригерів, генераторів; привести приклади цих програм.



Збережена процедура - об'єкт бази даних, що представляє собою набір SQL-інструкцій, який компілюють один раз і зберігається на сервері.Збережені процедури дуже схожі на звичайні процедури мов високого рівня, у них можуть бути вхідні та вихідні параметри та локальні змінні, в них можуть проводитися числові обчислення та операції над символьними даними, результати яких можуть привласнюватися змінним і параметрам.У збережених процедурах можуть виконуватися стандартні операції з базами даних (як DDL, так і DML). Крім того, в збережених процедурах можливі цикли і розгалуження, тобто в них можуть використовуватися інструкції управління потоком. Збережені процедури дозволяють підвищити продуктивність, розширюють можливості програмування і підтримують функції безпеки даних.

Процедура, що зберігається – це модуль, написаний на процедурній мові INTERBASE і який зберігається в БД, як мета дані (дані про дані). Процедуру можна викликати з програми. Розрізняють процедури вибору та процедури дії. Процедури вибору можуть повертати більше одного значення і використовуються для роботи з оператором SELECT. Процедури дії можуть взагалі не повертати ніяких значень і використовуються для виконання деяких дій.

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

Приклад: Створити процедуру, що зберігається, яка повертала би назву спеціальності та кількість студентів у групі, назва якої буде передаватися через вхідний параметр IN_G_Title(таблиця Group).

CREATE PROCEDURE FIND_SPEC_QUANT(IN_G_Title VARCHAR (10))

RETURNS (OUT_SP_Title VARCHAR(50). OUT_G_QUANT SMALLINT) AS

BEGIN SELECT SP_Title, G_Quant

FROM GROUP WHERE G_Title=:IN_G_Title

INTO:OUT_SP_Title,:OUT_G_Quant;

SUSPEND; END;

Крім власне виконання запиту, збережені процедури дозволяють також робити обчислення і маніпуляцію даними - зміна, видалення, виконувати DDL-оператори і викликати інші збережені процедури, виконувати складну транзакційні логіку.Один-єдиний оператор дозволяє викликати складний сценарій, який міститься в збереженої процедурою, що дозволяє уникнути пересилання через мережу сотень команд і, особливо, необхідності передачі великих обсягів даних з клієнта на сервер.

У більшості СУБД при першому запуску збереженої процедури вона компілюють (виконується синтаксичний аналіз і генерується план доступу до даних). В подальшому її обробка здійснюється швидше.

Тригер – це процедура БД, яка автоматично викликається SQL-сервером при оновленні, вилученні або додаванні нового запису в БД. Безпосередньо з програми до тригерів звернутися неможливо. Їм не можна передавати вхідні параметри і отримувати від них значення вихідних параметрів. Тригери розрізняють по наступним подіям зміни БД: додавання нового запису; зміна існуючого запису; вилучення запису. Тригери забезпечують каскадні зміни у дочірніх таблицях при операціях, що виконуються на сервері.

Тригер (англ.trigger) - це збереженої процедура особливого типу, яку користувач не викликає безпосередньо, а виконання якої обумовлена настанням певної події (дією) - по суті додаванням INSERT або видаленням DELETE рядка в заданій таблиці, або модифікації UPDATE даних у певному стовпці заданої таблиці реляційної бази даних.Тригери застосовуються для забезпечення цілісності даних і реалізації складної бізнес-логіки. Тригер запускається сервером автоматично при спробі зміни даних у таблиці, з якою він пов'язаний. Всі вироблені їм модифікації даних розглядаються як виконуються в транзакції, в якій виконано дію, що викликало спрацьовування тригери. Відповідно, у разі виявлення помилки або порушення цілісності даних може відбутися відкат цієї транзакції. Момент запуску тригери визначається за допомогою ключових слів BEFORE (тригер запускається до виконання пов'язаного з ним події, наприклад, до додавання запису) або AFTER (після події).У випадку, якщо тригер спричиняється до події, він може внести зміни до модифікованої подією запису (звичайно, за умови, що подія - не видалення запису).Деякі СУБД накладають обмеження на оператори, які можуть бути використані в тригери (наприклад, може бути заборонено вносити зміни в таблицю, на якій «висить» тригер, і т. п.) Крім того, тригери можуть бути прив'язані не до таблиці, а до подання (VIEW).У цьому випадку з їх допомогою реалізується механізм «оновлюваної представлення». У цьому випадку ключові слова BEFORE і AFTER впливають лише на послідовність виклику тригери, так як власне подія (видалення, вставка або оновлення) не відбувається.У деяких серверах тригери можуть викликатися не для кожної модифікованого запису, а один раз на зміну таблиці. Такі тригери називаються табличний.

Приклад: SET TERM!!;

CREATE TRIGGER A_UPDATE FOR HOTELTABLE

ACTIVE

AFTER UPDATE

AS

BEGIN

IF (OLD.HOTELNAME<>NEW.HOTELNAME) THEN

UPDATE NUMTABLE

SET HOTELNAME=NEW.HOTELNAME

WHERE HOTELNAME=OLD.HOTELNAME;

END!!

SET TERM;!!

Генератором називається збережуваний на сервері БД механізм, який повертає унікальні значення, що ніколи не співпадають зі значеннями, які видав той самий генератор у минулому.

Створити генератор, який буде повертати унікальне значення для назви кафедри у таблиці “Кафедра”. Попередньо поле C_Number у таблиці “Кафедра” повинно бути створено.

CREATE GENERATOR Chair_C_Number

SET GENERATOR Chair_C_Number TO 1

Звернення до генератора з оператора INSERT:

INSERT INTO Chair

(C_Number, C_Title, C_Chief, C_Quant, F_Title)

VALUES (GEN_ID (Chair_C_Number,1),”ІТ”,”Задоров В.Б.”, “20”, “ФАІТ”)

 

Архітектура із сервером застосувань: визначити властивості цієї схеми, пояснити призначення сервера застосувань; порівняти архітектуру клієнт-сервер та архітектуру віддаленого доступу з архітектурою із сервером застосувань.

Клієнт сервер застосувань сервер БД

Сервер застосувань - в триланковій архітектурі "клієнт-сервер" компонент прикладної системи, який розташовується між клієнтом і сервером БД і реалізує логіку застосування. У цій моделі клієнт виконує тільки представлення інформації, сервер БД - виконує функції управління інформаційними ресурсами БД, забезпечує функції створення і ведення БД, підтримує цілісність БД. Сервер застосувань виконує загальні функції для клієнтів, забезпечує обмін повідомленнями, підтримує запити, зберігає і виконує найбільш загальні правила бізнес-логіки, уніфікація доступу до баз даних,формування,видача документації та її архівація тощо.

Перевагою моделі із сервером застосувань є гнучкість і універсальність внаслідок розділення функцій натри незалежні складові. Головним недоліком є більш високі витрати ресурсів комп'ютера на обмін інформацією між компонентам!! застосування у порівнянні з дворівневими моделями.

Сервер застосувань дозволяє підтримувати розподілені транзакції, виконувати балансування навантаження і працювати з будь-якими СКБД, використовуючи технологію OLE DB. Забезпечує інтерпретацію створеної розробниками об'єктної моделі, підтримує різні способи виклику методів об'єктів (COM-методи; методи, реалізовані на скриптових мовах SQL, VBScript, Jscript). Користувач має можливість, у разі потреби, настроїти сервер застосувань Megapolis™ для підтримки будь-яких інших способів виклику методів об'єктів, у тому числі і розроблених самостійно.

Трирівнева модель

PL(presentation logic)—визначає інтерфейс користувача

BL(business logic)—логіка застосувань—це частина, яка визначає задачі; включає в себе програми на мовах програмування,SQL-запити.

DL (database logic)—частина коду застосування, яка безпосередньо зв’язана з обробкою даних. Вона забезпечує доступ, фізичну змін, оновлення.

Сервер застосувань виконує ф-ції:

Зберігає і виконує найбільш поширені правила бізнес-логіки і організує роботу різних користувачів у мережі. Сервер БД виконує ф-ції створення та ведення БД, підтримує цілісність БД, забезпечує створення резервних копій, захист даних і т.д.

Модель “клієнт-сервер”

Віддалений доступ - робота на віддаленому комп'ютері в режимі, коли ваш комп'ютер емулює термінал віддаленого комп'ютера, тобто ви можете робити все те ж (або майже всі), що можна робити зі звичайного термінала тієї машини.

Використання віддаленого доступу до даних

Віддалений доступ дозволяє програмам звертатися до даних, що знаходяться в віддаленій таблиці бази даних SQL Server, зберігати ці дані в базі даних SQL Server Compact Edition, зчитувати, оновлювати,а потім копіювати в вихідну таблицю SQL Server.

У моделі віддаленого доступу до даних (рис. 10.5) БД і СУБД знаходяться на сервері, застосування розташовуються і виконуються на робочих станціях. Клієнт звертається до серверу на мові SQL. В цій архітектурі сервер виконує функції обробки транзакцій, даних і запитів. Сервер не перевантаженні: виконанням застосувань. Значно зменшується завантаження мережі у порівнянні з сервером файлів, оскільки по мережі від клієнта до сервера передаються команди на мові SQL, а не файлові команди, обсяг яких значно більший. Від сервера до клієнта передаються дані, які відповідають запиту, а не блоки файлів. Недоліками моделей є таке:

- запити на мові SQL при інтенсивній роботі можуть значно завантажити мережу;

- прикладні функції застосувань необхідно повторювати для кожного клієнтського комп'ютера;

- сервер виконує пасивну роль і тому функції управління інформаційними ресурсами повинні виконуватись клієнтом.

 



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 416; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.120.204 (0.01 с.)