Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Desktop / СУБД / Чекушкина / Учет игрушек в детском саду

.docx
Скачиваний:
23
Добавлен:
11.02.2015
Размер:
423.47 Кб
Скачать

ФГБОУ ВПО «МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИМ. Н.П.ОГАРЁВА»

Факультет математики и информационных технологий

Кафедра прикладной математики

Спецкурс СУБД

Учет игрушек в детском саду

Специализация: математические методы и программное обеспечение защиты информации

Выполнила: студентка ф-та математики и информационных технологий

403 группы

Чекушкина А. М

Саранск 2012

Техническое задание

Детский сад закупает игрушки у разных организаций. Закупленные игрушки поступают на склад детского сада. После игрушки могут быть распределены по детским группам.

Со временем игрушки могут быть утеряны или сломаны. В этом случае необходимо их списать.

Задание: необходимо организовать учет движения игрушек на складе детского сада и детских группах.

Разработать ER-модель, структуру таблиц и сформулировать запросы:

  1. Приход игрушек на склад в разрезе различных организаций за выбранный период времени.

  2. Расход игрушек по детским группам за выбранный период времени.

  3. Возврат игрушек от детских групп за выбранный период времени.

  4. Списание игрушек с указанием причины:

    1. Утеряны.

    2. Сломаны.

  5. Остаток игрушек на складе детского сада и детских группах на выбранный момент времени.

ER-диаграмма

0 – возврат игрушек от групп

1 – расход игрушек по группам

2 – списание (сломаны)

3 – списание (утеряны)

0 – возврат игрушек поставщикам

1 – приход игрушек на склад

ER – диаграмма базы данных в виде таблиц

Физическая модель

Таблица «Gruppa»

Gruppa

Id_g

PK

int

не NULL

kolvo_det

int

NULL

vozrast

int

NULL

Таблица «Igrushka»

Igrushka

Id_i

PK

int

не NULL

nazwanie

nchar(10)

NULL

vozrast

money

NULL

Таблица «Operazii»

Operazii

Id_oper

PK

int

не NULL

Id_g

FK

int

NULL

Id_i

FK

int

NULL

data

datatime

NULL

Kolvo

int

NULL

flag

int

NULL

Таблица «Postawshiki»

Postawshiki

Id_post

PK

int

не NULL

nazwanie

nchar(10)

NULL

Address

nchar(80)

NULL

telephon

Int

NULL

Таблица «Prichod»

Prichod

Id_prih

PK

int

не NULL

Id_post

FK

int

NULL

Id_i

FK

int

NULL

Data

datatime

NULL

Kolvo

int

NULL

flag

int

NULL

Примеры запросов

  1. Приход игрушек на склад в разрезе различных организаций за выбранный период времени.

use igrushki

select postawshiki.nazwanie as 'организация', igrushka.nazwanie as 'игрушка', sum(Prichod.kolvo) as 'количество' ,sum(prichod.kolvo*igrushka.stoimost) as 'выручка'

from igrushka, postawshiki,prichod

where igrushka.id_i=prichod.id_i and prichod.id_post=postawshiki.id_post and prichod.data<'17.01.2012' and prichod.flag=1

GROUP BY postawshiki.nazwanie, igrushka.nazwanie with rollup

ORDER BY postawshiki.nazwanie, igrushka.nazwanie

  1. Расход игрушек по детским группам за выбранный период времени.

use igrushki

select

operazii.id_g as 'номер группы',

igrushka.nazwanie as 'игрушка', sum(operazii.kolvo) as 'расход'

from operazii,igrushka

where operazii.flag=1 and igrushka.id_i=operazii.id_i and operazii.data<'19.01.2012'

GROUP BY operazii.id_g, igrushka.nazwanie with rollup

ORDER BY operazii.id_g, igrushka.nazwanie

  1. Возврат игрушек от детских групп за выбранный период времени.

use igrushki

select operazii.id_g as 'номер группы', igrushka.nazwanie as 'игрушка', sum(operazii.kolvo) as 'возвращено'

from operazii, igrushka

where operazii.flag=0 and igrushka.id_i=operazii.id_i and operazii.data<'11.03.2012'

GROUP BY operazii.id_g, igrushka.nazwanie with rollup

ORDER BY operazii.id_g, igrushka.nazwanie

  1. Списание игрушек с указанием причины за выбранный период времени.

use igrushki

select operazii.flag as '2–сломаны, 3–утеряны', operazii.id_g as 'номер группы', igrushka.nazwanie as 'игрушка', sum(operazii.kolvo) as 'количество'

from operazii,igrushka

where (operazii.flag=3 or operazii.flag=2) and igrushka.id_i=operazii.id_i and operazii.data<'10.03.2012'

GROUP BY operazii.flag, operazii.id_g, igrushka.nazwanie

ORDER BY operazii.flag, operazii.id_g, igrushka.nazwanie

  1. Остаток игрушек на складе детского сада и детских группах на выбранный момент времени.

use igrushki

select igrushka.nazwanie as 'игрушка',sum(Prichod.kolvo) as 'количество',

'на складе' as 'место'

from igrushka, postawshiki,prichod

where igrushka.id_i=prichod.id_i and prichod.id_post=postawshiki.id_post

and prichod.data<'17.01.2012' and prichod.flag=1

GROUP BY igrushka.nazwanie with rollup

union

select igrushka.nazwanie as 'игрушка', sum(operazii.kolvo) as 'количество',

'в группах' as 'место'

from igrushka, operazii

where igrushka.id_i=operazii.id_i and operazii.data<'17.01.2012' and operazii.flag=1

GROUP BY igrushka.nazwanie with rollup

ORDER BY igrushka.nazwanie

  1. Общее количество возвращенных игрушек, их характер на выбраннй период времени.

use igrushki

select igrushka.nazwanie as 'игрушка',sum(Prichod.kolvo) as 'количество',

'готовится к возврату' as 'возврат'

from igrushka, postawshiki,prichod

where igrushka.id_i=prichod.id_i and prichod.id_post=postawshiki.id_post

and prichod.data<'17.01.2012' and prichod.flag=0

GROUP BY igrushka.nazwanie with rollup

union

select igrushka.nazwanie as 'игрушка', sum(operazii.kolvo) as 'количество',

'возвращено поставщику' as 'возврат'

from igrushka, operazii

where igrushka.id_i=operazii.id_i and operazii.data<'17.01.2012' and operazii.flag=0

GROUP BY igrushka.nazwanie with rollup

ORDER BY igrushka.nazwanie