Changes between Version 19 and Version 20 of Нормализација и подобрувања на дизајнот
- Timestamp:
- 09/14/25 14:41:23 (4 days ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Нормализација и подобрувања на дизајнот
v19 v20 3 3 === Почетна релација: 4 4 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)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) 6 6 7 7 … … 343 343 !MessageId, !FriendshipId} 344 344 345 ---- 346 347 Од релацијата !LinkingEntities понатаму можеме да извадиме некои атрибути кои немаат потреба од дополно референцирање на надворешни клучеви, бидејќи веќе ги содржат сите соодветни надворешни клучеви во своите сопствени табели. 348 349 Тие атрибути се: !SwapId, и !ReportId. 350 351 352 R28 = {!ReviewId, BookISBNId, !GenreId, !WishId, !NotificationId, !TransactionId, !RequestId, !InventoryId, !BookId, !UserId, !MessageId, !FriendshipId} 353 354 355 Преглед на ФЗ-и: 356 357 BookISBNId -> !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 391 R30 = {!BookId, !GenreId, BookISBNId} 392 ---- 393 394 R31 = {!BookId, !RequestId, !InventoryId, !WishId, !ReviewId, !NotificationId, !TransactionId, !UserId, !MessageId, !FriendshipId} 395 ---- 396 397 R32 = {!RequestId, !BookId, !InventoryId, !WishId, !UserId} 398 399 R321 = {!InventoryId, !WishId, !UserId} 400 401 R322 = {!InventoryId, !WishId, !RequestId, !BookId} 402 ---- 403 404 R33 = {!RequestId, !ReviewId, !InventoryId, !NotificationId, !TransactionId, !MessageId, !FriendshipId} 405 ---- 406 407 R34 = {!TransactionId, !ReviewId} 408 409 R35 = {!TransactionId, !RequestId, !InventoryId, !NotificationId, !MessageId, !FriendshipId} 410 ---- 411 412 R36 = {!TransactionId, !RequestId, !InvenotryId} 413 414 R37 = {!TransactionId, !MessageId, !FriendshipId, !RequestId, !NotificationId} 345 415 346 416 === Резултат од декомпозиција … … 436 506 • TransactionId2 референцира кон Transaction(!TransactionId) 437 507 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 510 R30 = {!GenreId*, BookISBNId*, !BookId*} 511 512 **!LibraryWishlistLink** 513 514 R321 = {!InventoryId*, !WishId*, !UserId*} 515 516 **!BookRequestLink** 517 518 R322 = {!InventoryId*, !WishId*, !RequestId*, !BookId*} 519 520 **!TransactionReviewLink** 521 522 R34 = {!TransactionId*, !ReviewId*} 523 524 **!TransactionRequestLink** 525 526 R36 = {!TransactionId*, !RequestId*, !InvenotryId*} 527 528 **!NotificationLinks** 529 530 R37 = {!NotificationId*, !TransactionId*, !MessageId*, !FriendshipId*, !RequestId*} 456 531 457 532 ----