Реферат по предмету "Информатика, программирование"


Разработка проекта управления базами данных для процесса "Учет ремонта и ТО автотранспорта"

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
УХТИНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра ИСТ
Курсовой проект
Дисциплина: «Проект управления базами данных»
Тема:
«Разработка проекта управления базами данных для процесса «Учетремонта и ТО автотранспорта»»

Выполнил
студент группы ИСТ-2-04
Петров М.В.
Проверила
доцент кафедры ИСТ, к. т. н.
Николаева Н.А.

Ухта 2008

Содержание
Введение
Краткое описание предметной области
Обоснование выбора SQL
Создание базы данных
Создание таблиц
Команды языка манипулирования данными
Запросы к базе данных
Хранимые процедуры
Триггеры
Заключение
Список литературы
Приложение

Введение
Темойданного курсового проекта является реализация проекта базы данных для процесса«Учет ремонта и ТО автотранспорта».
Актуальностьпоставленной задачи состоит в необходимости разработать единую, наиболее полнуюструктуру данных, необходимых для эффективной работы системы с цельюорганизации учета ремонта и технического обслуживания автотранспорта.
Основной задачей курсовогопроекта, является создание таблиц базы данных и заполнение этих таблиц данными,обеспечение целостности базы данных путем создания декларативных ограничений ипроцедурных ограничений, разработка основных запросов и представлений дляполучения необходимой пользователю информации.
Целью курсового проекта,является реализация базы данных для автоматизированной системы, обслуживающейпроцесс учета ремонта и ТО автотранспорта.
Таким образом, для достиженияцели данного проекта была проделана работа следующего содержания:
– краткое описание предметнойобласти — в этом разделе курсового проекта описываются основные функции отделареализации теплоснабжающей организации;
– обоснование выбора SQL — вэтом разделе курсового проекта описан универсальный язык для создания,модификации и управления данными в реляционных базах данных;
– создание таблиц базы данных — вразделе описывается процесс создания таблиц, выбор типа данных, созданиедекларативных ограничений, описаны основные команды языка манипулированияданных;
– запросы к базе данных — в этомразделе курсового проекта описаны основные запросы к базе данных, которыепозволяют получить необходимую для пользователя информацию;
– представления — в этом разделекурсового проекта описано создание шаблонов вывода информации, построенных назапросах к базе данных;
– триггеры — в этом разделекурсового проекта описан специальный тип хранимой процедуры, который позволяетобеспечить целостность данных, предотвращая несанкционированное илинеправильное их изменение.

Краткое описание предметной области
Руководит всеми работами по ТО и ремонту подвижного составаначальник производства. Оперативное руководствопроизводством работ на постах обслуживания и ремонта автомобилей осуществляет диспетчер производства, непосредственно подчиненный начальнику производства. Диспетчер производства заносит всю информацию поремонту и ТО автотранспорта в журнал «Учет ремонта и техническогообслуживания подвижного состава».
Диспетчеру в оперативном порядкеподчиняются все работающие на постах ТО иремонта автомобилей, а в отсутствие начальника производства на работе ему подчиняется весь коллектив производства.
При принятии решений по управлению производством диспетчер учитывает: общий объем работ, который необходимовыполнить, какие автомобили нуждаются в обслуживании и ремонте в первую очередь, содержание ремонта по каждому автомобилю,наличие производственного персонала и запасных частей и агрегатов,состояние технологического оборудования,время выхода автомобилей на линию и др.
Информацию о том, какие работы необходимо выполнять,диспетчер получает признакомстве с незавершенным производством при приеме смены, по записям в листкахучета, которые он получаетпо данным постов диагностики и сообщениям отдельных рабочих в процессе производства. По записям влистках учета он составляет оперативный план работы, в который записывает все автомобили, нуждающиеся в ТО и ремонте. Работыпо ТО-1 проводятся в межсменное время, работы по ТО-2, в рабочее время спростоем для всех видов подвижного состава.
Если при выполнении обслуживания илиремонта рабочий обнаруживаетнеобходимость выполнения такой работы, которая не записана в листке учета, он сообщает об этом своемуруководителю или диспетчеру производства,выполняет работу, и ее записывают в листок.
Техническое обслуживание автомобилей вАТП производят на основепланов-графиков, составленных для каждого автомобиля исходя из среднесуточногопробега, нормативов периодичности ТО и условий эксплуатации на данном предприятии. Техническаяслужба вносит коррективы в план-график взависимости от фактического пробегаавтомобиля и его состояния. Работы по ТО ведут бригадным или агрегатно-участковым методом.
Учет и отчетность по выполнениютехнического обслуживания иремонта ведут по гаражным листам на каждый автомобиль, а также заявкам, составляемымводителем. При наличии на предприятии средств диагностирования выполняемые диагностические работы оформляют в видедиагностической карты определенной формы, где приводят проверяемые показатели автомобиля. Гаражные листы, заявки и диагностическиекарты утверждают мастера иначальники участков. Оформленные документы поступают в плановый отдел или центр управления производством, где ихобрабатывают, систематизируют и используют вотчетности предприятия.
 
Обоснование выбора SQL
SQL — сокращение от Structured QueryLanguage (Язык структурированных запросов) — это универсальный язык длясоздания, модификации и управления данными в реляционных базах данных.
Реляционная модель была предложена в1970 году И.Ф. Коддом, работавшим в исследовательской лаборатории IBM вСан-Хосе, Калифорния, и развивалась последующие десять лет в университетах инаучных организациях. SQL — один из нескольких языков, выросших из этой идеи, внастоящее время практически полностью господствует в мире реляционных базданных. Производители систем управления реляционными базами данных,первоначально использовавшие другие языки, сегодня полностьюпереориентировались на SQL.
SQL — это язык, на котором можно«разговаривать» с реляционными базами данных. Все системы управления базамиданных предназначены для хранения и обработки информации. Реляционный подход куправлению базами данных основан на математической модели, использующей методыреляционной алгебры и реляционного исчисления.
Определение реляционной системы, также, как и правила Кодда, требует чтобы весь диалог с базой данных велся наедином языке — иногда его называют общим подъязыком данных. В мире коммерческихсистем управления базами данных такой язык получил название SQL.
SQL используется для манипуляции сданными (data manipulation) — выборки и модификации, определения данных (datadefinition) и администрирования данных (data administration). Любая операция повыборке, модификации, определению или администрированию выполняется с помощьюоператора (statement) или команды (command) SQL.
Имеется две разновидности операции поманипуляции с данными — выборка данных (data retrieval) и модификация данных(data modification). Выборка — это поиск необходимых вам данных, а модификацияозначает добавление, удаление или изменение данных.
Операции по выборке (чаще называемыезапросами (queries)) осуществляют поиск в базе данных, наиболее эффективноизвлекают затребованную вами информацию и отображает ее. Во всех запросах SQLиспользуется ключевое слово Select.
 
Создание базы данных
База данных– это именованная область на носителе данных, содержащая таблицы, индексы идругие объекты.
Для созданиябазы данных используется команда CREATE DATABASE
Созданиебазы данных «Ремонт и ТО автотранспорта»
USE master;
GO
IF DB_ID (N'autorem') IS NOT NULL
DROP DATABASE autorem;
GO
CREATE DATABASE autorem ON PRIMARY
(SIZE = 20MB,Name='autorem',
Filename='D:\Programs\Autorem\Bases\autorem.mdf')
GO
 
Создание таблиц
Создав базу данных и подключившись к ней, можно начатьсоздание таблиц. Таблицы являются основными строительными блоками базы данных.В них содержаться строки и столбцы данных. С помощью команд определения данных SQL можносоздавать, удалять и манипулировать таблицами (добавлять, удалять, переставлятьстолбцы и менять их параметры).
В большинстве реализаций SQL таблицей владеетсоздавший ее пользователь, выдавая разрешения на ее использование другимпользователям. Чтобы создать таблицу, по меньшей мере, надо сделать следующее.
1. Задать имя таблицы.
2. Задать имена составляющих ее столбцов.
3. Определить тип данных для каждого столбца.
4. Определить ограничения для каждого столбца или таблицы.
Для создания таблицы используется команда Create Table.
Порядок создания таблиц: сначала создаются родительские(те, которые не содержат внешних ключей), затем дочерние таблиц. Если таблицысозданы и связаны правильно, то на диаграмме созданной в Enterprise Manager этобудет выглядеть следующим образом (см. Приложение 1).
Назначение ограничений NULL/NOT NULL — разрешает или неразрешает неопределенность значений атрибутов; ограничение NULL (задается поумолчанию) явно указывает, что значения столбца могут быть не определены.
Ограничение UNIQUE — разрешает только уникальные значенияатрибутов;          Ограничение PRIMARY KEY — определяет первичный ключотношения (в каждом отношении может иметь место только один первичный ключ,первичный ключ не может иметь NULL значений, одна и та же комбинация столбцовне может быть объявлена одновременно в качестве уникального и первичногоключа);
Ограничение FOREIGN KEY — определяет внешний ключ отношения(в одном отношении может быть несколько внешних ключей); организует ссылку повнешнему ключу на заданное в предложении REFERENCES отношение.
Базаданных «Ремонт и ТО автотранспорта» включает в себя следующиетаблицы:
·  Автобаза (Autobase)
·  Справочник состояний (Condition)
·  Справочник технического обслуживания (Technical)
·  Тип марки (TypeMarka)
·  Марка (Marka)
·  Транспорт (Transport)
·  Состояние единицы (ConditionUnit)
Таблица Автобаза (Autobase).
Таблица содержит данные об автобазах. Каждая автобаза имеетуникальный номер, который является первичным ключом отношения. Схема отношенияимеет вид: R(IDAutobase)={NameAutobase, Address}, что аналогично R(Уникальныйномер автобазы)={Название автобазы, Юридический адрес автобазы}. Атрибут IDAutobase долженбыть уникальным и не равен нулю, т.к. является первичным ключом. Атрибут NameAutobase должен быть уникален,т.к. совпадающие названия автобаз состояний нарушают нормализацию таблицы базыданных, а также не равен NULL. Размер поля NameAutobase должен содержать символьные значения и максимальный среднестатистическийразмер атрибута равен 11 символов (к примеру, «Автобаза №1»,«Автобаза №2»), следовательно, принимая во внимание необходимостьизбыточности размера поля порядка 4 символов, имеем размер поля NameAutobase типа VARCHAR равным 15. Размер поля Address должен содержать символьные значения и максимальныйсреднестатистический размер атрибута равен 35 символов (например, «г. Воркута, ул. Автозаводская, 22»), следовательно, принимая во внимание необходимость резервнойизбыточности размера поля порядка 25 символов, имеем размер поля Address типа VARCHAR равным 60(см. Таблица 1).
Таблица1.Название атрибута Имя поля Тип поля Размер Ограничения Уникальный номер автобазы IDAutobase INT NOT NULL, PRIMARY KEY Название автобазы NameAutobase VARCHAR 15 NOT NULL, UNIQUE Юридический адрес автобазы Address VARCHAR 60
USE autorem;
GO
CREATE TABLEAutobase
(IDAutobaseINT IDENTITY CONSTRAINT AutobasePrimary PRIMARY KEY,
NameAutobaseVARCHAR (15) NOT NULL CONSTRAINT NameAutobaseUnique UNIQUE,
Address VARCHAR (60))
GO
Справочник состояний(Condition)
Таблица содержит данные о типе маркиавтотранспорта. Каждое состояние автотранспорта имеет уникальный номер, которыйявляется первичным ключом отношения.
Схема отношения имеет вид: R(IDCondition)={NameCondition}, что аналогично R(IDсправочника состояний)={Название состояния}.
Атрибут IDCondition должен быть уникальным и не быть равным NULL, т.к. является первичнымключом. Атрибут NameCondition должен быть уникален, т.к. совпадающие названия состояний нарушаютнормализацию таблицы базы данных, а также не равен NULL.
Размер поля NameCondition должен содержатьсимвольные значения и максимальный среднестатистический размер атрибута непревышает 6 символов (например, «ремонт», «ТР»,«ТО1», «ТО2», «СО»), следовательно, принимая вовнимание необходимость избыточности размера поля порядка 3 символов, имеемразмер поля NameCondition типа VARCHAR равным 10 символам (см. Таблица 2).
Таблица 2.Название атрибута Имя поля Тип поля Размер Ограничения ID справочника состояний IDCondition INT NOT NULL Название состояния NameCondition VARCHAR 10 NOT NULL, UNIQUE
USE autorem;
GO
CREATE TABLECondition
(IDConditionINT IDENTITY CONSTRAINT ConditionPrimary PRIMARY KEY,
NameConditionVARCHAR (10) NOT NULL CONSTRAINT NameConditionUnique UNIQUE)
GO
Справочник техническогообслуживания (Technical)
Таблица содержит данные о периодичноститехнического обслуживания подвижного состава. Каждый тип автотранспорта(легковые, автобусы, грузовые автобусы на базе грузовых автомобилей) имеетуникальный номер, который является первичным ключом отношения. Схема отношенияимеет вид: R(IDTechnical)={NameTechnical, TO1, TO2}, что аналогично R(ID справочника технического обслуживания)={Названиетипа автотранспорта, Километраж для TO1, Километраж для TO2}. Атрибут IDTechnical должен быть уникальным ине быть равным NULL, т.к. является первичным ключом. Атрибут NameTechnical должен быть уникален,т.к. совпадающие названия состояний нарушают нормализацию таблицы базы данных,а также не равен NULL. Размер поля NameTechnical содержит символьные значения и максимальныйсреднестатистический размер атрибута не превышает 46 символа (например, «грузовыеавтобусы на базе грузовых автомобилей», «легковые»,«автобусы»), следовательно, принимая во внимание необходимостьизбыточности размера поля порядка 13 символов, имеем размер поля NameTechnical типа VARCHAR равным 60 символам. ПолеTO1 должно содержатьчисловые значения о пробеге автотранспорта до первого техническогообслуживания, следовательно, поле ТО1 имеет тип INT. Поле TO2 должно содержатьчисловые значения о пробеге автотранспорта до второго техническогообслуживания, следовательно, поле ТО2 имеет тип INT. (см. Таблица 3).
Таблица 3.Название атрибута Имя поля Тип поля Размер Ограничения ID справочника технического обслуживания IDTechnical INT NOT NULL Название типа автотранспорта NameTechnical VARCHAR 60 NOT NULL, UNIQUE Километраж для TO1 TO1 INT Километраж для TO2 TO2 INT
CREATE TABLETechnical
(IDTechnicalINT IDENTITY CONSTRAINT TechnicalPrimary PRIMARY KEY,
NameTechnicalVARCHAR (60) NOT NULL CONSTRAINT NameTechnicalUnique UNIQUE,
TO1 INT,
TO2 INT)
Типмарки(TypeMarka)
Таблица содержит данные о типе маркиавтотранспорта. Каждая марка автотранспорта имеет уникальный номер, которыйявляется первичным ключом отношения. Схема отношения имеет вид: R(IDTypeMarka)={IDTechnical, NameTypeMarka}, что аналогичноR(Уникальный номер типа марки)={ID справочника технического обслуживания, Названиетипа марки}. Внешним ключом является IDTechnical (ID справочника техническогообслуживания). Атрибут IDTypeMarka должен быть уникальным и не быть равным NULL, т.к. является первичнымключом отношения. Атрибут IDTechnical должен быть уникальным и не быть равным NULL, т.к. является внешнимключом отношения. Атрибут NameTypeMarka должен быть уникален, т.к. совпадающие названиясостояний нарушают нормализацию таблицы базы данных, а также не должен быть равенNULL. Размер поля NameTypeMarka должен содержатьсимвольные значения и максимальный среднестатистический размер атрибута равен 20символов (к примеру, «бортовая платформа»,«экс.грейд.бульд.погр»), следовательно, принимая во вниманиенеобходимость избыточности размера поля порядка 15 символов, имеем размер поля NameTypeMarka типа VARCHAR равным 35 символам (см.Таблица 4).
Таблица 4.Название атрибута Имя поля Тип поля Размер Ограничения Уникальный номер типа марки IDTypeMarka INT NOT NULL, PRIMARY KEY ID справочника технического обслуживания IDTechnical INT NOT NULL, FOREIGN KEY Название типа марки NameTypeMarka VARCHAR 35 NOT NULL, UNIQUE
USE autorem;
GO
CREATE TABLETypeMarka
(IDTypeMarkaINT IDENTITY CONSTRAINT TypeMarkaPrimary PRIMARY KEY,
IDTechnicalINT NOT NULL,
NameTypeMarkaVARCHAR (35) NOT NULL CONSTRAINT NameTypeMarkaUnique UNIQUE
CONSTRAINTTypeMarkaTechnicalForeign FOREIGN KEY (IDTechnical) REFERENCES Technical)
GO
Таблица Марка (Marka).
Таблица содержит данные о марках автотранспорта.Каждая марка имеет уникальный номер, который является первичным ключомотношения. Схема отношения имеет вид: R(IDMarka)={IDTypeMarka, NameMarka, Capacity}, что аналогично R(Уникальныйномер марки)={Уникальный номер типа марки, Название марки, Грузоподъемность}.Внешним ключом является IDTypeMarka (Уникальный номер типамарки). Атрибут IDMarka должен быть уникальным и не быть равным NULL, т.к. является первичнымключом. Атрибут IDTypeMarka должен быть уникальным и не быть равным NULL, т.к. является внешнимключом отношения. Атрибут NameMarka должен быть не равен NULL. Размер поля NameMarka должен содержатьсимвольные значения и максимальный среднестатистический размер атрибута равен10 символов (к примеру, " КамАЗ-5320", «ЗиЛ-433100»),следовательно, принимая во внимание необходимость избыточности размера поляпорядка 5 символов, имеем размер поля NameCondition типа VARCHAR равным 15. Поле Capacityдолжен содержать дробные числовые значения о грузоподъемности автотранспорта,следовательно, поле Capacity имеет тип FLOAT (см. Таблица 5).
Таблица 5.Название атрибута Имя поля Тип поля Размер Ограничения Уникальный номер марки IDMarka INT NOT NULL, PRIMARY KEY Уникальный номер типа марки IDTypeMarka INT NOT NULL, FOREIGN KEY Название марки NameMarka VARCHAR 15 NOT NULL Грузоподъемность Capacity FLOAT
USE autorem;
GO
CREATE TABLE Marka
(IDMarka INT IDENTITYCONSTRAINT MarkaPrimary PRIMARY KEY,
IDTypeMarka INT NOT NULL,
NameMarka VARCHAR (15)NOT NULL,
Capacity FLOAT,
CONSTRAINTMarkaTypeMarkaForeign FOREIGN KEY (IDTypeMarka) REFERENCES TypeMarka)
GO
Таблица Транспорт (Transport).
Таблица содержит данные об автотранспорте. Каждыйавтотранспорт имеет уникальный номер, который является первичным ключомотношения. Схема отношения имеет вид: R(IDTransport)={IDAutobase, IDMarka, GarageNumber, GosNumber}, что аналогично R(Уникальныйномер единицы автотранспорта)={Уникальный номер автобазы, Уникальный номермарки, Гаражный номер, Госномер}. Внешними ключами являются IDAutobase (Уникальный номеравтобазы), IDMarka(Уникальный номер марки). Атрибут IDTransport(Уникальный номер единицыавтотранспорта) должен быть уникален и не равным NULL, т.к. является первичнымключом. Атрибут IDAutobase должен быть уникальным и не быть равным NULL, т.к. является внешнимключом отношения. Атрибут IDTypeMarka должен быть уникальным и не быть равным NULL, т.к. является внешнимключом отношения. Атрибут GarageNumber должен быть уникален, т.к. каждая единицаавтотранспорта имеет свой гаражный номер, а также не равен NULL. Атрибут GosNumber должен быть уникален,т.к. каждая единица автотранспорта имеет свой уникальный госномер, выданный всоответствующей ведомости. Размер поля GosNumber должен содержатьсимвольные значения и максимальный среднестатистический размер атрибута равен 8символам (к примеру, «В 990 АЕ», «КО 6718», «КУ2664»), следовательно, принимая во внимание необходимость избыточностиразмера поля, имеем размер поля NameCondition типа VARCHAR равным 10. Размер поля GarageNumber должен содержать числовыезначения о гаражном номере автотранспорта, следовательно, поле GarageNumber имеет тип INT (см. Таблица 6).
Таблица 6.Название атрибута Имя поля Тип поля Размер Ограничения Уникальный номер единицы автотранспорта IDTransport INT NOT NULL, PRIMARY KEY Уникальный номер автобазы IDAutobase INT NOT NULL, FOREIGN KEY Уникальный номер марки IDMarka INT NOT NULL, FOREIGN KEY Гаражный номер GarageNumber INT NOT NULL, UNIQUE Госномер GosNumber VARCHAR 10 UNIQUE
USE autorem;
GO
CREATE TABLETransport
(IDTransportINT IDENTITY CONSTRAINT TransportPrimary PRIMARY KEY,
IDAutobaseINT,
IDMarka INT,
GarageNumberINT NOT NULL CONSTRAINT GarageNumberTransportUnique UNIQUE,
GosNumberVARCHAR(10) CONSTRAINT GosNumberTransportUnique UNIQUE,
CONSTRAINTTransportAutobaseForeign FOREIGN KEY (IDAutobase)REFERENCES Autobase,        
CONSTRAINTTransportMarkaForeign FOREIGN KEY (IDMarka) REFERENCES Marka);
GO
Состояние единицы (ConditionUnit)
Таблица содержит данные обо всех состояниях автотранспорта.Каждый автотранспорт имеет уникальный номер, который является первичным ключомотношения. Схема отношения имеет вид: R(IDConditionUnit)={IDCondition, IDTransport, Working, Beginning, Theend}, что аналогично R(Уникальныйномер работы)={Уникальный номер единицы автотранспорта, Уникальный номерсостояния единицы, Описание работы, Начало состояния, Конец состояния}.Внешними ключами являются IDCondition (Уникальный номерсостояния единицы), IDTransport (Уникальный номер единицы автотранспорта). Атрибут IDConditionUnit (Уникальный номер работы)должен быть уникален и не равным NULL, т.к. является первичным ключом. Атрибут IDCondition должен быть уникальным ине быть равным NULL, т.к. является внешним ключом отношения. Атрибут IDTransport должен быть уникальным ине быть равным NULL, т.к. является внешним ключом отношения. Размер поля Working должен содержатьсимвольные значения и максимальный среднестатистический размер атрибута должен равен200 символов (например, «покраска переднего левого крыла; покраска крышиа/м; покраска передней левой двери; подготовка к покраске и покраска переднейлевой стойки; чистка хромированных деталей»), следовательно, принимая вовнимание необходимость избыточности размера поля порядка 50 символов, имеемразмер поля Working типа VARCHAR равным 250. Поля Beginning и Theend должны содержать датыпостановки автотранспорта на ремонт и снятие с него, следовательно, типы этихполей определим как DateTime (см. Таблица 7).
Таблица 7.Название атрибута Имя поля Тип поля Размер Ограничения Уникальный номер работы IDConditionUnit INT NOT NULL, PRIMARY KEY Уникальный номер состояния единицы IDCondition INT NOT NULL, FOREIGN KEY Уникальный номер единицы автотранспорта IDTransport INT NOT NULL, FOREIGN KEY Описание работы Working VARCHAR 250 Начало состояния Beginning DateTime Конец состояния Theend DateTime
USE autorem;
GO
CREATE TABLEConditionUnit
(IDConditionUnitINT IDENTITY CONSTRAINT ConditionUnitPrimary PRIMARY KEY,
IDConditionINT,
IDTransportINT,
WorkingVARCHAR(250),
BeginningDateTime,
TheendDateTime,
CONSTRAINTConditionUnitConditionForeign FOREIGN KEY (IDCondition)REFERENCES Condition,              
CONSTRAINTConditionUnitTransportForeign FOREIGN KEY (IDTransport) REFERENCES Transport);
 
Команды языкаманипулирования данными
Команды языкаманипулирования данными (DML)
Три хорошо известныеоперации над кортежами:
1. Добавление,реализуется в SQL с помощью команды, INSERT
2. Правка, реализуется в SQL с помощью команды, UPDATE
3. Удаление, реализуетсяв SQL с помощью команды, DELETE Команда вставки INSERT используется для вводановых строк в таблицу. Команда UPDATE — предназначена для редактирования данных втаблице. Команда DELETE — удаляет записи в таблице.
Команды языка определенияданных (DDL)
Команда ALTER TABLE используется длявнесения изменений в описание таблицы, в том числе для: добавления и изменениястолбцов, добавления, разрешения, запрета и удаления ограничений.
Команда DROP TABLE используется дляудаления таблицы.
/>/>/>/>/>/>/>/>/>/>/>/>/>Команда вставки — INSERT. Команда языка DML — INSERT используется дляввода новых строк в таблицу.Синтаксис команды:
INSERT INTO {[( [псевдоним] [, …n]] |[]}
VALUES([,…n]);
При реализации командыINSERT необходимо отслеживать, чтобы последовательность данных в предложениеVALUES, соответствовала порядку столбцов в таблице.
Заполнение таблицы«Автобаза»
INSERT INTOAutobase(NameAutobase,Address) VALUES('Автобаза №1','г.Воркута,ул.Транспортная,10');
INSERT INTOAutobase(NameAutobase,Address) VALUES('Автобаза №2','г.Воркута, ул.Комсомольская,11');
Заполнениетаблицы"Справочниксостояний"
INSERT INTOCondition (NameCondition) VALUES ('ТО1');
INSERT INTOCondition (NameCondition) VALUES ('ТО2');
INSERT INTOCondition (NameCondition) VALUES ('СО');
INSERT INTOCondition (NameCondition) VALUES ('ТР');
Заполнение таблицы«Справочник технического обслуживания»
INSERT INTOTechnical (NameTechnical,TO1,TO2) VALUES ('легковые', 3500, 14000);
INSERT INTOTechnical (NameTechnical, TO1, TO2) VALUES ('автобусы',2600,13000);
INSERT INTOTechnical (NameTechnical,TO1,TO2) VALUES ('грузовые, автобусы на базе грузовыхавтомобилей',2200,11000);          
Заполнение таблицы«Тип марок автотранспорта»
INSERT INTOTypeMarka (NameTypeMarka, IDTechnical) VALUES ('легковая',1);
INSERT INTOTypeMarka (NameTypeMarka, IDTechnical) VALUES ('мазутовоз',3);
INSERT INTOTypeMarka (NameTypeMarka, IDTechnical) VALUES ('молокоцистерна',3);
INSERT INTOTypeMarka (NameTypeMarka,IDTechnical) VALUES ('поливомоечная',3);
INSERT INTOTypeMarka (NameTypeMarka, IDTechnical) VALUES ('самосвал',3);
INSERT INTOTypeMarka (NameTypeMarka, IDTechnical) VALUES ('спец.фургон',3);
Заполнениетаблицы"Маркаавтотранспорта"
INSERT INTO Marka(IDTypeMarka, NameMarka, Capacity) VALUES (1,'ГАЗ-31029',0.00);
INSERT INTOMarka (IDTypeMarka, NameMarka, Capacity) VALUES(1, УАЗ-2206',0.00);
INSERT INTOMarka (IDTypeMarka, NameMarka, Capacity) VALUES (22,'КАВЗуд ЛАЗ',0.00);
Заполнениетаблицы"Автотранспорт"
INSERT INTOTransport (IDAutobase, IDMarka, Garage Number, Gos Number) VALUES (1,294,502,'11ко3813');
INSERT INTOTransport (IDAutobase, IDMarka, GarageNumber, GosNumber) VALUES(1,294,837,'11ко3866');
INSERT INTOTransport (IDAutobase, IDMarka, Garage Number, GosNumber) VALUES(1,483,125,'14-51КМО');
INSERT INTOTransport (IDAutobase, IDMarka, GarageNumber, GosNumber) VALUES (1,483,152,'14-52КМО');
Заполнение таблицы«Состояние единицы»
INSERT INTOCondition Unit (IDCondition, IDTransport, Working, Beginning, Theend) VALUES(2,1,'покраска переднего левого крыла; покраска крыши а/м','2008.09.15','2008.09.16');
INSERT INTOConditionUnit (IDCondition, IDTransport, Working, Beginning, Theend) VALUES(2,2,'покраска передней левой двери; подготовка к покраске и покраска передней левой стойки','2008.09.15','2008.09.16');
INSERT INTOConditionUnit (IDCondition, IDTransport, Working, Beginning, Theend) VALUES(2,3,'чистка хромированных деталей','2008.09.15','2008.09.16');

Запросы к базе данных
Команда SELECT позволяет реализовывать всеоператоры реляционной алгебры над отношениями (таблицами) базы данных. />Обязательными предложениямикоманды SELECT являются предложения SELECT и FROM./>В самой простой форме, команда SELECT используется длятого, чтобы извлечь информацию из таблицы. Не обязательно использовать всепредложения команды, но обязательно соблюдать их порядок следования, то естьпредложение ORDER BY всегда завершает команду SELECT, а предложение HAVINGвсегда стоит после GROUP BY, которое, в свою очередь, не может предшествовать предложениюWHERE и т.п.
Синтаксис команды SELECT:
SELECT [DISTINCT] *|[] [,] [,…n]
FROM [, …n]| ()
[WHERE ]
[GROUP BY
[HAVING ]
[ORDER BY [,…n]]
Команда SELECT позволяет извлечь определеннуюинформацию из таблицы. Например, просмотреть содержимое одного или несколькихстолбцов, присвоив столбцам вывода имена, отличные от имен атрибутов в таблице,но более информативные. Чтобы вывести содержание всех столбцов, можно заменитьих перечисление знаком *. В этом случае столбцы будут выведены в том порядке, вкотором они следуют в таблице. Если вы хотите изменить порядок, то придетсяперечислить имена столбцов в нужном порядке.
Предложение FROMиспользуется для указания перечня таблиц, используемых в запросе и условия ихсоединения.
Выборвсехавтобаз
Select * fromAutoBase
Выбор Гаражного номера,Госномера из таблицы «Автотранспорт», Имя марки из таблицы«Марка автотранспорта», Тип марки из таблицы «Тип маркиавтотранспорта»
Select T.IDTransport,T.GarageNumber[Гар.№], TM.NameTypeMarka+' '+M.NameMarka+' '+T.GosNumber[Тип марки,Имя марки, Гос.номер] from Transport T INNER JOIN Marka M ONT.IDmarka=M.IDmarka INNER JOIN TypeMarka TM ON M.IDTypeMarka=TM.IDTypeMarka where (T.IDAutobase=:IDAutoBase) ORDER BY T.GarageNumber;
Выбор Даты постановки времонт, Дата снятия с ремонта, Вид работ
SelectLTrim(Str(Day(Beginning)))+'.'+LTrim(Str(Month(Beginning)))+'.' +LTrim(Str(Year(Beginning)))[Датапост.],LTrim(Str(Day(Theend)))+'.' +LTrim(Str(Month(Theend)))+'.'+LTrim(Str(Year(Theend)))[Датавых.], Working[Вид работ] from ConditionUnit where (IDTransport=:IDTransport);
Согласно приведенным вышезапросам имеем некоторые выходные данные:
/>

Хранимые процедуры
 
Хранимаяпроцедура ещё один объект базы данных, которая представляет собой набороткомпилированных операторов SQL. Хранимая процедура не содержит информации избазы данных, но содержит ссылки на базовые таблицы, где хранятся нужные данные. Хранимые процедуры позволяют выделять какие-либо правила вотдельную структуру, которые затем могут использоваться многими приложениями.
В хранимые процедуры вводятся аргументы, возвращаютсярезультирующие наборы данных.Если хранимая процедура не является триггером, то онавызывается приложением явно.
При создании процедур необходимопридерживаться следующих правил: во времявыполнения хранимой процедуры все объекты, на которые она ссылается, должныприсутствовать в базе данных. В хранимых процедурах нельзя применять операторысоздания объектов: CREATE PROCEDURE, CREATE TRIGGER, CREATE VIEW.
Синтаксискоманды:
CREATE PROC[EDURE ]имя_процедуры [; число ]
[ {@параметр тип_данных }
[VARYING ] [ = значение_по_умолчанию ] [ OUTPUT ] ] [,...n ]
[ WITH { RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION } ]
AS оператор_SQL [ ...n ]
OUTPUT – означает, чтосоответствующий параметр может быть использован для возвращения данных изхранимой процедуры.
VARYING – определяет, чтовыходным параметром будет результирующее множество (используется совместно спараметром OUTPUT).
RECOMPILE – предписываетвыполнять перекомпиляцию кода процедуры при ее запуске.
ENCRUPTION – предписываетсерверу выполнить кодирование процедуры, сделав ее содержимое недоступным дляпользователя. Автору процедуры при этом надо позаботиться о наличии у негоисходного текста процедуры.
AS – индикатор началасобственно кода процедуры.
Вызовпроцедуры (исключение составляют триггеры) осуществляется по команде EXEC.
Синтаксискоманды EXEC
EXEC []
— Создадим хранимую процедуру для таблицы «Маркаавтотранспорта»
CREATE PROC PMarkaINSERTFirst
@IDTypeMarka INT,
@NameMarka VARCHAR (15),
@Capacity FLOAT
AS
INSERT INTO Marka(IDTypeMarka,NameMarka,Capacity)VALUES(@IDTypeMarka, @NameMarka,@Capacity);
Теперь заполнение таблицы «Марка автотранспорта»через хранимые процедуры будет иметь следующий вид:
EXEC PMarkaINSERTFirst 1,'ГАЗ-31029',0.00
EXEC PMarkaINSERTFirst 22,'КАВЗ, ПАЗ',0.00
EXEC PMarkaINSERTFirst 22,'КАВЗуд ЛАЗ',0.00
EXEC PMarkaINSERTFirst 22,'КАВЗуд ЛАЗ',0.00
EXEC PMarkaINSERTFirst 22,'КАВЗ, ПАЗ',0.00
Создание хранимые процедуры для запросов Select
Создание хранимой процедуры для таблицы «Маркаавтотранспорта»
— Выбор всех автобаз
CREATE PROC PAutoBaseSelect
AS
Select * from AutoBase
Теперь выборка всех автобаз будет иметь следующий вид
Exec PAutoBaseSelect;
Выбор Гаражного номера, Госномера из таблицы«Автотранспорт», Имя марки из таблицы «Маркаавтотранспорта», Тип марки из таблицы «Тип марки автотранспорта»
CREATE PROC PTransportSelect1
@IDAutoBase INT
AS
Select T.GarageNumber[Гар.№],T.GosNumber[Гос.номер], M.NameMarka[Имя марки], TM.NameTypeMarka[Тип марки] fromTransport T INNER JOIN Marka M ON T.IDmarka=M.IDmarka
INNER JOIN TypeMarka TM ONM.IDTypeMarka=TM.IDTypeMarka where (T.IDAutobase=@IDAutoBase);
Теперь выбор Гаражного номера, Госномера из таблицы«Автотранспорт», Имя марки из таблицы «Маркаавтотранспорта», Тип марки из таблицы «Тип марки автотранспорта»будет иметь следующий вид
Exec PTransportSelect1 1;
Выбор Даты постановки в ремонт, Дата снятия с ремонта, Видработ
CREATE PROC PConditionUnit1
@IDTransport INT
AS
SelectLTrim(Str(Day(Beginning)))+'.'+LTrim(Str(Month(Beginning)))+'.'+LTrim(Str(Year(Beginning)))[Дата пост.],
LTrim(Str(Day(Theend)))+'.'+LTrim(Str(Month(Theend)))+'.'+LTrim(Str(Year(Theend)))[Дата вых.], Working[Вид работ]
from ConditionUnit where(IDTransport=@IDTransport);
Теперь Выбор Даты постановки в ремонт, Дата снятия сремонта, Вид работ примет следующий вид
Exec PConditionUnit1 1;

Триггеры
Триггер– это специальный тип хранимой процедуры, которая автоматически выполняется привозникновении некоторого события (попытке выполнить операции удаления,добавления, редактирования). Как и любой объект базы данных, триггер создаетсяс помощью команды CREATE/>Cинтаксис команды создания триггера
CREATE TRIGGER
ON
[WITH ENCRYPTION]
{{{FOR|AFTER}}|INSTEAD OF}
[WITH APPEND]
[NOT FOR REPLICATION]
AS

….
….
….>,
где
ON — имяобъекта, для которого триггер используется.
WITH ENCRYPTION –кодирует текст представления.
WITH APPEND –используется для совместимости с версией 6.5
NOT FOR REPLICATION –меняет правила запуска триггера. Такой триггер не будет стартовать привыполнении над таблицей операций, связанных с репликацией данных.
Присрабатывании триггера создаются таблицы INSERTED, DELETED. INSERTED – дляхранения добавленных записей, DELETED – для хранения удаленных записей. Таблицы видимы толькодля триггера и существуют только при выполнении триггера.
Создание триггера для таблицы «Состояниеединицы».Проверка на ввод пустой даты окончания ТО или ремонта и замена еена 9999.01.01
CREATE TRIGGER ConditionUnitTerm
ON ConditionUnit
FOR INSERT,UPDATE
AS
IF EXISTS
( SELECT 'TRUE' FROM ConditionUnit WHERETheend='1900.01.01')
BEGIN
UPDATE ConditionUnit SET Theend='9999.01.01'WHERE Theend='1900.01.01'
END

Заключение
В результате курсового проекта была реализована база данныхдля процесса «Учет ремонта и ТО автотранспорта». Были созданы таблицы, в которых были определены ограничения на уровнестолбцов и на уровне самой таблицы, и занесены необходимые данные. Изучениепредметной области позволило выделить и реализовать основные запросы ипредставления к базе данных.
Для реализации целостности базы данных был созданы триггер,изменяющий введенную дату окончания ремонта или ТО.
Реализованная база данных позволит в дальнейшем хранитьнеобходимую информацию, добавлять данные и редактировать их. Эта база данныхможет быть использована в дальнейшем для разработки информационной системы Учетремонта и ТО автотранспорта», с целью эффективнойорганизации работы отдела ПТО УАТХ.

Список литературы
 
1.        Томас Конноли, Каролин Бегг. Базы данных. Проектирование, реализация исопровождение. Теория и практика: Пер. с англ. М.: Вильямс> 2001.-1440с.
2.        К. Дж. Дейт. Введение в системы баз данных.: Пер. с англ. М.: Вильямс?2001.-1072с.
3.        Г.Н. Калянов. Консалтинг в автоматизации бизнес процессов. М.: Горячаялиния — Телеком, 2002. — с.320.: ил.

Приложение
Приложение
/>


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Карл III король Наварры
Реферат О лексикографическом отражении американского стандарта английского литературного языка
Реферат The Controversy Over Abortion Essay Research Paper
Реферат Gender studies, E-learning English, аdvantages and disadvantages
Реферат Рационализация затрат на строительно-монтажные работы на примере ООО "Ямалспецавтострой"
Реферат Особенности воспитательной работы в спецшколе-интернате
Реферат Основи психології та педагогіки
Реферат Роль военно-воздушных сил США в годы Второй Мировой войны
Реферат The Impact That Stalin Had On Russia
Реферат «Лекарственные растения Алтайского края»
Реферат C copyright Вадим Чернобров. Разрешено только размещение в электронных сетях без права извлечения коммерческой выгоды
Реферат Песни Битлз взгляд через годы
Реферат Экзаменационные билеты по инвестициям
Реферат Структура сетей и протоколов
Реферат Balken Reigon Essay Research Paper Balkan RegionThe