|
1 | 1 | # Introdução |
2 | 2 |
|
| 3 | +<p align="justify"> |
| 4 | +Este documento aborda o uso de Data Manipulation Language para a criação e manipulação de dados, no contexto do jogo cyberpunk, adotado como temática do projeto do grupo. Inclui inserções, atualizações e exclusões de registros em tabelas relacionadas a regiões, salas, personagens, missões, recompensas, puzzles, diálogos e outros elementos do jogo. |
| 5 | +</p> |
| 6 | + |
3 | 7 | # Data Manipulation Language |
4 | 8 |
|
| 9 | +<p align="justify"> |
| 10 | +O Data Manipulation Language é um conjunto de comandos SQL utilizado para manipular os dados armazenados nas tabelas. Ele inclui operações como inserção, atualização e exclusão de registros. No projeto, as operações DML implementam a lógica do jogo, como a criação de personagens, missões, itens e interações entre eles. |
| 11 | +</p> |
| 12 | + |
| 13 | +<p align="justify"> |
| 14 | +Enquanto o DML se concentra na manipulação de dados, a consulta desses dados é feita na seção Data Query Language, onde comandos como *SELECT* são usados para recuperar informações do banco de dados. |
| 15 | +</p> |
| 16 | + |
| 17 | +<p align="justify"> |
| 18 | +Abaixo, estão descritas as seções do projeto que utilizam comandos DML para criar e gerenciar os elementos do jogo. |
| 19 | +</p> |
| 20 | + |
| 21 | +### Regiões |
| 22 | +Essa tabela armazena as diferentes regiões do jogo. Cada região tem um identificador único e um nome. |
| 23 | +```sql |
| 24 | +INSERT INTO Regiao (idRegiao, nomeRegiao) |
| 25 | + VALUES (1, 'Regiao Inicial'); |
| 26 | +``` |
| 27 | + |
| 28 | +### Salas |
| 29 | +As salas pertencem a uma região e representam os espaços que os jogadores podem explorar. A chave estrangeira `fk_regiao` associa cada sala à sua respectiva região. |
| 30 | +```sql |
| 31 | +INSERT INTO Sala (idSala, nomeSala, fk_regiao) |
| 32 | + VALUES (1, 'Sala Spawn', 1), |
| 33 | + (2, 'Sala 2', 1), |
| 34 | + (3, 'Sala 3', 1), |
| 35 | + (4, 'Sala 4', 1), |
| 36 | + (5, 'Sala 5', 1), |
| 37 | + (6, 'Sala 6', 1), |
| 38 | + (7, 'Sala 7', 1), |
| 39 | + (8, 'Sala 8', 1), |
| 40 | + (9, 'Sala 9', 1), |
| 41 | + (10, 'Sala 10', 1), |
| 42 | + (11, 'Sala 11', 1), |
| 43 | + (12, 'Sala 12', 1), |
| 44 | + (13, 'Sala 13', 1), |
| 45 | + (14, 'Sala 14', 1), |
| 46 | + (15, 'Sala 15', 1), |
| 47 | + (16, 'Sala 16', 1), |
| 48 | + (17, 'Sala 17', 1), |
| 49 | + (18, 'Sala 18', 1), |
| 50 | + (19, 'Sala 19', 1), |
| 51 | + (20, 'Sala 20', 1); |
| 52 | +``` |
| 53 | + |
| 54 | +### ExoHumanos |
| 55 | +Os ExoHumanos são personagens presentes no jogo, associados a uma sala específica. |
| 56 | +```sql |
| 57 | +INSERT INTO ExoHumano (idExoHumano, nome, fk_sala) |
| 58 | + VALUES (1,'ExoHumano Inicial', 1); |
| 59 | +``` |
| 60 | + |
| 61 | +### Missões |
| 62 | +As missões são desafios que os jogadores devem completar. Cada missão está associada a uma sala e a um CyberLutador específico. |
| 63 | +```sql |
| 64 | +INSERT INTO Missao (idMissao, nomeMissao, descricao, fk_sala, fk_cyberlutador) |
| 65 | + VALUES (1, 'Missao Inicial', 'Descricao 1', 1, 1), |
| 66 | + (2, 'Decodificação inicial', 'Descricao 2', 2, 1); |
| 67 | +``` |
| 68 | + |
| 69 | +### Recompensas |
| 70 | +As recompensas são atribuídas a missões ou a combates contra inimigos. |
| 71 | +```sql |
| 72 | +INSERT INTO Recompensa (idRecompensa, dinheiro, item, fk_instancia_inimigo, fk_cyberlutador) |
| 73 | + VALUES (1, 100, 'Item Recompensa Inicial', 1, 1); |
| 74 | + |
| 75 | +INSERT INTO RecompensaMissao (idRecompensaMissao, dinheiro, item, fk_sala, fk_cyberLutador) |
| 76 | + VALUES (1, 100, 'Item Recompensa Missao Inicial', 1, 1); |
| 77 | +``` |
| 78 | + |
| 79 | +### Puzzles |
| 80 | +Os puzzles são desafios que os jogadores precisam resolver dentro de uma missão. Eles podem ser de tipos diferentes, como matemáticos ou de decodificação. |
| 81 | +```sql |
| 82 | +INSERT INTO Puzzle (idPuzzlle, nomePuzzle, dificuldade, fk_missao) |
| 83 | + VALUES (1, 'Puzzle Inicial', 'Facil', 1); |
| 84 | + |
| 85 | +INSERT INTO Matematico (fk_puzzle, expressao) |
| 86 | + VALUES (1, '2 + 2 = ?'); |
| 87 | + |
| 88 | +INSERT INTO Decodificar (fk_puzzle, codigo) |
| 89 | + VALUES (2, 'A = 1, B = 2, C = 3, D = 4, E = 5, F = 6, G = 7, H = 8, I = 9, J = 10, K = 11, L = 12, M = 13, N = 14, O = 15, P = 16, Q = 17, R = 18, S = 19, T = 20, U = 21, V = 22, W = 23, X = 24, Y = 25, Z = 26'); |
| 90 | +``` |
| 91 | + |
| 92 | +### Diálogos |
| 93 | +Os diálogos são frases associadas aos NPCs para interagir com os jogadores em diferentes salas. |
| 94 | +```sql |
| 95 | +INSERT INTO Dialogo (idDialogo, nomeDialogo, fk_npc) |
| 96 | + VALUES ('Olá, bem vindo ao jogo!', 1), |
| 97 | + ('Você está na sala 1', 1), |
| 98 | + ('Você está na sala 2', 2), |
| 99 | + ('Você está na sala 3', 3), |
| 100 | + ('Você está na sala 4', 4), |
| 101 | + ('Você está na sala 5', 5), |
| 102 | + ('Você está na sala 6', 6), |
| 103 | + ('Você está na sala 7', 7), |
| 104 | + ('Você está na sala 8', 8), |
| 105 | + ('Você está na sala 9', 9), |
| 106 | + ('Você está na sala 10', 10), |
| 107 | + ('Você está na sala 11', 11), |
| 108 | + ('Você está na sala 12', 12), |
| 109 | + ('Você está na sala 13', 13), |
| 110 | + ('Você está na sala 14', 14), |
| 111 | + ('Você está na sala 15', 15), |
| 112 | + ('Você está na sala 16', 16), |
| 113 | + ('Você está na sala 17', 17), |
| 114 | + ('Você está na sala 18', 18), |
| 115 | + ('Você está na sala 19', 19), |
| 116 | + ('Você está na sala 20', 20); |
| 117 | +``` |
| 118 | + |
| 119 | +### CyberLutadores |
| 120 | +Os CyberLutadores são os personagens controlados pelos jogadores. Seus atributos podem ser atualizados conforme o progresso do jogo. |
| 121 | +```sql |
| 122 | +INSERT INTO CyberLutador (idCyber, inteligencia, resistencia, furtividade, percepcao, vida, velocidade, forca) |
| 123 | + VALUES (1, 10, 10, 10, 10, 100, 10, 10); |
| 124 | + |
| 125 | +UPDATE CyberLutador |
| 126 | + SET inteligencia = inteligencia + num, |
| 127 | + resistencia = resistencia + num, |
| 128 | + furtividade = furtividade + num, |
| 129 | + percepcao = percepcao + num, |
| 130 | + vida = vida + num, |
| 131 | + velocidade = velocidade + num, |
| 132 | + forca = forca + num |
| 133 | + WHERE idCyber = 1; |
| 134 | +``` |
| 135 | + |
| 136 | +### Itens |
| 137 | +Os itens representam os objetos que os jogadores podem coletar e usar ao longo do jogo. |
| 138 | +```sql |
| 139 | +INSERT INTO Item (idItem, nomeItem, descricao, valor) |
| 140 | + VALUES (1, 'Item Inicial', 'Item de teste', 100); |
| 141 | + |
| 142 | +INSERT INTO InstanciaItem (idInstanciaItem, fk_item) |
| 143 | + VALUES (1, 1); |
| 144 | + |
| 145 | +DELETE FROM InstanciaItem |
| 146 | + WHERE idInstanciaItem = 1; |
| 147 | +``` |
| 148 | + |
| 149 | +### NPCs |
| 150 | +Os NPCs fornecem interações e desafios aos jogadores. |
| 151 | +```sql |
| 152 | +INSERT INTO NPC (idNPC, nomeNPC, descricao, fk_sala) |
| 153 | + VALUES (1, 'NPC Inicial', 'Descricao npc 1', 1); |
| 154 | + |
| 155 | +INSERT INTO Mentor (fk_npc, aumentaInteligencia, aumentaFurtividade, aumentaPercepcao) |
| 156 | + VALUES (1, 10, 10, 10); |
| 157 | +``` |
| 158 | + |
| 159 | +### Facções |
| 160 | +As facções agrupam CyberLutadores com ideologias e habilidades específicas. |
| 161 | +```sql |
| 162 | +INSERT INTO Faccao (idFaccao, fk_cyberlutador, nomeFaccao, ideologia) |
| 163 | + VALUES (1, 1, 'Faccao Teste', 'Ideologia de teste'), |
| 164 | + (2, 2, 'NetRunners', 'Ideologia NetRunners'), |
| 165 | + (3, 3, 'CodeKeepers', 'Ideologia CodeKeepers'), |
| 166 | + (4, 4, 'VoidWalkers', 'Ideologia VoidWalkers'); |
| 167 | + |
| 168 | +INSERT INTO NetRunners (idNetRunners, fk_faccao, aumentaInte, aumentaPercep) |
| 169 | + VALUES (1, 1, 10, 10); |
| 170 | + |
| 171 | +INSERT INTO CodeKeepers (idCodeKeepers, fk_faccao, aumentaVelo, aumentaResis) |
| 172 | + VALUES (2, 2, 10, 10); |
| 173 | +``` |
| 174 | + |
| 175 | +### Mercado Clandestino |
| 176 | +Representa os mercados onde os jogadores podem negociar itens. |
| 177 | +```sql |
| 178 | +INSERT INTO MercadoClandestino (idMercadoClandestino, nomeMercado, desccricao, fk_sala) |
| 179 | + VALUES (1, 'Mercado Inicial', 'Descricao teste', 1); |
| 180 | +``` |
| 181 | + |
| 182 | +### Mochilas |
| 183 | +As mochilas armazenam itens coletados pelos jogadores durante o jogo. |
| 184 | +```sql |
| 185 | +INSERT INTO Mochila (idMochila, capacidade, fk_cyberlutador, fk_instanciaitem) |
| 186 | + VALUES (1, 50, 1, 1); |
| 187 | +``` |
| 188 | + |
| 189 | +### Carros |
| 190 | +Os carros são meios de transporte associados a uma região específica. |
| 191 | +```sql |
| 192 | +INSERT INTO Carro (idCarro, combustivel, fk_regiao) |
| 193 | + VALUES (1, 50, 1); |
| 194 | +``` |
| 195 | + |
| 196 | +### Inimigos |
| 197 | +Os inimigos oferecem desafios de combate aos jogadores. |
| 198 | +```sql |
| 199 | +INSERT INTO Inimigo (qtdDano, vida, fk_npc) |
| 200 | + VALUES (10, 100, 1); |
| 201 | + |
| 202 | +INSERT INTO InstanciaInimigo (idInstanciaInimigo, fk_inimigo) |
| 203 | + VALUES (1, 1); |
| 204 | + |
| 205 | +UPDATE InstanciaInimigo |
| 206 | + SET qtdDano = qtdDano + num, |
| 207 | + vida = vida + num |
| 208 | + WHERE idInstanciaInimigo = 1; |
| 209 | + |
| 210 | +DELETE FROM InstanciaInimigo |
| 211 | + WHERE idInstanciaInimigo = 1; |
| 212 | +``` |
| 213 | + |
| 214 | +### Implantes |
| 215 | +Os implantes oferecem melhorias aos CyberLutadores, aumentando suas capacidades no jogo. |
| 216 | +```sql |
| 217 | +INSERT INTO Implante (idImplante, nomeImplante, tipo, fk_cyberLutador) |
| 218 | + VALUES (1, 'Implante Inicial', 'Implante de teste', 1); |
| 219 | +``` |
5 | 220 |
|
6 | 221 | # Referência Bibliográfica |
7 | 222 |
|
| 223 | +> <a id="REF1" href="#anchor_1">1.</a> ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. Tradução: Daniel Vieira. Revisão técnica: Enzo Seraphim; Thatyana de Faria Piola Seraphim. 6. ed. São Paulo: Pearson Addison Wesley, 2011. Capítulo 2 Conceitos e arquitetura do sistema de banco de dados, tópico 2.3 Linguagens e interfaces do banco de dados, páginas 24 e 25. |
| 224 | +
|
| 225 | +> <a id="REF2" href="#anchor_2">2.</a> SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Database system concepts. 6. ed. New York: McGraw-Hill, 2011. Capítulo 1 Introduction, tópico 1.4.2 Data-Definition Language, páginas 12 a 13. |
| 226 | +
|
8 | 227 | ## Histórico de versões |
9 | 228 | | Versão | Data | Descrição | Autor | |
10 | 229 | |:------:|:------:|:---------:|------:| |
11 | | -| 1.0 | 06/01/2024 | Criação do Documento| [Gabrielly Assunção](https://github.com/GabriellyAssuncao) | |
| 230 | +| 1.0 | 06/01/2025 | Criação do Documento| [Gabrielly Assunção](https://github.com/GabriellyAssuncao) | |
| 231 | +| 1.1 | 12/01/2025 | Adicionando introdução e script explicado do DML| [Maria Eduarda Marques](https://github.com/EduardaSMarques) e [Lucas Meireles](https://github.com/Katuner)| |
12 | 232 |
|
0 commit comments