Catégorie : SQL et bases de données

Par Pierrick Chouzenoux, le 17 février 2012

Chargement de dimensions à variation lente avec Pentaho Data Integration.

Dans cet article, je vais vous présenter un composant de l’outil Pentaho Data Extraction (PDI), anciennement appelé Kettle. Ce logiciel est un ETL Open Source de la firme Pentaho. Je vais principalement vous présentez l'utilisation d'un composant permettant d'alimenter des tables historisées. Ce genre de composant est beaucoup utilisé dans les bases de données, suivant une modélisation dimensionnelle, pour alimenter des dimensions à variation lente, d’où le nom du composant : « Dimension à variation lente ». Une transformation de dimension à variation lente coordonne la mise à jour et l'insertion d'enregistrements dans des tables de dimension d'entrepôts de données.

Lire la suite
Par Céline Gilet, le 13 juin 2011

Hibernate Envers : Audit et Suivi de version

Hibernate Envers permet de tracer les modifications sur les objets métiers d'une application mappés en base de données. Le suivi de modifications repose sur le principe de révisions. Chaque sauvegarde (transaction commitée) donne lieu à la création d'une nouvelle version qui regroupe l'ensemble des données modifiées.

Chaque entité auditée va être représentée par deux tables :

  • Une table pour les données actuelles de l'entité
  • Une table d'historique contenant le suivi des modifications de l'entité

L'exemple suivant montre les étapes à suivre pour mettre en place Hibernate Envers.

Lire la suite
Par Denis Sanchez, le 18 avril 2011

Squirrel SQL - Definition - Installation - Paramètrage

Utilisation et Configuration de Squirrel SQL

- Ce billet a pour but de présenter l’outil Squirrel SQL. Je tenais à remercier Sébastien H. de m'avoir fait découvrir cet outil ;-)

PRESENTATION DE SQUIRREL SQL

Squirrel

Qu’est-ce que SQUIRREL SQL?


Squirrel-SQL est un client SQL open source écrit en Java. Il permet au travers d'une interface graphique de consulter et de manipuler une base de données pourvue d'un pilote JDBC.

L'éditeur SQL propose une complétion de code (nom de table, de colonnes, ...).

Les données sont éditables dans l'interface graphique.

SQuirrel est extensible au travers de plug-in dont plusieurs sont fournis par défaut.

L’intérêt de SQuirreL n’est pas tant pour le design d’une base et des tables qui la composent, que pour l’étude et la consultation. Il est tout indiqué pour débugger des requêtes un peu complexes, pour analyser la structure des tables, ou pour pouvoir rapidement jeter un oeil aux triggers, aux procédures stockées et autres fonctions.

En un clic de souris, on peut obtenir le script de création d’une table, ou bien afficher les informations relatives à la configuration de la base de données. Dans le cas de l’utilisation de plusieurs bases de données (par exemple dans le cas d’une migration), il permet d’accéder à toutes ses bases depuis un seul et unique logiciel, et peut donc vous éviter d’ouvrir le client SQL de tel éditeur en plus du client SQL de tel autre éditeur...

Il est compatible avec toutes les databases disposant d'un driver JDBC. Il permet un accès en lecture, écriture ainsi que d'importer ou exporter des données sans devoir apprendre les outils spécifiques à cette base.

Il permet de tourner sur n’importe quel environnement (Linux , windows, Mac …) qui posséde une JVM.

Il est libre et open Source.

Lire la suite
Par Céline Gilet, le 24 mars 2011

Hibernate et la personnalisation des fichiers d'imports

Hibernate offre la possibilité de créer la structure d'un schéma de base de données directement à partir de la définition du mapping (fichiers hbm ou annotations selon les goûts) en positionnant la propriété "hibernate.hbm2ddl.auto" à "create" ou "create-drop".

A la fin de la création de la structure de la base de données, Hibernate vérifie si un fichier "import.sql" est présent dans le classpath. Si ce fichier est trouvé, les commandes SQL sont exécutées par le moteur hbm2dll.

Jusqu'à la version 3.5, il fallait que ce fichier s'appelle impérativement "import.sql".

Lire la suite
Par Thomas Strauss, le 31 décembre 2010

Débloquer sa base Informix

Voici 2 opérations qui peuvent servir à débloquer vos instances ou bases sous Informix:

  • Suppression de connexion utilisateur sur une base
  • Vider les logs Informix
Lire la suite
Par Thomas Strauss, le 23 décembre 2010

Gestion des dbspaces sous informix

Voici les commandes de base permettant la création et la gestion de ses dbspaces et sbpaces sous Informix.

Lire la suite
Par Denis Sanchez, le 02 septembre 2010

Comment transformer un fichier XML en SQL ?

Comment transformer un fichier XML en SQL ?

Telle est la problématique que je viens de rencontrer.

Je dispose d'un fichier XML de 160 Mo contenant quasiment 5 millions de lignes.

J'ai essayé d'importer le fichier avec Excel en mettant comme source de données mon fichier XML, mais celui-ci après 4 heures d'import a affiché un message d'erreur. Un collègue m'a alors suggéré de regarder du coté de XSLT.

XSLT est un langage qui permet de transformer un (ou plusieurs) document(s) XML en un autre document XML, HTML ou texte.

La plupart du temps, il est utilisé pour séparer les données (XML) du code/présentation (XSLT) pour un résultat final affichable (HTML). Une autre utilisation, moins répandue, est la conversion d'un schéma XML en un autre, afin de permettre l'interopérabilité entre des systèmes logiciels différents et qui communiquent par flux XML.

Dans notre cas nous voulons transformer du XML en SQL.

Lire la suite
Par Darko Stankovski, le 12 mars 2009

Intégrité référentielle et utilisation de fonctions SQL, ou comment rendre au SGBD une partie de ses responsabilités.

Faisons suite au dernier billet de Céline en restant dans le domaine des bases de données et des petites astuces connues de tous mais jamais utilisées. Intéressons nous à la gestion de l'intégrité référentielle et au calcul d'identifiants en laissant la base faire ce qu'elle sait faire et éviter un développement applicatif inutile.

Lire la suite
Par Céline Gilet, le 11 mars 2009

Requêtes de recherche sous Oracle, Informix, Postgresql : gestion de la casse et des accents

Pour qu’un outil de recherche soit performant et agréable à utiliser, il faut qu’il soit capable de retourner tous les éléments susceptibles de correspondre à ce que l’utilisateur recherche sans tenir compte de la casse et/ou des accents.

Sous Oracle, il est possible d’utiliser l'opérateur « TRANSLATE » pour gérer ce genre de problème.

SELECT * FROM TABLE
WHERE TRANSLATE(UPPER(monChamp),’ ÉÈÊËÀÄÂÎÏÔÖÛÜ’,’ EEEEAAAIIOOUU’))
LIKE TRANSLATE(UPPER(‘%requêtes%’), ‘ÉÈÊËÀÄÂÎÏÔÖÛÜ’, ‘EEEEAAAIIOOUU’);

Sous Informix, il est possible de passer par le « MATCHES » et les regexp.

SELECT * FROM TABLE
WHERE UPPER(monChamp) MATCHES ‘*R\[EÉÈÊËéèêë\]Q\[UÛÜûü\]\[EÉÈÊËéèêë\]T\[EÉÈÊËéèêë\]S*’;

Après un «MATCHES», il est possible d’utiliser les symboles suivants :

  • * : représente une chaîne de 0 ou plusieurs caractères
  • ? : représente un seul caractère
  • […] : contient un ensemble de caractères

Sous Postgresql, la solution passe par l'utilisation du « SIMILAR TO » et des regexp.

SELECT * FROM TABLE
WHERE UPPER(monChamp) SIMILAR TO ‘%R\[EÉÈÊËéèêë\]Q\[UÛÜûü\]\[EÉÈÊËéèêë\]T\[EÉÈÊËéèêë\]S%’;

En résultat de requête, nous aurons bien toutes les lignes contenant ‘requete’ sans tenir compte de la casse et/ou des accents :

  • requete
  • requête
  • REQUETE
  • REQUÊTE
  • ...