Смекни!
smekni.com

Основы баз данных (стр. 2 из 7)

Сначала в окне Create Table (см. рис. 3) выбирается форма таблицы. По умолчанию предлагается формат Paradox 7, который используется в качестве примера.

После выбора типа таблицы появляется окно определения ее структуры (рис. 4), в котором выполняются все остальные действия, при этом нужно задать как минимум одно поле.

Для каждого поля задается имя (в столбце Field Name), тип (в столбце Type) и при необходимости размерность (в столбце Size). Можно задать тип поля, непосредственно указав соответствующий символ или выбрав из списка (см. рис. 4), раскрываемого после нажатия клавиши <Пробел> или щелчка мыши на столбце с указанием типов. Список содержит все типы полей, допустимые для заданного формата таблицы.

Для указания ключевых полей в столбце ключа Key нужно ввести символ "*" следующим способом: установить курсор в эту позицию и нажать любую алфавитно-цифровую клавишу. При повторном нажатии клавиши снимается метка о принадлежности поля ключу. Ключевые поля должны быть в списке первыми, то есть располагаться в окне определения структуры таблицы наверху.

Рис. 4. Окно для определения структуры таблицы

Для выполнения дополнительных действий по определению структуры таблицы используется комбинированный список Table properties (свойства таблицы), содержащий следующие пункты:

· Secondary Index – задание индекса;

· Validity Checks – ограничения на ввод значений полей;

· Password Security – определение пароля;

· Referential Integrity – определение ссылочной целостности между таблицами;

· Table Language – задание языка;

· Table Lookup – задание полей просмотра.

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

При выборе пункта Secondary Index комбинированного списка становится доступной кнопка Define (определить). После ее нажатия проявляется окно Define Secondary Index (задание вторичного индекса) (рис. 5). В этом окне задаются индексные поля, отображаемые в правом списке, и параметры индекса, основные из которых изменяются с помощью следующих флажков:

· Unique – индекс допускает уникальные значения для составляющих его полей;

· Case sensitive – для полей строкового типа учитывается регистр символов;

· Descending – сортировка выполняется в порядке убывания значений.

После задания состава индексных полей и нажатия кнопки ОК появляется окно Save Index As, в котором указывается имя индекса.


Рис. 5. Окно задания индекса

После определения структуры таблицы ее необходимо сохранить, нажав кнопку Save as… (сохранить как) и указав расположение таблицы и ее имя на диске.

В последующем структуру таблицы можно изменить, вызвав команду Table/Restructure... (таблица/изменить структуру), которая доступна только для открытой таблицы.

1.6.2 Создание формы приложения

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

Вид формы приложения представлен на рис. 6. На форме расположены следующие компоненты: Table1, DataSource1, DBGrid1 и DBNavigator1.

Рис. 6. Форма приложения для работы с БД

Компонент Table1 обеспечивает взаимодействия с БД. Для связи с требуемой таблицей необходимо установить соответствующие значения свойств DataBaseName, которое указывает путь к БД, и TableName, которое задает имя таблицы. После задания таблицы БД свойству Active должно быть установлено значение True.

При смене таблицы перед значением свойств DataBaseName и TableName нужно установить значение False свойству Active.

Имя таблицы лучше выбирать из раскрывающегося списка в поле значения свойства TableName. Если путь к БД (свойство DataBaseName) задан правильно, в этом списке отображаются все доступные файлы.

Компонент DataSourse1 является промежуточным звеном между компонентом Table1, который соединен с реальной таблицей БД, и управляющими компонентами DBGrid1 и DBNavigator1, с помощью которых пользователь взаимодействует с этой таблицей. На компонент Table1, с которым связан компонент DataSourse1, указывает свойство DataSetпоследнего.

Компонент DBGrid1 отображает содержимое таблицы БД в виде сетки, в которой столбцы соответствуют полям, а строки – записям. По умолчанию пользователь может просматривать и редактировать данные. Компонент DBNavigator1 предоставляет возможность перемещаться по таблице, редактировать, вставлять и удалять записи. Компоненты DBGrid1 и DBNavigator1 связываются со своим источником данных – компонентом DataSourse1 через свои свойства DataSource.

При разработке приложения значения всех свойств компонентов можно задать с помощью Инспектора объектов. При этом требуемые значения можно набрать в поле значений или выбрать из раскрывающихся списков. В табл. 2 приведены компоненты для работы с БД, а также основные свойства и их значения. В данном примере используется таблица из файла с названием spispe1.db, которая лежит в папке, указанной пользователем. Путь к каталогу указывает псевдоним pimDB.

Таблица 2

Значения свойств компонентов

Компонент Свойства Значения
Table1 Active spispe1.db
DataBaseNameTableName primDB true
DataSourse1 DataSet Table1
DBGrid1 DataSource DataSource1
DBNavigator1 DataSource DataSource1

Для автоматизации процесса создания формы, использующей компоненты для операции с БД, можно вызвать Database Form Wizard (Мастер форм баз данных). Появится окно, представленное на рис. 7. Мастер форм баз данных расположен на странице Business хранилища объектов, доступ к которому осуществляется по команде File/New… (файл/новый).

Рис. 7. Окно Мастера форм баз данных

Мастер форм баз данных позволяет создавать формы для работы с отдельной таблицей и с взаимосвязанными таблицами, при этом можно использовать наборы данных Table и Query.

1.7 Программа BDE Administrator

Программа BDE Administrator представляет собой администратор процессора баз данных BDE. Для вызова администратора BDE запускается файл bdadmin.exe. Администратор позволяет настраивать параметры БД и системные параметры (операционной системы). Параметры псевдонима: название, тип, путь. Параметры драйвера: тип, язык. Системные установки: установки по умолчанию, форматы даты, времени и числовые параметры.

Для настройки некоторого параметра в левой части окна администратора BDE выбирается нужный объект, после чего в правой части окна становится доступным список параметров этого объекта. Добавить новый объект можно, выбрав в окне администратора пункт меню Object/New (Объект/Новый).

1.8 Работа с псевдонимами

Псевдоним (alias) указывает на местоположение БД и представляет собой специальное имя для обозначения каталога.

Для добавления нового псевдонима перед вызовом пункта меню Object/New администратора нужно выбрать вкладку Database в левой части окна. В диалоговом окне нужно выбрать тип драйвера. Для локальных таблиц Paradox выбирается тип STANDARD.

После нажатия кнопки ОК создается новый псевдоним, и его данные отображаются в окне администратора BDE (рис. 8). Новый псевдоним автоматически получает имя STANDARD1 и параметры по умолчанию.

Псевдоним для работы с локальными БД имеет следующие три параметра:

· DEFAULTDRIVER– указывает формат таблицы БД;

· ENABLEBCD– указывает на необходимость перевода чисел в формат BCD, что позволяет более точно выполнять числовые значения, но уменьшает скорость их выполнения;

· PATH– указывает расположение (каталог) БД.


Рис. 8. Установка параметров псевдонимов

1.9 Работа со связанными таблицами

Между отдельными таблицами БД может существовать связь, которая организуется через поля таблиц. Поля связи обязательно должны быть индексированными. Связь между таблицами определяет отношение подчиненности, при котором одна таблица является главной (родительской), а другая – подчиненной (дочерней или детальной). Обычно используется связь "один ко многим", когда одной записи в главной таблице может соответствовать несколько записей в подчиненной таблице.

Для организации связи между таблицами в подчиненной таблице используются свойства (в Object Inspector):

· MasterSource– источник данных главной таблицы;

· IndexName – текущий индекс;

· IndexFieldNames– поле или поля связи текущего индекса подчиненной таблицы;

· MasterFields– поле или поля индекса главной таблицы.

Для таблиц Paradox в качестве полей связи должны использоваться поля главного индекса, а для подчиненной таблицы – поля вторичного индекса.

Рассмотрим пример вывода данных из главной и подчиненной таблиц (рис. 9). Для организации связи в качестве поля связи главной таблицы берется автоинкрементное поле Kod уникального кода. По этому полю построен главный ключ, значение которого автоматически формируется при добавлении новой записи и в пределах таблицы является уникальным. В подчиненной таблице полем связи является целочисленное поле KodPe, по которому построен вторичный индекс.

Рис. 9. Форма связи между таблицами "один ко многим"

В верхней части формы (см. рис. 9) выводится список всех подвижных единиц (ПЕ), в нижней – сведения о ремонтах выбранной ПЕ. Для наглядности в наборы данных включены все поля таблиц, которые отображаются в компонентах DBGrid. При этом названия заголовков столбцов совпадают с названиями полей.