
- •Міністерство освіти і науки України
- •Національний університет водного господарства та природокористування
- •Кафедра електротехніки і автоматики
- •Лабораторна робота № 27
- •1.2 Типи баз даних
- •1.2.1 Автономні бази даних
- •1.2.2 Файл-Серверні бази даних
- •1.2.3 Бази даних клієнт-сервер
- •1.2.4 Багатоярусні бази даних
- •2. Створення баз даних за допомогою Database
- •2.1 Створення нової таблиці
- •2.2 Завдання полів
- •2.3 Завдання властивостей таблиці
- •2.3.1 Validity Checks - перевірка правильності значень
- •2.3.2 Tablе Lookup - таблиця перегляду
- •2.3.3 Secondary Indexes - вторинні індекси
- •2.3.4 Referential Integrity - цілісність на рівні посилань
- •2.3.5 Password Security - паролі доступу
- •2.3.6 Table Language - мова таблиці
- •2.3.7 Dependent Tables - залежні таблиці
- •2.4 Завершення створення таблиці
- •2.5 Зміна структури й заповнення таблиці за допомогою Database Desktop
- •27.3 Опис лабораторного обладнання
- •27.4 Порядок виконання роботи
- •Вимоги до звіту
- •27.5 Контрольні запитання
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.