Dossier Technique – Interoperabilite I. Contexte Dans le cadre de la fusion de 2 universités, on souhaite réunir les bases de données de ces universités en une seule. Pour ce faire, nous réalisé un script qui automatise cette tâche. II. Script de fusion A. Présentation Ce script de fusion que nous avons réalisé unit deux bases de données MySql en une seule. Le langage de programmation utilisé est le php. Voici le schéma de fonctionnement de la fusion : B. Ressources / planification Voici les ressources humaines utilisées, ainsi que la planification des tâches : Philippe ZDZIOBECK Adler MOUKOUBOULOU Sofiane KAMEL Etape n°1 - Constution du groupe Identification du problème/étapes/contraintes Choix du langage Philippe Adler Sofiane Etape n°2 - Création des scripts (2 bases de données) Création de l’interface en PHP Philippe Adler Etape n°3 - Avancement du script de fusion des bases Philippe Etape n°4 - Dernières retouches du script Finition du projet Philippe C. Base de Données utilisée Une première contrainte s’est posée : nous n’avons eu accès qu’à une seule Base de données sur notre espace étudiant. Nous avons donc utilisé cette BDD unique (zdp97902) ; et pour simuler plusieurs bases, nous avons préfixé les tables. Les tables de la base fictive 1 sont donc préfixées de M1_, alors que les tables de la seconde bases sont préfixées de M2_. Voici, ci-dessous, le schéma des 2 bases de données D. Problèmes à résoudre Voici ci-dessous les différents problèmes que le script traite, dans l’ordre d’essai. Problème rencontré Solution Même nom de table Fusion de ces 2 tables SINON Noms de table synonymes SINON Noms de tables légèrement différents Recherche dans une table de synonymes et fusion si résultat correspondant Fonction PHP strspn qui permet de comparer les caractères communs Exemple M1_Etudiant M2_Etudiant M1_Professeur M2_Enseignant M1_SalleClasse M2_SalleCours Intégration des tables : voici les différents cas de recherche de champs communs Problème rencontré SINON Solution Même nom de champ Fusion de ces 2 champs Noms de champs différents Mais contenu commun Matching avec l’équivalent dans l’autre table Exemple M1_Etudiant.nom M2_Etudiant.nom M1_SalleClasse.libellé M2_SalleCours.nom Note : La gestion des doublons se fera automatiquement par la création d’une clé primaire sur tous les champs. Ainsi, on ne pourra pas avoir 2 fois le même contenu de ligne. E. Fonctionnement de l’interface Le script est entièrement stocké sur une page php (l’évolution des états s’effectue via l’évolution d’une variable). Ce script est composé de 2 parties : - Une partie administration, qui permet : D’insérer un fichier de base de données .sql De nettoyer la base de données D’exporter la base dans un fichier .sql - Une partie fusion, qui parmet de gérer la fusion des 2 bases. Voici ci-dessous le scénario type de la réunion de 2 bases en une :