Bibliographie Introduction à la bioinformatique



Documents pareils
COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

SQL Historique

Information utiles. webpage : Google+ : digiusto/

Langage SQL : créer et interroger une base

CREATION WEB DYNAMIQUE

OpenPaaS Le réseau social d'entreprise

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Les bases de données

Introduction aux bases de données: application en biologie

Olivier Mondet

Bases de données relationnelles

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Le langage SQL (première partie) c Olivier Caron

Création et Gestion des tables

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

PHP 5. La base de données MySql. A. Belaïd 1

Le Langage SQL version Oracle

Présentation du module Base de données spatio-temporelles

Bases de Données relationnelles et leurs systèmes de Gestion

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

1 Introduction et installation

1/ Présentation de SQL Server :

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Mysql avec EasyPhp. 1 er mars 2006

Le Langage De Description De Données(LDD)

Les BASES de DONNEES dans WampServer

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

La gestion de données dans le cadre d une application de recherche d alignement de séquence : BLAST.

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

16H Cours / 18H TD / 20H TP

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

I. MySQL : Serveur et SGBD

Partie 0 : Gestion des tablespace et des utilisateurs... 3

La base de données dans ArtemiS SUITE

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Les bases de données Page 1 / 8

TP Contraintes - Triggers

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Partie II Cours 3 (suite) : Sécurité de bases de données

Base de données bibliographiques Pubmed-Medline

Pratique et administration des systèmes

Bases de données élémentaires Maude Manouvrier

Bases de données et sites WEB Licence d informatique LI345

Devoir Data WareHouse

Objectifs du TP : Initiation à Access

Cours Bases de données

A QUOI SERVENT LES BASES DE DONNÉES?

Encryptions, compression et partitionnement des données

Auto-évaluation Oracle: cours de base

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Extraction d information des bases de séquences biologiques avec R

1. Base de données SQLite

Notes de cours : bases de données distribuées et repliquées

Bases de données et sites WEB

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Module Analyse de Génomes Master 2 module FMBS 326 Immunoinformatique

Gestion de base de données

Formavie Différentes versions du format PDB Les champs dans les fichiers PDB Le champ «ATOM» Limites du format PDB...

GMIN206 Info. Biologique et Outils bioinformatiques. Elodie Cassan

Introduction au Système de Gestion de Base de Données et aux Base de Données

! Séquence et structure des macromolécules. " Séquences protéiques (UniProt) " Séquences nucléotidiques (EMBL / ENA, Genbank, DDBJ)

Base de données relationnelle et requêtes SQL

Bases de données Outils de gestion

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Master Exploration Informatique des données DataWareHouse

Compétences Business Objects

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

Chapitre 5 LE MODELE ENTITE - ASSOCIATION

et Active Directory Ajout, modification et suppression de comptes, extraction d adresses pour les listes de diffusion

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Le langage SQL Rappels

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

Historisation des données

Pour les débutants. langage de définition des données

I4 : Bases de Données

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Gestion des utilisateurs et de leurs droits

Introduction aux Bases de Données 2004/2005

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

MySQL - Réplication. Fichiers de relais et de statut de la réplication. Mise en place de la réplication

Cours Bases de données 2ème année IUT

MODE OPERATOIRE OPENOFFICE BASE

TP11 - Administration/Tuning

Cours d initiation à la programmation en C++ Johann Cuenin

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Bases de Données Avancées

FileMaker 13. Guide de référence SQL

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Charger une structure Comment ouvrir un fichier avec VMD? Comment charger un fichier PDB directement depuis la Protein Data Bank? Comment charger un

Transcription:

Bibliographie Introduction à la bioinformatique 5. Les bases de données biologiques, SQL et la programmation Python/C++ Zvelebil et Baum, Understanding bioinformatics Beighley, Head First SQL Chari, A tutorial on DB concepts, SQL using MySQL at http://www.atlasindia.com/sql.htm MySQL++ at http://tangentsoft.net/mysql++/ Python MySQL : http://sourceforge.net/ projects/mysql-python/ 1 2 Objectifs Expliquer pourquoi les bases de données sont importantes pour la bioinformatique Expliquer les structures et les types de bases de données différents Savoir où trouver quelles données biologiques Être capable de construire une base de données relationnelle Savoir comment normaliser des données pour une base de données relationnelle Être capable d utiliser des bibliothèques de programmation pour connecter un logiciel à une base de données Carte: traiter des bases de données 3 4

Les bases de données A cause de l explosion des données (séquences et structures) les bases de données (BD) ont joué un rôle important dés le début Collectionner les données dans un BD permet l analyse de ces données pour trouver des similarités La structure d une base de données Une BD est composé d un groupe de fichiers (flat-files) ou des tableaux (Base de données relationnelle) La naissance de la bioinformatique Parce que les données sont importantes pour l analyse et parce que les données sont disponibles pour tous le monde, on doit s assurer de la qualité des données Ces fichiers ou tableaux sont composés de plusieurs articles (records) et attributs (fields or attributes) 5 6 Fichier pour des séquences Fichier pour des séquences 2 Le format le plus bien connu pour les séquences est le format FASTA La première ligne (après le >) fournit l information au sujet du séquence La deuxième partie fournit le séquence (ici d une protéine) >sp P06241 FYN_HUMAN Proto-oncogene tyrosine-protein kinase Fyn OS=Homo sapiens GN=FYN PE=1 SV=3 MGCVQCKDKEATKLTEERDGSLNQSSGYRYGTDPTPQHYPSFGVTSIPNYNNFHAAGGQG LTVFGGVNSSSHTGTLRTRGGTGVTLFVALYDYEARTEDDLSFHKGEKFQILNSSEGDWW EARSLTTGETGYIPSNYVAPVDSIQAEEWYFGKLGRKDAERQLLSFGNPRGTFLIRESET TKGAYSLSIRDWDDMKGDHVKHYKIRKLDNGGYYITTRAQFETLQQLVQHYSERAAGLCC RLVVPCHKGMPRLTDLSVKTKDVWEIPRESLQLIKRLGNGQFGEVWMGTWNGNTKVAIKT LKPGTMSPESFLEEAQIMKKLKHDKLVQLYAVVSEEPIYIVTEYMNKGSLLDFLKDGEGR ALKLPNLVDMAAQVAAGMAYIERMNYIHRDLRSANILVGNGLICKIADFGLARLIEDNEY TARQGAKFPIKWTAPEAALYGRFTIKSDVWSFGILLTELVTKGRVPYPGMNNREVLEQVE RGYRMPCPQDCPISLHELMIHCWKKDPEERPTFEYLQSFLEDYFTATEPQYQPGENL http://pir.uniprot.org/help/fasta-headers Le fichier qui est utilisé par UniProt ajoute des informations supplémentaires... DR EMBL; M14676; AAA36615.1; -; mrna. DR EMBL; M14333; AAC08285.1; -; mrna. DR EMBL; S74774; AAB33113.2; -; mrna. DR EMBL; Z97989; CAI22300.1; -; Genomic_DNA. FT TURN 430 432 DR EMBL; Z97989; CAI22301.1; -; Genomic_DNA. FT HELIX 435 438 DR EMBL; BC032496; AAH32496.1; -; mrna. FT HELIX 445 460 DR IPI; IPI00166845; -. FT HELIX 472 481 DR IPI; IPI00219012; -. FT HELIX 496 502 DR IPI; IPI00640091; -. FT HELIX 507 509 DR PIR; A24314; TVHUSY. FT HELIX 513 521 ID FYN_HUMAN DR Reviewed; RefSeq; NP_002028.1; 537 AA. -. SQ SEQUENCE 537 AA; 60762 MW; 4A1E443A4B5A0977 CRC64; AC P06241; Q16248; Q5R3A6; DR Q5R3A7; RefSeq; Q8N5D7; NP_694592.1; -. MGCVQCKDKE ATKLTEERDG SLNQSSGYRY GTDPTPQHYP SFGVTSIPNY NNFHAAGGQG DT 01-JAN-1988, integrated DR into RefSeq; UniProtKB/Swiss-Prot. NP_694593.1; -. LTVFGGVNSS SHTGTLRTRG GTGVTLFVAL YDYEARTEDD LSFHKGEKFQ ILNSSEGDWW DT 23-JAN-2007, sequence DR version UniGene; 3. Hs.390567; -. EARSLTTGET GYIPSNYVAP VDSIQAEEWY FGKLGRKDAE RQLLSFGNPR GTFLIRESET DT 15-DEC-2009, entry version DR PDB; 139. 1A0N; NMR; -; B=82-148. TKGAYSLSIR DWDDMKGDHV KHYKIRKLDN GGYYITTRAQ FETLQQLVQH YSERAAGLCC DE RecName: Full=Proto-oncogene DR PDB; tyrosine-protein 1AOT; NMR; -; F=143-248. kinase RLVVPCHKGM PRLTDLSVKT KDVWEIPRES LQLIKRLGNG QFGEVWMGTW NGNTKVAIKT Fyn; DR PDB; 1AOU; NMR; -; F=143-248. LKPGTMSPES FLEEAQIMKK LKHDKLVQLY AVVSEEPIYI VTEYMNKGSL LDFLKDGEGR DE EC=2.7.10.2; DR PDB; 1AVZ; X-ray; 3.00 A; C=85-140. ALKLPNLVDM AAQVAAGMAY IERMNYIHRD LRSANILVGN GLICKIADFG LARLIEDNEY DE AltName: Full=p59-Fyn; DR PDB; 1AZG; NMR; -; B=82-148. TARQGAKFPI KWTAPEAALY GRFTIKSDVW SFGILLTELV TKGRVPYPGM NNREVLEQVE DE AltName: Full=Protooncogene DR PDB; Syn; 1EFN; X-ray; 2.50 A; A/C=86-143. RGYRMPCPQD CPISLHELMI HCWKKDPEER PTFEYLQSFL EDYFTATEPQ YQPGENL DE AltName: Full=SLK; DR PDB; 1FYN; X-ray; 2.30 A; A=81-142. // GN Name=FYN; DR PDB; 1G83; X-ray; 2.60 A; A/B=82-245. http://www.ebi.ac.uk/ipi/uniprotformat.html OS Homo sapiens (Human). DR PDB; 1M27; X-ray; 2.50 A; C=84-144. OC Eukaryota; Metazoa; Chordata; DR PDB; Craniata; 1NYF; NMR; Vertebrata; -; A=82-148. Euteleostomi; DR PDB; 1NYG; NMR; -; A=82-148. OC Mammalia; Eutheria; Euarchontoglires; DR PDB; 1SHF; X-ray; Primates; 1.90 A; A/B=84-142. Haplorrhini; DR PDB; 1ZBJ; NMR; -; A=84-141. OC Catarrhini; Hominidae; DR Homo. PDB; 2DQ7; X-ray; 2.80 A; X=261-536. OX NCBI_TaxID=9606; UNIPROT : http://www.uniprot.org/uniprot/p06241.txt...... 7 8

Les Bases de données relationnelle Les Bases de données relationnelle 2 Les fichiers-plats sont faciles à créer mais (comme dans l exemple précédent) difficile à consulter. Pour la consultation d une BD relationnelle ont utilise un langage d'interrogation : SQL (Structured Query Language) Les base de données (BD) relationnelle sont employées couramment pour des données biologiques Les données sont enregistrées dans un ensemble de tableaux qui sont liés par un champ partagé, appelé une clé SELECT protein-code, protein-name FROM protab1 WHERE species-origin= Bovine P100I Hemoglobin 9 10 Les Bases de données relationnelle 3 Autres formats SELECT protab1.protein-code, protab1.protein-name, protab2.protein-sequence FROM protab1,protab2 WHERE protab1.protein-code = protab2.protein-code AND protab2.protein-code = P1002 P1002 Hemoglobin MDKTSHGFEIKLLTPKKLQQWLMIAIYFGHT... Le XML (extensible markup language) est un outil général pour le stockage de données et de l information Comme le HTML, ce langage utilise des indicateurs qui entourent des sections de données Différent du HTML, XML offre la possibilité de créer des indicateurs arbitraires XQuery est utilisé pour l interrogation des fichier de XML <?xml version='1.0' encoding='utf-8'?> <uniprot xmlns="http://uniprot.org/uniprot" xmlns:xsi="http:// www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http:// uniprot.org/uniprot http://www.uniprot.org/support/docs/ uniprot.xsd"> <entry dataset="swiss-prot" created="1988-01-01" modified="2009-12-15" version="139"> <accession>p06241</accession> <accession>q16248</accession> <accession>q5r3a6</accession> <accession>q5r3a7</accession> <accession>q8n5d7</accession> <name>fyn_human</name> <protein> <recommendedname ref="1"> <fullname>proto-oncogene tyrosine-protein kinase Fyn</fullName> </recommendedname> <alternativename> <fullname>p59-fyn</fullname> </alternativename> <alternativename> <fullname>protooncogene Syn</fullName> </alternativename> <alternativename> <fullname>slk</fullname> </alternativename> </protein> <gene> <name type="primary">fyn</name> </gene> <organism key="2"> <name type="scientific">homo sapiens</name> <name type="common">human</name> <dbreference type="ncbi Taxonomy" id="9606" key="3" />... 11 12

Types des bases de données Types de bases de données 2 Parfois on fait la distinction entre des bases de données qui sont composées de données primaires ou secondaires (dérivées) Les bases de données primaires contiennent les résultats expérimentaux bruts ou la première incitation pour rendre des données publiques Dans UniProt les données sont la séquence et son identification Tous les références vers d autres bases de données ou sur les interactions/fonctions des protéines sont des annotations ex. GenBank, UniProt, RCSB protein database,... Les bases de données secondaires contiennent des résultats des analyses de ressources primaires Les données sont les informations principales de la base de données et toutes les informations additionnelles sont des annotations ex. CATH, PFAM, SCOP, SNPeffect, BriX... 13 Quelles bases de données? Ontologies Parce que les bases de données font la combinaison entre des données différentes provenant de différents lieux et que chaque ressource utilise des mots différents, on a besoin d une spécification explicite des mots et des rapports entre eux pour le partage des données : ontologie Le journal Nucleic Acids Research (NAR) compile une liste des bases de données (le Molecular Biology Database Collection) qui est divisée en 14 catégories L ontologie de gènes (GO) L ontologie MOA 14 15 16

Exemple de séquences de l ADN : GenBank Exemple de séquences de protéines : UniProt http://www.ncbi.nlm.nih.gov/ Genbank/ http://www.uniprot.org/ UniParc est une base de données nonredondante de toutes les séquences de protéines disponibles publiquement UniProtKB est la base de données centrale avec des annotations riches et précises UniRef (100,90 et 50) sont des ensembles de séquences qui étaient dérivées en utilisant des différents degrés de similarité (100%, 90% et 50%) 17 Exemple des génomes de vertébrés et d autres espèces eucaryotes: ENSEMBL Exemple des structures: RCSB protein database http://www.ensembl.org/ index.html 18 http://www.rcsb.org/pdb/home/ home.do 19 20

Exemple interactions entre des protéines: MINT Exemple classification des protéines: INTERPRO http://mint.bio.uniroma2.it/mint/ Welcome.do 21 22 La qualité des données La qualité des données 2 C est important que les données ne mènent pas à des conclusions incorrectes Parfois on ajoute une mesure pour la qualité et le fiabilité des données Parfois le même travail est fait plusieurs fois et ces résultats font partie de la même base de données : il y de la redondance Cette redondance pourrait introduire un déplacement dans les résultat d une analyse par exemple: Si 50% des séquences dans une base de données ont une similarité de plus de 90%, l analyse des fréquences d acides aminées différents ne donne pas une idée correcte des fréquences de ceux-ci dans toutes les protéines normales 23 24

La qualité des données 3 uniformité des données Une méthode pourrait vérifier automatiquement si les séquences sont correctes. Autrement, il faut introduire des nouveaux caractères qui représentent l incertitude Un méthode pourrait vérifier si les coordonnées des atomes dans une structure (ex. les longueurs et les angles des liens entre les atomes) sont correctes... Même si les méthodes automatiques pour détecter des erreurs dans les données produisent des bons résultats, l intervention humaine est toujours importante pour assurer la qualité des données Comment créer une base de donnée relationnelle? Comme déjà expliqué, une BD est une ensemble de données qui sont organisées dans un certain façon Ces BD enlèvent tous les redondances et essaie de clarifier la structure dans les données c.a.d. on enlève les données semblables de la collection de données et on les mets dans des tableaux On fait ça pour chaque tableau récursivement A l'extrémité la base de données complet est normalisée Une base de donnée normalisée est plus facile à mettre à jour ou étendre ultérieurement 25 26 Comment créer une base de donnée relationnelle? Comme déjà expliqué, une BD est une ensemble de données qui sont organisées dans un certain façon Ces BD enlèvent tous les redondances et essaie de clarifier la structure dans les données c.a.d. on enlève les données semblables de la collection de données et on les mets dans des tableaux On fait ça pour chaque tableau récursivement A l'extrémité la base de données complet est normalisée Une base de donnée normalisée est plus facile à mettre à jour ou étendre ultérieurement Comment créer une base de donnée relationnelle? Comme déjà expliqué, une BD est une ensemble de données qui sont organisées dans un certain façon Ces BD enlèvent tous Ceci les n est redondances pas un cours et sur essaie les de clarifier la structure dans les données bases de données c.a.d. on enlève les données semblables de la collection de données et on les mets dans des tableaux On fait ça pour chaque tableau récursivement A l'extrémité la base de données complet est normalisée Une base de donnée normalisée est plus facile à mettre à jour ou étendre ultérieurement 27 27

Normalisation en 5 glissières Ex 5.1 : Prenons les données suivantes : Normalisation en 5 glissières 2 La première forme normale : chaque type de colonne est unique et il n y a aucun groupe de répétitions de données le nom de la protéine FYN le nom d espèce souris la séquence numéro d identification domaine 1 (NI) NI domaine 1 région 1 (start/ stop) domaine 2 NI domaine 2 région 2 (start/ stop) KLTEERDG... MGCVQCKDKEAA P39688 SH2 PF00017 149 246 SH3 PF00018 82 143 Dans notre exemple, les domaines sont répétés dans des protéines différentes SRC SRC CD2AP souris homme homme QRRRSLEP... MGSNKSKPKDAS P05480 SH2 PF00017 156 253 SH3 PF00018 83 105 QRRRSLEP... MGSNKSKPKDAS P12931 SH2 PF00017 151 248 SH3 PF00018 54 145 VHDDELTI... MVDYIVEYDYDA Q9Y5K6 SH3 PF00018 1 59 SH3 PF00018 108 167 Si on détecte un autre domaine dans la protéine, on doit ajouter 3 colonnes additionnelles Par exemple, la protéine CD2AP a trois domaines SH3 dans sa structure Transformez ce tableau en un ensemble de tableaux normalisés tableau de liaison Il y un rapport multiple entre les protéines et les domaines: nouveau tableau : domaines dans protéines 28 29 Normalisation en 5 glissières 3 Normalisation en 5 glissières 4 La deuxième forme normale : Tous les attributs dans le tableau devraient dépendre seulement de l identificateur unique du tableau Attention!!! On a utilisé ici les numéros de références de UniProt. Ces numéros sont uniques La troisième forme normale : Aucune entrée de colonne ne devrait dépendre d une autre entrée (la valeur) que la clé du tableau le nom de la protéine FYN SRC SRC CD2AP le nome d espèce souris souris homme homme le séquence MGCVQCKDKEAA KLTEERDG... MGSNKSKPKDAS QRRRSLEP... MGSNKSKPKDAS QRRRSLEP... MVDYIVEYDYDA VHDDELTI... numéro d identification (NI) P39688 P05480 P12931 Q9Y5K6 le nom de la protéine FYN SRC SRC le nome d espèce souris souris homme le séquence MGCVQCKDKEAA KLTEERDG... MGSNKSKPKDAS QRRRSLEP... MGSNKSKPKDAS QRRRSLEP... numéro d identification (NI) P39688 P12931 P12931 l information sur les espèces ne fait pas partie de l information des protéines Faire un nouveau tableau pour les espèces CD2AP homme MVDYIVEYDYDA VHDDELTI... Q9Y5K6 30 31

Normalisation en 5 glissières 5 SQL Ces trois étapes de normalisation nous donnent une diagramme décrivant les tableaux et leurs relations Il y a 4 commandes de base en SQL INSERT - pour ajouter des données DELETE - pour effacer des données SELECT - pour retrouver des données UPDATE - pour changer des données Maintenant on va les construire en utilisant MySQL Getting started with MySQL : http://dev.mysql.com/tech-resources/ articles/mysql_intro.html 32 33 SQL 2 SQL 3 Avant de construire les tableaux pour la base de données, on doit connaître les types de chaque attribut Avant de construire les tableaux pour la base de données, on doit connaître les types de chaque attribut Ici nous mentionnons seulement les types dont nous avons besoin pour l exemple Ici nous mentionnons seulement les types dont nous avons besoin pour l exemple Nombres Les attributs DetP-région-start et DetPrégion-stop sont des nombres qui indiquent le début et le fin d un domaine dans la séquence de la protéine La longueur d un domaine est toujours inférieur à 1000 résidus Dans ce cas Le type SMALLINT de SQL est suffisant SMALLINT 2 bytes Nombre entier avec l intervalle non-signé de 0 à 65535 et un intervalle signé entre -32768 et 32767 Chaînes de texte de longueur fixe Toutes les clés (comme NI-protéine et NIdomaine), nom-domaine, nom-espèces et nom-protéines ont une longueur limitée 6 et 7 caractères pour les clés et maximum 255 caractères pour le reste Dans ces cas le type CHAR(longueur) ou le type VARCHAR(longueur) de SQL est suffisant Le longueur de VARCHAR est limité à 255 caractères CHAR(longueur) et VARCHAR(longueur) longueur bytes Une Chaîne de texte de longueur fixe. Quand un mot est assigné à l attribut, les espaces à la fin inutilisés sont enlevés avant d enregistrer les données 34 35

SQL 4 Avant de construire les tableaux pour la base de données, on doit connaître les types de chaque attribut Ici nous mentionnons seulement les types dont nous avons besoin pour l exemple SQL 5 Maintenant, toute l information est disponible pour construire la base de données Textes L attribut séquence doit enregistrer des chaînes de caractères avec une longueur supérieure à 255 caractères et il y a une variance entre des protéines différentes Dans ce cas le type TEXT de SQL est suffisant TEXT 64 Kbytes On commence avec la création d une base de données avec le nom sequences Attention au restrictions : la base de données est créé par le root! 36 37 SQL 6 SQL 7 et aussi tous les tableaux Les tableaux sont créés en utilisant la commande CREATE TABLE L ensemble des attributs detp_ni_proteine, detp_ni_domaine et detp_region_start fournis une identification unique pour chaque article dans le tableau detp Pour afficher les tableaux de la base de données, on utilise la commande SHOW TABLES Pour afficher les attributs au sein d un tableau, on utilise la commande SHOW COLUMNS FROM ALTER TABLE est utilisé pour créer la clé primaire la combinaison des trois premiers attributs est la clé primaire 38 39

SQL 8 SQL 9 Les données sont insérées en utilisant la commande INSERT INTO Les données peuvent être insérées toutes ensembles SELECT montre les données enregistrées dans le tableau 40 41 SQL 10 SQL 11 42 43

SQL 12 SQL 13 Maintenant, que toutes les données sont insérées dans la base de données essayons des variations de déclaration de SELECT Choisir toutes les protéines avec le nom SRC Choisir toutes les protéines qui ont la sous-séquence SNKSK dans leur séquence % représente plusieurs caractères aléatoires Les résultats peuvent être arrangés dans une ordre particulier en utilisant la déclaration ORDER BY Choisir toutes les protéines qui ont la sous-séquence K_A dans leur séquence _ signifie un caractère aléatoire asc et desc signifient l ordre croissant et décroissant 44 45 SQL 14 SQL 15 Choisir toutes les protéines qui ont la sous-séquence K_A dans leur séquence ET qui font partie de l'espèce souris La déclaration SELECT peut combiner des tableaux différents les autres opérations logiques sont OR, NOT Montrer tous les domaines de chaque protéine Compter les nombres de protéines FYN er SRC dans la base de données MAX et SUM sont deux autres opérations mathématiques dans SQL Voici ce qui fait une base de données relationnelle 46 47

SQL 16 La déclaration JOIN fait la combinaison entre des tableaux automatiquement LEFT JOIN combine les tableaux et affiche les valeurs de toutes les données dans la tableau gauche (proteines) avec les valeurs du tableau droit (especes), s ils sont connus SQL 17 RIGHT JOIN fait de même mais de droite à gauche Parce que le numéro 7227 n existe pas dans le tableau especes, la protéine ABL n est pas affichée Dans l exemple, on ajoute une nouvelle protéine avec un NI d espèce qui est inconnu dans le tableau especes 7227 (mouche) 48 49 SQL 18 SQL 19 ALTER est utilisé pour ajouter des nouvelles colonnes dans les tableaux ou pour changer les colonnes UPDATE est utilisé pour changer les valeurs des attributs dans un tableau ipi est le international protein index introduit par l organisation EBI la déclaration MODIFY peut changer des propriétés des colonnes il n y a pas de IPI pour la protéine ABL ALTER peut aussi changer le nom du tableau 50 51

SQL 20 DELETE est utilisé pour enlever des données On pourrait crée une copie de sauvegarde en utilisant mysqldump SQL 21 DROP TABLE enlève les tableaux ATTENTION!!! 52 53 Comment connecter un logiciel à une base de données? La classe DBConnection Le type de retour d un select est StoreQueryResult Le type Connection de mysqlpp enregistre la connexion avec la base de données de MySQL 54 55

La classe DBConnection 2 La classe DBConnection 3 L objet query enregistre la déclaration SQL le retour de cette fonction est la nouvelle clé de l article enregistrée par la méthode insert Le méthode connect établi la connexion avec la base de données Le méthode disconnect enlève la connexion avec la base de données La méthode query.execute() est utilisée si on ne prévoit pas de résultats, autrement on utilise query.store() pour enregistrer les résultats http://tangentsoft.net/mysql++/doc/html/refman/classmysqlpp_1_1query.html#a26 56 57 Le main Le main 2 l information pour la base de données Voila fait la connexion fait la déclaration de SELECT le résultats sont enregistrés dans selresult la méthode at(.) retourne une ligne des résultats Petite fonction auxiliaire pour obtenir la valeur d'un attribut particulier dans le ligne row 58 59

et en Python? et en Python? 60 61