p align="left">Исходное множество функциональных зависимостей
Полное множество атрибутов предметной области Z={man_name, man_email, man_www, man_country, edit_name, supp_formats, edit_conditions, render_name, materials, ren_conditions, plug_name, plug_conditions, plug_type, scene_id, scene_name, size_polys, size_kb, created, comments, packname, amount, archoiver_type, objects, lights, cameras, anim_id, sound, frames, raskadrovka, type, name_anifile, size_kb_ani, author_id, author_name, author_email, author_www} 2.5 Синтез схемы базы данных на основании функциональных зависимостей2.5.1 Построение неизбыточного покрытияg: man_name -> man_email, man_www, man_countryedit_name -> supp_formats, man_name, edit_conditionsrender_name -> man_name, ren_conditions, materialsplug_name -> man_name, plug_conditions, plug_typepackname, scene_id -> amount, archiver_typescene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, commentsscene_id -> objects, lights, camerasscene_id, anim_id -> soundscene_id, anim_id -> framesscene_id, anim_id -> raskadrovkaauthor_id -> author_name, author_email, author_wwwscene_id, anim_id, plug_name, type -> name_anifile, size_kb_animan_email -> man_nameman_www -> man_nameauthor_email -> author_idauthor_www -> author_idscene_id -> render_namerender_name -> man_nameplug_name -> man_nameedit_name -> man_name1. f=g \ man_name -> man_email, man_www, man_countryПроверяем: f |= man_name -> man_email, man_www, man_country[man_name]+f = man_nameНет => Множество ФЗ не изменяется2. f=g \ edit_name -> supp_formats, man_name, edit_conditionsПроверяем: f |= edit_name -> supp_formats, man_name, edit_conditions[edit_name]+f = edit_name, man_name, man_email, man_www, man_countryНет => Множество ФЗ не изменяется3. f=g \ render_name -> man_name, ren_conditions, materialsПроверяем: f |= render_name -> man_name, ren_conditions, materials[render_name]+f = render_name, man_name, man_email, man_www, man_countryНет => Множество ФЗ не изменяется4. f=g \ plug_name -> man_name, plug_conditions, plug_typeПроверяем: f |= plug_name -> man_name, plug_conditions, plug_type[plug_name]+f = plug_name, man_name, man_email, man_www, man_countryНет => Множество ФЗ не изменяется5. f=g \ packname, scene_id -> amount, archiver_typeПроверяем: f |= packname, scene_id -> amount, archiver_type[packname, scene_id]+f = packname, scene_id, scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, supp_formats, man_name, edit_conditions, man_email, man_www, man_country, ren_conditions, materials, objects, lights, cameras, author_name, author_email, author_wwwНет => Множество ФЗ не изменяется6. f=g \ scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, commentsПроверяем: f |= scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments[scene_id]+f = scene_id, objects, lights, cameras, render_name, man_name, ren_conditions, materials, man_email, man_www, man_countryНет => Множество ФЗ не изменяется7. f=g \ scene_id -> objects, lights, camerasПроверяем: f |= scene_id -> objects, lights, cameras[scene_id]+f = scene_id, scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, supp_formats, man_name, edit_conditions, man_email, man_www, man_country, ren_conditions, materials, author_name, author_email, author_wwwНет => Множество ФЗ не изменяется8. f=g \ scene_id, anim_id -> soundПроверяем: f |= scene_id, anim_id -> sound[scene_id, anim_id]+f = scene_id, anim_id, scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, supp_formats, man_name, edit_conditions, man_email, man_www, man_country, ren_conditions, materials, objects, lights, cameras, frames, raskadrovka, author_name, author_email, author_wwwНет => Множество ФЗ не изменяется9. f=g \ scene_id, anim_id -> framesПроверяем: f |= scene_id, anim_id -> frames[scene_id, anim_id]+f = scene_id, anim_id, scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, supp_formats, man_name, edit_conditions, man_email, man_www, man_country, ren_conditions, materials, objects, lights, cameras, sound, raskadrovka, author_name, author_email, author_wwwНет => Множество ФЗ не изменяется10. f=g \ scene_id, anim_id -> raskadrovkaПроверяем: f |= scene_id, anim_id -> raskadrovka[scene_id, anim_id]+f = scene_id, anim_id, scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, supp_formats, man_name, edit_conditions, man_email, man_www, man_country, ren_conditions, materials, objects, lights, cameras, sound, frames, author_name, author_email, author_wwwНет => Множество ФЗ не изменяется11. f=g \ author_id -> author_name, author_email, author_wwwПроверяем: f |= author_id -> author_name, author_email, author_www[author_id]+f = author_idНет => Множество ФЗ не изменяется12. f=g \ scene_id, anim_id, plug_name, type -> name_anifile, size_kb_aniПроверяем: f |= scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani[scene_id, anim_id, plug_name, type]+f = scene_id, anim_id, plug_name, type, man_name, plug_conditions, plug_type, man_email, man_www, man_country, scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, supp_formats, edit_conditions, ren_conditions, materials, objects, lights, cameras, sound, frames, raskadrovka, author_name, author_email, author_wwwНет => Множество ФЗ не изменяется13. f=g \ man_email -> man_nameПроверяем: f |= man_email -> man_name[man_email]+f = man_emailНет => Множество ФЗ не изменяется14. f=g \ man_www -> man_nameПроверяем: f |= man_www -> man_name[man_www]+f = man_wwwНет => Множество ФЗ не изменяется15. f=g \ author_email -> author_idПроверяем: f |= author_email -> author_id[author_email]+f = author_emailНет => Множество ФЗ не изменяется16. f=g \ author_www -> author_idПроверяем: f |= author_www -> author_id[author_www]+f = author_wwwНет => Множество ФЗ не изменяется17. f=g \ scene_id -> render_nameПроверяем: f |= scene_id -> render_name[scene_id]+f = scene_id, scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, supp_formats, man_name, edit_conditions, man_email, man_www, man_country, ren_conditions, materials, objects, lights, cameras, author_name, author_email, author_wwwДа => g=fg: man_name -> man_email, man_www, man_countryedit_name -> supp_formats, man_name, edit_conditionsrender_name -> man_name, ren_conditions, materialsplug_name -> man_name, plug_conditions, plug_typepackname, scene_id -> amount, archiver_typescene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, commentsscene_id -> objects, lights, camerasscene_id, anim_id -> soundscene_id, anim_id -> framesscene_id, anim_id -> raskadrovkaauthor_id -> author_name, author_email, author_wwwscene_id, anim_id, plug_name, type -> name_anifile, size_kb_animan_email -> man_nameman_www -> man_nameauthor_email -> author_idauthor_www -> author_idrender_name -> man_nameplug_name -> man_nameedit_name -> man_name18. f=g \ render_name -> man_nameПроверяем: f |= render_name -> man_name[render_name]+f = render_name, man_name, ren_conditions, materials, man_email, man_www, man_countryДа => g=fg: man_name -> man_email, man_www, man_countryedit_name -> supp_formats, man_name, edit_conditionsrender_name -> man_name, ren_conditions, materialsplug_name -> man_name, plug_conditions, plug_typepackname, scene_id -> amount, archiver_typescene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, commentsscene_id -> objects, lights, camerasscene_id, anim_id -> soundscene_id, anim_id -> framesscene_id, anim_id -> raskadrovkaauthor_id -> author_name, author_email, author_wwwscene_id, anim_id, plug_name, type -> name_anifile, size_kb_animan_email -> man_nameman_www -> man_nameauthor_email -> author_idauthor_www -> author_idplug_name -> man_nameedit_name -> man_name19. f=g \ plug_name -> man_nameПроверяем: f |= plug_name -> man_name[plug_name]+f = plug_name, man_name, plug_conditions, plug_type, man_email, man_www, man_countryДа => g=fg: man_name -> man_email, man_www, man_countryedit_name -> supp_formats, man_name, edit_conditionsrender_name -> man_name, ren_conditions, materialsplug_name -> man_name, plug_conditions, plug_typepackname, scene_id -> amount, archiver_typescene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, commentsscene_id -> objects, lights, camerasscene_id, anim_id -> soundscene_id, anim_id -> framesscene_id, anim_id -> raskadrovkaauthor_id -> author_name, author_email, author_wwwscene_id, anim_id, plug_name, type -> name_anifile, size_kb_animan_email -> man_nameman_www -> man_nameauthor_email -> author_idauthor_www -> author_idedit_name -> man_name20. f=g \ edit_name -> man_nameПроверяем: f |= edit_name -> man_name[edit_name]+f = edit_name, supp_formats, man_name, edit_conditions, man_email, man_www, man_countryДа => g=fg: man_name -> man_email, man_www, man_countryedit_name -> supp_formats, man_name, edit_conditionsrender_name -> man_name, ren_conditions, materialsplug_name -> man_name, plug_conditions, plug_typepackname, scene_id -> amount, archiver_typescene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, commentsscene_id -> objects, lights, camerasscene_id, anim_id -> soundscene_id, anim_id -> framesscene_id, anim_id -> raskadrovkaauthor_id -> author_name, author_email, author_wwwscene_id, anim_id, plug_name, type -> name_anifile, size_kb_animan_email -> man_nameman_www -> man_nameauthor_email -> author_idauthor_www -> author_idНеизбыточное покрытиеg: man_name -> man_email, man_www, man_countryedit_name -> supp_formats, man_name, edit_conditionsrender_name -> man_name, ren_conditions, materialsplug_name -> man_name, plug_conditions, plug_typepackname, scene_id -> amount, archiver_typescene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, commentsscene_id -> objects, lights, camerasscene_id, anim_id -> soundscene_id, anim_id -> framesscene_id, anim_id -> raskadrovkaauthor_id -> author_name, author_email, author_wwwscene_id, anim_id, plug_name, type -> name_anifile, size_kb_animan_email -> man_nameman_www -> man_nameauthor_email -> author_idauthor_www -> author_idscene_id -> render_namerender_name -> man_nameplug_name -> man_nameedit_name -> man_name2.5.2 Построение леворедуцированного покрытияg: man_name -> man_email, man_www, man_countryedit_name -> supp_formats, man_name, edit_conditionsrender_name -> man_name, ren_conditions, materialsplug_name -> man_name, plug_conditions, plug_typepackname, scene_id -> amount, archiver_typescene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, commentsscene_id -> objects, lights, camerasscene_id, anim_id -> soundscene_id, anim_id -> framesscene_id, anim_id -> raskadrovkaauthor_id -> author_name, author_email, author_wwwscene_id, anim_id, plug_name, type -> name_anifile, size_kb_animan_email -> man_nameman_www -> man_nameauthor_email -> author_idauthor_www -> author_id1. packname, scene_id -> amount, archiver_type1.1. packname, scene_id -> amount, archiver_typeПроверяем: g |= scene_id -> amount, archiver_typeНет => множество ФЗ не изменяется.1.2. packname, scene_id -> amount, archiver_typeПроверяем: g |= packname -> amount, archiver_typeНет => множество ФЗ не изменяется.2. scene_id, anim_id -> sound2.1. scene_id, anim_id -> soundПроверяем: g |= anim_id -> soundНет => множество ФЗ не изменяется.2.2. scene_id, anim_id -> soundПроверяем: g |= scene_id -> soundНет => множество ФЗ не изменяется.3. scene_id, anim_id -> frames3.1. scene_id, anim_id -> framesПроверяем: g |= anim_id -> framesНет => множество ФЗ не изменяется.3.2. scene_id, anim_id -> framesПроверяем: g |= scene_id -> framesНет => множество ФЗ не изменяется.4. scene_id, anim_id -> raskadrovka4.1. scene_id, anim_id -> raskadrovkaПроверяем: g |= anim_id -> raskadrovkaНет => множество ФЗ не изменяется.4.2. scene_id, anim_id -> raskadrovkaПроверяем: g |= scene_id -> raskadrovkaНет => множество ФЗ не изменяется.5. scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani5.1. scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani
Страницы: 1, 2, 3
|