- •Аннотация
- •Нормативные ссылки
- •Определения
- •Обозначения и сокращения
- •Введение
- •1 Описание предметной области
- •2 Моделирование потоков данных
- •3 Проектирование базы данных
- •3.1 Описание структуры базы данных
- •3.2 Программная реализация поставленной задачи
- •Список использованной литературы
- •Листинг программы
- •Приложение б Формы программы
3 Проектирование базы данных
3.1 Описание структуры базы данных
Программный продукт был создан с помощью языка программирования Visual fox pro 6.0.
Visual FoxPro состоит из отдельных компонентов, которые используются для хранения информации, ее отображения и редактирования. В Visual FoxPro вся информация хранится в базе данных, которая состоит из таблиц, отношений между таблицами, индексов, триггеров и хранимых процедур. Каждая таблица имеет уникальное имя и хранится в отдельном файле, наименование которого совпадает с именем таблицы. Созданный файл имеет расширение DBF.
Каждая создаваемая таблица может иметь связанные с ней индексы, используемые для упорядочения данных и быстрого поиска необходимых записей, причем каждая таблица может иметь несколько индексов. Для хранения значений полей типа Memo и General применяются отдельные файлы. Memo-поля таблиц содержат текстовую информацию, а поля типа General используются, как правило, для хранения двоичной информации и данных других приложений, работающих в среде Windows [6,7]. В Visual FoxPro реализованы триггеры, которые позволяют централизованно обрабатывать события, возникающие при любых изменениях в базе данных. Вы также можете создавать хранимые процедуры, которые являются частью базы данных и могут использоваться при описании таблиц, для проверки введенных данных, определения значения по умолчанию и т. п.
Чрезвычайно удобным и полезным средством доступа к базе данных являются представления данных. Представления данных позволяют объединять данные таблиц и отображать их в более удобном виде. Вы можете выбрать только интересующие вас поля таблиц, объединить несколько полей в одно поле, вычислить итоговые значения и задать новые имена полей таблицы. Как правило, количество представлений в базе данных намного превосходит количество таблиц. По мере эксплуатации базы данных их количество непрерывно растет. Во многих информационных системах доступ к данным, включая просмотр, добавление и редактирование, осуществляется только с помощью представлений данных. Данный подход позволяет осуществить гибкое управление доступом к информации. При использовании представлений для выборки данных в формах, отчетах, при создании запросов и в программах применяются те же правила, что и для таблиц. Редактирование данных, включенных в представление, возможно только при определенных условиях. Например, в том случае, если оно создано на основе только одной таблицы.
Для отображения и редактирования данных используются формы, отчеты, запросы и программы. При создании форм, отчетов и запросов применяются конструкторы. Поэтому эти компоненты часто называют конструкторскими объектами. Формы и отчеты являются составными объектами, т. к. они состоят из более мелких объектов (таких как поля, кнопки, диаграммы, рамки, OLE - компоненты и т. п.), которые называются объектами интерфейса.
Формы используются для просмотра или ввода данных в таблицы. Данные можно вводить непосредственно в таблицы, но использование формы является более быстрым и более эффективным способом ввода. Форма содержит некоторые или все поля таблиц, в которые вы вводите информацию. Для создания форм вы можете использовать мастер создания форм или конструктор форм. Мастер форм содержит целый ряд шаблонов, которые определяют соотношение между помещаемыми в форму таблицами, вид отображения данных и порядок размещения полей. Для создания сложных форм применяется конструктор форм.
Отчеты используются для просмотра и вывода на печать содержащейся в базе данных информации. Примерами отчетов являются прайс-лист товаров, список покупателей, оборотная складская ведомость. Как правило, отчеты создаются в том случае, если информацию необходимо передавать кому-либо в печатном виде. Для создания отчетов в Visual FoxPro, как и для форм, используются мастер и конструктор отчетов. С помощью мастера отчетов вы можете быстро создать собственный отчет на основе имеющихся шаблонов. Применение конструктора отчетов позволяет создавать отчеты произвольной сложности, включая многоуровневую группировку данных и размещение вычисляемых полей.
Запросы являются средством выборки данных из одной или нескольких таблиц. В Visual FoxPro для создания запроса вы можете использовать как конструктор запросов, так и специализированный язык Structured Query Language (SQL). Результаты выполнения запроса могут отображаться в форме, выводиться в виде отчетов и диаграмм или сохраняться в указанной вами таблице.
Программы, написанные на языке Visual FoxPro, являются объектно-ориентированными. С помощью них вы обрабатываете события в форме, создаете объекты, осуществляете различные вычисления, управляете базой данных. Для удобства работы вы можете объединить программы в библиотеки.
Для создания форм в Visual FoxPro можно использовать не только базовые классы, но и создавать собственные. Например, вы можете определить класс форм, в котором задан определенный цвет фона и стандартный набор кнопок для управления данными. Чтобы стандартизировать разработку, полезно иметь один или несколько пользовательских классов для каждого базового класса. Классы, созданные в Visual FoxPro, хранятся в библиотеках классов.
Для объединения компонентов создаваемого приложения используется проект, в который включаются все перечисленные выше компоненты. Использование проекта упрощает разработку приложения и его сопровождение.
В Visual FoxPro имеется возможность сохранять параметры основного окна Visual FoxPro, настройки таблиц, параметры диалоговых окон и панели инструментов с помощью файла параметров настройки.
Каждый компонент хранится в отдельном файле, причем имена файлов, содержащих основные компоненты, вы задаете самостоятельно, а наименования файлов, содержащих объекты, связанные с таблицей, совпадают с именем таблицы. В зависимости от типа, содержащегося в нем объекта, Visual FoxPro автоматически присваивает каждому файлу расширение, которое помогает в идентификации объекта.
Список расширений файлов приведен в следующей таблице.
Таблица 3.1
Таблица расширений файлов проекта FoxPro
Наименование объекта |
Расширение файла |
Проект |
PRJ,FPC,CAT,PJX,PJT |
База данных |
DBC |
Таблица Visual FoxPro |
DBF |
Составной индексный файл |
CDX |
Memo-поле и поле типа General |
FRT |
Форма |
SCX |
Запрос |
QPR |
Отчет |
FRX,FRM |
Почтовая наклейка |
LBX,LBL |
Меню |
MNX |
Библиотека класса |
VCX |
Программа, библиотека программ, текст меню, текст запроса |
PRG,FXP,MPR,QPR |
Рисунок |
BMP,JPG,GIF,ICO,DIB,CUR,ANI |
Звукозапись |
WAV |
Описание запросов к базе данных
Запрос Передачи.qpr.
SELECT Передачи.*, Передачи.вид_передачи, Передачи.код_передачи;
FROM ;
dbf!Передачи ;
INNER JOIN <Undefined> ;
ON Передачи.длительность = Передачи.длительность;
WHERE Передачи.длительность = 0;
GROUP BY Передачи.код_передачи, Передачи.вид_передачи,;
Передачи.наименование_передачи, Передачи.длительность;
ORDER BY Передачи.длительность, Передачи.вид_передачи – отображает те передачи, которые войдут в эфир, в данном коде реализуется отображение программой таблицы с полями код передачи, вид передачи, наименование передачи, длительность, где выводит те записи, где значение поля длительность входят в пределы от 4 до 100.
Запрос Элементы вещания.qpr
SELECT Элементы_вещания.*;
FROM ;
"dbf!Элементы вещания" Элементы_вещания ;
INNER JOIN <Undefined> ;
ON Элементы_вещания.код_элемента = Элементы_вещания.код_элемента;
WHERE Элементы_вещания.наименование_элемента = 0;
GROUP BY Элементы_вещания.код_элемента,;
Элементы_вещания.вид_элемента,;
Элементы_вещания.наименование_элемента,;
Элементы_вещания.формат_хранения, Элементы_вещания.еденица_измерения,;
Элементы_вещания.объем, Элементы_вещания.код_поставщика – структура запроса аналогична первой, только в данной процедуре изменены параметры запроса, т.е. значения поля по которому и происходит запрос, значения равны от 5 до 20 и данный запрос выводит те фамилии и их данные которые поступили на коммерческую основу обучения.
Запрос Обработка элементов.qpr.qpr
SELECT Элементы_вещания.*, Элементы_вещания.код_элемента,;
Элементы_вещания.вид_элемента,;
Элементы_вещания.наименование_элемента,;
Элементы_вещания.формат_хранения, Элементы_вещания.еденица_измерения,;
Элементы_вещания.объем, Элементы_вещания.код_поставщика;
FROM ;
"dbf!Элементы вещания" Элементы_вещания ;
INNER JOIN <Undefined> ;
ON Элементы_вещания.наименование_элемента = Элементы_вещания.наименование_элемента;
WHERE Элементы_вещания.наименование_элемента = 0;
GROUP BY Элементы_вещания.код_поставщика,;
Элементы_вещания.код_элемента, Элементы_вещания.вид_элемента,;
Элементы_вещания.наименование_элемента,;
Элементы_вещания.формат_хранения, Элементы_вещания.еденица_измерения,;
Элементы_вещания.объем;
ORDER BY Элементы_вещания.код_элемента – данный запрос выводит таблицу, которая отображает те элементы, которые могут изменять формат хранения, т.е. в процессе выполнения запроса программа выбирает те элементы базы данных, в которых в поле «формат хранения» стоит значение «да».
Запрос Сотрудники радиостанции.qpr
SELECT Сотрудники_радиостанции.*;
FROM ;
"dbf!Сотрудники радиостанции" Сотрудники_радиостанции ;
INNER JOIN <Undefined> ;
ON Сотрудники_радиостанции.табуляционный_номер = Сотрудники_радиостанции.табуляционный_номер;
WHERE Сотрудники_радиостанции.должность = 0;
GROUP BY Сотрудники_радиостанции.табуляционный_номер,;
Сотрудники_радиостанции.фио, Сотрудники_радиостанции.должность,;
Сотрудники_радиостанции.образование,;
Сотрудники_радиостанции.характеристики;
ORDER BY Сотрудники_радиостанции.табуляционный_номер – здесь программа выводит таблицу со всеми полями которые имеются в главной таблицы и записи в которых в поле «табуляционный номер» значение входит в диапазон от 1 до 10.
Запрос Включение элементов.qpr
SELECT Включение_элементов.*;
FROM ;
"dbf!Включение элементов" Включение_элементов ;
INNER JOIN <Undefined> ;
ON Включение_элементов.номер_документа = Включение_элементов.номер_документа;
WHERE Включение_элементов.дата_принятия = 0;
GROUP BY Включение_элементов.код_передачи,;
Включение_элементов.код_элемента,;
Включение_элементов.номер_документа,;
Включение_элементов.дата_принятия,;
Включение_элементов.длительность_в_передаче,;
Включение_элементов.номер_по_порядку;
ORDER BY Включение_элементов.код_передачи – здесь программа выводит таблицу со всеми полями которые имеются в главной таблицы и записи в которых в поле «номер документа» значение входит в диапазон от 1 до 8.
Запрос Поставщики элементов вещания.qpr
SELECT Поставщики_элементов_вещания.*;
FROM ;
"dbf!Поставщики элементов вещания" Поставщики_элементов_вещания ;
INNER JOIN <Undefined> ;
ON Поставщики_элементов_вещания.характеристики = Поставщики_элементов_вещания.характеристики;
WHERE Поставщики_элементов_вещания.наименовани_поставщика = 0;
GROUP BY Поставщики_элементов_вещания.код_поставщика,;
Поставщики_элементов_вещания.вид_поставщика,;
Поставщики_элементов_вещания.наименовани_поставщика,;
Поставщики_элементов_вещания.характеристики;
ORDER BY Поставщики_элементов_вещания.код_поставщика – здесь программа выводит таблицу со всеми полями которые имеются в главной таблицы и записи в которых в поле «характеристики» значение входит в диапазон от 30 до 80.
Описание отчётов
Рисунок 3.1. Вывод отчета
