Database Reference
In-Depth Information
Mise en pratique
L'exercice 3.3 « La programmation de contraintes » vous propose de programmer quelques
contraintes sur différentes tables.
Dénormalisation
Avant de penser à la dénormalisation, il faut que vous soyez assuré que vos tables sont nor-
malisées au préalable… La majorité des problèmes de performances des applications en
production survient à la montée en charge au niveau du volume des données. En d'autres
termes, manipuler des tables mal conçues devient seulement pénalisant quand elles deviennent
volumineuses et ne tiennent plus en RAM. Quand les experts étudient le code et se rendent
compte que les tables ne sont pas normalisées, il est souvent déjà un peu trop tard. Partez sur
de bonnes bases (c'est le cas de le dire) : normalisez au maximum en amont !
Si vos tables sont normalisées et vos clés étrangères indexées, le plus gros du travail est fait.
Vous disposez d'autres outils que sont le partitionnement ou les vues matérialisées. Si malgré
tout ça, vos temps de réponse sont inacceptables, vous pouvez essayer de dénormaliser certaines
tables.
Vous. pouvez. dénormaliser. une. table. en. ajoutant. des. colonnes. qui. permettront. de. stocker.
soit.des.colonnes.calculées.(qui.éviteront.des.calculs),.soit.des.données.redondantes.(mais.
plus.accessibles).ou.des.clés.primaires.(de.taille.plus.réduite :.une.séquence.par.exemple).ou.
étrangères.(qui.diminueront.les.jointures)..Dans.bien.des.cas,.vous.devrez.programmer.des.
déclencheurs.afin.de.maintenir.l'intégrité.dans.le.temps.de.votre.nouvelle.base..Si.vous.n'êtes.
pas.un.adepte.des.déclencheurs,.ce.traitement.devra.être.codé.dans.vos.procédures.
La.dénormalisation.sera.profitable.si.votre.application.effectue.beaucoup.de.lectures.et.peu.de.
mises.à.jour..Si.beaucoup.de.mises.à.jour.sont.réalisées,.la.dénormalisation.dégradera.sen-
siblement.certaines.performances..En.revanche,.si.votre.application.effectue.peu.de.lectures,.
dénormaliser.ne.sert.à.rien.(a.fortiori.lorsqu'il.existe.beaucoup.de.mises.à.jour).
Colonnes calculées
Dans l'exemple suivant, l'ajout des colonnes totaljp (nombre de jours à facturer) et totalj
(nombre de jours de formation dans l'année) évitera tout calcul impliquant des jointures avec
la table Inscriptions .
 
Search WWH ::




Custom Search