База данных ГИБДД

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

Государственный университет Высшая школа экономики

Факультет бизнес - информатики

 

 

 

 

 

 

 

 

Отчет по курсовой работе на тему:

"База данных ГИБДД"

 

 

 

Выполнил студент

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 Server 2005.

 

 

ER-модель в Erwin.

Logical

 

 

Physical

 

 

Таблица основных сущностей

Основных сущностей для моей базы данных необходимо три:

  • Сущность с информацией о водителе
  • Сущность с информацией о владельце
  • Сущность с информацией о VIN
  • Сущность с информацией о ТС
  • Сущность с информацией о нарушениях

 

Водитель

 

 

Владелец

 

 

VIN

 

 

Протокол

 

 

Транспортное средство

 

 

4. Запросы

 

Разработка SQL-запросов

  1. Запрос о выводе владельца по номеру ПТС

SELECT Владелец_ПТС.Номер_ПТС, Владелец.Фамилия, Владелец.Имя, Владелец.Отчество, Владелец.Дата_Рождения

FROM Владелец_ПТС INNER JOIN

Владелец ON Владелец_ПТС.ID_Владелец = Владелец.ID_Владелец

  1. Запрос о выводе информации о нарушении и его участнике

SELECT Владелец.Фамилия, Владелец.Имя, Владелец.Отчество, Номер_Прав.Номер_Прав, Протокол.ID_Протокол, Протокол.Дата_Нарушения,

Протокол.Место_Нарушения, Протокол.Сущность_Нарушения, Протокол.Сумма_Штрафа, Протокол.Лишение, Протокол.Дата_Оплаты

FROM Номер_Прав INNER JOIN

Штраф_Протокол ON Номер_Прав.ID_Штраф = Штраф_Протокол.ID_Штраф INNER JOIN

Протокол ON Штраф_Протокол.ID_Протокол = Протокол.ID_Протокол INNER JOIN

Водитель ON Номер_Прав.Номер_Прав = Водитель.Номер_Прав INNER JOIN

Владелец ON Водитель.ID_Владелец = Владелец.ID_Владелец

  1. Запрос о выводе информации об участнике нарушения и сумма штрафа

SELECT Владелец.Фамилия, Владелец.Имя, Владелец.Отчество, Номер_Прав.Номер_Прав, Протокол.ID_Протокол, Протокол.Дата_Нарушения,

Протокол.Место_Нарушения, Протокол.Сущность_Нарушения, Протокол.Сумма_Штрафа, Протокол.Лишение, Протокол.Дата_Оплаты

FROM Номер_Прав INNER JOIN

Штраф_Протокол ON Номер_Прав.ID_Штраф = Штраф_Протокол.ID_Штраф INNER JOIN

Протокол ON Штраф_Протокол.ID_Протокол = Протокол.ID_Протокол INNER JOIN

Водитель ON Номер_Прав.Номер_Прав = Водитель.Номер_Прав INNER JOIN

Владелец ON Водитель.ID_Владелец = Владелец.ID_Владелец

WHERE Протокол.Сумма_Штрафа >1500

  1. Запрос по VIN коду информации о владельце и страховке

SELECT ПТС_VIN.VIN, Владелец.Фамилия, Владелец.Отчество, Страховка.ID_Страховка, Страховка.С, Страховка.По, Страховка.КАСКО, Страховка.ОСАГО

FROM ПТС_VIN INNER JOIN

Владелец_ПТС ON ПТС_VIN.Номер_ПТС = Владелец_ПТС.Номер_ПТС INNER JOIN

Владелец ON Владелец_ПТС.ID_Владелец = Владелец.ID_Владелец INNER JOIN

Водитель ON Владелец.ID_Владел?/p>