Государственныйуниверситет – Высшая школа экономики
Факультетбизнес — информатики
Отчет покурсовой работе на тему:
«Базаданных ГИБДД»
Выполнил студент
2 курса 273(0) группы
Нестеров Сергей Викторович
Преподаватель:
Щербинин Олег Павлович
Москва 2010
Содержание
1. Описаниеприкладной области
2. Описаниеструктуры
3. Описаниебазы данных
4. Запросы
Списоклитературы
1. Описаниеприкладной области
Прикладной областьюданного курсового проекта является база ГИБДД.
Я выбрал эту тему, потомучто сам являюсь водителем и зачастую общаюсь с сотрудниками ГИБДД и слышумножество историй о них и их системе работы.
Для полноценной работыбазы данных, необходимы следующие сущности:
· Водитель
· Владелец
· Транспортноесредство
· VIN
· Протоколынарушений
Формулирование основнойцели разработки.
Основной целью даннойбазы данных является удобное, быстрое и качественное обращение с информацией обучастниках дорожного движения и их нарушениях.
Такая база может найтиприменение в хранении информации о неуклонно растущих автолюбителях.
Помимо храненияинформации, пользователь базы данных может осуществлять запросы на выборку ипоиск информации.
Основные запросы, накоторые ориентирована база данных:
1. Запросо выводе владельца по номеру ПТС
2. Запросо выводе информации о нарушении и его участнике
3. Запросо выводе информации об участнике нарушения и сумма штрафа
4. Запроспо VIN коду информации о владельце и страховке
5. Запроспо государственному номеру информации о машине
6. Запроспо поиску владельцев определенных марок машин и моделей
7. Запросо наличии ОСАГО и КАСКО
Описание источников иформ исходных данных
Источниками разработаннойбазы данных являются данные из Интернета.
Поэтому нельзя полностьюдоверять данной информации.
Требование к программномуобеспечению.
Использовалисьследующие программы:
— Microsoft SQL Server 2005 Standart ver.9.0.1
— Computer Associated ERWin 4.0.
2. Описание структуры
Таблица находится впервой нормальной форма, тогда и только тогда, когда ни одна из ее строк несодержит в любом своем поле более одного значения и ни одно из ее ключевыхполей не пусто.
Отношение находится вовторой нормальной форме, если оно соответствует первой нормальной форме и всене ключевые атрибуты функционально полно зависят от первичного ключа.
Отношение находится втретьей нормальной форме, если оно соответствует второй нормальной форме, и внем нет транзитивных связей.
На практике в большинствеслучаев третья форма нормализации является необходимой и достаточной.
3.Описание базы данных
Схема данных в SQL Server2005.
/>
ER-модель в Erwin.
Logical
/>
Physical
/>
Таблица основныхсущностей
Основных сущностей длямоей базы данных необходимо три:
· Сущность синформацией о водителе
· Сущность синформацией о владельце
· Сущность синформацией о VIN
· Сущность синформацией о ТС
· Сущность синформацией о нарушениях
Водитель
/>
Владелец
/>
VIN
/>
Протокол
/>
Транспортное средство
/>
4. Запросы
Разработка SQL-запросов
1. Запросо выводе владельца по номеру ПТС
SELECTВладелец_ПТС.Номер_ПТС, Владелец.Фамилия, Владелец.Имя, Владелец.Отчество,Владелец.Дата_Рождения
FROMВладелец_ПТС INNER JOIN
ВладелецON Владелец_ПТС.ID_Владелец = Владелец.ID_Владелец
2. Запросо выводе информации о нарушении и его участнике
SELECTВладелец.Фамилия, Владелец.Имя, Владелец.Отчество, Номер_Прав.Номер_Прав, Протокол.ID_Протокол,Протокол.Дата_Нарушения,
Протокол.Место_Нарушения,Протокол.Сущность_Нарушения, Протокол.Сумма_Штрафа, Протокол.Лишение, Протокол.Дата_Оплаты
FROMНомер_Прав INNER JOIN
Штраф_ПротоколON Номер_Прав.ID_Штраф = Штраф_Протокол.ID_Штраф INNER JOIN
ПротоколON Штраф_Протокол.ID_Протокол = Протокол.ID_Протокол INNER JOIN
ВодительON Номер_Прав.Номер_Прав = Водитель.Номер_Прав INNER JOIN
Владелец ONВодитель.ID_Владелец = Владелец.ID_Владелец
3. Запросо выводе информации об участнике нарушения и сумма штрафа
SELECT Владелец.Фамилия,Владелец.Имя, Владелец.Отчество, Номер_Прав.Номер_Прав, Протокол.ID_Протокол,Протокол.Дата_Нарушения,
Протокол.Место_Нарушения,Протокол.Сущность_Нарушения, Протокол.Сумма_Штрафа, Протокол.Лишение,Протокол.Дата_Оплаты
FROMНомер_Прав INNER JOIN
Штраф_ПротоколON Номер_Прав.ID_Штраф = Штраф_Протокол.ID_Штраф INNER JOIN
ПротоколON Штраф_Протокол.ID_Протокол = Протокол.ID_Протокол INNER JOIN
ВодительON Номер_Прав.Номер_Прав = Водитель.Номер_Прав INNER JOIN
ВладелецON Водитель.ID_Владелец = Владелец.ID_Владелец
WHERE Протокол.Сумма_Штрафа>1500
4. Запроспо VIN коду информации о владельце и страховке
SELECT ПТС_VIN.VIN,Владелец.Фамилия,Владелец.Отчество,Страховка.ID_Страховка,Страховка.С,Страховка.По,Страховка.КАСКО,Страховка.ОСАГО
FROM ПТС_VININNER JOIN
Владелец_ПТСON ПТС_VIN.Номер_ПТС= Владелец_ПТС.Номер_ПТСINNER JOIN
ВладелецON Владелец_ПТС.ID_Владелец= Владелец.ID_ВладелецINNER JOIN
ВодительON Владелец.ID_Владелец = Водитель.ID_Владелец INNER JOIN
СтраховкаON Водитель.ID_Страховка = Страховка.ID_Страховка
5. Запроспо государственному номеру информации о машине
SELECTНомер_Двигателя.Номер_Двигателя, Номер_Двигателя.Мощность_л_с,Номер_Двигателя.Объем, Номер_Двигателя.Марка, Номер_Двигателя.Модель,
Номер_Двигателя.Год_Выпуска,ПТС_Гос_Знак.Гос_знак, VIN.VIN
FROMНомер_Двигателя INNER JOIN
VINON Номер_Двигателя.Номер_Двигателя = VIN.Номер_Двигателя INNER JOIN
ПТС_VINON VIN.VIN = ПТС_VIN.VIN INNER JOIN
ПТС_Гос_ЗнакON ПТС_VIN.Номер_ПТС = ПТС_Гос_Знак.Номер_ПТС
6. Запроспо поиску владельцев определенных марок машин и моделей
SELECTВладелец.Фамилия, Владелец.Имя, Владелец.Отчество, Номер_Двигателя.Марка,Номер_Двигателя.Модель, Номер_Двигателя.Год_Выпуска
FROMНомер_Двигателя INNER JOIN
VINON Номер_Двигателя.Номер_Двигателя = VIN.Номер_Двигателя INNER JOIN
ПТС_VINON VIN.VIN = ПТС_VIN.VIN INNER JOIN
Владелец_ПТСON ПТС_VIN.Номер_ПТС= Владелец_ПТС.Номер_ПТСINNER JOIN
ВладелецON Владелец_ПТС.ID_Владелец = Владелец.ID_Владелец
WHERE((Номер_Двигателя.Марка = 'Saab') OR (Номер_Двигателя.Марка = 'Volvo'))
7. Запросо наличии ОСАГО и КАСКО
SELECTВладелец.Фамилия, Владелец.Имя, Владелец.Отчество, Водитель.Номер_Прав,Страховка.КАСКО
FROMВладелец INNER JOIN
ВодительON Владелец.ID_Владелец = Водитель.ID_Владелец INNER JOIN
СтраховкаON Водитель.ID_Страховка = Страховка.ID_Страховка
WHERE(Страховка.КАСКО = N'да')
Список литературы
1. С.М. Диго «Базыданных: проектирование и использование» Москва 2005
2. Лекционныематериалы по курсу БД