== Функционални карактеристики и нормализација == '''Functional Dependencies:''' * R = { UserID, Username, FirstName, LastName, Address, Phone, Password, Email, Role } * UserID → Username, FirstName, LastName, Address, Phone, Password, Email, Role Анализа на нормализација: * 1NF: Сите колони се атомски * 2NF: Бидејќи има само еден атрибут во кандидатскиот клуч (UserID), секој атрибут без клуч е целосно функционално зависен од UserID. * 3NF: Нема преодни зависности (на пр., ниту еден атрибут без клуч не одредува друг атрибут без клуч). Заклучок: User се во BCNF. '''''Потенцијална декомпозиција:''''' * R1 = { UserID, FirstName, LastName, Address, Phone, Password, Role } * R2 = { UserID, Email, Username } ''Сепак, од практични причини и за да избегнеме прекумерни спојувања при преземање информации за корисникот, ќе ја оставиме оваа табела како што е.'' === === '''Functional Dependencies:''' * R = { MemberID, Expired_Date, Membership_Status, UserID } * MemberID → Expired_Date, Membership_Status, UserID * UserID → MemberID (1:1) Анализа на нормализација: * 1NF: Сите полиња се атомски. * 2NF: Секој атрибут без клуч е целосно зависен од MemberID. * 3НФ: Нема транзитивни зависности. Заклучок: Member е во BCNF. === === '''Functional Dependencies:''' * BookID → ISBN, Title, Genre, PublishedYear, Description, CoverImage, TotalCopies Анализа на нормализација: * 1NF: Сите атрибути се атомски. * 2NF: Сите атрибути кои не се клучни зависат целосно од BookID. * 3НФ: Нема преодни зависности. Заклучок: Book е во BCNF. === === '''Functional Dependencies:''' * R = { DetailsID, BookID, Format, Language, Publisher, Pages } * DetailsID → BookID, Format, Language, Publisher, Pages * BookID → Format, Language, Publisher, Pages (1:1) Анализа на нормализација: * 1NF: Сите атрибути се атомски. * 2NF: Сите атрибути кои не се клучни зависат целосно од DetailsID. * 3НФ: Нема преодни зависности. Заклучок: Book_Details е во BCNF. === === '''Functional Dependencies:''' * R = { CopyID, BookID, Condition } * CopyID → BookID, Condition Анализа на нормализација: * 1NF: Сите атрибути се атомски. * 2NF: Сите атрибути кои не се клучни зависат целосно од CopyID. * 3НФ: Нема преодни зависности. Заклучок: Book_Copies е во BCNF. === === '''Functional Dependencies:''' * R = { AuthorID, FirstName, LastName, Nationality, DateOfBirth, Author_description, Author_image } * AuthorID → FirstName, LastName, Nationality, DateOfBirth, Author_description, Author_image Анализа на нормализација: * 1NF: Сите атрибути се атомски. * 2NF: Сите атрибути кои не се клучни зависат целосно од AuthorID. * 3НФ: Нема преодни зависности. Заклучок: Author е во BCNF. === === '''Functional Dependencies:''' * R = { LoanID, LoanDate, ReturnDate, Status, BookCopyID, MemberID } * LoanID → LoanDate, ReturnDate, Status, BookCopyID, MemberID Анализа на нормализација: * 1NF: Сите атрибути се атомски. * 2NF: Сите атрибути кои не се клучни зависат целосно од LoanID. * 3НФ: Нема преодни зависности. Заклучок: Loan е во BCNF. === === '''Functional Dependencies:''' * R = { FineID, FineAmount, FineDate, Status, LoanID } * FineID → FineAmount, FineDate, Status, LoanID * LoanID → FineID (1:1) Анализа на нормализација: * 1NF: Сите атрибути се атомски. * 2NF: Сите атрибути кои не се клучни зависат целосно од FineID. * 3НФ: Нема преодни зависности. Заклучок: Fine е во BCNF. === === '''Functional Dependencies:''' * R = { FinePaymentID, PaymentDate, PaymentAmount, FineID } * FinePaymentID → PaymentDate, PaymentAmount, FineID Анализа на нормализација: * 1NF: Сите атрибути се атомски. * 2NF: Сите атрибути кои не се клучни зависат целосно од FinePaymentID. * 3НФ: Нема преодни зависности. Заклучок: FinePayment е во BCNF.