TP1 : modélisation relationnelle UCBL - Bases de données pour la bioinformatique - janvier 2016 Objectif du TP : modéliser avec un outil et produire le code création des tables 1 Diagramme E/A (niveau conceptuel) Dans ce TP, nous allons d’abord utiliser un outil de modélisation basique, JMerise, afin de modéliser les concepts principaux de bioinformatique. • Téléchargez JMerise à l’adresse http://www.jfreesoft.com/JMerise/. • Décompressez l’archive que vous avez téléchargée. • Double-cliquez sur JMerise.jar ou saisir dans un terminal java -jar JMerise.jar. Questions : 1. Cliquez sur Nouveau pour ouvrir un nouveau modèle puis modélisez par un diagramme entité/association (formalisme Merise) les besoins suivants. Les laboratoires de recherche observent des transcripts sous une condition d’observation. Un transcript est décrit par un identifiant et un nom, et peut être observé par différents laboratoires et/ou sous différentes conditions. Un laboratoire est représenté par un identifiant, un nom et un acronyme optionnel. Un transcript appartient à un gène, que l’on décrit par un identifiant et un nom. Une maladie, dont on spécifie un identifiant et un nom, peut concerner un ou plusieurs gènes. Un même gène peut évidemment être affecté par plusieurs maladies. Un transcript peut coder pour une protéine. Une protéine, en plus d’un identifiant, est décrite par un nom, un poids, une longueur, une référence vers la base Uniprot et un ensemble de séquences biologiques. La bioinformatique cherche à détecter les interactions entre deux protéines. Une interaction comporte une identifiant, un type et sa référence vers la taxonomie PSI-MI. Les méthodes de détection sont décrites par un identifiant et un label, et sont organisées sous forme hiérarchique. Des chercheuses (identifiant, nom, pays) co-signent des articles pour lesquels l’ordre de signature importe. Chaque article possède un identifiant et des données relatives à son titre, le journal de publication, une année de publication, et une référence PubMed. Enfin un article est une citation pour une interaction, une protéine ou une maladie. 2. Dans la théorie, les laboratoires observent des transcripts. En pratique, on observe surtout des gènes. Que faudrait-il modifier dans votre diagramme pour prendre en compte cette contrainte ? 3. Dans la réalité, une protéine possède une séquence biologie primaire (souvent la plus longue). Des modifications appliquées à cette séquence primaire génèrent des séquences alternatives. Enfin, une maladie ne concerne pas simplement un gène, mais concerne plus précisément une protéine et une séquence biologique alternative. Comment feriez-vous pour modéliser ces nouvelles contraintes, et notamment quelle extension du diagramme E/A serait utile ? 2 Modèle relationnel et script SQL (niveaux logique et physique) Un outil de modélisation permet généralement de générer automatiquement les modèles suivants (logique et physique). En plus de gagner du temps, cela permet aussi de n’appliquer des modifications qu’au niveau conceptuel, les niveaux suivants étant simplement régénérés. Attention toutefois, les outils de modélisation ne sont 1 pas parfaits et le modèle relationnel / script SQL peuvent comporter des erreurs ou nécessiter des modifications. Questions : 1. Transformez le diagramme de l’exercice précédent (sans les contraintes supplémentaires) en modèle relationnel et en script SQL. Choisissez le SGBD de sortie (SQLite) dans les paramètres de configuration (onglet script de sortie). Il suffit ensuite de cliquer sur le bouton vérifier le modèle, puis convertir MCD. 2. Vérifiez les modèles obtenus, et notamment les choix de transformation par rapport aux cardinalités. 3 Import dans un SGBD Cette dernière partie est optionnelle et sera réalisée à nouveau lors du TP2. Quand vous avez votre script SQL, vous pouvez l’importer dans un SGBD. Dans le cadre de cette UE, nous utiliserons un SGBD embarqué (SQLite), qui ne nécessite pas de configuration. • Téléchargez SQLite Studio pour votre système à l’adresse http://sqlitestudio.pl/?act=download. • Lancez l’exécutable SQLite Studio (.exe, .sh ou .app) • Double-cliquez sur JMerise.jar ou saisir dans un terminal java -jar JMerise.jar. Questions : 1. SQLite stocke chaque base de données (BD) dans un fichier sur le disque. Cliquer sur Bases de données > Ajout d'une base de données. Dans la nouvelle boite de dialogue, il faut spécifier quel fichier contiendra la nouvelle BD. Cliquez sur l’icône + pour choisir le répertoire où se trouvera le fichier de la BD (e.g., sur votre compte) ainsi que le nom de ce fichier (e.g., bd-tp2). Vous pouvez tester la connexion (SQLite vérifie s’il peut lire/écrire dans ce fichier), puis valider. La nouvelle base de données apparait dans le panneau de gauche. 2. Ouvrez l’onglet SQL, et copier-collez le code SQL généré par JMerise. Sélectionnez l’ensemble du script dans l’éditeur et cliquez sur le bouton Exécuter. Vos tables doivent apparaitre dans le panneau de gauche (sous votre base de données). 3. Vous pouvez explorer les fonctionnalités de SQLite Studio afin de vous familiariser avec l’interface, voire écrire des requêtes SQL (mais vos tables ne contiennent pas d’instances !). 2