Розробка бази даних автоінспекції

Проектування інформаційної системи для супроводу баз даних. Моделі запиту даних співробітником автоінспекції та обробки запиту про машини та їх власників. База даних за допомогою 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.