Основы работы с базами данных

       

Создание базы данных


Разработка любой информационной системы начинается с создания базы данных. Рассмотрим процесс создания базы данных, модель которой описана в предыдущей лекции, в системе VFP.

Для создания новой базы данных можно воспользоваться кнопкой New стандартной панели инструментов (рис. 4.3) или пунктом меню "File - New:".


Рис. 4.3.  Стандартная панель инструментов системы Visual FoxPro


Рис. 4.4.  Выбор типа файла в диалоге New

Особенность этой команды - возможность создания большого количества различных типов файлов, соответствующих различным типам объектов системы, которые мы видим в окне New, появляющемся после этой команды (рис. 4.4).

В окне New в данном случае нужно выбрать тип файла Database.

Далее можно использовать кнопки New file или Wizard. Если выбрать кнопку Wizard - будут предложены готовые американские образцы баз данных - Address Book, Book Collection, Contact Management, Event Management, Music Collection, Picture Library, Students and Classes, Video Collection и прочие, всего более двух десятков.

Для примера на рис. 4.5 приведена схема базы данных, полученная с помощью Wizard для образца Students and Classes.

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


увеличить изображение
Рис. 4.5.  Образец базы данных, полученный с использованием Wizard

Выберем кнопку New file для создания собственной базы данных. После этого нужно задать папку на диске, где мы будем сохранять все компоненты, относящиеся к разрабатываемому проекту, и задать название базы данных (расширение файла указывать не надо - система допишет его сама).
Пусть папка и имя базы данных будут Students (рис. 4.6).


Рис. 4.6.  Диалог для сохранения базы данных на диске

После нажатия на кнопку Save (Сохранить) будут созданы файлы базы данных (students.dbc, students.dct и students.dcx) и откроется пустое окно модификации структуры базы данных (Database Designer), показанное на рис. 4.7. Следует отметить, что очень многие команды, задаваемые нами с использованием меню системы, отображаются в виде текстовых команд в окне Command (создается протокол команд, который сохраняется), и это может быть использовано для повторного выполнения использованных команд или для включения их в текст программы, а также может быть полезно начинающим пользователям для изучения языка системы VFP. После команды Save в окне Command появятся 2 строки команд: CREATE DATABASE и MODIFY DATABASE, как показано на рис. 4.8.

Поместив курсор мыши в окно Database Designer, щелкнем в нем правой кнопкой мыши и в контекстном меню выберем команду New table:.

Далее выбираем New table, а не Wizard, который нам опять предложил бы американские образцы таблиц за основу, выбираем папку и задаем имя главной таблицы базы - Spisok, после чего открывается окно описания структуры таблицы базы данных (Table Designer) (рис. 4.9).


Рис. 4.7.  Окно Конструктора базы данных


Рис. 4.8.  Окно Command системы VFP


увеличить изображение
Рис. 4.9.  Окно Конструктора таблиц

В окне Table Designer описываем все поля таблицы Spisok.dbf- имя поля (Name), тип (Type), ширину (Width), количество десятичных знаков для действительных чисел (Decimal), наличие простого индекса (Index) и задаем заголовок поля таблицы (Caption). Имена полей лучше писать латинскими буквами.

Для индекса NZ на странице Indexes окна Table Designer следует задать тип индекса - Primary (первичный), т.к. номер зачетки - уникальный для каждого студента, однозначно его идентифицирует и поэтому может служить первичным ключом (в таблице обозначения A (Ascending) - индекс в порядке возрастания, P (Primary).



Структура главной таблицы базы данных приведена в табл. 4.3.

Для таблицы, входящей в состав базы данных, в окне Table Designer присутствуют разделы Display, Map field type to classes, Field validation, Field comment, эта информация сохраняется в файле базы данных и поэтому отсутствует при описании структуры свободных таблиц (файлы *.dbf, не входящие в состав базы данных). Таблицу можно удалить из базы, но оставить в виде свободной таблицы на диске; в таком случае информация этих разделов теряется.

Задание заголовков (Caption) для полей при описании структуры таблицы облегчает разработку экранных форм и отчетов - эти названия появятся как подписи для полей (если Caption отсутствует, подписью будет имя поля).

Таблица 4.3. Структура таблицы Spisok.dbfNameTypeWidthDecimalIndexCaption
NzC7A,PНомер зачетки
FioC45Фамилия, имя, отчество
data_pD8Дата поступления
n_fcltN2AФакультет
n_spectC7AСпециальность
kursN1Курс
n_grupС10Группа
n_paspС10Номер паспорта
Далее создаем следующую таблицу в базе - справочник факультетов с именем файла Fclt.dbf. Для этого следует снова поместить курсор на пустое место окна Database Designer, щелкнуть правой кнопкой мыши и в контекстном меню выбрать команду New table. В окне Table Designer описываем структуру таблицы (табл. 4.4).

табл. 4.4

Таблица 4.4. Структура таблицы Fclt.dbfNameTypeWidthDecimalIndexCaption
n_fcltN2A,PНомер факультета
name_fC120Название факультета
Название ключевого поля справочника, его тип и ширину желательно оставить такими же, как и в главной таблице, для облегчения установления связей при разработке экранных форм и отчетов с помощью Мастера.

Точно так же создаем в базе данных следующие таблицы и индексы для табл. 4.5, табл. 4.6, табл. 4.7.

Таблица 4.5. Структура таблицы Spect.dbfNameTypeWidthDecimalIndexCaption
n_spectC7A,PКод специальности
name_sC120Название специальности
Таблица 4.6. Структура таблицы Ocenki.dbfNameTypeWidthDecimalIndexCaption
nzC7AНомер зачетки
semestrN1Семестр
n_predmN2AПредмет
ballС1Оценка
data_bD8Дата
prepodC45Преподаватель
Таблица 4.7. Структура таблицы Predmets.dbfNameTypeWidthDecimalIndexCaption
n_predmN2A,PНомер предмета
name_pС120Название предмета
<


Далее в окне Database Designer задаем постоянные связи между таблицами в базе, перетаскивая мышкой название первичного индекса к обычному (Regular) индексу (внешний ключ). В результате получаем схему базы данных (рис. 4.10).


Рис. 4.10.  Окно базы данных STUDENTS

Для связей можно задать условия соблюдения ссылочной целостности: каскадное обновление в операциях удаления и вставки и контроль с запретом ввода записей с неверными ключевыми значениями в операциях вставки (см. рис. 4.11). Для заданных условий будет сгенерирован программный код, занесенный в базу данных как хранимые процедуры - триггеры. Эти программы при желании можно просмотреть, изучить механизм их действия или модифицировать, если такая необходимость возникнет. Текст триггеров может представлять значительный интерес для программистов, т.к. он написан в наиболее универсальном виде для работы с различными режимами и базами с использованием стиля оформления, принятого в фирме-разработчике системы VFP.


Рис. 4.11.  Задание условий соблюдения ссылочной целостности


Содержание раздела