Table des matières 1) Introduction............................................................................................................1 2) Définitions .............................................................................................................2 2.1) Oracle (SGBD) ................................................................................................2 2.2) SQL Developer ................................................................................................2 2.3) MongoDB ........................................................................................................2 2.4) MongoDB Compass ........................................................................................2 2.5) JSON (JavaScript Object Notation) ................................................................2 2.6) Bash (Bourne-Again Shell) .............................................................................2 2.7) SQL*Plus .........................................................................................................2 3) Analyse de la Base de Données Oracle Préexistante ............................................3 4) Transition des données de la base de données Oracle vers MongoDB .................5 4.1) Installation de MongoDB ................................................................................5 4.2) Installation de MongoDB Compass ................................................................7 4.3) Conception et Implémentation du Script de Migration de Données ...............7 5) Conclusion ...........................................................................................................13 Table des figures Figure 1 - Modèle physique de données de la base de données ................................3 Figure 2 - Liste des utilisateurs ..................................................................................3 Figure 3 - Visualiseur d'instance de la base de données ............................................4 Figure 4 - Modèle conceptuel de données de la base de données .............................4 Figure 5 - Création du fichier de dépôt MongoDB....................................................5 Figure 6 - Configuration du fichier de dépôt MongoDB ...........................................5 Figure 7 - Installation des packages nécessaires à l'installation de MongoDB .........6 Figure 8 - Vérification de l'installation de MongoDB ...............................................6 Figure 9 - Lancement du service MongoDB .............................................................6 Figure 10 - Vérification du statut du service MongoDB mongod .............................6 Figure 11 - Téléchargement du MongoDB Compass ................................................7 Figure 12 - Installation des paquets requis pour MongoDB Compass ......................7 Figure 13 - Vérification de l'installation de MongoDB Compass .............................7 Figure 14 - Création du fichier de script Bash (script.sh)..........................................7 Figure 15 - Script Bash pour la transition des données de la base de données Oracle vers MongoDB ...........................................................................................................8 Figure 16 - Analyse du script Bash ............................................................................9 Figure 17 - Exécution du script Bash.......................................................................10 Figure 18 - Illustration du contenu d'un Fichier JSON ............................................10 Figure 19 - Lancement de MongoDB Compass ......................................................10 Figure 20 - Etablissement d'une connexion sur MongoDB Compass .....................11 Figure 21 - Collections et Documents - Collection Achats .....................................11 Figure 22 - Collections et Documents - Collection Jeux .........................................11 Figure 23 - Collections et Documents - Collection Joueurs ....................................12 1) Introduction La migration de données entre systèmes de gestion de bases de données constitue souvent un défi complexe, mais nécessaire, pour répondre aux évolutions technologiques et aux besoins spécifiques d'une organisation. Ce rapport se penche sur le processus de conversion d'une base de données Oracle vers MongoDB, en mettant l'accent sur l'utilisation de JSON et d'un script Bash pour automatiser cette transition. Les bases de données relationnelles, telles qu'Oracle, ont longtemps été les piliers de la gestion des données. Cependant, l'émergence de bases de données NoSQL, notamment MongoDB, offre de nouvelles perspectives en matière de flexibilité et d'évolutivité. La transition entre ces deux paradigmes nécessite une approche réfléchie, et c'est dans ce contexte que l'utilisation de JSON comme format intermédiaire et l'automatisation à l'aide de scripts Bash prennent tout leur sens. Ce rapport met en lumière les différentes étapes du processus de migration, en examinant de près chaque phase, de l'extraction des données d'Oracle à leur chargement dans MongoDB, tout en offrant un guide pratique pour ceux qui entreprennent des projets similaires. Page | 1 2) Définitions 2.1) Oracle (SGBD) Oracle Database, souvent simplement appelé Oracle, est un système de gestion de base de données relationnelle (SGBD) développé par Oracle Corporation. Il est largement utilisé pour le stockage, la récupération et la gestion de données dans des environnements professionnels. 2.2) SQL Developer Oracle SQL Developer est un environnement de développement intégré (IDE) fourni par Oracle Corporation, spécialement conçu pour travailler avec Oracle Database. Il permet aux développeurs d'interagir avec la base de données en utilisant SQL. 2.3) MongoDB MongoDB est un système de gestion de base de données NoSQL orienté document. Contrairement aux bases de données relationnelles, MongoDB stocke les données sous forme de documents BSON (Binary JSON), offrant une flexibilité accrue pour les applications modernes. 2.4) MongoDB Compass MongoDB Compass est l'interface graphique officielle de MongoDB. Cet outil facilite la visualisation, la requête et la gestion des données stockées dans une base MongoDB, offrant une expérience utilisateur intuitive. 2.5) JSON (JavaScript Object Notation) JSON est un format de données léger, lisible par les humains et facile à écrire. Il est couramment utilisé pour représenter des objets et des données structurées, notamment dans les échanges de données entre serveurs et clients. 2.6) Bash (Bourne-Again Shell) Bash est un interpréteur de commandes (shell) utilisé principalement dans les systèmes d'exploitation de type Unix. Il offre une interface en ligne de commande pour l'exécution de commandes et la création de scripts, facilitant l'automatisation des tâches système. 2.7) SQL*Plus SQL*Plus est une interface en ligne de commande fournie par Oracle pour interagir avec les bases de données Oracle. Elle permet d'exécuter des commandes SQL, de formater les résultats et d'automatiser des tâches à l'aide de scripts SQL. Page | 2 3) Analyse de la Base de Données Oracle Préexistante Précédemment, on a établi une base de données sur Oracle à l'aide de SQL Developer. Vous trouverez ci-dessous, son modèle physique de données. Figure 1 - Modèle physique de données de la base de données Avant d'entamer la création de cette base de données, nous avons créé les utilisateurs (CO, HR, SH) mentionnés dans la liste de la figure 2. Figure 2 - Liste des utilisateurs Page | 3 La figure 3 offre une visualisation détaillée de l'instance de la base de données à travers son visualiseur dédié. Cet outil graphique permet une compréhension approfondie des performances, des statistiques, et d'autres paramètres essentiels de la base de données, offrant ainsi une perspective visuelle précise de son état actuel. Figure 3 - Visualiseur d'instance de la base de données À présent, dans la figure 4, nous vous dévoilerons le modèle conceptuel de données qui reflète la structure et les relations inhérentes à cette base de données. Figure 4 - Modèle conceptuel de données de la base de données Page | 4 Explication : La table Achats a été convertie en une classe d'association nommée Acheter, avec la suppression des clés étrangères initialement présentes dans la table. En ce qui concerne les cardinalités, il a été déterminé qu'un joueur peut acheter un ou plusieurs jeux, tandis qu'un jeu peut être acheté par zéro ou plusieurs joueurs. Cette transformation a été effectuée en suivant les règles de passage d'un modèle physique à un modèle conceptuel, conformément à notre cas. 4) Transition des données de la base de données Oracle vers MongoDB 4.1) Installation de MongoDB On commence par la création d’un fichier de dépôt MongoDB en exécutant cette commande sur le terminal sudo nano /etc/yum.repos.d/mongodb-org-7.0.repo Figure 5 - Création du fichier de dépôt MongoDB On insère le contenu suivant dans le fichier puis on enregistre les modifications mongodb-org-7.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc Figure 6 - Configuration du fichier de dépôt MongoDB Page | 5 On télécharge les packages nécessaires à l'installation de MongoDB avec la commande sudo yum install -y mongodb-org Figure 7 - Installation des packages nécessaires à l'installation de MongoDB On vérifie que l’installation est bien effectuée avec la commande mongod --version Figure 8 - Vérification de l'installation de MongoDB On démarre le service MongoDB avec la commande sudo service mongod start Figure 9 - Lancement du service MongoDB On vérifie le statut du service MongoDB mongod en utilisant la commande sudo systemctl status mongod Figure 10 - Vérification du statut du service MongoDB mongod Page | 6 4.2) Installation de MongoDB Compass Premièrement, on télécharge MongoDB Compass en exécutant cette commande sur le terminal wget https://downloads.mongodb.com/compass/mongodb-compass-1.40.4.x86_64.rpm Figure 11 - Téléchargement du MongoDB Compass On procède à l'installation des paquets requis pour MongoDB Compass en utilisant la commande sudo yum install mongodb-compass-1.40.4.x86_64.rpm Figure 12 - Installation des paquets requis pour MongoDB Compass On vérifie l’installation de MongoDB Compass grâce à la commande mongodb-compass --version Figure 13 - Vérification de l'installation de MongoDB Compass 4.3) Conception et Implémentation du Script de Migration de Données On entame la création du fichier de script Bash script.sh en exécutant cette commande sur le terminal gedit script.sh Figure 14 - Création du fichier de script Bash (script.sh) On insère ce script Bash et on sauvegarde Page | 7 Figure 15 - Script Bash pour la transition des données de la base de données Oracle vers MongoDB Nous allons expliquer ce script tout en ajoutant des commentaires Bash. Il est crucial de noter que le script à exécuter correspond à la figure 15, tandis que le fichier de la figure 16 a pour unique but de servir à l'explication. Page | 8 Figure 16 - Analyse du script Bash Page | 9 On exécute le script avec la commande : sudo ./script.sh Figure 17 - Exécution du script Bash On peut constater que le script s'est bien exécuté ! Jetons un coup d’oeil sur un des trois fichiers JSON qui ont été créés lors de l’exécution de ce script, par exemple le fichier jeuxjsonfile.json. Figure 18 - Illustration du contenu d'un Fichier JSON Le format des données dans ces fichiers JSON est idéalement adapté pour une conversion vers MongoDB. On démarre MongoDB Compass pour voir notre base de données MongoDB en exécutant la commande mongodb-compass. Figure 19 - Lancement de MongoDB Compass Nous débuterons en examinant l'interface graphique de MongoDB Compass, où nous créerons une connexion en utilisant l'adresse locale et le port mentionnés précédemment dans le script. Enfin, nous procéderons en cliquant sur le bouton Connect. Page | 10 Figure 20 - Etablissement d'une connexion sur MongoDB Compass Une fois connecté, nous avons accès aux bases de données de la connexion, notamment celles prédéfinies telles que admin, config, et local. De plus, nous retrouvons notre base de données gamedb créée à l'aide du script, accompagnée de ses collections et des documents de chaque collection, comme on peut le constater dans ces figures ci-dessous. Figure 21 - Collections et Documents - Collection Achats Figure 22 - Collections et Documents - Collection Jeux Page | 11 Figure 23 - Collections et Documents - Collection Joueurs Page | 12 5) Conclusion La migration de données d'Oracle vers MongoDB constitue une démarche stratégique pour répondre aux évolutions technologiques et aux besoins spécifiques des organisations. Ce rapport a minutieusement examiné chaque phase de ce processus complexe, mettant en lumière l'utilisation de JSON comme format intermédiaire et l'automatisation au moyen de scripts Bash. Cette transition vers une base de données NoSQL n'est pas sans ses défis. La nature différenciée des modèles de données et des paradigmes de stockage peut présenter des obstacles, nécessitant une compréhension approfondie des schémas existants. La gestion des contraintes, des transactions, et l'adaptation aux spécificités de chaque projet sont autant de défis à relever. Bien que l'automatisation avec des scripts Bash offre une efficacité appréciable, la personnalisation demeure une nécessité, compte tenu de la diversité des données. Les avantages potentiels en termes de flexibilité et d'évolutivité justifient cependant ces efforts. En conclusion, ce rapport vise à offrir une vision exhaustive du processus de migration, en mettant en lumière les enjeux et les opportunités. Il se positionne comme une référence précieuse pour ceux qui entreprennent des projets similaires, offrant une compréhension approfondie de la transition entre bases de données. Page | 13