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