Машина (гос номер, код марки, код цвета, год выпуска, номер кузова, номер шасси, номер двигателя, информация о угоне, код автолюбителя, номер статьи, код инспектора, номер протокола, дата протокола, сумма штрафа);
Марка (код марки, марка);
Статья (номер статьи, название статьи);
Цвет (код цвета, цвет);
Инспектор (код инспектора, ФИО инспектора);
В третьем проектном наборе, как и во втором, были выделены отдельные таблицы «списки» (марки, статьи, инспекторы) и таблица Автолюбитель, плюс добавилась таблица цвет (при частых повторениях цвета ведет к уменьшению объема базы данных) Существенный недостаток данной реализации заключается в том, что в таблице, содержащей информацию о машинах содержится информация и о правонарушениях, следовательно нет возможности указания нескольких правонарушений для одной машины, без повторения данных о всей машине, что приведёт к недопустимому избыточному дублированию данных в таблице в полях: год выпуска, номер кузова, номер двигателя, номер шасси, информация о угоне, код цвета, код марки, код автолюбителя, а это значит, что при изменении данных о машине, например информация об угоне, значение придётся менять не один раз, а для каждого зафиксировано правонарушений за данной машиной.
Из вышесказанного следует, что второй набор, выполненный методом «сущность - связь» является самым оптимальным, так как не обладает недостатками, присущими первому и третьему наборам, а также, наиболее полно отражает связи между объектами.
При проектировании баз данных методом декомпозиции, сперва получаем универсальное отношение, а затем разбиваем его на более простые отношения до тех пор, пока все отношения ни будут в НФБК - форме. Такой метод эффективен при проектировании несложных баз данных с малым количеством атрибутов.
При проектировании баз данных методом «сущность-связь», сперва выявляются объекты и связи между ними, а затем по определённым правилам получаем проектный набор. Такой метод более наглядный и занимает меньше времени на его реализацию, чем метода декомпозиции, и проектный набор получился более идеальным.
При проектировании баз данных средствами Access, сперва строится универсальное отношение, содержащая все атрибуты объектов, затем создается таблица на основе этого отношения и производится её нормализация средствами Access. Этот метод неоптимальный, часто получаются ни совсем логичные отношения. А также заполнение таблицы на основе универсального отношения очень неудобно. Нормализацию средствами Access следует применять, над готовыми и заполненными базами данных.
Построение запросов
Запрос 1. изменить цвет определенной машины.
PARAMETERS [введите гос № машины] Text ( 255 ), [введите цвет] Text ( 255 );
UPDATE avto SET avto.cv = [введите цвет]
WHERE (((avto.cv)<>[введите цвет]) AND ((avto.gn)=[введите гос № машины]));
Запрос 2. изменить отметку об угоне для определенной машины.
PARAMETERS [введите гос № машины] Text ( 255 );
UPDATE avto SET avto.iu = -1-[iu]
WHERE (((avto.gn)=[введите гос № машины]));
Запрос 3. создать архив правонарушений за прошедший год.
SELECT protokol.nr, protokol.gn, protokol.ki, protokol.nsya, protokol.dp, protokol.ssh INTO protokolarh
FROM protokol
WHERE (((Year([protokol]![dp]))=Year(Date())-1));
Запрос 4. удалить информацию по правонарушениям прошедшего года.
DELETE protokol.*, Year(protokol!dp) AS Выражение1, Year([protokol]![dp])
FROM protokol
WHERE (((Year([protokol]![dp]))=Year(Date())-1));
Запрос 5. добавить правонарушение для определенной машины, по определенной статье, зафиксированное определенным инспектором.
PARAMETERS [Введите гос №] Text ( 255 ), [Введите номер статьи] Short, [Введите код инспектора] Short, [Введите № протокола] Short, [Ведите дату протокола] DateTime, [Введите сумму штрафа] Currency;
INSERT INTO protokol ( nr, gn, ki, nsya, dp, ssh )
SELECT [Введите № протокола] AS Выражение1, avto.gn, inspektor.ki, statya.nsya, [Ведите дату протокола] AS Выражение2, [Введите сумму штрафа] AS Выражение3
FROM inspektor, statya, avto
WHERE (((avto.gn)=[Введите гос №]) AND ((inspektor.ki)=[Введите код инспектора]) AND ((statya.nsya)=[Введите номер статьи]));
Запрос 6. Перекрестный запрос.
TRANSFORM Count(protokol.nr) AS [Count-nr]
SELECT inspektor.fi, Count(protokol.nr) AS Количество
FROM inspektor INNER JOIN protokol ON inspektor.ki = protokol.ki
GROUP BY inspektor.fi
PIVOT MonthName(Month(protokol!dp));
Список литературы
1. Горев а., Ахаян Р., Макашарипов С. Эффективная работа с СУБД. – СПб.: Питер, 19997. – 704 с.
2. Дейт К. Дж. Введение в системы баз данных, 6-е издание: Пер. с англ. – К.; М.; СПб.: Издательский дом «Вильямс», 2000. – 848 с.
3. Джексон Г. Проектирование реляционных баз данных для использования с микроЭВМ: Пер. с англ. – М.: Мир, 1991. – 252 с.
4. Диго С.М. Проектирование и использование баз данных: Учебник. – М.: Финансы и статистика, 1995. – 208 с.
5. Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация и сопровождение. Теория и практика, 2-е изд.: Пер. с англ.: Уч. пос. – М.: Издательский дом «Вильямс», 2000. – 1120 с.
6. Мейер Д. Теория реляционных баз данных: Пер. с англ. – М.: Мир, 1987. – 608 с.
7. Хансен Г., Хансен Д. Базы данных: разработка и управление: Пер. с англ. – М.:ЗАО «Издательство БИНОМ», 1999. – 704 с.
8. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / Под ред. Проф. А.Д. Хомоненко. – СПб.: КОРОНА принт, 2000. – 416 с.
9. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / Под ред. Проф. А.Д. Хомоненко. – Издание второе, дополненное и переработанное – СПб.: КОРОНА принт, 2002. – 672 с.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.