L3 Module Libre
Download
1 / 36

L3 Module Libre - PowerPoint PPT Presentation


  • 101 Views
  • Uploaded on

L3 Module Libre. Année universitaire 2005-2006. Initiation à la Bioinformatique. Jean-Michel RICHER. Deuxième Cours. Les Bases de Données Relationnelles Application. Plan. Introduction Les bases de données relationnelles Comment construire une base de données

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' L3 Module Libre' - rodney


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

L3 Module Libre

Année universitaire 2005-2006

Initiation à la Bioinformatique

Jean-Michel RICHER


Deuxième Cours

Les Bases de Données

Relationnelles

Application


Plan

  • Introduction

  • Les bases de données relationnelles

  • Comment construire une base de données

  • 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 sont colossaux :

  • Comment stocker l’information de manière non redondante

  • Comment extraire l’information utile

    Exemples : GenBank, PDB


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


Evolution de GenBank

2004 :

44,575,745,176 paires de base

40,604,319 séquences

2005

100 milliards de paires de bases

165.000 organismes


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


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


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:


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 des 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 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 (MS Office)

  • MySQL

  • PC sous Windows ou Linux (gratuit)

  • et bien d’autres encore… SQL-Server, PostGreSQL,

  • Interbase, sybase, DB2


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

BD

BD

tables


Table, tuple, attribut

Champs

(attributs ou colonnes)

fabricant

modèle

fréquence

Intel

Pentium 4

3000

Tuples

(enregistrements

Ou lignes)

Intel

Pentium M

2000

table

Intel

Pentium D

3000

AMD

Athlon XP

2800

AMD

Athlon 64 X2

3800

LE MODELE RELATIONNEL


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 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 :

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

    • 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 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

Nom

Prénom

N°Etud

Intitulé

Nbr heures


Un étudiant suit 1 ou plusieurs cours

Un cours est suivi par aucun ou plusieurs étudiants

Modèle Conceptuel de Données

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

suit

Etudiant

Cours

0..n

1..n

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 :

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

Produit

1..1

1..n

N°client

Nom

Prénom

Adresse

N°produit

Libellé

Descriptif

Prix unitaire

Qté en stock

passe

contient

qté

Commande

1..n

1..n

Date

Prix total


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

cl_nom

cl_prenom

cl_adresse

co_id

co_date

co_prix

pr_id

pr_libelle

pr_qte_stock

pr_prix_unit


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

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


Client

Commande

Produit

cl_id

cl_nom

cl_prenom

cl_adresse

co_id

co_date

co_prix

co_id_client

pr_id

pr_libelle

pr_qte_stock

pr_prix_unit

Comprod

id_cmd

id_prod

qte

Modèle Logique des Données

Au final

on obtient

4 tables


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 phpmyadmin

qui est une interface web pour MySQL


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


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


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


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 MSI Neo2’, 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;


Rechercher des enregistrements

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

SELECT attribut1, attribu2, …

FROM table1, table2, …

WHERE conditions

ORDER BY attribut

GROUP BY attribut


Rechercher 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;


Afficher le montant total des commandes du client N° 2

SELECT SUM(co_prix_total)

FROM commandes

WHERE co_id_client=2;

Rechercher des enregistrements

Afficher les commandes du client N° 2

SELECT *

FROM commandes

WHERE co_id_client=2;


Rechercher 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;


ad