l’intégrité


1.      Pour assurer l’intégrité de la base il faut :

1.1 Par des Contraintes d'intégrité :
Définir une valeur par défaut :
Une contrainte d'intégrité est une clause permettant de contraindre la modification de tables, faite par l'intermédiaire de requêtes d'utilisateurs, afin que les données saisies dans la base soient conformes aux données attendues. Ces contraintes doivent être exprimées dès la création de la table grâce aux mots clés suivants :
·         CONSTRAINT
·         DEFAULT
·         NOT NULL
·         UNIQUE
·         CHECK

CREATE TABLE clients(
Nom char(30) NOT NULL,
Prenom char(30) NOT NULL,
Age integer, check (age < 100),
Email  char(50) NOT NULL, check (Email LIKE "%@%"))

 Voici un exemple permettant de voir la syntaxe d'une instruction de création de table avec contraintes :






Trigger : garantie de l'intégrité référentielle :
Les clés étrangères permettent de définir les colonnes d'une table garantissant la validité d'une autre table. Ainsi, il existe des éléments (appelés triggers, ou en français gâchettes ou déclencheurs) permettant de garantir l'ensemble de ces contraintes que l'on désigne par le terme d'intégrité référentielle, c'est-à-dire notamment de s'assurer qu'un tuple utilisé à partir d'une autre table existe réellement.
Ces triggers sont ON DELETE et ON UPDATE :
·         ON DELETE est suivi d'arguments entre accolades permettant de spécifier l'action à réaliser en cas d'effacement d'une ligne de la table faisant partie de la clé étrangère :
o        CASCADE indique la suppression en cascade des lignes de la table étrangère dont les clés étrangères correspondent aux clés primaires des lignes effacées
o        RESTRICT indique une erreur en cas d'effacement d'une valeur correspondant à la clé
o        SET NULL place la valeur NULL dans la ligne de la table étrangère en cas d'effacement d'une valeur correspondant à la clé
o        SET DEFAULT place la valeur par défaut (qui suit ce paramètre) dans la ligne de la table étrangère en cas d'effacement d'une valeur correspondant à la clé
·         ON UPDATE est suivi d'arguments entre accolades permettant de spécifier l'action à réaliser en cas de modification d'une ligne de la table faisant partie de la clé étrangère :
o        CASCADE indique la modification en cascade des lignes de la table étrangère dont les clés primaires correspondent aux clés étrangères des lignes modifiées
o        RESTRICT indique une erreur en cas de modification d'une valeur correspondant à la clé
o        SET NULL place la valeur NULL dans la ligne de la table étrangère en cas de modification d'une valeur correspondant à la clé
o        SET DEFAULT place la valeur par défaut (qui suit ce paramètre) dans la ligne de la table étrangère en cas de modification d'une valeur correspondant à la clé
1.2 Intégrité réseaux :

Pour sécuriser l'intégrité des données, il existe des algorithmes spéciaux, appelés
algorithmes de hachage. Ces algorithmes sont comparables aux "sommes horizontales uniques". Chaque paquet de données Oracle reçoit une somme de contrôle de ce type et un numéro de séquence unique.

Ce mécanisme d'intégrité permet à Oracle de détecter les manipulations suivantes :
 -  modification des données par un tiers (la somme de contrôle est fausse)
-  suppression de certains paquets de données (le numéro de séquence est faux
-  ajout de nouveaux paquets de données (le numéro de séquence est faux)
 Dès qu'une manipulation est détectée, la connexion Oracle Net est interrompue.

Configuration :
Pour les environnements sensibles, nous conseillons la configuration fichier SQLNET.ORA :
Client :  
 SQLNET.CRYPTO_CHECKSUM_CLIENT=required
SQLNET.CRYPTO_CHECKSUM_TYPES_CLIENT=(SHA1)
 Serveur :
 SQLNET.CRYPTO_CHECKSUM_SERVER=required
SQLNET.CRYPTO_CHECKSUM_TYPES_SERVER=(SHA1)