Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lect_DB.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
323.07 Кб
Скачать

Побудова додатків баз даних в архітектурі "клієнт-сервер"

Реалізацію архітектури "клієнт-сервер" будемо розглядати для сервера InterBase. Пояснити такий вибір неважко. По-перше, InterBase - "рідний" сервер для Delphi (тому для доступу до нього не потрібно встановлювати додаткових драйверів. По-друге, в постачання Delphi Enterprise входить сервер InterBase 6.5 (на 5 користувачів).

Локальний InterBase може використовуватися для налагоджувальних цілей. Після того, як додаток відладжений на локальній версії SQL-сервера, відбувається масштабування додатку (upsizing}. БД переноситься на мережевий сервер, а зміни в клієнтських застосуваннях при цьому мінімальні - необхідно змінити псевдонім БД і, можливо, скоректувати деякі параметри з'єднання додатку з сервером.

При перенесенні додатків, раніше розроблених для застосування в архітектурі "файл-сервер", потрібно не тільки частково або повністю переписувати додатки клієнтів, але і перетворювати локальну БД в серверну. Для цього під управлінням серверної СУБД (наприклад, InterBase) створюють БД на сервері, куди потім "перекачують" дані з локальних СУБД, реалізованих, наприклад, за допомогою Paradox. Основна проблема, що постає в цьому випадку, - несумісність деяких форматів даних або їх відсутність. Наприклад, InterBase не підтримує поля типу Boolean (Logical), і їх необхідно реалізовувати за допомогою стовпців типу CHAR(l); InterBase не підтримує автоінкрементні поля Paradox - для забезпечення унікальності значень в числових полях в БД Interbase використовують генератори і так далі При виникненні подібних проблем слід вивчити питання сумісності типів даних локальної СУБД і вибраної серверної СУБД.

SQL-сервер InterBase і його основні компоненти

SQL-сервер Interbase є призначений для зберігання і опрацювання великих об'ємів даних в умовах одночасної роботи з БД безлічі клієнтських додатків. Масштаб інформаційної системи при цьому довільний - від системи рівня робочої групи (під управлінням Novell Netware або Windows на базі IBM РС) до системи рівня великого підприємства (на базі серверів IBM, Hewlett-Packard, SUN)

Розглянемо низку технологій InterBase, використання яких забезпечує максимальне обчислювальне розвантаження клієнтського застосування і гарантує високу безпеку і цілісність інформації.

Для завдання посилальній і зміствоної цілісності в БД визначаються:

• відношення підлеглості між таблицями БД шляхом визначення первинних (PRIMARY) ключів у батьківських і зовнішніх (FOREIGN) ключів у дочірніх таблиць;

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

тригерів (TRIGGER) - підпрограм, що автоматично виконуються сервером до або (и) після події зміни запису в таблиці БД;

• генератори (GENERATOR) – для створення і використання унікальних значень потрібних полів.

Для прискорення роботи клієнтських застосувань з віддаленою БД можуть бути визначені збережені процедури, (STORED PROCEDURE), які є підпрограмами, що приймають і повертають параметри, і можуть виконувати запити до БД, умовні розгалуження і циклічну обробку. Збережені процедуры пишуться на спеціальній алгоритмічній мові. В них програмуються послідовності запитів до БД, які часто повторюються. Текст процедур зберігається на сервері у відкомпільованому вигляді. Переваги у використанні збережених процедур очевидні:

• відпадає потреба синтаксичної перевірки кожного запита та його компіляції перед виконанням, що прискорює виконання запитів;

• відпадає потреба реалізації в клієнтській програмі запитів, що визначені в тілі збережених процедур;

• збільшується швидкість опрацювання транзакцій, т.як. замість іноді довгого SQL-запита по мережі передається відносно коротке звертання до збереженої процедури.

У складі запису БД можуть визначатися BLOB-поля (Binary Large Object, великий двійковий об’єкт), призначені для зберігання великих об'ємів даних у вигляді послідовності байтів. Таким чином можуть зберігатися текстові і графічні документи, файли мультимедіа, звукові файли і т.д. Інтерпретація BLOB-поля відбувається вдодатку, однак розробник може визначити так звані BLOB-фильтри для автоматичного перетворення вмісту BLOB-поля до іншого вигляду.

InterBase дає можливість використовувати визначені користувачем функції (User Defined Function, UDF), в яких можуть реалізовуватися функціональності, відсутні в стандартних вбудованих функціях InterBase (обчислення максимуму, мінімуму, середнього значення, перетворення типів і приведення букв до заголовних). Наприклад, в UDF можна реалізувати витягання зі значення дати номера дня, роки; визначення довжини символьного значення; усікання пропусків; різні математичні алгоритми і інше. Функція пишеться на будь-якій алгоритмічній мові, що дозволяє розробляти DLL (бібліотеки динамічного виклику), наприклад на Object Pascal.

InterBase може посилати повідомлення клієнтським застосуванням про настання якої-небудь події (EVENT). Одночасно працюючі додатки можуть обмінюватися повідомленнями через сервер БД, викликаючи процедури, що зберігаються, в яких реалізована ініціація потрібної події.

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

Для доступу до БД використовується утиліта IBConsole. Вона працює з БД безпосередньо через InterBase API, оминаючи BDE. У IBConsole можна писати будь-які запити, будь то створення БД, таблиць, зміна структури даних, витягання даних з БД або їх зміна, а також призначення прав доступу до інформації для окремих користувачів.

Для управління SQL-сервером в цілому і окремими БД зокрема використовується утиліта Interbase Server Manager. Тут можна визначати параметри SQL-сервера, проводити збереження, відновлення БД, збірку "сміття", визначати нових користувачів, їх паролі і т д.

Для проглядання БД, роботи з таблицями, індексами, доменами, обмеженнями і ін. можуть використовуватися утиліти Database Desktop (вельми обмежено) і SQL Explorer.

Для перегляду і аналізу реальних процесів, що відбуваються на сервері при реалізації користувацького запиту, використовується утиліта SQL Monitor.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]