36
L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Embed Size (px)

Citation preview

Page 1: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

L3 Module Libre

Année universitaire 2005-2006

Initiation à la Bioinformatique

Jean-Michel RICHER

Page 2: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Deuxième Cours

Les Bases de DonnéesRelationnelles

Application

Page 3: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Plan

1. Introduction

2. Les bases de données relationnelles

3. Comment construire une base de données

4. Manipuler les données

Page 4: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Volume d’Information

Trop d’information tue l’information

Les volumes de données générés par la bioinformatique sont colossaux :

Comment stocker l’information de manière non redondante Comment extraire l’information utile

Exemples : GenBank, PDB

Page 5: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

GenBank

GenBank

comprehensive public database of nucleotide sequences and supporting bibliographic and biological annotation, built and distributed by the National Center for Biotechnology Information (NCBI), a division of the National Library of Medicine (NLM), located on the campus of the US National Institutes of Health (NIH) in Bethesda, Maryland.

http://www.ncbi.nlm.nih.gov/Entrez/

http://www.ncbi.nlm.nih.gov/Genbank/genbankstats.html

Page 6: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Evolution de GenBank

2004 :

44,575,745,176 paires de base40,604,319 séquences

2005

100 milliards de paires de bases165.000 organismes

Page 7: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

PDB

PDB (Protein DataBank)

The RCSB PDB provides a variety of tools and resources for studying the structures of biological macromolecules and their relationships to sequence, function, and disease

Page 8: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER
Page 9: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Attention !

Ce qu’une base de données n’est pas :

un fichier Word un fichier Excel un fichier texte

Une base de données utilise un SGBD (Système de Gestion de Base de Données) pour manipuler les données :

Oracle Access MySQL

Page 10: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Attention !

On peut cependant organiser l’information de manière cohérente dans un fichier texte (ex PDB) pour l’insérer dans une base de données ou la traiter ultérieurement

HEADER OXIDOREDUCTASE 27-OCT-03 1UR5 TITLE STABILIZATION OF A TETRAMERIC MALATE DEHYDROGENASE BY TITLE 2 INTRODUCTION OF A DISULFIDE BRIDGE AT THE DIMER/DIMER TITLE 3 INTERFACE COMPND MOL_ID: 1; COMPND 2 MOLECULE: MALATE DEHYDROGENASE; COMPND 3 CHAIN: A, C; COMPND 4 EC: 1.1.1.37; COMPND 5 ENGINEERED: YES; COMPND 6 MUTATION: …

Page 11: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Structuration

Pour pouvoir gérer des données il faut les stocker de manière structurée pour :

identifier clairement les données (champs, tables) pouvoir y accéder rapidement (index)

Une BDD = ensemble structuré de données enregistrées avec le minimum de redondance

Un SGBD = offre la possibilité de manipuler les représentations abstraites des données, indépendamment de leur organisation et de leur implantation sur des supports physiques

Page 12: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Historique

Naissance des SGBD dans les années 60Systèmes propriétaires (IBM)

1970 T. Codd chercheur chez IBM propose Le modèle relationnel

Tables Algèbre relationnelle

Démarche cohérente et unifiée concernant

Le LDD (Langage de Description des Données) Le LMD (Langage de Manipulation des Données)

Page 13: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Les Systèmes actuels

ORACLEgros systèmes (entreprises,

administrations)

ACCESSPC sous Windows (MS Office)

MySQLPC sous Windows ou Linux (gratuit)

et bien d’autres encore… SQL-Server, PostGreSQL,Interbase, sybase, DB2

Page 14: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Organisation

un SGDB est composé de bases de données

une base de données est composée de tables

chaque table est composée de champs

SGBD

BD

tables

BD BD

Page 15: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

fabricant modèle fréquence

Intel

Intel

Intel

AMD

AMD

Pentium 4

Pentium M

Pentium D

Athlon XP

Athlon 64 X2

3000

2000

3000

2800

3800

Champs(attributs ou colonnes)

Tuples(enregistrementsOu lignes)

table

LE MODELE RELATIONNEL

Table, tuple, attribut

Page 16: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Notion de clé et d’index

Un index est un mécanisme qui permet d’accéder rapidement à l’information

Exemple : on possède un fichier de clients et on désire afficher les noms des clients qui habitent Angers

on ne possède pas d’index sur le champ ville : il faut réaliser une recherche séquentielle on possède un index sur le champ ville : il n’est nécessaire de parcourir tous les enregistrements.

Remarque : on peut créer des index sur plusieurs champs.

Page 17: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Notion de clé et d’index

Une clé primaire (aussi appelée identifiant) permet d’identifier de manière unique un enregistrement (tuple)

Exemples :numéro de client numéro d’étudiantnom + prénom

Page 18: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Elaboration d’une BD

On passe par deux phases :

1) Création du Modèle Conceptuel des Données (MCD)

2) traduction du MCD en Modèle Logique des Données (MLD)

Page 19: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Modèle Conceptuel de Données

Il décrit l’organisation initiale des données sous forme d’entités et de relations

Une entité est un être ou un objet (concret ou abstrait) qui peut être distingué d’un autre objet.

Une entité est composée de champs (ou attributs)

Etudiant Cours

NomPrénomN°Etud…

IntituléNbr heures…

Page 20: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Modèle Conceptuel de Données

Une association (ou relation) exprime une interaction entre une à plusieurs entités. (Une association peut comporter des attributs)

Etudiant Courssuit

La Cardinalité d’un couple entité – association permet de préciserles nombres minimum et maximum de fois pour lesquelles une entitéest concernée par l’association

1..n0..n

Un étudiant suit 1 ou plusieurs cours

Un cours est suivi par aucun ou plusieurs étudiants

Page 21: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Modèle Conceptuel de Données

Exemple

Créer un MCD pour modéliser le problème suivant :

Une société de vente par correspondance met en vente des produits.

Chaque produit est identifié par un numéro, un prix unitaire et une quantité en stock.

Un client identifié par un numéro de client, un nom, un prénom et une adresse passe commande à une date donnée d’un ensemble de produits.

Page 22: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Modèle Conceptuel de Données

Client

Commande

Produit

1..n

1..n

1..n

1..1

DatePrix total

qtépasse

N°clientNom

PrénomAdresse

N°produitLibellé

DescriptifPrix unitaireQté en stockcontient

Page 23: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Modèle Logique des Données

Comment passer du MCD au MLD ?

1) Les entités sont traduites en tables

Client

cl_id

cl_nom

cl_prenom

cl_adresse

Commande Produit

co_id

co_date

co_prix

pr_id

pr_libelle

pr_qte_stock

pr_prix_unit

Page 24: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Modèle Logique des Données

Traduction des relations 1..1 <-> 1..n

L’identifiant de l’entité de cardinalité 1..1 est ajouté aux attributs de l’entité de cardinalité 1..n

Commande

co_id

co_date

co_prix

co_id_client

Page 25: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Modèle Logique des Données

Traduction des relations 1..n <-> 1..n

Il faut créer une nouvelle table qui comprend les identifiants des deux entités

Comprod

id_cmd

id_prod

qte

Identifiant de commande

Identifiant de produit

Quantité commandée

Page 26: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Modèle Logique des Données

Au final on obtient 4 tables

Client

cl_id

cl_nom

cl_prenom

cl_adresse

Commande

co_id

co_date

co_prix

co_id_client

Produit

pr_id

pr_libelle

pr_qte_stock

pr_prix_unit

Comprod

id_cmd

id_prod

qte

Page 27: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Utilisation de MySQL

Sous Linux

installer le serveur MySQL

Sous Windows

installer EasyPHP ou LAMP (Linux Apache MySQL Php

Si on installe un serveur web on peut utiliser phpmyadminqui est une interface web pour MySQL

Page 28: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Utilisation de MySQL

Utilisation en ligne de commande

MySQL est un serveur qui utilise un système de connexion par login et mot de passe

mysql –h richer –u audrey –p

-h (host) spécifie le nom du serveur -u (user) nom de l’utilisateur -p (password) il faut saisir un mot de passe

Page 29: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Utilisation de MySQL

Utiliser la base de données appelée test

mysql> use test;

Donner la liste des table de test

mysql> show tables;…

On préférera utiliser phpmyadmin qui ne demande aucune connaissance préalable des commandes de SQL

Page 30: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Le Langage SQL

SQL (Structured Query Language) est un langage de manipulation et d’interrogation des bases de données.Il fait office de LDD et LMD.

Il permet notamment de :

Créer une base de données CREATE Créer une table CREATE Rechercher des enregistrements SELECT Ajouter un nouvel enregistrement INSERT Modifier des attributs d’un enregistrement UPDATE Supprimer des enregistrements DELETE

Page 31: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Créer une table

CREATE TABLE produits (pr_id int(11) NOT NULL auto_increment,pr_libelle varchar(50) NOT NULL default ‘’,pr_qte_stock int(11) NOT NULL default ‘0’,pr_prix_unit float NOT NULL default ‘0’,PRIMARY KEY (‘pr_id’),KEY ‘pr_libelle’ (‘pr_libelle’));

Exemple : création de la table produits

Page 32: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Manipuler des enregistrements

INSERT INTO produits VALUES ( 1, ‘Carte mère MSI Neo2’, 5, 70 );

UPDATE produits SET pr_prix_unit = 75WHERE pr_id = 1;

DELETE FROM produitsWHERE pr_id = 1;

Insérer un enregistrement

Modifier un enregistrement

Supprimer un enregistrement

Page 33: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Rechercher des enregistrements

SELECT attribut1, attribu2, … FROM table1, table2, …WHERE conditions

ORDER BY attributGROUP BY attribut

Pour rechercher des informations on utilise la commande SELECT qui possède le format suivant :

Page 34: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Rechercher des enregistrements

Afficher tous les noms des clients

SELECT cl_nomFROM clients;

Afficher tous les noms des clients par ordre alphabétique

SELECT cl_nomFROM clientsORDER BY cl_nom;

Afficher tous les noms des clients par ordre inverse

SELECT cl_nomFROM clientsORDER BY cl_nom DESC;

Page 35: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Rechercher des enregistrements

Afficher les commandes du client N° 2

SELECT * FROM commandesWHERE co_id_client=2;

Afficher le montant total des commandes du client N° 2

SELECT SUM(co_prix_total) FROM commandesWHERE co_id_client=2;

Page 36: L3 Module Libre Année universitaire 2005-2006 Initiation à la Bioinformatique Jean-Michel RICHER

Rechercher des enregistrements

Afficher le libellé de tous les produits de la commande N° 1

SELECT pr_libelle FROM comprod, produitsWHERE id_cmd=1 and id_prod=pr_id;