Проект по курсовой работе:Создание базы данных :Калькуляция по ремонту оборудования в литейных цехах, создания таблиц, обеспечения целостности на уровне сущности и отношения, заполнения таблиц и запросов на выборку данных.


МИНИСТЕРСТВО ОБРАЗОВАНИЯ МОСКОВСКОЙ ОБЛАСТИ
Государственное образовательное  учреждение высшего профессионального  образования
МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ  ОБЛАСТНОЙ УНИВЕРСИТЕТ
(МГОУ)
Курсы повышения квалификации по программе
«Методика преподавания по созданию баз данных
на диалекте "Transact-SQL" для СУБД "Microsoft SQL Server"
Тема проекта:
Создание базы данных :Калькуляция по ремонту оборудования в литейных цехах, создания таблиц, обеспечения целостности на уровне сущности и отношения, заполнения таблиц и запросов на выборку данных.
Слушатель Глушков Николай Васильевич –
учитель высшей категории
средней общеобразовательной
школы № 15 г. Подольска Московской области , выпускник МОПИ
им. Н.К. Крупской физмат ф-т 1964 г.,
с окончанием аспирантуры в 1970 г
по кафедре теоретическая физика.
Научный руководитель кандидат педагогических наук, доцент Пантелеймонова А.В и
старший преподаватель Белова М.А.
Москва 2016
Оглавление
TOC \o "1-3" \u Введение2-3
1. SQL: универсальный язык для работы с базами данных
Введение в управление реляционными базами данных
3-5
2.Создание базы даных "Калькуляция по ремонту оборудования"……………5
3.Создание таблицы «Оборудование» БД …………………………………………….6
4. Создание таблицы «Цех» БД ………………………………………………………7-8
5. Создание таблицы «Сотрудники» БД ………………………………………………8
6.Создание таблицы «Класс ремонта» БД………………………………………………..9
7.Создание таблицы «Ремонт оборудования» базы даных……………………...9-10
8-9. Создание запросов в базе данных.10
10 Заключение……………………………………………………………………………….11
11Литература11

Введение(Обоснование выбора темы и ее актульность)
Школы в условиях перехода на новые ФГОС решают задачи по обеспечению таких требований как создание возможностей для всестороннего личностного роста, формирование способности к саморазвитию и самообразованию, осознанному выбору и построению дальнейшей индивидуальной траектории образования на базе ориентировки в мире профессий и профессиональных предпочтений. Нужны гибкие решения для преподавания ИТ, отвечающего потребностям 21-го века. Президентская инициатива предполагает широкое внедрение в учебный процесс электронных учебников, электронных образовательных комплексов. Наметилась тенденция к тому, что необходимым, общепринятым средством обучения становятся электронные образовательные комплексы, в рамках которых реализуются образовательные программы с новым содержанием, более привлекательные для учеников, их родителей и общества.
Ускорение научно-технического прогресса, темпов и масштабов производства предъявляет повышенные требования к выпускникам школ. В связи с этим важнейшей задачей школы следует считать подготовку учащихся к будущей профессии специалистов, умело сочетающих знания специальности с широким использованием методов математического моделирования, а так же технических и программных средств ЭВМ.
В процессе практической деятельности современный человек неизбежно сталкивается с проблемой обработки больших объемов информации, необходимой для решения различных социальных, военных и хозяйственных задач. В настоящее время эта проблема решается с помощью информационных систем, представляющих собой совокупность взаимосвязанных данных, а также средств и методов управления ими. Информационные системы в первую очередь должны облегчать труд человека и быть ориентированы на хранение, выбор и поддержание в актуальном состоянии взаимосвязанных данных. В связи с этим необходимо, чтобы основной компонент информационной системы – база данных (БД) как можно более полно соответствовал обычно довольно сложной модели реального мира, для управления которой эта система предназначена. Однако создание современных информационных систем представляет собой сложнейшую задачу и требует применения специальных методик и инструментов.
SQL: универсальный язык для работы с базами данных
Введение в управление реляционными базами данных
sql часто называют языком эсперанто для систем управления базами данных (СУБД). Действительно, в мире нет другого языка для работы с базами данных (БД), который бы настолько широко использовался в программах. Первый стандарт sql появился в 1986 г. и к настоящему времени завоевал всеобщее признание. Его можно использовать даже при работе с нереляционными СУБД. В отличие от других программных средств, таких, как языки Си и Кобол, являющихся прерогативой программистов-профессионалов, sql применяется специалистами из самых разных областей. Программисты, администраторы СУБД, бизнес-аналитики - все они с успехом обрабатывают данные с помощью sql. Знание этого языка полезно всем, кому приходится иметь дело с БД. Язык sql появился в 1974 г. как предмет небольшой исследовательской работы, состоявшей из 23 страниц, и с тех пор прошел долгий путь развития. Текст действующего ныне стандарта - официального документа "the international standard database language sql" (обычно называемого sql-92) - содержит свыше шести сотен страниц, однако в нем ничего не говорится о конкретных особенностях версий sol, реализованных в СУБД фирм microsoft, oracle, sybase и др. Язык настолько развит и разнообразен, что лишь простое перечисление его возможностей потребует нескольких журнальных статей, а если собрать все, что написано на тему sol, то получится многотомная библиотека.Однако для обычного пользователя совсем не обязательно знать sql целиком и полностью. В sql - зная немногое, можно получать множество полезных результатов. В итоге можно самостоятельно создавать таблицы и вводить в них информацию, составлять запросы и работать с отчетами. Эти знания могут стать базой для дальнейшего самостоятельного освоения sql.
Что такое sql?
sql - это специализированный непроцедурный язык, позволяющий описывать данные, осуществлять выборку и обработку информации из реляционных СУБД. Специализированность означает, что sqll предназначен лишь для работы с БД; нельзя создать полноценную прикладную систему только средствами этого языка -- для этого потребуется использовать другие языки, в которые можно встраивать sql-команды. Поэтому sql еще называют вспомогательным языковым средством для обработки данных. Вспомогательный язык используется только в комплексе с другими языками.В прикладном языке общего назначения обычно имеются средства для создания процедур, а в sql их нет. С его помощью нельзя указать, каким образом должна выполняться некоторая задача, а можно лишь определить, в чем именно она заключается. Другими словами, при работе с sql нас интересуют результаты, а не процедуры для их получения.Наиболее существенным свойством sql является возможность доступа к реляционным БД. Многие даже считают, что выражения "БД, обрабатываемая средствами sql" и "реляционная БД" - синонимы. Однако скоро вы убедитесь, что между ними имеется разница. В стандарте sql-92 даже нет термина отношение (relation).
Что такое реляционная СУБД?
Если не вдаваться в подробности, то реляционная СУБД - это система, основанная на реляционной модели управления данными.Понятие реляционной модели было впервые предложено в работе д-ра Е. Ф. Кодда, опубликованной в 1970 г. В ней был описан математический аппарат для структуризации данных и управления ими, а также предложена абстрактная модель для представления любой реальной информации. До этого при использовании БД требовалось учитывать конкретные особенности хранения в ней информации. Если внутренняя структура БД изменялась (например, с целью повышения быстродействия), приходилось перерабатывать прикладные программы, даже если на логическом уровне никаких изменений не происходило. Реляционная модель позволила отделить частные особенности хранения данных от уровня прикладной программы. В самом деле, модель никак не описывает способы хранения информации и доступа к ней. Учитывается лишь то, как эта информация воспринимается пользователем. Благодаря появлению реляционной модели качественно изменился подход к управлению данными: из искусства оно превратилось в науку, что привело к революционному развитию отрасли.
Основные понятия реляционной модели
Согласно реляционной модели, отношение (relation) - это некоторая таблица с данными. Отношение может иметь один или несколько атрибутов (признаков), соответствующих столбцам этой таблицы, и некоторое множество (возможно, пустое) данных, представляющих собой наборы этих атрибутов (их называют n-арными кортежами, или записями) и соответствующих строкам таблицы.Для любого кортежа значения атрибутов должны принадлежать так называемым доменам. Фактически доменом является некоторый набор данных, который задает множество всех допустимых значений.Отношения обладают и другими свойствами. Наиболее значимое из них - математическое свойство замкнутости операций. Это означает, что в результате выполнения любой операции над отношением должно появляться новое отношение. Это свойство позволяет при выполнении математических операций над отношениями получать предсказуемые результаты. Кроме того, появляется возможность представлять операции в виде абстрактных выражений с разными уровнями вложенности.В своей исходной работе д-р Кодд определил набор из восьми операторов, получивший название реляционной алгебры. Четыре оператора - объединение, логическое умножение, разность и Декартово произведение - были перенесены из традиционной теории множеств; остальные операторы были созданы специально для обработки отношений. В последующих работах д-ра Кодда, Криса Дейта и других исследователей были предложены дополнительные операторы. Далее в этой статье будут рассмотрены три реляционных оператора - продукция (project), ограничения (select, или restrict) и слияние (join).
sql и реляционная модель
Понятия таблица sql и отношение не являются равнозначными, потому что в таблицах может быть сразу несколько одинаковых строк, тогда как в отношениях появление идентичных кортежей не разрешено. К тому же в sql не предусмотрено использование реляционных доменов, хотя в некоторой степени их роль играют типы данных (некоторые влиятельные сторонники реляционной модели предпринимают сейчас попытку добиться включения в будущий стандарт sql реляционных доменов).
Целью проекта является совершенствование методики обучения школьников по разработке баз данных в sql –сервере .
Задачи проекта:- рассмотреть роль и место изучения темы «Калькуляция по ремонту оборудования в литейных цехах, создания таблиц, обеспечения целостности на уровне сущности и отношения, заполнения таблиц и запросов на выборку данных» в разделе «Программирование» школьного курса информатики.
Создание базы даных "Калькуляция по ремонту оборудования".
В основу создания базы данных положен опыт работы автора проекта в качестве программиста на литейном заводе.
Схема данных таблиц в базе данных представлена с помощью программы access :

Код создания искомой базы данных в sql-сервере имеет вид:
USE master
GO
CREATE DATABASE Ремонт
ON
(
NAME = Ремонт_dat,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Ремонт.mdf',
SIZE = 4,
MAXSIZE = 10,
FILEGROWTH = 1
)
LOG ON
(
NAME = Ремонт_log,
FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Ремонт.ldf',
SIZE = 2,
MAXSIZE = 5,
FILEGROWTH = 1
)
GO
Создание таблицы «Оборудование» базы даных "Калькуляция по ремонту оборудования".
USE Ремонт
CREATE TABLE Oborudow
(
kodID int primary key IDENTITY(1,1) NOT NULL,
inw int NOT NULL,
Naimenow VARCHAR(30) NOT NULL,
zexID int REFERENCES zex(zexID),
kolish CHAR(5) NOT NULL,
Stoimost DECIMAL (8,0) not NULL,
Spisanie DATETIME NOT NULL
)
INSERT INTO Oborudow VALUES ('155','токстанок','5 ', '5 ','600000 ', '2018.1.1 ' )
INSERT INTO Oborudow VALUES ('255','строгстанок','5' , '3 ','500000 ' ,'2019.2.2 ' )
INSERT INTO Oborudow VALUES ('355','мехпила','5', '4 ','250000 ', '2017.3.3 ' )
INSERT INTO Oborudow VALUES ('11','пресс1','1', '3 ','60000', '2020.4.4')
INSERT INTO Oborudow VALUES ('21','пресс2','1', '6 ','60000','2022.5.5 ')
INSERT INTO Oborudow VALUES ('31','печь1','1', '3 ','100000', '2024.6.6')
INSERT INTO Oborudow VALUES ('17','печь2','3', '4 ','100000', '2026.7.7')
INSERT INTO Oborudow VALUES ('27','dissa1','3', '8 ','1000500', '2029.8.8')
INSERT INTO Oborudow VALUES ('37','dissa2','3', '7 ','1000500', '2030.6.7')
INSERT INTO Oborudow VALUES ('16','litmash1','2','6 ' , '800000', '2025.9.8')
INSERT INTO Oborudow VALUES ('26','litmash2','2', '5 ','800500', '2024.3.5')
INSERT INTO Oborudow VALUES ('18','печь1','4','3 ','50500', '2023.8.7')
INSERT INTO Oborudow VALUES ('28','печь2','4', '2 ','60500', '2022.5.8')
INSERT INTO Oborudow VALUES ('38','конвейер','4', '2 ','560500', '2022.11.2')
Таблица Оборудование

4. Создание таблицы «цех» базы даных "Калькуляция по ремонту оборудования".
USE Ремонт
CREATE TABLE Zex
(
zexID int primary key IDENTITY(1,1) NOT NULL,
nomer int NOT NULL,
Familie CHAR(15) NOT NULL,
Imj CHAR(15) NOT NULL,
park TINYINT NOT NULL
)
INSERT INTO zex VALUES ('1','Прусаков','Владимир ','23 ')
INSERT INTO zex VALUES ('6','Пушков','Иван','50 ' )
INSERT INTO zex VALUES ('7','Николаев','Петр ','71' )
INSERT INTO zex VALUES ('8','Мухамедов','Рустам','16' )
INSERT INTO zex VALUES ('55','Плотников','Никита ','18' )
Таблица цех

5.Создание таблицы «Сотрудники» базы даных "Калькуляция по ремонту оборудования
USE Ремонт
CREATE TABLE Сотрудники
(
obperID int primary key IDENTITY(1,1) NOT NULL,
Familie VARCHAR(20) NOT NULL,
Ima VARCHAR(20) NOT NULL,
Otshestwo VARCHAR(20) NOT NULL,
zexID int REFERENCES zex(zexID)
Telefon CHAR (12) NOT NULL,
Dolgnost VARCHAR(20) NOT NULL,
rasrjd int NOT NULL
)
INSERT INTO Сотрудники VALUES ('Гусев','Никита ','Николаевич ',' 5','234567456 ','слесарь', '6')
INSERT INTO Сотрудники VALUES ('Пучков','Михаил',' Владимирович ','5 ','191234567', 'слесарь','5' )
INSERT INTO Сотрудники VALUES ('Ушаков','Михаил ','Иванович ','5 ','191234567', 'слесарь','4' )
INSERT INTO Сотрудники VALUES ('Ушков','Павел ', 'Алксандрович ','3 ','191234567', 'слесарь','4' )
INSERT INTO Сотрудники VALUES ('Блохин','Юрий ', 'Васильевич ','1 ','191234567', 'слесарь','5' )
INSERT INTO Сотрудники VALUES ('Шумов','Владимир ','Иванович ','4 ','191234567', 'слесарь','4' )
INSERT INTO Сотрудники VALUES ('Анохин','Николай ','Петрович ','2','191234567', 'слесарь','5' )
INSERT INTO Сотрудники VALUES ('Петров','Лев','Иванович ','5 ','191234567', 'слесарь','6' )
INSERT INTO Сотрудники VALUES ('Соков','Борис ','Александрович ','5 ','191234567', 'слесарь','5' )

6. Создание таблицы «Класс ремонта» базы даных "Калькуляция по ремонту оборудования
USE Ремонт
CREATE TABLE класс_ремонта
(
klID int primary key IDENTITY(1,1) NOT NULL,
Widrem CHAR (5) NOT NULL,
shislorem int NOT NULL,
tarif DECIMAL (6,1) not NULL
)
INSERT INTO класс_ремонта VALUES ('ппр-4','12', '4000')
INSERT INTO класс_ремонта VALUES ('ппр-5','12', '5000')
INSERT INTO класс_ремонта VALUES ('ппр-6','12', '6000')
INSERT INTO класс_ремонта VALUES ('вр-4','30', '2000')
INSERT INTO класс_ремонта VALUES ('вр-5','30', '3000')
INSERT INTO класс_ремонта VALUES ('вр-6','30', '4000')
INSERT INTO класс_ремонта VALUES ('кр-4','2', '8000')
INSERT INTO класс_ремонта VALUES ('кр-5','2', '10000')
INSERT INTO класс_ремонта VALUES ('кр-6','2', '12000')

7. Создание таблицы «ремонт_оборудования » базы даных "Калькуляция по ремонту оборудования
USE Ремонт
CREATE TABLE ремонт_оборудования
(
kodremID int primary key IDENTITY(1,1) NOT NULL,
nash datetime NOT NULL,
kodid int REFERENCES oborudow(kodID),
obperID int REFERENCES Сотрудники(obperID),
klID int REFERENCES класс_ремонта(klID),
sach int NOT NULL
)
INSERT INTO ремонт_оборудования VALUES ('2016-12-12','1','1','1','20')
INSERT INTO ремонт_оборудования VALUES ('2016-10-20','2','2','2','25')
INSERT INTO ремонт_оборудования VALUES ('2016-01-20','3','3','3','30')
INSERT INTO ремонт_оборудования VALUES ('2016-02-02','4','4','4','5' )
INSERT INTO ремонт_оборудования VALUES ('2016-07-11','5','5','5','8' )
INSERT INTO ремонт_оборудования VALUES ('2016-11-14','6','6','6','10')
INSERT INTO ремонт_оборудования VALUES ('2016-12-20','7','7','7','50 ')
INSERT INTO ремонт_оборудования VALUES ('2016-08-02','8','8','8','55 ' )
INSERT INTO ремонт_оборудования VALUES ('2016-12-10','9','9','9','60 ' )
INSERT INTO ремонт_оборудования VALUES ('2016-09-16','10','1','1','24' )
8. Создание запросов в БД по таблице «Оборудование»
/*Запрос № 1*/
USE Ремонт
select Naimenow,zex from Oborudow
/*Запрос № 2*/
USE Ремонт
select * from Oborudow where zex=1
/*Запрос № 3*/
USE Ремонт
select * from Oborudow where stoimost>60000 and zex=1
/*Запрос № 4*/
USE Ремонт
select * from Oborudow where Naimenow='печь1'
/*Запрос № 5*/
USE Ремонт
select Naimenow from Oborudow where Naimenow='печь1'in
(
select nomer from zex where nomer=1
)
9. Создание запросов в БД по таблице оборудование, ремонт оборудования и класс ремонта
Выбор инвентарных номеров оборудования, имеющих вид ремонта
'вр-6'
/*Запрос № 7*/
USE Ремонт
select o.inw from Oborudow o Right JOIN ремонт_оборудования r on
r.kodid=o.kodid where klID in
(
select klID from класс_ремонта where widrem= 'вр-6'
)
Запрос по калькуляции ремонта : начисление зарплаты и премии
С использованием вычисляемых полей.

/*Запрос № 8*/
USE Ремонт
Select o.inw,s.Familie,k.widrem,k.tarif,r.sach,
k.tarif*r.sach as nashisleno,k.tarif*r.sach *0.5 as premij
from Oborudow o,Сотрудники s,класс_ремонта k,ремонт_оборудования r
where (r.kodid=o.kodID)
and (r.obperID=s.obperID)
and (r.klID=k.klID);
/*запрос 9 */
USE Ремонт
select s.Familie, k.tarif,r.sach,k.tarif*r.sach as nashisleno
from Сотрудники s,класс_ремонта k,ремонт_оборудования r
where (r.obperID=s.obperID)
and (r.klID=k.klID);
Выбор фамилии сотрудника обслуживающего оборудование Naimenow ='мехпила'
/*Запрос № 10*/
USE Ремонт
Select s.Familie from Сотрудники s
where obperID in
(Select obperID from ремонт_оборудования where KOdid =
(Select KOdid from Oborudow where Naimenow ='мехпила'))

выбор фамилии сотрудника по ремонту оборудования с видом ремонта Widrem ='вр-5'
Запрос № 11 Выбор сотрудника по виду ремонта
USE Ремонт
Select s.Familie from Сотрудники s
where obperID in
(Select obperID from ремонт_оборудования where klID =
(Select klID from класс_ремонта where Widrem ='вр-5'))

Заключение.
Данный проект является методическим пособием для учащихся, которые будут продолжать изучать базы данных, создавая свои разработки. В данной работе на примерах показано создание таблиц, первичных и вторичных ключей, связи между ними, установление запросов простых и вложенных, объединение таблиц.
Литература:
1.Методические материалы МГОУ.
2.www.illati.ru SQL: Габриэль Ганьон .»Универсальный язык для работы с БД» статья
.