- •1. Стратегія автоматизації предметної області
- •1.1. Загальні положення
- •1.2. Мета, цілі та задачі створення бази даних
- •1.3. Вимоги до інформаційного забезпечення
- •2. Аналіз предметної області
- •2.1. Загальні положення системного аналізу по
- •2.2. Загальні положення чемпіонату з комп’ютерних ігор
- •2.3.2. Сутність Команда
- •2.3.3. Сутність Ігроки
- •2.3. Системний аналіз предметної області
- •2.3.1. Сутність Ігри
- •2.3.4. Сутність Учасники
- •2.3.5. Сутність Команди лідерів
- •2.3.6. Сутність Ігроки лідери на техніці
- •2.3.7. Сутність техніка
- •2.3.8. Сутність Зброя
- •2.3.9. Сутність Класи
- •2.3.10. Сутність Атрибути класів
- •2.3.11. Сутність Карти
- •2.3.12. Сутність Техніка для гри
- •2.3.13. Сутність Зброя для гри
- •2.3.14. Сутність Класи для гри
- •2.3.15. Сутність Карти для гри
- •2.3.16. Сутність Ігроки лідера «Класа»
- •2.3.17. Сутність Ігроки лідире на картах
- •2.4. Інформаційно-довідкові задачі
- •3. Концептуальне моделювання предметної області
- •3.1. Теоретичні положення концептуального моделювання
- •3.2. Мова er—моделювання по
- •3.2. Побудова концептуальної моделі проходження практики студентами
- •4. Логічне та фізичне проектування бази даних
- •4.1. Логічне проектування
- •4.2. Фізичне проектування
- •4.2.1. Скрипти створення бази даних
- •4.2.2. Інформаційно–пошукові запити
- •4.2.2.1. Інформаційні запити, що пов’язані з лідерами
- •4.2.2.2. Інформація о техніки та класи
- •4.2.2.3. Інформація про переможців
- •Висновки
4.2.2. Інформаційно–пошукові запити
Наведемо приклади інформаційно пошукових запитів відносно тих задач, які були окреслені в підрозділі «2.4. Інформаційно-довідкові задачі». Приклади наведемо у мові SQL Oracle з використанням бази даних, визначеної у попередньому підрозділі.
4.2.2.1. Інформаційні запити, що пов’язані з лідерами
Запит 1. Вивести інформацію о ігрках які лідирують на картах
select m.name, p.nickname, t.name,
from maps m, players p, teams t, maps_leader_players mpl
where mpl.map_id = m.id
and mpl.player_id = p.id
and p.team = t.id
group by t.name;
Запит 2. Вивести назви карт на яких відіграла команда.
select m.name, t.name
from maps m, game_maps gm, games g, games_references gr, team t
where t.id = gr.team
and g.id = gr.game
and g.id = gm.game_id
and gm.map_id = m.id;
and t.name = "команда";
Запит 3. Вивести команди які являються лідерами в списків команд, а також їхні бали
select m.name t.name, mlp.score
from team t, games_references gr, games g, maps_leader_players mlp,maps m,players p
where p.team = t.id
and mlp.player = p.id
and m.id = mlp.map_id
and mlp.score = (select max(score) from maps_leader_players)
sort by mlp.score desc;
4.2.2.2. Інформація о техніки та класи
Запит 1. Скільки машин знаходяться в ігрі.
select v.name, v.attack, v.armor, v.speed, g.game
from vehicle v, game_vehicles gv, games g
where g.id = gv.game_id
and gv.vehicle_id = v.id
group by v.name;
Запит 2. Скільки класі співпадають деяких ігор.
elect c.name from classes c, game_classes gc, games g
where g.id = gc.game_id
and class_id = c.id
and 1 > (select count(unique gc1.class_id) from game_classes gc1, classes cl
where cl.id = gc1.class_id
and cl.name = c.name)
group by c.name;
Запит 3. Скільки зброї знаходиться в грі.
select w.name, w.attack, w.attack_speed, w.mag_rounds, all_rounds, g.game
from weapons w, game_weapons gw, games g
where g.id = gw.game_id
and gw.weapons_id = w.id
group by w.name;
4.2.2.3. Інформація про переможців
Запит 1. Хто кто зайняв перші місця середи лідерів класів та іх рахунок .
select m.name, p.nickname, t.name,
from class c, players p, teams t, class_leader_players cpl
where cpl.clas_id = c.id
and cpl.player_id = p.id
and p.team = t.id
and сlp.score = (select max(score) from class_leader_players)
group by t.name;
Запит 2. Які учасники з команди заняли перші місця
select n.name from GAMES_REFERENCES
where n.name = t.id
and nickmame = l.login
and g.id = gr.game
and g.id = gm.game_id
and t.name = "команда";
Запит 3. Вивести команд які займають перші місця на техніці.
select v.name t.name, vlp.score
from team t, games_references gr, games g, vehicles_leader_players vlp, vehicles v,players p
where p.team = t.id
and vlp.player = p.id
and v.id = mlp.map_id
and vlp.score = (select max(score) from vehicles_leader_players)
sort by vlp.score desc;
Висновки
Проектування баз даних — це складний, багатокроковий процес перетворення інформаційного середовища ПО у інформаційну модель у вигляді бази даних. Цей процес складається з різних етапів, а саме: розробка стратегії автоматизації, аналіз ПО, побудова концептуальної моделі ПО, логічне та фізичне проектування БД. На сучасному етапі розвитку інформатики проектування баз даних перетворилося на цілком сформовану наукову дісціпліну, яка має у своєму складі формально-теоретичну та технологічну складові. Теоретичної основою проектування баз даних є теорія нормалізації, яка дозволяє чітко і строго відповісти на таке запитання: як слід проводити перетворення початкової схеми ПО таким чином, щоб результуюча схема бази даних була еквівалентна початковій і була краща за неї. Методологія проектування детально описує усі етапи життєвого циклу створення бази даних з використанням сучасних мов опису ПО.
Ціллю курсової роботи було проектування бази даних проведення чемпіонату комп’ютерних ігор в жанрі»Shooter».
Для виконання курсової роботи були проведені всі необхідні дослідження, що стосуються розробки стратегії автоматизації, в результаті яких була надана відповідь на принципові запитання, що стосуються автоматизації любої предметної області.
Після цього був проведений аналіз ПО в результаті якого був отриманий змістовний опис ПО. Для аналізу ПО використовувалися наявні документи, а саме:документи про журі, списки про учасників які приймають участь в чемпіонаті та ігри по яким проводиться чемпіонат. Крім того, були отримані консультації провідних компаній які створювали ігри.
Після цього була побудована концептуальна модель. Для цього була використана мова ER-опису ПО, яка базується на концепції, що інформаційна модель будь-якої ПО може бути описана із застосування таких понять, Як сутність, атрибут, зв’язок. Крім того, ця мова є суттєво графічною, що дає можливість наочно представляти концептуальну модель ПО. При побудові концептуальної моделі неявно використовувалися результати теорії нормалізації, у зв’язку з цим побудована модель представлена у третій нормальній формі. Необхідності використання більш високих нормальних форм не було, так як у предметній області не були виявлені складні види транзитивних функціональних залежностей, а також багатозначні залежності.
Логічне та фізичне проектування БД складалося з конвертації концептуальної моделі ПО у реляційну модель даних. При цьому був використаний алгоритм конвертування схеми ПО у мові ER в схему реляційної бази даних. Після цього реляційна база даних була представлена у вигляді команд створення таблиць бази даних у мові SQL ORACLE. Крім того, у мові SQL описані деякі інформаційно-пошукові запити.
Виконана курсова робота надала мені можливості ознайомитися з технологією проектування баз даних, та отримати практичний досвід у проектуванні бази даних з конкретної предметної області.
