À retenir
- C'est le niveau d'isolation le plus élevé en base de données (norme ACID).
- Elle empêche les incohérences de données lors d'accès simultanés.
- Elle donne l'illusion d'un traitement séquentiel (un par un) alors que tout se passe en parallèle.
La sérialisabilité est une propriété de sécurité qui garantit que le résultat de plusieurs opérations effectuées en même temps est identique à celui que l'on obtiendrait si on les exécutait l'une après l'autre. C'est comme si plusieurs personnes cuisinaient ensemble dans une cuisine étroite : même s'ils s'activent tous en même temps, le plat final doit être exactement le même que si chaque cuisinier avait attendu que le précédent termine sa recette.
Étymologie
Issu du mot « série » (du latin series, signifiant enchaînement) avec le suffixe « -abilité » qui exprime une capacité. En informatique, ce terme est né avec les premiers systèmes de gestion de bases de données pour désigner la capacité à ordonner des transactions complexes.
Exemples d'usage
- Deux clients achètent simultanément le dernier billet d'avion : la sérialisabilité garantit qu'un seul réussira l'achat et que l'autre verra une erreur, évitant ainsi le surbooking.
- Le transfert d'argent entre deux comptes bancaires pendant qu'un calcul d'intérêts est en cours.
Cas d'usage
On utilise ce concept principalement dans les systèmes de gestion de bases de données (SGBD) et les systèmes distribués. Il permet de gérer les accès concurrents aux données pour éviter les erreurs de calcul ou les pertes d'informations lorsque des milliers d'utilisateurs interagissent simultanément.
Bonnes pratiques
Pour garantir la sérialisabilité, il est conseillé d'utiliser des mécanismes de verrouillage (locks) ou des niveaux d'isolation élevés dans les bases de données. Attention toutefois : une sérialisabilité stricte peut ralentir le système, car elle oblige parfois certaines tâches à attendre.
Synonymes
Antonymes
Conseil
Si vous débutez, retenez que la sérialisabilité est votre meilleur allié pour la fiabilité des données, mais votre pire ennemi pour la rapidité extrême. Apprenez à choisir le bon niveau d'isolation selon l'importance critique des données que vous manipulez.
Questions fréquentes
Est-ce que la sérialisabilité ralentit mon application ?
Oui, car pour garantir que tout est cohérent, le système doit parfois mettre des tâches en attente. C'est un compromis entre performance et sécurité absolue des données.
Est-ce la même chose que la sérialisation ?
Non. La sérialisation transforme un objet en texte ou en binaire. La sérialisabilité concerne l'ordre d'exécution des tâches.