Курсовая работа по предмету "Программирование, компьютеры и кибернетика, ИТ технологии"


Графические редакторы (пакеты трехмерного моделирования)


Министерство образования и науки Российской Федерации

Курский Государственный Технический Университет

Кафедра ПО ВТ

КУРСОВАЯ РАБОТА

по дисциплине: “Базы данных”

Тема: “ Графические редакторы (пакеты трехмерного моделирования)”

Выполнил: студент гр. ПО-21 Чельцов Е. О.

Проверил: доцент Белов В. Г.

К У Р С К

2 0 0 8

СОДЕРЖАНИЕ

  • 1 ТЕХНИЧЕСКОЕ ЗАДАНИЕ
  • 1.1 Основание для разработки
  • 1.2 Задание
  • 2 ТЕХНИЧЕСКИЙ ПРОЕКТ
  • 2.1 Описание предметной области
  • 2.2 Словарь понятий и терминов
  • 2.3 Первый вариант ER-диаграммы:
  • 2.4 Построение функциональных зависимостей:
  • 2.5 Синтез схемы базы данных на основании функциональных зависимостей
  • 2.5.1 Построение неизбыточного покрытия
  • 2.5.2 Построение леворедуцированного покрытия
  • 2.5.3 Построение праворедуцированного покрытия
  • 2.5.4 Построение классов эквивалентностей
  • 2.5.5 Построение минимального покрытия
  • 2.5.6 Получение минимального кольцевого редуцированного покрытия
  • Определение CF-зависимостей по классам эквивалентности
  • Минимальное кольцевое покрытие
  • 2.6. Логическая модель предметной области
  • 2.7 Уточненная концептуальная модель
  • 3 ПОСТРОЕНИЕ ЗАПРОСОВ
  • 1 ТЕХНИЧЕСКОЕ ЗАДАНИЕ

1.1 Основание для разработки

Необходимо спроектировать и разработать базу данных, обеспечивающую ввод, хранение и обработку информации о графических редакторах, а именно пакетах трехмерного моделирования. Основанием для разработки послужило задание на курсовое проектирование по дисциплине “Базы данных”.

1.2 Задание

Спроектировать базу данных, содержащую информацию о графических редакторах, а именно пакетах трехмерного моделирования. Описать предметную область, разработать словарь понятий и терминов, построить систему функциональных зависимостей, ER-диаграмму. Синтезировать схему базы данных на основании функциональных зависимостей (построение неизбыточного покрытия, построение леворедуцированного неизбыточного покрытия, построение праворедуцированного неизбыточного покрытия, построение классов эквивалентностей, построение минимального покрытия). Построить уточненную концептуальную модель в виде ER-диаграммы, запросы предметной области. Записать запросы на языке SQL.

2.ТЕХНИЧЕСКИЙ ПРОЕКТ

2.1 Описание предметной области

В настоящее время большая часть новых компьютерных технологий ориентированна на сферу развлечений. Трехмерная графика является её наиболее интересной составляющей. Она используется в киноиндустрии, в индустрии компьютерных игр, в области проектирования и т.д.

На данный момент существует довольно много средств трехмерного моделирования -- начиная от простейших программ, типа “Ultimate Unwrap3D”, предназначенных для создания простейших сцен и зачастую распространяемых бесплатно, и заканчивая мощными коммерческими пакетами моделирования, типа “Maya”, предназначенных для создания реалистичных изображений и анимации.

В Интернете существуют сайты, на которых хранятся большие коллекции файлов (сцен) для такого рода программ. Каждая сцена имеет свой идентификационный номер и характеризуется следующими параметрами:

-название сцены;

-количество полигонов в сцене;

-размер файла;

-дата создания;

-количество объектов;

-количество источников света;

-количество камер;

-комментарии.

При создании сцены используется модуль просчета изображения -- рендер, который характеризуется:

-поддержка материалов;

-условия распространения;

К каждой сцене прилагается пакет текстур, который характеризуется:

-количеством текстур;

-типом архива.

Сцены бывают статические и с содержанием анимации. Сцена с анимацией имеет параметры:

-наличие звука;

-количество кадров;

-описание анимации (раскадровка).

Если при создании анимации использовалась сторонняя программа или плагин, то последовательность кадров будет содержаться в отдельном файле, с параметрами:

-название файла анимации;

-тип файла;

-размер файла.

Используемый плагин характеризуется:

-тип;

-условия распространения;

-название.

Программа, используемая при создании сцены, характеризуется:

-название;

-поддерживаемые форматы;

-условия распространения.

Характеристики производителя, используемого программного продукта:

-название организации;

-адрес электронной почты;

-адрес сайта Интернет;

-страна.

Так же имеются сведение об авторе сцены:

-полное имя или псевдоним;

-адрес электронной почты;

-адрес сайта Интернет;

Каждый автор имеет свой идентификационный номер.

2.2 Словарь понятий и терминов

Наименование

Смысл

Обозначение

Пример

Имя призводителя

Наименование производителя пакета моделирования

man_name

Discreet

Почта производителя

Адрес электронной почты производителя

man_email

authcodes.neu@autodesk.com

Сайт производителя

Адрес сайта производителя

man_www

www.discreet.com

Страна

Страна производителя

man_country

USA

Название средства моделирования

Полное название средства моделирования

edit_name

3DS MAX 6.0

Условия распространения средства моделирования

Условия распространения средства моделирования

edit_conditions

Commercial

Форматы

Форматы файлов, поддерживаемые программой моделирования

supp_formats

*.max, *.chr

Рендер

Полное название рендера

render_name

Mental Ray

Условия распространения рендера

Условия распространения рендера

ren_conditions

Commercial

Материалы

Поддерживает ли рендер материалы(да/нет)

materials

Yes

Плагин

Полное название плагина или сторонней программы, использованной при создании анимации

plug_name

Character Studio 4.1

Условия распространения плагина

Условия распространения плагина или сторонней программы, использованной при создании анимации

plug_conditions

Commercial

Тип плагина

Программа или плагин

plug_type

plugin

Идентификатор сцены

Идентификатор сцены

scene_id

0035

Название сцены

Название сцены

scene_name

My_scene

Количество полигонов

Количество полигонов в сцене

size_polys

50 564

Размер файла сцены

Размер файла, содержащего сцену

size_kb

3 693

Дата создания сцены

Дата создания сцены

created

14.03.05

Комментарии к сцене

Комментарии к сцене

comments

Сцена анимации персонажа из игры

Пакет текстур

Название архива, содержащего текстуры к сцене

packname

My_pack

Количество текстур в архиве

Количество текстур в архиве

amount

20

Тип архива

Тип архива, содержащего текстуры к сцене

archiver_type

*.zip

Объекты

Количество объектов в сцене

objects

12

Свет

Количество источников освещения в сцене

lights

3

Камеры

Количество камер в сцене

cameras

1

Идентификатор анимации

Идентификатор файла анимации

anim_id

0013

Звук

Присутствует ли звук в анимированной сцене(да/нет)

sound

no

Количество кадров анимации

Количество кадров анимации

frames

150

Раскадровка

Комментарий, содержащий детальное пояснение анимации персонажа

raskadrovka

1-10: ходьба

11-20: бег

21-60: падение

Тип файла анимации

Тип файла анимации

type

*.bip

Имя файла анимации

Имя файла анимации

name_anifile

My_anim

Размер файла анимации

Размер файла анимации

size_kb_ani

825

Идентификатор автора сцены

Идентификатор автора сцены

author_id

0045

Полное имя или псевдоним автора сцены

Полное имя или псевдоним автора сцены

author_name

Renderman

Почта автора

Адрес электронной почты автора сцены

author_email

renderman@mail.ru

Сайт автора

Адрес сайта Интернет автора сцены

author_www

www.renman.narod.ru

2.3 Первый вариант ER-диаграммы:

2.4 Построение функциональных зависимостей:

Функциональная зависимость

Описание

man_email->man_name

Два и более производителя не могут иметь один и тот же адрес электронной почты

man_www->man_name

Два и более производителя не могут иметь один и тот же адрес сайта Интернет

author_email->author_id

Два и более автора не могут иметь один и тот же адрес электронной почты

author_www->author_id

Два и более автора не могут иметь один и тот же адрес сайта Интернет

scene_id->render_name

Сцена не может одновременно просчитываться двумя и более разными рендерами

render_name->man_name

Рендер не может быть произведен двумя и более производителями

plug_name->man_name

Плагин не может быть произведен двумя и более производителями

edit_name->man_name

Программа моделирования не может быть произведена двумя и более производителями

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

Пакет текстур и идентификатор сцены определяют количество текстур и тип архива

scene_id->scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments

Идентификатор сцены определяет имя сцены, рамер файла сцены, идентификатор автора, рендер, количество полигонов, дату создания, комментарии

scene_id->objects, lights, cameras

Идентификатор сцены определяет количество объектов, количество источников света, количество камер

scene_id, anim_id->sound

Идентификатор сцены и идентификатор анимации определяют наличие звука

scene_id, anim_id->frames

Идентификатор сцены и идентификатор анимации определяют количество адров

scene_id, anim_id->raskadrovka

Идентификатор сцены и идентификатор анимации определяют раскадровку

author_id->author_name, author_email, author_www

Идентификатор автора определяет его имя, почту и сайт Интернет

scene_id, anim_id, plug_name, type->name_anifile, size_kb_ani

Идентификатор сцены, идентификатор анимации, плагин, тип плагина определяют имя файла анимации и размер файла анимации

Исходное множество функциональных зависимостей

Полное множество атрибутов предметной области

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_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

scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments

scene_id -> objects, lights, cameras

scene_id, anim_id -> sound

scene_id, anim_id -> frames

scene_id, anim_id -> raskadrovka

author_id -> author_name, author_email, author_www

scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani

man_email -> man_name

man_www -> man_name

author_email -> author_id

author_www -> author_id

scene_id -> render_name

render_name -> man_name

plug_name -> man_name

edit_name -> man_name

1. 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=f

g:

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

scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments

scene_id -> objects, lights, cameras

scene_id, anim_id -> sound

scene_id, anim_id -> frames

scene_id, anim_id -> raskadrovka

author_id -> author_name, author_email, author_www

scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani

man_email -> man_name

man_www -> man_name

author_email -> author_id

author_www -> author_id

render_name -> man_name

plug_name -> man_name

edit_name -> man_name

18. 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=f

g:

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

scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments

scene_id -> objects, lights, cameras

scene_id, anim_id -> sound

scene_id, anim_id -> frames

scene_id, anim_id -> raskadrovka

author_id -> author_name, author_email, author_www

scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani

man_email -> man_name

man_www -> man_name

author_email -> author_id

author_www -> author_id

plug_name -> man_name

edit_name -> man_name

19. 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=f

g:

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

scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments

scene_id -> objects, lights, cameras

scene_id, anim_id -> sound

scene_id, anim_id -> frames

scene_id, anim_id -> raskadrovka

author_id -> author_name, author_email, author_www

scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani

man_email -> man_name

man_www -> man_name

author_email -> author_id

author_www -> author_id

edit_name -> man_name

20. 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=f

g:

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

scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments

scene_id -> objects, lights, cameras

scene_id, anim_id -> sound

scene_id, anim_id -> frames

scene_id, anim_id -> raskadrovka

author_id -> author_name, author_email, author_www

scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani

man_email -> man_name

man_www -> man_name

author_email -> author_id

author_www -> author_id

Неизбыточное покрытие

g:

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

scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments

scene_id -> objects, lights, cameras

scene_id, anim_id -> sound

scene_id, anim_id -> frames

scene_id, anim_id -> raskadrovka

author_id -> author_name, author_email, author_www

scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani

man_email -> man_name

man_www -> man_name

author_email -> author_id

author_www -> author_id

scene_id -> render_name

render_name -> man_name

plug_name -> man_name

edit_name -> man_name

2.5.2 Построение леворедуцированного покрытия

g:

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

scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments

scene_id -> objects, lights, cameras

scene_id, anim_id -> sound

scene_id, anim_id -> frames

scene_id, anim_id -> raskadrovka

author_id -> author_name, author_email, author_www

scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani

man_email -> man_name

man_www -> man_name

author_email -> author_id

author_www -> author_id

1. packname, scene_id -> amount, archiver_type

1.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 -> sound

2.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 -> frames

3.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 -> raskadrovka

4.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_ani

5.1. scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani

Проверяем: 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_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

scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments

scene_id -> objects, lights, cameras

scene_id, anim_id -> sound

scene_id, anim_id -> frames

scene_id, anim_id -> raskadrovka

author_id -> author_name, author_email, author_www

scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani

man_email -> man_name

man_www -> man_name

author_email -> author_id

author_www -> author_id

2.5.3 Построение праворедуцированного покрытия

g:

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

scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments

scene_id -> objects, lights, cameras

scene_id, anim_id -> sound

scene_id, anim_id -> frames

scene_id, anim_id -> raskadrovka

author_id -> author_name, author_email, author_www

scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani

man_email -> man_name

man_www -> man_name

author_email -> author_id

author_www -> author_id

1. man_name -> man_email, man_www, man_country

1.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_conditions

2.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, materials

3.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_type

4.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_type

5.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, comments

6.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, cameras

7.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 -> sound

8.1. Если удаляем sound

Проверяем: f |= scene_id, anim_id -> sound

Нет => множество ФЗ не изменяется.

9. scene_id, anim_id -> frames

9.1. Если удаляем frames

Проверяем: f |= scene_id, anim_id -> frames

Нет => множество ФЗ не изменяется.

10. scene_id, anim_id -> raskadrovka

10.1. Если удаляем raskadrovka

Проверяем: f |= scene_id, anim_id -> raskadrovka

Нет => множество ФЗ не изменяется.

11. author_id -> author_name, author_email, author_www

11.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_ani

12.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_name

13.1. Если удаляем man_name

Проверяем: f |= man_email -> man_name

Нет => множество ФЗ не изменяется.

14. man_www -> man_name

14.1. Если удаляем man_name

Проверяем: f |= man_www -> man_name

Нет => множество ФЗ не изменяется.

15. author_email -> author_id

15.1. Если удаляем author_id

Проверяем: f |= author_email -> author_id

Нет => множество ФЗ не изменяется.

16. author_www -> author_id

16.1. Если удаляем author_id

Проверяем: f |= author_www -> author_id

Нет => множество ФЗ не изменяется.

Удаление зависимостей вида X->

Праворедуцированное покрытие

g:

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

scene_id -> scene_name, size_polys, edit_name, author_id, render_name, size_kb, created, comments

scene_id -> objects, lights, cameras

scene_id, anim_id -> sound

scene_id, anim_id -> frames

scene_id, anim_id -> raskadrovka

author_id -> author_name, author_email, author_www

scene_id, anim_id, plug_name, type -> name_anifile, size_kb_ani

man_email -> man_name

man_www -> man_name

author_email -> author_id

author_www -> author_id

2.5.4 Построение классов эквивалентностей





Не сдавайте скачаную работу преподавателю!
Данную курсовую работу Вы можете использовать для написания своего курсового проекта.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем курсовую работу самостоятельно:
! Как писать курсовую работу Практические советы по написанию семестровых и курсовых работ.
! Схема написания курсовой Из каких частей состоит курсовик. С чего начать и как правильно закончить работу.
! Формулировка проблемы Описываем цель курсовой, что анализируем, разрабатываем, какого результата хотим добиться.
! План курсовой работы Нумерованным списком описывается порядок и структура будующей работы.
! Введение курсовой работы Что пишется в введении, какой объем вводной части?
! Задачи курсовой работы Правильно начинать любую работу с постановки задач, описания того что необходимо сделать.
! Источники информации Какими источниками следует пользоваться. Почему не стоит доверять бесплатно скачанным работа.
! Заключение курсовой работы Подведение итогов проведенных мероприятий, достигнута ли цель, решена ли проблема.
! Оригинальность текстов Каким образом можно повысить оригинальность текстов чтобы пройти проверку антиплагиатом.
! Оформление курсовика Требования и методические рекомендации по оформлению работы по ГОСТ.

Читайте также:
Разновидности курсовых Какие курсовые бывают в чем их особенности и принципиальные отличия.
Отличие курсового проекта от работы Чем принципиально отличается по структуре и подходу разработка курсового проекта.
Типичные недостатки На что чаще всего обращают внимание преподаватели и какие ошибки допускают студенты.
Защита курсовой работы Как подготовиться к защите курсовой работы и как ее провести.
Доклад на защиту Как подготовить доклад чтобы он был не скучным, интересным и информативным для преподавателя.
Оценка курсовой работы Каким образом преподаватели оценивают качества подготовленного курсовика.

Сейчас смотрят :

Курсовая работа Рынок драгоценных металлов России
Курсовая работа Разработка автоматизированного рабочего места бухгалтера
Курсовая работа Кредитование физических лиц
Курсовая работа Малый бизнес в рыночной экономике, его роль и перспективы
Курсовая работа Организация энергетического хозяйства в ЗАО "ЗКПД4 Инвест"
Курсовая работа Организация и мотивация труда на предприятии
Курсовая работа Статистико-экономический анализ себестоимости продукции ООО "Маруся"
Курсовая работа Анализ финансовохозяйственной деятельности страховой компании Росгосстрах
Курсовая работа Планирование и распределение прибыли
Курсовая работа Особенности формирования игровой деятельности умственно отсталых детей
Курсовая работа Обеспечение пожарной безопасности
Курсовая работа Организационные структуры управления на примере ГУП "Зилаирское ЖКХ"
Курсовая работа Моделирование систем массового обслуживания
Курсовая работа Исследование правового статуса защитника в уголовном судопроизводстве
Курсовая работа Стратегия управления персоналом в ООО "АЛЮСТЭМ"