Database Reference
In-Depth Information
Figure 2-38 . Calcul de volumétrie (résultat)
Vous venez sans doute de constater qu'un bon modèle de données est constitué d'une mul-
tiplicité d'entités. Sans doute beaucoup plus que vous ne l'auriez imaginé et certainement
plus que ce que vous avez déjà fait, si jamais vous avez commencé à travailler les bases
de données sans passer par l'étape modélisation.
Pour autant, vous vous posez avec sérénité la question des performances du fait des mul-
tiples jointures à faire lors du codage des applications, et donc de l'exploitation de la
base. Bien entendu, toute opération de jointure a un coût. Mais ce coût peut devenir très
minime en face du bénéicie considérable d'une bonne modélisation… Autrement dit, vous
ne devez pas avoir peur du nombre d'entités et donc de tables de votre base.
Mais écrire de multiples jointures pour la moindre requête vous fatigue  ! Vous avez
raison, un bon informaticien doit être faignant… La solution réside donc dans la création
des vues. Ainsi, pour une personne dont vous voulez, et les données personnelles, et les
données de contact, créez une vue synthétisant toutes ces informations. N'hésitez pas à
l'utiliser systématiquement dans tous vos codes, même pour la mise à jour (nous verrons
comment mettre à jour les vues dans un chapitre ultérieur).
Sachez qu'un bon SGBDR ignorera certaines jointures inutiles d'une vue, si les infor-
mations à retourner ne sont pas utiles pour votre requête. Sachez aussi que le nombre
de jointures qu'un SGBDR peut supporter est assez élevé. C'est en général plusieurs
centaines. Sachez enin que le coût d'une jointure entre une clé primaire (identiiant de
l'entité) et une clé étrangère (qui se doit d'être indexée) est très minime si vous avez opté
pour une clé auto-incrémentée ( SEQUENCE ou IDENTITY ). Apprenez que le coût d'une
jointure entre deux tables de 100 millions de lignes, devant retourner une unique ligne,
ne dépasse pas six lectures…
Enin, si tout cela ne vous a pas convaincu, venez en discuter ici  : http://www.
developpez.net/forums/d1099389/bases-donnees/decisions-sgbd/optimisations/petites-
tables-grandes-tables-consequences-performances/.
 
Search WWH ::




Custom Search