L 3 Module Libre Anne universitaire 2005 2006

  • Slides: 36
Download presentation
L 3 Module Libre Année universitaire 2005 -2006 Initiation à la Bioinformatique Jean-Michel RICHER

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

Deuxième Cours Les Bases de Données Relationnelles Application

Deuxième Cours Les Bases de Données Relationnelles Application

Plan 1. Introduction 2. Les bases de données relationnelles 3. Comment construire une base

Plan 1. Introduction 2. Les bases de données relationnelles 3. Comment construire une base de données 4. Manipuler les données

Volume d’Information Trop d’information tue l’information Les volumes de données générés par la bioinformatique

Volume d’Information Trop d’information tue l’information Les volumes de données générés par la bioinformatique sont colossaux : q Comment stocker l’information de manière non redondante q Comment extraire l’information utile Exemples : Gen. Bank, PDB

Gen. Bank comprehensive public database of nucleotide sequences and supporting bibliographic and biological annotation,

Gen. Bank 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

Evolution de Gen. Bank 2004 : 44, 575, 745, 176 paires de base 40,

Evolution de Gen. Bank 2004 : 44, 575, 745, 176 paires de base 40, 604, 319 séquences 2005 100 milliards de paires de bases 165. 000 organismes

PDB (Protein Data. Bank) The RCSB PDB provides a variety of tools and resources

PDB (Protein Data. Bank) 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

Attention ! Ce qu’une base de données n’est pas : § un fichier Word

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 § My. SQL

Attention ! On peut cependant organiser l’information de manière cohérente dans un fichier texte

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 TITLE COMPND COMPND … OXIDOREDUCTASE 27 -OCT-03 1 UR 5 STABILIZATION OF A TETRAMERIC MALATE DEHYDROGENASE BY 2 INTRODUCTION OF A DISULFIDE BRIDGE AT THE DIMER/DIMER 3 INTERFACE MOL_ID: 1; 2 MOLECULE: MALATE DEHYDROGENASE; 3 CHAIN: A, C; 4 EC: 1. 1. 1. 37; 5 ENGINEERED: YES; 6 MUTATION:

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

Structuration Une BDD = ensemble structuré de données enregistrées avec le minimum de redondance 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) Un SGBD = offre la possibilité de manipuler les représentations abstraites données, indépendamment de leur organisation et de leur implantation sur des supports physiques

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

Historique § Naissance des SGBD dans les années 60 Systè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)

Les Systèmes actuels § ORACLE gros systèmes (entreprises, administrations) § ACCESS PC sous Windows

Les Systèmes actuels § ORACLE gros systèmes (entreprises, administrations) § ACCESS PC sous Windows (MS Office) § My. SQL PC sous Windows ou Linux (gratuit) et bien d’autres encore… SQL-Server, Post. Gre. SQL, Interbase, sybase, DB 2

Organisation § un SGDB est composé de bases de données § une base de

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

Table, tuple, attribut Champs (attributs ou colonnes) fabricant table modèle fréquence Intel Pentium 4

Table, tuple, attribut Champs (attributs ou colonnes) fabricant table modèle fréquence Intel Pentium 4 3000 Intel Pentium M 2000 Intel Pentium D 3000 AMD Athlon XP 2800 AMD Athlon 64 X 2 3800 LE MODELE RELATIONNEL Tuples (enregistrements Ou lignes)

Notion de clé et d’index Un index est un mécanisme qui permet d’accéder rapidement

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.

Notion de clé et d’index Une clé primaire (aussi appelée identifiant) permet d’identifier de

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’étudiant nom + prénom

Elaboration d’une BD On passe par deux phases : 1) Création du Modèle Conceptuel

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)

Modèle Conceptuel de Données Il décrit l’organisation initiale des données sous forme d’entités et

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 Nom Prénom N°Etud … Cours Intitulé Nbr heures …

Modèle Conceptuel de Données Une association (ou relation) exprime une interaction entre une à

Modèle Conceptuel de Données Une association (ou relation) exprime une interaction entre une à plusieurs entités. (Une association peut comporter des attributs) Un étudiant suit 1 ou plusieurs cours Etudiant Cours suit 0. . n 1. . n Un cours est suivi par aucun ou plusieurs étudiants La Cardinalité d’un couple entité – association permet de préciser les nombres minimum et maximum de fois pour lesquelles une entité est concernée par l’association

Modèle Conceptuel de Données Exemple Créer un MCD pour modéliser le problème suivant :

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.

Modèle Conceptuel de Données Client 1. . 1 1. . n N°client Nom Prénom

Modèle Conceptuel de Données Client 1. . 1 1. . n N°client Nom Prénom Adresse passe 1. . n qté Commande Date Prix total contient 1. . n Produit N°produit Libellé Descriptif Prix unitaire Qté en stock

Modèle Logique des Données Comment passer du MCD au MLD ? 1) Les entités

Modèle Logique des Données Comment passer du MCD au MLD ? 1) Les entités sont traduites en tables Client Commande Produit cl_id co_id pr_id cl_nom co_date pr_libelle cl_prenom co_prix pr_qte_stock cl_adresse pr_prix_unit

Modèle Logique des Données Traduction des relations 1. . 1 <-> 1. . n

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

Modèle Logique des Données Traduction des relations 1. . n <-> 1. . n

Modèle Logique des Données Traduction des relations 1. . n <-> 1. . n Il faut créer une nouvelle table qui comprend les identifiants deux entités Comprod id_cmd Identifiant de commande id_prod Identifiant de produit qte Quantité commandée

Modèle Logique des Données Client Commande cl_id co_id cl_nom co_date cl_prenom co_prix cl_adresse co_id_client

Modèle Logique des Données Client Commande cl_id co_id cl_nom co_date cl_prenom co_prix cl_adresse co_id_client Comprod Au final on obtient 4 tables Produit id_cmd pr_id id_prod pr_libelle qte pr_qte_stock pr_prix_unit

Utilisation de My. SQL Sous Linux installer le serveur My. SQL Sous Windows installer

Utilisation de My. SQL Sous Linux installer le serveur My. SQL Sous Windows installer Easy. PHP ou LAMP (Linux Apache My. SQL Php Si on installe un serveur web on peut utiliser phpmyadmin qui est une interface web pour My. SQL

Utilisation de My. SQL Utilisation en ligne de commande My. SQL est un serveur

Utilisation de My. SQL Utilisation en ligne de commande My. SQL 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

Utilisation de My. SQL Utiliser la base de données appelée test mysql> use test;

Utilisation de My. SQL 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

Le Langage SQL (Structured Query Language) est un langage de manipulation et d’interrogation des

Le Langage 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 § Recher des enregistrements SELECT § Ajouter un nouvel enregistrement INSERT § Modifier des attributs d’un enregistrement UPDATE § Supprimer des enregistrements DELETE

Créer une table Exemple : création de la table produits CREATE TABLE produits (

Créer une table Exemple : création de la table produits 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’) );

Manipuler des enregistrements Insérer un enregistrement INSERT INTO produits VALUES ( 1, ‘Carte mère

Manipuler des enregistrements Insérer un enregistrement INSERT INTO produits VALUES ( 1, ‘Carte mère MSI Neo 2’, 5, 70 ); Modifier un enregistrement UPDATE produits SET pr_prix_unit = 75 WHERE pr_id = 1; Supprimer un enregistrement DELETE FROM produits WHERE pr_id = 1;

Recher des enregistrements Pour recher des informations on utilise la commande SELECT qui possède

Recher des enregistrements Pour recher des informations on utilise la commande SELECT qui possède le format suivant : SELECT attribut 1, attribu 2, … FROM table 1, table 2, … WHERE conditions ORDER BY attribut GROUP BY attribut

Recher des enregistrements Afficher tous les noms des clients SELECT cl_nom FROM clients; Afficher

Recher des enregistrements Afficher tous les noms des clients SELECT cl_nom FROM clients; Afficher tous les noms des clients par ordre alphabétique SELECT cl_nom FROM clients ORDER BY cl_nom; Afficher tous les noms des clients par ordre inverse SELECT cl_nom FROM clients ORDER BY cl_nom DESC;

Recher des enregistrements Afficher les commandes du client N° 2 SELECT * FROM commandes

Recher des enregistrements Afficher les commandes du client N° 2 SELECT * FROM commandes WHERE co_id_client=2; Afficher le montant total des commandes du client N° 2 SELECT SUM(co_prix_total) FROM commandes WHERE co_id_client=2;

Recher des enregistrements Afficher le libellé de tous les produits de la commande N°

Recher des enregistrements Afficher le libellé de tous les produits de la commande N° 1 SELECT pr_libelle FROM comprod, produits WHERE id_cmd=1 and id_prod=pr_id;