Министерство общего и профессионального образования Российской Федерации
НГТУ
Расчетно-графическая работа
по дисциплине
«Системы управления базами данных»
Вариант 16
База данных «ИГРУШКИ»
Выполнил:
студент гр. АМ-910
факультета АВТФ
Хуснатдинов Д.Г.
Преподаватель:
Трошина Г.В.
Новосибирск, 2002
Содержание. 2
Задание. 3
Описание структур данных. 4
Описание связей. 5
Главная форма приложения. 6
Ввод данных. 7
Реализация запросов к БД.. 9
Заключение. 15
Основная база данных “Игрушки”. Предусмотреть: меню, печать на экран, ввод данных, редактирование, просмотр данных. Реализовать следующие типы запросов с использованием нескольких таблиц:
n Для каждого вида игрушек указать сведения о нем (наименование, дату выпуска, поставщик, цена, вес, для какого возраста предназначена, дата продажи и т.п.).
n Для каждого вида игрушек выдать список, отсортированный:
n по дате выпуска,
n в алфавитном порядке по поставщику,
n по весу,
n по стоимости,
n по дате продажи.
n Найти самый дорогой вид игрушек, самый дешевый, среднюю стоимость по каждому виду и в целом.
n Найти игрушки с ценой в заданных пределах (предусмотреть ввод цены с клавиатуры) по каждому виду и в целом.
n Найти все игрушки заданного производителя (выбор).
n Найти долю дешевых игрушек (меньше заданного, ввод ограничения) от общего числа игрушек (для каждого возраста (ввод) и в целом).
n Найти все игрушки с заданной датой выпуска (ввод даты).
n Найти все игрушки, чей вес находится в заданных пределах (ввод интервала) для заданного производителя (выбор) и в целом.
n Найти долю игрушек, проданных за определенный период (ввод периода) от общего времени продажи.
n Найти самый популярный вид игрушки (продано наибольшее количество) для заданного возраста (ввод) и в целом.
n Найти долю дешевых игрушек (чья стоимость меньше заданной, ввод стоимости), поступивших от заданного поставщика и в целом.
n Найти среднюю стоимость игрушек, проданных за определенный промежуток времени (ввод интервала).
n Найти все игрушки, чья стоимость выше, чем средняя стоимость игрушек заданного производителя.
Для решения задачи в среде Visual FoxPro 6.0 были созданы следующие таблицы:
Таблица «Игрушки», внутренне имя – toys.dbf
Поле |
Тип поля |
Описание |
Id |
Integer(4), PK |
Уникальный идентификатор |
Name |
Character(30) |
Наименование игрушки |
Type |
Integer(4), FK |
Идентификатор типа игрушки |
Vendor |
Integer(4), FK |
Идентификатор поставщика |
Prod_date |
Date(8) |
Дата выпуска |
Weight |
Numeric(4,3) |
Вес |
Cost |
Currency(8) |
Цена |
Age_low |
Integer(4) |
Нижняя граница возраста |
Age_high |
Integer(4) |
Верхняя граница возраста |
Таблица «Типы», внутреннее имя – types.dbf
Поле |
Тип поля |
Описание |
Id |
Integer(4), PK |
Уникальный идентификатор |
Name |
Character(30) |
Имя типа |
Таблица «Поставщики», внутренне имя – vendors.dbf
Поле |
Тип поля |
Описание |
Id |
Integer(4), PK |
Уникальный идентификатор |
Name |
Character(30) |
Имя поставщика |
Таблица «Продажи», внутренне имя – sales.dbf
Поле |
Тип поля |
Описание |
Id |
Integer(4), FK |
Id игрушки |
Price |
Currency(8) |
Цена |
Sale_date |
Date(8) |
Дата продажи |
Quantity |
Int(4) |
Количество игрушек |
Для работы с приложением необходимо запустить форму с именем main, в которой сосредоточены основные элементы управления базой данных «Игрушки»
Главная форма выглядит следующим образом:
Заполнение таблиц осуществляется с помощью форм Toys, Types, Vendors и Sales. Эти формы созданы с использованием Form Wizard.
Для каждого вида игрушек выдать список, отсортированный:
n по дате выпуска,
n в алфавитном порядке по поставщику,
n по весу,
n по стоимости,
n по дате продажи.
sqlvar1 = "SELECT t.name as Игрушка,v.name as Поставщик,t.prod_date as Выпуск,t.weight as Вес,t.cost as Цена,sales.sale_date as Продажа FROM toys as t left JOIN vendors as v ON v.id=t.vendor left JOIN sales ON sales.id=t.id"
a = THISFORM.type_combo.value
* getting sort criteria
IF ThisForm.sort_combo.Selected(1)
ord='prod_date'
endif
IF ThisForm.sort_combo.Selected(2)
ord='v.name'
endif
IF ThisForm.sort_combo.Selected(3)
ord='t.weight'
endif
IF ThisForm.sort_combo.Selected(4)
ord='t.cost'
endif
IF ThisForm.sort_combo.Selected(5)
ord='sale_date'
endif
if (a=="") then
else
_VFP.DoCmd(sqlvar1 +' WHERE t.type='+a+' ORDER BY '+ord)
endif
Найти самый дорогой вид игрушек, самый дешевый, среднюю стоимость по каждому виду и в целом.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.