Ressources
Administration/gestion/modélisation des bases de données¶
Ecosystème PostgreSQL¶
Documentations¶
- Dalibo diffuse ses manuels de formation au grand public
- Industrialiser PostgreSQL (livre blanc)
- Bonnes pratiques de modélisation avec PostgreSQL (livre blanc)
- Bonnes pratiques de développement avec PostgreSQL (livre blanc)
- Guide de transition à PostgreSQL : aide à la décision fr|en
Commandes SQL¶
- Envoyer des mails depuis la base de données
- Rechercher une donnée dans une base de données dont on ne connait pas le modèle de données
- Commandes psql
Extensions dans postgreSQL¶
- Support de Cours - ANF PostgreSQL Administrateur 2023
- Extensions Postgres pour l’utilisateur : pgcrypto, Anonymizer, Postgis ...
- Extensions Postgres pour la performance : pg_stat_statements, auto_explain ...
- Extensions Postgres pour les DBA
- Commandes postgis fréquentes
- Interroger un fichier plat pour alimenter la base de données avec les Foreign Data Wrapper
- Exemple d'utilisation de file_fdw
- Tracer les mises à jour de sa base de données avec E-maj
- Extension de gestion de table tablefunc
Exploitation¶
Bonnes pratiques en matières de base de données¶
Quelques conseils en matière de base de données :
Des constantes¶
- Le nom des données, des schémas, des tables et des attributs doit être en minuscule, au singulier, sans caractère accentué, sans espace. Il doit être parlant sans être verbeux. L'utilisation d’abréviation est déconseillée
- Les schémas, les tables et les colonnes porteuses d'informations doivent être commentés. Le commentaire doit citer l'unité de mesure, pour les données numériques
- L'utilisation de script SQL doit être privilégiée. Il doit être commentés et contenir les entêtes minimum suivantes (auteur / date de création / date de dernière mise à jour / utilité). Il doit être archivé, dans un gestionnaire de version de code si possible, ou dans un système de sauvegarde au moins journalier
Des options¶
- Le nom des objets et le commentaire doivent être en anglais
-
- Avantage : langue internationale
-
- Inconvénient : langue non maitrisée par tous (les nuances mises dans les commentaires peuvent être mal interprétées)
- La clef primaire doit être de type "serial" et nommée "table_id".
-
- Avantage : porte sur une seule colonne et plus rapide pour l'indexation
-
- Inconvénient : non significative
-
- Inconvénient : l'unicité métier de l'enregistrement est à la charge du développeur
- La clef étrangère doit avoir le même nom que la clé primaire de la table référente (table_id)
-
- Avantage : jointures simplifiées avec l'instruction join using (table_id)
-
- Avantage : non redondance du champ (table_id) pour les select *
-
- Inconvénient : il est moins évident de retrouver les tables liées à partir du nom des colonnes (pas d'information de type table_id_fk)
- Le nom des vues doit être préfixé par "v_"
-
- Avantage : plus facile de les repérer
-
- Inconvénient : peu d'intérêt de les repérer
- Le nom des attributs doit être préfixé par le nom de leur table et séparé par des _ (le préfixe est obligatoire s'il y a une ambiguïté possible avec d'autres tables)
-
- Avantage : lecture des requêtes facilitée
-
- Inconvénient : nom à rallonge
- Le nom des tables doit être aliaisé par une abréviation (l'utilisation d'alias est indispensable si la même table est utilisée plusieurs fois dans la même requête)
-
- Avantage : facilite la lecture de la requête
-
- Inconvénient : compromis à trouver entre longueur de l'alias et signification
Comment concevoir une base de données¶
Outils d'administration de base de données¶
Il existe de très nombreux clients graphiques pour administrer une base de données PostgreSQL. Nous vous en avons sélectionné quelques uns :
- le client "officiel" de PostgreSQL
- une plate-forme d'administration et de développement
- 2 modes : mono utilisateur (desktop) et multi-utilisateur (web)
- disponible sur Linux, Mac et Windows
Avantages
- possibilité de visualiser toutes les bases de données hébergées dans le serveur
- fonctions d'attribution des droits (droits par défaut, et wizards d'affectation des droits a posteriori)
- des graphes de fonctionnement un peu plus complets
- des fonctions d'administration plus poussées (déclenchement manuel de vacuum, création des foreign data wrappers, etc)
Le logiciel est mature mais il est peut être un peu gourmand (CPU) pour une utilisation en tant que client PostgreSQL. Privilégier le plutôt pour l'administration et la maintenance (visualisation des processus, des verrous ou de la charge)
- un client Postgres mais pas que (MySQL, MariaDB, SQLite, MS Access, Oracle,...)
- disponible sur Linux, Mac et Windows
- outil assez intuitif
Avantages
- possibilité d'activer le chiffrement du mot de passe
- utilisation du fichier .pgpass qui permet de mutualiser les mots de passe avec les outils en ligne de commande de PostgreSQL
- de nombreux drivers pour se connecter à d'autres bases de données (par exemple H2)
- visualisation du schéma Entité Relation
- visualisation des points géographiques sur une carte
- fonction d'import des données avec des paramètres de mapping entre la base et le fichier d'import
- fonction d'autocomplétion lors de l'écriture de requêtes
- possibilité d'affecter un code couleur aux connexions (développement, pré-production, production par exemple)
Inconvénients
- parfois instable
- application écrite en java (donc multi-plateforme)
- compatible avec quasiment toutes les bases de données.
Avantages
- support natif des transactions (commit, rollback), ce qui permet de se rattraper en pas d'erreur, et de valider des scripts complexes
- possibilité d'automatisation avec des variables injectables dans le script
- fonctions d'exportation (presse-papier, csv, xls, ods)
- fonctions d'importation
- possibilité de "suivre" un enregistrement vers ses parents/enfants
- fonctionnalité de formatage SQL
Inconvénients
- pas de dessin de la base de données
Oracle SQL Developper Data Modeler
- application écrite en java (donc multi-plateforme)
Outils de migration de bases de données¶
Migrer d'Oracle à PostgreSQL¶
Migrer Access vers PostgreSQL (MS Access to PostgreSQL Conversion)¶
- Freeware disponible
- Documentation
- Nécessite le driver ODBC 32 bits
- Format de fichier Access 2002-2003 (*.mdb)
- Test concluant avec
- BDD Access au format de fichier Access 2002–2003
- PostgreSQL 10.13
- PsqlODBC 10.03.000
Remarque : l'utilitaire ne permet pas de récupérer les relations car Access les gère de façon non standard. Sur le blog d'Ivan Cachicatari's Blog @latindev vous trouverez un script VBA "Converting MS Access to MySQL with relationships" qu'il suffit d'adapter pour PostgreSQL : remplacer les ` (prévu pour mysql) par deux double quote "" et rajouter le nom du schéma si nécessaire (Merci à Olivier Lobry pour l'adaptation). Ce script génère des requêtes SQL qu'il faut exécuter sur PostgreSQL une fois les tables générées.
Pour valider votre migration, vous pouvez utilisez l'outil Pgmodeler qui permet de faire de la rétroconception de base de données PostgreSQL
Migrer Access vers MariaDB¶
Outils de modélisation de bases de données¶
Il existe de nombreux logiciels pour modéliser sa base de données. Nous vous en avons sélectionné quelques uns.
pgModeler¶
- support exclusif mais complet de Postgresql pour dessiner sa base de données
Avantages
- outil le plus complet à notre connaissance
- compilation possible sur toutes plates-formes
- rétro-ingénierie
Inconvénients
- compilation à faire soi-même (existence d'une version compilée payante)
- scripts de génération à retoucher parfois (mais à la marge)
- temps de prise en main (surtout pour maîtriser toutes les subtilités du programme) assez long
Looping¶
- Modélisation Entité/Association et Diagramme de Classes UML
- Logiciel gratuit et libre d’utilisation - Université Toulouse III
Avantages
- travaille au niveau d'un modèle conceptuel de données
- génération automatique du modèle logique de données et du script SQL
- s'adapte à tout les SGBDR (soit prédéfinis, soit paramétrable)
Inconvénients
- pas de rétro-ingénierie des modèles, prévu dans la version 4.1
- lisibilité des modèles diminue avec leur complexité
- absence de documentation présentant l'utilisation du logiciel
Autres outils¶
Quel SGBD conseiller en matière de pérennisation ?¶
Socle interministériel de logiciels libres¶
Documentation SILL
Les référents Socle Interministériel de Logiciels Libres (SILL) ministériels et DINUM (19/12/2023)
Support de cours¶
Support de cours Merise¶
- Ingénierie des systèmes d'information : Merise deuxième génération, Dominique Nanci & Bernard Espinasse, 4e édition - 2001, pdf
Support de cours NoSQL¶
-
Graph Algorithms: Practical Examples in Apache Spark and Neo4j, Mark Needham & Amy E. Hodler, O'Reilly Media, 2019 pdf
-
Les supports de cours NoSQL des formations rBDD sont disponibles :
- Support NoSQL
- Cassandra
- Mongo
- Neo4J
- Redis
- Perspectives NoSQL
Support de cours PostgreSQL¶
- Dalibo diffuse ses manuels de formation au grand public !
Support de cours UML¶
Cas d'utilisation (Delphine Longuet / Université Paris Sud) - Diagrammes de cas d'utilisation - Scénarios détaillés et diagrammes de séquence - phase analyse
Diagrammes de classes (Delphine Longuet / Université Paris Sud) - Classes et associations - Associations particulières et héritages - Contraintes
Diagrammes de séquence (Delphine Longuet / Université Paris Sud) - Diagrammes de séquence en conception
Support de cours FileMaker¶
Une participante du réseau rBDD, spécialiste de FileMaker, propose un soutien aux utilisateurs pour mieux comprendre cet outil. Elle a rédigé cinq fiches pédagogiques en version FileMaker 16, abordant des notions de base en SGBDR, l'introduction au scripting, les principes de sécurité, et la publication de rapports hiérarchisés.
- Fiche 1 - Exporter des données
- Fiche 2 - Sécuriser les champs de données
- Fiche 3 - Automatiser la numérotation et définir une valeur par défaut
- Fiche 4 - Naviguer d'un modèle à l'autre
- Fiche 5 - Construire et publier un rapport à 3 niveaux hiérarchiques