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