Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по л.р..doc
Скачиваний:
6
Добавлен:
29.08.2019
Размер:
789.5 Кб
Скачать

3.Построение реляционной схемы базы данных в 3 нормальной форме

Схема отношения в первой нормальной форме состоит из:

  • строки (3.1), в которую включены обозначения всех 33 хранимых атрибутов и в которой ключ не выделен, но допускается его выделение:

R(KodOrg,NameOrg,KodStrPodr,NameStrPodr,KodVidD,NameVidD,KodOsnov,NameOsnov,NomOsnov,DataOsnov,DataNI,DataOI,KodVidOper,NameVidOper,NomDoc,DataDoc, DataInvent,KodDol,NameDol,TabNom,Fio,TabNom1,TabNom2,KodOS,NameOS,CenaOs, SrokSlOS,GodVOS,NomInv,NomZav,NomPasp,KolIzl,KolNedost) (3.1)

  • таблицы 1.

Выпишем все ФЗ между атрибутами отношения R, за исключением таких ФЗ, в левых частях которых содержатся атрибуты-наименования и для каждого такого атрибута В выполняется условие: А—>В, В—>А, где А – код, В – наименование (т.е. не будем выписывать ФЗ, в левых частях которых содержится В):

KodStrPodr → NameStrPodr, KodOrg, NameOrg;

KodVidD → NameVidD;

KodOsnov → NameOsnov;

KodVidOper → NameVidOper;

KodDol → NameDol;

TabNom → Fio, KodDol;

KodOS → NameOS, CenaOs, SrokSlOS, GodVOS, NomInv, NomZav, NomPasp;

NomDoc, DataDoc → KodStrPodr, KodVidD, KodOsnov, NomOsnov, DataOsnov, DataNI, DataOI KodVidOper, DataInvent, TabNom1, TabNom2, KodOS, KolIzl, KolNedost;

Отношение во второй НФ – это отношение в первой НФ, в котором любой реквизит, не входящий в состав ключа, полно зависит от ключа.

Рассмотрим последнюю зависимость. Атрибуты KolIzl и KolNedost не полно зависят от ключа, т.к. они еще зависят от атрибута KodOS. Поэтому заменим последнюю функциональную зависимость двумя:

NomDoc, DataDoc → KodStrPodr, KodVidD, KodOsnov, NomOsnov, DataOsnov, DataNI, DataOI KodVidOper, DataInvent, TabNom1, TabNom2;

NomDoc, DataDoc, KodOS → KolIzl, KolNedost.

Поставим в соответствии каждой функциональной зависимости схему отношение:

R1[KodStrPodr#, NameStrPodr, KodOrg, NameOrg];

R2[KodVidD#, NameVidD];

R3[KodOsnov#, NameOsnov];

R4[KodVidOper#, NameVidOper];

R5[KodDol#, NameDol];

R6[TabNom#, Fio, KodDol];

R7[KodOS#, NameOS, CenaOs, SrokSlOS, GodVOS, NomInv, NomZav, NomPasp];

R8[NomDoc#, DataDoc#, KodStrPodr, KodVidD, KodOsnov, NomOsnov, DataOsnov, DataNI, DataOI KodVidOper, DataInvent, TabNom1, TabNom2];

R9[NomDoc#, DataDoc#, KodOS#, KolIzl, KolNedost].

Отношение в третьей НФ – это отношение во второй НФ, в котором любой реквизит, не входящий в состав ключа, не транзитивно зависит от ключа.

Рассмотрим схему отношения R1. В эту схему входит атрибут NameOrg который транзитивно зависит от ключа(KodStrPodr → KodOrg → NameOrg).

Таким образом заменим первое отношение двумя:

R1.1[KodStrPodr#, NameStrPodr, KodOrg];

R1.2[KodOrg#, NameOrg].

В результате получается оптимальная схема базы данных в третьей нормальной форме:

Org[KodOrg#, NameOrg] – организации;

StrPodr[KodStrPodr#, NameStrPodr, KodOrg] – структурные подразделения;

VidD[KodVidD#, NameVidD] – виды деятельности;

Osnov[KodOsnov#, NameOsnov] – виды оснований;

Oper[KodVidOper#, NameVidOper] – виды операций;

Dol[KodDol#, NameDol]- виды должностей;

Pers[TabNom#, Fio, KodDol] – персонал фирмы;

OS[KodOS#, NameOS, CenaOs, SrokSlOS, GodVOS, NomInv, NomZav, NomPasp] – основные средства;

SVOS[NomDoc#, DataDoc#, KodStrPodr, KodVidD, KodOsnov, NomOsnov, DataOsnov, DataNI, DataOI, KodVidOper, DataInvent, TabNom1, TabNom2] – реестр сличительных ведомостей;

SVDan[NomDoc#, DataDoc#, KodOS#, KolIzl, KolNedost] – данные по основным средствам из сличительных ведомостей.