Первая страница
Наша команда
Контакты
О нас

    Головна сторінка



Ярцев в. П. Створення та обробка баз даних на пеом

Ярцев в. П. Створення та обробка баз даних на пеом




Сторінка19/20
Дата конвертації10.03.2017
Розмір2.36 Mb.
ТипПротокол
1   ...   12   13   14   15   16   17   18   19   20

13.5. Сервер InterBase




13.5.1. Призначення. Загальні відомості

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

Узагалі говорячи, таке ж призначення має і будь-який інший SQL-сервер, однак InterBase має ряд відмінних рис, завдяки яким інтерес до InterBase у світі зараз дуже великий.

InterBase є кросплатформеним продуктом, який сумісний з різними типами операційних систем, включаючи Windows NT, Windows 98 (2000, XP), Linux і ін. InterBase відрізняється надзвичайно низькими системними вимогами і при цьому високою продуктивністю і легкістю адміністрування.

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

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

InterBase був розроблений на початку 80-х років американською компанією DEC. Пізніше розробка InterBase велася фірмою InterBase Software, що згодом ввійшла до складу компанії Borland.

В даний час застосовуються версії програмного забезпечення InterBase 4.х, 5.х і 6.х. Версії 4.х і 5.х вважаються застарілими. На основі версії 6.0, яка є відкритим, вільно розповсюджуваним продуктом, розроблено кілька клонів, наприклад, Firebird 1.x і Yaffil. Клон Yaffil розроблений у Росії й орієнтований на подальшу інтеграцію з Windows NT/2000.



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

13.5.2. Склад сервера ІnterBase

Сервер ІnterBase, як і будь-яка клієнт-серверна система керування базою даних, складається з двох частин: клієнтської та серверної. Для роботи з ІnterBase на кожній машині повинний бути встановлений клієнт ІnterBase. Основною його частиною є бібліотека Gds32.dll. На сервері БД встановлюється і клієнт, і сервер ІnterBase. Основний модуль сервера ІnterBase - файл ibserver.exe.

Всі об'єкти бази даних ІnterBase зберігаються в одному файлі. Файли баз даних ІnterBase мають розширення .GDB. Файли резервних копій баз даних мають розширення .GBK.

Файл бази даних ІnterBase має сторінкову організацію. Це означає, що дані у файлі БД фізично розділені на сторінки, розмір яких визначається при створенні бази даних. За замовчуванням розмір сторінки дорівнює 1 КБайт. Якщо таблиці БД містять більш 200 тис. записів, є сенс збільшити розмір сторінки з метою збільшення продуктивності. Як правило, розмір сторінки повинний бути дорівнювати розміру кластера жорсткого диска, на якому розміщений файл БД. Для файлових систем FAT32 і NTFS розмір кластера звичайно дорівнює 4 КБ.

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

Цікавим є той факт, що на сервері ІnterBase крім файлу ibserver.exe завжди запущений додатковий контролюючий процес – IBGuard.exe. Він забезпечує автоматичний перезапуск сервера ІnterBase у випадку його аварійної зупинки.




13.5.3. Багатоверсійна архітектура InterBase

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

Сутність багатоверсійної архітектури проста і полягає в наступному.

Усі зміни даних у записах виробляються не в самих записах, а в їхніх копіях. Як тільки користувач підключився до БД і запустив транзакцію, у якій робляться якісь зміни в даних, для цього користувача створюється своя версія записів, у яких повинні робитися зміни. Ця версія стає власністю даної транзакції, і всі операції в ній будуть вироблятися з цією версією.

Якщо транзакція підтвердилася, то колишня (вихідна) версія запису буде позначена як видалена. Нова версія запису позначається як основна. Саме цю версію запису побачать інші транзакції, що будуть запущені пізніше.

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

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

Отже, ідея багатоверсійності дуже проста – кожній транзакції дати свою версію запису. Читаючий користувач не заважає пишучому користувачу.

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

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

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

Таким чином, видно, що процес збирання сміття є кооперативним, тобто в ньому можуть брати участь у різні моменти часу всі транзакції.



13.5.4. Типи даних у InterBase

У InterBase існують 12 типів даних, що задовольняють практично будь-яким вимогам розроблювачів БД. Ці типи можна згрупувати в такі 6 груп типів:



  • для збереження цілих чисел: INTEGER, SMALLINT;

  • для збереження дійсних чисел: FLOAT, DOUBLE PRECISION;

  • для чисел з фіксованим записом: NUMERIC, DECIMAL;

  • для збереження дати, часу, дати/часу: DATE, TIME, TIMESTAMP;

  • для збереження символів: CHARACTER (скорочено CHAR), VARYING CHARACTER (скорочено VARCHAR);

  • для збереження довільних динамічно розширюваних даних: BLOB.

Приведемо тепер характеристики цих типів даних більш докладно.

SMALLINT (2 байти) – цілі числа в діапазоні від –32768 до 32767;

INTEGER (4 байти) – цілі числа в діапазоні від –2 147 483 648 до
2 147 483 647;

FLOAT (4 байти) – дійсні числа до 7 значущих цифр у діапазоні від 3.410-38 до 3.410 38;

DOUBLE PRECISION (8 байт) – дійсні числа до 15 значущих цифр у діапазоні від 1.710-308 до 1.710 308;

NUMERIC чи DECIMAL (перем.) – дійсні числа з фіксованою крапкою. Кількість значущих цифр і кількість цифр після крапки вказується при визначенні типу даних;

CHAR[ACTER](n) (0-32767 байт) – текстовий стовпець довжиною до n символів;

CHAR[ACTER](n) VARYING (0-32767 байт) – текстовий стовпець перемінної довжини, що містить до n символів;

DATE (8 байт) – дата в межах від 01.01.0100 до 11.12.5941. Можуть також зберігатися дані про час;

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

Тип даних стовпців визначається в SQL-операторах при створенні таблиць (CREATE TABLE), при створенні доменів (CREATE DOMAIN), і при зміні структури таблиць (ALTER TABLE).

У InterBase не визначені типи даних “логічний” і “автоінкрементний” (лічильник). Логічний тип заміняється типом CHAR(1), а замість автоінкрементного типу спільно використовуються генератори і тригери, що забезпечують одержання унікальних значень при введенні даних. Кожне автоінкрементне поле зв'язане з генератором і тригером. При вставці запису тригер перевіряє значення цього поля, і якщо воно виявиться порожнім, вставляє в нього значення генератора, при цьому значення генератора збільшується на одиницю.



13.5.5. Склад БД InterBase


На відміну від локальних БД, побудова БД на SQL-сервері, у тому числі і на сервері InterBase, більш складна. БД на SQL-сервері містить у собі такі елементи:

- таблиці (Tables);

- індекси (Indexes);

- обмеження (Constraints);

- домени (Domains);

- перегляди (Views);

- генератори (Generators);

- тригери (Triggers);

- збережені процедури (Stored Procedures);

- привілеї (Roles).

і ін. елементи.

Коротко охарактеризуємо призначення цих елементів.



Таблиці – це, як і раніше, основні елементи структури БД, призначені для збереження даних. Зв'язки між таблицями, засновані на використанні первинних і зовнішніх ключів, забезпечують високу безпеку і цілісність даних.

Індекси – як і в локальних БД, це додаткові структури даних, що забезпечують високу швидкість обробки даних.

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

Домен – це іменований опис стовпця. Його можна розглядати як свого роду шаблон опису стовпця. Один раз визначивши домен, його ім'я можна потім можна багаторазове використовувати для створення інших стовпців (у тому числі і для різних таблиць).

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

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

Збережена процедура – це підпрограма, розташована на сервері і викликувана з програми клієнта. Використання збережених процедур збільшує швидкість обробки даних. Їхня перевага також полягає в тому, що вони є загальними для всіх клієнтських додатків, завдяки чому різко скорочується число помилок, внесених у дані.

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

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

ALL – усі права доступу;

SELECT – тільки читання;

DELETE – видалення;

INSERT – вставка;

UPDATE – модифікація.



13.6. Програма IBConsole

13.6.1. Призначення програми

Програма IBConsole призначена для керування сервером


InterBase. Виклик програми можна виконати через головне меню Windows: ПускПрограмиInterBaseIBConsole (чи через ярлик, якщо він створений).

Програма IBConsole забезпечує:



  • Керування локальним і віддаленим сервером;

  • Керування БД;

  • Інтерактивне виконання SQL-запитів.

При запуску програми відкривається вікно, вид якого показаний на Рис. 17.1.

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

13.6.2. Керування сервером


Керування сервером включає такі дії:

- реєстрація сервера;

- підключення сервера;

- перегляд протоколу роботи;

- керування сертифікатами;

- визначення користувачів.

Підключення до сервера виробляється в такий спосіб.

Виділити значок потрібного сервера і виконати команду Login…(за допомогою контекстного меню чи подвійним щигликом на значку сервера). Відкриється вікно Server Login, вид якого показаний на Рис. 13.2. У цьому вікні потрібно ввести ім'я користувача (User Name) і його пароль (Password).


Рис. 13.2. Вікно з'єднання із сервером


Уведіть з клавіатури SYSDBA і masterkey – ім'я і пароль адміністратора БД, і після цього натисніть кнопку Login. Після встановлення з'єднання біля значка сервера з'явиться зелена галочка. Під значком сервера розгорнеться гілка дерева, що містить значки об'єктів, що маються на сервері (Рис. 13.3).

Рис. 13.3. Установлено з'єднання з локальним сервером


Для розриву з'єднання із сервером необхідно виконати команду ServerLogout.

13.6.3. Керування базами даних

Керування БД включає такі дії:

- реєстрація БД;

- підключення до БД;

- створення і видалення БД;

- перегляд метаданих;

- збір сміття;

- перевірка стану БД;

- аналіз статистики;

- збереження і відновлення БД.

Розглянемо деякі з цих операцій.

Для створення БД необхідно виконати команду меню


DatabaseCreate Database… . Відкриється вікно створення БД, вид якого приведений на Рис. 13.4.

Рис. 13.4. Створення нової БД

У цьому вікні необхідно ввести:



  1. у стовпці File(s) увести повне ім'я файлу створюваної БД;

  2. у поле Alias увести псевдонім БД, призначений для її ідентифікації усередині сервера (не зв'язаний із псевдонімом BDE).

Серед параметрів (Options) становить інтерес установка набору для кодування символів (Default Character Set). Якщо передбачається використовувати символи кирилиці, то необхідно установити набір WIN1251.

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


Рис. 13.5. Створена нова БД з ім'ям “UspStud_AD21”


Для підключення до уже наявної БД необхідно виділити значок потрібної БД і потім виконати команду DatabaseConnect. Для відключення від БД виконати команду DatabaseDisconnect.

13.6.4. Інтерактивне виконання SQL-запитів


Програма IBConsole дозволяє виконувати запити мовою SQL в інтерактивному режимі. Для переходу в цей режим необхідно виконати команду меню ToolsInteractive SQL… чи натиснути однойменну кнопку на панелі інструментів. Вид екрана в режимі Interactive SQL показаний на Рис. 13.6.

Вікно складається з двох частин. Верхня частина призначена для введення SQL-запитів. У вікні можна ввести і відразу виконати різні SQL-оператори, включаючи створення і видалення БД, таблиць, переглядів і т.д. У вікні на Рис. 17.6 введений оператор SELECT для перегляду змісту таблиці STUDENT. Для запуску запиту на виконання потрібно натиснути кнопку (чи виконати команду меню QueryExecute). У нижній частині вікна відображаються результати виконання запиту. Усі запити, що вводяться, запам'ятовуються. При необхідності кожний з запитів, що раніше виконувалися, можна відкрити і, якщо потрібно, відкоригувати.


Рис. 13.6. Вид екрана в режимі виконання SQL-запитів

Для вибору потрібного запиту можна скористатися кнопками і , розташованими на панелі інструментів. Результати виконання запитів можна зберігати в окремому файлі, виконавши команду QuerySave Output. Можна також зберегти у файлі всю історію роботи з БД, виконавши команду FileSave SQL History. Потім можна відкрити його і при необхідності повторно виконати.
Контрольні питання:


  1. Призначення й основні особливості архітектури “клієнт-сервер”.

  2. Поняття транзакції.

  3. Суть основних проблем, що виникають при роботі з БД багатьох користувачів.

  4. Суть конфліктів при відновленні даних і їхнє вирішення за допомогою

блокувань.

  1. Рівні ізоляції транзакцій: їхнє призначення і характеристика.

6. У чому ідея і переваги багатоверсійної архітектури сервера InterBase.

7. Типи даних InterBase і їхня характеристика.

8. Основні об'єкти, що входять до складу БД InterBase, і їхнє призначення.

9. Призначення і можливості програми IBConsole.



1   ...   12   13   14   15   16   17   18   19   20



  • 13.5.2. Склад сервера ІnterBase
  • 13.5.3. Багатоверсійна архітектура InterBase
  • 13.5.4. Типи даних у InterBase
  • 13.5.5. Склад БД InterBase
  • 13.6. Програма IBConsole
  • 13.6.2. Керування сервером
  • 13.6.3. Керування базами даних
  • Рис. 13.4. Створення нової БД
  • 13.6.4. Інтерактивне виконання SQL-запитів