<?xml version="1.0"?>
<rss xmlns:php="http://php.net/xsl" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Journalisation des modifications d'une table dans Derby - Chicoree</title><link>http://www.chicoree.fr/w/Journalisation_des_modifications_d%27une_table_dans_Derby</link><atom:link href="http://www.chicoree.fr/w/Journalisation_des_modifications_d%27une_table_dans_Derby?action=toFeed" rel="self" type="application/rss+xml"/><description><![CDATA[Pour des raisons de traçabilité ou de sécurité, il s'avère parfois nécessaire de garder une trace des modifications effectuées dans une base de données. Bien sûr, pour assurer la fiabilité de ces informations, il est important que cette journalisation soit automatisée. Nous allons voir ici comment c'est possible avec Apache Derby.
]]></description><item><title>1 Préambule</title><link>http://www.chicoree.fr/w/Journalisation_des_modifications_d%27une_table_dans_Derby#Pr.C3.A9ambule</link><description><![CDATA[<p>Pour commencer, voici la table qui nous servira de support. Celle-ci pourrait servir dans une application de gestion clientèle. Son rôle étant d'associer des clients à leur ligne de crédit autorisé (noté de A à F): 
</p>]]></description></item><item><title>2 Journaliser les insertions</title><link>http://www.chicoree.fr/w/Journalisation_des_modifications_d%27une_table_dans_Derby#Journaliser_les_insertions</link><description><![CDATA[<p>Dans cette section, nous allons nous intéresser à la <b>journalisation des insertions</b> dans la table. Nous ne nous préoccuperons pas d'enregistrer d'autres événements comme la modification d'un enregistrement ou sa suppression.
</p>]]></description></item><item><title>2.1 Avec une valeur par défaut</title><link>http://www.chicoree.fr/w/Journalisation_des_modifications_d%27une_table_dans_Derby#Avec_une_valeur_par_d.C3.A9faut</link><description><![CDATA[<p>Intéressons nous donc tout d'abord à la solution qui consiste à utiliser le nom de l'utilisateur comme valeur par défaut:
</p>]]></description></item><item><title>2.2 Avec un trigger</title><link>http://www.chicoree.fr/w/Journalisation_des_modifications_d%27une_table_dans_Derby#Avec_un_trigger</link><description><![CDATA[<p>Nous allons maintenant utiliser un <span>TRIGGER<span> (</span><span>Dans une base de données, un <i>TRIGGER</i> est une action déclenchée lors de la modification d'une table.<span>) </span></span></span> pour enregistrer le nom de l'utilisateur après chaque ajout.
</p>]]></description></item><item><title>3 Journaliser les insertions, modifications et suppressions</title><link>http://www.chicoree.fr/w/Journalisation_des_modifications_d%27une_table_dans_Derby#Journaliser_les_insertions.2C_modifications_et_suppressions</link><description><![CDATA[<p>Journaliser l'ensemble des évènements sur une table (INSERT, UPDATE et DELETE) se révèle un rien plus complexe: en effet, puisque plusieurs événements peuvent concerner le même enregistrement, il s'avère nécessaire d'ajouter une table annexe pour stocker le <i>journal</i> des modifications.
</p>]]></description></item><item><title>3.1 La table d'audit</title><link>http://www.chicoree.fr/w/Journalisation_des_modifications_d%27une_table_dans_Derby#La_table_d.27audit</link><description><![CDATA[<p>La table d'audit nous servira à mémoriser les informations pour chaque événement: date, type d'événement, enregistrement cible et utilisateur à l'origine de l'événement. Bien entendu, les utilisateurs ne devront avoir aucun accès à cette table (en tous cas, pas en modification):
</p>]]></description></item><item><title>3.2 Les triggers</title><link>http://www.chicoree.fr/w/Journalisation_des_modifications_d%27une_table_dans_Derby#Les_triggers</link><description><![CDATA[<p>Reste à ajouter les triggers. Oui: <i>les</i> triggers. En effet, nous allons auditer plusieurs types d'évènements:
</p>]]></description></item><item><title>3.3 Tests</title><link>http://www.chicoree.fr/w/Journalisation_des_modifications_d%27une_table_dans_Derby#Tests</link><description><![CDATA[<p>On peut maintenant s'assurer du fonctionnement de l'ensemble:
</p>]]></description></item></channel></rss>
