Створення бази даних підприємства з використанням FireBird та Delphi
Зміст
Вступ
Розділ 1. Аналіз предметної області
Розділ 2. Описання FireBird та Delphi
Розділ 3. Розробка файлу бази даних FireBird та в середовищі Delphi
Висновок
РОЗДІЛ 2. Описання FireBird
Існує багато програм, що дозволяють працювати в інтерактивному режимі з реляційною базою даних InterBase. Зокрема, для подальшої роботи з базами даних в роботі буде використовуватись програма „Windows InterBase InterActive SQL” (скорочено WISQL або Інтерактивний ISQL).
Розробником цієї програми являється фірма-розробник самої СКБД, а саме : “InterBase SoftWare Corporation”.
Ця програма є простою, надійною, коректно відпрацьовує всі команди. Обрано таку версію цієї програми, яка підтримує лише перший діалект мови SQL ( SQL Dialect 1 ), оскільки саме цей діалект є базовим абсолютно для всіх СКБД, і рекомендованим для вивчення на етапі ознайомлення з мовою SQL як найпростіший. Водночас програма “Інтерактивний ISQL” надає всі необхідні для адміністрування баз даних можливості в найпростішому вигляді – у вигляді прямого виконання SQL- команд – що сприяє найкращому розумінню основних принципів роботи всіх реляційних баз даних.
Призначення програми “Інтерактивний ISQL”:
1.Створення (або знищення) бази даних InterBase на локальному комп’ютері чи на будь-якому віддаленому сервері.
2.Адміністрування бази даних InterBase на локальному комп’ютері чи на будь-якому віддаленому сервері (але не адміністрування сервера).
3.Робота з базою даних InterBase як в ручному (так званому „інтерактивному”) режимі, так і в пакетному (так званому режимі SQL -скриптів).
Загальний опис програми “Інтерактивний ISQL”:
З’єднання з існуючою базою даних відбувається після виконання пункту меню “Fіle” à “Connect to DataBase”.
Від’єднання від бази даних відбувається після виконання пункту меню “Fіle” à “DіsConnect from DataBase”.
SQL-запити вводяться вручну (або через буфер обміну WІNDOWS) в верхньому вікні програми ІSQL. Виконується запит на відкритій базі даних через пункт меню “Query” à “Execute” (або „гарячою кнопкою” з зображенням блискавки).
В випадку коректно введеного запиту сам запит, і результат його виконання з’являються в нижньому вікні програми. В випадку некоректно введеного SQL-запиту спочатку на дисплей виводиться повідомлення про помилку (текст помилки читається після натиснення кнопки „Detaіls”). Після цього в нижньому вікні також з’являється текст невірного запиту.
Нижнє вікно програми являється лише текстовим вікном, в якому зберігається поточна сесія роботи оператора (SQL-запити та їх результати). Структура (вміст метаданих) реляційної бази переглядаються лише через меню „MetaData”. Дані (вміст таблиць) реляційної бази переглядаються лише через виконання SQL-запитів. Єдине призначення нижнього вікна програми ІSQL – дати змогу оператору переглядати свою поточну робочу сесію.
Кожен SQL-запит виконується окремо. Виконання одночасно кількох запитів програмою “ІSQL.exe – інтерактивний InterBase” не допускається. Кінець кожного окремого SQL-запиту позначається символом “;” – крапка з комою. Винятком являється лише створення/модифікація процедур і тригерів (там в тілі одного оператора CREATE/ALTER PROCEDURE/TRIGGER може бути кілька SQL- операторів).
Робота з будь-якою реляційною базою даних ділиться на логічно завершені фрагменти – „транзакції”. Програма ІSQL розпочинає транзакцію по замовчуванню автоматично – при виконанні будь-якого SQL-запиту. Завершувати транзакцію потрібно обов’язково явно виконавши пункт меню “Fіle” à “Commіt Work”. Якщо цього не зробити, вся робота з початку транзакції втрачається.
До того моменту, як вводиться команда “Fіle” à “Commіt Work”, будь-які операції з базою даних в БД не заносяться. Всі проміжні результати, що накопичилися з моменту останньої успішно виконаної команди «Commіt Work», зберігаються в тимчасовому буфері на сервері (нижнє вікно програми ІSQL лише відображає ці дані, реально вони зберігаються в буфері InterBase), і ніхто з користувачів бази даних цих змін не бачить. Вся робота, проведена в одному сеансі роботи : з моменту останнього успішно виконаного «Commіt Work», називається “незавершена транзакція”. Транзакцію можна підтвердити в цілому(внести зміни в базу даних) командою «Commіt Work», або в цілому відмінити (не вносити жодних змін) командою «RollBack Work».
При визначенні будь-яких об’єктів всередині бази даних (таблиць, полів, ключів, індексів, і т.п.), можна використовувати лише латинські (причому бажано великі) літери та цифри ( обмеження SQL Dialect 1 ).
Текст, введений в одному рядку між двома символами : « /* » та « */ », вважається коментарем, і ігнорується (пропускається) програмою.
Не обов’язково, але бажано, щоб в різних таблицях назви полів не повторювалися. Це значно полегшує як написання запитів, так і їх розуміння.
Для опису таблиць та змінних СКБД InterBase/FireBird використовують наступні базові типи даних:
Назва (синтаксис) | Розмір | Дані (формат, діапазон) |
INTEGER | 4 байти | Цілі -2 млн. ...+2 млн. |
SMALLINT | 2 байти | Цілі -32 тис. ... +32 тис. |
FLOAT | 4 байти | Плаваючий формат, мантиса 7 знаків |
DOUBLE PRECISION | 8 байт | Плаваючий формат, мантиса 15 знаків |
NUMERIC ( N,S ) | 2,4,8 байт | Фіксований формат, S знаків після коми |
DECIMAL ( N,S ) | 2,4,8 байт | Фіксований формат, S знаків після коми |
DATE | 8 байт | Дата |
TIME | 8 байт | Час |
TIMESTAMP | 8 байт | Дата + Час |
CHAR ( N ) | N байт | Символьні до 32 тис. символів |
VARCHAR ( N ) | N байт | Символьні до 32 тис. символів |
BLOB | До 64 Кбайт | Бінарні дані (фото, відео, звук, документи ...). |
“Інтерактивний ISQL” дозволяє виконувати наступні операції:
В меню File :
1.Connect … - під’єднатись до бази даних (далі скорочено „БД”).
2.Create … - створити БД.
3.Drop … - знищити БД (без можливості її відновлення).
4.Disconnect … - від’єднатись від БД.
5.Run an ISQL script … - запустити виконання пакетного SQL- файла (скрипта).
6.Save Result to File … - записати результат виконання останнього SQL оператора (команди), але до того, як ця команда підтверджена (Commit) чи відмінена (RollBack). Використовується, зокрема, для збереження результатів запитів, які не „вмістились” в нижнє вікно програми.
7.Save Session to File … - записати весь сеанс роботи в файл.
8.Commit Work – підтвердити (занести в БД і зробити доступними для всіх користувачів) всі зміни, зроблені на протязі всієї останньої непідтвердженої транзакції.
9.RollBack Work – відмінити (відкотити) зміни, зроблені на протязі всієї останньої непідтвердженої транзакції.
10.Exit – закрити програму.
В меню Edit :
1.Редагувати текст SQL- запиту (команди) в верхньому вікні програми : пункти меню UNDO, COPY, PASTE.
2.Виділяти (Select All) або стирати (Clear Output) текстовий буфер програми (її нижнє вікно).
В меню Session :
Налаштовувати та передивлятися поточні налаштування сесії (сеансу роботи). Після кожного запуску програми необхідно одразу ж налаштувати її (виконати пункт меню “Sessіon” à “Basіc Settіngs”) на відображення кількості результуючих рядків запиту (виставити помітку “Dіsplay Row Count”) і на відображення часу (виставити помітку “Dіsplay Tіme DataType”).
В меню Query :
1.Execute – виконати SQL-запит, введений в верхньому вікні програми.
2.Previous – помістити в верхнє вікно („повернути”) попередній SQL запит з буфера програми.
3.Next - помістити в верхнє вікно наступний в буфері програми SQL-запит.
В меню MetaData:
1.Show – перегляд повних метаданих (тобто визначень, або SQL- описів) по будь-якому вказаному об’єкту поточної (активної) БД.
2.Extract DataBase – вивід в нижнє вікно програми (або в файл) всіх метаданих поточної бази.
3.Extract Table – вивід в нижнє вікно програми (чи в файл) метаданих таблиці.
4.Extract View – вивід в нижнє вікно програми (чи в файл) метаданих представлення (View).
Адміністратором сервера СКБД являється той, і лише той користувач, який інсталював дану систему, і тому знає ім’я і пароль користувача, який при цьому використано. В деяких СКБД ці ім’я та пароль вводяться безпосередньо при встановленні системи СКБД на комп’ютер. В InterBase/FireBird пароль при інсталяції не вводиться, він описаний в документації. Прерогативою адміністратора сервера СКБД є робота з базою даних паролів (заведення і знищення облікових записів користувачів, зміна їх паролів).
Адміністратором бази даних на сервері СКБД являється той, і лише той користувач, який створив дану базу даних, тобто ім’я і пароль якого введені безпосередньо при створенні БД. Таким користувачем може бути будь-який користувач: як адміністратор сервера, так і звичайний (рядовий).
Якщо при створенні бази даних використано обліковий запис звичайного користувача «admin», то адміністратором (власником, OWNER) бази даних є користувач «admin».
Прерогативою адміністратора (власника, OWNER) БД є створення / зміна / знищення будь-яких об’єктів (таблиць, ключів,…), і надання на них прав.
Прерогативою рядових (звичайних) користувачів є робота з даними (читання / запис / зміна / видалення даних, і виконання процедур) – але лише в межах тих прав, які надано цьому користувачу власником бази.
Базовою версією мови SQL, затвердженою в 1970-х роках, яка в міжнародній практиці називається „SQL- діалект номер 1”, тип даних TIME не підтримується взагалі, а тип даних DATE включає в себе обов’язково і час, тобто фактично являється типом TIMESTAMP.
На даний час міжнародним стандартом являється розширена версія мови SQL, затверджена в кінці 1990-х років, яка зветься „SQL- діалект номер 3”. Ця версія підтримує всі типи : DATE, TIME, TIMESTAMP.
СКБД FireBird підтримує обидва діалекти SQL – перший та третій. Проте не всі мови програмування та драйвери баз даних, підтримують SQL- діалект 3, а лише ті, які розроблені після його стандартизації, тобто в 2000-их роках. Після того, як база даних вже створена, перейти з одного діалекту на інший досить і досить проблематично. Крім того, використання діалекту номер 3 вимагає від програміста значно глибших знань і навичок, та дотримання значно жорсткіших вимог, які пред’являє даний стандарт.
Опис середовища Delphi
Delphi - це комбінація декількох найважливіших технологій:
- Високопродуктивний компілятор у машинний код
- Об’єктно - орієнтована модель компонентів
- Візуальна (а, отже, і швидкісна) побудова додатків із програмних прототипів
- Масштабовані засоби для побудови баз даних
Зовнішній вигляд середовища програмування Delphi відрізняється від багатьох інших з тих, що можна побачити в Windows.
Cередовище Delphi містить у собі повний набір візуальних інструментів для швидкісної розробки, що підтримує розробку користувальницького інтерфейсу й підключення до корпоративних баз даних.
Нижче перераховані основні складові частини Delphi:
Дизайнер Форм (Form Designer)
Вікно Редактора Вихідного Тексту (Editor Window)
Палітра Компонентів (Component Palette)
Інспектор Об'єктів (Object Inspector)
Є й інші важливі складові Delphi, лінійки інструментів, системного меню й багато іншіх, потрібних для точного настроювання програми й середовища програмування.
Програмуючи на Delphi доводиться проводи більшість часу перемикаючись між Дизайнером Форм і Вікном Редактори Вихідного Тексту (яке для стислості називають Редактор). Дизайнер Форм показаний на мал. 2.1, вікно Редактора - на мал.2.2.
Мал.. 2.1 Дизайнер форм
Мал.. 2.2 Редактор
Після запуску Delphi у верхнім вікні горизонтально розташовуються іконки палітри компонент. (Мал. 2.3)
Мал.. 2.3 Палітра компонент
Якщо курсор затримується на одній з іконок, під нею в жовтому прямокутнику з'являється підказка Із цієї палітри компонентів можна вибирати компоненти, з яких можна будувати додатки. Компоненти містять у собі як візуальні, так і логічні компоненти. Такі речі, як кнопки, поля редагування - це візуальні компоненти; а таблиці, звіти - це логічні. Delphi дозволяє розроблювачам настроїти середовище для максимальної зручності. Можна легко змінити палітру компонентів, інструментальну лінійку, а також набудовувати виділення синтаксису кольорами. В Delphi можливо визначити свою групу компонентів і розмістити її на сторінці палітри, а якщо виникне необхідність, перегрупувати компоненти або видалити невикористовувані.
Ліворуч від Дизайнера Форм знаходиться Інспектор Об'єктів (мал.2.4). Інформація в Інспекторі Об'єктів міняється залежно від об'єкта, обраного на формі. Важливо, що кожний компонент є дійсним об'єктом і можна міняти його вид і поводження за допомогою Інспектора Об'єктів. Інспектор Об'єктів складається із двох сторінок, кожну з яких можна використати для визначення поводження даного компонента. Перша сторінка - це список властивостей, друга - список подій. Якщо потрібно змінити що-небудь, пов'язане з певним компонентом, то робиться це в Інспекторі Об'єктів. Наприклад можна змінити ім'я й розмір компонента TLabel змінюючи властивості Caption, Left, Top, Height, і Width. Можна використати закладки Інспектора Об'єктів для перемикання між сторінками властивостей і подій. Сторінка подій пов'язана з Редактором; якщо двічі клацнути мишкою на праву сторону якого-небудь пункту, тій відповідній даній події код автоматично запишеться в Редактор, сам Редактор негайно одержить фокус, і відразу ж маємо можливість додати код оброблювача даної події.
Мал. 2.4 Інспектор Об'єктів