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


Ignore:
Timestamp:
09/14/25 14:41:23 (4 days ago)
Author:
201205
Comment:

--

Legend:

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

    v19 v20  
    33=== Почетна релација:
    44
    5 R(!UserId, !FirstName, !LastName, Email, Username, Password, City, Neighborhood, Bio, Quote, !BookId, Title, Author, Language, !ImageURL, !BookISBNId, ISBN, !GenreId, Genre, !InventoryId, Availability, Condition, !WishId, Priority, !RequestId, !RequestStatus, !RequestDate, !TransactionId, !BorrowDate, !ReturnDate, !BorrowDuration, !SwapId, !ReviewId, Rating, !ReviewerComment, !ReviewDate, !MessageId, !MsgTime, !MsgDate, !MessageContent, !FriendshipId, !DateCreated, !FriendshipStatus, !ReportId, !ReportType, !ReportDate, Details, !ReportStatus, !ReportedEntity, !NotificationId, Type, !NotifTime, !NotifDate, Description, !NotificationStatus, !RequesterId, !OwnerId, !BorrowerId, !LenderId, !TransactionId1, !TransactionId2, !ReceiverId, !GiverId, !MsgSenderId, !MsgReceiverId, !FriendshipSenderId, !FriendshipReceiverId, !ReportedUserId, !ReportingUserId)
     5R (!UserId, !FirstName, !LastName, Email, Username, Password, City, Neighborhood, Bio, Quote, !BookId, Title, Author, Language, !ImageURL, !BookISBNId, ISBN, !GenreId, Genre, !InventoryId, Availability, Condition, !WishId, Priority, !RequestId, !RequestStatus, !RequestDate, !TransactionId, !BorrowDate, !ReturnDate, !BorrowDuration, !SwapId, !ReviewId, Rating, !ReviewerComment, !ReviewDate, !MessageId, !MsgTime, !MsgDate, !MessageContent, !FriendshipId, !DateCreated, !FriendshipStatus, !ReportId, !ReportType, !ReportDate, Details, !ReportStatus, !ReportedEntity, !NotificationId, Type, !NotifTime, !NotifDate, Description, !NotificationStatus, !RequesterId, !OwnerId, !BorrowerId, !LenderId, !TransactionId1, !TransactionId2, !ReceiverId, !GiverId, !MsgSenderId, !MsgReceiverId, !FriendshipSenderId, !FriendshipReceiverId, !ReportedUserId, !ReportingUserId)
    66
    77
     
    343343         !MessageId, !FriendshipId}
    344344
     345----
     346
     347Од релацијата !LinkingEntities понатаму можеме да извадиме некои атрибути кои немаат потреба од дополно референцирање на надворешни клучеви, бидејќи веќе ги содржат сите соодветни надворешни клучеви во своите сопствени табели.
     348
     349Тие атрибути се:  !SwapId, и !ReportId.
     350
     351
     352R28 =  {!ReviewId, BookISBNId, !GenreId, !WishId, !NotificationId, !TransactionId, !RequestId, !InventoryId, !BookId, !UserId, !MessageId, !FriendshipId}
     353
     354
     355Преглед на ФЗ-и:
     356
     357BookISBNId -> !BookId
     358
     359!GenreId -> !BookId
     360
     361!RequestId  -> !BookId
     362
     363!RequestId -> !InventoryId
     364
     365!InventoryId -> !BookId
     366
     367!InventoryId -> !UserId
     368
     369!TransactionId -> !RequestId
     370
     371!TransactionId -> !InventoryId
     372
     373!WishId -> !BookId
     374
     375!WishId -> !UserId
     376
     377!NotificationId -> !MessageId
     378
     379!NotificationId -> !FriendshipId
     380
     381!NotificationId -> !RequestId
     382
     383!NotificationId -> !TransactionId
     384
     385!ReviewId -> !TransactionId
     386
     387Сепак, релацијата сеуште не е во БКНФ бидејќи содржи парцијални зависности, и затоа продолжуваме со декомпозиција.
     388----
     389
     390
     391R30 = {!BookId, !GenreId, BookISBNId}
     392----
     393
     394R31 = {!BookId, !RequestId, !InventoryId, !WishId, !ReviewId, !NotificationId, !TransactionId, !UserId, !MessageId, !FriendshipId}
     395----
     396
     397R32 = {!RequestId, !BookId, !InventoryId, !WishId, !UserId}
     398
     399R321 = {!InventoryId, !WishId, !UserId}
     400
     401R322 = {!InventoryId, !WishId, !RequestId, !BookId}
     402----
     403
     404R33 = {!RequestId, !ReviewId, !InventoryId, !NotificationId, !TransactionId, !MessageId, !FriendshipId}
     405----
     406
     407R34 = {!TransactionId, !ReviewId}
     408
     409R35 = {!TransactionId, !RequestId,  !InventoryId, !NotificationId,  !MessageId, !FriendshipId}
     410----
     411
     412R36 = {!TransactionId, !RequestId, !InvenotryId}
     413
     414R37 = {!TransactionId, !MessageId, !FriendshipId, !RequestId, !NotificationId}
    345415
    346416=== Резултат од декомпозиција
     
    436506    • TransactionId2 референцира кон Transaction(!TransactionId)
    437507
    438 
    439 **!LinkingEntities**
    440 
    441 R28 =  {!ReviewId, BookISBNId, !GenreId, !WishId, !SwapId, !ReportId, !NotificationId, !TransactionId, !RequestId, !InventoryId, !BookId, !UserId, !MessageId, !FriendshipId}
    442 
    443 
    444 
    445 === Дополнително подобрување на дизајнот на релацијата !LinkingEntities
    446 
    447 Од релацијата !LinkingEntities понатаму можеме да извадиме некои атрибути кои немаат потреба од дополно референцирање на надворешни клучеви, бидејќи веќе ги содржат сите соодветни надворешни клучеви во своите сопствени табели.
    448 
    449 Тие атрибути се:  !SwapId, и !ReportId.
    450 
    451 Финалната релација сега е:
    452 
    453 **!LinkingEntities**
    454 
    455 R28 =  {!ReviewId, BookISBNId, !GenreId, !WishId, !NotificationId, !TransactionId, !RequestId, !InventoryId, !BookId, !UserId, !MessageId, !FriendshipId}
     508**GenreISBNLink**
     509
     510R30 = {!GenreId*, BookISBNId*, !BookId*}
     511
     512**!LibraryWishlistLink**
     513
     514R321 = {!InventoryId*, !WishId*, !UserId*}
     515
     516**!BookRequestLink**
     517
     518R322 = {!InventoryId*, !WishId*, !RequestId*, !BookId*}
     519
     520**!TransactionReviewLink**
     521
     522R34 = {!TransactionId*, !ReviewId*}
     523
     524**!TransactionRequestLink**
     525
     526R36 = {!TransactionId*, !RequestId*, !InvenotryId*}
     527
     528**!NotificationLinks**
     529
     530R37 = {!NotificationId*, !TransactionId*, !MessageId*, !FriendshipId*, !RequestId*}
    456531
    457532----