Mittie
Une anomalie d'insertion indique que nous ne pouvons pas insérer un fait sur une entité tant que nous n'avons pas un fait supplémentaire sur une autre entité. Supposons que nous voulions stocker l'information selon laquelle le coût de la voiture est de Rs. 14 00 000, mais nous ne pouvons pas entrer ces données dans la relation tant que les données concernant la voiture ne sont pas entrées dans la relation.
Cette restriction semble indésirable. Pourquoi devrions-nous attendre que quelqu'un achète la voiture (bien que son prix soit connu). Nous pouvons enregistrer son prix. Cette restriction est appelée anomalie d'insertion. Ce problème peut être résolu en divisant la relation en deux relations, chacune étant utilisée pour stocker des faits différents.
Par exemple, pour insérer un nouveau tuple de personnel (enregistrement) dans la relation 'Staff-Branch', nous devons inclure les détails de la branche dans laquelle le personnel doit être localisé. Supposons que vous entrez les détails du nouveau personnel situé au numéro de succursale 3891, vous devez entrer les détails corrects de ce numéro de succursale.
Il est difficile d'insérer les détails d'une nouvelle succursale qui n'a pas de membres du personnel dans la relation « Staff-Branch ». La seule façon de le faire est de placer des valeurs nulles dans les attributs du personnel, tels que Staff-No. Cela crée un problème d'intégrité car Staff-No est la clé principale de la relation Staff-Branch. Par conséquent, vous ne pouvez pas entrer une ligne pour une nouvelle branche dans la relation Staff-Branch avec une valeur nulle pour l'attribut Staff-No. Lorsque la relation Personnel-Branche est divisée en une relation Personnel et Branche, le problème mentionné ci-dessus ne se produira pas. C'est parce que les détails de la branche peuvent être entrés dans la relation Branche. Les détails du personnel situé dans cette succursale peuvent être entrés plus tard dans la relation de personnel.