Changes between Initial Version and Version 1 of Нормализација и подобрувања на дизајнот


Ignore:
Timestamp:
07/06/25 21:17:30 (11 days ago)
Author:
201205
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Нормализација и подобрувања на дизајнот

    v1 v1  
     1== Нормализација ==
     2
     3=== Нормализација на !BookRequest ===
     4
     5Првично: **!BookRequest = {__RequestId__, __!RequesterId*__, __!OwnerId*__, __!BookId*__, __!InventoryId*__, !RequestStatus, !RequestDate}**
     6
     7    • !RequesterId референцира кон User(!UserId)
     8    • !OwnerId референцира кон User(!UserId)
     9    • !BookId референцира кон Book(!BookId)
     10    • !InventoryId референцира кон Library(!InventoryId)
     11
     12||= !RequestId =||= !RequesterId =||= !OwnerId =||= !BookId =||= !InventoryId =||= !RequestStatus =||= !RequestDate =||
     13||= 1 =||= 1 =||= 2 =||= 1 =||= 1 =||= Approved =||= 2024-04-15 =||
     14||= 2 =||= 1 =||= 4 =||= 3 =||= 2 =||= Pending =||= 2024-06-23 =||
     15
     161НФ: Вредностите на атрибутите се атомични.
     172НФ: Сите атрибути се функционално определени од примарниот клуч !RequestId кој е составен од само еден атрибут (не е композитен).
     18
     19
     203НФ: Примарниот клуч !RequestId ги одредува сите атрибути.
     21
     22Но, ако ги погледнеме !InventoryId и !BookId, меѓу нив може да ја има функционалната зависност:
     23
     24**!InventoryId -> !BookId**
     25
     26Заради тоа што !InventoryId ќе биде поврзано за специфична книга, поради појавата на транзитивност !RequestId -> !InventoryId -> !BookId, и поради тоа што !InventoryId не е супер-клуч, ова може да ја наруши 3НФ.
     27Бидејќи веќе имаме релација !ContainsLibraryBook(!InventoryId*, !BookId*), можеме безбедно да го извадиме атрибутот !BookId од !BookRequest, бидејќи преку !InventoryId можеме лесно да стигнеме до !BookId, и точно да одредиме за која книга се работи.
     28
     29Па затоа можеме да ја смениме релацијата во:
     30**!BookRequest= {!RequestId, !RequesterId*, !OwnerId*, !InventoryId*, !RequestStatus, !RequestDate}**
     31
     32И сега да ја исполнува 3НФ.
     33
     34БКНФ: На левата страна од ФЗ има супер-клуч.