Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Работа с удаленными базами данных на примере InterBase

Поиск:
Работа с удаленными базами данных на примере InterBase

Создание базы данных
В отличие от локальной БД, являющейся скорее логическим понятием, поскольку её таблицы находятся в разных файлах и, возможно, в разных каталогах, удаленная БД представляет собой физический объект.

Создать и удалить БД можно, подготовив и выполнив соответствующие запросы.
Оператора SQL создание БД имеет следующий формат:
Код

CREATE DATABASE “<имя файла БД”
[USER “Имя пользователя” [PASSWORD “Пароль пользователя”]]
[PAGE_SIZE [=] <Целое число>]
[LENGTH [=] <Целое число> [PAGE[S]]]
[DEFAULT CHARACTER SET <Набор символов>]
[<Вторичный файл>];

Код

<Вторичный файл> = FILE “<Имя файла БД>” [<Файловая информация>]
[<Вторичный файл>]

Код

<Файловая информация> = LENGTH [=] <Целое число> [PAGE[S]] | STARTING [AT [PAGE]] <Целое число>
[<Файловая информация]

имя файла БД указывает спецификацию (имя и путь) физического файла, в котором будет храниться информация создаваемой БД. Имя файла является обязательным единственным параметром, который должен быть задан для новой БД. Остальные параметры являются факультативными.
Если данные хранятся более, чем в одном физическом файле, то говорят о многофайловой БД. Такая структура может быть использована при большом объеме данных, когда файл базы достигает значительных размеров. При этом первый файл называется – первичным, а последующие – вторичными. Вторичные файлы можно размещать в других каталогах и на других дисках сервера. Размеры файлов (их длины) измеряются в страницах.
Для файлов БД задаются следующие параметры:
PAGE_SIZE – размер страницы в байтах. Допустимые значения: 1024, 2048,4096, 8192
LENGTH – длина файла в страницах.
STARTING – страница, начиная с которой располагается файл.

Пример:
Код

CREATE DATABASE “D:\personnel.gdb”;
/*создается однофайловая БД*/

Код

CREATE DATABASE “D:\Store\Store.gdb”
FILE “D:\Store\Store.gd2” STARTING AT PAGE 501 LENGTH = 300
FILE “D:\Store\Store.gd3”;
/*Создается многофайловая БД из трех файлов с одинаковыми именами Store*/
/*Длина первичного файла составляет 500 страниц и задается косвенным путем – через указание номера начальной страницы вторичного файла, равного 501. Длина первого вторичного файла равна 300 страниц, а длина второго вторичного файла не ограничена*/

Другие примеры:
Код

CREATE DATABASE “D:\Test.gdb”
USER “User1” PASSWORD “Secret”;

Код

CREATE DATABASE “D:\text.gdb”
DEFAULT CHARACTER SET WIN1251;

Последний запрос определяем набор, используемый для кодировки символов. Для нашей страны рекомендуется использовать набор WIN1251.

Удалить текущую открытую БД можно через оператор:
Код

DROP DATABASE;


Добавление, редактирование и удаление новой таблицы
Создание таблицы заключается в задании имени и структуры таблицы и выполняется с помощью оператора CREATE TABLE:
Код

CREATE TABLE <Имя таблицы> [EXTERNAL [FILE] “<Имя файла>”]
(<Имя столбца> <Описание столбца> [<Ограничение столбца>],

[<Ограничение таблицы>,]
[<Описание ключа>,]
[<Описание индекса>]);

По умолчанию таблица добавляется к текущей БД. Если таблицу нужно разместить не в файле БД, а в другом файле, то его имя указывается в операнде EXTERNAL.
Удаляют таблицу через оператор:
Код

DROP TABLE <Имя таблицы>;

Изменение таблицы выполняется оператором ALTER TABLE, не отличающимся ничем от стандартного оператора ALTER TABLE для всех баз данных.

Описание столбца
Код

<Описание столбца> = {<Имя столбца> | COMPUTER [BY] (<Выражение>) | <Домен>}

Итак, имеет три вида столбца:
1) Обычный столбец с типом данных, например, INTEGER
2) Вычисляемый столбец
3) Столбец на основе домена
Домен представляет собой предварительное описание столбца, которое затем можно использовать для описания столбцов. Создание домена будет рассмотрено далее.
Пример:
Код

CREATE TABLE List
(Name VARCHAR(20),
Price Float,
Number INTEGER,
PriceAll COMPUTED BY (Price * Number));

Здесь приведен пример создания столбца PriceAll, значение которого вычисляется автоматически по формуле Price * Number, где Price и Number – столбцы таблицы.

Ограничение столбца
Код

[DEFAULT {<Значение> | NULL | USER}]
[NOT NULL]
[COLLATE <Порядок сортировки>]
[CHECK <Условия>]

Операнд DEFAULT отвечает за значении по умолчанию.
Операнд NOT NULL указывает, что столбец не может быть пустым.
Про программировании операторов нельзя допускать взаимоисключающие конструкции, например DEFAULT NULL и NOT NULL.
Операнд Cehck позволяет установить для столбца разнообразные условия, управляющие его значениями.
Код

CEHCK
{<Выражение> <Операция сравнения> {<Выражение> | (<отбор1>)}
| <Выражение> [NOT] BETWEEN <Мин значение> AND <Макс значение>
| <Выражение> [NOT] LIKE <Выражение1> [ESCAPE <Выражение2>]
| <Выражение> [NOT] IN (<Выражение1>,…,<ВыражениеN> | (<ОтборМ>))
| <Выражение> IS [NOT] NULL
| <Выражение> [NOT] {<Операция сравнения> | ALL | SOME | ANY} (<ОтборМ>)
| EXISTS (<ОтборМ>)
| SINGULAR (<ОтборМ>)
| <Выражение> [NOT] CONTAINING <Выражение1>
| <Выражение> [NOT] STARTING [WITH] <Выражение1>}

Вообще-то всё понятно и без комментариев, поэтому приведем просто примеры:
Код

CREATE TABLE Test1
(Name VARCHAR(20) NOT NULL,
Price FLOAT CHECK (Price > 0),
Number INTEGER CHECK (Number BETWEEN 1 AND 1000));

Код

CREATE TABLE Test2
(Name VARCHAR(20),
Position VARCHAR(20) CHECK (Position IN (“Директор”, “Менеджер”, “Бухгалтер”),
Attrib VARCHAR(20) CHECK (Attrib IN (SELECT Attrib FROM Attribs)));

Код

CREATE TABLE Test3
(Name VARCHAR(20),
OrderDate DATE,
PerformDate DATE,
CHECK (PerformDate >= OrderDate));


Описание ключей
Код

PRIMARY KEY (<Список столбцов ключа>)

Пример:
Код

CREATE TABLE Personnel2
(Code INTEGER NOT NULL,
Name VARCHAR(30),
PRIMARY KEY (Code));

Так же есть несколько другой способ задания ключа:
Код

CREATE TABLE Personnel2
(Code INTEGER NOT NULL PRIMARY KEY,
Name VARCHAR(30));

Таблица может иметь только один первичный ключ, однако кроме него можно определить ещё несколько уникальных ключей:
Код

CREATE TABLE Position
(Code INTEGER NOT NULL,
Position VARCHAR(20) NOT NULL,
PRIMARY KEY (Code),
UNIQUE (Position));


Определение ограничений ссылочной целостности
Действие ограничений ссылочной целостности заключается в следующем: если для записи главной таблицы имеются записи в подчиненной таблице (таблицах), то эту запись нельзя удалить, а также изменить значения столбцов, образующих ключ.
Код

[CONSTRAINT <Имя ограничения>]
FOREIGN KEY (<Список столбцов ключа>)
REFERENCES <Имя главной таблицы> [<Список столбцов ключа главной таблицы>]

Приведем сразу же пример:
Код

CREATE TABLE Store
(S_Code INTEGER NOT NULL PRIMARY KEY,
S_Name VARCHAR(20) NOT NULL,
S_Price FLOAT,
S_Number FLOAT);

CREATE TABLE Cards
(C_Code INTEGER NOT NULL PRIMARY KEY,
C_Code2 INTEGER NOT NULL,
C_Move VARCHAR(20) NOT NULL,
C_Date DATE,
CONSTRAINT rStoreCards
FOREIGN KEY(C_Code2) REFERENCES Store);

Удалить ограничение ссылочной целостности можно следующим образом:
Код

ALTER TABLE <Имя таблицы>
DROP <Имя ограничения ссылочной целостности>;


Использование индексов
Код

CREATE [UNIQUE] [ASCENDING] [DESCENDING] INDEX
<Имя индекса> ON <Имя таблицы> (<Имя столбца>, …, [<Имя столбца>]);

UNIQUE – индекс требует уникальности значений столбца, по которому он построен
ASCENDING – индексные столбцы сортируются в порядке возрастания значений
DESCENDING – индексные столбцы сортируются в порядке убывания значений
Пример:
Код

CREATE DESCENDING INDEX
indNamePosition ON Personnel (Name, Position);

Описание индекса indNamePosition таблицы Personnel имеет следующий вид:
Код

INDNAMEPOSITION INDEX ON PERSONNEL (NAME, POSITION)

В свою очередь, строки
Код

RDB$FOREIGN4 INDEX ON CARDS (C_CODE)
RDB$PRIMARY3 UNIQUE INDEX ON STORE (S_CODE)

описывают индексы для связанных таблиц, построенные на основании первичного ключа таблицы STORE и внешнего ключа таблицы CARDS. По умолчанию индексы получили имена RDB$FOREIGN4 и RDB$PRIMARY3, соответственно.
Код

SHOW INDEX [<Имя таблицы>];

Этот оператор выводит для таблицы описание всех индексов.
Деактивация индекса происходит следующим образом:
Код

ALTER INDEX <Имя индекса> INACTIVE;

Активация:
Код

ALTER INDEX <Имя индекса> ACTIVE;


Использование доменов
Домен представляет собой именованное описание столбца. После определения домена его можно использовать при описании других столбцов.
Код

CREATE DOMAIN <Имя домена>
[AS] <Описание домена>

Потом в операторе CREATE TABLE:
Код

<Имя столбца> <Имя домена>

Пример:
Код

CREATE DOMAIN D_Position
AS VARCHAR(20) NOT NULL;

CREATE TABLE Position
(Code INTEGER NOT NULL PRIMARY KEY,
Position D_Position,
Note VARCHAR(50));


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

CREATE VIEW <Имя просмотра> [<Список столбцов>]
AS <Оператор SELECT> [WITH CHECK OPTION];

Пример:
Код

CREATE VIEW vStore AS
SELECT S_Name, C_Number
FROM Store
WHERE S_Number >= 0.5;

SELECT * FROM vStore;

Удалить просмотр можно при помощи оператора:
Код

DROP VIEW <Имя просмотра>;
Автор: Pakshin A. S.
Сайт: http://pakshin.com.ru/






Просмотров: 7329

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную