Il y a aucune différence entre l'intégrité des données et la cohérence des données?
Je suis un peu confus à propos de data consistency
et data integrity
. À Partir De Concepts De Base De Données Oracle :
data integrity
--------------
Business rules that dictate the standards for acceptable data. These rules
are applied to a database by using integrity constraints and triggers to
prevent invalid data entry.
À Partir De Wikipedia
Consistency
-----------
Consistency states that only valid data will be written to the database.
Donc, quelle est la différence entre data consistency
et data integrity
?
Merci d'avance.
6 réponses
Ils ne sont pas seulement différents, ils sont orthogonaux.
Incohérence:
Un DB qui a signalé le département de L'employé Joe Shmoe comme Ventes mais qui N'a pas énuméré Joe Shmoe parmi les employés du département des ventes serait incohérent.
C'est une propriété logique de la DB, indépendante des données réelles.
l'Intégrité:
Un DB qui a déclaré que jOe SaleS était membre du département Shmoe manquerait d'intégrité.
jOe SaleS n'est pas un nom de l'employé valide et Shmoe n'est pas un département valide.
ce n'est pas logiquement invalide, mais il n'est pas valide par rapport aux règles qui régissent le contenu des données.
Très grossièrement, mon 2c:
Integrity = strong types, Pas de valeurs illégales telles que déterminées par le modèle de données et les contraintes, les clés foriegn, les contraintes uniques et des choses comme ça.
Consistency = être capable de lire uniquement les données validées à un moment donné, pas les étapes intermédiaires.
Les données peuvent être entièrement cohérentes et entièrement fausses. L'intégrité des données dépend davantage de la qualité des données et va bien au-delà des systèmes de gestion des bases de données. Les SGBD fournissent des outils de cohérence des données qui peuvent aider à l'intégrité des données. Les contraintes d'intégrité et les déclencheurs permettent de s'assurer qu'un SGBD ne dégrade pas (ou, si vous êtes pessimiste, ne dégrade pas davantage) l'intégrité des données qui arrivent.
La façon d'analyser le verbiage Oracle est la suivante les contraintes d'intégrité et les déclencheurs sont un moyen d'implémenter un sous-ensemble des règles métier qui définissent l'intégrité des données.
Probablement ces liens peuvent vous aider à démarrer:
Http://en.wikipedia.org/wiki/Data_consistency
À Partir de ici
Cohérence des Données
L'exécution de la transaction isolément préserve la cohérence des données. La valeur de données stockée dans la base de données doit satisfaire à certaines contraintes de cohérence. Par exemple, le solde d'un compte ne devrait pas tomber en dessous de 100$. Les commandes DDL fournissent les fonctions permettant de spécifier de telles contraintes. Les systèmes de base de données vérifient ces contraintes chaque fois que la base de données est mise à jour. En général il peut s'agir d'un prédicat arbitraire à la base de données. Pour vérifier la cohérence de la base de données, la plupart des programmeurs dépendent des contraintes et celles-ci sont généralement coûteuses à tester.
Intégrité des Données
L'intégrité des données se réfère à des "données entières à un endroit". Les données sont sous la forme de tables et chaque table a des attributs. Ce sont les cas où nous voulons nous assurer qu'une valeur qui apparaît dans un rapport pour l'ensemble des attributs doit également apparaître pour un certain ensemble d'attributs dans une autre relation (intégrité référentielle). La modification de la base de données peut entraîner une violation de l'intégrité. Lorsque la contrainte d'intégrité est violée, la procédure normale rejette l'action qui a effectivement causé la violation.
Vous pouvez lire premier chapitre pour l'ACIDE.
- Consistency: vous n'avez pas de dates, de chiffres et de lettres dans la même colonne mais seulement une d'entre elles. Ceci est forsed en définissant le type de colonne, par exemple. le numéro d'identification de la colonne (5) signifie qu'il n'y aura pas de dates ni de lettres et de chiffres supérieurs à 99999
- intégrité: si vous avez la table emplooyes et la table des départements et la colonne department_id dans les deux (avec la signification de department_id dans lequel l'employé travaille), il n'y aura aucun employé travaillant dans le département qui n'existe pas dans table des départements. Ceci est forsed par la contrainte d'intégrité referencal.