1.38k likes | 1.61k Views
Introduction aux Bases de données en Sciences de la Vie et en Santé. UE : Conception de bases de données Master1 - BIG Master1 - MTIBH Fouzia Moussouni-Marzolf. L’utilisateur doit écrire un programme souvent complexe !!!. ?. ?. Un peu d’histoire …. Limites de l’utilisation des fichiers.
E N D
Introduction aux Bases de données en Sciences de la Vie et en Santé. UE : Conception de bases de données Master1 - BIG Master1 - MTIBH Fouzia Moussouni-Marzolf
L’utilisateur doit écrire un programme souvent complexe !!! ? ? Un peu d’histoire … Limites de l’utilisation des fichiers Quelles sont mes données ? Comment les structurer? Comment y accéder ? Comment créer un index ? Comment les manipuler ? #% »*’àç @é()$£ »&@!!!! Application : rigide, longue, coûteuse Données : redondantes, peu fiables, ponctuelles
modifier interroger décrire BD Exhaustive non redondante structurée persistante Outils • Les utilisateurs exigent de plus en plus : • des systèmes globaux • des systèmes cohérents • de ne pas écrire des programmes complexes (ou plutôt compliqués!) • d’avoir des réponses rapides aux questions qu’ils posent • avoir des données à jour, ... SGBD
Exemple de base de données PPI : interactions protéines protéines • expériences , complexes, protéines, interactions, familles fonctionnelles. • Données : • Les expériences, liste des interactions révélées, liste des protéines impliquées, les complexes protéiques auxquels elles participent, leurs familles fonctionnelles, … etc. • Applications • analyse des interactions, annotations fonctionnelles, • aide à la compréhension de phénomènes biologiques
BD sur les Interactions protéiques • Données (ou objets) :protéines, interactions, complexes • Associations entre objets : • binaires : une interaction fait intervenir 2 protéines. • n-aires :une protéine peut apparaître dans plusieurs interactions. • diverses relations pour un même objet • La protéine X (SNF1) intervient dans l’interaction Y (avec SNF4) • La protéine X participe au complexe Z • L ’interaction Y est détectée dans l ’expérience E
Données (entités) Complexe Protéique Interagit Protéines Conformation Fonction N° Acc Sequence Descrip Associations BD sur les Interactions protéiques • Des Modèles pour représenter ces objetsObjetou Entité ainsi que leurs associations 0:n 2:n Cardinalité 0:n pour l´entité <Protéines> :exprime qu‘une protéine peut être partenaire dans aucune (0) ou plusieurs complexes
Architecture d'un SGBD On distingue 3 niveaux dans une BD (norme ANSI/SPARC): Niveau interne ou physique. Le niveau interne permet de décrire les données telles qu'elles sont stockées dans la machine, en particulier dans les fichiers qui les contiennent (nom, localisation, taille,…). Niveau logique. Le niveau logique permet de décrire, de manière "abstraite" et structurée, la réalité du monde ou de l'application. Niveau externe Au niveau externe, les schémas ou vues décrivent la partie des données présentant un intérêt pour un utilisateur ou un groupe d'utilisateurs.
Architecture d'un SGBD Fonctionnalités du Niveau Physique • Gestion des données sur mémoire secondaire (fichiers). • Partage des données et gestion de la concurrence d'accès. • Reprise sur pannes (fiabilité). • Distribution des données et interopérabilité.
Architecture d'un SGBD Fonctionnalités du Niveau Logique • Définition de la structure de données : Langage de Description de Données (LDD). • Consultation et mise à jour des données : Langages de Requêtes (LR) et langage de manipulation de Données (LMD). • Gestion de la confidentialité (sécurité). • Maintien de l'intégrité.
Architecture d'un SGBD • Fonctionnalités du Niveau Externe • Vues ou schémas externes décrivant la partie des données qui présentent un intérêt pour un utilisateur ou un groupe d'utilisateurs. • Environnement de programmation (intégration d’un langage de programmation). • Interfaces conviviales. • Outils d'aides pour la conception de schémas. • Outils de saisie, d'impression. • Passerelles (réseaux, autres SGBD, ...).
SGBD applications besoins Système de Gestion de Bases de Données Objectifs Transparence réponses questions des fonctions intégrées Indépendance physique et logique. Manipulation des données sans savoir programmer (langages « quasi naturels »). Efficacité des accès aux données. Administration centralisée. Non redondance. Cohérence. Partageabilité. Sécurité. Résistance aux pannes.
. . . Comment assurer ces objectifs ? Les trois niveaux de descriptions définies par la norme ANSI/ SPARC Niveau conceptuel ou logique Niveau interne Stockage Vues BD
Exemple de vues • Vues d’une base de données <université> : • Vue1: Planification des cours (nom du cours, nom du professeur, horaires et salles, liste des étudiants). • Vue2 : Paye des professeurs (nom, prénom, age, adresse, grade, nombre d'heures, …). • Vue3 : Résultats scolaires des étudiants . Remarque : Les données utilisées par une vue peuvent être « dérivées » de la base de données et ne pas être présentes physiquement dans la base. Exemple : l´age est calculé à partir de la date de naissance.
La description des données est le résultat de la conception d’une base de données Choix d’un modèle de données (relationnel, objet, etc.) • Un modèle de données est un : • outil intellectuel pour comprendre l’organisation logique • des données ou de la connaissance. • ensemble de concepts et de règlespour construire la réalité avec des types de données Description des données : Schéma Un SGBD est caractérisé par le modèle de description des données qu’il supporte. Les données sont décrites selon ce modèle grâce à un langage de description des données. Manipulation des données • Une fois les données décrites structurellement, on peut : • les insérer • les lire, afficher • les modifier • les détruire
pouvant être classiques aussi Les composants d ’un SGBD « quelque soit le modèle de données qu’il supporte » 1Outils de description des données (en gros des langages) : - décrire la vision qu’a l ’utilisateur des données - décrire le stockage physique des données. • 2Outils de manipulation des données : • - interroger, • modifier, • détruire, • croiser • les données, de façon optimisée via : • - des langages de manipulation des données, SQL, OQL • - des extensions de langages classiques. JAVA, C++, Python ... 3Outils de sauvegarde et récupération après panne 4 Outils pour permettre un accès concurrent aux données de façon cohérente. «Chacun de ces composants sera étudié ».
Retour sur l’histoire … 1960 Uniquement des systèmes de gestion de fichiers très sophistiqués (Mais aussi compliqués ! et non adpatés ) 1970 Début des systèmes de gestion de bases de données réseaux et hiérarchiques, très proches des systèmes de gestions de fichiers. Inconvénient : on doit savoir la localité (chemin) de l ’information recherchée. Sortie de la théorie des relations et fondements des bases de données relationnelles (Papier de E.F. CODD) A relational model of data for large shared data banks, Communications of the ACM 13(6), 377-387, 1970 1980 Apparition sur le marché des systèmes de gestion de bases de données relationnelles - Capacités plus grandes d'adaptation aux évolutions de la gestion 1990 Les systèmes de gestion de bases de données relationnelles dominent le marché Début des systèmes de gestion de bases de données orienté-objets.
A parte Base de données • Base de données : données organisées, stockées dans des fichiers liés entre eux grâce à un SGBD Il existe plusieurs « styles » de BDD : • Hiérarchique • Réseau • Relationnelle • Objet • multi dimensionnelle…
Cellule Chromosome Gène Base de données hiérarchique Patron Chef Chef Sous-chef Sous-chef Sous-chef Sous-chef Sous-chef
Base de données réseau Patron Patron Chef Chef Sous-chef Sous-chef Sous-chef Sous-chef Sous-chef
CodeGénome CodeChromosome Base de données relationnelle Une table ? Plusieurs tables ? Genome Chromosome Gene CodeGeneNomGene …. CodeGenomeNomGénome …. CodeChromosomeNumChromosome …. Select NomGene From TableGene Where CodeChromosome = HUM-10 Select Cekejeuveu From LaTableKeJeudi Where LaConditionKimeuplé SQL
Base de données objet Transcris épissé Personne Taille Séquence AdresseSalaire Lieu de travail ARNm ARNt SnARN Patron Chef Sous-chef Localisation Moléculaire Vélo de fonction Ref chef Niveau d’expression condition Nom : Fonction : Primes de responsabilité Voiture de fonction Scooter de fonction Ref patron
Conception de Base de données relationnelles, Algèbre relationnelle et langage SQL La conception d’une base de données n’est pas un domaine réservé aux informaticiens ! Bon nombre de logiciels apparaissent tous les mois, mais l ’algèbre relationnelle a été inventée par E.F. CODD en 1970 Preuve… Les logiciels de type SGBDR sont intégrés aux suites bureautiques les plus connues. Ex: ACCESS du pack Office. Cependant … La maîtrise d’un SGBDR est loin d ’être aussi facile à acquérir que celle d ’un logiciel de traitement de texte par ex.
Définir précisément les besoins (i.e. pourquoi créer une base de données?) Communication intensive entre les experts du domaine d ’application et le concepteur de la base de données. Description de la Structure de la base de données sous formes de tableaux de données reliées par des données clés. LES ETAPES DE CONSTRUCTION Structurer les données de la base Modèle conceptuel des données VS. tableaux de données
Visualiser la réalité sous forme de tables de données reliées entre elles. • Tables Génomes Chromosomes Code Genome Code chromosome Code Genome Espèce Nb_chromosomes N°Chrom Taille Relation AutresFragments Gènes Code Fragment Code chromosome Code chromosome type Début Code gene fin Séquence ... A une table est associée ce qu’on appelle une relation. Ex: Génomes (CodeGenome,Espèce,Nb_chromosome)
Les besoins Analyse Traitement Connaissance / Expertise Requêtes Applications LES ETAPES Modèle conceptuel de traitement Traitement des besoins (enfin! )
LES ETAPES Les interfaces utilisateurs ou L ’APPLICATION Il s’agit de réaliser une application de consultation et de mise à jour de la base de données. A savoir : Un premier principe d’ergonomie à connaître est qu’une application a pour but d’être utilisée par des gens qui ont une certaine connaissance de son contexte. Vous devez donc réaliser votre logiciel en fonction de ces utilisateurs. Les utilisateurs sont supposés avoir une idée du flot de données qui rend votre base cohérente. Ils connaissent les actions à réaliser pour commencer telle ou telle tâche. Un bouton, quelles que soient les aides que vous pourrez y associer, restera un bouton. Ce n’est pas parce que l’interface est graphique que les utilisateurs sauront ce qu’ils ignorent. « Il ne faut pas présenter des données, il faut présenter des informations »
Conception facile de n’importe quelle requête aussi complexe soit-elle Maîtrise de l’algèbre relationnelle Mise en œuvre à l ’aide de SQL Protéines Opérations classiques sur les ensembles : NIP NOM Fonction … ………. ……….. … ………. ……….. … ………. ……….. … ………. ……….. Opérations propres … ………. ……….. projection, sélection, jointure, division … ………. ……….. … ………. ……….. Algèbre Relationnelle et langage SQL Illustration avec des études de cas Une relation est représentée par une table = ensemble de tuples
Génome Code Genome Espèce Nb_chromosomes Clé primaire Arabidopsis_thaliana Yeast Drosophile Mouse Human ZebraFish ARB YST DRL MOU HUM ZBF 5 16 5 44 46 25 Clé étrangère Chromosomes code genome Code chromosome N°Chrom Taille ARB HUM DRL DRL DRL MOU 1 2 3 4 5 6 ... 29.6 19.6 23.3 17.5 230.2 576.8 I II III IV n-uplets I V attributs Gestion simplifiée d’un génome 1 n génome chromosome
Clé primaire Clé étrangère Gènes Séquence ADN Code Génome Codechromosome Source Nom Code Gene 1 2 3 4 1 1 1 8 IREG1 TRFr DMT1 TNFa HUM MOU DROZ MOU_KO
Identification des objets de gestion : Génomes, Gènes,... et les règles de gestion du domaine modélisé : interviews, étude des documents manipulés, des fichiers, ... Génomes Chromosomes CodeGenome Nom Espèce nbChromosomes CodeChromosome Numéro Taille CodeGénome 1 * Gènes CodeGene Nom-locus Source Sequence Codechromosome CodeGenome * Il existe deux grands types de liens Un - plusieurs Plusieurs - Plusieurs 1 Autres Fragments CodeFragment Type séquence début fin CodeChromosome CodeGenome * Voilà le modèle ! Présence de redondance !?
Une seule relation. Pas de doublons. Espèce NB chromosomes Homo sapiens 25 1 Mus musculus 22 2 S.Cerevisiae 17 3 DROSOPHILE.M 8 4 CodeGenome Espèce Homo sapiens Mus musculus S. Cerevisiae Drosophile.M R1 = PROJECTION (Génomes, Espèce) Espèce NB chromosomes Homo sapiens 25 Mus musculus 22 S.Cerevisiae 17 DROSOPHILE.M 8 R2 = PROJECTION (Génomes, Espèce, NB chromosomes) Opérations propres à l ’algèbre relationnelle Opération PROJECTION / Exemples Génomes Formalisme : R = PROJECTION (R1, liste des attributs) Espèce Homo sapiens Mus musculus S.Cerevisiae DROSOPHILE.M Espèce NB chromosomes Homo sapiens 25 Mus musculus 22 S.Cerevisiae 17 DROSOPHILE.M 8 Cet opérateur ne porte que sur 1 relation. Il permet de ne retenir que certains attributs spécifiés d'une relation. On obtient tous les n-uplets de la relation à l'exception des doublons.
liste d'attributs table FROM Opération PROJECTION liste d'attributs table ; SELECT FROM SELECT DISTINCT Exemples : SELECT DISTINCT Espèce FROM Génome SELECT DISTINCT Espèce, NB chromosomes FROM Génome La clause DISTINCT permet d'éliminer les doublons.
Cet opérateur ne porte que sur 1 relation. CodeGenome EspèceNB chromosomes Homo sapiens 25 1 Mus musculus 22 2 S.Cerevisiae 17 3 DROSOPHILE.M 8 4 R3 = SELECTION(Génome, Nb chromosomes pair) Il permet de ne retenir que les n-uplets répondant à une condition. Espèce NB chromosomes Mus musculus 22 2 DROSOPHILE.M 8 4 CodeGenome Opération SELECTION /Exemple : Génome Formalisme : R = SELECTION (R1, condition)
Quels sont les gènes qui participent au codage de la même protéine PROD (albumine par exemple) ? Gènes Produit gène ? Séquence ADN Codechromosome Code Gene Source taille Nom 1 2 3 4 IREG1 TRFr DMT1 TNFa Prod 1 1 1 8 Prod
des opérateurs de comparaison : =, >, <, <=, >=, <> des opérateurs logiques : AND, OR, NOT des opérateurs : IN, BETWEEN, LIKE Opération SELECTION en SQL SELECT * FROMtable WHEREcondition ; Exemple : SELECT * FROM Génome WHERE NBChromosomes % 2 = 0 La condition de sélection exprimée derrière la clause WHERE peut être spécifiée à l'aide : Autres exemples : Soit la table Gène ( CodeGene, nom, source, sequence, taille, CodeChromosome, produit) SELECT * FROM Gène WHERE taille IN (2000, 2500, 2575, 2600, 3000) SELECT * FROM Gène WHERE tailleBETWEEN 2000 AND 3000 SELECT * FROM Gène WHERE produit LIKE '%albumine%' sous Access : LIKE "*albumine*"
Code chromosome Taille > 300000 CodeGenome EspèceNB chromosomes Homo sapiens 25 Mus musculus 22 S.Cerevisiae 17 DROSOPHILE.M 8 N°Chrom CodeGenome 1 2 3 4 1 4 4 4 2 310000 350000 400000 350405 5768001 1 2 3 4 5 II III IV I V Cet opérateur porte sur 2 relations ayant au moins un attribut défini dans le même domaine Homo sapiens DROSOPHILE.M Mus Musculus Espèce Code chromosome EspèceNB chromosomes N°Chrom Taille CodeGenome 1 4 4 4 2 Homo sapiens 25 DROSOPHILE.M 8 DROSOPHILE.M 8 DROSOPHILE.M 8 Mus Musculus 22 1 2 3 4 5 310000 350000 400000 350405 576800 II III IV Les n-uplets sont formés par la concaténation des n-uplets des relations d'origine qui vérifient la condition de jointure. I V Quels sont les espèces pour lesquels il existe des chromosomes à plus de 300000 bases Opération JOINTURE Formalisme : R = JOINTURE (R1, R2, condition d'égalité entre attributs) Chromosomes Génomes R = JOINTURE (Genome,Chromosome, Genome.CodeGenome=Chromosome.CodeGenome) Projection sur Espèce sans doublons
Opération JOINTURE en SQL En SQL, il est possible d'enchaîner plusieurs jointures dans la même instruction SELECT : table1, table2, table3, ... SELECT * FROM WHERE table1.attribut1=table2.attribut1AND table2.attribut2=table3.attribut2AND...; Exemple : Ou en utilisant des alias pour les noms des tables : SELECT Espece FROM Genome A, Chromosome BWHERE A.CodeGenome =B.CodeGenome and B.taille >= 300000;
Chromosomes Génomes Code Genome Code Génome N° Chromosome Code Chromosome Nom génome . . . . . . . . . . . . . . . Souris Fluo! Drosophile.M 3 5 3 5 5 1 2 3 II V VI Sélection ‘ Drosophile.M ’ Génomes Code Génome Jointure Code Genome Nom génome N° Chromosome Code Chromosome Nom génome . . . . . . . . . . . . Drosophile.M 5 Drosophile.M 5 5 2 3 V VI Drosophile.M Requête SQL Select * from Genome,Chromosome where Genome.nom like ‘ Drosophile.M’ and Chromosomes.CodeGenome = Genomes.CodeGenome Quels sont les chromosomes : (numéro, taille, …) du génome de la Drosophile ? Question 2
jointure1 jointure2 Gènes Chromosomes Code Chromosome Génomes Nom du gène Code Genome Code Génome Code Chromosome N° Chromosome Nom génome . . . 10 18 . . . . X1 X1 . Souris Fluo! Drosophile.M 3 5 5 3 10 18 II V Première jointure Deuxième jointure Quels sont les génomes pour lesquels le gène X1 est présent ? Question 3 Select genome.nom from Genome, Chromosome, Gene where Gene.nom like ‘ X1 ’ and Genes.CodeChromosome = Chromosomes.CodeChromosome and Chromosomes.CodeGenome = Genomes.CodeGenome
Exercice d'application n°1 Soit le modèle relationnel suivant relatif à une base de données sur des représentations musicales : REPRESENTATION (n°représentation, titre_représentation, lieu)MUSICIEN (nom, n°représentation*)PROGRAMMER (date, n°représentation*, tarif) Remarque : les clés primaires sont soulignées et les clés étrangères sont marquées par * Questions : 1 - Donner la liste des titres des représentations. 2 - Donner la liste des titres des représentations ayant lieu à l'opéra Bastille. 3 - Donner la liste des noms des musiciens et des titres des représentations auxquelles ils participent. 4 - Donner la liste des titres des représentations, les lieux et les tarifs pour la journée du 14/09/96.
Correction de l'exercice d'application n°1 (faire un graphique) 1 - Donner la liste des titres des représentations.R = PROJECTION(REPRESENTATION, titre_représentation) 2 - Donner la liste des titres des représentations ayant lieu à l'opéra Bastille.R1 = SELECTION(REPRESENTATION, lieu="Opéra Bastille")R2 = PROJECTION(R1, titre_représentation) 3 - Donner la liste des noms des musiciens et des titres des représentations auxquelles ils participent.R1 = JOINTURE(MUSICIEN, REPRESENTATION, Musicien.n°représentation=Représentation.n°représentation)R2 = PROJECTION(R1, nom, titre_représentation) 4 - Donner la liste des titres des représentations, les lieux et les tarifs pour la journée du 14/09/96.R1 = SELECTION(PROGRAMMER, date=14/09/96)R2 = JOINTURE(R1, REPRESENTATION, R1.n°représentation=Représentation.n°représentation)R3 = PROJECTION(R2, titre_représentation, lieu, tarif)
Correction de l'exercice d'application n°1 En SQL 1 - Donner la liste des titres des représentations.SELECT titre_représentation FROM REPRESENTATION; 2 - Donner la liste des titres des représentations ayant lieu à l'opéra Bastille.SELECT titre_représentation FROM REPRESENTATIONWHERE lieu="Opéra Bastille" ; 3 - Donner la liste des noms des musiciens et des titres des représentations auxquelles ils participent.SELECT nom, titre_représentationFROM MUSICIEN, REPRESENTATIONWHERE MUSICIEN.n°représentation = REPRESENTATION.n°représentation ; 4 - Donner la liste des titres des représentations, les lieux et les tarifs pour la journée du 14/09/96. SELECT titre_représentation, lieu, tarifFROM REPRESENTATION, PROGRAMMERWHERE PROGRAMMER.n°représentation=REPRESENTATION.n°représentationAND date='14/06/96' ;
PARTICIPER EPREUVE DIVISION (PARTICIPER, EPREUVE) AthlèteEpreuveEpreuveAthlète Dupont 200 m 200 m Dupont Durand 400 m 400 m Dupont 400 m 110 m H Martin 110 m H Dupont 110 m H Martin 200 m La concaténation donnant un n-uplet du dividende Le dividende doit avoir au moins une colonne de plus que le diviseur Opération DIVISION Formalisme : R = DIVISION (R1, R2) Un Exemple hors Bio Qui a participe à toutes les épreuves ? Tous les attributs du diviseur doivent être des attributs du dividende. Quels sont les gènes du génome Y qui sont présents dans tous les chromosomes ? … à vos idées! ... "L'athlète Dupont participe à toutes les épreuves"
Le dividende doit avoir au moins une colonne de plus que le diviseur dividende diviseur Tous les gènes du génome y Code Chromosome Nom du gène Tous les Chromosomes du génome Y Code Genome N° Chromosome Code Chromosome 1 10 18 10 18 X1 X1 X1 x2 x2 . . . Nom du gène II V VI 5 5 5 1 10 18 X1 Tous_les_Chromosomes_de_5 Tous_les_Gènes_de_5 La division La concaténation donnant un n-uplet du dividende Opération DIVISION Formalisme : R = DIVISION (R1, R2) Quels sont les gènes qui sont présents dans tous les chromosomes du génome de la Drosophile.M
Attention ! Il n'existe pas en SQL d'équivalent direct à la division. Opération DIVISION Cependant il est toujours possible de trouver une autre solution, notamment par l'intermédiaire des opérations de calcul et de regroupement. Dans l'exemple présenté, on souhaite trouver les athlètes qui participent à toutes les épreuves. En algèbre relationnelle une autre solution que la division pourrait être : N=CALCULER(EPREUVE, Comptage())R1=REGROUPER_ET_CALCULER(PARTICIPER, Athlète, Nb:Comptage())R2=SELECTION(R1, Nb=N)R3=PROJECTION(R2, Athlète) N=CALCULER(Tous_les_chromosomes_de_y, Comptage())R1=REGROUPER_ET_CALCULER(Tous_les_gènes_de_y, NomDuGène, Nb:Comptage())R2=SELECTION(R1, Nb=N)R3=PROJECTION(R2, NomDuGène) et en SQL : SELECT NomDuGène,Count(*) FROM Tous_les_gènes_de_yGROUP BY NomDuGèneHAVING COUNT(*) = N et en SQL : SELECT Athlète, Count(*) FROM PARTICIPERGROUP BY AthlèteHAVING COUNT(*) = N ;
Gènes On désire obtenir la taille totale des zones codantes Produit gène ? Séquence ADN Codechromosome Code Gene Source taille Nom 1 2 3 4 IREG1 TRFr DMT1 TNFa Prod1 20000 30000 45000 3000 1 1 8 8 Prod2 Somme(taille) 98000 Opération CALCULER R = CALCULER (R0, fonction1, fonction2, ...) ou N = CALCULER (R0, fonction) En SQL SELECT fonction1(attribut1), fonction2(attribut2), ...FROM table; R1=CALCULER(Gènes, Somme(taille)) SELECT SUM(taille) FROM Gènes;
On désire obtenir le total de la zone codante par chromosome Le regroupement s'effectue sur un sous ensemble des attributs de la relation R0. Gènes Produit gène ? Séquence ADN Codechromosome Code Gene Source taille Nom 1 2 3 4 IREG1 TRFr DMT1 TNFa Prod1 20000 30000 45000 3000 1 1 8 8 Sum (taille) Prod2 R2=REGROUPER_ET_CALCULER (Gènes,CodeChromosome, codante : Somme(taille)) Code chromosome codante 1 50000 8 48000 Opération REGROUPER_ET_CALCULER • R=REGROUPER_ET_CALCULER(R0, att1, att2, ..., fonction1, fonction2, ...) La relation résultat comportera autant de lignes que de groupes de n-uplets, les fonctions s'appliquant à chacun des groupes séparément.
EN SQL Select codeChromosome, SUM(taille) as codante from Genes Group by CodeChromosome