[[si3]]

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
si3 [2018/12/17 12:04]
jcheron [TD n°5 : Compte Google]
si3 [2020/01/06 13:08] (Version actuelle)
jcheron [Compréhension]
Ligne 1: Ligne 1:
-===== TD n°1 : openfootball ​=====+====== SI3 - Exploitation des données ======
  
-A partir des données fournies par [[https://​github.com/​openfootball/​world-cup|openfootball]] : +===== 5Gestion ​de clients =====
-  * Télécharger les données ​de la coupe du monde en Russie+
  
-==== Choix logiciel ==== +script à télécharger et à exécuter dans phpMyAdmin : {{::​localclients.sql|}}
-Tableur, base de données...+
  
 +==== Compréhension ====
 +  * Rédiger les règles de gestion du SI.
  
 +Pour chacune des interrogations,​ exécuter dans **phpMyAdmin** le script, puis reportez dans un document de traitement de texte :
 +  - la question, ​
 +  - le script,
 +  - le nombre d'​enregistrements dans la réponse.
  
-==== Structurer les données ==== +Continuer à faire évoluer le tutoriel SQL commencé au TP précédent. ​
-Le travail d'​analyse se fera en binômes :+
  
-Stocker ces données de manière structurée sur un support informatique en utilisant un outil logiciel adapté : +==== Afficher ====
-  * évitant les informations en double +
-  * permettant l'​établissement de listes (Groupes, équipes, matchs, buteurs...) +
-  * permettant l'​établissement de statistiques complètes (par continent, par match, par stade, par poule...)+
  
-==== Création et Saisie ==== 
-  * Créer la base de données 
-  * Saisir les données 
  
-==== Statistiques ​==== +  - les informations du client 17 
-Établir ​la liste des statistiques ​à élaborer+  - les clients dont le nom commence par un B ou par un C 
 +  - les clients habitant la Basse-Normandie (Région + informations du client) 
 +  - les clients habitant en Bretagne (Région + informations du client) sauf dans les côtes d'​Armor 
 +  - les clients de Normandie, et dont l'âge est inférieur à 50 
 +  - La liste des clients classés par âge (croissant),​ et par ordre du nom (décroissant) 
 +  - les clients attachés à une agence de Bretagne ou pays de la Loire (Région + informations du client) 
 +  - la liste des produits commandés (date commande, libelle et pu) classé par ordre décroissant de Date de commande 
 +  - la liste des produits commandés (date commande, libelle et pu) et les clients correspondants pour la région Bretagne 
 +  - la liste des clients habitant en Basse-Normandie (faire le lien entre partie de gauche du CP et le numéro de département) 
 +  - la référence des produits commandés en Basse-Normandie et en Bretagne 
 +  - toutes les informations relatives à la commande n°17 
 +  - la liste des produits n’ayant jamais été commandés 
 + 
 +==== Calculer ​==== 
 + 
 +  - le nombre de clients par département 
 +  - le nombre de clients par région 
 +  - la moyenne d'âge des clients 
 +  - la moyenne d'âge des clients par département 
 +  - le nombre moyen de produits par commande 
 +  - le nombre de commandes par département 
 +  - le montant total de la commande n°11 
 +  - le montant total commandé par département 
 +  - le montant total commandé par région 
 + 
 +===== 4. TD SIO-stats ===== 
 + 
 +A faire dans un document sur le Drive. 
 + 
 +==== - Règles de gestion ==== 
 +A partir de la base de données, et de son schéma : 
 +  * Rédigez les règles de gestion du système d'​information.  
 + 
 + 
 +==== - Interrogation de données (SQL) ==== 
 + 
 +Pour chaque question : 
 +  * Recopier la question 
 +  * Répondre en SQL 
 +  * Donner le nombre de réponses 
 +  * Afficher la réponse 
 + 
 +  - Afficher ​la liste des Bacs (toutes les infos) 
 +  - Afficher les étudiants habitant ​à Caen (nom et prénom) 
 +  - Afficher les étudiants n'​habitant pas à Caen et n'​ayant pas de voiture (nom et prénom) 
 +  - Afficher les étudiants et leur Bac d'​origine (nom, prénom, bac) 
 +  - Afficher les étudiants ayant fait un Bac général (nom, prénom, bac) 
 +  - Afficher les étudiants ayant fait une poursuite d'​étude après le bac (nom, prénom, libellé de la poursuite d'​étude) 
 +  - Afficher la liste des navigateurs utilisés par 1 étudiant précis dont on connaît le nom (afficher les noms des navigateurs) 
 +  - Afficher la liste des utilisateurs de Chrome (afficher nom de l'​étudiant) 
 +  - Calculer et afficher le nombre d'​étudiants par commune (nom de la commune et nombre) 
 +  - Calculer et afficher le nombre d'​étudiants par type de Bac (type de bac et nombre d'​étudiant) 
 +  - Calculer et afficher le nombre d'​étudiants par navigateur (nom du navigateur et nombre d'​étudiant) 
 +  - Afficher les étudiants de la promo actuelle plus âgés que la moyenne des étudiants de leur promo (par ordre décroissant de l'​âge) 
 +  - Afficher les 5 jeux les plus populaires, par ordre décroissant de leur utilisation 
 + 
 + 
 +[[sql|SQL (Structured Query Language)]]
  
-===== TD n°2 : openfootball.sql =====+==== - SQL tutorial ​==== 
 +  * Elaborer un tutoriel SQL présentant la liste des éléments syntaxiques abordés. 
 +===== 3. TD openfootball =====
  
 ==== Fondamentaux ==== ==== Fondamentaux ====
Ligne 36: Ligne 92:
   * Apache   * Apache
  
-Depuis [[http://​127.0.0.1/​phpmyadmin|phpMyAdmin]],​ importer la base de données {{:​si3:​openfootball.sql|}} .+Depuis [[http://​127.0.0.1/​phpmyadmin|phpMyAdmin]],​ importer la base de données {{:​si3:​openfootball-all.sql|}} .
  
-==== Saisie ​==== +==== - Règles de gestion ​==== 
-  * Etablir un ordre de saisie dans les tablesjustifier le. +A partir ​de la base de donnéeset de son schéma : 
-  * Saisir ​les données+  * Rédigez ​les règles de gestion du système d'​information. ​
  
-==== Intégrité des données ====+==== Intégrité des données ====
 Lister et expliquer les contraintes d'​intégrité sur la table **match** : Lister et expliquer les contraintes d'​intégrité sur la table **match** :
   * Contraintes de domaine   * Contraintes de domaine
Ligne 48: Ligne 104:
   * Contraintes d'​intégrité référentielle   * Contraintes d'​intégrité référentielle
  
-==== Données et Statistiques ​==== +==== - Interrogation de données (SQL) ====
-Établir : +
-  * les listes d'​informations utiles à élaborer (exemples : Equipes par poule, matchs par équipe...) +
-  * les statistiques à élaborer+
  
 +Pour chaque question :
 +  * Recopier la question
 +  * Répondre en SQL
 +  * Donner le nombre de réponses
 +  * Afficher la réponse
  
-===== openfootball SQL (LMD) ===== +=== Matchs ​===
- +
-==== Liste à obtenir : ==== +
  
   - matchs d’une Poule (afficher toutes les infos du match : équipes, date, lieu)   - matchs d’une Poule (afficher toutes les infos du match : équipes, date, lieu)
Ligne 67: Ligne 122:
   - matchs de phase 2 ayant lieu à Nizhny Novgorod   - matchs de phase 2 ayant lieu à Nizhny Novgorod
   - adversaires rencontrés par la belgique avant son match contre la France   - adversaires rencontrés par la belgique avant son match contre la France
-  - matchs perdus par l’Allemagne (A ne pas faire) + 
-   ​+=== Equipes=== 
   - équipes ayant joué des prolongations   - équipes ayant joué des prolongations
   - équipes ayant fait au moins 1 match null   - équipes ayant fait au moins 1 match null
Ligne 74: Ligne 130:
   - équipe ayant bénéficié au moins d'un penalty   - équipe ayant bénéficié au moins d'un penalty
   - équipes invaincues   - équipes invaincues
- 
   - continents représentés dans la phase 2   - continents représentés dans la phase 2
 +
 +=== Joueurs ===
  
   - joueurs ayant marqué un but pour l’équipe d’argentine   - joueurs ayant marqué un but pour l’équipe d’argentine
Ligne 113: Ligne 170:
   - Classement selon le nombre de défaites par équipe   - Classement selon le nombre de défaites par équipe
   - Nombre de buteurs différents par équipe   - Nombre de buteurs différents par équipe
 +===== 1. TD Streaming Service =====
  
 +Vous travaillez comme stagiaire au sein d'une entreprise souhaitant diversifier son activité actuelle en créant un service de vidéo à la demande.
 + 
 +Votre rôle consiste dans un premier temps à élaborer un **modèle** pour la base de données associée à l'​application web de streaming permettant aux clients de sélectionner leurs vidéos.
 +Votre chef de projet vous demande de vous inspirer du leader sur le marché, en naviguant sur son application,​ et en prenant des notes.
  
-==== Base de données à importer : ==== +==== - Règles ​de gestion ​====
-{{:​si3:​openfootball-all.sql|}}+
  
-===== TD n°4 ===== +Votre objectif est d'​établir les règles ​de gestion ​de ce nouveau **système d'​information** (SI) :
-==== Compréhension ​de la Base de données ====+
  
-  * Démarrer ​les serveurs Apache ​et MariaDb +  ​- Identifier les différentes ​**entités** (types d'​objets ou d'​éléments) présents dans les interfaces ​et nécessaires à l'​application (ex : film, genre...). Ce sont les éléments qui seront stockés dans la future ​base de données
-  * Créer ​la base de données ​en important le script depuis phpMyAdmin ​: {{:si3:questionnaire-2018.sql|}}+  - Lister les propriétés de chacune de ces entités (exun film a un titre, un réalisateur...) 
 +  - Ajouter une propriété sur chaque entité permettant d'​identifier de façon unique l'un de ses éléments. 
 +  - Exprimer les **relations** entre les entités : 
 + 
 +__**Exemple :**__ 
 + 
 +Chaque __film__ peut appartenir à plusieurs __genres__ (de 1 à plusieurs) 
 + 
 + 
 +=== Ecrans du concurrent principal === 
 +== Films == 
 + 
 +{{:si3:netflix:​films.png?|}} 
 + 
 +== Series == 
 +{{:​si3:​netflix:​series.png?​|}} 
 + 
 +== Film == 
 +{{:​si3:​netflix:​presfilm.png?​600|}} 
 + 
 +== Profil utilisateur == 
 +{{:​si3:​netflix:​profil.png?​|}} 
 + 
 + 
 +=== MOCODO language === 
 + 
 +== Ecriture des entités (Film, genre...) : == 
 +Chaque étudiant est décrit par un numéro permettant de l'​identifier,​ un nom, un prenom et un age. 
 + 
 +<​sxh;​gutter:​false>​ 
 +Etudiant: numero, nom, prenom, age 
 +</​sxh>​ 
 + 
 +== Ecriture des relations : == 
 +  - Chaque étudiant appartient à une seule section. 
 +  - Chaque section est composée de zéro à plusieurs étudiants. 
 + 
 +<​sxh;​gutter:​false>​ 
 +Appartenir, 0N Section, 11 Etudiant 
 +</​sxh>​ 
 + 
 +Ecrire les règles de gestion (entités et relations) en respectant exactement ces 2 modèles. 
 + 
 + 
 +==== - Base de données ==== 
 + 
 +=== Création === 
 + 
 +  - Le script de création de la base de données pour **Mysql** sera généré à partir de **Mocodo**. 
 +  - La création de la base dans Mysql se fera à partir de phpMyAdmin ou en mode console. 
 + 
 +Dans votre document sur le drive : 
 +  * Faire un tutoriel permettant de reproduire la génération du Script à partir de Mocodo, et la génération de la base Mysql. 
 +  * Créer la base de données
  
-A partir de MySQL Workbench :\\ +=== Test ===
-  * Générer le shéma de la base de données par reverse Engineering +
-  * Expliquer la structure de la base. +
-==== Manipulations SQL ====+
  
-A partir ​de MySQL Workbench :\\ +  * Tester la saisie ​de données (à partir ​de phpMyAdmin)
-Créer les vues permettant ​de répondre aux questions suivantes :+
  
-Dans le document sur le Drive, reprendre les interrogations,​ et la solution SQL+=== Structure ===
  
-  - Bacs Afficher la liste des Bacs (toutes les infos) +Expliquez ​:
-  - EtudiantsDeCaen : Afficher les étudiants habitant à Caen (nom et prénom) +
-  - EtudiantsAPied : Afficher les étudiants n'​habitant pas à Caen et n'​ayant pas de voiture (nom et prénom) +
-  - EtudiantsBac : Afficher les étudiants et leur Bac d'​origine (nom, prénom, bac) +
-  - EtudiantsBacGeneral : Afficher les étudiants ayant fait un Bac général (nom, prénom, bac) +
-  - EtudiantsPostBac : Afficher les étudiants ayant fait une poursuite d'​étude après le bac avant d'​arriver en SIO (nom, prénom, libellé de la poursuite d'​étude) +
-  - EtudiantNavigateur : Afficher la liste des navigateurs utilisés par 1 étudiant précis dont on connaît le nom (afficher les noms des navigateurs) +
-  - ChromeUsers : Afficher la liste des utilisateurs de Chrome (afficher nom de l'​étudiant) +
-  - EtudiantsParCommune : Calculer et afficher le nombre d'​étudiants par commune (nom de la commune et nombre) +
-  - EtudiantsParBac : Calculer et afficher le nombre d'​étudiants par type de Bac (type de bac et nombre d'​étudiant) +
-  - EtudiantsParNavigateur : Calculer et afficher le nombre d'​étudiants par navigateur (nom du navigateur et nombre d'​étudiant)+
  
 +  - Comment sont stockées les données dans la base ?
 +  - Quels éléments permettent de garantir l'​intégrité des données ? Sont-ils suffisants dans la base actuelle ? Que faudrait-il ajouter comme contrôle ?
 +  - A partir d'un ou plusieurs exemples, montrez comment se traduisent dans la base les règles de gestion.
  
-===== TD n°5 : Compte Google ===== 
  
-<wrap round info>A rédiger ​dans un document à déposer sur le Drive</wrap>+=== Saisie === 
 +  - Dans quel ordre faut-il saisir les données ​dans les tables ? Pourquoi ? 
 +  - A partir des données de [[https://​instantwatcher.com/​|instantwatcher]],​ saisir 10 Films et 10 séries dans votre base, ainsi que les autres données associées.
  
  
-Gestion de l'​historique des recherches et visites, gestion des favoris ​ 
-  * Établir et rédiger les règles de gestion 
-  * Concevoir la structure de la base de données (à partir de Mysql Workbench) 
-  * Créer la base de données depuis Mysql Workbench 
-  * Intégrer des données de test réalistes (compte, favoris, historique) dans la base, pour vérifier sa cohérence 
  
-{{::​comptegoogle.zip|}}+=== Problèmes/​questions === 
 +  * Notez les problèmes rencontrés,​ les solutions trouvées.
  
-  * Intégrer la règle de gestion suivante : 
-    * Les favoris sont stockés dans des dossiers (ayant un nom). 
-    * Ces dossiers sont structurés hiérarchiquement (chaque dossier a éventuellement un parent). ​ 
  
-  * Répondez en SQL aux interrogations suivantes : +=== Export ===
-    - Informations sur le compte d'un utilisateur (x) +
-    - historique de la journée +
-    - historique entre 2 dates définies (date1 et date2) +
-    - Liste des recherches d'un utilisateur,​ commençant par un texte précis +
-    - nombre de consultations par site (url) +
-    - moyenne du nombre de site consultés par jour +
-    - liste des 10 sites les plus consultés +
-    - liste des favoris +
-    - liste des favoris dans un dossier précis (dossierA) +
-    - nombre de favoris par dossier +
-    - nombre de favoris par compte, nombre de liens dans l'​historique par compte+
  
-===== Td n°6 : Compte Google ​Évolutions =====+  ​Exporter les données Mysql de la base Films,et copier le script dans le dossier **datas** du drive.
  
-<wrap round info>A rédiger dans un document ​à déposer ​sur le Drive</​wrap>​+=== Restructuration === 
 +  * Vérifier et modifier chaque table, pour prendre en compte les problèmes rencontrés lors de votre saisie initiale 
 +  * Restructurer la base pour prendre en compte les règles de gestion 
 +  * Mettre toutes les relations en **UPDATE CASCADE** 
 +  * Modifier la valeur de l'​auto-increment des tables (valeurs différentes obligatoires) 
 +  * Exporter ​à nouveau votre base de données (à partir de phpMyAdmin),​ à mettre ​sur le drive 
 +    * nom de base **streaming** 
 +    * Exporter les données uniquement
  
-Base précédente : {{:​si3:​comptegoogle2017.sql|}}+=== Import === 
 +  * Vérifier la cohérence de la nouvelle structure en saisissant les données des films de manière complète (Film, genre, acteurs, films associés...) 
 +  * Créer un script batch (**.bat**) pour importer de manière automatisée les données des autres (via fichier ​sql).
  
-==== Évolutions de la base de données ​====+===== 2. Interrogation ​de données ​=====
  
-On souhaite ajouter les informations permettant de sécuriser le compte : +==== Bases SQL - LMD ==== 
-  * mot de passe +=== SELECT === 
-  * Numéro de mobile (pour envoi de SMS de contrôle ou de récupération de password) +=== FROM === 
-  * Email de récupération de mot de passe+=== WHERE ===
  
-A chaque connexion dans un nouveau contexte (Lieu, Matériel, logiciels), on mémorisera : 
-  * L'​adresse IP de connexion 
-  * Le système d'​exploitation et le navigateur utilisés 
  
-L'​utilisateur du compte a la possibilité de préciser si le contexte est fiable ou non. 
  
-Pour chaque contexte, on retiendra également les dates et heures de connexion. 
  
-Il est possible ​de rattacher un ou plusieurs comptes ​de messagerie externes à son compte Google mail :\\ +==== Application ==== 
-Pour chaque compte, on mémorise son adresse, les identifiants de connexion (user + password), ainsi que l'​adresse et le port du serveur POP pour la récupération des messages.+A partir ​de la base de données Streaming, répondre en SQL aux interrogations suivantes ​:
  
-<​html>​ +Pour chaque question : 
-<div class="​todo">​ +  * Recopier la question 
-<ul> +  * Répondre en SQL 
-<​li>​Modifier ​le schéma relationnel ​de la base de données</​li>​ +  * Donner ​le nombre ​de réponses 
-<​li>​Mettre à jour la base existante pour intégrer les modifications</​li>​ +  * Afficher ​la réponse
-</​ul>​ +
-</​div>​ +
-</​html>​ +
-==== Interrogation de données ====+
  
-  - Lister ​les informations relatives à un compte ​(mail, tél, email de récupération+  - Liste de tous les genres ​(toutes les informations
-  - Afficher chaque compte, ​et le nombre ​de comptes mail associés +  - Liste des films (titre ​et année ​de sortie) 
-  - Afficher chaque compte, et les comptes mail associés +  - Liste des films dont le titre contient le mot... 
-  - Lister les comptes (principaux) ayant un compte mail associé avec le serveur POP  : pop.free.fr +  - Liste des films dont le titre ne contient pas le mot... 
-  - Afficher ​la moyenne du nombre ​de comptes associés par compte principal +  - Liste des films dont la date de sortie est comprise entre date1 et date2 (dates à préciser) 
-  - Afficher les contextes ​des comptes +  - Liste des films de l'​année en cours 
-  - Afficher les contextes liés à votre compte +  - Liste des acteurs 
-  - Comptabiliser le nombre de connexion par contexte sur votre compte +  - Liste des Films entre 2 dates et contenant ​le mot...
-  - Afficher la liste des connexions, en précisant le contexte, ​et le compte+
  
  
si3.1545044649.txt.gz · Dernière modification: 2018/12/17 12:04 par jcheron
GNU Free Documentation License 1.3
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0