Changes between Version 1 and Version 2 of Normalization012


Ignore:
Timestamp:
09/04/25 12:30:42 (5 days ago)
Author:
201205
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Normalization012

    v1 v2  
    5050=== ===
    5151
    52 **Лево:** !BookISBNId,!GenreId, !WishId, !SwapId, !ReviewId, !ReportId
     52**Лево:** !BookISBNId, !GenreId, !WishId, !SwapId, !ReviewId, !ReportId
    5353
    54 **Десно:** 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
     54**Десно:** !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
    5555
    5656**Од двете страни:** !UserId, Email, Username, !BookId, !InventoryId, !RequestId, !TransactionId, !MessageId, !FriendshipId, !NotificationId, !TransactionId, !MessageId, !FriendRequestId, !BookRequestId
     57
     58=== ===
     59
     60
     61BookISBNId+={BookId, ISBN, Title, Author, Language, ImageURL}
     62        Не ги содржи сите атрибути
     63
     64GenreId+={BookId, Genre, Title, Author, Language, ImageURL}
     65        Не ги содржи сите атрибути
     66
     67WishId+={UserId, Priority, BookId, Title, Author, Language, ImageURL, FirstName, LastName, Email, Username, Password, City, Neighborhood, Bio, Quote}
     68        Не ги содржи сите атрибути
     69
     70SwapId+={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}
     71        Не ги содржи сите атрибути
     72
     73ReviewId+={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}
     74        Не ги содржи сите атрибути
     75
     76ReportId+={UserId, ReportType, ReportDate, Details, ReportStatus, ReportedEntity, FirstName, LastName, Email, Username, Password, City, Neighborhood, Bio, Quote}
     77        Не ги содржи сите атрибути
     78
     79
     80
     81ReviewId, 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, NotificationStatus, MsgTime, MsgDate, MessageContent, DateCreated, FriendshipStatus,  RequestStatus, RequestDate,  TN_Description, MN_Description, FR_Description, BR_Description}
     82
     83Следува дека е единствен кандидат клуч и го прогласуваме за примарен клуч.
    5784
    5885=== ===
     
    7097Според дефиницијата за БКНФ, секоја нетривијална функционална зависност X → A мора да има X како суперклуч во релацијата.
    7198
    72 Ако ја третираме целата шема како една релација R, тогаш многу од функционалните зависности (на пр. UserId = {!FirstName, !LastName, Email, Username, Password, City, Neighborhood, Bio, Quote}) ја нарушуваат БКНФ бидејќи UserId не е суперклуч на целата релација.
     99Ако ја третираме целата шема како една релација R, тогаш многу од функционалните зависности (на пр. !UserId = {!FirstName, !LastName, Email, Username, Password, City, Neighborhood, Bio, Quote}) ја нарушуваат БКНФ бидејќи !UserId не е суперклуч на целата релација.
    73100
    74101Но во мојот случај, функционалните зависности веќе се распоредени по релации каде што левата страна е суперклуч.
    75102
    76 На пример: ReviewId = {TransactionId, UserId, Rating, ReviewerComment, ReviewDate} е веќе претставена како релација Review(ReviewId, TransactionId, UserId, Rating, ReviewerComment, ReviewDate), каде ReviewId е суперклуч.
     103На пример: !ReviewId = {!TransactionId, !UserId, Rating, !ReviewerComment, !ReviewDate} е веќе претставена како релација Review(ReviewId, !TransactionId, !UserId, Rating, !ReviewerComment, !ReviewDate), каде !ReviewId е суперклуч.
    77104
    78105Ако продолжиме со декомпозиција на целосната релација според секоја функционална зависност, ќе изгубиме атрибути кои се потребни за другите зависности.
    79 На пример, атрибутот UserId е присутен во функционалните зависности:
     106На пример, атрибутот !UserId е присутен во функционалните зависности:
    80107
    81 InventoryId-> UserId, Availability, Condition, BookId
     108!InventoryId-> !UserId, Availability, Condition, !BookId
    82109
    83 WishId -> UserId, Priority, BookId
     110!WishId -> !UserId, Priority, !BookId
    84111
    85 RequestId -> UserId, InventoryId, RequestStatus, RequestDate
     112!RequestId -> !UserId, !InventoryId, !RequestStatus, !RequestDate
    86113
    87 ReviewId -> TransactionId, UserId, Rating, ReviewerComment, ReviewDate
     114!ReviewId -> !TransactionId, !UserId, Rating, !ReviewerComment, !ReviewDate
    88115
    89 И многу други, и доколку тргнеме по традиционалната постапка на декомпозиција, UserId може да премине во една релација, а да биде потребна во неколку други.
     116И многу други, и доколку тргнеме по традиционалната постапка на декомпозиција, !UserId може да премине во една релација, а да биде потребна во неколку други.
    90117
    91118Затоа, сметам дека тековната структура на базата во случајов е веќе резултат на декомпозиција и ги почитува правилата на БКНФ.