Changes between Version 2 and Version 3 of Normalization


Ignore:
Timestamp:
09/01/25 00:31:40 (2 months ago)
Author:
222004
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Normalization

    v2 v3  
    77Целта е да се докаже, со користење на функционални зависности, покривачи и суперклучеви, дека секоја релација ја задоволува Boyce–Codd Normal Form (BCNF).
    88
    9 == Идентификување на суперклучеви и нивните покривачи
     9== Нормализација
     10Првичниот дизајн не ја содржеше релацијата **Facility**. Наместо тоа, релацијата **Inventory** беше директно врзана со **Company**, според следниот модел:\\
     11
     12Inventory(id, company_id, code, ...)\\
     13
     14Функционалните зависности беа:\\
     15- id → {company_id, code, ...}\\
     16- code → id\\
     17- company_id → code  \\
     18\\
     19Последната зависност company_id → code претставува проблем: левата страна (company_id) не е суперклуч, а детерминира друг атрибут. Ова е директно прекршување на условот за BCNF.
     20
     21**Доказ преку покривач:**\\
     22- (company_id)⁺ = {company_id, code}  \\
     23→ не го покрива целиот сет на атрибути во Inventory.  \\
     24- Значи company_id не е суперклуч, а сепак детерминира code.  \\
     25- Следува: Inventory **не е во BCNF**.\\
     26
     27----
     28
     29== Декомпозиција за да се постигне BCNF
     30
     31За да се елиминира прекршувањето, воведовме нова релација **Facility**. \\
     32Сега добиваме:\\
     33\\
     34Facility(id, company_id, facility_name, code)  \\
     35Inventory(id, facility_id, ...)\\
     36\\
     37Нови функционални зависности:\\
     38- Во Facility:  \\
     39  id → {company_id, facility_name, code}  \\
     40  code → id  \\
     41  → во двата случаи левата страна е клуч → Facility е во BCNF.  \\
     42\\
     43- Во Inventory:  \\
     44  id → {facility_id, ...}  \\
     45  facility_id е уникатен → facility_id → id  \\
     46  → левата страна секогаш е клуч → Inventory е во BCNF.\\
     47
     48Со оваа декомпозиција овозможивме и полесно скалирање на апликацијата во иднина, што воедно беше и наша цел.
     49
     50----
     51
     52== Идентификување на суперклучеви и нивните покривачи после нормализацијата
    1053
    1154**Users**\\