Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД_ответы.doc
Скачиваний:
27
Добавлен:
27.08.2019
Размер:
3.25 Mб
Скачать

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

Клієнт-це система,процес,комп»ютер,користувач,які звертаються до сервера за певними ресурсами.

С ервер-це система ,процес,комп»ютер,який володіє певним ресурсом.

У файлово-серверній системі дані збер. на файловому сервері (напр.Novell NetWare или Windows NT Server), а їх обробка виконується на робочих станціяї,на яких,як правило, функціонує з СУБД - Access, FoxPro, Paradox и т.п.. На робочий станції виконується усе: формування інтерфейсу, логічна обробка даних, маніпулювання даними. Файловий сервер пропонує послуги лише самого низького рівня-відкриття,закриття та модифікацію файлів (не баз даних).Таким чином маніпулюванням даними займаються декілька незалежних процесів.Для виконання будь-якох обробки(пошук,модифікація) необхідно усі дані передати по мережі на робочу станцію.Файловий сервер виконує ф-ції сховища даних.Вся обробка виконується у

клієнта.

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

У клієнт-серверній системі функціонує(як мінімум) 2 приложения –кліент та сервер, які ділять між собою функції.Зберіганням та маніпулюванням даними займається сервер бд в якості якого може Microsoft SQL Server, Oracle, Sybase и т.п.. Формуванням інтерфейсу займається клієнт,для побудови якого можливо використовувати цілий ряд спеціальних інструментів ,а також більшість СУБД.Логіка обробки даних може виконуватись як на клієнті так і на сервері.Таким чином саме маніпулюванням даними займається один процес.При цьому обробка даних виконується у тому ж місці де й збурігаються дані –на сервері,що виключає передачу великої інформ. Через мережу.

К

сервер

лієнт-сервер моделі є: з товстим клієнтом:

PL

Bisness logic може дублюватись на машині клієнта.для кожного застосування. Сервер тут виконує пасивну роль.Фун=її управління інфо ресурсами виконує клієнт.Велики вимоги до клієнта ,потрібно багато BL.

Клієнт-сервер ,модель з тонким клієнтом:

На сервері розташовані процедури ,що зберігаються ,які представляють собою спец. Програмні модулі.Тригери-предст. Собою процедури,які автоматично запускаються.Вони викон. Ф-ї підтримки посилкової цілісності.Сервер є активним тому що не тільки клієнт може його запускати але й тригери.

Недоліки: велике завантаження серверу БД.

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

Сервер застосувань виконує ф-ї:зберігає і виконує найбільш поширені правила бізнес логіки;організовує роботу різних користувачів у мережі.

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

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

Збережена процедура - об'єкт бази даних, що представляє собою набір 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”, “ФАІТ”)

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

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

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

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

Сервер застосувань дозволяє підтримувати розподілені транзакції, виконувати балансування навантаження і працювати з будь-якими СКБД, використовуючи технологію 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 при інтенсивній роботі можуть значно завантажити мережу;

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

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