Таблица, находящаяся в 3НФ должна отвечать всем требования 2НФ, а также ни одно из неключевых полей не идентифицируется при помощи другого неключевого поля, т.е. в таблице нет полей, которые не зависят от ключа.
3.1 Определим связи: т.к. один покупатель может встречаться в нескольких накладных, поэтому таблицы «ПОКУПАТЕЛИ» и «НАКЛАДНЫЕ» имеют связь «один-ко-многим» по полю «ПОКУПАТЕЛЬ» и, соответственно, одной накладной может соответствовать несколько товаров. Таблицы «НАКЛАДНЫЕ» и «ОТПУСК ТОВАР СО СКЛАДА» также имеют связь «один-ко-многим» по полю «№_НАКЛАДНОЙ».
Следовательно, связи между таблицами в ЗНФ
ОТПУСК ТОВАР СО СКЛАДА
| ПОКУПАТЕЛИ
| |||||||||
ТОВАРЫ
| НАКЛАДНЫЕ
|
Таблица «ОТПУСК ТОВАР СО СКЛАДА» не находится в 3НФ, т.к. неключевое поле «ОБЩАЯ_СТОИМОСТЬ» имеет зависимость от поля «КОЛИЧЕСТВО». Значение поля «ОБЩАЯ_СТОИМОСТЬ» может вычисляться, как значение поля «КОЛИЧЕСТВО» умноженное на значение поля «ЦЕНА_ЗА_ЕД» из таблицы «ТОВАРЫ». Исключение поля «ОБЩАЯ_СТОИМОСТЬ» из таблицы «ОТПУСК ТОВАР СО СКЛАДА» приводит БД к 3НФ (нормализованной БД (3НФ)).
|
|
Конечный результат:
ОТПУСК ТОВАР СО СКЛАДА
| ПОКУПАТЕЛИ
| ||||||||
ТОВАРЫ
| НАКЛАДНЫЕ
|
РЕАЛИЗАЦИЯ БАЗЫ ДАННЫХ
Лабораторная работа 3
ИЗУЧЕНИЕ ИНТЕРФЕЙСА И ФУНКЦИОНАЛЬНЫХ ВОЗМОЖНОСТЕЙ ПРОГРАММНОГО КОМПОНЕНТА DATABASE DESKTOP В DELPHI/LAZARUS/LAZARUS. СОЗДАНИЕ, РЕДАКТИРОВАНИЕ И ПРЕДСТАВЛЕНИЕ ТАБЛИЦ. СОЗДАНИЕ ПРОСТЕЙШИХ ПРИЛОЖЕНИЙ СИСТЕМЫ БАЗ ДАННЫХ ПРИ ПОМОЩИ СРЕДСТВА РАЗРАБОТКИ DELPHI/LAZARUS/LAZARUS
Цель: получить навыки создания таблиц при помощи утилиты Database Desktop. Получить навыки создания простейших приложений системы баз данных при помощи средства разработки DELPHI/LAZARUS/LAZARUS, а также установления связей Master-Detail между наборами данных при создании приложений баз данных.