Построение модели DFD и реализация в СУБД Visual FoxPro
Описание модели предметной области, построение функциональной модели. Проектирование структуры базы данных, реализация спроектированной базы данных при помощи СУБД Visual FoxPro. Создание форм при помощи мастера форм, построение исполняемого файла.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лекция |
Язык | русский |
Дата добавления | 04.11.2009 |
Размер файла | 4,0 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
ВЫПОЛНИТЬ удалить ИНФОРМАЦИЮ О ГРУППЕ
КОНЕЦ ЕСЛИ
Спецификация процесса A0.4
@ВХОД = ПОИСК СТУДЕНТА
@ВХОД = ИНФОРМАЦИЯ О СТУДЕНТАХ И ГРУППАХ
@ВЫХОД = ПОИСК ИНФОРМАЦИИ О СТУДЕНТЕ
@ВЫХОД = СВЕДЕНИЯ О СТУДЕНТЕ И ГРУППЕ
@СПЕЦПРОЦ A0.4 ПОИСК СТУДЕНТА
ПОИСК ИНФОРМАЦИИ О СТУДЕНТЕ = ПОИСК СТУДЕНТА
ВЫПОЛНИТЬ ПОИСК ИНФОРМАЦИИ О СТУДЕНТЕ в БД
СВЕДЕНИЯ О СТУДЕНТЕ И ГРУППЕ = найденная в БД ИНФОРМАЦИЯ О СТУДЕНТАХ И ГРУППАХ
Проектирование структуры базы данных
Выделим три сущности: Студент, Кафедра и Группа.
Связь Студент - Группа имеет тип «Многие к одному» так как в одной группе могут учиться несколько студентов, но каждый студент учится только в одной группе. Связь Группа - Кафедра имеет тип «Многие к одному» так как к одной кафедре относится несколько групп и каждая группа относится к одной кафедре.
Рис. 2.17.3.Структура связей между сущностями
Сущность «Студент» имеет атрибуты: «Номер зачётки», «ФИО», «Год рождения», «Адрес», «Название группы».
Сущность «Группа» имеет атрибуты «Название группы», «Название кафедры».
Сущность «Кафедра» имеет атрибуты «Название кафедры», «Зав кафедрой».
Сущности «Студент» и «Группа» связаны по полю «Название группы», значение которого для сущности «Группа» уникально и является её первичным ключом.
Сущности «Группа» и «кафедра» связаны по полю «Название кафедры», значение которого для сущности «Кафедра» уникально и является её первичным ключом.
Рис. 2.17.4.Структура БД
Для каждой сущности все атрибуты функционально и не транзитивно зависят от первичного ключа и не зависят от части ключа, следовательно, структура базы данных находится в третьей нормальной форме. Атрибут функционально зависит от ключа, когда каждому значению ключа соответствует не более одного значения зависимого атрибута. Например, для ключевого поля «Номер зачётки» значение поля «ФИО» единственно, т. е. один и тот же номер зачётки не может быть более чем у одного студента. Атрибут транзитивно зависит от ключа, если он функционально зависит от ключа, а также от другого атрибута, функционально зависящего от ключа. Например, если объединить таблицы «Студент» и «Группа», то значения атрибута «Название кафедры» зависели бы функционально как от значений первичного ключа «Номер зачётки», так и от значений неключевого атрибута «Название группы». Так как студент учится только в одной кафедре и только в одной группе, и притом каждая группа относится только к одной кафедре.
Опишем структуру каждой таблицы.
Таблица «Студент» (student)
Наименование поля |
Тип данных |
Ограничения |
|
Номер зачётки (ID_zach) |
Целое число |
Первичный ключ |
|
Название группы (name_group) |
Строка (15) |
NOT NULL Внешний ключ |
|
ФИО (FIO) |
Строка (30) |
NOT NULL |
|
Год рождения (Year_birth) |
Дата |
||
Адрес (Address) |
Строка (30) |
Таблица «Группа» (Groups)
Наименование поля |
Тип данных |
Ограничения |
|
Название группы (name_group) |
Строка (15) |
Первичный ключ |
|
Название кафедры (name_Pulpit) |
Строка (15) |
NOT NULL Внешний ключ |
Таблица «Кафедра» (Pulpit)
Наименование поля |
Тип данных |
Ограничения |
|
Название кафедры (name_Pulpit) |
Строка (15) |
Первичный ключ |
|
Зав кафедрой (Zav_Pulpit) |
Строка (30) |
NOT NULL |
Реализация спроектированной базы данных при помощи СУБД Visual FoxPro
Создадим проект приложения баз данных. Для чего выберем в главном меню File - New, затем выберем Project и укажем New File - введём имя проекта students и сохраним файл проекта (students.pjx). Далее откроется окно Project Manager (диспетчер проекта) в котором перейдём на вкладку Data (Данные) и выберем пункт Databases и нажмём кнопку New… (Новая). Появится окно, в котором выберем New Database (Новая база данных) и сохраним базу данных как students.dbc. В появившемся окне Database Designer (Построитель базы данных) выберем из контекстного меню New Table… (Новая таблица). Появится окно, в котором выберем New Table (Новая таблица) и сохраним таблицу как Student.dbf. После этого на экране появится диалоговое окно Table Designer (Конструктор таблиц) в котором введём названия всех полей таблицы Студент (Student), укажем их типы данных и ограничения. Создадим индексы для таблицы. Индексы нужны для определения первичного и внешнего ключей в базе данных. Для создания индекса перейдём на вкладку Indexes (Индексы). Сначала создадим индекс первичного ключа таблицы. В поле Name введём имя индекса PK_ Students, а из раскрывающегося списка Type (Тип) выберем тип индекса Primary (Первичный), затем нажмём кнопку справа от поля Expression (Выражение) и введём значение индексного выражения в окне построителя выражений «ID_zach», то есть укажем, что первичным ключом будет поле Номер зачётки. Теперь создадим регулярный индекс для определения внешнего ключа FK_Groups, тип - Regular, выражение - «name_group».
Аналогично создадим две другие таблицы Groups.dbf и Pulpit.dbf. Для таблицы Groups.dbf определим индексы первичного и внешнего ключа и назовём их PK_Groups и FK_Pulpit, а в выражении для первичного ключа проставим название поля первичного ключа name_group, для внешнего ключа - название поля внешнего ключа name_Pulpit. Для таблицы Pulpit.dbf определим индекс для первичного ключа PK_Pulpit, выражение - «name_Pulpit».
Создадим отношения между таблицами. Для этого в окне конструктора базы данных щёлкаем мышью на имени индекса PK_Groups таблицы Groups и переносим к индексу FK_Groups таблицы Student. Также создадим отношение между таблицами Pulpit и Groups, для чего перенесём поле PK_Pulpit из таблицы Pulpit к полю FK_Pulpit таблицы Groups.
Полученная схема базы данных представлена на рисунке 2.17.5.
Рис. 2.17.5. Схема отношений базы данных
Создадим представление, выводящее значения полей всех трёх связанных таблиц. В Диспетчере проекта перейдём на вкладку Data (Данные) - Database затем выберем базу данных studens, в которой выберем пункт Local Views (Локальные Виды) и нажмём на кнопку New, затем выберем New View (Новое представление). В появившемся окне Add Table or View (Добавить таблицу или представление) выберем поочерёдно все три таблицы и нажмем кнопку Add (Добавить). В окне View Designer (Конструктор представления) появятся все три таблицы и автоматически добавятся связи, так как мы их уже задавали при построении схемы базы данных. Выберем в контекстном меню View SQL (Просмотр SQL) и появится окно просмотра SQL запроса для вида, в котором уже будет задана связка таблиц, поэтому добавим только те поля какие мы будем выводить, для чего в разделе SELECT запроса на выборку введём список полей
Student.id_zach, Student.name_group, Student.fio,;
Student.year_birth, Student.address, Pulpit.name_pulpit,;
Pulpit.zav_pulpit;
Перейдём к окну конструктора представления и проверим правильность набранного кода, выбрав из контекстного меню Run Query (Выполнить запрос). Перейдём на вкладку Update General (Обновление) где выберем все поля для изменения, зададим ключевые поля для представления и поставим флажок Send SQL updates для того, чтобы можно было добавлять и редактировать значения полей в таблицах через это представление. Сохраним представление, выбрав File - Save. В появившемся окне View Name (Имя представления) введём Studens_View.
Создание форм
Создадим три формы по одной для каждой таблицы при помощи мастера форм. Для создания формы нужно в окне Диспетчера проектов перейти на вкладку Documents, где выбрать пункт Form и нажать кнопку New. Выберем Form Wizard, затем выберем мастера создания формы с одной таблицы Form Wizard. На первом шаге необходимо выбрать таблицу и поля, которые будут применяться в форме. Укажем таблицу Student базы данных Students и выберем все поля, переместив их в список Selected fields (Выбранные поля).
На втором шаге выберем стиль формы.
На третьем шаге укажем поля, по которым будет происходить упорядочение записи и порядок сортировки записей. Выберем упорядочение по значению поля Номер зачётки (ID_zach), для чего переместим его в список Selected fields (Выбранные поля). Укажем сортировку по возрастанию (Ascending).
На четвёртом шаге введём заголовок для формы в поле Type a title for your form, введём Студенты. Выберем Save and modify it in the Form designer (Сохранить и изменить форму в Конструкторе форм).
Форма откроется в окне конструктора форм, в котором изменим надписи, для чего выделим нужную надпись и в окне свойств Properties - Student.scx изменим свойство Caption. Сохраним изменения, выбрав File - Save.
Рис. 2.17.6. Форма для таблицы «Группы»
Аналогично создадим формы для двух других таблиц.
Создадим форму для представления Students_View. Для этого также выберем создание формы в мастере форм и на первом этапе выберем представление и укажем использовать в форме все его поля. Укажем заголовком формы «Студенты и группы», а после завершения работы мастера, откроем форму в окне конструктора где изменим подписи полей.
Создание отчётов
Для создания отчётов нужно в окне Диспетчера проектов перейти на вкладку Documents, где выбрать пункт Reports(Отчёты) и нажать кнопку New. После этого откроется диалоговое окно New Report (Новый отчёт) Выберем New Report. Появится окно конструктора отчётов Report Designer. Определим среду данных для отчёта, для чего выберем из контекстного меню пункт Data Environment (Среда данных). Щёлкнем правой кнопкой мыши в окне среды данных и выберем в появившемся контекстном меню пункт Add…(Добавить). Добавим представление Studens_View. Перейдём к окну конструктора отчётов.
Для добавления всех полей из среды данных в отчёт выберем в главном меню окна Visual FoxPro Report - Quick Report (Быстрый отчет). Появится окно Quick Report в котором выберем горизонтальное размещение полей, указав соответствующее положение переключателя в разделе Field Layout. Нажмём ОК, и в области Detail отчёта появятся все поля из среды данных отчёта. Изменим надписи для полей и добавим линию для разделения записей при просмотре.
В области Page Footer будут уже помешены поля, содержащие функцию вычисления значения Текущей даты и номера страницы. Добавим ещё поле, выводящее значение, указывающее общее количество строк в отчёте. Для того чтобы вывести значение числа строк, поместим в полосу Page Footer объект Field (Поле). В окне Report Expression нажжём кнопку Calculations (Вычисления), после чего появится диалоговое окно Calculate Field (Вычисляемое поле), в котором выберем операцию Count (Количество), а в поле Expression укажем наименование первого поля - students_view.Id_zach. Рядом добавим соответствующие надписи, поместив на макет формы объекты Label (Надпись) и введя требуемые надписи. Сохраним отчёт.
Рис. 2.17.7. Макет отчёта в окне конструктора форм
Создание меню
Для создания меню нужно в окне Диспетчера проектов перейти на вкладку Other (Другое), где выбрать пункт Menus (Меню) и нажать кнопку New. После этого откроется диалоговое окно New Menu (Новое меню) Выберем Menu. Появится окно конструктора меню Menu Designer. Введём названия пунктов меню в поле Prompt (Наименование), а в раскрывающемся списке Result (Результат) определим действия, происходящие при выборе пункта меню. Введём подменю «Таблицы», для чего в поле Prompt введём название пункта меню «Таблицы», а в списке Result укажем Submenu (Подменю), затем нажмём на кнопку Create (Создать) после чего в раскрывающемся списке Menu Level (Уровень меню) появится название созданного подменю. Все остальные пункты, созданные на этом уровне, будут пунктами подменю для пункта меню «Таблицы». Создадим пункт «Студенты». Для этого в списке Result укажем Command (Команда) и введём «DO FORM «c:\students\формы\student.scx»«, что значит открыть форму student.scx. Аналогично создадим пункты для открытия трёх других форм.
Затем в списке Menu Level (Уровень меню) выберем верхний уровень - Menu Bar и введём ещё одно подменю «BD», в котором укажем два пункта «Отчёт» и «Выход». В поле ввода команды для пункта «Отчёт» введём «REPORT FORM c:\students\отчёты\report.frx PREVIEW», т. е открытие файла отчёта. Для пункта «Выход» укажем команду QUIT.
Чтобы меню можно было использовать в приложении, сначала его нужно сгенерировать. Для этого используется пункт системного меню Menu (Меню) и диалоговое окно Generate Menu (Генерация меню). В этом окне укажем файл, в котором будет сохранено меню, после чего нажмём кнопку Generate (Генерация).
Созданное меню необходимо запустить на экранной форме. Если просто в Диспетчере проекта выделить меню и нажать Run (Выполнить), то меню будет запущено в главном окне Visual FoxPro. Для того чтобы меню запускалось в форме приложения баз данных, необходимо установить флажок Top-Level Form (Форма верхнего уровня) в диалоговом окне General Options (Основные опции) (пункт меню View или Menu) и снова запустить процесс генерации меню.
Теперь создадим главную форму приложения, из которой будут открываться все остальные. Назовём её Main_form. Поместим на макет формы компонент Command Group (Группа командных кнопок), у которого в свойстве ButtonCount (Количество кнопок) укажем значение 4 по количеству форм. В выпадающем списке вверху окна свойств выбираем нужную кнопку и в свойство Caption напишем текст надписи на этой кнопке. Затем перейдём на вкладку Methods (Методы) и выбираем метод Click Event (Событие щелчок). Щёлкнем два раза на названии события, после чего появится окно Command1.Click, в котором введём команду
DO FORM «<путь к файлу формы>«
Также поместим ещё один компонент Command Group с двумя кнопками для вывода отчёта и выхода из программы. Изменим аналогично текст надписи и зададим обработчики события нажатия на эти кнопки.
Теперь поместим на эту форму созданное ранее меню. Для этого сначала установим свойство формы ShowWindow равным 2 - As top level form (Как форма верхнего уровня), затем в методе Init Event пропишем путь к файлу меню
DO c:\students\меню\menu1.mpr WITH THIS, .T.
Поместим в обработчик события Destroy Event (Закрытие формы) формы команду CLEAR EVENTS для того, чтобы можно было выйти из программы при закрытии формы.
Создадим файл основной программы. Для этого в окне Диспетчера проекта перейдём на вкладку Code, где выберем пункт Programs (Программы) и нажмём кнопку New….Появится окно Program1, в котором напишем
DO FORM c:\students\формы\main_form.scx
_SCREEN.Visible = .T.
READ EVENTS
Сначала откроется окно главной формы, затем значение свойства Visible (Видимость) окна проставим в Истина. Затем зададим точку останова командой READ EVENTS, то есть после выполнения этой команды программа будет ожидать действий пользователя, и все следующие за ней команды не будут выполнятся до тех пор, пока не будет выполнена команда CLEAR EVENTS.
Сохраним файл программы как Program1.prg и сделаем этот файл основной в приложении, для чего выделим его в Диспетчере проекта и в контекстном меню выберем пункт Set Main (Сделать основным). Файл при этом станет выделенным жирным шрифтом.
Построение исполняемого файла
Для того чтобы сделать исполняемый файл с расширением .exe, необходимо выбрать опцию Build Executable (Построить исполняемый файл) в диалоговом окне Build Options (Опции построения), которое вызывается при нажатии кнопки Build (Построить) в окне диспетчера проекта. Потом нажать ОК и указать куда следует поместить исполняемый файл.
Чтобы в готовом файле .exe в процессе ввода часть русских букв автоматически не заменялись латинскими буквами из-за несовпадения кодовых страниц, необходимо в директорию, где находится .exe файл поместить файл конфигурации CONFIG.FPW, в котором указать
CODEPAGE=1251
Также можно поместить этот файл внутрь исполняемого файла. Для этого нужно добавить файл конфигурации в проект на закладке Other в раздел Text Files.
Размещено на Allbest.ru
Подобные документы
Системный анализ и оценка требований к базе данных. Концептуальная (инфологическая) модель предметной области. Построение ERD-диаграммы и физической модели в методологии IDEF1X. Составление форм, запросов и отчетов в среде СУБД Visual FoxPro 8.0.
курсовая работа [1,3 M], добавлен 24.06.2013Базы данных и системы управления базами данных. Структура простейшей базы данных, свойства полей. Понятие языка SQL. Проектирование баз данных, режимы работы, объекты. СУБД Microsoft Access. Создание базы данных "Электротовары" средствами Visual FoxPro.
курсовая работа [5,7 M], добавлен 29.04.2014Теоретические основы создания баз данных в Visual Foxpro 9.0. Описание программы, использование ее команд. Создание табличной базы данных, отношений между таблицами в многотабличной базе данных больных в больнице. Редактирование табличного отчета.
курсовая работа [681,2 K], добавлен 19.12.2013Описание первичных и результатных документов, типа связи информационных объектов. Построение информационно-логической модели базы данных и её реализация в СУБД Access (создание таблиц, запросов, форм, отчётов). Разработка интерфейса пользователя.
курсовая работа [2,1 M], добавлен 14.11.2013Построение инфологической (концептуальной) модели предметной области. Проектирование логической и физической структуры базы данных. Реализация проекта в среде конкретной СУБД. Организация корректировки и ввода данных в БД. Разработка интерфейса.
курсовая работа [1,4 M], добавлен 14.01.2018Анализ требований к базе данных. Концептуальная (инфологическая) модель предметной области. Сопоставление компонентов логической и физической модели. Создание форм, запросов и отчетов в среде СУБД Visual FoxPro 8.0. Расчеты по аккредитивам и чекам.
курсовая работа [1,7 M], добавлен 24.06.2013История возникновения систем управления базами данных (СУБД). Непосредственный и программный режимы работы СУБД Visual FoxPro. Активное использование форм, запросов и отчетов. Разработка информационной базы данных "Оптовая база". Создание файла базы.
курсовая работа [2,5 M], добавлен 05.01.2015Системный анализ предметной области. Построение концептуальной и даталогичной модели базы данных. Физическое проектирование базы данных. Описание функциональной модели системы управления базами данных. Разработка экранных форм ввода-вывода и отчета.
курсовая работа [1,1 M], добавлен 09.12.2014Реализация базы данных, содержащей несколько таблиц, а также информационных запросов, форм и отчетов к ней в СУБД FoxPro. База данных "Справочник Меломана" спроектирована для быстрого поиска исполнителей и информации об их творческой деятельности.
курсовая работа [5,8 M], добавлен 28.04.2012Описание предметной области, определение функциональных требований к системе и построение диаграммы потока данных. Построение модели "сущность-связь", описание сущностей и атрибутов модели. Построение реляционной базы данных и описание ее таблицы.
курсовая работа [624,5 K], добавлен 30.05.2019