== Направени промени Направена е промена во релацијата service_for_pets. Релацијата е променета од 1:N Pet_Cares:Pets во 1:N Pets:Pet_Cares. Промената ја направив бидејќи не е логично за едно животно да може да се побара само една услуга. За едно милениче ќе може да бидат побарувани повеќе услуги но секоја услуга истовремено ќе може да биде побарана од само едно милениче. Уште подобро би било ако се промеви во many-to-many но засега останува вака. == A) Oпределување на важечките функциски зависности Тргнуваме од список во кој сите атрибути имаат различни имиња. За таа цел атрибутите кои што имаат исти имиња ги преименувавме. Во продолжение е списокот на атрибути кои што се преименувани. {{{ *id (Кај ентитетот Users) = users_id *id (Кај ентитетот Pet_Cares) = pet_cares_id *id (Kaj ентитетот Blog_Post_For_Consultation) = blog_post_for_consultation_id *id (Kaj ентитетот Blog_Post_Answers) = blog_post_answers_id *id (Kaj ентитетот Jobs) = jobs_id *id (Kaj ентитетот Vet_Centers) = vet_centers_id *id (Kaj ентитетот Cities) = cities_id *id (Kaj ентитетот Roles) = roles_id *id (Kaj ентитетот Reports) = reports_id *id (Kaj ентитетот Pet_Status) = pet_status_id *id (Kaj ентитетот Therapy) = therapy_id *id (Kaj ентитетот Diagnostics) = diagnostics_id *id (Kaj ентитетот Medecines) = medecines_id *id (Kaj ентитетот Manufacturers) = manufacturers_id *id (Kaj ентитетот Pets) = pets_id *id (Kaj ентитетот Pet_Galery) = pet_galery_id *id (Kaj ентитетот Orders) = orders_id *id (Kaj ентитетот Products) = products_id *id (Kaj ентитетот Type_Of_Pets) = type_of_pets_id *id (Kaj ентитетот Breeds) = breeds_id *title (Kaj ентитетот Blog_Post_For_Consultations) = blog_post_title *description (Kaj ентитетот Blog_Post_For_Consultations) = blog_post_description *description (Kaj ентитетот Jobs) = jobs_description *description (Kaj ентитетот Vet_Centers) = vet_centers_description *name (Kaj ентитетот Cities) = cities_name *description (Kaj ентитетот Reports) = reports_description *type (Kaj ентитетот Pet_Status) = pet_status_type *description (Kaj ентитетот Therapy) = therapy_description *description (Kaj ентитетот Diagnostics) = diagnostics_description *name (Kaj ентитетот Medecines) = medecines_name *description (Kaj ентитетот Medecines) = medecines_description *name (Kaj ентитетот Manufacturers) = manufacturers_name *description (Kaj ентитетот Manufacturers) = manufacturers_description *name (Kaj ентитетот Pets) = pets_name *description (Kaj ентитетот Pets) = pets_description *name (Kaj ентитетот Products) = products_name *description (Kaj ентитетот Products) = products_description *description (Kaj ентитетот Type_Of_Pets) = type_of_pets_description *name (Kaj ентитетот Breeds) = breeds_name }}} === Функциски зависности {{{ R(jobs_id, jobs_description, predistedSalery, pet_cares_id, title, description, start_date, dateEnding,vet_centers_id, name, address, vet_centers_description, workingHours, latitude, longitude,roles_id, type, users_id, first_name, last_name, phoneNumber, email, password, blog_post_for_consultation_id, blog_post_title, blog_post_description, dateAsked, blog_post_answers_id, parent_id, reply, date_answers, cities_id, cities_name, reports_id, reports_description, pets_id, pet_status_id, node, pet_status_type, therapy_id, appoitmentDate, therapy_description, diagnostics_id, diagnostics_description, medecines_id, manufacturers_name, medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, pet_galery_id, image, orders_id, products_id, products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, breeds_id, breeds_name, kind_of_pet, type_of_pets_description) }}} * jobs_id -> jobs_description, predistedSalery (Секоја работна позиција си има опис и предвидена плата). * pet_cares_id ->title, description, start_date, dateEnding, pets_id (Секоја услуга си има име, опис, датум на започнување и датум на завршување. Претпоставуваме дека секоја услуга истовремено може да биде побарана само за едно милениче). * vet_centers_id-> name, address, vet_centers_description, workingHours, latitude, longitude (Секој вет. центар си има име, адреса, работни часови, координати ( гео. должина и ширина). * roles_id->type (Секоја улога си има свој тип). * users_id -> first_name, last_name, phoneNumber, email, password, roles_id (Секој корисник има име, презиме, тел.број, емаил и пасворд.Секој корисник може да има само една улога: стандарден корисник, менаџер, вработен или админ. Според улогата корисникот добива одредени привилегии). * blog_post_for_consultation_id -> blog_post_title, blog_post_description, dateAsked, users_id (Секое поставено прашање/побарана консултција има наслов, опис, и датум на поставување. Секој побаран совет/прашање е напишен од одреден корисник). * blog_post_answers_id ->parent_id, reply, date_answers, blog_post_for_consultation_id, users_id (Секој одговор е даден врз основа на поставено прашање, има содржина и датум кога е одговорено. Секој одговор е поврзан со едно прашање за консултација и е даден од еден корисник). * cities_id-> cities_name (Секој град си има име). * reports_id-> reports_description, pets_id, users_id (Секој извештај има опис. Секој извештај припаѓа на едно милениче.Секој извештај за одредено милениче е напишан од еден корисник-доктор). * pet_status_id->node, pet_status_type (Секој статус има забелешка и тип). * therapy_id->appoitmentDate, therapy_description (Секоја терапија има датум на започнување и опис). * diagnostics_id-> diagnostics_description (Секоја дијагноза има опис). * medecines_id-> medecines_name, medecines_description, manufacturers_id (Секој лек има име, и упатство. Во нашиот проект претпоставуваме дека секој лек е произведен од само еден произведувач). * manufacturers_id->city, state, manufacturers_name, manufacturers_description (Секој производител на лекот има град, држава, име и опис). * pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id (Секое милениче има име, боја, датум на раѓање и опис. Секое милениче припаѓа на еден вид. Секое милениче има само еден сопственик, во нашата база не е возможно едно милениче да има повеќе сопственици. Кога се врши микрочипирање се запишуваат податоци само од еден сопственик. Секое милениче во еден ветеринарен центар има само еден активен статус во даден момент. Кога статусот се менува, се брише претходниот и се запишува нов). * pet_galery_id->image, pets_id (Секоја слика во галеријата е поврзана само со едно милениче, во нашиот проект имаме замислено на една слика да има само едно милениче за поголема прегледност на идните вдомувачи). * orders_id → userid (Секоја нарачка е направена од еден корисник). * products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity (Секој продукт има име, опис, категорија, датум кога е додаден во системот, дали е достапен, цена и достапна количина). * products_id, orders_id → quantity (Секој продукт кој што се наоѓа во нарачката има одредена нарачана количина). * breeds_id-> breeds_name, type_of_pets_id (Секоја раса си има име. Секоја раса припаѓа на еден вид на милениче, Пр.расата Scottish Fold припага само на видот маче не припага и на видот куче итн). * type_of_pets_id->kind_of_pet, type_of_pets_description (Секој вид на милениче има име и опис). ==== Определување на кандидат клучеви {{{ Од лева страна се наоѓаат следниве атрибути: jobs_id, pet_cares_id, vet_centers_id, blog_post_answers_id, cities_id, reports_id, therapy_id, diagnostics_id, medecines_id, manufacturers_id, pet_galery_id, products_id, breeds_id, orders_id . Од десна страна се наоѓаат следниве атрибути: jobs_description, predistedSalery, title, description, start_date, dateEnding, name, address, vet_centers_description, workingHours, latitude, longitude, type, first_name, last_name, phoneNumber, email, password, blog_post_title, blog_post_description, dateAsked, parent_id, reply, date_answers, cities_name, reports_description, node, pet_status_type, appoitmentDate, therapy_description, diagnostics_description, medecines_name, medecines_description, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, image, products_name, products_description, category, dateAdded, isActive, price, available_quantity, quantity, breeds_name, kind_of_pet, type_of_pets_description. Од десна и лева страна се наоѓаат следниве атрибути: roles_id, users_id, blog_post_for_consultation_id, pets_id, type_of_pets_id, pet_status_id. Започнуваме од тривијален суперклуч па постепено отстрануваме атрибути {jobs_id, jobs_description, predistedSalery, pet_cares_id, title, description, start_date, dateEnding,vet_centers_id, name, address, vet_centers_description, workingHours, latitude, longitude, roles_id, type, users_id, first_name, last_name, phoneNumber, email, password, blog_post_for_consultation_id, blog_post_title, blog_post_description, dateAsked, blog_post_answers_id, parent_id, reply, date_answers, cities_id, cities_name, reports_id, reports_description, pets_id, pet_status_id, node, pet_status_type, therapy_id, appoitmentDate, therapy_description, diagnostics_id, diagnostics_description, medecines_id, medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, pet_galery_id, image, orders_id, products_id, products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, breeds_id, breeds_name, kind_of_pet, type_of_pets_description} += {jobs_id, jobs_description, predistedSalery, pet_cares_id, title, description, start_date, dateEnding,vet_centers_id, name, address, vet_centers_description, workingHours, latitude, longitude,roles_id, type, users_id, first_name, last_name, phoneNumber, email, password, blog_post_for_consultation_id, blog_post_title, blog_post_description, dateAsked, blog_post_answers_id, parent_id, reply, date_answers, cities_id, cities_name, reports_id, reports_description, pets_id, pet_status_id, node, pet_status_type, therapy_id, appoitmentDate, therapy_description, diagnostics_id, diagnostics_description, medecines_id, medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, pet_galery_id, image, orders_id, products_id, products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, breeds_id, breeds_name, kind_of_pet, type_of_pets_description} Атрибутите кои што се наоѓаат само од десна страна може да ги отстраниме. Со тоа ги острануваме следниве атрибути: jobs_description, predistedSalery, title, description, start_date, dateEnding, name, address, vet_centers_description, workingHours, latitude, longitude, type, first_name, last_name, phoneNumber, email, password, blog_post_title, blog_post_description, dateAsked, parent_id, reply, date_answers, cities_name, reports_description, node, pet_status_type, appoitmentDate, therapy_description, diagnostics_description, medecines_name, medecines_description, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, image, products_name, products_description, category, dateAdded, isActive, price, available_quantity, quantity, breeds_name, kind_of_pet, type_of_pets_description. {jobs_id, pet_cares_id, title, description, start_date,vet_centers_id, roles_id, users_id, blog_post_for_consultation_id, blog_post_answers_id, cities_id, reports_id, pets_id, pet_status_id, therapy_id, diagnostics_id, medecines_id, manufacturers_id, type_of_pets_id, pet_galery_id, orders_id, products_id, products_name, products_description, category, dateAdded,isActive, breeds_id, kind_of_pet} += {jobs_id, jobs_description, predistedSalery, pet_cares_id, title, description, start_date, dateEnding,vet_centers_id, name, address, vet_centers_description, workingHours, latitude, longitude,roles_id, type, users_id, first_name, last_name, phoneNumber, email, password, blog_post_for_consultation_id, blog_post_title, blog_post_description, dateAsked, blog_post_answers_id, parent_id, reply, date_answers, cities_id, cities_name, reports_id, reports_description, pets_id, pet_status_id, node, pet_status_type, therapy_id, appoitmentDate, therapy_description, diagnostics_id, diagnostics_description, medecines_id, medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, pet_galery_id, image, orders_id, products_id, products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, breeds_id, breeds_name, kind_of_pet, type_of_pets_description} Можеме да го отстраниме и pets_id бидејќи се добива преку pet_galery_id. Можеме да го отстраниме и pet_status_id бидејќи се добива преку pets_id. Можеме да го отстраниме и type_of_pets_id бидејќи се добива преку breeds_id. Можеме да го отстраниме и blog_post_for_consultation_id бидејќи се добова преку blog_post_answers_id. Можеме да го отстраниме и users_id бидејќи се добива преку orders_id. Можеме да го отстраниме и roles_id бидејќи се добива преку users_id. За кандидат клуч добивме: {jobs_id, pet_cares_id, blog_post_answers_id, cities_id, reports_id, therapy_id, medecines_id, pet_galery_id, orders_id, products_id, breeds_id, vet_centers_id, diagnostics_id}. Ниту еден од атрибутите го нема од десна страна во ф.з па ова ни е единствен кандидат клуч, го прогласуваме за примарен клуч. {jobs_id, pet_cares_id, blog_post_answers_id, cities_id, reports_id, therapy_id, medecines_id, pet_galery_id, orders_id, products_id, breeds_id, vet_centers_id, diagnostics_id} += {jobs_id, jobs_description, predistedSalery, pet_cares_id, title, description, start_date, dateEnding,vet_centers_id, name, address, vet_centers_description, workingHours, latitude, longitude,roles_id, type, users_id, first_name, last_name, phoneNumber, email, password, blog_post_for_consultation_id, blog_post_title, blog_post_description, dateAsked, blog_post_answers_id, parent_id, reply, date_answers, cities_id, cities_name, reports_id, reports_description, pets_id, pet_status_id, node, pet_status_type, therapy_id, appoitmentDate, therapy_description, diagnostics_id, diagnostics_description, medecines_id, medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, pet_galery_id, image, orders_id, products_id, products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, breeds_id, breeds_name, kind_of_pet, type_of_pets_description} }}} === Декомпозиција \\ jobs_id -> jobs_description, predistedSalery \\ pet_cares_id ->title, description, start_date, dateEnding, pets_id \\ vet_centers_id-> name, address, vet_centers_description, workingHours, latitude, longitude \\ roles_id->type \\ users_id -> first_name, last_name, phoneNumber, email, password, roles_id \\ blog_post_for_consultation_id -> blog_post_title, blog_post_description, dateAsked, users_id \\ blog_post_answers_id ->parent_id, reply, date_answers, blog_post_for_consultation_id, users_id \\ cities_id-> cities_name \\ reports_id-> reports_description, pets_id, users_id \\ pet_status_id->node, pet_status_type \\ therapy_id->appoitmentDate, therapy_description \\ diagnostics_id-> diagnostics_description \\ medecines_id-> medecines_name, medecines_description, manufacturers_id \\ manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description **Во вака дефинираната релација нема повеќекратни зависности и атрибути и нема вгнездени релации, па оттука следува дека задоволува 1NF.** \\ jobs_id → jobs_description, predistedSalery - Нарушува 2NF бидејќи има парцијална зависност. jobs_id е подмножество на к.к а десно имаме непримарни атрибути. \\ jobs_id +={ jobs_id, jobs_description, predistedSalery } \\ **R,,1,,** ('''jobs_id''', jobs_description, predistedSalery) клуч jobs_id, BCNF. \\ Со наоѓање на сите затварачи \\ **F,,1,,** = { jobs_id → jobs_description, predistedSalery } \\ **R,,2,,** ('''jobs_id''', '''pet_cares_id''', title, description, start_date, dateEnding,'''vet_centers_id''', name, address, vet_centers_description, workingHours, latitude, longitude,roles_id, type, users_id, first_name, last_name, phoneNumber, email, password, blog_post_for_consultation_id, blog_post_title, blog_post_description, dateAsked, '''blog_post_answers_id''', parent_id, reply, date_answers, '''cities_id''', cities_name, '''reports_id''', reports_description, pets_id, pet_status_id, node, pet_status_type, '''therapy_id''', appoitmentDate, therapy_description, '''diagnostics_id''', diagnostics_description, '''medecines_id''', medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ Со наоѓање на сите затварачи \\ **F,,2,,** = (pet_cares_id ->title, description, start_date, dateEnding, pets_id \\ vet_centers_id-> name, address, vet_centers_description, workingHours, latitude, longitude \\ roles_id->type \\ users_id -> first_name, last_name, phoneNumber, email, password, roles_id \\ blog_post_for_consultation_id -> blog_post_title, blog_post_description, dateAsked, users_id \\ blog_post_answers_id ->parent_id, reply, date_answers, blog_post_for_consultation_id, users_id \\ cities_id-> cities_name \\ reports_id-> reports_description, pets_id, users_id \\ pet_status_id->node, pet_status_type \\ therapy_id->appoitmentDate, therapy_description \\ diagnostics_id-> diagnostics_description \\ medecines_id-> medecines_name, medecines_description, manufacturers_id \\ manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,1,, n R,,2,,** = jobs_id, клуч за R,,1,, што значи нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,2,,** не е во 2NF поради pet_cares_id ->title, description, start_date, dateEnding, pets_id \\ pet_cares_id +={ pet_cares_id , title, description, start_date, dateEnding, pets_id} \\ **R,,21,,** ('''pet_cares_id''' , title, description, start_date, dateEnding, pets_id) клуч pet_cares_id, BCNF \\ **F,,21,,** { pet_cares_id ->title, description, start_date, dateEnding, pets_id} \\ **R,,22,,** ('''pet_cares_id''', '''vet_centers_id''', name, address, vet_centers_description, workingHours, latitude, longitude,roles_id, type, users_id, first_name, last_name, phoneNumber, email, password, blog_post_for_consultation_id, blog_post_title, blog_post_description, dateAsked, '''blog_post_answers_id''', parent_id, reply, date_answers, '''cities_id''', cities_name, '''reports_id''', reports_description, pet_status_id, node, pet_status_type, '''therapy_id''', appoitmentDate, therapy_description, '''diagnostics_id''', diagnostics_description, '''medecines_id''', medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,22,,** = ( vet_centers_id-> name, address, vet_centers_description, workingHours, latitude, longitude \\ roles_id->type \\ users_id -> first_name, last_name, phoneNumber, email, password, roles_id \\ blog_post_for_consultation_id -> blog_post_title, blog_post_description, dateAsked, users_id \\ blog_post_answers_id ->parent_id, reply, date_answers, blog_post_for_consultation_id, users_id \\ cities_id-> cities_name \\ reports_id-> reports_description, pets_id, users_id \\ pet_status_id->node, pet_status_type \\ therapy_id->appoitmentDate, therapy_description \\ diagnostics_id-> diagnostics_description \\ medecines_id-> medecines_name, medecines_description, manufacturers_id \\ manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,22,, n R,,21,,** = pet_cares_id, клуч за R,,21,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,22,,** не е во 2NF поради vet_centers_id-> name, address, vet_centers_description, workingHours, latitude, longitude \\vet_centers_id +={ vet_centers_id, name, address, vet_centers_description, workingHours, latitude, longitude} \\ **R,,221,,** ('''vet_centers_id''', name, address, vet_centers_description, workingHours, latitude, longitude) клуч vet_centers_id, BCNF \\ **F,,221,,** { vet_centers_id-> name, address, vet_centers_description, workingHours, latitude, longitude} \\ **R,,222,,** ('''vet_centers_id''', roles_id, type, users_id, first_name, last_name, phoneNumber, email, password, blog_post_for_consultation_id, blog_post_title, blog_post_description, dateAsked, '''blog_post_answers_id''', parent_id, reply, date_answers, '''cities_id''', cities_name, '''reports_id''', reports_description, pets_id, pet_status_id, node, pet_status_type, therapy_id, appoitmentDate, therapy_description, '''diagnostics_id''', diagnostics_description, '''medecines_id''', manufacturers_name, medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,222,,** = (roles_id->type \\ users_id -> first_name, last_name, phoneNumber, email, password, roles_id \\ blog_post_for_consultation_id -> blog_post_title, blog_post_description, dateAsked, users_id \\ blog_post_answers_id ->parent_id, reply, date_answers, blog_post_for_consultation_id, users_id \\ cities_id-> cities_name \\ reports_id-> reports_description, pets_id, users_id \\ pet_status_id->node, pet_status_type \\ therapy_id->appoitmentDate, therapy_description \\ diagnostics_id-> diagnostics_description \\ medecines_id-> medecines_name, medecines_description, manufacturers_id \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description \\ medecines_id → manufacturers_id) \\ **R,,222,, n R,,221,,** = vet_centers_id, клуч за R221 => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ R,,222,, не е во 3NF поради roles_id->type \\ roles_id +={roles_id, type} \\ **R,,2221,,** ('''roles_id''', type) клуч roles_id BCNF \\ **F,,2221,,** { roles_id-> type} \\ **R,,2222,,** ('''roles_id''', users_id, first_name, last_name, phoneNumber, email, password, blog_post_for_consultation_id, blog_post_title, blog_post_description, dateAsked, '''blog_post_answers_id''', parent_id, reply, date_answers, '''cities_id''', cities_name, '''reports_id''', reports_description, pets_id, pet_status_id, node, pet_status_type, '''therapy_id''', appoitmentDate, therapy_description, '''diagnostics_id''', diagnostics_description, '''medecines_id''', medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,2222,,** = (users_id -> first_name, last_name, phoneNumber, email, password, roles_id \\ blog_post_for_consultation_id -> blog_post_title, blog_post_description, dateAsked, users_id \\ blog_post_answers_id ->parent_id, reply, date_answers, blog_post_for_consultation_id, users_id \\ cities_id-> cities_name \\ reports_id-> reports_description, pets_id, users_id \\ pet_status_id->node, pet_status_type \\ therapy_id->appoitmentDate, therapy_description \\ diagnostics_id-> diagnostics_description \\ medecines_id-> medecines_name, medecines_description, manufacturers_id \\ manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,2222,, n R,,2221,,** = roles_id, клуч за R2221 => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,2222,,** не е во 3NF поради users_id -> first_name, last_name, phoneNumber, email, password, roles_id \\ users_id +={users_id, first_name, last_name, phoneNumber, email, password, roles_id} \\ **R,,22221,,** (users_id, first_name, last_name, phoneNumber, email, password, roles_id) клуч users_id BCNF \\ **F,,22221,,** { users_id -> first_name, last_name, phoneNumber, email, password, roles_id } \\ **R,,22222,,** (users_id, blog_post_for_consultation_id, blog_post_title, blog_post_description, dateAsked, blog_post_answers_id, parent_id, reply, date_answers, '''cities_id''', cities_name, '''reports_id''', reports_description, pets_id, pet_status_id, node, pet_status_type, therapy_id, appoitmentDate, therapy_description, '''diagnostics_id''', diagnostics_description, '''medecines_id''', medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **,,F22222,,** = (blog_post_for_consultation_id -> blog_post_title, blog_post_description, dateAsked, users_id \\ blog_post_answers_id ->parent_id, reply, date_answers, blog_post_for_consultation_id, users_id \\ cities_id-> cities_name \\ reports_id-> reports_description, pets_id, users_id \\ pet_status_id->node, pet_status_type \\ therapy_id->appoitmentDate, therapy_description \\ diagnostics_id-> diagnostics_description \\ medecines_id-> medecines_name, medecines_description, manufacturers_id \\ manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,22222,, n R,,22221,,** = users_id, клуч за R22221 => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,22222,,** не е во 3NF поради blog_post_for_consultation_id -> blog_post_title, blog_post_description, dateAsked, users_id \\ blog_post_for_consultation_id +={blog_post_for_consultation_id, blog_post_title, blog_post_description, dateAsked, users_id} \\ **R,,222221,,** ('''blog_post_for_consultation_id''', blog_post_title, blog_post_description, dateAsked, users_id) клуч blog_post_for_consultation_id BCNF \\ **F,,222221,,** { blog_post_for_consultation_id -> blog_post_title, blog_post_description, dateAsked, users_id} \\ **R,,222222,,** (blog_post_for_consultation_id,'''blog_post_answers_id''', parent_id, reply, date_answers, cities_id, cities_name, '''reports_id''', reports_description, pets_id, pet_status_id, node, pet_status_type, '''therapy_id''', appoitmentDate, therapy_description, '''diagnostics_id''', diagnostics_description, '''medecines_id''', medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', products_id, products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,222222,,** = (blog_post_answers_id ->parent_id, reply, date_answers, blog_post_for_consultation_id, users_id \\ cities_id-> cities_name \\ reports_id-> reports_description, pets_id, users_id \\ pet_status_id->node, pet_status_type \\ therapy_id->appoitmentDate, therapy_description \\ diagnostics_id-> diagnostics_description \\ medecines_id-> medecines_name, medecines_description, manufacturers_id \\ manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,222222,, n R,,222221,,** = blog_post_for_consultation_id, клуч за R,,222221,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,222222,,** не е во 2NF поради blog_post_answers_id ->parent_id, reply, date_answers, blog_post_for_consultation_id, users_id \\ blog_post_answers_id +={blog_post_answers_id, parent_id, reply, date_answers, blog_post_for_consultation_id, users_id} \\ **R,,2222221,,** (blog_post_answers_id, parent_id, reply, date_answers, blog_post_for_consultation_id, users_id) клуч blog_post_answers_id BCNF \\ **F,,2222221,,** { blog_post_answers_id ->parent_id, reply, date_answers, blog_post_for_consultation_id, users_id} \\ **R,,2222222,,** ('''blog_post_answers_id''', '''cities_id''', cities_name, '''reports_id''', reports_description, pets_id, pet_status_id, node, pet_status_type, '''therapy_id''', appoitmentDate, therapy_description, diagnostics_id, diagnostics_description, '''medecines_id''', medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,2222222,,** = (cities_id-> cities_name \\ reports_id-> reports_description, pets_id, users_id \\ pet_status_id->node, pet_status_type \\ therapy_id->appoitmentDate, therapy_description \\ diagnostics_id-> diagnostics_description \\ medecines_id-> medecines_name, medecines_description, manufacturers_id \\ manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,2222222,, n R,,2222221,,** = blog_post_answers_id, клуч за R,,2222221,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,2222222,,** не е во 2NF поради cities_id-> cities_name \\ cities_id +={cities_id, cities_name} \\ **R,,22222221,,** ('''cities_id''', cities_name) клуч cities_id BCNF \\ **F,,22222221,,** { cities_id-> cities_name} \\ **R,,22222222,,** ( '''cities_id''', '''reports_id''', reports_description, pets_id, pet_status_id, node, pet_status_type, therapy_id, appoitmentDate, therapy_description, diagnostics_id, diagnostics_description, medecines_id, medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded, isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,22222222,,** = (reports_id-> reports_description, pets_id, users_id \\ pet_status_id->node, pet_status_type \\ therapy_id->appoitmentDate, therapy_description \\ diagnostics_id-> diagnostics_description \\ medecines_id-> medecines_name, medecines_description, manufacturers_id \\ manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,22222222,, n R,,22222221,,** = cities_id, клуч за R,,22222221,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,22222222,,** не е во 2NF поради reports_id-> reports_description, pets_id, users_id \\ reports_id +={ reports_id, reports_description, pets_id, users_id} \\ **R,,222222221,,** ('''reports_id''', reports_description, pets_id, users_id) клуч reports_id BCNF \\ **F,,222222221,,** { reports_id-> reports_description, pets_id, users_id} \\ **R,,222222222,,** ( '''reports_id''', pet_status_id, node, pet_status_type, therapy_id, appoitmentDate, therapy_description, '''diagnostics_id''', diagnostics_description, '''medecines_id''', medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,222222222,,** = (pet_status_id->node, pet_status_type \\ therapy_id->appoitmentDate, therapy_description \\ diagnostics_id-> diagnostics_description \\ medecines_id-> medecines_name, medecines_description, manufacturers_id \\ manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,222222222,, n R,,222222221,,** = reports_id, клуч за R,,222222221,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,222222222,,** не е во 3NF поради pet_status_id->node, pet_status_type \\ pet_status_id +={pet_status_id, node, pet_status_type} \\ **R,,2222222221,,** ('''pet_status_id''', node, pet_status_type) клуч pet_status_id BCNF \\ **F,,2222222221,,** {pet_status_id->node, pet_status_type} \\ **R,,2222222222,,** ( '''pet_status_id''', '''therapy_id''', appoitmentDate, therapy_description, '''diagnostics_id''', diagnostics_description, '''medecines_id''', medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,2222222222,,** = (therapy_id->appoitmentDate, therapy_description \\ diagnostics_id-> diagnostics_description \\ medecines_id-> medecines_name, medecines_description, manufacturers_id \\ manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,2222222222,, n R,,2222222221,,** = pet_status_id, клуч за R,,2222222221,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,2222222222,,** не е во 2NF поради therapy_id->appoitmentDate, therapy_description \\ therapy_id +={ therapy_id, appoitmentDate, therapy_description} \\ **R,,22222222221,,** ('''therapy_id''', appoitmentDate, therapy_description) клуч therapy_id BCNF \\ **F,,22222222221,,** {therapy_id->appoitmentDate, therapy_description} \\ **R,,22222222222,,** ( '''therapy_id''', '''diagnostics_id''', diagnostics_description, '''medecines_id''', medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,22222222222,,** = (diagnostics_id-> diagnostics_description \\ medecines_id-> medecines_name, medecines_description, manufacturers_id \\ manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,22222222222,, n R,,22222222221,,** = therapy_id, клуч за R,,22222222221,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,22222222222,,** не е во 2NF поради diagnostics_id-> diagnostics_description \\ diagnostics_id +={ diagnostics_id, diagnostics_description} \\ **R,,222222222221,,** ('''diagnostics_id''', diagnostics_description) клуч diagnostics_id BCNF \\ **F,,222222222221,,** {diagnostics_id-> diagnostics_description} \\ **R,,222222222222,,** ( '''diagnostics_id''', '''medecines_id''', medecines_description, manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,222222222222,,** = (medecines_id-> medecines_name, medecines_description, manufacturers_id \\ manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,222222222222,, n R,,222222222221,,** = diagnostics_id, клуч за R,,222222222221,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,222222222222,,** не е во 2NF поради medecines_id-> medecines_name, medecines_description, manufacturers_id \\ medecines_id +={ medecines_id, medecines_name, medecines_description, manufacturers_id } \\ **R,,2222222222221,,** ( '''medecines_id''', medecines_name, medecines_description, manufacturers_id) клуч medecines_id BCNF \\ **F,,2222222222221,,** {medecines_id-> medecines_name, medecines_description, manufacturers_id } \\ **R,,2222222222222,,** ( '''medecines_id''', manufacturers_id, city, state, manufacturers_name, manufacturers_description, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,2222222222222,,** = (manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,2222222222222,, n R,,2222222222221,,** = medecines_id, клуч за R,,2222222222221,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,2222222222222,,** не е во 3NF поради manufacturers_id->city, state, manufacturers_name, manufacturers_description \\ manufacturers_id+={ manufacturers_id, city, state, manufacturers_name, manufacturers_description} \\ **R,,22222222222221,,** ( '''manufacturers_id''', city, state, manufacturers_name, manufacturers_description) клуч manufacturers_id BCNF \\ **F,,22222222222221,,** {manufacturers_id->city, state, manufacturers_name, manufacturers_description } \\ **R,,22222222222222,,** ( '''manufacturers_id''', pets_name,color, dateOfBirthday, pets_description, type_of_pets_id, '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,22222222222222,,** = (pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,22222222222222,, n R,,22222222222221,,** = manufacturers_id, клуч за R,,22222222222221,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,22222222222222,,** не е во 3NF поради pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id \\ pets_id+={ pets_id, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id} \\ **R,,222222222222221,,** ( '''pets_id''', pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id) клуч pets_id BCNF \\ **F,,222222222222221,,** {pets_id-> pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id} \\ **R,,222222222222222,,** ( '''pets_id''', '''pet_galery_id''', image, '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,222222222222222,,** = (pet_galery_id->image, pets_id \\ orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,222222222222222,, n R,,222222222222221,,** = pets_id, клуч за R,,222222222222221,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,222222222222222,,** не е во 2NF поради pet_galery_id->image, pets_id \\ pet_galery_id+={ pet_galery_id, image, pets_id} \\ **R,,2222222222222221,,** ('''pet_galery_id''', image, pets_id) клуч pet_galery_id BCNF \\ **F,,2222222222222221,,** {pet_galery_id->image, pets_id} \\ **R,,2222222222222222,,** ( '''pet_galery_id''', '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,2222222222222222,,** = (orders_id → userid \\ products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,2222222222222222,, n R,,2222222222222221,,** = pet_galery_id, клуч за R,,2222222222222221,, => нема губење на податоци. \\ **R,,2222222222222222,,** не е во 2NF поради orders_id → userid \\ orders_id +={ orders_id, userid} \\ **R,,22222222222222221,,** ('''orders_id''', userid) клуч orders_id, BCNF \\ **F,,22222222222222221,,** {orders_id → userid} \\ **R,,22222222222222222,,** ( '''orders_id''', '''products_id''', products_name, products_description, category, dateAdded,isActive, price, available_quantity, quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,22222222222222222,,** = (products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,22222222222222222,, n R,,22222222222222221,,** = orders_id , клуч за R,,22222222222222221,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,22222222222222222,,** не е во 2NF поради products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity \\ products_id+={ products_id, products_name, products_description, category, dateAdded, isActive, price, available_quantity} \\ **R,,222222222222222221,,** ('''products_id''', products_name, products_description, category, dateAdded, isActive, price, available_quantity) клуч products_id, BCNF \\ **F,,222222222222222221,,** {products_id-> products_name, products_description, category, dateAdded, isActive, price, available_quantity} \\ **R,,222222222222222222,,** ('''products_id''', quantity, '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,222222222222222222,,** = (products_id, orders_id → quantity \\ breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,222222222222222222,, n R,,222222222222222221,,** = products_id, клуч за R,,222222222222222221,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- \\ **R,,222222222222222222,,** не е во 2NF поради products_id, orders_id → quantity \\ products_id, orders_id +={ products_id, orders_id , quantity} \\ **R,,2222222222222222221,,** ('''products_id''', '''orders_id''' , quantity) клуч products_id, orders_id, BCNF \\ **F,,2222222222222222221,,** {products_id, orders_id → quantity} \\ **R,,2222222222222222222,,** ('''products_id''', '''orders_id''', '''breeds_id''', breeds_name, kind_of_pet, type_of_pets_description ) \\ **F,,2222222222222222222,,** = (breeds_id-> breeds_name, type_of_pets_id \\ type_of_pets_id->kind_of_pet, type_of_pets_description ) \\ **R,,2222222222222222222,, n R,,2222222222222222221,,** = products_id, orders_id, клуч за R,,2222222222222222221,, => нема губење на податоци. \\ **R,,2222222222222222222,,** не е во 2NF поради breeds_id-> breeds_name, type_of_pets_id \\ breeds_id+={ breeds_name, type_of_pets_id} \\ **R,,22222222222222222221,,** ( '''breeds_id''', breeds_name, type_of_pets_id) клуч breeds_id, BCNF \\ **F,,22222222222222222221,,** {breeds_id-> breeds_name, type_of_pets_id } \\ **R,,22222222222222222222,,** (breeds_id, kind_of_pet, type_of_pets_description ) \\ **F,,22222222222222222222,,** = (type_of_pets_id->kind_of_pet, type_of_pets_description) \\ **R,,22222222222222222222,, n R,,22222222222222222221,,** = breeds_id, клуч за R,,22222222222222222221,, => нема губење на податоци. \\ **R,,22222222222222222222,,** не е во 3NF поради type_of_pets_id->kind_of_pet, type_of_pets_description \\ type_of_pets_id+={ type_of_pets_id, kind_of_pet, type_of_pets_description} \\ **R,,222222222222222222221,,** ('''type_of_pets_id''', kind_of_pet, type_of_pets_description) клуч type_of_pets_id, BCNF \\ **F,,222222222222222222221,,** {type_of_pets_id->kind_of_pet, type_of_pets_description } \\ **R,,222222222222222222222,,** ('''type_of_pets_id''') \\ **F,,222222222222222222222,,** = {} \\ **R,,222222222222222222222,, n R,,222222222222222222221,,** = type_of_pets_id, клуч за R,,222222222222222222221,, => нема губење на податоци. \\ ----------------------------------------------------------------------------------------------------------------------------- **Релации** \\R,,1,, {jobs_id, jobs_description, predistedSalery} - Jobs \\R,,21,, {pet_cares_id , title, description, start_date, dateEnding, pets_id} - Pet_Cares \\R,,221,, {vet_centers_id, name, address, vet_centers_description, workingHours, latitude, longitude} - Vet_Centers \\R,,2221,, {roles_id, type} - Roles \\R,,22221,, {users_id, first_name, last_name, phoneNumber, email, password, roles_id} - Users \\R,,222221,, {blog_post_for_consultation_id, blog_post_title, blog_post_description, dateAsked, users_id} - Blog_Post_For_Consultation \\R,,2222221,, {blog_post_answers_id, parent_id, reply, date_answers, blog_post_for_consultation_id, users_id} - Blog_Post_Answers \\R,,22222221,, {cities_id, cities_name} - Cities \\R,,222222221,, {reports_id, reports_description, pets_id, users_id} - Reports \\R,,2222222221,, {pet_status_id, node, pet_status_type} - Pet_Status \\R,,22222222221,, {therapy_id, appoitmentDate, therapy_description} - Therapy \\R,,222222222221,, {diagnostics_id, diagnostics_description} - Diagnostics \\R,,2222222222221,, {medecines_id, medecines_name, medecines_description, manufacturers_id} - Medecines \\R,,22222222222221,, { manufacturers_id, city, state, manufacturers_name, manufacturers_descriptio} - Manufacturers \\R,,222222222222221,, {pets_id, pets_name, color, dateOfBirthday, pets_description, type_of_pets_id, users_id, pet_status_id}-Pets \\R,,2222222222222221,, {pet_galery_id, image, pets_id} - Pet_Galery \\R,,22222222222222221,, {orders_id, userid} - Orders \\R,,222222222222222221,, {products_id, products_name, products_description, category, dateAdded, isActive, price, available_quantity} Products \\R,,2222222222222222221,, {products_id, orders_id , quantity} \\R,,22222222222222222221,, {breeds_id, breeds_name, type_of_pets_id} Breeds \\R,,222222222222222222221,, { type_of_pets_id, kind_of_pet, type_of_pets_description} Type_Of_Pets