ФГБОУ ВПО «МОРДОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИМ. Н.П.ОГАРЁВА»
Факультет математики и информационных технологий
Кафедра прикладной математики
Спецкурс СУБД
Учет игрушек в детском саду
Специализация: математические методы и программное обеспечение защиты информации
Выполнила: студентка ф-та математики и информационных технологий
403 группы
Чекушкина А. М
Саранск 2012
Техническое задание
Детский сад закупает игрушки у разных организаций. Закупленные игрушки поступают на склад детского сада. После игрушки могут быть распределены по детским группам.
Со временем игрушки могут быть утеряны или сломаны. В этом случае необходимо их списать.
Задание: необходимо организовать учет движения игрушек на складе детского сада и детских группах.
Разработать ER-модель, структуру таблиц и сформулировать запросы:
-
Приход игрушек на склад в разрезе различных организаций за выбранный период времени.
-
Расход игрушек по детским группам за выбранный период времени.
-
Возврат игрушек от детских групп за выбранный период времени.
-
Списание игрушек с указанием причины:
-
Утеряны.
-
Сломаны.
-
-
Остаток игрушек на складе детского сада и детских группах на выбранный момент времени.
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 |
Примеры запросов
-
Приход игрушек на склад в разрезе различных организаций за выбранный период времени.
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
-
Расход игрушек по детским группам за выбранный период времени.
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
-
Возврат игрушек от детских групп за выбранный период времени.
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
-
Списание игрушек с указанием причины за выбранный период времени.
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
-
Остаток игрушек на складе детского сада и детских группах на выбранный момент времени.
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
-
Общее количество возвращенных игрушек, их характер на выбраннй период времени.
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