Delphi 7

курсовая работа

1.2 Види баз даних та їх структура

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

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

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

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

До персональних відносяться такі СУБД, як Paradox, dBase, FoxPro, Access та ін. З їх допомогою, як правило, створюються локальні БД, що працюють на одному компютері. Багатокористувацькі СУБД (Oracle, Microsoft SQL Server, InterBase, SyBase) служать для створення БД, що працюють в архітектурі клієнт-сервер, що реалізується в локальних і корпоративних мережах, а також в мережі Internet.

Серед мовленевих засобів сучасних СУБД можна виділити наступні.

- структуризована мова запитів (Structured Query Language, SQL), який дозволяє керувати структурою БД і працювати з даними, а також є стандартним засобом доступу до віддалених БД.

- мова запитів за зразком (Query By Example, QBE), що призначений для візуального конструювання запиту до БД.

Доступ до БД з додатку Delphi здійснюється через так званий процесор бази даних BDE (Borland Database Engine). BDE - це набір драйверів, що забезпечують доступ до даних. На компютері де буде здійснюватися робота з БД, необхідно обовязково встановити BDE (це варто неодмінно враховувати при розповсюдженні створених додатків, призначених для роботи з БД, і включати BDE в комплект поставки).

БД, в залежності від розміщення таблиць і додатків, діляться на локальні і віддалені.

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

Віддалені БД розміщуються на сервері мережі, який також називають віддаленим сервером, а додаток, що працює з цією БД, розміщується на компютері користувача, що відповідає архітектурі клієнт-сервер. Клієнтом являється додаток користувача, який формує запит для отримання даних і надсилає його на віддалений сервер, де знаходиться БД. Запит формується на мові SQL. При отриманні такого запиту віддалений сервер відправляє його серверу бази даних (SQL - серверу). Сервер бази даних являє собою програму, за допомогою якої здійснюється керування віддаленою БД і забезпечується видача клієнту результатів виконання запиту, що надійшов. Вся робота з БД відбувається безпосередньо на віддаленому сервері. Архітектура клієнт-сервер найчастіше реалізується з застосуванням багатокористувацьких СУБД. Доступ до них відбувається за допомогою драйверів SQL-Links.

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

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

Для кожної таблиці можуть бути задані ключі та індекси.

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

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

Ключові поля зазвичай автоматично індексуються. В таблицях Paradox ключ є головним (первинним) індексом, який не іменується. Для таблиць dBase ключ не створюється, а його роль виконує один з індексів.

Delphi підтримує такі типи локальних таблиць, як FoxPro, dBase і Paradox, кожна з яких має свої особливості. Зупинимося зокрема на двох останніх, так як перший тип доцільніше розглядати в рамках вивчення відповідної мови програмування (Visual FoxPro).

Таблиці dBase достатньо широко розповсюджені і підтримуються багатьма системами, так як це був один з перших форматів таблиць для ПК. Таблиці dBase прості в застосуванні. Для їх зберігання застосовуються файли з такими розширеннями:

- DBF - таблиці з даними;

- DBT - дані двійкових форматів BLOB (Binary Large Object), котрі займають великі обєми памяті;

- MDX - індекси;

- NDX - індекси, які не підтримуються форматом dBase і які необхідно обробляти самостійно.

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

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

Таблиці Paradox не мають подібних недоліків. Вони також є достатньо простими у використанні, але при цьому забезпечують підтримку цілісності даних, можливість перевірки полів, що вводяться і захист таблиць за допомогою пароля. Крім того в таблицях цього формата передбачена більша кількість різноманітних типів полів для представлення баз даних, ніж в таблицях dBase.

Імена полів в таблицях Paradox можуть складатися з літер, цифр і деяких спеціальних символів, а їх довжина повинна складати не більше 25 знаків.

Ключові поля обовязково повинні розташовуватися в самому початку таблиці при створенні її структури.

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

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

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

Таблиці формата Paradox зберігаються в файлах з такими розширеннями:

- DB - таблиці з даними;

- MB - дані двійкових обєктів великого обєму (BLOB);

- PX - первинний індекс;

- XG? І YG? - вторинні індекси;

- VAL - параметри для перевірки даних і зсилочної цілісності;

- TV та FAM - формати виводу таблиць в Datadase Desktop;

- NET - файли, що використовуються для контроля доступа до таблиць при роботі в мережі.

Далі мова буде йти тільки про локальні реляційні БД типу Paradox 7 тому, що саме такий тип таблиці використаний у даному дипломному проекті. Загальна структурна схема роботи бази даних приведена у додатку Б.

В комплекті з Delphi поставляється цілий ряд інструментальних засобів, призначених для роботи з БД. Список цих засобів приведений в таблиці 1.

Таблиця 1 - Список інструментальних засобів для роботи з БД

Назва

Призначення

Borland Data-base Engine (BDE)

Процесор баз даних, який служить для організації доступа до БД з додатків Delphi

BDE Adminis-trator

Утиліта, що дозволяє налагоджувати параметри БД

Database Desktop

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

SQL Explorer

Провідник БД, що використовується для налагодження баз даних

SQL Monitor

Програма, що дає можливість слідкувати за порядком виконання SQL-запитів

SQL Links

Набір драйверів, що використовуються для доступу до віддалених СУБД

Datapump

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

Delphi, без перебільшення, має дуже велику кількість візуальних і не візуальних компонентів для роботи з БД.

Делись добром ;)