Министерство образования и науки Российской Федерации
Курский Государственный Технический Университет
Кафедра ПО ВТ
КУРСОВАЯ РАБОТА
по дисциплине: “Базы данных”
Тема: “ Графические редакторы (пакеты трехмерного моделирования)”
Выполнил: студент гр. ПО-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.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 |
Функциональная зависимость | Описание |
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
... прочие). В соответствии с принципами формирования изображения аддитивным или субтрактивным методами разработаны способы разделения цветового оттенка на составляющие компоненты, называемые цветовыми моделями. В компьютерной графике в основном применяют модели RGB и HSB (для создания и обработки аддитивных изображений) и CMYK (для печати копии изображения на полиграфическом оборудовании). Цветовые ...
... средств. К примеру, Adobe Photoshop сейчас не является чисто растровым редактором, a CorelDRAW имеет довольно развитые средства работы с растровой графикой. 2. Графические редакторы, используемые для создания векторных и растровых изображений Редакторы растровой графики Microsoft Paint - простой (или лучше сказать - простейший) редактор, входящий в стандартную поставку операционных систем ...
и в составе растрового изображения. Сейчас Adobe Photoshop позволяет редактировать и растровую, и векторную графику. Хотя основное предназначение. Adobe Photoshop – преобразование существующего изображения, в версии CS4 мы находим массу разнообразных инструментов и для создания оригинальных продуктов. 2. Палитры и инструменты Рассмотрим подробно внешний вид и назначение каждого элемента ...
... трехмерной сцены. Можно создать не только трехмерные стандартные объекты – куб, рюмка и т.д., но и более сложные объекты, скажем, зверюшек, а также различных персонажей и т.д. и т.п.. 4. Применение векторной графики Успехи компьютерных технологий, достигнутые в последние годы, не оставляют места сомнениям при выборе способов получения, хранения и переработки данных о сложных комплексных ...
0 комментариев