
- •Поняття баз даних.
- •Реляційні бази даних
- •1.3. Первинні ключі та індекси
- •1.4. Реляційні відношення (зв’язки) між таблицям
- •1.4.1. Відношення "один-до-багатьох"
- •1.4.2. Відношення "один-до-одного"
- •1.4.3. Відношення "багато-до-багатьох"
- •1.4.4. Зв’язки між записами однієї таблиці
- •1.5. Цілісність посилань (referencial integrity)
- •Індекси.
- •Поняття транзакцій
- •Локальні та файл-серверні бази даних
- •Загальний огляд засобів для роботи з базами даних
- •Побудова додатків баз даних в архітектурі "клієнт-сервер"
- •Interbase: деякі технічні характеристики
- •Питання з'єднання з видаленим сервером
- •Приклад бд “Облік товарів на складі”
- •Зміна визначення домена – після create domain (крім типу та not null)
- •Первинний ключ
- •Зовнішній ключ та визначення цілісності посилань
- •Використання генераторів та збережених процедур
- •Знищення таблиці
- •Використання підрядків (containing)
- •Додавання, зміна, видалення записів
- •Оператор insert
- •Явне вказання списку значень
- •Вказання значень за допомогою оператора select
- •Оператор delete
Питання з'єднання з видаленим сервером
При роботі з локальним сервером досить встановити псевдонім БД (утиліта BDE Administrator) і потім використовувати даний псевдонім в додатку Delphi, в компонентах TDatabase і, можливо, TTable і TQuery (коли з'єднання з БД проводиться без компонента TDatabase). При доступі до локального сервера безпосередньо з InterBase (наприклад, з утиліти IBConsole) указується шлях до БД (InterBase працює з БД, використовуючи власний API і нічого не "знає" про BDE).
При роботі з віддаленим сервером необхідно "прописати" його на комп'ютері, з якого відбувається звернення до сервера. При використанні протоколу TCP/IP:
1) IP-адреса і ім'я мають бути описані у файлі HOSTS, наприклад: 10.12.0.41 spv
2) протокол доступу до InterBase має бути описаний у файлі SERV ICE:
gds_db 3050/tcp
Обидва вказані файли знаходяться в каталозі WINDOWS.
Приклад бд “Облік товарів на складі”
Таблиці: “Товар” (БТ) : Назва товару, Одиниця виміру, Ціна_од_виміру
“Покупці” (БТ): Назва покупця, Місто, Адреса
“Продаж_товару” (ДТ): Номер_продажу, Дата продажу, Кількість, Назва товару (FK), Назва покупця (FK).
Для створення бази Interbase
CREATE {DATABASE | SCHEMA} "<ім’я_файлу>"
[USER "ім’я_користувача" [PASSWORD "пароль"]]
[PAGE_SIZE [=] ціле]
[LENGTH [=] ціле [PAGE[S]]]
[DEFAULT CHARACTER SET набір_символів]
[<вторинний_файл>];
<вторинний_файл> = FILE "<ім’я_файлу>" [<файлов_інформ>] [<вторинний_файл>]
<файлов_інформ> = LENGTH [=] ціле [PAGE[S]] | STARTING [AT [PAGE]] ціле [<файлов_інформ>]
де <ім’я_файлу> – назва (первинного) файлу для створюваної БД;
USER "ім’я_користувача" - ім’я_користувача, яке перевірятиметься при з’єднанні;
PASSWORD "пароль" - пароль, який перевірятиметься при з’єднанні;
PAGE_SIZE [=] ціле – розмір сторінки БД в байтах (1024, 2048, 4096, 8192);
DEFAULT CHARACTER SET набір_символів – набір символів (NONE);
FILE "<ім’я_файлу>" – ім’я наступного (вторинного) файлу для створюваної БД;
STARTING [AT [PAGE] – з якої сторінки БД починається файл;
LENGTH [=] ціле [PAGE[S]] – довжина файлу в сторінках (>50, 75).
Приклад:
CREATE DATABASE “SKLAD.GDB” USER “SYSDBA” PASSWORD “masterkey” DEFAULT CHARACTER SET WIN1251
Типи даних InterBase
SMALLINT -32768 до +32767 (DBD – short)
INTEGER -2 147 483 647 до +2 147 483 647. (DBD – long)
FLOAT 3.4Е-38 до 3.4Е+38 (.7 зн). (DBD – short)
DOUBLE PRECISION 1,7Е-308до1,7Е+308. (.15 зн).
CHAR (n), CHARACTER симв.рядок фікс. довжини (при зчитуванні) (0<n<32767)
VARCHAR (n), CHARACTER VARYING симв.рядок зм. довжини (0<n<32767)
DATE дата і час = TDateTime
BLOB дв. дані (Binary Large Object)
Поняття домену
Для створення стовпців з однаковими характеристиками використовуються домени.
Домен визначається оператором CREATE DOMAIN. Його формат:
CREATE DOMAIN домен [AS] <тип_даних>
[DEFAULT {літерал| NULL | USER}]
[NOT NULL] [CHECK (<обмеж_домена>)]
[COLLATE collation] ;
COLLAТЕ collation - порядок сортування символів (для символьних полів) для обраного набору символів.
DEFAULT - значення поля за замовчуванням (при створенні запису і до його зміни);
Приклад:
CREATE DOMAIN POL_TYPE AS
VARCHAR(20) NOT NULL COLLATE PXW_CYRL;
тоді
CREATE TABLE TOVARY(
TOVAR POL_TYPE,
OD_VYM VARCHAR(10) NOT NULL COLLATE PXW_CYRL,
CINA FLOAT NOT NULL,
PRIMARY KEY(TOVAR)
);