mission Warcraft 1

World of Warcraft est un jeu de rôle en ligne massivement multijoueur sorti en 2004. Notre objectif est de réaliser une base de données et de manipuler les données de l’API Blizzard.

SQL – Structure de données

Enregistrer les requêtes et le résultat de chaque question dans un PDF nommé warcraft1.pdf et l’ajouter à son dépôt.

Partie 1

Un personnage dans Wow possède un identifiant, un nom, une date d’inscription et un niveau. Il peut choisir une classe et une race. Une classe ne possède qu’une seule race.

Le personnage Daril s’est inscrit le  20-02-2019. C’est un Paladin Humain de niveau 60. Jaco est un Moine Orc inscrit le 15-08-2005 de niveau 100. Dunbar est un Prêtre Gnome de niveau 15 inscrit le 17-11-2017. Zakyku est un Druide Gobelin inscrit le 18-10-2018 de niveau 115.

  1. Proposer une modélisation des données.
  2. Créer les tables races et classes en local en fonction de votre modélisation et des scripts fournis. On utilisera pour accéder à MySQL l’interface Adminer. Attention à l’erreur dans le script 2.
  3. Supprimer les colonnes races_mask et classes_mask.
  4. Créer la table personnage en indiquant l’identifiant de la classe sans les contraintes de clefs étrangères. La race est déterminée par la classe. On ne doit donc pas indiquer la race dans personnage.
  5. Insérer les données correspondantes au texte précédent.
  6. Supprimer la race Humain. Quel problème non visible est généré ?
  7. Ajouter la contrainte d’intégrité fonctionnelle permettant de vérifier qu’une classe possède une race dans la table classe. Quel problème est généré ? Le résoudre.
  8. Réinsérer Humain.
  9. Supprimer la race Gobelin. Que se passe t il ?
CREATE TABLE IF NOT EXISTS classes (
classes_id INT primary key,
classes_mask INT NULL,
classes_name VARCHAR(20) NULL,
classes_power_type VARCHAR(11) NULL,
races_id INT NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8; 

INSERT INTO classes VALUES
(1,1,"Guerrier","rage",1),
(2,2,"Paladin","mana",1),
(3,4,"Chasseur","focus",5),
(4,8,"Voleur","energy",6),
(5,16,"Prêtre","mana",8),
(7,64,"Chaman","mana",3),
(8,128,"Mage","mana",4),
(9,256,"Démoniste","mana",5),
(10,512,"Moine","energy",2),
(11,1024,"Druide","mana",9);
CREATE TABLE IF NOT EXISTS races (
races_id INT primary key,
races_mask INT NULL,
races_name VARCHAR(20) NULL,
races_side VARCHAR(8) NULL
)ENGINE=InnoDB DEFAULT CHARSET=utf8; 

INSERT INTO races VALUES
(1,1,"Humain","alliance"),
(2,2,"Orc","horde"),
(3,4,"Nain","alliance"),
(4,8,"Elfe de la nuit","alliance"),
(5,16,"Mort-vivant","horde"),
(6,32,"Tauren","horde"),
(7,64,"Gnome","alliance"),
(8,128,"Troll","horde"),
(9,256,"Gobelin","horde"),
(10,512,"Elfe de sang","horde"),

Partie 2

Le personnage Saperlipopette est un Tauren Prêtre de niveau 50. Zigomar est un mage Elfe de sang de niveau 10. Sperpinette est une prêtresse Troll de niveau 105.

  1. Insérer les données correspondantes au texte précédent avec la date d’inscription d’aujourd’hui. Quel problème non visible est généré ? Ne pas le résoudre.
  2. Proposer une modélisation des données pour résoudre ce problème.
  3. Permettre en modifiant les tables en SQL et selon votre modélisation l’ajout des prêtres. On pensera à ajouter la clef étrangère de la classe dans la table personnage et surement une autre clef quelque part…
  4. Ajouter les contraintes d’intégrités fonctionnelles permettant de vérifier que la race et la classe existe.

Partie 3

Les personnages peuvent maintenant posséder une monture.

  1. Proposer une modélisation des données.
  2. Réaliser la table monture en corrigeant le script.

https://gitlab.com/cherryclass/wow7/blob/master/mounts.sql

  1. Permettre en modifiant une table l’ajout des montures.
  2. Attribuer la monture 29046 à Zakyku.
  3. Supprimer la monture 29046 de wow, la contrainte est-elle vérifiée

Partie 4

On souhaite maintenant que les personnages puissent posséder plusieurs montures.

  1. Proposer une modélisation des données.
  2. Permettre en ajoutant une table et en modifiant la précédente l’ajout des montures.
  3. Ajouter les contraintes d’intégrités fonctionnelles nécessaires.
  4. Attribuer une monture pour Daril, Dunbar et Jaco.
  5. Attribuer plusieurs montures à Sperpinette  et Saperlipopette .
  6. Réaliser un DUMP de wow
  7. Sauvegarder ce dump avec comme nom warcraft1.sql. On partagera son dépôt.
2019-02-01T14:04:25+01:00By |Tags: , |

Leave A Comment