Информационные технологии и базы данных

Автор работы: Пользователь скрыл имя, 30 Ноября 2010 в 19:32, Не определен

Описание работы

В пособии рассматриваются основные принципы работы с базами данных в полиграфической промышленности. Рассматривается решение оптимизационных задач. Приведены варианты заданий для самостоятельной работы в области информационных технологий. Даны многочисленные примеры применения информационных технологий в профессиональной деятельности инженера – технолога.

Файлы: 1 файл

Пособие ИТ.doc

— 740.00 Кб (Скачать файл)

   

   Рис. 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. Варианты  контрольных заданий ПО оптимизации упаковки
  1. Заявка  для экономичного раскроя рулонного  материала. Исходный материал можно заказать у поставщика в виде полосы с одной заданной шириной и толщиной, смотанной в рулоны с известным весом. Также известен удельный вес полосы на единицу ее площади. Рулоны могут иметь технологически заданный набор исходных ширин, т.е. ширина не может быть произвольной. Из исходных рулонов необходимо нарезать рулоны меньшей ширины по заявкам покупателей. Каждый покупатель заказывает ширину и толщину полосы, а также общий вес своего заказа. Требуется по поступившим заказам покупателей вычислить заявку на исходные рулоны для раскроя (т.е. какой ширины, толщины и сколько по весу заказать рулонов), причем отходы материала после раскроя должны быть наименьшими.
  2. Экономичный раскрой рулонного материала. Исходный материал лежит на складе в виде полос с известной шириной и толщиной, смотанной в рулоны с известным весом. Также известен удельный вес полосы на единицу ее площади. Из исходных рулонов необходимо нарезать рулоны меньшей ширины по заявкам покупателей. Каждый покупатель заказывает ширину и толщину полосы, а также общий вес своего заказа. Требуется вычислить, какие заказы покупателей можно выполнить, причем отходы материала после раскроя должны быть наименьшими.
  3. Комплекты из линейного материала. Исходный материал лежит на складе в виде нескольких партий отрезанных кусков с известной одинаковой длиной в каждой партии. Из исходных кусков необходимо нарезать куски меньшей длины, оформленные как комплекты. Комплект включает в себя набор кусков заданной длины и их количество (например, один кусок одной длины, три куска другой длины и два куска третьей длины). Требуется вычислить, как нужно распилить исходные куски, чтобы количество комплектов было максимальным.
  4. Заявка для экономичного распила линейного материала. Исходный материал можно заказать у поставщика в виде кусков с одной заданной длиной. Куски могут иметь технологически заданный набор исходных длин, т.е. длина не может быть произвольной. Из исходных кусков необходимо нарезать куски меньшей длины по заявкам покупателей. Каждый покупатель заказывает длину куска и их количество. Требуется по поступившим заказам покупателей вычислить заявку на исходные куски для распила (т.е. какой длины и сколько заказать кусков), причем отходы материала после распила должны быть наименьшими.
  5. Экономичное производство упаковки. На предприятии есть две автоматические линии по производству упаковки разного формата. Условия производства упаковки приведены в таблице, где - известные данные.
Формат  упаковки Производительность  линии, 
шт. в смену
Затраты на обслуживание линии, руб. в смену План  производства упаковки, шт.
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. Прибыльное производство упаковки. На предприятии есть две автоматические линии по производству упаковки разного формата. Условия производства упаковки приведены в таблице, где - известные данные.
    Формат  упаковки Производительность линии, 
    шт. в смену
    Себестоимость производства упаковки, руб. за шт. Ассортиментный  минимум производства упаковки, шт. Продажная стоимость упаковки, руб. за шт.
    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

Информация о работе Информационные технологии и базы данных