modélisation relationnelle

publicité
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
Téléchargement