> Tech > Une solution de dimensions qui changent lentement (2)

Une solution de dimensions qui changent lentement (2)

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Ensuite, vous créez un ensemble de triggers sur la table Products, qui enregistrent les transactions dans la table Prod_log. Les triggers INSERT et DELETE fonctionnent très simplement : ils enregistrent toutes les données provenant des tables insérées et supprimées, respectivement, plus un I ou un D comme le tran_type dans

la
table Prod_log. Tout en étant connecté
à  la base de données source, exécutez
le script du listing 3 pour créer les triggers
INSERT et DELETE. Notons que
SQL Server utilise l’attribut de colonne
IDENTITY et la valeur par défaut GETDATE(),
respectivement, pour générer
les valeurs lsn et log_date. Les valeurs
namechg et packagechg n’ont aucune
importance quand vous insérez ou
supprimez des valeurs, donc elles reçoivent
des NULL.

Le trigger UPDATE est plus complexe.
Tout d’abord, il vérifie s’il y a eu
une tentative de changer l’ID du produit
et si oui, il ramène en arrière la
transaction. (Un système OLTP bien
conçu devrait interdire tout changement
de l’ID produit une fois qu’il est
défini.) Le trigger UPDATE doit aussi
comparer l’ancienne image des données
(la table supprimée) à  la nouvelle
image (la table insérée) pour s’assurer
que le nom ou le conditionnement du
produit a changé et pour déterminer
les nouvelles valeurs des colonnes namechg
et packagechg. Il est intéressant
d’utiliser la fonction UPDATE() pour
déterminer si ces colonnes ont changé,
pour deux raisons. Premièrement,
votre trigger devrait traiter des mises à 
jour multi lignes, mais les attributs
de produit dans certaines lignes
pourraient changer tandis que les attributs
d’autres produits restent les
mêmes. Deuxièmement, la fonction
UPDATE() renvoie TRUE quand vous
spécifiez une colonne dans la clause
SET d’une instruction UPDATE, et ce,
que la valeur de la colonne ait changé
ou non. Vous pouvez exécuter le script
illustré dans le listing 4 pour créer
un trigger UPDATE sur la table
Products.

Pour tester vos triggers, appliquez
les instructions INSERT suivantes à  la
table Products :

INSERT INTO Products(productid, productname,
package)
VALUES(1à˜1, 'prod1', 1à˜)
INSERT INTO Products(productid, productname,
package)
VALUES(1à˜2, 'prod2', 1à˜)
INSERT INTO Products(productid, productname,
package)
VALUES(1à˜3, 'prod3', 1à˜)

Téléchargez cette ressource

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010