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


Ignore:
Timestamp:
09/13/25 16:01:37 (5 days ago)
Author:
201205
Comment:

--

Legend:

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

    v8 v9  
     1= Нормализација =
    12
    2 * [wiki:Normalization001 Прв Чекор]
    3 * [wiki:Normalization002 Втор Чекор]
     3=== Почетна релација:
     4
     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)
     6
     7
     8=== Функционални зависности:
     9
     10!UserId -> !FirstName, !LastName, Email, Username, Password, City, Neighborhood, Bio, Quote
     11
     12Email -> !UserId, !FirstName, !LastName, Username, Password, City, Neighborhood, Bio, Quote
     13
     14Username -> !UserId, !FirstName, !LastName, Email, Password, City, Neighborhood, Bio, Quote
     15
     16!BookId -> Title, Author, Language, !ImageURL
     17
     18!BookISBNId -> !BookId, ISBN
     19
     20!GenreId -> !BookId, Genre
     21
     22!InventoryId-> !UserId, Availability, Condition, !BookId
     23
     24!WishId -> !UserId, Priority, !BookId
     25
     26!RequestId -> !UserId, !BookId, !InventoryId, !RequestStatus, !RequestDate
     27
     28!TransactionId  -> !RequestId, !UserId, !InventoryId, !BorrowDate, !ReturnDate, !BorrowDuration
     29
     30!SwapId -> !TransactionId
     31
     32!ReviewId -> !TransactionId, !UserId, Rating, !ReviewerComment, !ReviewDate
     33
     34!MessageId -> !UserId, !MsgTime, !MsgDate, !MessageContent
     35
     36!FriendshipId -> !UserId, !DateCreated, !FriendshipStatus
     37
     38!ReportId -> !UserId, !ReportType, !ReportDate, Details, !ReportStatus, !ReportedEntity
     39
     40Notification -> !NotificationId, !TransactionId, !MessageId, !FriendshipId, !RequestId, Type, !NotifTime, !NotifDate, Description, !NotificationStatus
     41
     42----
     43
     44Лево: BookISBNId, !GenreId, !WishId, !SwapId, !ReviewId, !ReportId
     45
     46Десно: !FirstName, !LastName, Password, City, Neighborhood, Bio, Quote, Title, Author, Language, !ImageURL, ISBN, Genre, Availability, Condition, Priority, !RequestStatus, !RequestDate, !BorrowDate, !ReturnDate, !BorrowDuration, Rating, !ReviewerComment, !ReviewDate, !MsgTime, !MsgDate, !MessageContent ,!DateCreated, !FriendshipStatus, !ReportType, !ReportDate, Details, !ReportStatus, !ReportedEntity, Type, !NotifTime, !NotifDate, Description, !NotificationStatus
     47
     48Од двете страни: !UserId, Email, Username, !BookId, !InventoryId, !RequestId, !TransactionId, !MessageId, !FriendshipId, !NotificationId
     49
     50
     51----
     52
     53
     54BookISBNId += {!BookId, ISBN, Title, Author, Language, !ImageURL}
     55
     56Не ги содржи сите атрибути
     57
     58!GenreId += {!BookId, Genre, Title, Author, Language, !ImageURL}
     59
     60Не ги содржи сите атрибути
     61
     62!WishId += {!UserId, Priority, !BookId, Title, Author, Language, !ImageURL, FirstName, LastName, Email, Username, Password, City, Neighborhood, Bio, Quote}
     63
     64Не ги содржи сите атрибути
     65
     66!SwapId += {!TransactionId, !RequestId, !UserId, !InventoryId, !BorrowDate, !ReturnDate, !BorrowDuration, !BookId, !RequestStatus, !RequestDate, FirstName, LastName, Email, Username, Password, City, Neighborhood, Bio, Quote, Availability, Condition, Title, Author, Language, !ImageURL}
     67
     68Не ги содржи сите атрибути
     69
     70!ReviewId += {!TransactionId, !UserId, Rating, !ReviewerComment, !ReviewDate, !RequestId, !InventoryId, !BorrowDate, !ReturnDate, !BorrowDuration, FirstName, LastName, Email, Username, Password, City, Neighborhood, Bio, Quote, !BookId, !RequestStatus, !RequestDate, Availability, Condition, Title, Author, Language, !ImageURL}
     71
     72Не ги содржи сите атрибути
     73
     74!ReportId += {!UserId, !ReportType, !ReportDate, Details, !ReportStatus, !ReportedEntity, !FirstName, !LastName, Email, Username, Password, City, Neighborhood, Bio, Quote}
     75
     76Не ги содржи сите атрибути
     77
     78**!ReviewId, BookISBNId, !GenreId, !WishId, !SwapId, !ReportId** = { !ReviewId, !BookISBNId, !GenreId, !WishId, !SwapId, !ReportId, !NotificationId, !TransactionId, !UserId, Rating, !ReviewerComment, !ReviewDate, !InventoryId, !BorrowDate, !ReturnDate, !BorrowDuration, !FirstName, !LastName, Email, Username, Password, City, Neighborhood, Bio, Quote, Availability, Condition, !BookId, Title, Author, Language, !ImageURL, ISBN, Genre, Priority, !ReportType, !ReportDate, Details, !ReportStatus, !ReportedEntity, !MessageId, !FriendshipId, !RequestId, Type, !NotifTime, !NotifDate, Description, !NotificationStatus, !MsgTime, !MsgDate, !MessageContent, !DateCreated, !FriendshipStatus, !RequestStatus, !RequestDate} **Следува дека е единствен кандидат клуч и го прогласуваме за примарен клуч.**
     79
     80=== Декомпозиција до највисока можна нормална форма
     81
     82Релацијата R е во 1НФ, со тоа што вредностите на сите атрибути се атомични, но не е во 2НФ, бидејќи за релацијата не е точно дека секој не-примарен атрибут е целосно функционално зависен од примарниот клуч (!ReviewId, BookISBNId, !GenreId, !WishId, !SwapId, !ReportId), и со тоа имаме парцијални зависности кои ја нарушуваат 2НФ.
     83