Borland InterBase 7 для побудови масштабованих систем

Найбільшого поширення сервер баз даних InterBase отримав в 1995 р., коли розробники додатків почали працювати з Delphi 1. InterBase розміщувався на одному компакт-диску з Delphi, за обсягом займав чотири дискети і встановлювався за кілька секунд, після чого був повністю готовий до роботи. Відсутність необхідності в налаштуванні, надійність, сумісність зі стандартом ANSI SQL, хороша продуктивність і висока функціональність зробили InterBase вельми популярним у нашій країні.


Технології


При розробці InterBase в код був вбудований потужний функціональний і алгоритмічний потенціал. Найбільш відомі перші комерційні реалізації BLOB і two phase commit. Не претендуючи на повноту, наведемо перелік технологій InterBase, які використовуються практично у всіх типах прикладних завдань.


Багатоверсійність


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


Транзакції


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


У InterBase існує два основних типи транзакцій, Read Committed і Repeatable Read. Причому другий рівень ізольованості – більш "жорсткий", ніж аналогічний у ANSI SQL92, і не допускає "фантомних записів". Обидва типи транзакцій мають ряд параметрів, в тому числі параметр wait, який дозволяє або отримувати повідомлення про конфлікти блокувань негайно (no wait), або чекати вирішення конфліктів блокувань (wait).


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


Події


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


Тригери


Тригери спрацьовують при операціях insert / update / delete негайно (песимістична стратегія), причому можуть виконуватися як до операції, так і після неї (before / after). На одне і те ж дію допустимо створювати кілька тригерів, які можуть бути включені і вимкнені, а також містити окремі частини бізнес-логіки (поділ коду за триггерам). При цьому допускається рекурсивний виклик тригерів, тобто тригери можуть оновлювати таблиці, на яких вони спрацьовують.


На рис. 1 наведено приклад розподілу обробки операцій над записами за допомогою декількох тригерів і послідовність виконання таких тригерів.

Рис. 4. Компоненти прямого доступу


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


Доступ до сервера не із середовищ розробки Borland можливий з шести ODBC-драйверів, найкращий з яких – EasySoft ODBC, трьох провайдерів OLE DB (кращий – http://www.ibprovider.com) та інших компонентів прямого доступу – IBObjects, Zeos DB, SQLRoots, IBPerl, DBD: InterBase і т. д.


Крім того, з випуском нового середовища розробки для C # (відомої на момент написання статті як проект Borland Sidewinder) Borland планує розширити і спектр засобів доступу до InterBase, додавши до нього спеціальний провайдер для платформи Microsoft. NET.


Продуктивність


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


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


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


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


Практика застосування


Існує багато як тиражованих, так і промислових систем, створених з використанням InterBase. У першу чергу це системи, які легко будуються з використанням всіх переваг InterBase, – бухгалтерія, склад, вантажоперевезення, повна автоматизація малих підприємств і т. д. Зрозуміло, є кадрові системи, фінансові, білінгові, CRM (відомий SalesExpert) і навіть ERP ("Тектон-Інтегратор").


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



















Розмір бази даних

Частка систем,%

Від 30 до 300 Мбайт

27

Від 300 Мбайт до 1 Гбайт

55

Від 1 до 8 Гбайт

14

Від 8 до 30 Гбайт

4


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


Фізичного обмеження за розміром для бази даних – 131 Тбайт поки ще ніхто не досяг. Поки що відомі два випадки, коли використовується максимальний обсяг – 180 Гбайт фінансових транзакцій по безлічі компаній за кілька років і база даних в 980 Гбайт, що зберігає хеши паролів в MD5.


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


Висновок


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


А якщо раптом у вас виникнуть питання, співтовариство розробників, які використовують InterBase, обов'язково вам допоможе.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*