Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Федеральное агентство по образованию.docx
Скачиваний:
16
Добавлен:
22.09.2019
Размер:
345.75 Кб
Скачать

Структура сущностей

Произведем анализ смысловых зависимостей

В таблице «Покупатели» поле «Паспортные данные» определяет атрибуты покупателя, такие как «Фамилия», «Адрес», «Телефон», так как покупателю с такими паспортными данными могут соответствовать только такие параметры.

Как мы видим между таблицами «Автомобиль» и «Продажа» связь один к одному, следовательно, по правилам нормализации их необходимо объединить в одну таблицу. Теперь связь между таблица «Продажа» и «Автомобиль» один ко многим, так как автомобиль определенной модели мы можем продать несколько раз, но каждая продажа соответствует только одной модели.

В таблице «Характеристики» поле «№кузова» определяет атрибуты автомобиля, такие как «Марка», «Объем двигателя», «Мощность» и другие, так как автомобилю определенной марки\модели соответствуют только определенные характеристики.

В таблице «Изготовитель» поле «код фирмы» определяет такие атрибуты, как «Фирма» и «Страна»

Третья нормальная форма

Третья нормальная форма требует, чтобы таблицы были приведены ко второй нормальной форме, и чтобы между не ключевыми полями таблицы не было транзитивных зависимостей, то есть, чтобы значение любого поля, не входящего в состав первичного ключа не зависело от другого поля, не входящего в первичный ключ.

В нашем случае, таблицы удовлетворяют выше перечисленным требованиям, и это означает, что все таблицы соответствуют третьей нормальной форме.

Проектирование таблиц

Итак, в результате нормализации получились следующие таблицы: «Покупатель», «Продажа», «Автомобиль», «Изготовитель», «Характеристики».

Разработаем структуру для каждой из этих таблиц. Определим типы данных полей, их размерность и названия.

Таблица «Изготовитель»

Название таблицы «Izgotovitel_GV»

Поле

Название

Тип

Правила целостности

Код фирмы

KodFirmi

number(10)

Primary key

Фирма

Firma

varchar2(50)

Not null

Страна

Strana_izg

varchar2(50)

Not null

Поле KodFirmi является первичным ключом.

Поле Firma содержит название фирмы, длинны не менее 50 символов.

Поле Strana_izg содержит название страны, длинны не менее 50 символов.

Используемые типы данных:

VARCHAR2 (L) - символьные данные фиксированной длины L байт;

NUMBER (a, b) – числовое значение с общим числом цифр a, и с количеством цифр после запятой b.

Таблица «Автомобиль»

Название таблицы «Avtomobil_GV»

Поле

Название

Тип

Правила целостности

№двигателя

n_dvig

number(10)

Primary key

Продажи

n_prodaji

number(10)

Not null

Код фирмы

KodFirm

number(10)

Not null

Таблица «Продажа»

Название таблицы «Prodaja_GV»

Поле

Название

Тип

Правила целостности

№продажи

n_prodaji

number(10)

Primary key

№двигателя

n_dvig

number(10)

n_dvig>0

Дата

data

date

Not null

Количество

kol

number(10)

Not null

Паспортные данные

pasport_dann

number(10)

Not null

Используемые типа данных:

DATE - хранение даты и времени.

Таблица «Характеристики»

Название таблицы «Harakt_GV»

Поле

Название

Тип

Правила целостности

№кузова

n_kuzov

number(10)

Primary key

Цвет

zvet

varchar2(50)

Not null

Марка

Marca

varchar2(50)

Not null

Объём двигателя

ob_dvig

number(10)

ob_dvig>0

Кузов

kuzov

varchar2(50)

Not null

Мощность

mojnost

varchar2(50)

Not null

№двигателя

n_dvig

number(10)

n_dvig>0

Таблица «Покупатель»

Название таблицы «Pokupatel_GV»

Поле

Название

Тип

Правила целостности

Паспортные данные

pasport_dann

number(10)

Not null

Фамилия

familia

varchar2(50)

Not null

Адрес

adres

varchar2(50)

Not null

Телефон

telefon

varchar2(50)

Not null