стять атомарні значення. Даному умові задовольняють всі відносини.
Приведення до Другої нормальній формі:
Ставлення перебувати в другій нормальній формі, якщо воно перебувати в першій нормальній формі і кожен неключових атрибут повністю залежить від первинного ключа.
Ставлення «Співробітники» знаходиться в другій нормальній формі, оскільки всі неключові атрибути цього відносини функціонально залежать від первинного ключа.
Ставлення «Товари» знаходиться в другій нормальній формі, оскільки всі неключові атрибути цього відносини функціонально залежать від первинного ключа.
Ставлення «Володарі дисконтних карт» знаходиться в другій нормальній формі, оскільки всі неключові атрибути цього відносини функціонально залежать від первинного ключа.
Ставлення «Замовлення меблів» знаходиться в другій нормальній формі, оскільки всі неключові атрибути цього відносини функціонально залежать від первинного ключа.
Ставлення «Постачальники» знаходиться в другій нормальній формі, оскільки всі неключові атрибути цього відносини функціонально залежать від первинного ключа.
Ставлення «Виробники» знаходиться в другій нормальній формі, оскільки всі неключові атрибути цього відносини функціонально залежать від первинного ключа.
Ставлення «Типи товарів» знаходиться в другій нормальній формі, оскільки всі неключові атрибути цього відносини функціонально залежать від первинного ключа.
Приведення до Третьої нормальній формі:
Відношення знаходиться в третій нормальній формі, якщо воно знаходиться в другій нормальній формі і кожен неключових атрибут нетранзитивно залежить від первинного ключа. Цій умові задовольняють всі відносини.
4. Фізичне проектування
.1 Створення Бази даних
Лістинг створення таблиць:
Create table sotrudniki
(IdSot bigint not null, char (40) not null, smalldatetime not null, char (40) not null, bigint not null, char (40) not null, smalldatetime not null, key (IdSot ))
table TipTovara
(KodTipa bigint Primary key not null, char (20) not null)
table Postavchiki
(KodPost bigint Primary key not null, char (20) not null, char (50) not null, bigint not null)
table Proiz_Mebeli
(KodProiz bigint Primary key not null, _proiz char (40) not null, char (30) not null)
Create table ZakazMebeli
(idSot bigint foreign key references sotrudniki (IdSot) ON UPDATE NO ACTION ON DELETE SET NULL, bigint not null, _zacaza char (50) not null, smalldatetime not null, smalldatetime not null, money not null , key (KodZakaza)
)
table Disk_kart
(idSor bigint foreign key references sotrudniki (IdSot) ON DELETE SET NULL ON UPDATE CASCADE, _kart bigint not null, char (40) not null, smalldatetime not null, bigint not null, smallint not null, key (id_kart), ch_proc check (ProcentSt in ( 5 raquo ;, 10 raquo ;, 15 ))
table Tovar
(idSot bigint foreign key references sotrudniki (IdSot) ON DELETE SET NULL ON UPDATE CASCADE, _tip bigint foreign key references TipTovara (KodTipa) ON DELETE CASCADE ON UPDATE CASCADE, _post bigint foreign key references Postavchiki (KodPost ) ON DELETE CASCADE ON UPDATE CASCADE, _proiz bigint foreign key references Proiz_Mebeli (KodProiz) ON DELETE CASCADE ON UPDATE CASCADE, bigint Primary key not null, char (20) not null, char (20) not null, _vo_na_sklade bigint not null, _vo_v_magazine bigint not null, char (20) not null, char (30) not null, money not null, ch_skl check (Kol_vo_na_sklade lt;=200), ch_mag check (Kol_vo_v_magazine lt;=5),
Створення індексу (для таблиці співробітники - упорядкувати за алфавітом):
CREATE UNIQUE INDEX sot_ki ON (fio asc);
Перевірка індексу:
select Fiosotrudniki
4.2 Зв'язок між таблицями
4.3 Довідник завдань, що вирішуються користувачем (запити)
1. Наявність товару на складі і в магазині:
create view [Наявність товару] as
Nazvanie, Kol_vo_na_sklade, Kol_vo_v_magazineTovarTipMebeli= Стільці by Nazvanie