[[si3-all]]

Différences

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

Lien vers cette vue comparative

si3-all [2018/09/10 11:15] (Version actuelle)
jcheron créée
Ligne 1: Ligne 1:
 +====== SI3 ======
 +Exploitation des données
 +===== TD n°1 : Sensibilisation à l'​automatisation d'un SI =====
 +
 +  * Télécharger le {{:​si3:​questionnairerentree.pdf|Questionnaire de rentrée}}
 +
 +==== -- Remplissage ====
 +  - Compléter le questionnaire à partir d'un client pdf (acrobat reader par exemple)
 +  - Enregistrer le fichier modifié en le renommant **nom.prenom.pdf**
 +
 +==== -- Structuration et Saisie ====
 +
 +La saisie se fera en binôme (l'un pour la saisie, l'​autre pour le contrôle).
 +
 +  * Préparer le document support qui permettra de stocker les informations (de manière complète => aucune information ne doit être perdue)
 +  * Saisir les informations des questionnaires
 +
 +==== -- Préparation analyse ====
 +
 +L'​analyse se fera en binômes :
 +  - Lister les exploitations de données à effectuer, préciser pour chacune d'​entre elles :
 +    - l'​objectif général (ce que l'on cherche à montrer)
 +    - les données à utiliser (préciser les éventuels calculs)
 +    - donner la forme (tableau, chiffre, graphique (type))
 +  - Réaliser les calculs nécessaires avec formules (sur une autre feuille que les données)
 +  - Pour chaque exploitation de question, préciser le titre, afficher le résultat (graphique, tableau...) et faire un commentaire
 +  - Réunir dans un document de type Traitement de texte les exploitations réalisées
 +  - Déposer les documents sur le drive
 +
 +=== Exemple d'​analyses pour les premières données : ===
 +
 +|< 100% >|
 +^Objectif ^Présentation ^
 +|Répartition de l’effectif par commune |Graphique secteurs |
 +|Répartition de l’effectif entre étudiants habitant Caen et autres |Graphique secteurs |
 +|Répartition de l’effectif entre étudiants habitant Caen et autres en tenant compte de la possession d’un véhicule |2 Graphiques secteurs |
 +|Répartition de l’effectif par Bac d’origine |Graphique secteurs |
 +|Répartion de l’effectif par Type de Bac (Techno, général, professionnel) |Graphique secteurs |
 +|Répartition de l’effectif entre post-Bac et non |Graphique secteurs |
 +|Répartion de l’effectif par type de cursus post Bac |Graphique secteurs |
 +
 +===== TD n°2 : Base de données... =====
 +  * {{:​si3:​qcmrentree.sql|}}
 +
 +==== Manipulations ====
 +Démarrage des serveurs (Apache et MariaDb) :
 +  * Lancer xampp-control
 +  * Démarrer Apache et Mysql
 +  * Aller à l'​adresse http://​127.0.0.1 puis http://​127.0.0.1/​phpmyadmin
 +
 +Importation de la base de donnée à partir d'un fichier de script SQL :
 +  * A partir de phpmyadmin, choisir **importer**
 +  * Sélectionner ensuite le fichier sql téléchargé
 +  * Exécuter le script
 +  * Sélectionner et afficher la base créée
 +  * Afficher le concepteur ou la vue relationnelle
 +  * Afficher la structure d'une table
 +  * Afficher les index d'une table
 +  * Saisir 5 questionnaires complets
 +
 +==== Questions ====
 +Pour mieux comprendre la structure des données et la notion d'​intégrité...
 +
 +Pour répondre aux questions, il est nécessaire de savoir :
 +  * Afficher les relations entre tables
 +  * Afficher la structure d'une table
 +  * Afficher les index
 +
 +A rédiger dans un document à déposer sur le Drive
 +
 +  - Rédiger un tutoriel des manipulations effectuées
 +  - De quelle façon sont stockées les informations dans la base de données ?\\ Pistes... Table, champs, relations...
 +  - Dans un tableau, mentionner les différents types des champs de la table **Etudiant**,​ préciser pour chacun d'eux ce à quoi il correspond (limite des valeurs)
 +  - Dans la structure d'une table, préciser le sens des attributs suivants, appliqués à un champ : clé primaire, Null, Default, AutoIncrement
 +  - Dans la table étudiant :
 +    - quels éléments garantissent l'​unicité d'un étudiant ?
 +    - quels éléments garantissent la cohérence de la saisie du bac d'​origine
 +    - de quel manière sont reliés l'​étudiant et le Bac qu'il a obtenu ?
 +  - Quels éléments garantissent la cohérence de la saisie des navigateurs utilisés
 +  - De quel manière sont reliés l'​étudiant et les navigateurs qu'il utilise ?
 +  - De quel manière sont reliés l'​étudiant et son rapport à l'​informatique (rapportInformatique)
 +  - De quel manière sont reliés l'​étudiant et sa formation (post-bac et post-bts) ?
 +  - Quelles sont les règles à respecter pour la saisie des données ?
 +
 +
 +===== TD n°3 : SQL =====
 +A rédiger dans un document à déposer sur le Drive
 +
 +==== Notions SQL ====
 +A rédiger sous forme de cours/​tutoriel
 +  * LDD, LMD et LCD
 +  * SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY
 +
 +==== Manipulations SQL ====
 +
 +A partir de MySQL Workbench :\\
 +Ecrire les requêtes permettant de répondre aux questions suivantes :
 +
 +Dans le document sur le Drive, reprendre les interrogations,​ et la solution SQL
 +
 +  - 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)
 +
 +===== TD n°4 : LMD, exportation de données =====
 +A rédiger dans un document à déposer sur le Drive
 +  * INSERT, UPDATE, DELETE (Opérations CRUD)
 +  * INSERT INTO ... SELECT
 +
 +
 +  * Saisir le questionnaire sur qcm-sio.kobject.net
 +  * Importer la base de données questionnaire sur votre serveur local
 +
 +Dans le document à déposer sur le Drive :
 +  - Établir les règles de gestion de la base de données {{:​si3:​questionnaire_old.sql|}}
 +  - Expliquer les différences entre la base old importée et votre nouvelle base
 +  - Expliquer en quoi l'​ancienne base (old) est plus adaptée à la modification de la structure des questionnaires
 +  - Préparer les requêtes pour exporter les données de la base **questionnaire_old** vers votre base **qcmrentree** et expliquer votre script
 +  - Exposer et expliquer les éventuels problèmes rencontrés et la ou les solutions mises en oeuvre. ​
 +
 +
 +===== TD n°5 : Compte Google =====
 +
 +<wrap round info>A rédiger dans un document à déposer sur le Drive</​wrap>​
 +
 +
 +Gestion de l'​historique et 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
 +
 +  * 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 :
 +    - Informations sur le compte d'un utilisateur (x)
 +    - historique de la journée
 +    - historique entre 2 dates définies (date1 et date2)
 +    - 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 =====
 +
 +<wrap round info>A rédiger dans un document à déposer sur le Drive</​wrap>​
 +
 +Base précédente : {{:​si3:​comptegoogle2017.sql|}}
 +
 +==== Évolutions de la base de données : ====
 +
 +On souhaite ajouter les informations permettant de sécuriser le compte :
 +  * mot de passe
 +  * Numéro de mobile (pour envoi de SMS de contrôle ou de récupération de password)
 +  * Email de récupération de mot de passe
 +
 +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 :\\
 +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.
 +
 +<​html>​
 +<div class="​todo">​
 +<ul>
 +<​li>​Modifier le schéma relationnel de la base de données</​li>​
 +<​li>​Mettre à jour la base existante pour intégrer les modifications</​li>​
 +</ul>
 +</​div>​
 +</​html>​
 +==== Interrogation de données ====
 +
 +  - Lister les informations relatives à un compte (mail, tél, email de récupération)
 +  - Afficher chaque compte, et le nombre de comptes mail associés
 +  - Afficher chaque compte, et les comptes mail associés
 +  - Lister les comptes (principaux) ayant un compte mail associé avec le serveur POP  : pop.free.fr
 +  - Afficher la moyenne du nombre de comptes associés par compte principal
 +  - Afficher les contextes des comptes
 +  - Afficher les contextes liés à votre compte
 +  - Comptabiliser le nombre de connexion par contexte sur votre compte
 +  - Afficher la liste des connexions, en précisant le contexte, et le compte
 +
 +
 +===== TD n°7 =====
 +
 +script à télécharger et à exécuter dans phpMyAdmin : {{::​localclients.sql|}}
 +
 +Pour chacune des interrogations,​ exécuter dans MysqlWorkbench le script, puis reportez dans un document de traitement de texte :
 +  - la question, ​
 +  - le script,
 +  - le nombre d'​enregistrements dans la réponse.
 +
 +==== Afficher ====
 +
 +
 +  - les informations du client 17
 +  - 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
 +
 +===== TD n°8 =====
 +==== Objectifs ====
 +  * Rédaction de mode opératoire/​documentation
 +  * Prise en main de bases de données
 +  * SQL : LDD (Langage de Définition de Données)
 +
 +<wrap round info>A rédiger dans 3 documents différents à déposer sur le Drive</​wrap>​
 +
 +Pour chaque SGDB (Mysql, PostGre, SQLite) :
 +  - Présenter le sommairement (caractéristiques,​ utilisation...)
 +  - Documenter les manipulations suivantes
 +    - Installation
 +    - Création base de données (CREATE DATABASE)
 +    - Création table (CREATE TABLE) [! clé primaire, types de données, auto-increment]
 +    - Modification table (ALTER TABLE)
 +    - Ajout contraintes de clé étrangère (ALTER TABLE ... ADD CONSTRAINT...)
 +    - Suppression (DROP TABLE, DATABASE, CONSTRAINT) ​
 +    - Ajout d'​enregistrements (INSERT INTO...)
 +    - Création d'une vue (CREATE VIEW ...)
 +
 +Consignes, pour chaque SGDB : 
 +  * Utiliser l'​outil en invite de commande.
 +  * Préciser les particularités SQL (non respect des normes)
 +
 +__**Liens :**__
 +
 +  * https://​www.postgresql.org/​download/​windows/​
 +  * https://​sqlite.org/​download.html
 +  * https://​www.tutorialspoint.com
 +
 +
 +==== Commandes de base de l'​invite de commande ====
 +
 +
 +|<​100%>​|
 +^Opération ^Mysql ^PostGreSQL ^SQLite ^
 +|**Accès à l'​invite** | mysql\bin\mysql -u root | postgreSQL\bin\psql -U postgres | sqlite dbName.sqlite |
 +|**Lister databases** | SHOW DATABASES; | \l | |
 +|**Sélectionner base** | USE dbName; | \c dbName; | |
 +|**Lister tables** | SHOW TABLES; | \dt; | .tables |
 +|**Infos table** | DESCRIBE tableName; | \d+ tableName; | .schema tableName |
 +
 +
 +<​html><​!--</​html>​
 +===== TD n°2 : Base de données... =====
 +  * {{:​questionnaire.sql|}}
 +
 +====== Questions ======
 +Pour mieux comprendre la structure des données...
 +
 +A rédiger dans un document à déposer sur le Drive
 +
 +  - De quelle façon sont stockées les informations dans la BDD questionnaire ?\\ Pistes... Table, champs, relations...
 +  - Déterminer comment trouver le nombre d'​étudiants nés en 1996
 +  - Pour la question choix d'​option pour le S2, retrouvez les réponses possibles et expliquez comment le faire
 +  - Retrouver les navigateurs utilisés par un étudiant et expliquer comment les retrouver
 +  - Retrouver l'âge des débuts en info pour 1 étudiant et expliquer comment le retrouver
 +  - Comment retrouver la liste des réponses possibles pour 1 question ?
 +  - Comment retrouver la liste des questions possibles pour 1 questionnaire ?
 +===== TD n°3 =====
 +==== Objectifs de réalisation ====
 +
 +  - Créer une vue à partir de Mysql Workbench
 +    - Avec jointures
 +    - avec fonctions de regroupement
 +  - Modifier une vue
 +
 +  - Créer un graphique à partir de l'​application Java
 +  - Choisir le type de graphique
 +  - Personnaliser le graphique en utilisant les options présentes dans l'​application
 +  - Personnaliser le graphique en utilisant l'​[[https://​developers.google.com/​chart/​interactive/​docs/​gallery|API Google charts]]
 +
 +
 +==== Exemples de vues ====
 +
 +=== Vue âge : ===
 +
 +
 +<sxh sql;​title:​v_age>​
 +select concat((date_format(from_days((to_days(`questionnaire`.`groupe`.`dNaiss`) - to_days(`activequestionnaire`.`dNaiss`))),'​%Y'​) + 0),' ans') AS `Age`,​count(0) AS `Effectif` ​
 +from (`questionnaire`.`activequestionnaire` ​
 +join `questionnaire`.`groupe` on((`questionnaire`.`groupe`.`id` = `activequestionnaire`.`idGroupe`))) ​
 +group by concat((date_format(from_days((to_days(`questionnaire`.`groupe`.`dNaiss`) - to_days(`activequestionnaire`.`dNaiss`))),'​%Y'​) + 0),' ans') desc
 +</​sxh>​
 +
 +=== Vue ville ===
 +<sxh sql;​title:​v_ville>​
 +CREATE VIEW v_ville as SELECT reponse.libelle as Ville ,count(*) as Effectif
 +FROM (reponsemultiple INNER JOIN reponse ON reponsemultiple.idReponse=reponse.id) INNER JOIN question ON reponse.idQuestion=question.id ​
 +WHERE question.id=11
 +GROUP BY reponse.libelle ​
 +ORDER BY 2 DESC;
 +</​sxh>​
 +
 +
 +
 +===== TD n°3 SQL =====
 +
 +Script à télécharger et à exécuter dans phpMyadmin :\\
 +{{::​questionnaire-2016.sql|}}
 +
 +===== TD n°4 SQL =====
 +
 +script à télécharger et à exécuter dans phpMyAdmin : {{::​localclients.sql|}}
 +
 +Pour chacune des interrogations,​ exécuter dans MysqlWorkbench le script, puis reportez dans un document de traitement de texte :
 +  - la question, ​
 +  - le script,
 +  - le nombre d'​enregistrements dans la réponse.
 +
 +==== Afficher ====
 +
 +
 +  - les informations du client 17
 +  - 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
 +
 +==== Autres bases de données ====
 +=== PostgreSQL ===
 +  * Vérifiez la présence et au besoin installer postgreSQL Server\\ (https://​www.postgresql.org/​download/​windows/​)
 +  * Créez la base de données **localclients.sql**
 +  * Effectuez les mêmes interrogations qu'​avec Mysql
 +  * Dans un document sur le Drive :
 +    * Présenter sommairement Postgre
 +    * notez les différences entre PostgreSQL et Mysql
 +
 +=== SQLite===
 +  * Télécharger sqlite (https://​sqlite.org/​download.html)
 +  * Créez la base de données **localclients.sql**
 +  * Effectuez les mêmes interrogations qu'​avec Mysql
 +  * Dans un document sur le Drive :
 +    * Présenter sommairement SQLite
 +    * notez les différences entre SQLite et Mysql
 +
 +
 +===== DS1 =====
 +
 +  * Implémenter le schéma physique la base de données DS1 (Tables, relations) dans MysqlWorkbench
 +  * Générer la base de données Mysql
 +  * Intégrer 100 enregistrements par table en les générant à partir de l'​application [[http://​www.generatedata.com/​|generateData.com]]
 +  * Créer et exécuter les 8 requêtes SQL
 +
 +===== DS2 =====
 +Documents à stocker sur le drive (TD6)
 +
 +  - Ajouter les instructions de type LDD suivantes à votre mémento SQL :
 +    * CREATE DATABASE
 +    * USE
 +    * ALTER TABLE
 +    * PRIMARY KEY ou  ADD PRIMARY KEY
 +    * ADD FOREIGN KEY
 +
 +  - Générer la base de données dans mysql
 +  - Ajouter des données exemple (manuellement)
 +  - Créer les vues correspondant aux interrogations SQL
 +
 +
 +===== Td n°7 : Compte Google =====
 +
 +Gestion des données personnelles : historique, favoris, mots de passe
 +  * Établir et rédiger les règles de gestion (Document à créer sur le drive dans un dossier perso du dossier TD7)
 +  * Concevoir la structure de la base de données (à partir d'un outil en ligne)
 +  * Créer la base de données en utilisant les instructions SQL de type LDD
 +  * Intégrer des données de test réalistes (compte, favoris, historique)
 +
 +<​html>​--></​html>​
 +
 +
 +
 +
 +
  
si3-all.txt · Dernière modification: 2018/09/10 11:15 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