Отчет за изразходваните материали за всеки ремонт/услуга и за изразходването за целия месец. Изискват се



Дата22.01.2019
Размер76.01 Kb.
#111131
ТипОтчет
КУРСОВА РАБОТА

ПО

БАЗИ ОТ ДАННИ



СТУДЕНТ: ДЕАН ВАЛЕРИЕВ ДЕНЕВ ПРИЕЛ: ГЛ.АС. Д-Р ИНЖ. ИРЕНА ВЪЛОВА

Ф№: 083268 / /

1.ЗАДАНИЕ


Да се проектира и реализира база от данни и заявки за справки и отчети за иноформационна система за автосервиз. В сервиза се извършват избрани от вас услуги и съответните им цени, като системата позволява промяна в асортимента на услугите и корекции на цените. Работят няколко служителя, като могат да постъпват нови и да напускат някои от работещите. Предварително се прави график за всяка седмица, като всеки служител може да има по трима клиента за всеки вид услуга. Клиентите се записват за определен служител в удобен за тях ден от седмицата. Системата да предвиди възможност за отчети по дни, месеци за всеки вид услуга и за всеки служител поотделно и общо всичко за всички. Да може да се определят: най-търсеният служител и най-търсената услуга. Да се предвиди отчет за изразходваните материали за всеки ремонт/услуга и за изразходването за целия месец. Изискват се:



  • описание на основните функции, които ще трябва да се изпълняват от информационната система

  • модел обекти-връзки

  • релационен модел

  • описание на таблиците

  • създаване на таблиците

  • попълване с данни на таблиците

  • описание на заявките за реализиране на функционалността

  • заявки- написани на SQL


2.Описание на основната функционалност


Така изградения проект, трябва да може да:

  • Връща информация за деня, в който е извършена дадена услуга

  • Връща информация за услугите, извършени в даден ден

  • Връща информация за най-търсена услуга

  • Връща информация за най-търсен работник

  • Връща информация за изразходвани материали за всеки ремонт

  • Връща информация за всички изразходвани материали


3.Модел обекти-връзки

Същият изглежда по следния начин:


4.Релационен модел




5.Описание на таблиците

Таблиците, с които се работи в този проект, са 5 на брои, а именно:




  • Firm- съдържа данни за фирмата, чиято собственост е автосервизът

  • AvServices- представлява списък на наличните услуги и цената им

  • Employee- съдържа данни за работниците

  • Shedule- съдържа графика на работниците за седмицата

  • Services- съдържа данни за извършените услуги



6.Създаване на таблиците

Командите, с които се създават петте отделни таблици на езика SQL, изглеждат така:




  • За таблица Firm: create table firm (name varchar(100) primary key, onwer varchar(100),address varchar(150))

За таблица AvServices: create table avservices (name varchar(100), price number(5,2), connector12 varchar2(100) references firm(name))

  • За таблица AvServices: create table avservices (name varchar(100), price number(5,2), connector12 varchar2(100) references firm(name))

  • За таблица employee: create table employee (numb number primary key, name varchar2(100),family varchar2(100), addressemp varchar2(150),phone number,connector12 varchar2(100) references firm(name))

  • За таблица Shedule: create table shedule (empcode number primary key, day varchar(5) check(day in ('mo','tu','we','th','fr','sa','su')),time varchar(20),service varchar2(100),connector23 number references employee(numb))

  • За таблица Services: create table services (code number primary key, servicename varchar2(100),workername varchar2(100),clientname varchar(100),day varchar(5) check(day in ('mo','tu','we','th','fr','sa','su')),month varchar(5) check(month in ('jan','feb','mar','apr','may','jun','jul','avg','sep','oct','noe','dec')),price number(5,2),material varchar2(200),connector34 number references shedule(empcode) );

  • Създаване на изглед (допълнително):

create view viewer (name,family,phone) as select name,family,phone from employee with check option

7.Попълване таблиците с данни

В таблиците са заредени примерни данни. Авторът на този проект, е незапознат с цените на услугите на автосервизите, а цените са избирани съвсем произволно.





  • За таблица Firm: insert into firm values ('Dido Autos','Dean Valeriev Denev','Rousse Secret Street 45')

Изглед на така заредената таблица:





  • За таблица AvServices:

insert into avservices values('Smiana na maslo',20.00,'')

insert into avservices values('Smiana na vyzdushen filty',20.00,'')

insert into avservices values('Smiana na garnituri na dvigatel',100.00,'')

insert into avservices values('Podmiana na amortisiori predni',120.55,'')

insert into avservices values ('Smiana na predno styklo' , 30.00,'')

insert into avservices values('Instalacia na radio',60.00,'')

insert into avservices values('Smiana na auspuh',30.00,'')
Изглед на така заредената таблица:



  • За таблица Employee:

insert into employee values (3,'Stamat','Silvenov','Rousse Studentska Street 1',565656,'')

insert into employee values (2,'Dimitrichka','Petrova','Rousse Dorostol Street 5',32333,'')

insert into employee values (1,'Petyr','Petrov','Rousse Pliska Street 5',456565,'')

Изглед на така заредената таблица:







  • За Sehedule

nsert into shedule values ('11','mo','12:30','Smiana na maslo','')

insert into shedule values ('12','tu','15:30','Smiana na vazdyshen filtur','');

insert into shedule values ('13','we','10:30','Smiana garnitura na dvigatel','')

insert into shedule values ('21','mo','12:30','Podmiana na amortisiori predni','')

insert into shedule values ('22','we','18:30','Smiana na predno styklo','')

insert into shedule values ('23','tu','12:30','Instalacia na radio','')

insert into shedule values ('31','th','15:30','Smiana na maslo','')

insert into shedule values ('32','fr','11:30','Smiana na auspuh','')

insert into shedule values ('33','sa','18:30','Smiana na maslo','')

insert into shedule values ('34','sa','19:30','Smiana na maslo','')

Изглед на така заредената таблица:







  • За Services:

nsert into services values (115, 'Smiana na maslo', 'Petyr Petrovv','Gergana Pesheva','mo','jan',50.00,'Maslen filtyr i novo maslo',11)

insert into services values (116, 'Smiana na vyzdushen filtyr', 'Petyr Petrovv','Diana Pesheva','tu','jan',30.00,'Vyzdyshen filtyr',12)

insert into services values (117, 'Smiana na garnituri na dvigatel', 'Petyr Petrovv','Stamat Peichev','we','jan',130.00,'garnituri',13)

insert into services values (118, 'Podmiana na amrtisiori predni', 'Dimitrichka Petrova','Valeri Krumov','mo','jan',250.39,'Amortisiori',21)

insert into services values (119, 'Smiana na predno styklo', 'Dimitrichka Petrova','Veselina Spasova','we','jan',50.39,'Styklo',22)

insert into services values (120, 'Instalacia na radio', 'Dimitrichka Petrova','Genadii Raichev','tu','jan',80.25,'Player,okabeliavane,buksi',23)

insert into services values (121, 'Smiana na maslo', 'Stamat Silvenov','Valeri Krumov','th','jan',50.00,'Maslo, maslen filtyr',31)

insert into services values (122, 'Smiana na auspux', 'Stamat Silvenov','Vladislav Stanchev','fr','jan',50.39,'Auspux',32)

insert into services values (123, 'Smiana na maslo', 'Stamat Silvenov','Nikola Balabanski','sa','jan',35.25,'Maslo, Maslen filtyr',33)

insert into services values (124, 'Smiana na maslo', 'Stamat Silvenov','Nikolai Barabanov','sa','jan',35.25,'Maslo, Maslen filtyr',34)

Изглед на така заредената таблица:



8.Заявки за реализиране на функционалността и описанието им.


Срещу всяка sql заяка, публикувана в тази точка, е описано какво точно прави и нагледно е показано какво точно връща.

8.1.Заявка за връщане информация за това, кога е правена определен тип услуга

Общият вид на заявката е: select day from services where servicename='име услуга'

Тъй като имаме няколко услуги, а реално заявките за показване информация за тях са еднотипни, ще бъде визуализирана информация само за една услуга. Така ще бъде правено и в следващите точки. Пълният листънинг на зададените заявки, ще бъде публикуван в отделна точка.

select day from services where servicename='Smiana na maslo'


8.2.Заявка за връщане информация за това, в кой ден от седмицата, какви услуги са извършени


Общият вид на заявката е: select * from services where day='ден'

select * from services where day='mo'



8.3.Заявка за връщане подробна информация за всички манипулации, извършени през даден месец


Общият вид на заявката е: select * from services where month='месец'

select * from services where month='jan'



8.4.Заявка за връщане информация за работата, извършена от всеки служител


Общият вид на заявката е:

select * from services where workername=име работник'

select * from services where workername='Stamat Silvenov'


8.5.Заявка за отчет на всички извършени услуги, независимо кога


select * from services


8.6.Заявка за намиране най-търсения работник


select workername, count(*) from services group by workername

select workername,count(*) from services where mod(connector34,10)=(select MAX(count(*)) from services group by workername) group by workername

Както се вижда, работникът с най-голяма стойност на count(*), е работникът, извършил най-много услуги.


8.7.Заявка за извеждане данни за най-търсената услуга


select servicename, count(*) from services group by servicename

select servicename,count(*) from services where mod(connector34,10)=(select MAX(count(*)) from services group by servicename) group by servicename

8.8.Заявка за определяне изразходваните материали за всички услуги



select servicename,material from services



8.9.Заявка за определяне изразохдваните материали за целия месец


select servicename,material from services where month='jan'


8.10.Заявка за образуване на декартово произведение между две таблици (допълнително)


select * from employee, shedule

9.Общ листънинг на всички изпълнени команди



create table firm (name varchar(100) primary key, onwer varchar(100),address varchar(150))

insert into firm values ('Dido Autos','Dean Valeriev Denev','Rousse Secret Street 45')

create table employee (numb number primary key, name varchar2(100),family varchar2(100), addressemp varchar2(150),phone number,connector12 varchar2(100) references firm(name))

insert into employee values (3,'Stamat','Silvenov','Rousse Studentska Street 1',565656,'')

insert into employee values (2,'Dimitrichka','Petrova','Rousse Dorostol Street 5',32333,'')

insert into employee values (1,'Petyr','Petrov','Rousse Pliska Street 5',456565,'')

create table avservices (name varchar(100), price number(5,2), connector12 varchar2(100) references firm(name))



insert into avservices values('Smiana na maslo',20.00,'')

insert into avservices values('Smiana na vyzdushen filty',20.00,'')

insert into avservices values('Smiana na garnituri na dvigatel',100.00,'')

insert into avservices values('Podmiana na amortisiori predni',120.55,'')

insert into avservices values ('Smiana na predno styklo' , 30.00,'')

insert into avservices values('Instalacia na radio',60.00,'')

insert into avservices values('Smiana na auspuh',30.00,'')

update avservices set price=30.01 where name='Smiana na predno styklo'

create table shedule (empcode number primary key, day varchar(5)

check(day in ('mo','tu','we','th','fr','sa','su')),time varchar(20),service varchar2(100),connector23 number references employee(numb))
insert into shedule values ('11','mo','12:30','Smiana na maslo','')

insert into shedule values ('12','tu','15:30','Smiana na vazdyshen filtur','');

insert into shedule values ('13','we','10:30','Smiana garnitura na dvigatel','')

insert into shedule values ('21','mo','12:30','Podmiana na amortisiori predni','')

insert into shedule values ('22','we','18:30','Smiana na predno styklo','')

insert into shedule values ('23','tu','12:30','Instalacia na radio','')

insert into shedule values ('31','th','15:30','Smiana na maslo','')

insert into shedule values ('32','fr','11:30','Smiana na auspuh','')

insert into shedule values ('33','sa','18:30','Smiana na maslo','')

insert into shedule values ('34','sa','19:30','Smiana na maslo','')
insert into services values (115, 'Smiana na maslo', 'Petyr Petrovv','Gergana Pesheva','mo','jan',50.00,'Maslen filtyr i novo maslo',11)
insert into services values (116, 'Smiana na vyzdushen filtyr', 'Petyr Petrovv','Diana Pesheva','tu','jan',30.00,'Vyzdyshen filtyr',12)
insert into services values (117, 'Smiana na garnituri na dvigatel', 'Petyr Petrovv','Stamat Peichev','we','jan',130.00,'garnituri',13)
insert into services values (118, 'Podmiana na amrtisiori predni', 'Dimitrichka Petrova','Valeri Krumov','mo','jan',250.39,'Amortisiori',21)
insert into services values (119, 'Smiana na predno styklo', 'Dimitrichka Petrova','Veselina Spasova','we','jan',50.39,'Styklo',22)
insert into services values (120, 'Instalacia na radio', 'Dimitrichka Petrova','Genadii Raichev','tu','jan',80.25,'Player,okabeliavane,buksi',23)

insert into services values (121, 'Smiana na maslo', 'Stamat Silvenov','Valeri Krumov','th','jan',50.00,'Maslo, maslen filtyr',31)
insert into services values (122, 'Smiana na auspux', 'Stamat Silvenov','Vladislav Stanchev','fr','jan',50.39,'Auspux',32)
insert into services values (123, 'Smiana na maslo', 'Stamat Silvenov','Nikola Balabanski','sa','jan',35.25,'Maslo, Maslen filtyr',33)
insert into services values (124, 'Smiana na maslo', 'Stamat Silvenov','Nikolai Barabanov','sa','jan',35.25,'Maslo, Maslen filtyr',34)

select day from services where servicename='Smiana na maslo'

select day from services where servicename='Smiana na garnituri na dvigatel'

select day from services where servicename='Podmiana na amrtisiori predni'

select day from services where servicename='Smiana na predno styklo'

select day from services where servicename='Instalacia na radio'

select * from services where day='mo'

select * from services where day='tu'

select * from services where day='we'

select * from services where day='th'

select * from services where day='fr'

select * from services where day='sa'

select * from services where day='su'


select * from services where month='jan'

select * from services where workername='Stamat Silvenov'

select * from services where workername='Dimitrichka Petrova'

select * from services where workername='Petyr Petrov'
select * from services


select * from employee

select workername, count(*) from services group by workername

select servicename, count(*) from services group by servicename

select servicename,material from services

select servicename,material from services where month='jan'

create view viewer (name,family,phone) as select name,family,phone from employee with check option

select * from employee, shedule
Каталог: kst -> download -> 3kurs-leten
kst -> Конспект по дисциплина "Програмиране в Internet"
kst -> Компютърни мрежи
kst -> Лекция №2 Проектиране на сгис
kst -> Лекция №2, 2012 Системи с Програмируема Логика
download -> По Дискретни структури и моделиране Студент: Христо Димитров Русанов Фак.№063131
3kurs-leten -> Конспект по дисциплината „Криптография и защита на данните”
download -> Дисциплина : Дискретни структури и моделиране Студент: Мюкерем Джевдет Вели Проверил: Фак. Ном: 073272 Група: 25б специалност: кст русе 2009г. Съдържание
download -> 1Цели на упражнението


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница