Jour 1
Concepts et fonctionnement des SGBDR
Différences entre données structurées et non structurés
Besoin d'un formalisme conceptuel pour représenter les données (Modèle Conceptuel des Données, MCD)
Liens entre algèbre relationnelle, MCD, SGBDR
Passage au format logique des données dans une base relationnelle (table, colonne, ligne)
Liens entre les données et contraintes d’intégrité (clefs primaire et étrangères)
Problématiques liées à l’implémentation physique des données
Les solutions proposées par les SGBDR
Un petit mot sur les bases NoSQL par rapport à un SGBDR
Aperçu des possibilités du langage SQL (select, insert, update, delete)
Standardisation du SQL par l’ANSI
Les dialectes
Utilisateurs et droits (GRANT, REVOKE)
Notions de transactions (ACID)
Accès concurrents et verrous (commit, rollback)
L’objet de base dans un SGBDR : la table
Pourquoi doit-on typer les données d’une table (varchar, number, date…) ?
Notion de schéma par utilisateurAteliersObjectifs : Comprendre les fonctions de base d’un SGBDRContenu : Conception guidée d’une petite base de données afin de prendre en main la structure relationnelle entre les données, les contraintes d’intégrité (clef primaire, clef secondaire) qui en découlent et faire nos premiers pas en SQL.L'environnement de travail pour le SQL
Les IDE (Environnement de Développement Intégré) du marchéLes grands éditeurs du marché (Oracle, DB2, SQL Server, PostgreSQL, MySQL, etc.)
Fonctionnalités des IDE pour un développeur SQL
Oracle et SQL Developer
SQL Server et DBA Management Studio
MySQL et SQL Workbench ou phpMyAdmin
PostgreSQL et DBeaver
Autres outils (DbVisualizer, Devart…)
Paramétrer sa session de travail (formats d’affichage)Import/Export de donnéesSavoir exporter les données de sa base dans un fichier texte
Savoir importer les données d'un fichier texte, CSV, XML dans la base
Découvrir comment présenter les résultats des requêtes SQL dans un fichier ExcelAteliersObjectif : Prendre en main son environnementContenu : Prise en main de l’IDE choisi par le participant (par défaut nous utilisons SQL Developer) afin de se connecter à une base de données, parcourir les éléments fondamentaux des menus et exécuter nos premières requêtes SQL en mode interactif et via des scripts SQL. Exécution du script SQL conçu dans l’atelier précédent permettant de générer la base que nous allons utiliser durant la formation.Savoir écrire des requêtes SQL
Les requêtes SQL de baseBien comprendre le schéma relationnel sous-jacent
Vue générale d’une requête SQL (select, from, where)
Exemple de requête d’extraction simple sur une seule table
Les clauses de filtrage (where)
Trier les résultats (ORDER BY)
Conditions et opérateurs de comparaison
Les mots clefs IN, BETWENN, LIKE, IS NULLRécupérer les données de plusieurs tablesComprendre le produit cartésien pour comprendre la jointure
Récupération de données à partir de plusieurs tables :
Les jointures internes (INNER JOIN)
Les corrélations
Les jointures Himself
Présentation des jointures externes (OUTER JOIN)SynthèseComment appréhender l’écriture d’une requête SQL ?
Par quoi commencer (select ? from ? where ?)
Modélisation des jointures pour clarifier une requête (arbre)AteliersObjectif : Ecrire des requêtes SQLContenu : Exécution de requêtes SQL de difficultés croissantes reprenant les éléments de ce chapitre (filtrage, tri, jointure, etc.).Jour 2Manipulation des données de la base
La genèse des donnéesCréation de tables en SQL
Les types de données
Modification du schéma d’une table (alter table)
La suppression d'une table (drop table)
Manipulations de séquencesLa mise à jour des donnéesL'insertion de données (insert)
La mise à jour (update)
La suppression d'informations (delete)
Ne pas confondre NULL, 0, et chaîne vide (˜˜)AteliersObjectifs : Comprendre le cycle de vie des données dans une base SQL et savoir les mettre à jourContenu : Création de tables, remplissage et mises à jour selon différentes techniques (insert, update, delete, insert associé à un select, etc.) selon une complexité croissante. Script SQL de synthèse permettant de générer une base de données (tables, données, contraintes)Les fonctions en SQL
Les classiquesPrésentation des grandes familles de fonctions SQL
Où peut-on utiliser les fonctions SQL dans une requête ?
Moyenne des valeurs (avg)
Nombre d'enregistrements retournés (count)
Minimum et maximum (min, max)
Somme des valeurs (sum)Les fonctions sur les chaînes de caractèresLa longueur d'une chaîne (length)
Les minuscules et majuscules (lower, upper)
L'opérateur LIKE et le symbole %
Extraction d'une partie de la chaîne (substr)
Gérer les valeurs null (Coalesce, IsNull)Les fonctions temporellesSavoir manipuler une date (current_date)
Les variantes (premier jour du mois, dernier jour, etc.)
L’heure courante (current_time)
Retourner la date et l’heure (current_timestamp)Les conversions date/nombre/chaîneBien comprendre les formats visibles (AAA-MM-JJ HH :MM :SS, etc.)
Les pièges classiques avec les dates
Conversion d'une date en caractères
Conversion d'une chaîne de caractères en datePortabilité des fonctions SQL d’un SGBD à un autreExemples de fonctions spécifiques à SQL Server, MySQL, Oracle, etc.
Les sites des références pour s’assurer de la portabilité de nos requêtes SQLAteliersObjectifs : Savoir utiliser les fonctions SQL standards et rechercher de façon autonome dans les bibliothèquesContenu : Recherche de texte dans la base, manipulations autour des dates et du temps, opérations arithmétiques, statistiques de ventes d’articles par secteur sur certaines périodes selon des critères fins.Jour 3Requêtes ensemblistes en SQL
Regroupement et condition (group by, having)
Le cumul de résultats (union)
Le recoupement de résultats (intersect, minus)AteliersObjectif : Mettre en œuvre les requêtes ensemblistes
Contenu : Utilisation des requêtes ensemblistes dans une approche progressive.
Exemple : moyenne des ventes par département à partir d’un nombre significatif de ventes minimum.Requêtes complexes en SQL
Bien comprendre les sous-interrogations dans le where
Bien comprendre les sous-requêtes synchronisées (where exists)
Variantes sur la jointure (auto jointure, jointure complexe)
Retour sur l’arbre de requêtes SQL pour les requêtes complexes
Principes des vues (view)
Quand utiliser les vues ?
Notion de performances des requêtes
Principes d’un indexAteliersObjectifs : Disposer d’une méthode pour écrire des requêtes plus complexes qu’une « simple » jointure
Contenu : Jointure sur 3 tables et plus, modélisation de la requête sous forme d’arbre. Création et utilisation de vues dans les requêtesLe SQL dans les applications et les outils
Utilisation du SQL dans les applications ou sites Web
Limites du SQL « seul » et apports des procédures stockées
Liens entre Business Intelligence (BI) et SQL
SQL et les outils d’aide à la décision (Power BI, Tableau, Webi)
Création et stockage de requêtes SQL dans les ETL (Extract-Transform-Load)
Import/Export de données au format SQLAteliersObjectifs : Comprendre qu’au-delà des résultats bruts visibles de façon interactive les requêtes SQL sont encapsulées dans diverses sources applicatives
Contenu : Exemple d’intégration de requête SQL dans le code d’un site ou d’une application WEB. Exemple de requête SQL dans un ETL pour extraire les données d’une base à des fins de chargement dans une autre. Exemple de requêtes SQL utilisées dans une présentation graphique d’aide à la décision avec Power BI. Export des données d’une base (format SQL) et import dans une autre base