Bases de données normalisées vs dénormalisées

Lorsque j’ai commencé à travailler avec SQL, tout se trouvait dans une seule table. Certes, cette table ressemblait à peu près à ceci :

.

La plupart des bases de données vont contenir un peu plus de données que quatre colonnes et cinq lignes. Ainsi, le débat entre les bases de données normalisées et dénormalisées fait rage depuis des siècles (je parle en temps de développeur). Alors quelle est la différence ?

Les bases de données normalisées impliquent plusieurs tables. Comme les données sont organisées dans une table et d’autres données connexes sont mises dans une table différente. Vous accédez à chaque donnée par le biais de relations avec chaque table, principalement des tables de jointure. Le point positif est que la normalisation réduit la redondance et maintient l’intégrité des données. Tout est organisé dans de jolies petites tables où toutes les données qui devraient rester ensemble, le font.

Tous les chatons gris dans cette table, s’il vous plaît.

Mais, un peu comme l’inconvénient de Rails, les bases de données normalisées peuvent entraîner un ralentissement des requêtes, surtout lorsqu’on traite une tonne de merde (terme technique) de données. C’est là que les bases de données dénormalisées entrent en jeu. Si les jointures multiples sont satisfaisantes et amusantes, elles peuvent rapidement devenir complexes. Lorsque tout se trouve dans la même table, la requête n’a pas besoin de sauter de table en table pour trouver ce que vous cherchez, c’est déjà là. Un inconvénient est qu’il y aura des données redondantes – un petit sacrifice à faire pour gagner en rapidité.

Tous les chats dans la même table, pas de si et de mais.

Le plus beau dans tout cela, c’est que vous n’avez pas à choisir l’un ou l’autre ; votre base de données n’a pas à être normalisée au nième degré ou complètement dénormalisée en une seule table. Si vos requêtes s’exécutent trop lentement et que cela est dû à la complexité de la requête, vous pouvez dénormaliser la base de données juste assez pour vous débarrasser de trop de jointures. Par ailleurs, si votre base de données est un gigantesque fouillis de données et que vous avez besoin d’une certaine organisation, il suffit d’organiser certaines données dans différentes tables et de supprimer les redondances. Les bases de données peuvent vous donner le meilleur des deux mondes, avec un peu de TLC.

Leave a Comment

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *