Ознакомившись с основными терминами и понятиями БД, можно перейти к рассмотрению средств, имеющихся в распоряжении разработчика, создающего приложения БД при помощи Delphi. Средства Delphi, предназначенные для работы с БД, можно разделить на 2 категории: инструментарий и компоненты. Инструментарий включает в себя рад дополнительных программ, входящих в поставку Delphi и предназначенных для работы с БД. Что касается компонентов, то в VCL имеется множество специализированных компонент, предназначенных для работы с БД.
Типы БД в Delphi
Хотя Delphi и не является СУБД в классическом понимании этого термина, в частности, у нее нет собственного формата баз данных, она поддерживает как собственные сразу несколько форматов, в частности, dBase и Paradox.
Таблицы dBase являются одним из первых форматов БД, появившихся на ПК, благодаря чему с ними могут взаимодействовать многие СУБД - если и не на прямую, то по крайней мере, имея возможность импортировать и экспортировать данные в этом формате. Более того, с некоторыми оговорками, их можно просматривать и редактировать даже в электронных таблицах, например, в Excel.
Формат dBase является достаточно простым и может использовать для хранения каждой таблицы до 3 файлов:
dbf - основная таблица с данными;
dbt - BLOB-данные (этот файл появляется, если в таблице предусмотрены соответствующие поля);
mdx - файл с индексами.
Таким образом, dBase - это достаточно простой и универсальный формат таблиц. Это о преимуществах, из недостатков же следует отметить такие, как ограничения на имена полей в таблицах: максимальная длина - всего 10 символов, допустимы только латинские буквы и цифры. Сходные ограничения налагаются на имена самих таблиц, при этом, в лучших традициях 16-битных систем, длина имени таблицы не должна превышать 8 символов (хотя это ограничение, в общем-то, можно игнорировать при работе в Delphi под 32-разрядными системами). Но куда более существенными недостатками являются отсутствие автоматического контроля целостности данных или связей, прав доступа, а так же ограничения на поддерживаемые типы данных, ключи, индексы и т.д. Все это делает данный формат недостаточно конкурентоспособным.
Другой формат, Paradox, появился позже и, пожалуй, является одним из наиболее развитых форматов, применяемых в локальных БД. Основными отличиями этого формата от dBase являются:
возможность использования практически любых символов для названий полей, а так же лимит в 25 символов, а не в 10;
большее количество поддерживаемых типов данных, включая автоинкрементный тип;
поддержка контроля целостности данных и возможность организации проверки вводимых данных;
возможность защиты таблиц паролем и определения прав доступа к данным.
Благодаря таким достоинствам, формат Paradox используется гораздо чаще, по крайней мере, применительно к Delphi. Кроме того, большой набор типов данных позволяет эффективно подбирать нужный тип для хранения данных. Полный перечень поддерживаемых Paradox типов данных и их символьные обозначения в программе Database Desktop приведены в таблице 18.1.
Таблица 18.1. Типы данных в Paradox 7
Тип
Обозначение
Описание
Alpha
A
Строка длиной не более 255 символов (аналог ShortString)
Number
N
Число с плавающей точкой (аналог Double)
Money
$
То же, что и Number, но при выводе сопровождается обозначением денежного знака
Short
S
Малое целое (аналог SmallInt)
LongInteger
I
Целое (аналог LongInt)
BCD
#
Число в двоично-десятичном формате
Date
D
Дата в диапазоне от 1 января 9999г. до н.э. до 31 декабря 9999г.
Time
T
Время
Timestamp
@
Дата и время
Memo
M
Строка произвольной длины. Первые 240 символов хранятся в файле основной таблице, остальные – в файле с BLOB-данными
Formatted Memo
F
То же, что и Memo но для RTF-текста
Graphic
G
Графическое изображение в формате BMP, PCX, TIFF, GIF или EPS. При выводе преобразуется в BMP, хранится в файле с BLOB-данными
OLE
O
Произвольные данные, которые поддерживаются через OLE. Хранятся в файле в BLOB-данными
Logical
L
Логическое значение (TRUE или FALSE)
Autoincrement
+
Автоинкрементное поле. При добавлении новой записи значение этого поля автоматически увеличивается на 1
Binary
B
Двоичная информация (произвольная последовательность байтов). Подобно Memo, первые 240 байт хранятся в файле основной таблицы, остальные – в BLOB
Bytes
Y
Двоичная информация (произвольная последовательность байтов) длиной не более 255 символов
Что касается файлов, используемых для хранения информации, то в Paradox их может быть использовано достаточно большое количество:
db - файл с основными данными таблицы;
mb - файл с BLOB-данными;
px - файл с первичным индексом (ключом);
xg? и yg? - файлы со вторичными индексами (вместо ? будет порядковый номер индекса);
val - файл с информацией для проверки данных и целостности ссылок.
Таким образом, количество файлов, ассоциированных с каждой таблицей, может достигать десятков, если использовать множество вторичных индексов. Пожалуй, это и есть единственный существенный недостаток формата Paradox. Но поскольку преимуществ у него гораздо больше, то в Delphi именно Paradox предлагается использовать по умолчанию, и потому этот формат называется не Paradox, а Standard.