Характеристика delphi-проектів які створюються для роботи з базами даних

При створенні програми для роботи з базами даних із застосуванням будь-якої технології доступу до даних (BDE (Borland Database Engine), dbExpress, ADO (ActiveX Database Objects), InterBase) використовується стандартний склад і схема зв'язку компонентів і таблиці бази даних. До складу delphi-програми для роботи з базами даних входять три типи компонентів: джерело даних, візуальні компоненти і набори даних.

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

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

Читати повністю

Створення та використання зображень засобами SQL

Зображення (VIEW) є віртуальною таблицею, вміст якої визначається SQL запитом. Для користувача бази даних зображення виглядає як реальна таблиця, що складається з рядків і стовпців. Однак, на відміну від таблиці, зображення як сукупність значень в базі даних реально не існує. Рядки та стовпці даних, які користувач бачить з допомогою зображення, є результатами запиту, що лежить в його основі. SQL створює ілюзію зображення, привласнюючи йому ім'я, як таблиці, і зберігає його визначення в базі даних.

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

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

Читати повністю

Використання індексів в таблицях бази даних

Що являє собою індекс? Індекс — це впорядкований вказівник на записи в таблиці.

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

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

Індекс не є частиною таблиці — це окремий об’єкт, пов’язаний з таблицею і іншими об’єктами бази даних. Це дуже важливий момент реалізації СУБД, що дозволяє відділити збереження інформації від її подання.

Читати повністю

Введення обмежень в базах даних

В базі даних існують такі види обмежень:

  1. Первинний ключ — PRIMARY KEY.
  2. Унікальний ключ — UNIQUE KEY.
  3. Зовнішній ключ — FOREIGN KEY — може включати автоматичні тригери ON UPDATE і ON DELETE; перевірки — CHECK.

Обмеження бази даних бувають двох типів — на основі одного поля і на основі декількох полів таблиці. Давайте розглянемо створення обмежень детальніше. Першим в описі загального синтаксису обмежень йде ключове слово[CONSTRAINT <Ім'я обмеження>]. Тут CONSTRAINT означає обмеження. Як бачите, все це взяте в квадратні дужки і, значить, необов’язкове. В базі даних не може бути два обмеження з однаковими іменами.

За допомогою ключового слова CONSTRAINT можна задавати ім’я створюваному обмеженню і у випадку використання синтаксису обмежень на основі одного поля, і у випадку обмежень на основі декількох полів.

Якщо не вказати ім’я для обмеження, СУБД автоматично згенерує його. Однак краще все ж явно назначити ім’я, щоб покращити читабельність схеми бази даних і мати можливість, в подальшому, видалити його.

Читати повністю

Створення таблиці в базі даних

Перш ніж пиступити до розгляду SQL команди CREATE TABLE, розглянемо найбільш використовувані типи даних, які можуть приймати поля таблиці бази даних:

Тип Опис
BLOB Об'єкт, який зберігає дані великого обсягу, такі як графіка, текст і цифровий звук. Має декілька підтипів (sub_type), з яких найбільш використовуваним є 0: дані загального вигляду; 1: тексти. Підтип даних BLOB описується в їх контексті. Пам'ять під BLOB дані виділяється так званими сегментами. При оголошенні можна змінювати розмір сегмента, наприклад BLOB SEGMENT SIZE 1024. За замовчуванням розмір сегмента 80 байт.
CHAR(n); VARCHAR(n) Рядок тексту фіксованої довжини (від 1 до 32767 байт). Визначає кількість знаків.
DECIMAL (<точність>,
<масштаб>)
NUMERIC (<точність>,
<масштаб>)
Типи числових даних з фіксованими точністю і масштабом. Параметр <точність> (від 1 до 15) визначає загальну кількість цифр. <Масштаб> (від 1 до 15) визначає число цифр після коми. Повинно бути менше або дорівнює параметра <точність>. Розмір в пам'яті залежить від зазначеної точності.
DATE Дата (включає також інформацію про час).
FLOAT Дійсне число. 7 цифр точності. Займає 4 байта.
DOUBLE PRECISION Дійсне число підвищеної точності. Для наукових обчислень: 15 цифр точності. Займає завжди 8 байт.
INTEGER Ціле число від −2147483648 до 2147483648. Займає 4 байта.
SMALLINT Ціле число від −32768 до 32767. Займає 2 байта.

Отже, з типами розібралися, приступимо до створення таблиь. В SQL для цього існує команда CREATE TABLE, яка має наступний синтаксис:

Читати повністю

Створення бази даних засобами SQL

Для створення бази даних використовується оператор CREATE DATABASE, який має наступний синтаксис:

CREATE DATABASE «<ім'я файлу бази даних>»
[USER "<ім'я користувача>" [PASSWORD "<пароль>"]]
[PAGE_SIZE int]
[DEFAULT CHARACTER SET charset]

Якщо ви створюєте базу даних не на локальному комп'ютері, а на сервері, то необхідно в параметрі <ім'я файлу бази даних> вказати ім'я сервера. Також рекомендується в імені файлу використовувати тільки латинські букви, цифри та символ підкреслення. Даний файл зберігається з розширенням *.gdb.

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

Читати повністю