| 582 | ---- |
| 583 | Разлики од почетниот дизајн на базата до нормализација: |
| 584 | |
| 585 | |
| 586 | Додадени се табелите !GenreLink, ISBNLink, !WishlistBookLink, !LibraryBookLink, !BookRequestLink, !ReviewLink, !TransactionLink, !BookRequestLink, !MessageNotifLink, !FriendNotifLink, !BookRequestNotifLink, !TransactionNotifLink, кои ги спојуваат главните табели од базата, како !AppUser, Book, Transaction, !BookRequest, !LibraryBook, итн, а од нив се извадени надворешни клучеви кои правеа редундантности во оригиналните табели. |
| 587 | |
| 588 | На пример, првично: |
| 589 | |
| 590 | Transaction(!TransactionId, !RequestId*, !BorrowerId*, !LenderId*, !InventoryId*, !BorrowDate, !ReturnDate, !BorrowDuration) |
| 591 | |
| 592 | !BookRequest(!RequestId, !RequesterId*, !OwnerId*, !BookId*, !InventoryId*, !RequestStatus, !RequestDate) |
| 593 | |
| 594 | Од нив се извадени !RequestId, и !InventoryId, и !InventoryId, и !BookId соодветно, така што по нормализација изгледаат вака: |
| 595 | |
| 596 | Transaction(!TransactionId, !BorrowerId*, !LenderId*, !BorrowDate, !ReturnDate, !BorrowDuration) |
| 597 | |
| 598 | !BookRequest(!RequestId, !RequesterId*, !OwnerId*, !RequestStatus, !RequestDate) |
| 599 | |
| 600 | А надворешните клучеви се ставени во две посебни табели: |
| 601 | |
| 602 | !TransactionLink(!TransactionId*, !RequestId*) |
| 603 | |
| 604 | !BookRequestLink(!RequestId*, !InventoryId*) |
| 605 | |
| 606 | Понатаму, извадени се и табелите !ContainsLibraryBook, !ContainsWishlistBook, !ExchangingBook, и !ReceivesNotification. |
| 607 | |
| 608 | |
| 609 | Почетната база на податоци, иако имаше помалку табели, и беше можеби пологична и полесна за разбирање на прв поглед, сепак имаше скриени аномалии кои подоцна би правеле проблеми при спојување. По нормализацијата, иако имаме повеќе табели, и сложеноста на базата е навидум поголема, сепак повеќе немаме редундантности и аномалии, и се очекува да се генерираат валидни записи при работата. |
| 610 | |
| 611 | |