|
Графические редакторы (пакеты трехмерного моделирования) |
роверяем: g |= anim_id, plug_name, type -> name_anifile, size_kb_aniНет => множество ФЗ не изменяется.5.2. scene_id, anim_id, plug_name, type -> name_anifile, size_kb_aniПроверяем: g |= scene_id, plug_name, type -> name_anifile, size_kb_aniНет => множество ФЗ не изменяется.5.3. scene_id, anim_id, plug_name, type -> name_anifile, size_kb_aniПроверяем: g |= scene_id, anim_id, type -> name_anifile, size_kb_aniНет => множество ФЗ не изменяется.5.4. scene_id, anim_id, plug_name, type -> name_anifile, size_kb_aniПроверяем: g |= scene_id, anim_id, plug_name -> name_anifile, size_kb_aniНет => множество ФЗ не изменяется.Леворедуцированное покрытие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_id2.5.3 Построение праворедуцированного покрытия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. man_name -> man_email, man_www, man_country1.1. Если удаляем man_emailПроверяем: f |= man_name -> man_emailНет => множество ФЗ не изменяется.1.2. Если удаляем man_wwwПроверяем: f |= man_name -> man_wwwНет => множество ФЗ не изменяется.1.3. Если удаляем man_countryПроверяем: f |= man_name -> man_countryНет => множество ФЗ не изменяется.2. edit_name -> supp_formats, man_name, edit_conditions2.1. Если удаляем supp_formatsПроверяем: f |= edit_name -> supp_formatsНет => множество ФЗ не изменяется.2.2. Если удаляем man_nameПроверяем: f |= edit_name -> man_nameНет => множество ФЗ не изменяется.2.3. Если удаляем edit_conditionsПроверяем: f |= edit_name -> edit_conditionsНет => множество ФЗ не изменяется.3. render_name -> man_name, ren_conditions, materials3.1. Если удаляем man_nameПроверяем: f |= render_name -> man_nameНет => множество ФЗ не изменяется.3.2. Если удаляем ren_conditionsПроверяем: f |= render_name -> ren_conditionsНет => множество ФЗ не изменяется.3.3. Если удаляем materialsПроверяем: f |= render_name -> materialsНет => множество ФЗ не изменяется.4. plug_name -> man_name, plug_conditions, plug_type4.1. Если удаляем man_nameПроверяем: f |= plug_name -> man_nameНет => множество ФЗ не изменяется.4.2. Если удаляем plug_conditionsПроверяем: f |= plug_name -> plug_conditionsНет => множество ФЗ не изменяется.4.3. Если удаляем plug_typeПроверяем: f |= plug_name -> plug_typeНет => множество ФЗ не изменяется.5. packname, scene_id -> amount, archiver_type5.1. Если удаляем amountПроверяем: f |= packname, scene_id -> amountНет => множество ФЗ не изменяется.5.2. Если удаляем archiver_typeПроверяем: f |= packname, scene_id -> archiver_typeНет => множество ФЗ не изменяется.6. scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments6.1. Если удаляем scene_nameПроверяем: f |= scene_id -> scene_nameНет => множество ФЗ не изменяется.6.2. Если удаляем size_polysПроверяем: f |= scene_id -> size_polysНет => множество ФЗ не изменяется.6.3. Если удаляем edit_nameПроверяем: f |= scene_id -> edit_nameНет => множество ФЗ не изменяется.6.4. Если удаляем author_idПроверяем: f |= scene_id -> author_idНет => множество ФЗ не изменяется.6.5. Если удаляем render_nameПроверяем: f |= scene_id -> render_nameНет => множество ФЗ не изменяется.6.6. Если удаляем size_kbПроверяем: f |= scene_id -> size_kbНет => множество ФЗ не изменяется.6.7. Если удаляем createdПроверяем: f |= scene_id -> createdНет => множество ФЗ не изменяется.6.8. Если удаляем commentsПроверяем: f |= scene_id -> commentsНет => множество ФЗ не изменяется.7. scene_id -> objects, lights, cameras7.1. Если удаляем objectsПроверяем: f |= scene_id -> objectsНет => множество ФЗ не изменяется.7.2. Если удаляем lightsПроверяем: f |= scene_id -> lightsНет => множество ФЗ не изменяется.7.3. Если удаляем camerasПроверяем: f |= scene_id -> camerasНет => множество ФЗ не изменяется.8. scene_id, anim_id -> sound8.1. Если удаляем soundПроверяем: f |= scene_id, anim_id -> soundНет => множество ФЗ не изменяется.9. scene_id, anim_id -> frames9.1. Если удаляем framesПроверяем: f |= scene_id, anim_id -> framesНет => множество ФЗ не изменяется.10. scene_id, anim_id -> raskadrovka10.1. Если удаляем raskadrovkaПроверяем: f |= scene_id, anim_id -> raskadrovkaНет => множество ФЗ не изменяется.11. author_id -> author_name, author_email, author_www11.1. Если удаляем author_nameПроверяем: f |= author_id -> author_nameНет => множество ФЗ не изменяется.11.2. Если удаляем author_emailПроверяем: f |= author_id -> author_emailНет => множество ФЗ не изменяется.11.3. Если удаляем author_wwwПроверяем: f |= author_id -> author_wwwНет => множество ФЗ не изменяется.12. scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani12.1. Если удаляем name_anifileПроверяем: f |= scene_id, anim_id, plug_name, type -> name_anifileНет => множество ФЗ не изменяется.12.2. Если удаляем size_kb_aniПроверяем: f |= scene_id, anim_id, plug_name, type -> size_kb_aniНет => множество ФЗ не изменяется.13. man_email -> man_name13.1. Если удаляем man_nameПроверяем: f |= man_email -> man_nameНет => множество ФЗ не изменяется.14. man_www -> man_name14.1. Если удаляем man_nameПроверяем: f |= man_www -> man_nameНет => множество ФЗ не изменяется.15. author_email -> author_id15.1. Если удаляем author_idПроверяем: f |= author_email -> author_idНет => множество ФЗ не изменяется.16. author_www -> author_id16.1. Если удаляем author_idПроверяем: f |= author_www -> author_idНет => множество ФЗ не изменяется.Удаление зависимостей вида X->Праворедуцированное покрытие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_id2.5.4 Построение классов эквивалентностей1. Ef( man_name ): man_name -> man_email, man_www, man_countryman_email -> man_nameman_www -> man_name2. Ef( edit_name ): edit_name -> supp_formats, man_name, edit_conditions3. Ef( render_name ): render_name -> man_name, ren_conditions, materials4. Ef( plug_name ): plug_name -> man_name, plug_conditions, plug_type5. Ef( packname, scene_id ): packname, scene_id -> amount, archiver_type6. Ef( scene_id ): scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, commentsscene_id -> objects, lights, cameras7. Ef( scene_id, anim_id ): scene_id, anim_id -> soundscene_id, anim_id -> framesscene_id, anim_id -> raskadrovka8. Ef( author_id ): author_id -> author_name, author_email, author_wwwauthor_email -> author_idauthor_www -> author_id9. Ef( scene_id, anim_id, plug_name, type ): scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani2.5.5 Построение минимального покрытия1. Проверка: f \ Ef(man_name) |= man_name -> man_email?Нет => множество ФЗ не изменяется.2. Проверка: f \ Ef(man_name) |= man_name -> man_www?Нет => множество ФЗ не изменяется.3. Проверка: f \ Ef(man_name) |= man_email -> man_www?Нет => множество ФЗ не изменяется.4. Проверка: f \ Ef(scene_id) |= scene_id -> scene_id?Да => заменяем scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments и scene_id -> objects, lights, cameras на scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, objects, lights, cameras.5. Проверка: f \ Ef(scene_id, anim_id) |= scene_id, anim_id -> scene_id, anim_id?Да => заменяем scene_id, anim_id -> sound и scene_id, anim_id -> frames на scene_id, anim_id -> sound, frames.6. Проверка: f \ Ef(scene_id, anim_id) |= scene_id, anim_id -> scene_id, anim_id?Да => заменяем scene_id, anim_id -> sound, frames и scene_id, anim_id -> raskadrovka на scene_id, anim_id -> sound, frames, raskadrovka.7. Проверка: f \ Ef(author_id) |= author_id -> author_email?Нет => множество ФЗ не изменяется.8. Проверка: f \ Ef(author_id) |= author_id -> author_www?Нет => множество ФЗ не изменяется.9. Проверка: f \ Ef(author_id) |= author_email -> author_www?Нет => множество ФЗ не изменяется. Редуцированное минимальное покрытие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_typeauthor_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 -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, objects, lights, camerasscene_id, anim_id -> sound, frames, raskadrovka2.5.6 Получение минимального кольцевого редуцированного покрытияОпределение CF-зависимостей по классам эквивалентностиМинимальное кольцевое покрытие( man_name; man_email; man_www; ) -> man_country( edit_name; ) -> supp_formats, man_name, edit_conditions( render_name; ) -> man_name, ren_conditions, materials( plug_name; ) -> man_name, plug_conditions, plug_type( packname, scene_id; ) -> amount, archiver_type( author_id; author_email; author_www; ) -> author_name( scene_id, anim_id, plug_name, type; ) -> name_anifile, size_kb_ani( scene_id; ) -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, objects, lights, cameras( scene_id, anim_id; ) -> sound, frames, raskadrovkaПолучение кольцевого минимальногоредуцированного покрытияЕстественное характеристическое множестводля кольцевого покрытияf(C): man_name -> man_emailman_email -> man_wwwman_www -> man_nameman_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_typeauthor_id -> author_emailauthor_email -> author_wwwauthor_www -> author_idauthor_www -> author_namescene_id, anim_id, plug_name, type -> name_anifile, size_kb_aniscene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, objects, lights, camerasscene_id, anim_id -> sound, frames, raskadrovkaЛевая редукция или перенос в правую часть1. Проверка CF-зависимости: ( man_name; man_email; man_www; ) -> man_country1.1. Сформированная CF-зависимость: ( man_email; man_www; ) -> man_country, man_nameХарактеристические множества не эквивалентны1.2. Сформированная CF-зависимость: ( man_name; man_www; ) -> man_country, man_emailХарактеристические множества не эквивалентны1.3. Сформированная CF-зависимость: ( man_name; man_email; ) -> man_country, man_wwwХарактеристические множества не эквивалентны2. Проверка CF-зависимости: ( edit_name; ) -> supp_formats, man_name, edit_conditions2.1. Сформированная CF-зависимость: ( ) -> supp_formats, man_name, edit_conditions, edit_nameХарактеристические множества не эквивалентны3. Проверка CF-зависимости: ( render_name; ) -> man_name, ren_conditions, materials3.1. Сформированная CF-зависимость: ( ) -> man_name, ren_conditions, materials, render_nameХарактеристические множества не эквивалентны4. Проверка CF-зависимости: ( plug_name; ) -> man_name, plug_conditions, plug_type4.1. Сформированная CF-зависимость: ( ) -> man_name, plug_conditions, plug_type, plug_nameХарактеристические множества не эквивалентны5. Проверка CF-зависимости: ( packname, scene_id; ) -> amount, archiver_type5.1. Сформированная CF-зависимость: ( scene_id; ) -> amount, archiver_type, packnameХарактеристические множества не эквивалентны5.2. Сформированная CF-зависимость: ( packname; ) -> amount, archiver_type, scene_idХарактеристические множества не эквивалентны6. Проверка CF-зависимости: ( author_id; author_email; author_www; ) -> author_name6.1. Сформированная CF-зависимость: ( author_email; author_www; ) -> author_name, author_idХарактеристические множества не эквивалентны6.2. Сформированная CF-зависимость: ( author_id; author_www; ) -> author_name, author_emailХарактеристические множества не эквивалентны6.3. Сформированная CF-зависимость: ( author_id; author_email; ) -> author_name, author_wwwХарактеристические множества не эквивалентны7. Проверка CF-зависимости: ( scene_id, anim_id, plug_name, type; ) -> name_anifile, size_kb_ani7.1. Сформированная CF-зависимость: ( anim_id, plug_name, type; ) -> name_anifile, size_kb_ani, scene_idХарактеристические множества не эквивалентны7.2. Сформированная CF-зависимость: ( scene_id, plug_name, type; ) -> name_anifile, size_kb_ani, anim_idХарактеристические множества не эквивалентны7.3. Сформированная CF-зависимость: ( scene_id, anim_id, type; ) -> name_anifile, size_kb_ani, plug_nameХарактеристические множества не эквивалентны7.4. Сформированная CF-зависимость: ( scene_id, anim_id, plug_name; ) -> name_anifile, size_kb_ani, typeХарактеристические множества не эквивалентны8. Проверка CF-зависимости: ( scene_id; ) -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, objects, lights, cameras8.1. Сформированная CF-зависимость: ( ) -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, objects, lights, cameras, scene_idХарактеристические множества не эквивалентны9. Проверка CF-зависимости: ( scene_id, anim_id; ) -> sound, frames, raskadrovka9.1. Сформированная CF-зависимость: ( anim_id; ) -> sound, frames, raskadrovka, scene_idХарактеристические множества не эквивалентны9.2. Сформированная CF-зависимость: ( scene_id; ) -> sound, frames, raskadrovka, anim_idХарактеристические множества не эквивалентныПроверка покрытия на праворедуцированность1. Проверка CF-зависимости: ( man_name; man_email; man_www; ) -> man_country2.1. Сформированная CF-зависимость: ( man_name; man_email; man_www; )Характеристические множества не эквивалентны2. Проверка CF-зависимости: ( edit_name; ) -> supp_formats, man_name, edit_conditions3.1. Сформированная CF-зависимость: ( edit_name; ) -> man_name, edit_conditionsХарактеристические множества не эквивалентны3.2. Сформированная CF-зависимость: ( edit_name; ) -> supp_formats, edit_conditionsХарактеристические множества не эквивалентны3.3. Сформированная CF-зависимость: ( edit_name; ) -> supp_formats, man_nameХарактеристические множества не эквивалентны3. Проверка CF-зависимости: ( render_name; ) -> man_name, ren_conditions, materials4.1. Сформированная CF-зависимость: ( render_name; ) -> ren_conditions, materialsХарактеристические множества не эквивалентны4.2. Сформированная CF-зависимость: ( render_name; ) -> man_name, materialsХарактеристические множества не эквивалентны4.3. Сформированная CF-зависимость: ( render_name; ) -> man_name, ren_conditionsХарактеристические множества не эквивалентны4. Проверка CF-зависимости: ( plug_name; ) -> man_name, plug_conditions, plug_type5.1. Сформированная CF-зависимость: ( plug_name; ) -> plug_conditions, plug_typeХарактеристические множества не эквивалентны5.2. Сформированная CF-зависимость: ( plug_name; ) -> man_name, plug_typeХарактеристические множества не эквивалентны5.3. Сформированная CF-зависимость: ( plug_name; ) -> man_name, plug_conditionsХарактеристические множества не эквивалентны5. Проверка CF-зависимости: ( packname, scene_id; ) -> amount, archiver_type6.1. Сформированная CF-зависимость: ( packname, scene_id; ) -> archiver_typeХарактеристические множества не эквивалентны6.2. Сформированная CF-зависимость: ( packname, scene_id; ) -> amountХарактеристические множества не эквивалентны6. Проверка CF-зависимости: ( author_id; author_email; author_www; ) -> author_name7.1. Сформированная CF-зависимость: ( author_id; author_email; author_www; )Характеристические множества не эквивалентны7. Проверка CF-зависимости: ( scene_id, anim_id, plug_name, type; ) -> name_anifile, size_kb_ani8.1. Сформированная CF-зависимость: ( scene_id, anim_id, plug_name, type; ) -> size_kb_aniХарактеристические множества не эквивалентны8.2. Сформированная CF-зависимость: ( scene_id, anim_id, plug_name, type; ) -> name_anifileХарактеристические множества не эквивалентны8. Проверка CF-зависимости: ( scene_id; ) -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, objects, lights, cameras9.1. Сформированная CF-зависимость: ( scene_id; ) -> size_polys, edit_name, author_id, render_name, size_kb, created, comments, objects, lights, camerasХарактеристические множества не эквивалентны9.2. Сформированная CF-зависимость: ( scene_id; ) -> scene_name, edit_name, author_id, render_name, size_kb, created, comments, objects, lights, camerasХарактеристические множества не эквивалентны9.3. Сформированная CF-зависимость: ( scene_id; ) -> scene_name, size_polys, author_id, render_name, size_kb, created, comments, objects, lights, camerasХарактеристические множества не эквивалентны9.4. Сформированная CF-зависимость: ( scene_id; ) -> scene_name, size_polys, edit_name, render_name, size_kb, created, comments, objects, lights, camerasХарактеристические множества не эквивалентны9.5. Сформированная CF-зависимость: ( scene_id; ) -> scene_name, size_polys, edit_name, author_id, size_kb, created, comments, objects, lights, camerasХарактеристические множества не эквивалентны9.6. Сформированная CF-зависимость: ( scene_id; ) -> scene_name, size_polys, edit_name, author_id, render_name, created, comments, objects, lights, camerasХарактеристические множества не эквивалентны9.7. Сформированная CF-зависимость: ( scene_id; ) -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, comments, objects, lights, camerasХарактеристические множества не эквивалентны9.8. Сформированная CF-зависимость: ( scene_id; ) -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, objects, lights, camerasХарактеристические множества не эквивалентны9.9. Сформированная CF-зависимость: ( scene_id; ) -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, lights, camerasХарактеристические множества не эквивалентны9.10. Сформированная CF-зависимость: ( scene_id; ) -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, objects, camerasХарактеристические множества не эквивалентны9.11. Сформированная CF-зависимость: ( scene_id; ) -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, objects, lightsХарактеристические множества не эквивалентны9. Проверка CF-зависимости: ( scene_id, anim_id; ) -> sound, frames, raskadrovka10.1. Сформированная CF-зависимость: ( scene_id, anim_id; ) -> frames, raskadrovkaХарактеристические множества не эквивалентны10.2. Сформированная CF-зависимость: ( scene_id, anim_id; ) -> sound, raskadrovkaХарактеристические множества не эквивалентны10.3. Сформированная CF-зависимость: ( scene_id, anim_id; ) -> sound, framesХарактеристические множества не эквивалентныМинимальное редуцированное кольцевое покрытиеC( man_name; man_email; man_www; ) -> man_country( edit_name; ) -> supp_formats, man_name, edit_conditions( render_name; ) -> man_name, ren_conditions, materials( plug_name; ) -> man_name, plug_conditions, plug_type( packname, scene_id; ) -> amount, archiver_type( author_id; author_email; author_www; ) -> author_name( scene_id, anim_id, plug_name, type; ) -> name_anifile, size_kb_ani( scene_id; ) -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, objects, lights, cameras( scene_id, anim_id; ) -> sound, frames, raskadrovkaЕстественное характеристическое множествоf(C): man_name -> man_emailman_email -> man_wwwman_www -> man_nameman_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_typeauthor_id -> author_emailauthor_email -> author_wwwauthor_www -> author_idauthor_www -> author_namescene_id, anim_id, plug_name, type -> name_anifile, size_kb_aniscene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, objects, lights, camerasscene_id, anim_id -> sound, frames, raskadrovka2.6 Логическая модель предметной областиR0 = ( man_name, man_email, man_www, man_country ) K0 = { man_name, man_email, man_www }R1 = ( edit_name, supp_formats, man_name, edit_conditions ) K1 = { edit_name }R2 = ( render_name, man_name, ren_conditions, materials ) K2 = { render_name }R3 = ( plug_name, man_name, plug_conditions, plug_type ) K3 = { plug_name }R4 = ( packname, scene_id, amount, archiver_type ) K4 = { packname, scene_id }R5 = ( author_id, author_email, author_www, author_name ) K5 = { author_id, author_email, author_www }R6 = ( scene_id, anim_id, plug_name, type, name_anifile, size_kb_ani ) K6 = { scene_id, anim_id, plug_name, type }R7 = ( scene_id, scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments, objects, lights, cameras ) K7 = { scene_id }R8 = ( scene_id, anim_id, sound, frames, raskadrovka ) K8 = { scene_id, anim_id }2.7 Уточненная концептуальная модель3 ПОСТРОЕНИЕ ЗАПРОСОВ1. Выбрать все сцены, созданные 20.03.05SELECT scene_id FROM 3dscene WHERE(created=”20.03.05')
Страницы: 1, 2, 3
|
|
|
© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент. |
|
|