Автор работы: Пользователь скрыл имя, 30 Ноября 2010 в 19:32, Не определен
В пособии рассматриваются основные принципы работы с базами данных в полиграфической промышленности. Рассматривается решение оптимизационных задач. Приведены варианты заданий для самостоятельной работы в области информационных технологий. Даны многочисленные примеры применения информационных технологий в профессиональной деятельности инженера – технолога.
Рис.
2.3. Форма для заполнения таблицы “ВидыПродуктов”
Возможно создание форм с наличием подчиненных. Такие формы могут быть созданы на основе двух или более таблиц, связанных между собой.
Следующий шаг – создание запросов. Создадим запросы на выборку, на выборку с группировкой, перекрестный и запрос на обновление. Результаты запросов представим в виде SQL-команд.
Создадим запрос на выборку, в котором будет выведена информация о кормлении животного с определенным номером (допустим, с номером “00001”). На экран будут выведены поля: номер животного, вид животного, время раздачи, наименование продукта и количество. Полем, по которому осуществляется выборка, является номер животного (НомЖив). SQL-команда будет выглядеть следующим образом:
SELECT Животные.НомЖив, Животные.ВидЖив,
Раздача.ВрмРазд,
ВидыПродуктов.НаимПрод, Раздача.КолПрод
FROM Животные
INNER JOIN (ВидыПродуктов
INNER JOIN Раздача
ON ВидыПродуктов.КодПрод = Раздача.КодПрод)
ON Животные.НомЖив = Раздача.НомЖив
WHERE Животные.НомЖив="00001";
Создадим запрос на выборку с группировкой, в котором будет выведена информация о продуктах, розданных всем животным, а также об энергетической ценности этих продуктов. На экран будут выведены поля: код продукта, наименование продукта, количество, энергетическая ценность. SQL-команда будет выглядеть следующим образом:
SELECT ВидыПродуктов.КодПрод,
ВидыПродуктов.НаимПрод, Sum(Раздача.КолПрод) AS [КолПродИтг],
Sum([КолПрод]*[КлрПрод]) AS [КлрИтг]
FROM ВидыПродуктов
INNER JOIN Раздача
ON ВидыПродуктов.КодПрод = Раздача.КодПрод
GROUP BY ВидыПродуктов.КодПрод,
ВидыПродуктов.НаимПрод;
В данном случае полями, по которым осуществляется группировка, являются код продукта и наименование продукта. Калорийность потребленного количества каждого из продуктов рассчитывается при помощи вычисляемого поля КлрИтг как произведение потребленного количества на калорийность единицы продукта. По полю КлрИтг устанавливается групповая операция сумма (Sum).
Создадим перекрестный запрос, в котором по строкам будут расположены виды продуктов, по столбцам – смотрители, а на пересечении строк и столбцов – суммарное количество данного продукта, розданного данным смотрителем. SQL-команда, позволяющая выполнить этот запрос, представлена ниже:
TRANSFORM Sum(Раздача.КолПрод) AS [КолПродИтг]
SELECT ВидыПродуктов.НаимПрод
FROM Смотрители
INNER JOIN (Клетки
INNER JOIN (Животные
INNER JOIN (ВидыПродуктов
INNER JOIN Раздача
ON ВидыПродуктов.КодПрод = Раздача.КодПрод)
ON Животные.НомЖив = Раздача.НомЖив)
ON Клетки.НомКлт = Животные.НомКлт)
ON Смотрители.КодСмт = Клетки.КодСмт
GROUP BY ВидыПродуктов.НаимПрод
PIVOT Смотрители.ФамСмт;
Создадим запрос на обновление. Допустим, что один из смотрителей (с кодом “002”) увольняется. Все клетки, находящиеся на его попечении, переходят к другому смотрителю (с кодом “001”). Для этого нужно написать следующую SQL-команду:
UPDATE Смотрители
INNER JOIN Клетки
ON Смотрители.КодСмт = Клетки.КодСмт
SET Клетки.КодСмт = "001"
WHERE Клетки.КодСмт="002";
В
табл. 2.7-2.9 представлены распечатки первых
трех рассмотренных запросов.
Таблица
2.7
Результаты
выполнения запроса на выборку
НомЖив | ВидЖив | НомРазд | ВрмРазд | НаимПрод | КолПрод |
00001 | Зубр | 0000001 | 02.09.02 | Комбикорм | 5 |
00001 | Зубр | 0000002 | 02.09.02 | Овес | 3 |
Таблица
2.8
Результаты
выполнения запроса на выборку с группировкой
КодПрод | НаимПрод | КолПродИтг | КлрИтг |
0002 | Овес | 13 | 12350 |
0003 | Комбикорм | 6 | 9000 |
0004 | Мясо | 5 | 52500 |
Таблица
2.9
Результаты
выполнения перекрестного запроса
НаимПрод | Иванов | Петров |
Комбикорм | 1 | 5 |
Мясо | 5 | |
Овес | 10 | 3 |
При выполнении запроса на обновление следует помнить, что данные таблицы, подвергающейся обновлению, изменяются безвозвратно.
Создадим
отчет, в котором будут отражены
данные о суммарном расходе продуктов
и их стоимости. Для этого предварительно
необходимо написать запрос аналогичный
приведенному выше запросу на выборку
с группировкой, только вместо вычисляемого
поля КлрИтг появится вычисляемое поле
СтмИтг, в котором будет рассчитана стоимость
суммарного количества данного продукта,
попавшего в раздачу. На основании такого
запроса создается отчет, приведенный
в табл. 2.10
Таблица
2.10
Расход
продуктов в зоопарке
Код продукта | Наименование | Ед. изм. | Количество | Стоимость, руб. |
0003 | Комбикорм | кг | 6 | 150 |
0004 | Мясо | кг | 5 | 350 |
0002 | Овес | кг | 13 | 195 |
Итого: | 695 |
Рассмотренный пример проектирования и создания базы данных является образцом при выполнении контрольной работы, хотя это и не означает его прямое копирование. Проектирование и создание базы данных – процесс творческий. Единственного правильного решения этой задачи не существует. Это связано с тем, что разные люди по разному воспринимают одни и те же объекты. У них могут быть разные цели создания базы данных и разная подготовка. Наиболее остро это чувствуется при проектировании запросов, отчетов и их оформлении. Но при множестве правильных решений существует еще большее множество неправильных. Ошибки при проектировании чаще всего связаны с несоблюдением требований к непротиворечивости и отсутствию избыточности информации. Поэтому на эти моменты следует обращать первоочередное внимание.
Формат упаковки | Производительность
линии, шт. в смену |
Затраты на обслуживание линии, руб. в смену | План производства упаковки, шт. | ||
1 | 2 | 1 | 2 | ||
1 | x1,1 | x1,2 | y1,1 | y1,2 | z1 |
2 | x2,1 | x2,2 | y2,1 | y2,2 | z2 |
… | |||||
i | xi,1 | xi,2 | yi,1 | yi,2 | zi |
… | |||||
n-1 | xn-1,1 | xn-1,2 | yn-1,1 | yn-1,2 | zn-1 |
n | xn,1 | xn,2 | yn,1 | yn,2 | zn |
Вычислить такой план загрузки автоматических линий (т.е. сколько смен должна работать каждая линия для производства данного формата упаковки), чтобы общие затраты по предприятию были минимальными, а план производства выполнялся не более заданного количества смен.
Формат упаковки | Производительность
линии, шт. в смену |
Себестоимость производства упаковки, руб. за шт. | Ассортиментный минимум производства упаковки, шт. | Продажная стоимость упаковки, руб. за шт. | ||
1 | 2 | 1 | 2 | |||
1 | x1,1 | x1,2 | y1,1 | y1,2 | a1 | b1 |
2 | x2,1 | x2,2 | y2,1 | y2,2 | a2 | b2 |
… | ||||||
i | xi,1 | xi,2 | yi,1 | yi,2 | ai | bi |
… | ||||||
n-1 | xn-1,1 | xn-1,2 | yn-1,1 | yn-1,2 | an-1 | bn-1 |
n | xn,1 | xn,2 | yn,1 | yn,2 | an | bn |