Описание полей
Создание таблиц базы данных
Введение
Продемонстрируем возможности Delphi по работе с БД на примере создания простой информационной системы. Эту информационную систему можно разработать даже без написания кода: все необходимые операции выполняются с помощью программы Database Desktop, Конструктора формы и Инспектора объектов. Работа над информационной системой состоит из следующих основных этапов:
§ создание БД;
§ создание приложения.
Кроме приложения и БД, в информационную систему также входят вычислительная система и СУБД. Предположим, что компьютер или компьютерная сеть уже существуют, и их характеристики удовлетворяют потребностям будущей информационной системы. В качестве СУБД выберем Delphi.
В простейшем случае БД состоит из одной таблицы. Если таблицы уже имеются, то первый этап не выполняется. Отметим, что совместно с Delphi поставляется большое количество примеров приложений, в том числе и приложений БД. Файлы таблиц для этих приложений находятся в каталоге c:\Program Files\Shared Files\Borland Shared\Data. Готовые таблицы можно использовать также и для своих приложений.
Для работы с таблицами БД при проектировании приложения удобно использовать программу Database Desktop, которая позволяет:
□ создавать таблицы;
□ изменять структуры;
□ редактировать записи.
Кроме того, с помощью Database Desktop можно выполнять и другие действия над БД (создание, редактирование и выполнение визуальных и SQL-запросов, операции с псевдонимами).
Замечание
Почти все рассматриваемые далее действия по управлению структурой таблицы можно выполнить также программно, чему посвящены последующие занятия.
Процесс создания новой таблицы начинается вызовом команды File/New/Table(Файл/Новая/Таблица) и происходит в интерактивном режиме. При этом разработчик должен:
§ выбрать формат (тип) таблицы;
§ задать структуру таблицы.
В начале создания новой таблицы в окне Create Table(Создание таблицы) (рис. 5.1) выбирается ее формат. По умолчанию предлагается формат таблицы Paradox версии 7, который мы и будем использовать. Для таблиц других форматов, например dBase IV, действия по созданию таблицы практически не отличаются.
Рис. 5.1. Выбор формата таблицы
После выбора формата таблицы появляется окно определения структуры таблицы (рис.5.2), в котором выполняются следующие действия:
§ описание полей;
§ задание ключа;
§ задание индексов;
§ определение ограничений на значения полей;
§ определение условий (ограничений) ссылочной целостности;
§ задание паролей;
§ задание языкового драйвера;
§ задание таблицы для выбора значений.
В этом списке обязательным является только первое действие, т. е. каждая таблица должна иметь хотя бы одно поле. Остальные действия выполняются при необходимости. Часть действий, такие как задание ключа и паролей, производится только для таблиц определенных форматов, например, для таблиц Paradox.
При заведении новой таблицы сразу после выбора ее формата можно не создавать структуру таблицы, а скопировать ее из другой таблицы: при нажатии на кнопку Borrow...(Взаймы) открывается окно Select Borrow Table(Выбор таблицы для заимствования) — рис. 5.3.
Рис. 5.2.Определение структуры таблицы
В этом окне можно выбрать таблицу (главный ее файл) и указать копируемые элементы структуры, установив соответствующий флаг, например, Primary index (Первичныйиндекс) для ключа. Посленажатия кнопки Openиз выбранной таблицы в новую копируются описания полей, а также те элементы, для которых установлен флаг. Если какой-либо элемент в структуре копируемой таблицы отсутствует, то состояние флага не имеет значения. Например, если в выбранной таблице не определены ограничения ссылочной целостности, то в новой таблице они не появятся, даже если установлен переключатель Referential integrity(Ссылочная целостность).
Рис. 5.3.Выбор таблицы для заимствования ее структуры
Впоследствии скопированную структуру можно настраивать, изменяя, добавляя или удаляя ее отдельные элементы.
После определения структуры таблицы ее необходимо сохранить, нажав кнопку Save as... и указав расположение таблицы на диске и ее имя. В результате на диск записывается новая таблица, первоначально пустая, при этом все необходимые файлы создаются автоматически.
Центральной частью окна определения структуры таблицы является список Field roster,в котором указываются поля таблицы. Для каждого поля задаются:
§ имя — в столбце Field Name;
§ тип — в столбце Туре;
§ размер — в столбце Size.
Имя поля вводится по правилам, установленным для выбранного формата таблиц. Правила именования и допустимые типы полей таблиц Paradox описаны в лекции 2.
Тип поля можно задать, непосредственно указав соответствующий символ, например, A для символьного или I для целочисленного поля, или выбрать его из списка (рис. 5.4), раскрываемого при нажатии клавиши <Пробел> или щелчком правой кнопки мыши в столбце Туре.Список содержит все типы полей, допустимые для заданного формата таблицы. В списке подчеркнуты символы, используемые для обозначения соответствующего типа, при выборе типа эти символы автоматически заносятся в столбец Туре.
Размер поля задается не всегда, необходимость его указания зависит от типа поля. Для полей определенного типа, например, автоинкрементного (+) или целочисленного ( i), размер поля не задается. Для поля строкового типа размер определяет максимальное число символов, которые могут храниться в поле.
Рис. 5.4. Список типов для полей таблицы Paradox 7
Добавление к списку полей новой строки выполняется переводом курсора вниз на несуществующую строку, в результате чего эта строка появляется в конце списка. Вставка новой строки между существующими строками с описанием полей выполняется нажатием клавиши <Insert>. Новая строка вставляется перед строкой, в которой расположен курсор. Для удаления строки необходимо установить курсор на эту строку и нажать комбинацию клавиш <Ctrl>+<Delete>.
Ключ создается указанием его полей. Для указания ключевых полей в столбце ключа (Key)нужно установить символ *, переведя в эту позицию курсор и нажав любую алфавитно-цифровую клавишу. При повторном нажатии клавиши отметка о принадлежности поля ключу снимается. В структуре таблицы ключевые поля должны быть первыми, т. е. верхними в списке полей. Часто для ключа используют автоинкрементное поле (см. рис. 5.2).
Напомним, что для таблиц Paradox ключ также называют первичным индексом (Primary Index), а для таблиц dBase ключ не создается, и его роль выполняет один из индексов.
Для выполнения остальных действий по определению структуры таблицы используется комбинированный список Table properties(Свойства таблицы), содержащий следующие пункты:
§ Secondary Indexes— индексы;
§ Validity Checks— проверка правильности ввода значений полей
(выбирается по умолчанию);
§ Referential Integrity— ссылочная целостность;
§ Password Security— пароли;
§ Table Language— язык таблицы (языковой драйвер);
§ Table Lookup— таблица выбора;
§ Dependent Tables— подчиненные таблицы.
После выбора какого-либо пункта этого списка в правой части окна определения структуры таблицы появляются соответствующие элементы, с помощью которых выполняются дальнейшие действия.
Состав данного списка зависит от формата таблицы. Так, для таблицы dBase он содержит только пункты Indexesи Table Language.