131
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

Introduction aux Bases de données en Sciences de la Vie et en Santé

  • Upload
    makya

  • View
    21

  • Download
    1

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Introduction aux Bases de données en Sciences de la Vie et en Santé

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

Page 2: Introduction aux Bases de données en Sciences de la Vie et en Santé

Limites de l’utilisation des fichiers

Comment créer un index ?

Quelles sont mes données ?

?Comment les manipuler ?

Données : redondantes, peu fiables, ponctuelles

L’utilisateur doit écrire un programme souvent

complexe !!! #% »*’àç @é()$£ »&@!!!!

?

Application : rigide, longue, coûteuse

Comment les structurer?Comment y accéder ?

Un peu d’histoire …

Page 3: Introduction aux Bases de données en Sciences de la Vie et en Santé

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, ...

OutilsExhaustive

non redondantestructuréepersistante

BD SGBD

décriremodifier interroger

Page 4: Introduction aux Bases de données en Sciences de la Vie et en Santé

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

Page 5: Introduction aux Bases de données en Sciences de la Vie et en Santé

BD sur les Interactions protéiques

• Associations entre objets :

• Données (ou objets) : protéines, interactions, complexes

• 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

Page 6: Introduction aux Bases de données en Sciences de la Vie et en Santé

• Des Modèles pour représenter ces objets Objet ou Entité ainsi que leurs associations

Protéines

N° Acc Descrip

Sequence

Interagit Complexe Protéique

Fonction Conformation

Données (entités)

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

BD sur les Interactions protéiques

Page 7: Introduction aux Bases de données en Sciences de la Vie et en Santé

Architecture d'un SGBDOn 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.

Page 8: Introduction aux Bases de données en Sciences de la Vie et en Santé

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

Page 9: Introduction aux Bases de données en Sciences de la Vie et en Santé

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

Page 10: Introduction aux Bases de données en Sciences de la Vie et en Santé

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, ...).

Architecture d'un SGBD

Page 11: Introduction aux Bases de données en Sciences de la Vie et en Santé

questions réponses

Transparence

Système de Gestion de Bases de DonnéesObjectifs

Résistance aux pannes.

SGBDapplicationsbesoins

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é.

Page 12: Introduction aux Bases de données en Sciences de la Vie et en Santé

Comment assurer ces objectifs ?

Les trois niveaux de descriptions définies par la norme ANSI/ SPARC

BD ...

Niveau interneStockage

Niveau conceptuel ou logique Vues

Page 13: Introduction aux Bases de données en Sciences de la Vie et en Santé
Page 14: Introduction aux Bases de données en Sciences de la Vie et en Santé

Vues d’une base de données <université> :

• Vue1 : Planification des cours (nom du cours, nom du professeur, horaires et salles, liste des étudiants).

Exemple de vues

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

Page 15: Introduction aux Bases de données en Sciences de la Vie et en Santé

La description des données est le résultat de la conception d’une base de données

• ensemble de concepts et de règles pour construire la réalité avec des types de données

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.

Une fois les données décrites structurellement, on peut :• les insérer• les lire, afficher• les modifier• les détruire

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.

Description des données : Schéma

Manipulation des données

Page 16: Introduction aux Bases de données en Sciences de la Vie et en Santé

Les composants d ’un SGBD

« quelque soit le modèle de données qu’il supporte »

4 Outils pour permettre un accès concurrent aux données de façon cohérente.

pouvant êtreclassiques aussi

«Chacun de ces composants sera étudié ».

1 Outils 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.

2 Outils 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 ...

3 Outils de sauvegarde et récupération après panne

Page 17: Introduction aux Bases de données en Sciences de la Vie et en Santé

Retour sur l’histoire …

Début des systèmes de gestion de bases de données orienté-objets.

1960 Uniquement des systèmes de gestion de fichiers très sophistiqués

1970 Début des systèmes de gestion de bases de données réseaux ethié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éesrelationnelles (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é

(Mais aussi compliqués ! et non adpatés )

Page 18: Introduction aux Bases de données en Sciences de la Vie et en Santé

A parte Base de données

Il existe plusieurs « styles » de BDD :– Hiérarchique– Réseau– Relationnelle– Objet– multi dimensionnelle…

Base de données : données organisées, stockées dans des fichiers liés entre eux grâce à un SGBD

Page 19: Introduction aux Bases de données en Sciences de la Vie et en Santé

Base de données hiérarchique

Patron

Sous-chef

ChefChef

Sous-chef Sous-chef Sous-chef Sous-chef

Cellule

Chromosome

Gène

Page 20: Introduction aux Bases de données en Sciences de la Vie et en Santé

Base de données réseau

Patron

Sous-chef

ChefChef

Sous-chef Sous-chef Sous-chef Sous-chef

Patron

Page 21: Introduction aux Bases de données en Sciences de la Vie et en Santé

Chromosome

CodeChromosomeNumChromosome….

Genome

CodeGenomeNomGénome….

Gene

CodeGeneNomGene….

CodeGénome CodeChromosome

Select Cekejeuveu From LaTableKeJeudi Where LaConditionKimeuplé

Select NomGene From TableGene Where CodeChromosome = HUM-10

Base de données relationnelleUne table ? Plusieurs tables ?

Page 22: Introduction aux Bases de données en Sciences de la Vie et en Santé
Page 23: Introduction aux Bases de données en Sciences de la Vie et en Santé

PersonneAdresseSalaireLieu de travail

Chef

Scooter de fonctionRef patron

Patron

Primes de responsabilitéVoiture de fonction

Sous-chef

Vélo de fonctionRef chef

Base de données objet

Transcris épissé

TailleSéquence

ARNt

Nom :Fonction :

ARNm

Niveau d’expressioncondition

SnARN

Localisation Moléculaire

Page 24: Introduction aux Bases de données en Sciences de la Vie et en Santé

La conception d’une base de données n’est pas un domaine

réservé aux informaticiens !

Conception de Base de données relationnelles,Algèbre relationnelle et langage SQL

La maîtrise d’un SGBDR est loin d ’être aussifacile à acquérir que celle d ’un logiciel de traitement de texte par ex.

Bon nombre de logiciels apparaissent tous les mois,

mais l ’algèbre relationnelle a été inventée par E.F.

CODD en 1970

Les logiciels de type SGBDR sont intégrésaux suites bureautiques les plus connues.Ex: ACCESS du pack Office.

Preuve…

Cependant …

Page 25: Introduction aux Bases de données en Sciences de la Vie et en Santé

LES ETAPES DE CONSTRUCTIONStructurer les données de la base

Modèle conceptuel des données VS. tableaux de données

Définir précisément les besoins (i.e. pourquoi créer une 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.

Communication intensive entre les experts du domaine d ’application et le concepteur de la base de données.

Page 26: Introduction aux Bases de données en Sciences de la Vie et en Santé

Ex: Génomes (CodeGenome,Espèce,Nb_chromosome)

• Tables

Visualiser la réalité sous forme de tables de données reliées entre elles.

A une table est associée ce qu’on appelle une relation.

Gènes

Code gene

Code chromosome

Séquence ...

Relation

Génomes

EspèceCode

Genome Nb_chromosomes

Chromosomes

Code chromosome N°Chrom Taille

Code Genome

AutresFragments

Codechromosome fin Débuttype

Code Fragment

Page 27: Introduction aux Bases de données en Sciences de la Vie et en Santé

Connaissance/ Expertise

AnalyseTraitement

Les besoins

RequêtesApplications

Modèle conceptuel de traitementTraitement des besoins (enfin! )

LES ETAPES

Page 28: Introduction aux Bases de données en Sciences de la Vie et en Santé

Les interfaces utilisateurs ou L ’APPLICATION

LES ETAPES

« Il ne faut pas présenter des données, il faut présenter des informations »

Il s’agit de réaliser une application de consultation et de mise à jour de la base de données.

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.

A savoir :

Page 29: Introduction aux Bases de données en Sciences de la Vie et en Santé

Algèbre Relationnelle et langage SQL

Maîtrise de l’algèbre

relationnelle

Conception facile de n’importe quelle

requête aussi complexe soit-elle

Mise en œuvre à l ’aide de

SQL

Protéines

NIP NOM Fonction

… ………. ………..… ………. ………..

… ………. ………..… ………. ………..

… ………. ………..… ………. ………..… ………. ………..=

ensemble de tuples

Opérations classiques sur les ensembles :

Opérations propres

projection, sélection,jointure, division

Illustration avec des études de cas

Une relation est représentée

par une table

Page 30: Introduction aux Bases de données en Sciences de la Vie et en Santé

Gestion simplifiée d’un génome

n-uplets

génome chromosome1 n

Génome

EspèceCode

Genome Nb_chromosomes

Arabidopsis_thaliana

Yeast

Drosophile

Mouse

Human

ZebraFish

ARB

YST

DRL

MOU

HUM

ZBF

5

16

5

44

46

25

Clé primaire

ChromosomesCode

chromosome N°Chrom Taille

1

2

3

4

5

6

...

I

II

III

IV

I

V

29.6

19.6

23.3

17.5

230.2

576.8

code genome

ARB

HUM

DRL

DRL

DRL

MOU

Cléétrangère

attributs

Page 31: Introduction aux Bases de données en Sciences de la Vie et en Santé

GènesCode

chromosome

IREG1

TRFr

DMT1

TNFa

1

1

1

8

NomCode Génome

Source SéquenceADN

HUM

MOU

DROZ

MOU_KO

Code Gene

Cléétrangère

Clé primaire

1

2

3

4

Page 32: Introduction aux Bases de données en Sciences de la Vie et en Santé

Il existe deux grands types de liens

Un - plusieursPlusieurs - Plusieurs

Génomes

CodeGenomeNomEspècenbChromosomes

Chromosomes

CodeChromosomeNuméroTailleCodeGénome

1

*

Identification des objets de gestion :Génomes, Gènes,...

et les règles de gestion du domaine modélisé :interviews, étude des documentsmanipulés, des fichiers, ...

Présence de redondance !?

CodeFragmentTypeséquencedébutfinCodeChromosomeCodeGenome

Autres Fragments

1

* Gènes

CodeGeneNom-locus SourceSequenceCodechromosomeCodeGenome

*

Voilà le modèle !

Page 33: Introduction aux Bases de données en Sciences de la Vie et en Santé

Opérations propres à l ’algèbre relationnelle

Une seule relation.Pas de doublons.

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ération PROJECTION / Exemples Génomes

Formalisme : R = PROJECTION (R1, liste des attributs)

On obtient tous les n-uplets de la relation à l'exception des doublons.

R1 = PROJECTION (Génomes, Espèce)

Espèce

Homo sapiens

Mus musculus

S. Cerevisiae

Drosophile.M

Cet opérateur ne porte que sur 1 relation.

Il permet de ne retenir que certains attributs spécifiés d'une relation.

Espèce NB chromosomes

Homo sapiens 25 1

Mus musculus 22 2

S.Cerevisiae 17 3

DROSOPHILE.M 8 4

CodeGenomeEspè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

Page 34: Introduction aux Bases de données en Sciences de la Vie et en Santé

Opération PROJECTION

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.

table ;SELECT liste d'attributs FROM

SELECT table liste d'attributs FROMDISTINCT

Page 35: Introduction aux Bases de données en Sciences de la Vie et en Santé

R3 = SELECTION(Génome, Nb chromosomes pair)

Espèce NB chromosomes

Homo sapiens 25 1

Mus musculus 22 2

S.Cerevisiae 17 3

DROSOPHILE.M 8 4

CodeGenome

Opération SELECTION / Exemple : Génome

Formalisme : R = SELECTION (R1, condition) Cet opérateur ne porte que sur 1

relation.

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

Page 36: Introduction aux Bases de données en Sciences de la Vie et en Santé

Quels sont les gènes qui participent au codage de la même protéine PROD (albumine par exemple) ?

Gènes

Code chromosome

IREG1

TRFr

DMT1

TNFa

1

1

1

8

Nom Source SéquenceADN

Code Gene

1

2

3

4

Produit gène ?

Prod

Prod

taille

Page 37: Introduction aux Bases de données en Sciences de la Vie et en Santé

Opération SELECTION en SQL

WHERE condition ;SELECT * FROM table Exemple :

SELECT * FROM Génome WHERE NBChromosomes % 2 = 0La condition de sélection exprimée derrière la clause WHERE peut être spécifiée à l'aide :

des opérateurs : IN, BETWEEN, LIKE

des opérateurs de comparaison : =, >, <, <=, >=, <>

des opérateurs logiques : AND, OR, NOT

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 taille BETWEEN 2000 AND 3000

SELECT * FROM Gène WHERE produit LIKE '%albumine%'

sous Access : LIKE     "*albumine*"

Page 38: Introduction aux Bases de données en Sciences de la Vie et en Santé

R = JOINTURE (Genome,Chromosome, Genome.CodeGenome=Chromosome.CodeGenome)

Opération JOINTUREFormalisme : R = JOINTURE (R1, R2, condition d'égalité entre attributs)

Espèce NB chromosomes

Homo sapiens 25

Mus musculus 22

S.Cerevisiae 17

DROSOPHILE.M 8

CodeGenome

1

2

3

4

Chromosomes

Quels sont les espèces pour lesquels il existe des chromosomes à plus de 300000 bases

1

4

4

4

2

Code chromosomeN°Chrom

Taille > 300000

1

2

3

4

5

II

III

IV

I

V

310000

350000

400000

350405

5768001

CodeGenome

1

4

4

4

2

Code chromosomeN°Chrom Taille

1

2

3

4

5

II

III

IV

I

V

310000

350000

400000

350405

576800

CodeGenome Espèce NB chromosomes

Homo sapiens 25

DROSOPHILE.M 8

DROSOPHILE.M 8

DROSOPHILE.M 8

Mus Musculus 22

Projection sur Espèce sans

doublons

Cet opérateur porte sur 2 relations ayant au moins un attribut défini dans le même domaine

Les n-uplets sont formés par la concaténation des n-uplets des relations d'origine qui vérifient la condition de jointure.

Génomes

Homo sapiens

DROSOPHILE.M

Mus Musculus

Espèce

Page 39: Introduction aux Bases de données en Sciences de la Vie et en Santé

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;

Opération JOINTURE en SQL

En SQL, il est possible d'enchaîner plusieurs jointures dans la même instruction SELECT :

SELECT * FROM table1, table2, table3, ...

WHERE table1.attribut1=table2.attribut1 AND

Exemple :

table2.attribut2=table3.attribut2 AND ...;

Page 40: Introduction aux Bases de données en Sciences de la Vie et en Santé

Jointure

Sélection ‘ Drosophile.M ’

Quels sont les chromosomes : (numéro, taille, …) du génome de la Drosophile ?

Génomes

Code Génome

3

5

Souris Fluo!

Drosophile.M

Nom génome . . .Code

GenomeCode

Chromosome

3

5

5

1

2

3

N° Chromosome

II

V

VI

. . .

. . .

. . .

. . .

Chromosomes

Génomes

Code Génome

5Drosophile.M

Nom génome . . .Code

GenomeCode

Chromosome

5

5

2

3

N° Chromosome

V

VI

. . .

. . .

. . .

Nom génome

Drosophile.M

Drosophile.M

Question 2

Select * from Genome,Chromosome

where Genome.nom like ‘ Drosophile.M’

and Chromosomes.CodeGenome = Genomes.CodeGenome

Requête SQL

Page 41: Introduction aux Bases de données en Sciences de la Vie et en Santé

Quels sont les génomes pour lesquels le gène X1 est présent ?

Gènes

Code Chromosome

X1

X1

.

10

18

.

Nom du gène

Select genome.nom from Genome, Chromosome, Gene

where Gene.nom like ‘ X1 ’

and Genes.CodeChromosome = Chromosomes.CodeChromosome

and Chromosomes.CodeGenome = Genomes.CodeGenome

Première jointure

Deuxième jointure

Génomes

Code Génome

3

5

Souris Fluo!

Drosophile.M

Nom génome . . .

jointure1

Code Genome

Code Chromosome

5

3

10

18

N° Chromosome

II

V

. . .

Chromosomes

jointure2

Question 3

Page 42: Introduction aux Bases de données en Sciences de la Vie et en Santé

4 - Donner la liste des titres des représentations, les lieux et les tarifs pour la journée du 14/09/96.

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.

Page 43: Introduction aux Bases de données en Sciences de la Vie et en Santé

Correction de l'exercice d'application n°1

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)

(faire un graphique)

Page 44: Introduction aux Bases de données en Sciences de la Vie et en Santé

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

Correction de l'exercice d'application n°1En SQL

Page 45: Introduction aux Bases de données en Sciences de la Vie et en Santé

PARTICIPER EPREUVE DIVISION (PARTICIPER, EPREUVE)

Athlète Epreuve Epreuve Athlè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

Le dividende doit avoir au moins une colonne de plus que le diviseur

"L'athlète Dupont participe à toutes les épreuves"

Opération DIVISIONFormalisme : R = DIVISION (R1, R2)

Tous les attributs du diviseurdoivent être des attributs du

dividende.La concaténationdonnant un n-uplet du dividende

Quels sont les gènes du génome Y qui sont présents

dans tous les chromosomes ? … à vos idées! ...

Un Exemple hors Bio Qui a participe à toutes les épreuves ?

Page 46: Introduction aux Bases de données en Sciences de la Vie et en Santé

diviseur

Opération DIVISIONFormalisme : R = DIVISION (R1, R2)Quels sont les gènes qui sont présents dans

tous les chromosomes du génome de la Drosophile.M

La concaténationdonnant un n-uplet du dividende

Le dividende doit avoir au moins une colonne de plus que le diviseur

dividende

X1

Nom du gène

La division

Tous les gènes du génome y

X1

X1

X1

x2

x2

1

10

18

10

18

Nom du gène

Code Chromosome

Tous_les_Gènes_de_5

Code Genome

Code Chromosome

5

5

5

1

10

18

N° Chromosome

II

V

VI

. . .

Tous les Chromosomes du génome Y

Tous_les_Chromosomes_de_5

Page 47: Introduction aux Bases de données en Sciences de la Vie et en Santé

et en SQL :

SELECT Athlète, Count(*) FROM PARTICIPERGROUP BY AthlèteHAVING COUNT(*) = N ;

et en SQL :

SELECT NomDuGène,Count(*) FROM Tous_les_gènes_de_yGROUP BY NomDuGèneHAVING COUNT(*) = N

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)

Page 48: Introduction aux Bases de données en Sciences de la Vie et en Santé

En SQL

SELECT fonction1(attribut1), fonction2(attribut2), ...FROM table;

SELECT SUM(taille) FROM Gènes;

Somme(taille)

98000

Opération CALCULERR = CALCULER (R0, fonction1, fonction2, ...) ou N = CALCULER (R0, fonction)

R1=CALCULER(Gènes, Somme(taille))

Gènes

Code chromosome

IREG1

TRFr

DMT1

TNFa

1

1

8

8

Nom Source SéquenceADN

Code Gene

1

2

3

4

Produit gène ?

Prod1

Prod2

taille

20000

30000

45000

3000

On désire obtenir la taille totale des zones codantes

Page 49: Introduction aux Bases de données en Sciences de la Vie et en Santé

Opération REGROUPER_ET_CALCULERR=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.

Code chromosome codante

1 50000

8 48000

R2=REGROUPER_ET_CALCULER

(Gènes,CodeChromosome,

codante : Somme(taille))

Sum (taille)

On désire obtenir le total de la zone codante par

chromosomeGènes

Code chromosome

IREG1

TRFr

DMT1

TNFa

1

1

8

8

Nom Source SéquenceADN

Code Gene

1

2

3

4

Produit gène ?

Prod1

Prod2

taille

20000

30000

45000

3000

Le regroupement s'effectue sur un sous ensemble des attributs de la

relation R0.

Page 50: Introduction aux Bases de données en Sciences de la Vie et en Santé

EN SQL

Select codeChromosome, SUM(taille) as codante from Genes Group by CodeChromosome

Page 51: Introduction aux Bases de données en Sciences de la Vie et en Santé
Page 52: Introduction aux Bases de données en Sciences de la Vie et en Santé

Les opérations ensemblistes

Produit

Différence

Union

Intersection A n B

A U B

A - B

!!A x B

!!!

Page 53: Introduction aux Bases de données en Sciences de la Vie et en Santé

E1 : Enseignants élus au CA E2 : Enseignants représentants syndicaux

n° enseignant nom_enseignant n°enseignant nom_enseignant

1 DUPONT 1 DUPONT

3 DURAND 4 MARTIN

4 MARTIN 6 MICHEL

5 BERTRAND

Les deux relations doivent avoir le même nombre d'attributs définis dans le même domaine. On parle de relations ayant le même schéma. La relation résultat possède les attributs des relations d'origine et les n-uplets de chacune, avec élimination des doublons éventuels.

Opération UNIONOn désire obtenir

l'ensemble des enseignants élus au CA ou

représentants syndicaux.Formalisme : R = UNION (R1, R2)

n°enseignant nom_enseignant

1 DUPONT

3 DURAND

4 MARTIN

5 BERTRAND

6 MICHEL

R1=UNION (E1, E2)

Page 54: Introduction aux Bases de données en Sciences de la Vie et en Santé

Sélection

Cycle ou lipide

Revenons à la génomique :

Exemple 1

Quels sont les gènes qui sont connus d’être impliqués dans le métabolisme du fer OU dans le cycle cellulaire ?

Sélection

Fer

Gènes

Clé chromosome

X1

X1

.

1

8

.

Nom du gène

Métabolisme

Description Fonctionnelle

.blablabla Iron blabla

.blabla cell cycle blabla

.

Page 55: Introduction aux Bases de données en Sciences de la Vie et en Santé

Exemple :

SELECT n°enseignant, NomEnseignant FROM E1UNIONSELECT n°enseignant, NomEnseignant FROM E2

Opération UNIONen langage SQL

SELECT liste d'attributs FROM table1UNIONSELECT liste d'attributs FROM table 2 ;

Exemple :

SELECT NomGène FROM Gènes Where Description_Fonctionnelle like «%iron homéostasie%» UNIONSELECT NomGène FROM Gènes Where Description_Fonctionnelle like «%cell cycle%»

Page 56: Introduction aux Bases de données en Sciences de la Vie et en Santé

Opération Intersection On désire obtenir l'ensemble des enseignants

du CA qui sont représentants syndicaux.

R1=INTERSECT (E1, E2)

n°enseignant nom_enseignant

1 DUPONT

4 MARTIN

Cet opérateur porte sur deux relations de même schéma. La relation résultat possède les attributs des relations d'origine et les n-uplets communs à chacune.

Formalisme : R=INTERSECT (R1, R2)

E1 : Enseignants élus au CA E2 : Enseignants représentants syndicaux

n° enseignant nom_enseignant n°enseignant nom_enseignant

1 DUPONT 1 DUPONT

3 DURAND 4 MARTIN

4 MARTIN 6 MICHEL

5 BERTRAND

Page 57: Introduction aux Bases de données en Sciences de la Vie et en Santé

Autres façons d’organiser les gènes : catégoriser les gènes par métabolisme et créer une table pour chaque métabolisme ?

Exemple Génomique

Quels sont les gènes qui sont connus d ’être impliqués dans le métabolisme du fer ET dans le cycle cellulaire ?

CodeGène Produit/rôle

1 .4 .

FER! Cycle cellulaire!CodeGène Produit/rôle ... CodeGène Produit/rôle ...

1 . 1 . 3 . 4 . 4 . 6 . 5 .

Page 58: Introduction aux Bases de données en Sciences de la Vie et en Santé

Exemple :

SELECT n°enseignant, NomEnseignant FROM E1INTERSECTSELECT n°enseignant, NomEnseignant FROM E2 ;

Opération INTERSECTIONSELECT attribut1, attribut2, ... FROM table1INTERSECTSELECT attribut1, attribut2, ... FROM table2 ;

attribut1 IN (SELECT attribut1 FROM table2) ;SELECT attribut1, attribut2, ... FROM table1WHERE

OU

ou

SELECT n°enseignant, NomEnseignant FROM E1WHERE n°enseignant IN (SELECT n°enseignant FROM E2) ;

Exemple :

SELECT CodeGène, Produit FROM FERINTERSECTSELECT CodeGène, Produit FROM Cycle ;

ou

SELECT CodeGène, Produit FROM FERWHERE CodeGène IN (SELECT CodeGène FROM Cycle) ;

Page 59: Introduction aux Bases de données en Sciences de la Vie et en Santé

Opération Différence On désire obtenir l'ensemble des enseignants

du CA qui ne sont pas représentants syndicaux.

R1=DIFFERENCE (E1, E2) n°enseignant nom_enseignant

3 DURAND

5 BERTRAND

Cet opérateur porte sur deux relations de même schéma. La relation résultat possède les attributs des relations d'origine et les n-uplets de la première relation qui n'appartiennent pas à la deuxième. Attention ! DIFFERENCE (R1, R2) ne donne pas le même résultat que DIFFERENCE (R2, R1)

Formalisme : R=DIFFERENCE (R1, R2)

E1 : Enseignants élus au CA E2 : Enseignants représentants syndicaux

n° enseignant nom_enseignant n°enseignant nom_enseignant

1 DUPONT 1 DUPONT

3 DURAND 4 MARTIN

4 MARTIN 6 MICHEL

5 BERTRAND

Page 60: Introduction aux Bases de données en Sciences de la Vie et en Santé

Revenons aux bases de données génomiques :

Exemple 1

Quels sont les gènes qui sont connus d ’être impliqués dans le métabolisme du fer mais pas dans le cycle cellulaire ?

CodeGène Produit/rôle

3 .5 .

FER! Cycle cellulaire!CodeGène Produit/rôle ... CodeGène Produit/rôle ...

1 . 1 . 3 . 4 . 4 . 6 . 5 .

Page 61: Introduction aux Bases de données en Sciences de la Vie et en Santé

Exemple :

SELECT n°enseignant, NomEnseignant FROM E1EXCEPTSELECT n°enseignant, NomEnseignant FROM E2 ;

ou

SELECT n°enseignant, NomEnseignant FROM E1WHERE n°enseignant NOT IN (SELECT n°enseignant FROM E2) ;

Opération DIFFERENCE

SELECT attribut1, attribut2, ... FROM table1EXCEPT

SELECT attribut1, attribut2, ... FROM table2 ;

ou

SELECT attribut1, attribut2, ... FROM table1WHERE attribut1 NOT IN (SELECT attribut1 FROM table2) ;

Exemple :

SELECT CodeGène, Produit FROM FEREXCEPTSELECT CodeGène, Produit FROM Cycle ;ou

SELECT CodeGène, Produit FROM FERWHERE CodeGène NOT IN (SELECT CodeGène FROM Cycle) ;

Page 62: Introduction aux Bases de données en Sciences de la Vie et en Santé

Base de données génomique :

• Quels sont les gènes impliqués dans le métabolisme du fer ou dans le cycle cellulaire ?

Gènes

Clé chromosome

X1

X1

.

5-II

.

.

Nom du gène

Métabolisme_

familleFonctionnelle_...

.blablabla Iron blabla

.blabla cell cycle blabla

.

Sélection

Cycle ou lipide

Sélection

Fer

• Quels sont les gènes impliqués à la fois dans le métabolisme du fer, et dans le cycle cellulaire (ou des lipides) ?

• Quels sont ceux qui sont cycle cellulaire mais pas fer (pour l’instant !) ?

Page 63: Introduction aux Bases de données en Sciences de la Vie et en Santé

Etudiants Epreuves

n°étudiant nom libellé épreuve coefficient

101 DUPONT Informatique 2

102 MARTIN Mathématiques 3

Gestion financière 5

Opération PRODUIT CARTESIEN

Examen = PRODUIT (Etudiants, Epreuves)

n°étudiant nom libellé épreuve coefficient

101 DUPONT Informatique 2

101 DUPONT Mathématiques 3

101 DUPONT Gestion financière 5

102 MARTIN Informatique 2

102 MARTIN Mathématiques 3

102 MARTIN Gestion financière 5

Formalisme : R = PRODUIT (R1, R2)

Page 64: Introduction aux Bases de données en Sciences de la Vie et en Santé

SELECT * FROM table1, table2 ;

Exemple :

SELECT * FROM Etudiants, Epreuves ;

Opération PRODUIT CARTESIEN

Facile ! Mais attention à son utilisation.

Ce n ’est pas une JOINTURE, ni une UNION !

Exemple d’utilisation - sémantiquement :

• Expression de chaque gène dans tous les organes

• Expression = Gene X Organe

(+ colonne de mesure d ’expression)

Page 65: Introduction aux Bases de données en Sciences de la Vie et en Santé

Principe d'écriture d'une requête

Les interrogations portant sur une base sont réalisées en enchaînant plusieurs requêtes successives

sélectioncritère 1

sélection

Critère 2p

rojectio

n

{atti}

pro

jection

{attj}

join

ture

au moins un attribut

commun

Page 66: Introduction aux Bases de données en Sciences de la Vie et en Santé

Remarque : les clés primaires sont soulignées et les clés étrangères sont marquées par *

Exemple1

On désire obtenir le code et le nom des clients ayant commandé le 10/06/97 ???1

*

Soient les deux tables (ou relations) suivantes :

CLIENT COMMANDECodeClient N°Commande

NomClient, Date

AdrClient, CodeClient*

TélClient

Page 67: Introduction aux Bases de données en Sciences de la Vie et en Santé

On désire obtenir le code et le nom des clients ayant commandé le 10/06/97 ???

CLIENT

CodeClient

NomClient,

adrClient,

TélClient

join

ture

CodeClient =

CodeClient

R2

N°Commande

Date

CodeClient

NomClient

adrClient

TélClient

R1

N°Commande

Date

CodeClient*

sélection

Date = 10/06/97

CodeClientNomClient

projection

COMMANDE

N°Commande

Date

CodeClient*

INPUT

R3

CodeClient

NomClient

OUTPUT

Page 68: Introduction aux Bases de données en Sciences de la Vie et en Santé

Remarque : les clés primaires sont soulignées et les clés étrangères sont marquées par *

Exemple

On désire obtenir tous les gènes impliqués dans le métabolisme des lipides de l ’espèce E, et qui sont compris entre la position n1 et n2 du chromosome II 1 *

Soient les deux tables (ou relations) suivantes :

Chromosomes

CodeGenome GènesCodeChromosome, CodeChromosome

Taille, Nom_Numéro

... Position

... Métabolisme ...

Page 69: Introduction aux Bases de données en Sciences de la Vie et en Santé

CodeGénome = CodeGénomeet Nom_Numéro = « II »

Chromosome

CodeGenome

CodeChromosome

Taille,

Nom_Numéro, ...

join

ture

R1

CodeGénome

Espèce

Espèce = « E »

sélection

INPUTCodeGénome

Nb_chromosome

Taille

Espèce

Génome

jointure

CodeChromosome = CodeChromosome

R3

CodeChromosome

Espèce, taille, Nom, métabolisme

etc...

R2

CodeGenome

CodeChromosome

Espèce

Taille, etc

Gènes

CodeChromosome

CodeGene

Nom

Métabolisme

Position

Taille

Etc etc

Selection (lipides)

puis projection

Le chromosome II du génome de l ’espèce E

Les gènes du chromosome II du

génome de l ’espèce E

Page 70: Introduction aux Bases de données en Sciences de la Vie et en Santé

Remarque importante

Si l'on ne précisait pas CLIENT.CodeClient au niveau du SELECT, la commande SQL ne pourrait pas s'exécuter. En effet il y aurait ambiguïté sur le CodeClient à projeter : celui de la table CLIENT ou celui de la table COMMANDE ?

Principe d'écriture d'une requête

Une même instruction SELECT (SQL) permet de combiner Sélections, Projections, Jointures.

Exemple :

SELECT DISTINCT CLIENT.CodeClient, NomClientFROM CLIENT, COMMANDEWHERE CLIENT.CodeClient=COMMANDE.CodeClient AND Date='10/06/97';

Page 71: Introduction aux Bases de données en Sciences de la Vie et en Santé

Foprmalisme : R = TRI(R0, att1À, att2Å, ...)

Espèce Catégorie Conditionnement

Rosé des prés Conserve Bocal

Rosé des prés Sec Verrine

Coulemelle Frais Boîte

Rosé des prés Sec Sachet plastique

Champignons

R1 = TRI (CHAMPIGNONS, EspèceÅ, CatégorieÀ, ConditionnementÀ)

Espèce Catégorie Conditionnement

Rosé des prés Conserve Bocal

Rosé des prés Sec Sacher plastique

Rosé des prés Sec Verrine

Coulemelle Frais Boîte

Le tri s'effectue sur un ou plusieurs attributs, dans l'ordre croissant ou décroissant.

La relation résultat a la même structure et le même contenu que la relation de départ.

Compléments : Opération TRI

Page 72: Introduction aux Bases de données en Sciences de la Vie et en Santé

Exemple :

SELECT Espèce, Catégorie, ConditionnementFROM ChampignonsORDER BY Espèce DESC, Catégorie ASC, Conditionnement ASC ;

Remarque : par défaut le tri se fait par ordre croissant si l'on ne précise pas ASC ou DESC.

En langage SQL

SELECT attribut1, attribut2, attribut3, ...FROM tableORDER BY attribut1 ASC, attribut2 DESC, ... ;

ASC : par ordre croissant (Ascending)

DESC : par ordre décroissant (Descending)

Page 73: Introduction aux Bases de données en Sciences de la Vie et en Santé

Attributs renommés

R=PROJECTION(R0, att1, att2, att3, att4, newatt1:att1*att2, newatt2:att3/att2)

Attributs calculés et renommés

Le calcul est spécifié lors d'une projection ou lors de l'utilisation d'une fonction.

Un attribut calculé est un attribut dont les valeurs sont obtenues par des opérations

arithmétiques portant sur des attributs de la même

relation.

Il est possible de renommer n'importe quel

attribut en le faisant précéder de son nouveau

nom suivi de ":".

Atributs calculés

R=PROJECTION(R0, att1, att2, att3, att4, att1*att2, att3/att2)

Page 74: Introduction aux Bases de données en Sciences de la Vie et en Santé

Exemple

R

N°BonCommande CodeProduit Montant

96008 A10 830

96008 B20 1120

96009 A10 1660

96010 A15 440

96010 B20 1760

LIGNE_COMMANDE

N°BonCommande CodeProduit Quantité PuHt

96008 A10 10 83

96008 B20 35 32

96009 A10 20 83

96010 A15 4 110

96010 B20 55 32R=PROJECTION(LIGNE_COMMANDE,N°BonCommande, CodeProduit,Montant:Quantité*PuHt)

Page 75: Introduction aux Bases de données en Sciences de la Vie et en Santé

Les fonctions de calcul portent sur un ou plusieurs groupes de n-uplets et évidemment sur un attribut de type numérique.

Les Fonctions ensemblistes

Somme(attribut) : total des valeurs d'un attribut

Moyenne(attribut) : moyenne des valeurs d'un attribut

Minimum(attribut) : plus petite valeur d'un attribut

Maximum(attribut) : plus grande valeur d'un attribut

Ces fonctions sont utilisées dans les opérateurs :

• calculer

• regrouper-et-calculer.

Page 76: Introduction aux Bases de données en Sciences de la Vie et en Santé

La fonction de comptage : Comptage()

La fonction de comptage donne le nombre de n-uplets d'un ou de plusieurs groupes de n-uplets. Il n'est donc pas nécessaire de préciser d'attribut.

Les Fonctions ensemblistes

Page 77: Introduction aux Bases de données en Sciences de la Vie et en Santé

La fonction de comptage

COUNT(*) : nombre de n-uplets

COUNT(DISTINCT attribut) : nombre de valeurs

différentes de l'attribut

Les Fonctions ensemblistes : en SQL

Les fonctions de calcul

SUM (attribut) : total des valeurs d'un attributAVG (attribut) : moyenne des valeurs d'un attributMIN (attribut) : plus petite valeur d'un attributMAX (attribut) : plus grande valeur d'un attribut

Page 78: Introduction aux Bases de données en Sciences de la Vie et en Santé

[ ] : optionnel| : ou

SQL : Syntaxe simplifiée de l'instruction SELECT

SELECT [ * | DISTINCT] att1 [, att2, att3, ...]

FROM Table1 [, Table2, Table3, ...]

[WHERE conditions de sélection [et/ou de jointure]]

[GROUP BY att1 [, att2, ...]

[HAVING conditions de sélection sur les groupes de GROUP BY]]

[ORDER BY att1 [ASC | DESC] [, att2 [ASC | DESC], ...] ;

Page 79: Introduction aux Bases de données en Sciences de la Vie et en Santé

SQL est un langage de Manipulation de données relationnelles

LMD-R

• Recherche de tuples vérifiant certains critères• Insertion de tuples • Suppression de tuples vérifiant certains critères• Modification de tuples vérifiant certains critères

Opérations :

Ce langage n’est pas utilisable à lui seul, il doit aussi pouvoir être incorporable dans un langage de

programmation classique.

Assertionnel - complet

Logique des prédicats d ’ordre 1

Spécifier sans dire comment y accéder

Page 80: Introduction aux Bases de données en Sciences de la Vie et en Santé

Le langage SQL est un langage normalisé.

C’est à la fois :

un langage d'interrogation de données (LID) : SELECT;

un langage de manipulation de données (LMD) : UPDATE, INSERT, DELETE;

un langage de définition des données (LDD) : ALTER, CREATE, DROP;

un langage de contrôle des données et des utilisateurs (LCD) : GRANT, REVOKE.

Page 81: Introduction aux Bases de données en Sciences de la Vie et en Santé

Soit le modèle relationnel suivant relatif à la gestion des notes annuelles d'une promotion d'étudiants :

Exercice d'application n°2

7 - Quels sont les étudiants qui ont une moyenne générale supérieure ou égale à la moyenne générale de la promotion ?

Remarque : les clés primaires sont soulignées et les clés étrangères sont marquées par *

Etudiant

Matière

1

*

1 *

Evaluer

ETUDIANT(N°Etudiant, Nom, Prénom)MATIERE(CodeMat, LibelléMat, CoeffMat)EVALUER(N°Etudiant*, CodeMat*, Date, Note)

Questions :

1 - Quel est le nombre total d'étudiants ?

2 - Quelles sont, parmi l'ensemble des notes, la note la plus haute et la note la plus

basse ?

3 - Quelles sont les moyennes de chaque étudiant dans chacune des matières ?4 - Quelles sont les moyennes par matière ?5 - Quelle est la moyenne générale de chaque étudiant ?

6 - Quelle est la moyenne générale de la promotion ?

Page 82: Introduction aux Bases de données en Sciences de la Vie et en Santé

1 - Quel est le nombre total d'étudiants ?N=CALCULER(ETUDIANT, Comptage())

2 - Quelles sont, parmi l'ensemble des notes, la note la plus haute et la note la plus basse ?R=CALCULER(EVALUER, Minimum(Note), Maximum(Note))

3 - Quelles sont les moyennes de chaque étudiant dans chacune des matières ?R1=REGROUPER_ET_CALCULER(EVALUER, N°Etudiant, CodeMat, MoyEtuMat : Moyenne(Note))

R2=JOINTURE(R1, MATIERE, MATIERE.CodeMat=R1.CodeMat)

R3=JOINTURE(R2, ETUDIANT, ETUDIANT.N°Etudiant=R2.N°Etudiant)MOYETUMAT=PROJECTION(R3, N°Etudiant, Nom, Prénom, LibelléMat, CoeffMat, MoyEtuMat)

Correction de l'exercice d'application n°2

(faire un graphique)

Page 83: Introduction aux Bases de données en Sciences de la Vie et en Santé

4 - Quelles sont les moyennes par matière ?Idem question 3 puis :R4=REGROUPER_ET_CALCULER(MOYETUMAT, LibelléMat, Moyenne(MoyEtuMat))

5 - Quelle est la moyenne générale de chaque étudiant ?Idem question 3 puis :MGETU=REGROUPER_ET_CALCULER(MOYETUMAT, N°Etudiant, Nom, Prénom, MgEtu : Somme(MoyEtuMat*CoeffMat)/Somme(CoeffMat))

6 - Quelle est la moyenne générale de la promotion ?Idem question 5 puis :MG=CALCULER(MGETU, Moyenne(MgEtu))

7 - Quels sont les étudiants qui ont une moyenne générale supérieure ou égale à la moyenne générale de la promotion ?idem question 5 et 6 puis :R=SELECTION(MGETU, MgEtu>=MG)

Page 84: Introduction aux Bases de données en Sciences de la Vie et en Santé

1 - Quel est le nombre total d'étudiants ?

SELECT COUNT(*) FROM ETUDIANT ;

2 - Quelles sont, parmi l'ensemble des notes, la note la plus haute et la note la plus basse ?

SELECT MIN(Note), MAX(Note) FROM EVALUER ;

3 - Quelles sont les moyennes de chaque étudiant dans chacune des matières ?

CREATE VIEW MOYETUMAT ASSELECT ETUDIANT.N°Etudiant, Nom, Prénom, LibelléMat, CoeffMat, AVG(Note) AS MoyEtuMat

Correction de l'exercice d'application n°2

FROM EVALUER, MATIERE, ETUDIANT

WHERE EVALUER.CodeMat = MATIERE.CodeMatAND EVALUER.N°Etudiant = ETUDIANT.N°EtudiantGROUP BY ETUDIANT.N°Etudiant, Nom, Prénom, LibelléMat, CoeffMat;

En SQL

Page 85: Introduction aux Bases de données en Sciences de la Vie et en Santé

Remarque : la commande CREATE VIEW va permettre de réutiliser le résultat de la requête (notamment aux deux questions suivantes) comme s'il s'agissait d'une nouvelle table (bien qu'elle soit régénérée dynamiquement lors de son utilisation).Sous Access, il ne faut pas utiliser la commande CREATE VIEW mais seulement enregistrer la requête. Il est alors possible de s'en resservir comme une table.

4 - Quelles sont les moyennes par matière ?Avec la vue MOYETUMAT de la question 3 :

5 - Quelle est la moyenne générale de chaque étudiant ?Avec la vue MOYETUMAT de la question 3 :CREATE VIEW MGETU AS SELECT N°Etudiant, Nom, Prénom, SUM(MoyEtuMat*CoeffMat)/SUM(CoeffMat) AS MgEtuFROM MOYETUMAT GROUP BY N°Etudiant, Nom, Prénom ;

SELECT LibelléMat, AVG(MoyEtuMat) FROM MOYETUMAT GROUP BY LibelléMat ;

Page 86: Introduction aux Bases de données en Sciences de la Vie et en Santé

6 - Quelle est la moyenne générale de la promotion ?Avec la vue MGETU de la question 5 :SELECT AVG(MgEtu) FROM MGETU ;

7 - Quels sont les étudiants qui ont une moyenne générale supérieure ou égale à la moyenne générale de la promotion ?Avec la vue MGETU de la question 5 :SELECT N°Etudiant, Nom, Prénom, MgEtuFROM MGETU WHERE MgEtu >= (SELECT AVG(MgEtu) FROM MGETU) ;

Page 87: Introduction aux Bases de données en Sciences de la Vie et en Santé

Du monde Réel au SGBD

SYSTEMES D’INFORMATIONS

Monde Réel

Modèle Conceptuel

Modèle Logique

Modèle Physique

SGBD

Page 88: Introduction aux Bases de données en Sciences de la Vie et en Santé

Modélisation Conceptuelle

Objectif essentiel de la modélisation Conceptuelle

Définir les informations pertinentes pour les applications envisagées en mettant l'accent sur :

1. La structure (l'organisation) de ces informations.

2. Le haut niveau d'abstraction : un schéma conceptuel doit être indépendant de tout choix d'implémentation.

En pratique, le modèle conceptuel le plus utilisé est le modèle Entité-Association, initialement proposé en 1976.

Page 89: Introduction aux Bases de données en Sciences de la Vie et en Santé

Le modèle Entité-Association

Il se construit par :

- Perception (entités? Associations?)

- Classification (mêmes entités? Mêmes associations?)

- Description (quelles caractéristiques? quels attributs?)

- Abstraction (quels types? quelles classes?)

Page 90: Introduction aux Bases de données en Sciences de la Vie et en Santé

Le modèle Entité-Association

Entité : Représentation d'un objet concret présent dans la réalité du monde et présentant un intérêt pour la compréhension de cette réalité (phase d’abstraction).

Une entité existe en tant que telle, a une identité propre, c'est-à-dire qu'elle peut être décrite et manipulée sans qu'il soit nécessaire de connaître les autres entités de ce réel.

Exemple : une personne, une voiture, une salle, ...

Page 91: Introduction aux Bases de données en Sciences de la Vie et en Santé

Le modèle Entité-Association

Attribut : Propriété ou caractéristique d'une entité.C'est une information élémentaire dont la décomposition ne présente aucun intérêt pour l'application. Exemple : nom, prénom, date de naissance, ...

Identifiant ou Clé : Attribut (ou ensemble d'attributs) permettant d'identifier de manière unique les occurrences de l'entité. Exemple : (nom, prénom).

Souvent, on crée un identifiant abstrait (un numéro par exemple).

Page 92: Introduction aux Bases de données en Sciences de la Vie et en Santé

Le modèle Entité-Association

Association :Lien sémantique entre deux (ou plusieurs) entités.Une association n'existe que par rapport aux entités qu'elles relient. Une association n'est pas autonome, contrairement à une entité.

Cardinalité d'une association :Couple de valeurs [m,n] (avec m < n), traduisant les nombres minimum et maximum d'occurrences d'associations auxquelles peut participer une occurrence d'entité.

Une occurrence d'association est définie par une occurrence de chacune des entités participantes.

Page 93: Introduction aux Bases de données en Sciences de la Vie et en Santé

Modèle Entité-Association

Protéines

N° Acc Descrip

Sequence

est-partenaire Complexe Protéique

Fonction Conformation

Entités

Associations

0.n 2.n

Cardinalité 0.n pour l´entité Protéines exprime qu‘une protéine peut être partenaire dans 0 ou plusieurs complexes protéiques

Page 94: Introduction aux Bases de données en Sciences de la Vie et en Santé

Professeur

# nomprenomadressegrade

Cours

# idnomvol horfilière

donne1.n 0.n

Entités

Attributs

Identifiant

Association

Cardinalités

Cardinalité 1.n pour l´entité Professeur exprime qu‘un professeur donne (1) cours ou plusieurs (n) cours.

Cardinalité 0.n pour l ’entité Cours exprime : un cours est donné par aucun (0) ou plusieurs professeurs.

Page 95: Introduction aux Bases de données en Sciences de la Vie et en Santé

Le modèle Entité association

Page 96: Introduction aux Bases de données en Sciences de la Vie et en Santé

Modèle de Données

Définition : Un modèle de données est un ensemble de concepts et de règles de composition de ces concepts permettant de décrire les données.

Page 97: Introduction aux Bases de données en Sciences de la Vie et en Santé

Modèle Relationnel

Le modèle de données proposé dans le modèle relationnel consiste à percevoir l'ensemble des données comme des tables (Relations).

GénomeEspèce

CodeGenome Nb_chromosomes

Arabidopsis_thaliana

Yeast

Drosophile

Mouse

Human

ZebraFish

ARB

YST

DRL

MOU

HUM

ZBF

5

16

5

44

46

25tuple

n-uplet

Nom de la relationAttribut

Page 98: Introduction aux Bases de données en Sciences de la Vie et en Santé

Modèle Relationnel : Définitions

• Un domaine est un ensemble de valeurs.Exemple :L'ensemble des entiers N. L'ensemble des booléens {0,1}.L'ensemble des couleurs {jaune, vert, gris, ...}.

• Un attribut prend ses valeurs dans un domaine. Plusieurs attributs peuvent appartenir à un même domaine.

• Un n-uplet (ou tuple) est une liste de n valeurs (v1, …,vn) où chaque valeur vi est la valeur d'un attribut Ai de domaine Di (vi Di).

Page 99: Introduction aux Bases de données en Sciences de la Vie et en Santé

Modèle Relationnel : Définitions

• Le Produit cartésien D1 ... Dn entre des domaines D1, … , Dn est l'ensemble de tous les n-uplets possibles

(v1, ... vn) où vi Di

• Une Relation définie sur les attributs A1, ..., An est un sous-ensemble du produit cartésien D1 ... Dn où

D1,..., Dn sont les domaines respectifs de A1, ..., An.

R est un ensemble de n-uplets.• Une relation R est représentée sous forme d'une table.• L'ordre des colonnes ou des lignes n'a pas d'importance.• Les colonnes sont distinguées par les noms d'attributs et chaque ligne représente un élément de l'ensemble R (un n-uplet).• Un attribut peut apparaître dans plusieurs relations.

Page 100: Introduction aux Bases de données en Sciences de la Vie et en Santé

Modèle Relationnel : Définitions

Le schéma d'une relation R est défini par le nom de la relation et la liste des attributs, avec pour chaque attribut son domaine.

Notation : R(A1:D1, … , An:Dn) ou plus simplement :

R(A1, … , An)

Exemple :COURS(Id: char(10), Nom:char(20), VolHor:num, Filiere:char(30))ou COURS(Id, Nom, VolHor, Filiere)

L'arité d'une relation R est le nombre de ses attributs (nombre de colonnes).Par exemple, la relation COURS est d'arité 4.

Page 101: Introduction aux Bases de données en Sciences de la Vie et en Santé

Modèle Relationnel : Définitions

• Une Base de Données Relationnelle est un ensemble de relations.

• Le schéma logique d'une Base de Données Relationnelle est l'ensemble des schémas de ses relations.

Page 102: Introduction aux Bases de données en Sciences de la Vie et en Santé

Conception et Définition d'un Schéma Relationnel

La première étape de la construction d'une base de données est la définition du schéma logique de la base.

Pour une « bonne » définition du schéma logique, il est nécessaire de concevoir au préalable un schéma conceptuel décrivant de manière structurée et formalisée les informations de l'application pour laquelle on veut construire la base de données.

Des règles sont définies pour le passage d'un schéma conceptuel (conçu selon un modèle conceptuel choisi : Entité-Association, Merise, OMT, UML²...) vers un schéma logique (dans le modèle de données choisi : relationnel, objets, …)

Page 103: Introduction aux Bases de données en Sciences de la Vie et en Santé

Règles de passage du modèle Entité-Association au modèle Relationnel

Entité :• Chaque entité devient une relation (ou table).

• Chaque attribut de l'entité devient un attribut de la relation, y compris l'identifiant.

• Les attributs issus de l'identifiant constituent la clé de la relation.

Remarque : Pour les distinguer des autres attributs, on les souligne dans le schéma de la relation.

Exemple :PROFESSEUR(nom, Prenom, Adresse, Grade)COURS(Id, Nom, VolHor, Filiere)

Page 104: Introduction aux Bases de données en Sciences de la Vie et en Santé

Règles de passage du modèle Entité-Association au modèle Relationnel

Soit une association entre deux entités A et B.

Chacune des entités A et B devient une relation, respectivement RA et RB. Puis, si ...

Association x.1/x.n :• L'identifiant de B devient attribut supplémentaire de RA. Ce sera une

clé étrangère.

Association x.n/y.n :• On crée une relation RAB pour l'association.• La clé de RAB est la concaténation des clés des relations RA et RB.• Les attributs de l'association deviennent des attributs de RAB.

RA RBasso1.1 1.n

Entries EspèceClé espèce

RA RBasso1.n 1.n

ac

Entries Références

coderef ref_num

Page 105: Introduction aux Bases de données en Sciences de la Vie et en Santé

Règles de passage du modèle Entité-Association au modèle Relationnel

Seance (Id,Id,Id,tarif)

Page 106: Introduction aux Bases de données en Sciences de la Vie et en Santé

Modèle Relationnel : Opérations

Modifications

• Insertion : Insérer un n-uplet dans une relation.• Destruction : Détruire un n-uplet dans une relation.• Modification : Modifier une ou plusieurs valeurs

d'un attribut dans une relation.

Page 107: Introduction aux Bases de données en Sciences de la Vie et en Santé

Modèle Relationnel : Opérations

InterrogationsRq : Le résultat de l'interrogation d'une ou de plusieurs relations est une nouvelle relation.

Cinq opérations de base pour exprimer toutes les requêtes :

• Opérations unaires : sélection, projection.• Opérations binaires : union, différence, produit cartésien.• Autres opérations qui s'expriment en fonction des 5

autres fonctions de base : jointure, intersection, division.

Page 108: Introduction aux Bases de données en Sciences de la Vie et en Santé

Petit exercice - modèle relationnell

On souhaite créer une base de données concernant une entreprise. Une première étude a mis en évidence trois relations. Pour chacune des relations, la clé est soulignée.

EMPLOYE (NumEmp, Nom, Prénom, Adresse, Téléphone, Qualification) SERVICE (NomService, Responsable, Téléphone) PROJET (NomProjet, DateDeb, DateFin, NumEmp)

En considérant les possibilités offertes par ce schéma, répondre aux questions suivantes en justifiant vos réponses par rapport au modèle relationnel et par rapport à la sémantique intuitive des relations :

Question 1 : Un employé peut il avoir plusieurs qualifications ?

Question 2 : Un employé peut il faire plusieurs projets en même temps ?

Question 3 : Une personne peut elle être responsable de plusieurs services ?

Question 4 : Un service peut il avoir plusieurs responsables ? TD de modélisation

Page 109: Introduction aux Bases de données en Sciences de la Vie et en Santé

Sur le contrôle de la cohérence lors d’une interrogation ou d’un accès concurrent

t0X = a

Instant t0 : Select attribut XFROM TABLE

WHERE condition

User 1

Instant t1 : Update attribut X

FROM TABLE

User 2

t1 X := b

commitX = a

commitX = b

Page 110: Introduction aux Bases de données en Sciences de la Vie et en Santé

Cohérence lors de plusieurs interrogations ou MAJ

Si l ’utilisateur ne veut pas que l’on modifie la table pendant une session de travail il peut la verrouiller en mode partagé :

LOCK TABLE nom_table IN SHARE MODE NOWAIT

NOWAIT spécifie que le process qui demande le verrou n ’est pas mis en attente si celui-ci n ’est pas disponible.

LOCK TABLE nom_table IN EXCLUSIVE MODE NOWAIT

Pour s ’assurer l ’accès exclusif en modification à une table, on peut verrouiller cette table en mode EXCLUSIF :

La table n ’est accessible aux autres utilisateurs qu’en lecture et ne peuvent plus la verrouiller

ni en mode exclusif, ni en mode mise à jour partagéni en mode partagé

jusqu ’à la fin de la transaction.

Page 111: Introduction aux Bases de données en Sciences de la Vie et en Santé

L'emploi de verrous implique que certaines transactions soient mises en attente quand elles ne peuvent pas obtenir un verrou.

Pour que cette attente ne soit pas infinie, on utilise souvent une file d'attente FIFO, ce qui assure que toute transaction passera à son tour, sauf s'il y a un interblocage (ou DEADLOCK) des transactions qui s'attendent mutuellement.

Exemple d'interblocage :

temps Transaction A Transaction B

t1 XFIND E1t2 XFIND E2t3 XFIND E2t4 XFIND E1

La transaction A est mise en attente au temps t3 et B au temps t4. Les deux transactions s'attendent mutuellement.

Page 112: Introduction aux Bases de données en Sciences de la Vie et en Santé

Deux cas de figures de rupture de cohérence

M.A.J à partir d’une valeur périméeA est un objet de la base de données

contrainte d’intégrité : A = BA et B sont les objets de la base de

données

T1

1 : A := A*2;2: A := A+1;

3: B := B+1;4: B := B*2;

T2

A=6

A=7

B=4

B=8

A = 3 ; B = 3 ;

Avec une telle exécution, les données ne sont pas mises à jour correctement,

Ce qui rend A ‡ BUne exécution séquentielle de T1 puis T2,

sauvegarde la cohérence

T1

1 : a : = A;2: b := A;

3: b := b+1;

4: A := b;

5: a := 2*a; 6: A := a;

T2

valeur de A déjàpérimée

Incohérence survenue lorsqu’une transaction T1 exécute un calcul ou une

MAJ à partir d’une valeur périmée de données, modifiée par une autre

transaction

A=7 ; B=8

Page 113: Introduction aux Bases de données en Sciences de la Vie et en Santé

Dans tout SGBD on trouve un composant chargé du contrôle de l ’accès concurrent aux données.

Il doit être tel que chaque utilisateur obtienne des données cohérentes en cas de mises à jour simultanées de la base.

Page 114: Introduction aux Bases de données en Sciences de la Vie et en Santé

Droits d’accès aux tables

La protection des objets d’une BD est décentralisée : c’est le créateur d’un objet qui possède tous les droits de lecture, de modif, de suppression, …

Les autres utilisateurs n ’ont aucun droit d ’accès à cet objet à moins que le créateur ne les leur accorde explicitement par une commande GRANT

GRANT privilège ON (nom_table/nom_vue) to nom_utilisateur

Les privilèges pouvant être accordés :SELECTINSERTUPDATE(col,…)DELETEALTERALL

Un utilisateur ayant reçu un privilège avec GRANT peut le transmettre à son tour.

Exemple :GRANT SELECT ON emp TO douglasGRANT SELECT,UPDATE ON emp TO PUBLIC

Page 115: Introduction aux Bases de données en Sciences de la Vie et en Santé

Bases de données avancées

En dépit de sa simplicité et de son élégance, le modèle relationnel n’apporte pas une réponse satisfaisante à tous les problèmes des applications, tel que :

Prendre en compte les objets de structure complexe ainsi que les opérations qui leurs sont associées (BD Orienté Objet)

Les Objets (dans les SGBDO) ont :

une identité propre : une adresse en mémoire de la machine

des attributs : comme couleur ou taille

un état : comme vert ou 50

un comportement : comme dessiner ou changer-couleur

Page 116: Introduction aux Bases de données en Sciences de la Vie et en Santé

Notion d’héritage

Une classe est une représentation de Type Abstrait de Données, une description générique d’objets de même type.

Un objet est une instance d’une classe.

Les variables peuvent être à leur tour des classes ou variables statiques, ou instance de variables

Illustration sur quelques modèles objet …

Page 117: Introduction aux Bases de données en Sciences de la Vie et en Santé

FRAGMENT

GENE

PROMOTOR TERMINATOR

TRANSCRIBEDFRAGMENT NON TRANSCRIBED/

REGULATOR

is a

PROTEIN

1

* est composé

compose

Modèle orienté objet pour un gène

mRNA

SPLICEDTRANSCRIPT * *

ORF

1

11 *

INTRONSPLICEDTRANSCRIPTCOMPONENT

(EXON)

is a

is a

PRIMARY POLYPEPTIDE

1 1

compose

est composé

snRNA tRNA rRNA

Page 118: Introduction aux Bases de données en Sciences de la Vie et en Santé

Classes et sous-classes

3 classes

Protein-gene

RNA-gene

Gene

3 descriptions

Page 119: Introduction aux Bases de données en Sciences de la Vie et en Santé

Modèle de données : échantillons de cellules d ’une expérience transcriptome : MGED 1999 (hedeilberg)

Page 120: Introduction aux Bases de données en Sciences de la Vie et en Santé

Diverses technologies pour la conception de bases de données

DBMS Orienté-objet

DBMS relationnel

DBMS hybride

ASN.1,XML ...

Essais de standardisation

Page 121: Introduction aux Bases de données en Sciences de la Vie et en Santé

Pourquoi utiliser la technologie ORIENTE-OBJET (OO) ?

Puissance d ’expression de données complexes (nos données bio en question!)

Réutilisation : données et codes - modularité

Requête concise et intuitive sur les objets

Une navigation facile de données complexes

Identifiant unique d’un objet

Relationnel DBMS simple,

Relationnel DBMS mature,

Tout le monde a un Relationnel DBMS !

Standardisation

SQL3

Pourquoi ne pas utiliser la technologie OO ?

Page 122: Introduction aux Bases de données en Sciences de la Vie et en Santé

• Prendre en compte des données peu structurées : sons, texte, images, vidéo (BD multi-média)

Autres bases de données avancées

• Faire le pont avec l ’intelligence artificielle : permettre l’inférence de faits (nouvelles données) à partir des données de la base (BD déductives) – comme DATALOG

Page 123: Introduction aux Bases de données en Sciences de la Vie et en Santé

Entrepôt de BDs, insertion et réutilisation flexible

Propriétés pertinentes

• Une exigence de haute performance• données énormes, données complexes ...• analyse complexe : la réalisation d’une seule tâche

nécessite une intégration d’une large gamme d ’objets complexes et hétérogènes …

• intégration des données d’intérêt à partir de sources externes en vue de construire un environnement intégré pour réaliser des analyses plus pointues (localement!).

Page 124: Introduction aux Bases de données en Sciences de la Vie et en Santé

INTERFACE

CHARGEUR / SOURCES

• Navigation entre objets

• requêtes déclaratives ou complexes

• analyses pointues de donnéesaccès à la base de données

Entrepôt Biologique

Page 125: Introduction aux Bases de données en Sciences de la Vie et en Santé

Un cas de figure …

Sources génomique

Entrepôtbiologique

Intégration

Micro Array Macro Array SAGE...

Données expérimentales

Données cliniques

Analyse

OutilsPossible ?

Hypothèses ?D’autres investigations ?

Expériences ?

Page 126: Introduction aux Bases de données en Sciences de la Vie et en Santé

Source : Jef Wijsen

Page 127: Introduction aux Bases de données en Sciences de la Vie et en Santé
Page 128: Introduction aux Bases de données en Sciences de la Vie et en Santé
Page 129: Introduction aux Bases de données en Sciences de la Vie et en Santé
Page 130: Introduction aux Bases de données en Sciences de la Vie et en Santé
Page 131: Introduction aux Bases de données en Sciences de la Vie et en Santé

NON !

en M2 ! avec le Web Sémantique et les ontologies de domaine.