Розробка бази даних автоінспекції
Проектування інформаційної системи для супроводу баз даних. Моделі запиту даних співробітником автоінспекції та обробки запиту про машини та їх власників. База даних за допомогою SQL-сервер. Реалізація запитів, процедур, тригерів і представлення.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 18.06.2012 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Міністерство науки і освіти України
Сумський державний університет
Кафедра інформатики
Курсова робота
з дисципліни
«Бази даних і інформаційні системи»
на тему:
«Розробка бази даних автоінспекції»
Виконала студентка групи ПМ-61
Г.В. Петрусенко
Суми 2008
Зміст
- Постановка задачі
- Вступ
- Проектування інформаційної системи
- Побудова діаграм потоків даних DFD
- Побудова 0-рівня(семантика і опис побудови)
- Побудова 1-рівня. (семантика і опис побудови)
- Побудова ER-діаграми
- Нормалізація
- Створення бази даних за допомогою SQL-сервера
- Створення баз даних і таблиць
- Забезпечення цілісності даних: опис бізнес правил і їх реалізація
- Заповнення таблиць даними
- Робота з даними таблиць бази даних
- Висновок
- Список використаних ресурсів
- Постановка задачі
Служба автоінспекції має всі дані про автовласників і їх автомобілі.
Створити базу даних, яка фіксувала б всі дані і надавала наступні відомості:
- скільки автомобілів має кожен власник;
- прізвища власників, автомобілі яких не пройшли техогляд;
- марка автомобіля, що користується найбільшою популярністю.
Вступ
Сучасний ріст популярності SQL є однією з самих важних тенденцій в сучасній комп'ютерній промисловості. На сьогоднішній день SQL підтримують більше 100 СУБД, працюючих на персональних комп'ютерах і навіть на персональних ПК. Був прийнятий, а потім двічі доповнений офіціальний міжнародний стандарт на SQL. Важлива властивість - праця з різноманітними джерелами даних. На сьогоднішній день мова SQL є єдиним визнаним стандартом мови баз даних. З роками ( а історія починається вже біля 30 років) язик розвивається і ускладнюється. Хороше володіння мовою SQL є обов'язковою складовою для професіональних розробників додатків баз даних і їх адміністраторів.
інформаційний база данні тригер
Проектування інформаційної системи
Побудова діаграми потоків даних DFD
Побудова 0-го рівня
Мал. 1. Концептуальна модель запиту даних співробітником автоінспекції
Вище указана схема відображає наступні дії:
· Адміністрація, якій необхідні певні данні, робить запит;
· Запит обробляє співробітник;
· Адміністрація отримує необхідну інформацію.
Опис роботи
1. Запустимо середовище побудови DFD-діаграм;
2. На панелі інструментів обираємо об'єкт Terminator і розміщаємо його на робочій області;
3. В контекстному меню обираємо пункт Edit Terminator;
4. У вікні, що з'явилося вводимо назву сутності «Адміністрація» і натискаємо ok.
5. На панелі інструментів обираємо об'єкт Process і розміщаємо його на робочій області;
6. В контекстному меню обираємо пункт Edit Process;
7. У вікні, що з'явилося вводимо ім'я процесу «Обробка запиту» і натискаємо ok;
8. На панелі інструментів обираємо об'єкт Data Flow і зв'язуємо цим потоком даних процес та сутність;
9. У контекстному меню обираємо пункт Edit Data Flow;
10. У вікні, що з'явилось вводимо ім'я потоку даних «Запит адміністрації» і натискаємо ok;
Аналогічно пункту 8-10 створюємо ще один потік даних під назвою «Відповідь на запит адміністрації».
Побудова 1-го рівня
Мал. 2. Концептуальна модель обробки запиту про машини та їх власників
Вище вказана схема відображає наступні дії:
· Адміністрація бажає отримати деяку інформацію, вона робить запит;
· Запит обробляється співробітником, на предмет того яка інформація потрібна адміністрації;
· В залежності від виду інформації співробітник може зробити три види запиту:
o Запит, що до того скільки автомобілів має кожен власник;
o Запит, що до того які власники пройшли техогляд;
o Запит, що до того яка марка машини є найпопулярнішою;
· Якщо адміністрація робить запит, що до того скільки автомобілів має кожен власник, то співробітник обробляє цей запит і звертається до двох сховищ під назвою «Дані по власникам машин» і «Дані про марки машин»;
· Він знаходить необхідну інформацію, створює відповідь на запит і надає інформацію адміністрації;
· Якщо адміністрація робить запит, що до того які власники пройшли тех. Огляд, то співробітник обробляє цей запит і звертається до сховища під назвою «Дані про техогляд»;
· Він знаходить необхідну інформацію, створює відповідь на запит і надає інформацію адміністрації;
· Якщо ж адміністрація робить запит, що до того яка марка машини є найпопулярнішою, то співробітник обробляє цей запит і звертається до сховища даних під назвою «Дані про марки машин»;
· Він знаходить необхідну інформацію, створює відповідь на запит і надає інформацію адміністрації.
Опис роботи
1. На діаграмі 0-го рівня у контекстному меню процесу «Обробка запиту» вибираємо пункт Edit Process; у вікні, що з'явилося прибираємо галочку на проти слова Lowest Level, натискаємо Ok;
2. Відкривається новий рівень, де ми створюємо DFD- діаграму 1-го рівня (Oder Processing);
3. На панелі інструментів обираємо об'єкт Process і помістимо його на робочу область;
4. Клацнемо правою кнопкою миші на об'єкті Process, виберемо пункт меню Edit Process;
5. У вікні, що з'явилося, введемо ім'я процесу: «Обробка запиту»і натискаємо ok;
6. Аналогічно пункту 3-5 помістимо на робочу область ще три процеси з назвами:
a. «формування інформації стосовно машин та їх власників»;
b. «формування інформації про популярність марки»;
c. «формування інформації про власників які про йшли або не пройшли техогляд»;
7. На панелі інструментів обираємо об'єкт Data Store - сховище даних, та поміщаємо його на DFD- діаграму;
8. Викликаємо контекстне меню, за допомогою правої кнопки миші та обираємо пункт Edit Data Store;
9. У вікні, що з'явилося, введемо ім'я сховища даних: «Данні по власникам машин» і натискаємо ok;
10. Аналогічно пункту 7-9 помістимо на DFD- діаграму ще одне сховище даних під назвою «Данні про марки машин»;
11. Тепер необхідно з'єднати процеси, сутності та сховища даних. Для цього необхідно обрати на панелі інструментів об'єкт Data Flow та помістити його на діаграму, зв'язуючи сутність та процес 1.1;
12. Викликаємо контекстне меню для об'єкту Data Flow на обираємо пункт меню Edit Data Flow;
13. У вікні, що з'явилося введемо ім'я потоку: «Запит адміністрації» і натискаємо ok;
14. Аналогічно пунктам 11-13 помістимо на діаграму та назвемо потоки даних;
15. За допомогою кнопки «Toad Data Modeler» можна змінити місце положення об'єктів автоматично, користуючись функцією авто-розміщення (autolayout);
16. За допомогою кнопки «HTML Report» можна автоматично скласти детальний звіт показаної DF діаграми.
Побудова ER-діаграми
Письмове обґрунтування фізичної організації даних
Всю нашу інформацію про книги, кількість і місцезнаходження будемо зберігати в 3-х таблицях:
· VladelecMashin
· MarkaMashin
· TehOsmotr
В таблиці VladelecMashin ми будемо зберігати всю цікавлячу нас інформацію про власників машин:
· Прізвище власника (Familia)
· Адреса (Adress)
· Код паспорту (KodPasporta )
В таблиці MarkaMashin ми будемо зберігати інформацію про самі машини:
· Марка машини (MarkaMashin)
· Номер машини (NomerMashin)
В таблиці TehOsmotr ми будемо зберігати всю цікавлячи інформацію про техогляд, який пройшли або не пройшли машини:
· Чи пройшли техогляд машини (NalichieTehOsmotra)
· Коли був пройдений техогляд (DataPrTehOsmotra)
· Номер техогляду (NomerTehOsmotra)
В такому вигляді дуже зручно зберігати всі наші дані , так як таблиці охоплюють всю інформацію, а також ми можемо легко знаходити інформацію.
Мал. 3. ERD модель бази даних про машини та їх власників
Сутність |
Атрибут |
Стовпчик |
Мотивація |
Тип даних |
Примітка |
|
VladelecMashin |
Familia |
Familia |
Прізвище |
Char(50) |
||
VladelecMashin |
Adres |
Adres |
Адреса |
Char(100) |
||
VladelecMashin |
KodPasporta |
KodPasporta |
Код паспорта |
Char(10) |
Primary Key |
|
MarkaMashin |
NomerMashin |
NomerMashin |
Номер Машини |
Char(20) |
Primary Key |
|
MarkaMashin |
MarkaMashin |
MarkaMashin |
Марка Машини |
Char(20) |
||
MarkaMashin |
KodPasporta |
KodPasporta |
Код паспорта |
Char(10) |
Мігруючий атрибут(FK) |
|
TehOsmotr |
DataTehOsmotra |
DataTehOsmotra |
Дата техогляду |
Char(20) |
||
TehOsmotr |
NalichieTehOsmotra |
NalichieTehOsmotra |
Чи пройшов техогляд |
Integer |
||
TehOsmotr |
NomerMashin |
NomerMashin |
Номер машини |
Char(20) |
Мігруючий атрибут |
|
TehOsmotr |
NomerTehOsmotra |
NomerTehOsmotra |
Номер техогляду |
Integer |
Primary Key |
Табл. 1. Фізична побудова
Опис порядку побудови ER-діаграми
1. Запускаємо програму “CASEstudio”, створюємо нову модель, тобто на панелі інструментів обираємо “File” “New Model” або натискуємо комбінацію клавіш “Ctrl+N”, потім обираємо “Firebird” і натискуємо кнопку „Ok”;
2. Починаємо створювати об'єкти. На панелі інструментів натискуємо на об'єкт під назвою «Entity» (сутність). Двічі натискаємо по об'єкту мишкою, або викликаємо контекстне меню правою кнопкою і обираємо пункт “Edit Entity” , змінюємо назву «Entity Name» (ім'я сутності ) на «vladelecMashin» , далі ми в цьому ж контекстному меню натискаємо на клавішу «Add», з'являється ще одне вікно де ми в “Attribute Name” записуємо “KodPasporta” , а в “Datatype” ставимо “Char(10)” і ставимо галочки біля властивостей “Key” і ”Not null” , і натискуємо клавішу “Ok” , потім натискуємо на кнопку “Ok+Add” в графі “Attribute Name” ми записуємо “Familia”, в графів “Datatype” обираємо тип “Char(50)”, і знову натискуємо на кнопку “Ok+Add” в графі “Attribute Name” ми записуємо “Adress”, в графів “Datatype” обираємо тип “Char(100)” і натискуємо кнопку “Ok”, і знову кнопку “Ok” ;
3. Далі на панелі інструментів знаходимо “Display Level” і обираємо пункт “Attributes”, після цього в табличці висвітлюються всі атрибути;
4. Створюємо сутність як і в 2-му пункті. Двічі натискаємо по об'єкту мишкою, або викликаємо контекстне меню правою кнопкою і обираємо пункт “Edit Entity” , змінюємо назву «Entity Name» (ім'я сутності ) на «MarkaMashin» , далі ми в цьому ж контекстному меню натискаємо на клавішу «Add», з'являється ще одне вікно де ми в “Attribute Name” записуємо “NomerMashin” , а в “Datatype” ставимо “Char(20)” і ставимо галочки біля властивостей “Key” і ”Not null”, потім натискуємо на кнопку “Ok+Add” в графі “Attribute Name” ми записуємо “MarkaMashin”, в графів “Datatype” обираємо тип “Char(20)” і натискуємо кнопку “Ok”, і знову кнопку “Ok”;
5. Створюємо сутність як і в 2-му пункті. Двічі натискаємо по об'єкту мишкою, або викликаємо контекстне меню правою кнопкою і обираємо пункт “Edit Entity” , змінюємо назву «Entity Name» (ім'я сутності ) на «TehOsmotr» , далі ми в цьому ж контекстному меню натискаємо на клавішу «Add», з'являється ще одне вікно де ми в “Attribute Name” записуємо “NomerTehOsmotra” , а в “Datatype” ставимо “Integer” і ставимо галочки біля властивостей “Key” і ”Not null” , потім натискуємо на кнопку “Ok+Add” в графі “Attribute Name” ми записуємо “NalichieTehosmotr”, в графів “Datatype” обираємо тип “Integer”, і знову натискуємо на кнопку “Ok+Add” в графі “Attribute Name” ми записуємо “DataPrTehosmotr”, в графів “Datatype” обираємо тип “DateTime” і натискуємо кнопку “Ok”, і знову кнопку “Ok”;
6. У нас створено три таблички, тепер ми установлюємо зв'язок між ними. На панелі інструментів обираємо об'єкт “Non - identifying Relationship” , за допомогою якого ми установлюємо сильний зв'язок між таблицями VladelecMashin та MarkaMashin;
7. На зв'язку ( “Non - identifying Relationship”) викликаємо контекстне меню і обираємо пункт “Edit Relationship ”, де в графі “Name” змінюємо ім'я на “ Дає інформацію ” , потім в графі “Cardinality” прописуємо ”Ns”. Далі переходимо на вкладку “Referential Integrity” де в графах “Insert” і “Update” обираємо “Restrict” і натискуємо кнопку “Ok” ;
8. Також необхідно створити зв'язок між таблицями MarkaMashin та TehOsmotr. Для цього використаємо на панелі інструментів “Identifying Relationship”.
9. На зв'язку ( “Non - identifying Relationship”) викликаємо контекстне меню і обираємо пункт “Edit Relationship ”, де в графі “Name” змінюємо ім'я на “ Інформація ” , потім в графі “Cardinality” прописуємо ”Ns”. Далі переходимо на вкладку “Referential Integrity” де в графах “Insert” і “Update” обираємо “Restrict” і натискуємо кнопку “Ok” ;
10. Потім на панелі інструментів обираємо “Physical View” і натискуємо;
11. Далі на робочому полі викликаємо контекстне меню , де ставимо галочку навпроти “Align In Columns” , потім також викликаємо контекстне меню і ставимо галочку навпроти “Shadow”. Знову робимо цю процедуру, а відмічаємо, тобто вбираємо галочку навпроти “Straight Relationship Lines”;
12. Далі шукаємо на панелі інструментів компонент “Model Verification”, де ми натискуємо на клавішу “Run” потім клавішу “Exit” ;
13. Знову на панелі інструментів знаходимо компонент “Generate Script” де ставимо галочки навпроти “Tables”, ”Primary Keys” , “Referential Integrity” і “Triggers for Ref. Integr.” Далі обираємо вкладку “How to generate” де в графі “Restrict ” обираємо “Trigger”, і ставимо галочки навпроти “Generate primary key constraint names” і “Generate foreign key constraint names” ;
14. Далі обираємо вкладку “Advanced” не змінюючи тут нічого переходимо на вкладку “Entity list” також не змінюючи тут нічого, натискуємо на кнопку “Generate” ;
15. Потім натискуємо на кнопку “View” . Створення ER - моделі закінчилось.
Нормалізація
Визначимо ФЗ, які відповідають відношенням. Відношенню VladelecMashin відповідає повна ФЗ KodPasporta - Familia, Adress, так як атрибут KodPasporta однозначно визначає атрибути Familia, Adress, які є логічно однородними.
Відношенню MarkaMashin відповідає повна ФЗ NomerMashin - MarkaMashin, так як атрибут NomerMashin, однозначно визначає атрибут MarkaMashin. При цьому NomerMashin є основним ключем, KodPasporta мігруючим ключем, по ньому можна визначити власника машини.
Відношенню TehOsmotr відповідає повна ФЗ NomerTehOsmotra - NalichieTehOsmotra, так як атрибут NomerTehOsmotra однозначно визначає атрибут NalichieTehOsmotra. При цьому NomerTehOsmotra є основним ключем. При цьому NomerMashin є мігруючим ключем, по ньму можна визначити код паспорту власника, а отже і самого власника машини.
Оскільки не має часткових і транзитивних зв'язків, то базу можемо вважати нормалізованою.
Зв'язок VladelecMashin і MarkaMashin є зв'язком "один до багатьох" так як власник може мати декілька машин.
Зв'язок MarkaMashin і TehOsmotr є зв'язком "один до багатьох", так як одна машина кожен певний проміжок часу повинна проходити тех огляд. Цей зв'язок є ідентифікуючим, так як NomerMashin(PK) мігрує в сутність TehOsmotr, зв'язок є обов'язковим, так як атрибут NomerMashin є обов'язковою складовою сутності TehOsmotr, тому що кожна машина повинна регулярно проходити техогляд.
Дана діаграма є нормалізованою, так як кожному відношенню відповідає тільки одна повна ФЗ.
Діаграма приведена до третьої нормальної форми.
Таким чином з цього ми отримали зв'язки між сутностями.
Створення бази даних за допомогою SQL-сервера
Створення баз даних і таблиць
Create table VladelecMashin
(KodPasporta Char(10) not null Primary Key,
Familia Char(50) not null,
Adres Char(100) not null );
Create table MarkaMashin
(NomerMashin Char(20) not null Primary Key,
MarkaMashin Char(50) not null,
KodPasporta Char(10) References VladelecMashin(KodPasporta) );
Create table TehOsmotr
(NomerTehOsmotra int not null Primary Key,
NalichieTehOsmotra int not null,
DataTehOsmotra DateTime not null,
NomerMashin Char(20) not null References MarkaMashin(NomerMashin));
Мал. 4. Діаграма створених таблиць
Забезпечення цілісності даних: опис бізнес правил і їх реалізація
Бізнес-правила:
1) В таблиці VladelecMashin
a) Значення поля KodPasporta повинно бути
i) Завжди заповненим
ii) Цілим числом
iii) більшим 0
iv) унікальним
b) значення поля Familia
i) повинно не перевищувати 50 символів
ii) повинно бути завжди заповненим
c) значення поля Adres
i) повинно не перевищувати 100 символів
ii) повинно бути завжди заповненим
2) в таблиці MarkaMashin
a) значення поля NomerMashin
i) завжди заповнене
ii) ціле число
iii) більше 0
iv) унікальне
b) значення поля MarkaMashin
i) повинно не перевищувати 20 символів
ii) повинно бути завжди заповненим
3) В таблиці TehOsmotr
a) Значення поля NomerTehOsmotra
i) Завжди заповненим
ii) Цілим числом
iii) Більше 0
iv) Унікальний
b) Значення повинно бути NalichieTehOsmotra
i) Завжди заповненим
ii) Цілим числом
iii) Більше 0
c) значення поля DataTehOsmotra
i) повинно бути заповненим у форматі дати
ii) може бути не заповненим
реалізацію бізнес правил я провела відразу ж при створенні баз даних
Заповнення таблиць даними
Insert Into VladelecMashin Values (11111, `Петрусенко', `Замостянская 7')
Insert Into VladelecMashin Values (11112, `Бабич', `Харьковская 12')
Insert Into VladelecMashin Values (11113, `Булгаков', `Лушпы 36')
Insert Into VladelecMashin Values (11114, `Фадеева', `Охтырская 15')
Insert Into VladelecMashin Values (11115, `Цветаева', `Корсокого 41')
Insert Into MarkaMashin Values (121314, `Ауди', 11111)
Insert Into MarkaMashin Values (131415, `Мерседес', 11112)
Insert Into MarkaMashin Values (141516, `Жигули', 11113)
Insert Into MarkaMashin Values (151617, `Нива', 11114)
Insert Into MarkaMashin Values (161718, `Рено', 11111)
Insert Into MarkaMashin Values (171819, `Ауди', 11112 )
Insert Into MarkaMashin Values (191213, `Рено', 11115)
Insert Into MarkaMashin Values (212223, `Жигули', 11115)
Insert Into MarkaMashin Values (222324, `Волга', 11113)
Insert Into TehOsmotr Values (1, 1, 10.03.2000, 121314)
Insert Into TehOsmotr Values (2, 1, 12.03.2000, 131415)
Insert Into TehOsmotr Values (3, 1, 13.03.2000, 141516)
Insert Into TehOsmotr Values (4, 1, 20.03.2000, 151617)
Insert Into TehOsmotr Values (5, 1, 23.03.2000, 161718)
Insert Into TehOsmotr Values (6, 1, 28.03.2000, 171819)
Insert Into TehOsmotr Values (7, 1, 02.04.2000, 191213)
Insert Into TehOsmotr Values (8, 1, 11.04.2000, 212223)
Insert Into TehOsmotr Values (9, 1, 11.04.2000, 222324)
Insert Into TehOsmotr Values (10, 1, 10.03.2002, 121314)
Insert Into TehOsmotr Values (11, 1, 12.03.2002, 131415)
Insert Into TehOsmotr Values (12, 1, 13.03.2002, 141516)
Insert Into TehOsmotr Values (13, 1, 20.03.2002, 151617)
Insert Into TehOsmotr Values (14, 1, 23.03.2002, 161718)
Insert Into TehOsmotr Values (15, 1, 28.03.2002, 191213)
Insert Into TehOsmotr Values (16, 1, 02.04.2002, 212223)
Insert Into TehOsmotr Values (17, 1, 11.04.2002, 222123)
Insert Into TehOsmotr Values (18, 1, 11.04.2002, 171819)
Insert Into TehOsmotr Values (19, 1, 10.03.2004, 212223)
Insert Into TehOsmotr Values (20, 1, 12.03.2004, 191213)
Insert Into TehOsmotr Values (21, 1, 13.03.2004, 161718)
Insert Into TehOsmotr Values (22, 1, 20.03.2004, 151617)
Insert Into TehOsmotr Values (23, 1, 23.03.2004, 141516)
Insert Into TehOsmotr Values (24, 1, 28.03.2004, 131415)
Insert Into TehOsmotr Values (25, 1, 02.04.2004, 121314)
Insert Into TehOsmotr Values (26, 1, 11.04.2004, 222324)
Insert Into TehOsmotr Values (27, 1, 11.04.2004, 171819)
Insert Into TehOsmotr Values (28, 0, 10.03.2006, 121314)
Insert Into TehOsmotr Values (29, 1, 12.03.2006, 212223)
Insert Into TehOsmotr Values (30, 1, 13.03.2006, 151617)
Insert Into TehOsmotr Values (31, 1, 20.03.2006, 191213)
Insert Into TehOsmotr Values (32, 0, 23.03.2006, 131415)
Insert Into TehOsmotr Values (33, 1. 28.03.2006. 171819)
Insert Into TehOsmotr Values (34, 1, 02.04.2006, 222324)
Insert Into TehOsmotr Values (35, 0, 11.04.2006, 161718)
Insert Into TehOsmotr Values (36, 1, 11.04.2006, 141516)
Insert Into TehOsmotr Values (37, 1, 10.03.2008, 151617)
Insert Into TehOsmotr Values (38, 0, 12.03.2008, 121314)
Insert Into TehOsmotr Values (39, 1, 13.03.2008, 212223)
Insert Into TehOsmotr Values (40, 1, 20.03.2008, 171819)
Insert Into TehOsmotr Values (41, 1, 23.03.2008, 141516)
Insert Into TehOsmotr Values (42, 1, 28.03.2008, 222324)
Insert Into TehOsmotr Values (43, 0, 02.04.2008, 131415)
Insert Into TehOsmotr Values (44, 1, 11.04.2008, 191213)
Insert Into TehOsmotr Values (45, 0, 11.04.2008, 161718)
В результаті отримаємо наступні заповнені таблиці
Мал. 5. Таблиця з даними про власників машин
Мал. 6. Таблиця з даними про машини
Мал. 7. Таблиця з даними про техогляд
Робота з даними таблиць бази даних
Створення запитів
Виконання запитів - одна з основних і ключових функцій БД. Запит - це пошук і фільтрація даних с ціллю отримати цікавлячи нас інформацію.
Створимо запити, які дозволяють отримати наступну інформацію:
· Скільки машин у кожного власника;
· Яка марка машини найпопулярніша;
· Прізвища власників, які не пройшли техогляд;
select count (NomerMashin), VladelecMashin.Familia
from MarkaMashin, VladelecMashin
where MarkaMashin.KodPasporta = VladelecMashin.KodPasporta
Group by VladelecMashin.Familia
Мал. 8. Результат запиту
select Familia
from VladelecMashin, MarkaMashin, TehOsmotr
where VladelecMashin.KodPasporta = MarkaMashin.KodPasporta
and
MarkaMashin.NomerMashin = TehOsmotr.NomerMashin
and
TehOsmotr.NalichieTehOsmotra = 0
Мал. 9. Результат запиту
select MarkaMashin
from MarkaMashin m, VladelecMashin v
where (m.KodPasporta = v.KodPasporta)
group by (m.MarkaMashin)
having count(m.MarkaMashin)=(select MAX(kolichestvo)
from (select count(m.MarkaMashin) as kolichestvo,m.MarkaMashin
from MarkaMashin m, VladelecMashin v
where (m.KodPasporta = v.KodPasporta)
group by (m.MarkaMashin)) as t1)
Мал. 9. Результати запиту
Представлення для створення більшої наглядності при рішенні певних задач ми використовуємо представлення. Створимо представлення яке буде в собі містити дані: список назв марок машин та їх власників:
create View pr
as
select Familia, MarkaMashin
from VladelecMashin, MarkaMashin
where VladelecMashin.KodPasporta = MarkaMashin.KodPasporta
group by VladelecMashin.Familia, MarkaMashin.MarkaMashin
go
Мал. 11. Результат представлення
Процедури які зберігаються
Процедури які зберігаються представляють собою набір команд, які складаються з одного чи декількох операторів SQL або функцій і зберігається в базі даних в відкомпілюючому вигляді. Їх використання дає можливість прискорити роботу програміста і робить її простішою.
Створюємо процедуру, яка видає список марок машин у будь-якого власника:
create procedure pro
@Name Char(50)
AS
select MarkaMashin
from MarkaMashin, VladelecMashin
where MarkaMashin.KodPasporta = VladelecMashin.KodPasporta
and
@Name = VladelecMashin.Familia
Мал. 12. Результат процедури
Створення тригерів
Тригер - це процедура яка зберігається, яка автоматично виконується при зміні таблиць SQL Server.
Якщо машина проходить техогляд, то створити для цієї машини поле з датою на два роки вперед(день коли вона буде проходити техогляд):
create trigger sozd
on TehOsmotr
Instead of Insert
AS
declare @data datetime
declare @Nal int
declare @NomT int
declare @NomM Char(20)
Set @data=(select DataPrTehOcmotr from Inserted)
Set @Nal=(select NalichieTehOsmotr from Inserted)
Set @NomT=(select NomerTehOsmotr from Inserted)
Set @NomM=(select NomerMashin from Inserted)
if (@Nal=1)
begin
insert into TehOsmotr Values (@data, @Nal, @NomT, @NomM)
Insert into TehOsmotr
Values (@data+730, 0, @NomT+1, @NomM)
end
else select 'не правильно введены данные'
Рис. 10 створення тригеру
Рис. 11 до роботи тригеру
Рис. 12 Після роботи тригеру
Висновок
В ході роботи нам вдалося спроектувати додаток для супроводу баз даних, який дозволяє отримати таку інформацію:
- скільки автомобілів має кожен власник;
- прізвища власників, автомобілі яких не пройшли техогляд;
- марка автомобіля, що користується найбільшою популярністю.
Для того що вирішити ці задачі була створена база даних за допомогою SQL-сервер, а також реалізовані запити, процедури і тригери і представлення.
Список використаної літератури
1. Чекалов А.П. Бази даних: від проектування до розробки додатків. СПб.: БХВ-Петербург, 2003. - 384 с.
2. Інтернет ресурс ІНТУІТ
http://www.intuit.ru/department/database/sqlserver2000
3. Інтернет ресурс
http://chekalov.sumdu.edu.ua/db
Размещено на Allbest.ru
Подобные документы
Розробка бази даних "Автовокзал". Функціональні залежності між атрибутами. Ідентифікація атрибутів, які в реляційної моделі даних використовуються в якості первинних ключів реляційних відносин. Організація вибірки інформації з бази за допомогою запиту.
курсовая работа [35,6 K], добавлен 19.08.2012Аналіз відомих підходів до проектування баз даних. Моделі "сутність-зв'язок". Ієрархічна, мережева та реляційна моделі представлення даних. Організація обмежень посилальної цілісності. Нормалізація відносин. Властивості колонок таблиць фізичної моделі.
курсовая работа [417,6 K], добавлен 01.02.2013Розробка структури бази даних. ER-моделі предметної області. Проектування нормалізованих відношень. Розробка форм, запитів, звітів бази даних "Автосалон". Тестування роботи бази даних. Демонстрація коректної роботи форми "Додавання даних про покупців".
курсовая работа [4,0 M], добавлен 02.12.2014База даних як організована структура, призначена для зберігання інформації. Проектування та реалізація в СУБД MS Access інформаційної системи "База даних Internet-ресурсів тестів з психології". Розробка логічної системи даних, інструкції користувача.
курсовая работа [5,3 M], добавлен 22.10.2012Автоматизація процесу зберігання та обробки інформації про перелік собак на виставці. Аналіз предметної області. Створення концептуальної моделі даних, її перетворення в логічну і реалізація. Розробка механізмів управління даними за допомогою тригерів.
курсовая работа [3,0 M], добавлен 25.08.2014Опис вхідних та вихідних повідомлень, процедури перетворення даних. Розробка інфологічної моделі, інформаційні об’єкти та їх характеристика. Автоматизація даталогічного проектування. Опис структур таблиць бази даних на фізичному рівні, реалізація запитів.
курсовая работа [2,5 M], добавлен 02.01.2014Проектування бази даних предметної області "Магазин будівельних матеріалів". Аналіз сукупності вхідних і вихідних даних, шляхи удосконалення інформаційної системи обліку товару. Організація інформаційної бази, розробка логічної і фізичної моделі.
курсовая работа [559,2 K], добавлен 09.05.2016Узагальнена структурна схема інформаційної системи та алгоритми її роботи. Проект бази даних. Інфологічне проектування і дослідження предметної області. Розробка інфологічної моделі предметної області. Розробка композиційної, логічної системи бази даних.
курсовая работа [861,7 K], добавлен 21.02.2010Побудова інформаційної системи "Магазин товарів для настільного тенісу" з автоматизації роботи магазину. Концептуальне моделювання бази даних. Обґрунтування вибору СУБД. Логічне проектування бази даних. Схема бази даних. Створення таблиць в конструкторі.
курсовая работа [8,8 M], добавлен 16.12.2015Проектування і реалізація реляційної бази даних для централізованого зберігання інформації з метою полегшення і систематизації даних замовлень клієнтів готельного комплексу. Розробка сценаріїв для створення бази даних і базових таблиць проекту.
курсовая работа [147,2 K], добавлен 02.06.2019