Базы данных "Выставочный комплекс" Visual FoxPro
Курсовая работа, 07 Марта 2014, автор: пользователь скрыл имя
Краткое описание
Реляционная модель обладает следующими преимуществами:
- структурная независимость
- концептуальная простота
- простота проектирования, реализации, управления и использования
- нерегламентированные запросы
- мощная система управления базой данных.
В настоящее время невозможно представить себе деятельность любого современного предприятия без использования профессиональных СУБД.
Вложенные файлы: 1 файл
Курсовая по БД.docx
— 2.68 Мб (Скачать файл)
Таблица «Ligoty»
Рис9. Структура таблицы "Ligoty" - поле kod_ligot
Рис10. Структура таблицы "Ligoty" - поле naim_ligot
Рис. 3.1. Структура таблицы "Ligoty" - поле skidka
Таблица «Bilet»
Рис12. Структура таблицы "Bilet" - поле nomp_bilet
Рис13. Структура таблицы "Bilet" - поле regist_nomp
Рис14. Структура таблицы "Bilet" - поле kod_firmy
Рис15. Структура таблицы "Bilet" - поле kod_vyst
Рис16. Структура таблицы "Bilet" - поле kod_ligot
Рис17. Структура таблицы "Bilet" - поле data
Рис18. Структура таблицы "Bilet" - поле cena_l
После завершения ввода можно просмотреть полученную структуру пустой таблицы, выбрав в меню команду Browse.
Рис19. Окно диспетчера проектов – Созданные таблицы
Рис20. Пустая структура таблицы «Firmy»
Заполнить таблицу можно при помощи команды Table в строке меню. В выплывающем меню выбираем Append New Record. Вводим информацию в таблицу.
Рис21. Заполненная структура таблицы «Firmy».
Рис22. Заполненная структура таблицы «Vystavka».
Рис23. Заполненная структура таблицы «Ligoty».
Рис24. Заполненная структура таблицы «Bilet».
2. Выполнение индексации, связей между таблицами и целостность данных
Среди требований, предъявляемых к СУБД, основное место занимает возможность быстрого поиска необходимой информации. Прекрасным средством, позволяющим решить эту проблему, является использование индексов.
Для создания индекса таблицы используется вкладка Indexes окна конструктора таблицы Table Designer. Вводит в поле Name имя индекса нашей таблицы, в Type выбираем тип индексирования. Значение индекса или индексного выражения вводится в поле Expression.
Рис25. Индексирование в таблице «Firmy»
В таблице «Firmy» тип индекса kod_fim_i – Primary, так как kod_firmy является первичным ключом.
Рис26. Индексирование в таблице «Vystavka»
Рис27. Индексирование в таблице «Ligoty»
Рис28. Индексирование в таблице «Bilet»
После индексирования таблиц создается отношение между нами. Такие таблицы называются связанными. Из двух связанных таблиц одна является главной, а другая — подчиненной. Главную таблицу называют родительской, а подчиненную — дочерней.
Рис29. Отображение связи между таблицами
Целостность данных является одним из самых важных требований, предъявляемых к базам данных.
Рис30. Диалоговое окно Referential Integrity Builder для определения условия целостности данных
Мы задаем опции так, что, если пользователь изменит, удалит или добавит данные в родительской таблице, то все аналогичные операции автоматически произойдут и в дочерней таблице. Если же пользователь попытается провести эти операции в дочерней таблице, то программа выдаст сообщение о том, что триггер (программа запуска отслеживаемых связей) нарушен. Все это происходит как раз за счет налаженных связей между родительскими и дочерними таблицами.
Запросы на языке QBE
1.Запросы из постановки задачи
Запрос 1
Все проданные билеты, на данную выставку.
SELECT Bilet.nomp_bilet, Bilet.kod_vyst;
FROM ;
"vystavochnyj kompleks_kurs!bilet";
WHERE Bilet.kod_vyst = ( "В001" )
Рис31. Запрос 1
Запрос 2
Список всех выставок, наименование и проданные билеты на них.
SELECT Bilet.nomp_bilet, Bilet.kod_vyst, Vystavka.naim_vyst;
FROM ;
"vystavochnyj kompleks_kurs!vystavka" ;
INNER JOIN "vystavochnyj kompleks_kurs!bilet" ;
ON Vystavka.kod_vyst = Bilet.kod_vyst
Рис32. Запрос 2
Рис32.1 Запрос 2
Запрос 3
Список выставок, которые организованы заданными фирмами и проданные билеты.
SELECT Bilet.nomp_bilet, Bilet.kod_firmy, Bilet.kod_vyst,;
Vystavka.naim_vyst;
FROM ;
"vystavochnyj kompleks_kurs!vystavka" ;
INNER JOIN "vystavochnyj kompleks_kurs!bilet" ;
ON Vystavka.kod_vyst = Bilet.kod_vyst;
WHERE Bilet.kod_firmy = ( "Ф01" )
Рис34. Запрос 3
Рис34.1 Запрос 3
2.Простые запросы
Запрос 1
Вывод наименований категорий льготности, кроме категорий: «Не льготный» и «Детский».
SELECT *;
FROM ;
"vystavochnyj kompleks_kurs!ligoty";
WHERE Ligoty.naim_ligot NOT IN ("НЕ ЛЬГОТНЫЙ", "ЛЬГОТНЫЙ ДЕТСКИ")
Рис35. Простой запрос 1
Рис35.1 Простой запрос 1
Запрос 2
Вывод проданных билетов «02.15.13» с номером билета, кодом выставки и фирмы.
SELECT Bilet.data, Bilet.nomp_bilet, Bilet.kod_firmy, Bilet.kod_vyst;
FROM ;
"vystavochnyj kompleks_kurs!bilet";
WHERE Bilet.data = CTOD("02/15/13")
Рис36. Простой запрос 2
Рис36.1 Простой запрос 2
Запрос 3
Список категорий льготности и их наименования с ценой больше «50».
SELECT *;
FROM ;
"vystavochnyj kompleks_kurs!ligoty";
WHERE Ligoty.cena > ( 50 )
Рис37. Простой запрос 3
Рис37.1 Простой запрос 3
Запрос 4
Номера билетов с кодом выставки «В102» и с кодом фирмы «Ф01».
SELECT Bilet.nomp_bilet, Bilet.kod_firmy, Bilet.kod_vyst;
FROM ;
"vystavochnyj kompleks_kurs!bilet";
WHERE Bilet.kod_firmy = ( "Ф01" );
AND Bilet.kod_vyst = ( "В102" )
Рис38. Простой запрос 4
Рис38.1 Простой запрос 4
Рис38.2 Простой запрос 4
Запрос 5
Вывод всех выставочных комплексов, имеющих в наименовании сочетания букв «КО» и их коды.
SELECT *;
FROM ;
"vystavochnyj kompleks_kurs!vystavka";
WHERE Vystavka.naim_vyst LIKE ( "%КО%" )
Рис39. Простой запрос 5
Рис39.1 Простой запрос 5
Запрос 6
В таблице «Bilet» вывести все данные, кроме фирм-организаторов «Ф01».
SELECT *;
FROM ;
"vystavochnyj kompleks_kurs!bilet";
WHERE Bilet.kod_firmy <> ( "Ф01" )
Рис40. Простой запрос 6
Рис40. 1 Простой запрос 6
Запрос 7
Вывести из таблицы «Bilet» код фирмы и код выставки с ценой проданного билета 80 рублей.
SELECT Bilet.kod_firmy, Bilet.kod_vyst, Bilet.cena_l;
FROM ;
"vystavochnyj kompleks_kurs!bilet";
WHERE Bilet.cena_l = ( 80.00 )
Рис41. Простой запрос 7
Рис41.1 Простой запрос 7
3.Многостраничные и вычисляемые запросы
Запрос 1
Посчитать количество проданных билетов и общую сумму от продаж билетов.
SELECT SUM(Bilet.cena_l) AS общ_сумм,;
COUNT(Bilet.nomp_bilet) AS кол_прод_бил;
FROM ;
"vystavochnyj kompleks_kurs!bilet"
Рис42. Вычисляемый запрос 1
Запрос 2
Вывести проданные билеты в промежутке «15.01.13 – 28.02.13», указав код льготности и наименование.
SELECT Bilet.data, Bilet.kod_ligot, Ligoty.naim_ligot;
FROM ;
"vystavochnyj kompleks_kurs!bilet" ;
INNER JOIN "vystavochnyj kompleks_kurs!ligoty" ;
ON Bilet.kod_ligot = Ligoty.kod_ligot;
WHERE Bilet.data BETWEEN CTOD("02/15/13") AND CTOD("02/28/13")
Рис43. Многостраничный запрос 2
Рис43.1 Многостраничный запрос 2
Запрос 3
Определить количество проданных билетов с кодом фирмы «Ф02».
SELECT COUNT(Bilet.kod_vyst) AS кол_прод_бил_ф02;
FROM ;
"vystavochnyj kompleks_kurs!bilet";
WHERE Bilet.kod_firmy = ( "Ф02" )
Рис44. Вычисляемый запрос 3
Рис44.1 Вычисляемый запрос 3
Создание отчетов
Отчет представляет собой форматированное представление данных, выводимое на экран, принтер или в файл. Отчет, создаваемый в Visual FoxPro, может быть представлен в табличном виде или в свободной форме. Табличный отчет — это напечатанная таблица, в которой строка представляет собой запись, а каждый из элементов строки содержит поле исходной таблицы или вычисляемое поле. Данные в таблице упорядочены. Табличные отчеты используются для печати данных, представленных в виде списка.
В отчете «Фирмы-организаторы» на базе таблицы «Firmy» указаны все коды фирм, которые сопоставлены с их наименованиями.
Рис45. Вид отчета в конструкторе
Рис46. Отчет по фирмам-орагнизаторам
В отчеты помимо исходных данных таблиц были внесены изменения, которые отразились в ведомостях – подсчет данных (кодов).
Рис47. Вид отчета в конструкторе
Вся рабочая область конструктора отчетов по умолчанию разделена на три полосы, ограничиваемые разделительными строками (см. Рис47). Наименование полосы отображается на разделительной строке, находящейся непосредственно под этой полосой. При использовании в отчете группирования данных, добавлении в него титульной страницы и итоговых данных появляются дополнительные полосы. Каждая полоса может содержать элементы управления отчета, такие как текст, табличные и вычисляемые поля, линии, прямоугольники, рисунки.
Рис48. Отчет по выставочным комплексам
В отчете по категориям льготности помимо количества были добавлены строки максимальной и минимальной скидки.
Рис49. Вид отчета в конструкторе
Рис50. Отчет по категориям льготности.
В отчете по продажам билетов были добавлены строки суммы и средней цены билетов.
Рис51. Вид отчета в конструкторе
Лист будущего отчеты был отражен в альбомном виде для того, чтобы все колонки смогли поместиться в отчете и не находили на друг друга.
Рис52. Отчет по продажам билетов
Рис52.1 Отчет по продажам билетов
Рис52.2 Отчет по продажам билетов
Разработать форму отчетной сводки для вычисления стоимости проданных билетов в пределах каждого выставочного комплекса билетов по конкретной категории льготности билета.
Рис53. Вид отчета в конструкторе
Рис54. Отчет для вычисления стоимости проданных билетов
Рис54.1 Отчет для вычисления стоимости проданных билетов
Рис54.2 Отчет для вычисления стоимости проданных билетов
Создание форм