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

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

МІНІСТЕРСТВО ОСВІТИ
Ухтинський державний технічний університет
Кафедра ІСТ
Курсовий проект
Дисципліна: «Проект управління базами даних»
Тема:
«Розробка проекту управління базами даних для процесу« Облік ремонту та ТО автотранспорту »»
Виконав
студент групи ІСТ-2-04
Петров М.В.
Перевірила
доцент кафедри ІСТ, к. т. н.
Миколаєва Н.А.
Ухта 2008

Зміст
Введення
Короткий опис предметної області
Обгрунтування вибору SQL
Створення бази даних
Створення таблиць
Команди мови маніпулювання даними
Запити до бази даних
Збережені процедури
Тригери
Висновок
Список літератури
Додаток

Введення
Темою даного курсового проекту є реалізація проекту бази даних для процесу «Облік ремонту та ТО автотранспорту».
Актуальність поставленої задачі полягає в необхідності розробити єдину, найбільш повну структуру даних, необхідних для ефективної роботи системи з метою організації обліку ремонту і технічного обслуговування автотранспорту.
Основним завданням курсового проекту, є створення таблиць бази даних і заповнення цих таблиць даними, забезпечення цілісності бази даних шляхом створення декларативних обмежень і процедурних обмежень, розробка основних запитів і подань для отримання необхідної користувачу інформації.
Метою курсового проекту, є реалізація бази даних для автоматизованої системи, яка обслуговує процес обліку ремонту та ТО автотранспорту.
Таким чином, для досягнення мети даного проекту була пророблена робота такого змісту:
- Короткий опис предметної області - в цьому розділі курсового проекту описуються основні функції відділу реалізації теплопостачальної організації;
- Обгрунтування вибору SQL - в цьому розділі курсового проекту описаний універсальний мова для створення, модифікації й керування даними в реляційних базах даних;
- Створення таблиць бази даних - у розділі описується процес створення таблиць, вибір типу даних, створення декларативних обмежень, описані основні команди мови маніпулювання даних;
- Запити до бази даних - у цьому розділі курсового проекту описані основні запити до бази даних, які дозволяють отримати необхідну для користувача інформацію;
- Подання - в цьому розділі курсового проекту описано створення шаблонів висновку інформації, побудованих на запитах до бази даних;
- Тригери - в цьому розділі курсового проекту описаний спеціальний тип збереженої процедури, який дозволяє забезпечити цілісність даних, запобігаючи несанкціоноване або неправильне їх зміна.

Короткий опис предметної області
Керує всіма роботами з ТО і ремонту рухомого складу начальник виробництва. Оперативне керівництво виробництвом робіт на постах обслуговування і ремонту автомобілів здійснює диспетчер виробництва, безпосередньо підлеглий начальнику виробництва. Диспетчер виробництва заносить всю інформацію по ремонту та ТО автотранспорту в журнал «Облік ремонту і технічного обслуговування рухомого складу».
Диспетчеру в оперативному порядку підкоряються всі працюючі на постах ТО і ремонту автомобілів, а за відсутності начальника виробництва на роботі йому підпорядковується весь колектив виробництва.
При прийнятті рішень з управління виробництвом диспетчер враховує: загальний обсяг робіт, який необхідно виконати, які автомобілі потребують обслуговування і ремонту в першу чергу, зміст ремонту по кожному автомобілю, наявність виробничого персоналу та запасних частин і агрегатів, стан технологічного обладнання, час виходу автомобілів на лінію та ін
Інформацію про те, які роботи необхідно виконувати, диспетчер отримує при знайомстві з незавершеним виробництвом при прийомі зміни, за записами в листках обліку, які він отримує за даними постів діагностики та повідомленнями окремих робітників у процесі виробництва. За записами в листках обліку він становить оперативний план роботи, в який записує всі автомобілі, які потребують ТО і ремонту. Роботи з ТО-1 проводяться в межсменное час, роботи з ТО-2, в робочий час з простоєм для всіх видів рухомого складу.
Якщо при виконанні обслуговування або ремонту робочий виявляє необхідність виконання такої роботи, яка не записана в листку обліку, він повідомляє про це свого керівника або диспетчеру виробництва, виконує роботу, і її записують в листок.
Технічне обслуговування автомобілів в АТП виробляють на основі планів-графіків, складених для кожного автомобіля з середньодобового пробігу, нормативів періодичності ТО та умов експлуатації на даному підприємстві. Технічна служба вносить корективи в план-графік у залежності від фактичного пробігу автомобіля і його стану. Роботи з ТО ведуть бригадним або агрегатно-дільничним методом.
Облік і звітність по виконанню технічного обслуговування і ремонту ведуть по гаражним листам на кожен автомобіль, а також заявками, які складаються водієм. При наявності на підприємстві засобів діагностування виконуються діагностичні роботи оформляють у вигляді діагностичної карти певної форми, де призводять перевіряються показники автомобіля. Гаражні листи, заявки і діагностичні карти стверджують майстри і начальники ділянок. Оформлені документи надходять в плановий відділ або центр управління виробництвом, де їх обробляють, систематизують і використовують у звітності підприємства.
Обгрунтування вибору SQL
SQL - скорочення від Structured Query Language (Мова структурованих запитів) - це універсальний мова для створення, модифікації й керування даними в реляційних базах даних.
Реляційна модель була запропонована в 1970 році І.Ф. Коддом, що працював у дослідницькій лабораторії IBM в Сан-Хосе, Каліфорнія, і розвивалася наступні десять років в університетах і наукових організаціях. SQL - один з декількох мов, що виросли з цієї ідеї, в даний час практично повністю панує у світі реляційних баз даних. Виробники систем управління реляційними базами даних, спочатку використовували інші мови, сьогодні повністю переорієнтувалися на SQL.
SQL - це мова, на якому можна «розмовляти» з реляційними базами даних. Всі системи управління базами даних призначені для зберігання і обробки інформації. Реляційний підхід до управління базами даних заснований на математичній моделі, що використовує методи реляційної алгебри та реляційного числення.
Визначення реляційної системи, так само, як і правила Кодда, вимагає щоб весь діалог з базою даних вівся на одній мові - іноді його називають загальним підмовою даних. У світі комерційних систем управління базами даних такої мова отримала назву SQL.
SQL використовується для маніпуляції з даними (data manipulation) - вибірки і модифікації, визначення даних (data definition) і адміністрування даних (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 TABLE Autobase
(IDAutobase INT IDENTITY CONSTRAINT AutobasePrimary PRIMARY KEY,
NameAutobase VARCHAR (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 TABLE Condition
(IDCondition INT IDENTITY CONSTRAINT ConditionPrimary PRIMARY KEY,
NameCondition VARCHAR (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 TABLE Technical
(IDTechnical INT IDENTITY CONSTRAINT TechnicalPrimary PRIMARY KEY,
NameTechnical VARCHAR (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 TABLE TypeMarka
(IDTypeMarka INT IDENTITY CONSTRAINT TypeMarkaPrimary PRIMARY KEY,
IDTechnical INT NOT NULL,
NameTypeMarka VARCHAR (35) NOT NULL CONSTRAINT NameTypeMarkaUnique UNIQUE
CONSTRAINT TypeMarkaTechnicalForeign 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 IDENTITY CONSTRAINT MarkaPrimary PRIMARY KEY,
IDTypeMarka INT NOT NULL,
NameMarka VARCHAR (15) NOT NULL,
Capacity FLOAT,
CONSTRAINT MarkaTypeMarkaForeign 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 TABLE Transport
(IDTransport INT IDENTITY CONSTRAINT TransportPrimary PRIMARY KEY,
IDAutobase INT,
IDMarka INT,
GarageNumber INT NOT NULL CONSTRAINT GarageNumberTransportUnique UNIQUE,
GosNumber VARCHAR (10) CONSTRAINT GosNumberTransportUnique UNIQUE,
CONSTRAINT TransportAutobaseForeign FOREIGN KEY (IDAutobase) REFERENCES Autobase,
CONSTRAINT TransportMarkaForeign 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 TABLE ConditionUnit
(IDConditionUnit INT IDENTITY CONSTRAINT ConditionUnitPrimary PRIMARY KEY,
IDCondition INT,
IDTransport INT,
Working VARCHAR (250),
Beginning DateTime,
Theend DateTime,
CONSTRAINT ConditionUnitConditionForeign FOREIGN KEY (IDCondition) REFERENCES Condition,
CONSTRAINT ConditionUnitTransportForeign 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 INTO Autobase (NameAutobase, Address) VALUES ('Автобаза № 1', 'г.Воркута, ул.Транспортная, 10');
INSERT INTO Autobase (NameAutobase, Address) VALUES ('Автобаза № 2', 'г.Воркута, вул.Комсомольська, 11');
Заповнення таблиці "Довідник станів "
INSERT INTO Condition (NameCondition) VALUES ('ТЕ1');
INSERT INTO Condition (NameCondition) VALUES ('ТО2');
INSERT INTO Condition (NameCondition) VALUES ('СВ');
INSERT INTO Condition (NameCondition) VALUES ('ТР');
Заповнення таблиці "Довідник технічного обслуговування"
INSERT INTO Technical (NameTechnical, TO1, TO2) VALUES ('легкові', 3500, 14000);
INSERT INTO Technical (NameTechnical, TO1, TO2) VALUES ('автобуси', 2600,13000);
INSERT INTO Technical (NameTechnical, TO1, TO2) VALUES ('вантажні, автобуси на базі вантажних автомобілів', 2200,11000);
Заповнення таблиці "Тип марок автотранспорту"
INSERT INTO TypeMarka (NameTypeMarka, IDTechnical) VALUES ('легкова', 1);
INSERT INTO TypeMarka (NameTypeMarka, IDTechnical) VALUES ('мазутовози', 3);
INSERT INTO TypeMarka (NameTypeMarka, IDTechnical) VALUES ('молокоцистерн', 3);
INSERT INTO TypeMarka (NameTypeMarka, IDTechnical) VALUES ('Полівомоєчниє', 3);
INSERT INTO TypeMarka (NameTypeMarka, IDTechnical) VALUES ('самоскид', 3);
INSERT INTO TypeMarka (NameTypeMarka, IDTechnical) VALUES ('спец.фургон', 3);
Заповнення таблиці "Марка автотранспорту "
INSERT INTO Marka (IDTypeMarka, NameMarka, Capacity) VALUES (1, "ГАЗ-31029", 0.00);
INSERT INTO Marka (IDTypeMarka, NameMarka, Capacity) VALUES (1, УАЗ-2206 ', 0.00);
INSERT INTO Marka (IDTypeMarka, NameMarka, Capacity) VALUES (22, 'КАВЗуд ЛАЗ', 0.00);
Заповнення таблиці "Автотранспорт"
INSERT INTO Transport (IDAutobase, IDMarka, Garage Number, Gos Number) VALUES (1,294, 502, '11ко3813 ');
INSERT INTO Transport (IDAutobase, IDMarka, GarageNumber, GosNumber) VALUES (1,294, 837, '11ко3866 ');
INSERT INTO Transport (IDAutobase, IDMarka, Garage Number, GosNumber) VALUES (1,483, 125, Пул 14-51КМО ');
INSERT INTO Transport (IDAutobase, IDMarka, GarageNumber, GosNumber) VALUES (1,483, 152, Пул 14-52КМО ');
Заповнення таблиці "Стан одиниці"
INSERT INTO Condition Unit (IDCondition, IDTransport, Working, Beginning, Theend) VALUES (2,1, 'фарбування переднього лівого крила; фарбування даху а / м', '2008 .09.15 ', '2008 .09.16');
INSERT INTO ConditionUnit (IDCondition, IDTransport, Working, Beginning, Theend) VALUES (2,2, 'фарбування передньої лівої двері; підготовка до фарбування і фарбування передньої лівої стійки', '2008 .09.15 ', '2008 .09.16');
INSERT INTO ConditionUnit (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 * from AutoBase
Вибір Гаражного номери, держномер з таблиці "Автотранспорт", Ім'я марки з таблиці "Марка автотранспорту", Тип марки з таблиці "Тип марки автотранспорту"
Select T. IDTransport, T. GarageNumber [Гар. №], TM.NameTypeMarka + '' + M. NameMarka + '' + T. GosNumber [Тип марки, Ім'я марки, Гос.номер] from Transport T INNER JOIN Marka M ON T. IDmarka = M. IDmarka INNER JOIN TypeMarka TM ON M. IDTypeMarka = TM.IDTypeMarka where (T. IDAutobase =: IDAutoBase) ORDER BY T. GarageNumber;
Вибір Терміни постановки в ремонт, Дата зняття з ремонту, Вид робіт
Select LTrim (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 [Тип марки] from Transport T INNER JOIN Marka M ON T. IDmarka = M. IDmarka
INNER JOIN TypeMarka TM ON M. IDTypeMarka = TM.IDTypeMarka where (T. IDAutobase = @ IDAutoBase);
Тепер вибір Гаражного номери, держномер з таблиці "Автотранспорт", Ім'я марки з таблиці "Марка автотранспорту", Тип марки з таблиці "Тип марки автотранспорту" буде мати наступний вигляд
Exec PTransportSelect1 1;
Вибір Терміни постановки в ремонт, Дата зняття з ремонту, Вид робіт
CREATE PROC PConditionUnit1
@ IDTransport INT
AS
Select LTrim (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

Синтаксису команди створення тригера

CREATE TRIGGER <ім'я тригера>
ON <ім'я подання або таблиці>
[WITH ENCRYPTION]
{{{FOR | AFTER} <[DELETE ][,][ INSERT] [,] [UPDATE]>} | INSTEAD OF}
[WITH APPEND]
[NOT FOR REPLICATION]
AS
<SQL-ОПЕРАТОР
....
....
....>,
де
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 WHERE Theend = '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.: Іл.

Додаток
Додаток

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
116.6кб. | скачати


Схожі роботи:
Розробка проекту бази даних для АІС Облік Проектів
Розробка проекту бази даних для АІС Облік Проектів 2
Політика інформаційної безпеки для системи Облік ремонту та ТО автотранспорту
Реляційна модель даних у системах управління базами даних
Системи управління базами даних 2
Системи управління базами даних 2
Системи управління базами даних
Системи управління базами даних
Системи управління базами даних
© Усі права захищені
написати до нас