Outils pour utilisateurs

Outils du site


informatique:sgbd-best-practises

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édentesRévision précédente
Prochaine révision
Révision précédente
informatique:sgbd-best-practises [2020/05/13 14:13] bertrandinformatique:sgbd-best-practises [2024/02/20 10:04] (Version actuelle) – [Les requêtes] bertrand
Ligne 1: Ligne 1:
  
 ====== Best practises Bases de données ====== ====== Best practises Bases de données ======
-Début 2020, j'ai questionné la liste de diffusion RBDD à propos des bonnes pratiques pour la création/modification et utilisation des bases de données. Après différents échanges, Marie-Claude Q a créé l'article:+Début 2020, j'ai questionné la liste de diffusion RBDD à propos des bonnes pratiques pour la création/modification et utilisation des bases de données. Après différents échanges (merci aussi à Éric Q), Marie-Claude Q a créé l'article:
  
 [[http://rbdd.cnrs.fr/spip.php?article338|Bonnes pratiques en matière de base de données]] [[http://rbdd.cnrs.fr/spip.php?article338|Bonnes pratiques en matière de base de données]]
Ligne 12: Ligne 12:
 ==== Des constantes ==== ==== Des constantes ====
  
-Le nom des bases de données, des schémas, des tables et des attributs doit être:+=== Le nom des bases de données, des schémas, des tables et des attributs doit être === 
   * en minuscule   * en minuscule
   * au singulier   * au singulier
Ligne 20: Ligne 21:
 Il doit être parlant sans être verbeux. L’utilisation d’abréviation est déconseillée. 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.+=== 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** Le commentaire doit citer l’**unité de mesure, pour les données numériques**
  
 === Des options === === Des options ===
  
-  * Le nom des objets et le commentaire doivent être en anglais\\+=== Le nom des objets et le commentaire doivent être en anglais ===
 {{:informatique:plus-circle.png|}} langue internationale\\ {{:informatique:plus-circle.png|}} langue internationale\\
 {{:informatique:minus-circle.png|}} langue non maitrisée par tous (les nuances mises dans les commentaires peuvent être mal interprétées) \\ {{:informatique:minus-circle.png|}} 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 ».\\ + 
-{{:informatique:plus-circle.png|}} porte sur une seule colonne et plus rapide pour l’indexation\\+=== La clef primaire doit être de type « serial » et nommée « table_id » === 
 +{{:informatique:plus-circle.png|}} porte sur une seule colonne et étant de type numérique (donc vrai aussi pour le type integer), c'est plus rapide pour l’indexation\\
 {{:informatique:minus-circle.png|}} non significative (ne porte pas d'information métier) et l’unicité métier (une seule fois cette personne avec nom-prénom par exemple) de l’enregistrement est à la charge du développeur\\ {{:informatique:minus-circle.png|}} non significative (ne porte pas d'information métier) et l’unicité métier (une seule fois cette personne avec nom-prénom par exemple) 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)\\+ 
 +=== La clef étrangère doit avoir le même nom que la clé primaire de la table référente (table_id) ===
 {{:informatique:plus-circle.png|}} utilisation de jointure de type join using (table_id) mais cela peut rend plus difficile la compréhension du contenu\\ {{:informatique:plus-circle.png|}} utilisation de jointure de type join using (table_id) mais cela peut rend plus difficile la compréhension du contenu\\
 {{:informatique:minus-circle.png|}} utilisation de jointure de type join using (table_id) est impossible\\ {{:informatique:minus-circle.png|}} utilisation de jointure de type join using (table_id) est impossible\\
-  * Le nom des vues doit être préfixé par « v_ »\\+ 
 +=== Le nom des vues doit être préfixé par « v_ » ===
 {{:informatique:plus-circle.png|}} plus facile de les repérer\\ {{:informatique:plus-circle.png|}} plus facile de les repérer\\
 {{:informatique:minus-circle.png|}} peu d’intérêt de les repérer\\ {{:informatique:minus-circle.png|}} 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 nom des attributs doit être préfixé par le nom de leur table et séparé par des _ s'il y a une ambiguïté possible avec d'autres tables ===
 {{:informatique:plus-circle.png|}} lecture des requêtes facilité (absence d’ambiguïté), évite l'utilisation d'alias (cf. §Requêtes)\\ {{:informatique:plus-circle.png|}} lecture des requêtes facilité (absence d’ambiguïté), évite l'utilisation d'alias (cf. §Requêtes)\\
 {{:informatique:minus-circle.png|}} nom à rallonge\\ {{:informatique:minus-circle.png|}} nom à rallonge\\
-  * Le nom des tables doit être aliaisé par une abréviation\\+ 
 +=== Le nom des tables doit être aliaisé par une abréviation ===
 {{:informatique:plus-circle.png|}} lecture des requêtes facilité (absence d’ambiguïté) et nom court\\ {{:informatique:plus-circle.png|}} lecture des requêtes facilité (absence d’ambiguïté) et nom court\\
 {{:informatique:minus-circle.png|}} pas toujours facile de trouver une abréviation parlante\\ {{:informatique:minus-circle.png|}} pas toujours facile de trouver une abréviation parlante\\
Ligne 48: Ligne 54:
 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 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
  
-Utilisation des alias de tables dans les requêtes complexes :\\ +=== Utilisation des alias dans les requêtes complexes === 
-{{:informatique:plus-circle.png|}} facilite la lecture de la requête\\ +{{:informatique:plus-circle.png|}}\\ 
-{{:informatique:plus-circle.png|}} indispensable si la même table est utilisée plusieurs fois dans la même requête (relations multiples)\\ +  * facilite la lecture de la requête 
-{{:informatique:minus-circle.png|}} compromis à trouver entre longueur de l'alias et signification\\+  indispensable si la même table est utilisée plusieurs fois dans la même requête (relations multiples) 
 +  * les alias des tables sont utilisables dans les WHERE, HAVING et autre 
 +{{:informatique:minus-circle.png|}}\\ 
 +  * compromis à trouver entre longueur de l'alias et signification 
 +  * les alias des champs ne sont pas utilisables dans les mêmes WHERE, HAVING et autres 
 + 
 +===== Références ===== 
 +  * [[wpfr>12_règles_de_Codd|les 12 règles de Codd]] et notamment la règle 1 : l’unicité 
 +  * [[wpfr>Propriétés_ACID|les propriétés ACID]] 
informatique/sgbd-best-practises.1589372015.txt.gz · Dernière modification : 2020/05/13 14:13 de bertrand