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

1.2.3 Бази даних клієнт-сервер

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

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

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

1.2.4 Багатоярусні бази даних

Це новий і багатообіцяючий шлях обробки даних у мережі. Іноді (зокрема, у документації C++ Builder) цей спосіб організації баз даних називається multi-tier - багатониткові. У даному випадку під ниткою розуміється один з безлічі потоків даних, які одночасно обмінюються інформацією з базою даних.

Найпоширеніший трьохярусний варіант:

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

  • На другому рівні розташований сервер прикладних програм, що забезпечує обмін даними між користувачами і розподіленими базами даних. Сервер прикладних програм розміщується у вузлі мережі, доступному всім клієнтам.

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

Подібну концепцію обробки даних пропагують, зокрема, фірми Oracle і Sun. Перший, елементарний рівень складається з «тонких клієнтів», тобто нескладних терміналів, призначених, в основному, для вводу-виводу. Другий, середній (middleware) рівень - це робочі станції і сервери прикладних програм, тобто значно серйозніші машини, на яких виконуються програми, критичні до завантаження процесора. Третій і останній рівень - потужні спеціалізовані сервери баз даних.

Багатоярусна організація - найбільш складний, гнучкий і ефективний спосіб роботи з базами даних. C++ Builder забезпечує, в основному, створення прикладних програм для перших двох рівнів цієї системи. При цьому треба відзначити, що на нижньому рівні – на комп'ютерах користувача – не потрібно встановлювати Borland Database Engine (BDE). У цьому полягає одна з переваг багатоярусних розподілених баз даних.

1.3 Організація зв'язку з базами даних в C++ Builder

Основою роботи C++Builder з базами даних є Borland Database Engine (BDE) - процесор баз даних фірми Borland. BDE служить посередником між прикладною програмою і базами даних. Він надає користувачеві єдиний інтерфейс для роботи, відокремлюючи користувача від конкретної реалізації бази даних. Завдяки цьому не треба міняти програму при зміні реалізації бази даних. Програма C++ Builder ніколи не звертається безпосередньо до бази даних, а тільки до BDE. Таким чином, спілкування з базами даних відповідає схемі, наведеній на рис. 1.3.

Програма C++ Builder, коли їй потрібно зв'язатися з базою даних, звертається до BDE і повідомляє, зазвичай, псевдонім бази даних і необхідну таблицю в ній. BDE реалізований у вигляді бібліотек, які підключаються динамічно, DLL (файли IDA-P101.DLL, IDAPI32.DLL). Вони, як і будь-які бібліотеки, забезпечені API (Application Program Interface - інтерфейсом прикладних програм), названим IDAPI (Integrated Database Application Program Interface). Це список процедур і функцій для роботи з базами даних, якими і користуються програми.

BDE по псевдоніму знаходить підходящий для зазначеної бази даних драйвер. Драйвер — це допоміжна програма, яка розуміє, як спілкуватися з базами даних певного типу. Якщо в BDE є власний драйвер відповідної СКБД, то BDE зв'язується через нього з базою даних і з потрібною таблицею в ній, обробляє запит користувача і повертає у програму результати обробки. BDE підтримує доступ до таких баз даних, як Microsoft Access, FoxPro, Paradox, dBase.

Рис. 1.3 Схема зв'язку прикладної програми C++ Builder з базами даних

Якщо власного драйвера потрібної СКБД в BDE немає, то використовується драйвер ODBC. ODBC (Open Database Connectivity) - це DLL, аналогічна по функціях BDE, але розроблена фірмою Microsoft. Вона зберігається у файлі ODBC.DLL. Оскільки Microsoft включила підтримку ODBC у свої офісні продукти і для ODBC створені драйвери практично до будь-яких СКБД, фірма Borland включила у BDE драйвер, що дозволяє використовувати ODBC. Правда робота через ODBC здійснюється трохи повільніше, ніж через власні драйвери СКБД, включені у BDE. Але завдяки зв'язку з ODBC можливості C++ Builder істотно збільшилися і зараз із C++ Builder можна працювати з будь-якою більш менш значущою СКВД.

BDE підтримує SQL - стандартизована мова запитів, яка дозволяє обмінюватися даними з SQL-Серверами, такими, як Sybase, Microsoft SQL, Oracle, Interbase. Ця можливість використовується особливо широко при роботі на платформі клієнт-сервер.

В C++ Builder введена інша альтернативна можливість роботи з базами даних, минаючи BDE. Це розроблена в Microsoft технологія ActiveX Data Objects (ADO). ADO - це інтерфейс користувача до будь-яких типів даних, включаючи реляційні і не реляційні бази даних, електронну пошту, системні, текстові і графічні файли. Зв'язок з даними здійснюється за допомогою так званої технології OLE DB.

Використання ADO забезпечує більш ефективну роботу з даними. Для реалізації цієї можливості на комп'ютері повинна бути встановлена система ADO 2.1 або більш старша версія. Крім того, повинна бути встановлена клієнтська система доступу до даних, наприклад, Microsoft SQL Server, a в ODBC повинен бути драйвер OLE DB для того типу баз даних, з яким потрібно працювати.

Можливості ADO в C++ Builder поки що у деяких співвідношеннях нижче, ніж можливості BDE.

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