Разработка базы данных "Жители королевства Кротеринг"
Определение понятия гейм-девелопмента — процесса разработки игр. Изучение и характеристика логической модели данных. Рассмотрение возможных пользователей созданной базы данных, к которым можно отнести клиента или сервер-программиста, гейм-дизайнера.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 26.07.2023 |
Размер файла | 1,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
АСТРАХАНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Факультет цифровых технологий и кибербезопасности
Кафедра прикладной математики и информатики
Курсовая работа выполнена в рамках изучения дисциплины «База данных»
Разработка базы данных «Жители королевства Кротеринг»
Направление подготовки: 44.03.05 Педагогическое образование (с двумя профилями подготовки). Профиль «Математика и Информатика»
Карова Надежда Николаевна
Научный руководитель: старший преподаватель кафедры ПМИ Рахманина Анастатсия Александровна
Астрахань - 2022
Содержание
Введение
1. Предметная область
2. Логическое проектирование
3. Физическое проектирование
4. Тестовые sql-запросы
Заключение
Список использованной литературы
Приложение
Введение
На данный момент во всех сферах жизни человека задействуются информационные технологии. Они призваны для систематизации рабочего процесса, упрощения профессиональной деятельности в повседневной жизни. Другими словами, для более эффективного управления информационными системами требуется создание в памяти ЭВМ динамически обновляемой модели внешнего мира с использованием единого хранилища - базы данных.
База данных -- это упорядоченный набор структурированной информации или данных, которые обычно хранятся в электронном виде в компьютерной системе. База данных обычно управляется системой управления базами данных (СУБД). Данные вместе с СУБД, а также приложения, которые с ними связаны, называются системой баз данных, или, для краткости, просто базой данных.
По ходу курсовой работы планируется создание базы данных, включающее в себя информацию о фэнтези-персонажах: их способностях, ремесле, статусе, регионе проживания, расе.
Целью создания базы данных является: повышение эффективности и сокращение различных затрат.
Задачи курсовой работы:
· изучение предметной области;
· создание концептуальной модели данных и логическое проектирование;
· физическое проектирование базы данных;
· проведение тестовых SQL-запросов.
Область применения базы данных может быть сфера геймдева, например, при создании галереи (списка) встречающихся по сюжету NPC (Non-Player Character -- «персонаж, управляемый не игроком») в компьютерных ролевых играх.
1. Предметная область
Гейм-девелопмент -- процесс разработки игр. Создавать их может как один человек -- инди-разработчик, так и целая команда программистов. Чем объемнее проект, тем больше в нем будет задействовано специалистов разного профиля, и тем больше в него будет вложено денег. Объем инвестиций в игровой рынок в 2020 году вырос на 77% в сравнении с показателем 2019 года, и достиг 13,2 млрд. долларов. Такой рост обоснован ситуацией с пандемией и карантином -- множество людей нашли для себя новое развлечение. Больше всего денег было вложено в создание игры Grand Theft Auto 5 -- 265 миллионов долларов. Над ее созданием работало более 1000 человек, и она смогла окупить себя с лихвой.
Совершенно противоположная ситуация развернулась с игрой Minecraft. Долгое время Маркус Перссон самостоятельно разрабатывал ее в одиночку. Только спустя два года к нему присоединились два друга. И все еще штат в три человека -- это довольно мало. Но вот спустя несколько лет продажи превысили 200 миллионов копий, а в Minecraft ежемесячно играют 126 миллионов человек. [3] Из выше сказанного можно сделать вывод, что область геймдевелопмента является очень востребованной и нуждается в все большем количестве «рабочих рук».
В базе данных предполагается описать жителей некоторого королевства «Кротеринг», для этого будут вводиться данные о расе жителя, способности, которая присуща каждой расе, его ремесле, статусе, регионе, в котором он проживает и талье, которой облагается данный регион.
2. Логическое проектирование
При исследовании предметной области и сферы применения базы данных, было принято решение представить концептуальную модель данных следующим образом:
Рисунок 1. Концептуальная модель данных.
Таким образом, в логической модели данных, будет содержаться более полная информация о каждой сущности базы данных.
В таблице «Житель» будут храниться код расы - индивидуальный код каждого жителя, имя, имя отца, пол, возраст, код ремесла, код статуса, код региона.
В таблице «Расы», связанной с таблицей «Жители» - код расы - индивидуальный код расы, код способности, наименование расы, включающее в себя такие наименования как «Человек», «Гном», «Эльф».
В таблице «Способности», связанной с таблицей «Расы» - код способности - индивидуальный код способности, тип способности, а именно - «Приспособленчество», «Выносливость», «Хитрость».
В таблице «Регион», связанной с таблицей «Житель» - код региона - индивидуальный код региона, название региона, а именно - «Флорин», «Вестерос», «Крулл», «Нехвон», «Содор», численность, код тальи.
В таблице «Талья», связанной с таблицей «Регион» - код тальи - индивидуальный код тальи, и значение тальи.
В таблице «Ремесло», связанной с таблицей «Житель» - код ремесла - индивидуальный код ремесла, название ремесла, включающее в себя такие наименования как «Воин», «Лекарь», «Охотник», «Кузнец», «Купец», «Ассасин», «Алхимик», «Дворянин», «Раб», «Самовольный», «Некромант», «Трактирщик», стаж.
В таблице «Статус», связанной с таблицей «Житель» - код статуса - индивидуальный код статуса, название статуса - «Верный подданый», «Предатель», «В тюрьме».
Если же говорить о связях между таблицами в базе данных, то было принято решение использовать два типа связей: один ко многим и один к одному.
«Статус», «Регион», «Ремесло», «Раса» относятся к «Жителям» как один ко многим, а связь между таблицами «Раса»-«Способности» и «Регион»-«Талья» - один к одному.
Рисунок 2. Логическая модель данных
3. Физическое проектирование
Для создания проекта использовалась СУБД PostgreSQL по следующим причинам:
· поддержка БД неограниченного размера;
· мощные и надёжные механизмы транзакций и репликации;
· расширяемая система встроенных языков программирования и поддержка загрузки C-совместимых модулей;
· наследование;
· легкая расширяемость.
К возможным пользователям созданной базы данных можно отнести клиент или сервер-программиста (работа с оффлайн и онлайн контентом соответственно), гейм-дизайнера (режиссерская работа в сфере геймдева).
Круг запросов, которые предполагается решать с использованием созданной БД можно определить следующим: вывод нужных персонажей, подсчет количества, изменение значения полей, вывод максимальных значений.
Рассмотрим структуру отношений, находящихся в базе данных «Жители королевства Кротеринг».
Таблица «Abilities». Code_Abilities и Abilities_type, предназначенные для хранения индивидуального кода способности и типа способности, присваивались типы Numeric(2) и Character(30) соответственно. Примечание: полю Code_Abilities присваивалось Primary Key.
Таблица 1 - способности (Abilities) - обладание разного рода характеристиками в зависимости от расы
Имя поля |
Тип |
Назначение |
Примечание |
|
Code_Abilities |
Numeric (2) |
Код способности |
Первичный ключ |
|
Abilities_type |
Character (30) |
Тип способности |
Следующая таблица - «Race». Полю Code_Race, хранящее индивидуальный код расы, присваивается тип Numeric(2) и данное поле является первичным ключом таблицы. Code_Abilities, хранящее код способности, присваивается тип Numeric(2) и действует ограничение: поле является внешним ключом к таблице «Abilities»; Race_name хранит наименование расы и имеет тип Character(20).
Таблица 2 - раса (Race) - расовое многообразие жителей
Имя поля |
Тип |
Назначение |
Примечание |
|
Code_Race |
Numeric (2) |
Код расы |
Первичный ключ |
|
Code_Abilities |
Numeric (2) |
Код способностей |
Внешний ключ Abilities |
|
Race_name |
Character (20) |
Название расы |
Таблица «Tallage»: полю Code_tallage, хранящее индивидуальный код тальи, присваивается тип Numeric(2) и первичный ключ, полю Tallage_value, внутри которого значение тальи, присваивается Numeric(2).
Таблица 3 - талья (tallage) - значение налога в зависимости от региона
Имя поля |
Тип |
Назначение |
Примечание |
|
Code_tallage |
Numeric (2) |
Код статуса |
Первичный ключ |
|
Tallege_value |
Numeric (2) |
Величина тальи |
Таблица «Region»: Code_Region, предназначенное для хранения индивидуального кода региона, с типом Numeric (2) и первичным ключом, Region_name, хранящее название региона, с типом Character (30), Population, хранящее численность региона, с типом Numeric (5), Code_tallage, хранящее код тальи, с типом Numeric (2) и внешним ключом к таблице «Tallage».
Таблица 4 -регион (Region) - список регионов королевства, где проживают жители
Имя поля |
Тип |
Назначение |
Примечание |
|
Code_Region |
Numeric (2) |
Код региона |
Первичный ключ |
|
Region_name |
Character (30) |
Название региона |
||
Population |
Numeric (5) |
Численность |
||
Code_tallage |
Numeric (2) |
Код тальи |
Внешний ключ tallage |
Таблица «Metier»: поле Code_Metier, которое хранит индивидуальный код ремесла, с типом Numeric (2) и первичным ключом, Metier_name, внутри которого название ремесла, с типом Character (30), в Experience с типом Numeric (2) хранится значение необходимого опыт.
Таблица 5 - ремесло (Metier) - чем житель на жизнь зарабатывает
Имя поля |
Тип |
Назначение |
Примечание |
|
Code_Metier |
Numeric (2) |
Код ремесла |
Первичный ключ |
|
Metier_name |
Character (30) |
Название ремесла |
||
Experience |
Numeric (2) |
Стаж |
Таблица «Status»: поле Code_Status, хранящее код статуса, с типом данных Numeric (2) и первичным ключом, поле Status_name, хранящее наименование статуса, с типом данных Character (30).
Таблица 6 - статус (Status) - выявление нарушителей среди верных подданых
Имя поля |
Тип |
Назначение |
Примечание |
|
Code_Status |
Numeric (2) |
Код статуса |
Первичный ключ |
|
Status_name |
Character (30) |
Описание статуса |
И последняя таблица «Inhabitant»: поля Code_inhabitant, хранящее индивидуальный код жителя, с типом integer и первичным ключом, Name, хранящее имя жителя, с типом Character (25), Father_name, хранящее имя отца жителя, с типом Character (30), Sex, внутри которого информация о поле жителя, с типом Character (7), Age, хранящее возраст жителя, с типом Numeric (4), Code_Race с типом Numeric (2) - внешний ключ к таблице «Раса» хранит код расы, Code_Metier с типом Numeric (2) - внешний ключ к «Ремеслу» хранит код ремесла, Code_Status с типом Numeric (1) - внешний ключ к таблице «Статус» хранит код статуса, Code_Region с типом Numeric (2) - внешний ключ к «Региону» хранит код региона.
Таблица 7 -житель (Inhabitant) - данные определенного жителя
Имя поля |
Тип |
Назначение |
Примечание |
|
Code_inhabitant |
integer |
Код жителя |
Первичный ключ |
|
Name |
Character (25) |
Имя |
||
Father_name |
Character (30) |
Имя отца |
||
Sex |
Character (7) |
Пол |
Мужчина или женщина |
|
Age |
Numeric (4) |
Возраст |
||
Code_Race |
Numeric (2) |
Код расы |
Внешний ключ к Race |
|
Code_Metier |
Numeric (2) |
Род ремесла |
Внешний ключ Metier |
|
Code_Status |
Numeric (1) |
Код статуса |
Внешний ключ Status |
|
Code_Region |
Numeric (2) |
Код региона |
Внешний ключ Region |
Скриншоты всех шагов создания базы данных представлены в Приложении 1.
Далее рассмотрим некоторое количество тестовых запросов, чтобы убедиться в работоспособности созданной БД.
4. Тестовые sql-запросы
1. Вывести персонажей мужского пола.
SQL-команда для выполнения запроса: select concat(name, father_name) as "Inhabitant-male" from inhabitant where sex='мужской';
Результат и код запроса представлены на рисунке 3.
Рисунок 3. Запрос № 1
2. Вывести персонажей, у которых статус - «в тюрьме».
SQL-команда для выполнения запроса: select concat(name, father_name) as bad_inhabitant from inhabitant where code_status = 2;
Результат и код запроса представлены на рисунке 4.
Рисунок 4. Запрос № 2
3. Вывести имена персонажей с указанием города, где они живут.
SQL-команда для выполнения запроса: select region_name, concat(name, father_name) as inhabitant from inhabitant inner join region on inhabitant.code_region=region.code_region;
Результат и код запроса представлены на рисунке 5.
Рисунок 5. Запрос № 3
4. Изменить значение поля Experience на «карается», где название ремесла - некромант.
SQL-команда для выполнения запроса: update metier set experience='карается' where metier_name='некромант';
Результат и код запроса представлены на рисунке 6.
Рисунок 6. Запрос № 4
5. Вывести имена гномов
SQL-команда для выполнения запроса: select name from inhabitant where code_race = 2;
Результат и код запроса представлены на рисунке 7.
Рисунок 7. Запрос № 5
6. Вывести персонажа кузнеца женского пола.
SQL-команда для выполнения запроса: select name, father_name from inhabitant where sex='женский' and code_metier = 4;
Результат и код запроса представлены на рисунке 8.
Рисунок 8. Запрос № 6
7. Вывести имя персонажей, у которых оно начинается на букву «а».
SQL-команда для выполнения запроса: select name, father_name from inhabitant where name like 'а%';
Результат и код запроса представлены на рисунке 9.
Рисунок 9. Запрос № 7
8. Вывести список профессий с количеством персонажей, задействованных в них.
SQL-команда для выполнения запроса: select metier_name, count(*) from metier, inhabitant where metier.code_metier=inhabitant.code_metier group by metier_name; гейм девелопмент программист
Результат и код запроса представлены на рисунке 10.
Рисунок 10. Запрос № 8
9. Вывести названия городов и значение налога для этих городов.
SQL-команда для выполнения запроса: select region_name, tallage_value from tallage inner join region on region.code_tallage=tallage.code_tallage;
Результат и код запроса представлены на рисунке 11.
Рисунок 11. Запрос № 9
10. Создать представление с помощью команды CREATE VIEW, которое содержит следующие данные по жителям: код, имя, имя отца, статус. Вывести данные из полученного представления на экран
SQL-команда для выполнения запроса: create view main_information as select code_inhabitant, name, father_name, status_name from inhabitant, status where inhabitant.code_status=status.code_status order by code_inhabitant;
Результат и код запроса представлены на рисунке 12.
Рисунок 12. Запрос № 10
Заключение
В ходе курсовой работы была разработана и создана база данных "Жители королевства Кротеринг", которая позволяет более эффективно выполнять работу при создании галереи персонажей. Созданная БД может быть усовершенствована и дополнена новыми данными, в нее могут быть введены дополнительные средства формирования данных.
Например, в дальнейшем, данную БД, уже при работе с мультиплеерным режимом игры, можно будет наполнить чем-то подобным:
# select * from avatar limit 1;
id | 144115188075857124
position |
{"point":{"x":7402.2793,"y":6080.2197,"z":51.42402},"yaw":0.0,"map":"id:132646944","isLocal":false,"isValid":true}
death_descriptor | {"deathTime":-1,"respawnTime":-1,"sparkReturnDelay":-1,"recentDeathTimesArray":[]}
health | 1250
mana_descriptor | {"mana":{"8":300}}
avatar_client_info | \x
character_race_class_res_id | 26209282
character_sex_res_id | 550995
last_online_time | 1371814800726 [5]
Список использованной литературы
1. ER-модель // Википедия. [2006-2021]. URL: https://ru.wikipedia.org/wiki/ER-модель (дата обращения: 26.12.2021).
2. SQL - FOREIGN KEY // URL: https://html5css.ru/sql/sql_foreignkey.php
3. SQL - Primary Key (Первичный ключ) // URL: https://andreyex.ru/bazy-dannyx/uchebnoe-posobie-po-sql/sql-primary-key-pervichnyj-klyuch/
4. База данных // HOSTiQ. [2017-2021]. URL: https://hostiq.ua/wiki/database/ (дата обращения: 25.12.2021).
5. Базы данных в онлайн-играх. От Аллодов Онлайн до Skyforge // URL: https://habr.com/ru/company/vk/blog/182088/
6. Виды и типы SQL-запросов // Центр развития компетенций в бизнес-информатике Высшей школы бизнеса. URL: https://hsbi.hse.ru/articles/vidy-i-tipy-sql-zaprosov/ (дата обращения: 27.12.2021).
7. Гуревич А.Я. История и сага. - М.: Наука, 2021. -- 202 с
8. Профессии в гейм-деве // URL: https://promoed.ru/professii-v-gamedev/
9. Серверный программист это? // URL: https://gamedev.ru/code/forum/?id=239450
10. Фуфаев, Э.В. Базы данных: Учебное пособие для студентов учреждений среднего профессионального образования / Э.В. Фуфаев, Д.Э. Фуфаев. - М.: ИЦ Академия, 2019. - 320 c.
11. Хаббард Дж. Автоматизированное проектирование баз данных: Пер. с англ. под ред. А.Л. Щерса. - М.: Мир, 2019. - 296 с.
12. Шпак, Ю.А. Проектирование баз данных. Просто как дважды два / Ю.А. Шпак. - М.: Эксмо, 2020. - 304 c.
Приложение
Рисунок 1. Создание таблицы «Способности»
Рисунок 2. Создание таблицы «Расы»
Рисунок 3. Создание таблицы «Талья»
Рисунок 4. Создание таблицы «Регион»
Рисунок 5. Создание таблицы «Ремесло»
Рисунок 6. Создание таблицы «Статус»
Рисунок 7. Просмотр таблицы «Жители»
Рисунок 8. Просмотр всех созданных таблиц
Размещено на Allbest.ru
...Подобные документы
Модели данных как формальный аппарат для описания информационных потребностей пользователей. Структура информационной базы. Типы взаимосвязей. Разработка логической структуры базы для хранения данных о пяти поставщиках. Детализация реляционной модели.
презентация [28,9 K], добавлен 07.12.2013Базы данных - важнейшая составная часть информационных систем. Проектирование базы данных на примере предметной области "Оргтехника". Сбор информации о предметной области. Построение информационно-логической модели данных. Разработка логической структуры.
курсовая работа [318,6 K], добавлен 24.12.2014Процесс разработки Web-сайта. Состав и содержание работ по созданию подсистемы. Требования к Web-сайту. Определение сущностей модели базы данных. Разработка логической модели базы данных. Реализация PHP-скриптов и заполнение базы данных Web-сайта.
дипломная работа [8,2 M], добавлен 29.06.2011Создание базы данных с помощью ACCESS для автоматизации работы базы отдыха. Оценка возможностей пользователей при работе с данной базой. Построение информационно-логической модели базы данных. Разработка запросов для корректировки и выборки данных.
курсовая работа [1,1 M], добавлен 19.10.2010История создания предприятия и анализ его деятельности. Основные понятия торговли. Этапы разработки модели данных, построение информационно-логической модели. Разработка базы данных для учета товародвижения и документооборота на предприятии в ACCESS.
дипломная работа [1006,2 K], добавлен 14.01.2012Особенности разработки инфологической модели и создание структуры реляционной базы данных. Основы проектирования базы данных. Разработка таблиц, форм, запросов для вывода информации о соответствующей модели. Работа с базами данных и их объектами.
курсовая работа [981,4 K], добавлен 05.11.2011Понятие базы данных, модели данных. Классификация баз данных. Системы управления базами данных. Этапы, подходы к проектированию базы данных. Разработка базы данных, которая позволит автоматизировать ведение документации, необходимой для деятельности ДЮСШ.
курсовая работа [1,7 M], добавлен 04.06.2015Проектирование логической структуры базы данных методом нормальных форм, сущность связь. Сравнительный анализ спроектированной базы данных и базы данных существующих информационных систем. Выбор и обоснование состава технических и программных средств.
курсовая работа [3,0 M], добавлен 22.12.2014Описание предметной области разрабатываемой базы данных для теннисного клуба. Обоснование выбора CASE-средства Erwin 8 и MS Access для проектирования базы данных. Построение инфологической модели и логической структуры базы данных, разработка интерфейса.
курсовая работа [3,8 M], добавлен 02.02.2014Знакомство с особенностями и этапами разработки базы данных "Летопись острова Санта Белинда". Анализ основных компонентов MS Access. Форма как объект базы данных, который можно использовать для создания интерфейса пользователя для приложения базы данных.
курсовая работа [2,1 M], добавлен 25.05.2015Что такое базы данных, визуализация информации базы. Структура и свойства простейшей базы данных. Характеристика определений, типов данных, безопасность, специфика формирования баз данных. Подходы к проектированию технического задания. Работа с таблицами.
презентация [4,3 M], добавлен 12.11.2010Понятие базы данных, ее архитектура. Классификация баз данных. Основные модели данных. Примеры структурированных и неструктурированных данных. Достоинства и недостатки архитектуры файл-сервер. Иерархическая модель данных. Виды индексов, нормализация.
презентация [1,4 M], добавлен 06.08.2014Проектирование даталогической модели в виде логической структуры реляционной базы данных в СУБД Microsoft SQL Server на основе созданной инфологической модели базы данных интернет-магазина музыки. Выделение сущностей и связей, анализ предметной области.
курсовая работа [724,6 K], добавлен 15.06.2013ERwin как средство разработки структуры базы данных. Внешний вид диалогового окна Entity Edition. Общий вид модели после создания сущностей. Вид логической модели после создания связей. Диалоговое окно New Key Group, окончательный вид логической модели.
лабораторная работа [559,0 K], добавлен 16.07.2013Понятия банка и базы данных, ее компоненты. Многоуровневые модели предметной области, их представление в базе данных. Идентификация объектов и записей. Способы обращения к записям или отдельным элементам данных, их поиск. Определение структуры данных.
контрольная работа [39,6 K], добавлен 10.04.2010Построение инфологической концептуальной модели предметной области. Структура базы данных Microsoft Office Access. Формы, запросы и отчеты. Создание форм, запросов и отчетов в базах данных. Схема данных физической и логической сущности в Erwin 4.0.
курсовая работа [5,1 M], добавлен 13.12.2011Определение базы данных и банков данных. Компоненты банка данных. Основные требования к технологии интегрированного хранения и обработки данных. Система управления и модели организации доступа к базам данных. Разработка приложений и администрирование.
презентация [17,1 K], добавлен 19.08.2013Эволюция концепций баз данных. Требования, которым должна удовлетворять организация базы данных. Модели представления данных. Язык SQL как стандартный язык баз данных. Архитектуры баз данных. Среда Delphi как средство для разработки СУБД.
дипломная работа [278,9 K], добавлен 26.11.2004Представление данных в памяти компьютера. Обобщенные структуры и модели данных. Методы доступа к информации. Физическая организация системы управления базами данных, структура сервера. Архитектура "клиент-сервер". Создание базы данных с помощью "Денвер".
курсовая работа [770,3 K], добавлен 17.11.2014Модели информационного процесса обработки данных. Классификация баз данных. Сеть архитектуры и технология клиент-сервер. Создание запросов к реляционным базам данных на SQL. Работа с электронными таблицами MS Excel: форматирование данных, вычисления.
контрольная работа [17,8 K], добавлен 17.01.2010