Version 51 (modified by 3 months ago) ( diff ) | ,
---|
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 (Секоја услуга си има име, опис, датум на започнување и датум на завршување).
- vet_centers_id-> name, address, vet_centers_description, workingHours, latitude, longitude (Секој вет. центар си има име, адреса, работни часови, координати ( гео. должина и ширина).
- roles_id->type (Секоја улога си има свој тип).
- users_id -> first_name, last_name, phoneNumber, email, password (Секој корисник има име, презиме, тел.број, емаил и пасворд).
- users_id -> roles_id (Секој корисник може да има само една улога: стандарден корисник, менаџер, вработен или админ. Според улогата корисникот добива одредени привилегии).
- blog_post_for_consultation_id -> blog_post_title, blog_post_description, dateAsked (Секое поставено прашање/побарана консултција има наслов, опис, и датум на поставување).
- blog_post_for_consultation_id -> users_id (Секој побаран совет/прашање е напишен од одреден корисник).
- blog_post_answers_id ->parent_id, reply, date_answers (Секој одговор е даден врз основа на поставено прашање, има содржина и датум кога е одговорено).
- blog_post_answers_id → blog_post_for_consultation_id, users_id (Секој одговор е поврзан со едно прашање за консултација и е даден од еден корисник).
- cities_id-> cities_name (Секој град си има име).
- reports_id-> reports_description (Секој извештај има опис).
- reports_id → pets_id (Секој извештај припаѓа на едно милениче)
- reports_id , 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->city, state, manufacturers_name, manufacturers_description (Секој производител на лекот има град, држава, име и опис).
- pets_id-> pets_name, color, dateOfBirthday, pets_description (Секое милениче има име, боја, датум на раѓање и опис).
- pets_id → type_of_pets_id (Секое милениче припаѓа на еден вид).
- pets_id → users_id (Секое милениче има само еден сопственик, во нашата база не е возможно едно милениче да има повеќе сопственици. Кога се врши микрочипирање се запишуваат податоци само од еден сопственик).
- pet_galery_id->image
- pet_galery_id → 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 (Секоја раса си има име).
- breeds_id → type_of_pets_id (Секоја раса припаѓа на еден вид на милениче, Пр.расата Scottish Fold припага само на видот маче не припага и на видот куче итн).
- type_of_pets_id->kind_of_pet, type_of_pets_description (Секој вид на милениче има име и опис).
- medecines_id → manufacturers_id (Во нашиот проект претпоставуваме дека секој лек е произведен од само еден произведувач).
- vet_centers_id, pets_id → pet_status_id (Секое милениче во еден ветеринарен центар има само еден активен статус во даден момент. Кога статусот се менува, се брише претходниот и се запишува нов.)
Определување на кандидат клучеви
Од лева страна се наоѓаат следниве атрибути: 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.
Од десна страна се наоѓаат следниве атрибути: 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, 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,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_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, 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} Можеме да го отстраниме и pets_id бидејќи се добива преку pet_galery_id. Можеме да го отстраниме и pet_status_id бидејќи се добива преку vet_centers_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}. Ниту еден од атрибутите го нема од десна страна во ф.з па ова ни е единствен кандидат клуч, го прогласуваме за примарен клуч. {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} += {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}
Attachments (1)
- Popraven_Dijagram_Elena.jpg (214.6 KB ) - added by 3 months ago.
Download all attachments as: .zip
Note:
See TracWiki
for help on using the wiki.