База данных ГИБДД                          
		База данных ГИБДД                          
Государственный университет - Высшая школа экономики 
Факультет бизнес - информатики 
Отчет по курсовой работе на тему: 
"База данных ГИБДД" 
Выполнил студент 
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_Владелец 
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 ПТС_VIN INNER 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 
VIN ON Номер_Двигателя.Номер_Двигателя = VIN.Номер_Двигателя INNER JOIN 
ПТС_VIN ON VIN.VIN = ПТС_VIN.VIN INNER JOIN 
ПТС_Гос_Знак ON ПТС_VIN.Номер_ПТС = ПТС_Гос_Знак.Номер_ПТС 
6. Запрос по поиску владельцев определенных марок машин и моделей 
SELECT Владелец.Фамилия, Владелец.Имя, Владелец.Отчество, Номер_Двигателя.Марка, Номер_Двигателя.Модель, Номер_Двигателя.Год_Выпуска 
FROM Номер_Двигателя INNER JOIN 
VIN ON Номер_Двигателя.Номер_Двигателя = VIN.Номер_Двигателя INNER JOIN 
ПТС_VIN ON 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. Лекционные материалы по курсу БД 
	
	
					
							 |