Проектирование реляционной базы данных методом «Сущность – связь», страница 3

Функциональные зависимости в отношении Статья:

 


4) Статья.

В отношении Статья два возможных ключа номер статьи, название статьи. В качестве первичного ключа отношения выберем номер статьи. Отношение Статья находится в 1НФ, т.к. все его атрибуты имеют атомарное значение. Данное отношение находится также во 2НФ, т.к. все его не основные атрибуты функционально полно зависят от первичного ключа отношения. Данное отношение находится в 3НФ, т.к. нет транзитивных зависимостей. Отношение находится в НФБК, т.к. каждый его детерминант (ключа номер статьи, название статьи) является возможным ключом отношения.

Функциональные зависимости в отношении Статья:

 


5) Инспектор.

В отношении Инспектор ключом отношений является код инспектора, выберем его в качестве первичного ключа. Отношение Инспектор находится в 1НФ, т.к. все его атрибуты имеют атомарное значение. Данное отношение находится также во 2НФ, т.к. все его не основные атрибуты функционально полно зависят от первичного ключа отношения. Данное отношение находится в 3НФ, т.к. нет транзитивных зависимостей. Отношение находится в НФБК, т.к. каждый его детерминант код инспектора является возможным ключом отношения.

Функциональные зависимости в отношении Инспектор:

 


6) Правонарушение.

Отношение Правонарушение имеет два возможных ключа, один из которых является составным атрибутами гос номер, дата протокола и один несоставной номер протокола. В качестве первичного ключа отношения выберем номер протокола. Отношение Правонарушение находится в 1НФ, т.к. все его атрибуты имеют атомарное значение. Данное отношение находится также во 2НФ, т.к. все его не основные атрибуты функционально полно зависят от первичного ключа отношения. Данное отношение находится в 3НФ, т.к. нет транзитивных зависимостей. Отношение находится в НФБК, т.к его детерминант (гос номер, дата протокола; номер протокола) является возможным ключом отношения.

Функциональные зависимости в отношении Правонарушение:

 


Физическая реализация базы данных в среде Access.

1. Схема базы данных.

Рис. 2.

2. С помощью конструктора таблиц создадим таблицы для организации выделенных отношений.

·  Отношение Автолюбитель

Рис. 3.

·  Отношение Машина

Рис. 4.

·  Отношение Инспектор

Рис. 5.

·  Отношение Марка

Рис. 6.

·  Отношение Марка

Рис.7

·  Отношение Обращение к терапевту

Рис. 8.

3. По построенным таблицам создадим запросы на выборку.

Запрос 1. вывести информацию обо всех машинах, принадлежащих определенному автолюбителю

SELECT avto.gn, marka.ma AS Выражение1, avto.cv, avto.iu

FROM marka INNER JOIN (avtolyub INNER JOIN avto ON avtolyub.ka = avto.ka) ON marka.nma = avto.nma

WHERE (((avtolyub.ka)=[Forms]![DobavMash]![ПолеСоСписком0]));

Запрос 2. подсчитать количество правонарушений по каждой статье правонарушения за истекший год

SELECT Year(protokol!dp) AS Год, protokol.nsya AS Выражение1, Count(protokol.nsya) AS Количество

FROM protokol

GROUP BY Year(protokol!dp), protokol.nsya

HAVING (((Year([protokol]![dp]))=Year(Date())-1))

ORDER BY Count(protokol.nsya) DESC;

Запрос3. выяснить в какое время года чаще всего совершаются правонарушения (подсчитав количество правонарушений по месяцам за прошедший год)

SELECT Year(protokol!dp) AS Год, MonthName(Month(protokol!dp)) AS Месяц, Count(Month(protokol!dp)) AS Колличество

FROM protokol

GROUP BY Year(protokol!dp), MonthName(Month(protokol!dp))

HAVING (((Year([protokol]![dp]))=Year(Date())-1))

ORDER BY MonthName(Month(protokol!dp)) DESC , Count(Month(protokol!dp)) DESC;

Запрос 4.  вывести всю статистику правонарушений для определенной машины

SELECT avto.gn, marka.ma, protokol.dp, statya.sya, protokol.ssh, protokol.nr, avtolyub.fa, avtolyub.pda