Опубликован: 19.05.2006 | Доступ: свободный | Студентов: 6983 / 901 | Оценка: 4.04 / 3.81 | Длительность: 09:46:00
Лекция 4:

СУБД Microsoft Visual FoxPro. Общие сведения. Создание базы данных

< Лекция 3 || Лекция 4: 1234 || Лекция 5 >

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

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

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

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

Рис. 4.3. Стандартная панель инструментов системы Visual FoxPro
Выбор типа файла в диалоге New

Рис. 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.

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

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

увеличить изображение
Рис. 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. Окно Конструктора базы данных
Окно Command системы VFP

Рис. 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.dbf
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).

табл. 4.4

Таблица 4.4. Структура таблицы Fclt.dbf
Name Type Width Decimal Index Caption
n_fclt N 2 A,P Номер факультета
name_f C 120 Название факультета

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

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

Таблица 4.5. Структура таблицы Spect.dbf
Name Type Width Decimal Index Caption
n_spect C 7 A,P Код специальности
name_s C 120 Название специальности
Таблица 4.6. Структура таблицы Ocenki.dbf
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 Преподаватель
Таблица 4.7. Структура таблицы Predmets.dbf
Name Type Width Decimal Index Caption
n_predm N 2 A,P Номер предмета
name_p С 120 Название предмета

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

Окно базы данных STUDENTS

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

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

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

Рис. 4.11. Задание условий соблюдения ссылочной целостности
< Лекция 3 || Лекция 4: 1234 || Лекция 5 >
Олеся Талдыкина
Олеся Талдыкина
Ксения Назарова
Ксения Назарова

Здравствуйте! Как можно получить сертификат о прохождении курса Основы работы с базами данных? Я после экзамена сразу не выбрала подтвердить ФИО и получение сертификата, а теперь этой кнопки нет. Пожалуйста, помогите решить проблему.

 

Юлия Военкова
Юлия Военкова
Россия
Валерия Ветрова
Валерия Ветрова
Россия, Тверь