Прошел весь курс всего за день, щёлкал ваши тесты, как орешки. Хочу вторую часть! |
СУБД Microsoft Visual FoxPro. Общие сведения. Создание базы данных
Создание базы данных
Разработка любой информационной системы начинается с создания базы данных. Рассмотрим процесс создания базы данных, модель которой описана в предыдущей лекции, в системе VFP.
Для создания новой базы данных можно воспользоваться кнопкой New стандартной панели инструментов (рис. 4.3) или пунктом меню "File - 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.
Как видно из примера, база данных слишком специфична, не совсем соответствует структуре нашего высшего учебного заведения, используется слишком много не совсем привычных для нас английских терминов, очень много индексов (каждый индекс дублирует информацию полей таблиц, при чрезмерно большом их количестве размер индексного файла может получиться больше, чем размер таблицы, что нерационально). Проще создать новую базу данных, соответствующую разработанной нами ранее модели.
Выберем кнопку New file для создания собственной базы данных. После этого нужно задать папку на диске, где мы будем сохранять все компоненты, относящиеся к разрабатываемому проекту, и задать название базы данных (расширение файла указывать не надо - система допишет его сама). Пусть папка и имя базы данных будут Students (рис. 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).
В окне 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 отсутствует, подписью будет имя поля).
Name | Type | Width | Decimal | Index | Caption |
---|---|---|---|---|---|
Nz | C | 7 | A,P | Номер зачетки | |
Fio | C | 45 | Фамилия, имя, отчество | ||
data_p | D | 8 | Дата поступления | ||
n_fclt | N | 2 | A | Факультет | |
n_spect | C | 7 | A | Специальность | |
kurs | N | 1 | Курс | ||
n_grup | С | 10 | Группа | ||
n_pasp | С | 10 | Номер паспорта |
Далее создаем следующую таблицу в базе - справочник факультетов с именем файла Fclt.dbf. Для этого следует снова поместить курсор на пустое место окна Database Designer, щелкнуть правой кнопкой мыши и в контекстном меню выбрать команду New table. В окне Table Designer описываем структуру таблицы (табл. 4.4).
Name | Type | Width | Decimal | Index | Caption |
---|---|---|---|---|---|
n_fclt | N | 2 | A,P | Номер факультета | |
name_f | C | 120 | Название факультета |
Название ключевого поля справочника, его тип и ширину желательно оставить такими же, как и в главной таблице, для облегчения установления связей при разработке экранных форм и отчетов с помощью Мастера.
Точно так же создаем в базе данных следующие таблицы и индексы для табл. 4.5, табл. 4.6, табл. 4.7.
Name | Type | Width | Decimal | Index | Caption |
---|---|---|---|---|---|
n_spect | C | 7 | A,P | Код специальности | |
name_s | C | 120 | Название специальности |
Name | Type | Width | Decimal | Index | Caption |
---|---|---|---|---|---|
nz | C | 7 | A | Номер зачетки | |
semestr | N | 1 | Семестр | ||
n_predm | N | 2 | A | Предмет | |
ball | С | 1 | Оценка | ||
data_b | D | 8 | Дата | ||
prepod | C | 45 | Преподаватель |
Name | Type | Width | Decimal | Index | Caption |
---|---|---|---|---|---|
n_predm | N | 2 | A,P | Номер предмета | |
name_p | С | 120 | Название предмета |
Далее в окне Database Designer задаем постоянные связи между таблицами в базе, перетаскивая мышкой название первичного индекса к обычному ( Regular ) индексу (внешний ключ). В результате получаем схему базы данных (рис. 4.10).
Для связей можно задать условия соблюдения ссылочной целостности: каскадное обновление в операциях удаления и вставки и контроль с запретом ввода записей с неверными ключевыми значениями в операциях вставки (см. рис. 4.11). Для заданных условий будет сгенерирован программный код, занесенный в базу данных как хранимые процедуры - триггеры. Эти программы при желании можно просмотреть, изучить механизм их действия или модифицировать, если такая необходимость возникнет. Текст триггеров может представлять значительный интерес для программистов, т.к. он написан в наиболее универсальном виде для работы с различными режимами и базами с использованием стиля оформления, принятого в фирме-разработчике системы VFP.