Рассмотрим схему отношения Владельцы-физ_лица-уд. личности (РНН владельца, Признак владельца, ФИО, Адрес владельца, Телефон, Адрес стоянки авто, Пол, Год рождения, № уд. личности, Профессия)
Здесь личность владельца может полностью определятся как именем, так и его РНН.
Можно произвести декомпозицию отношения в два отношения: Владельцы-физ_лица-имена и
Владельцы-физ_лица-имена (РНН владельца, ФИО)
Первичный ключ: РНН владельца
Функциональные зависимости:
РНН владельца - ФИО
Владельцы-физ_лица-атрибуты (РНН владельца, Признак владельца, Адрес владельца, Телефон, Адрес стоянки авто, Пол, Год рождения, № уд. личности, Профессия)
Первичный ключ: РНН владельца, Признак владельца
Возможные функциональные зависимости:
РНН владельца, Признак владельца - Адрес владельца
РНН владельца, Признак владельца - Телефон
РНН владельца, Признак владельца - Адрес стоянки авто
РНН владельца, Признак владельца - Пол
РНН владельца, Признак владельца - Год рождения
РНН владельца, Признак владельца - № уд. личности
РНН владельца, Признак владельца - Профессия
Четвертая нормальная форма
Видим, что каждому владельцу соответствует множество, состоящее из нуля или более значений атрибута телефон (А→В), также как и соответствует множество, состоящее из нуля или более значений атрибута адрес стоянки авто (А→С). Но телефон владельца авто не зависит от адреса стоянки авто.
Многозначные зависимости:
РНН владельца →→ Телефон
РНН владельца →→ Адрес стоянки авто
Можно произвести декомпозицию отношения:
Владельцы-физ_лица-телефоны (РНН владельца, Признак владельца, Адрес владельца, Телефон, Пол, Год рождения, № уд. личности, Профессия
Первичный ключ: РНН владельца, Признак владельца
Возможные функциональные зависимости:
РНН владельца, Признак владельца - Адрес владельца
РНН владельца, Признак владельца - Телефон
РНН владельца, Признак владельца - Пол
РНН владельца, Признак владельца - Год рождения
РНН владельца, Признак владельца - № уд. личности
РНН владельца, Признак владельца - Профессия
Владельцы-физ_лица-адреса стоянок (РНН владельца, Признак владельца, Адрес владельца, Адрес стоянки авто, Пол, Год рождения, № уд. личности, Профессия)
Первичный ключ: РНН владельца, Признак владельца
Возможные функциональные зависимости:
РНН владельца, Признак владельца - Адрес владельца
РНН владельца, Признак владельца - Адрес стоянки авто
РНН владельца, Признак владельца - Пол
РНН владельца, Признак владельца - Год рождения
РНН владельца, Признак владельца - № уд. личности
РНН владельца, Признак владельца - Профессия
Отношения находятся в 4NF
Пятая нормальная форма
Таблица находится в пятой нормальной форме 5NF, тогда и только тогда, когда в каждой ее полной декомпозиции все проекции содержат возможный ключ.
Декомпозиция отношений6
Владельцы-юр_лица_наименования (РНН владельца, Признак владельца, Наименование)
Первичный ключ
РНН владельца, Признак владельца
Функциональные зависимости:
РНН владельца, Признак владельца - Наименование
Владельцы-юр_лица_адреса владельцев (РНН владельца, Признак владельца, Адрес владельца)
Первичный ключ
РНН владельца, Признак владельца
Функциональные зависимости:
РНН владельца, Признак владельца - Адрес владельца
Владельцы-юр_лица_адреса стоянок авто (РНН владельца, Признак владельца, Адрес стоянки авто, Телефон)
Первичный ключ
РНН владельца, Признак владельца
Функциональные зависимости:
РНН владельца, Признак владельца - Адрес стоянки авто
Владельцы-юр_лица_телефоны (РНН владельца, Признак владельца, Телефон)
Первичный ключ
РНН владельца, Признак владельца
Функциональные зависимости:
РНН владельца, Признак владельца - Телефон
Владельцы-физ_лица-имена (РНН владельца, ФИО)
Первичный ключ: РНН владельца
Функциональные зависимости:
РНН владельца - ФИО
Владельцы-физ_лица_адреса владельцев (РНН владельца, Признак владельца, Адрес владельца)
Первичный ключ: РНН владельца, Признак владельца
РНН владельца, Признак владельца - Адрес владельца
Владельцы-физ_лица-телефоны (РНН владельца, Признак владельца, Телефон, рождения)
Первичный ключ: РНН владельца, Признак владельца
Возможные функциональные зависимости:
РНН владельца, Признак владельца - Телефон
Владельцы-физ_лица-адреса стоянок (РНН владельца, Признак владельца, Адрес стоянки авто)
Первичный ключ: РНН владельца, Признак владельца
Возможные функциональные зависимости:
РНН владельца, Признак владельца - Адрес стоянки авто
Владельцы-физ_лица-пол (РНН владельца, Признак владельца, Пол)
Первичный ключ: РНН владельца, Признак владельца
Возможные функциональные зависимости:
РНН владельца, Признак владельца - Пол
Владельцы-физ_лица-год рождения (РНН владельца, Признак владельца, Год рождения)
Первичный ключ: РНН владельца, Признак владельца
Возможные функциональные зависимости:
РНН владельца, Признак владельца - Год рождения
Владельцы-физ_лица-уд. личности (РНН владельца, Признак владельца, № уд. личности)
Первичный ключ: РНН владельца, Признак владельца
Возможные функциональные зависимости:
РНН владельца, Признак владельца - № уд. личности
Владельцы-физ_лица-профессии (РНН владельца, Признак владельца, Профессия)
Первичный ключ: РНН владельца, Признак владельца
Возможные функциональные зависимости:
РНН владельца, Признак владельца - профессия
Структура программы
Программа "РЭО-ГАИ" реализована на языке программирования Borland Delphi с подключением MSSQL Server 2000. Структуру программы составляют 4 класса и 6 программных модулей.
Описание модулей
Модули данной программы подразделяются на:
1. Модуль Unit1, который находится в файле Unit1. pas содержит информацию о всех таблицах данной базы данных.
2. В модуле Unit2, находящемся в файле Unit2. pas происходит реализация класса TZaprosy (запросы).
3. Модуль Unit3 расположен в файле Unit3. pas, в котором находится реализация класса TOtchety (отчеты).
4. Модуль Unit4 расположен в файле Unit4. pas, в нем находится код описания класса TProcedury (процедуры).
5. Модуль Unit5, который расположен в файле Unit5. pas содержит реализацию класса TSpravka (справка).
6. Модуль Unit6 находится в файле Unit6. pas и содержит информацию об отчетах.