• Aucun résultat trouvé

Examen d’informatique (base de donn

N/A
N/A
Protected

Academic year: 2022

Partager "Examen d’informatique (base de donn"

Copied!
4
0
0

Texte intégral

(1)

Examen d’informatique (base de donn´ees) – L3 SV

Jean-Baptiste Lamy 17 Mai 2013 - 14h00 - 16h00

Rappel : les documents (cours, TP, notes personnelles) sont autoris´es lors de l’examen. Les t´el´ephones portables sont interdits !

Exercice 1 :

Nous souhaitons cr´eer une base de donn´ees sur les dinosaures afin d’alimenter un CD-ROM ludique et ´educatif.

La base de donn´ees devra contenir des informations sur les esp`eces de dinosaures (ex : Brontosaure, Diplodocus,...), sur les familles taxonomiques (ex : Diplodocidae, Tyrannosauridae) et sur diff´erentes ´epoques (ex : Jurassique inf´erieur, Jurassique moyen, Cr´etac´e,...). On souhaite aussi pouvoir renseigner pour chaque esp`ece de dinosaure son nom, sa taille (en m`etre), la famille correspondante et la ou les ´epoques `a laquelle cette esp`ece a v´ecu. Pour chaque ´epoque, on renseignera la date de d´ebut et la date de fin (en millions d’ann´ees par rapport `a aujourd’hui).

1. Quelles sont les tables n´ecessaires dans cette base de donn´ees ? (1 point) R´eponse :

Table dinosaure, famille, ´epoque, a vecu a lepoque

2. Quelles sont les relations entre ces tables ? De quels types sont-elles ? (1 point) R´eponse :

dinosaure - famille : a pour famille : * - 1 dinosaure - ´epoque : a vecu a lepoque : * - *

3. Quelles sont les attributs de chaque table ? De quels types sont ces attributs ? (1 point) R´eponse :

dinosaure : id (integer), nom (text), taille (float), id famille (integer) famille : id (integer), nom (text)

epoque : id (integer), nom (text), d´ebut (integer), fin (integer) a vecu a lepoque : id dinosaure (integer), id epoque (integer)

4. Donner le code SQL permettant la cr´eation des tables (y compris les tables de liaisons si n´ecessaire). (3 points)

R´eponse :

CREATE TABLE dinosaure (

id INTEGER NOT NULL AUTO INCREMENT PRIMARY KEY, nom TEXT,

-taille FLOAT, id famille INTEGER, ) ;

CREATE TABLE famille (

id INTEGER NOT NULL AUTO INCREMENT PRIMARY KEY, nom TEXT,

) ;

CREATE TABLE epoque (

1

(2)

id INTEGER NOT NULL AUTO INCREMENT PRIMARY KEY, nom TEXT,

debut INTEGER, fin INTEGER, ) ;

CREATE TABLE a vecu a lepoque ( id dinosaure INTEGER,

id epoque INTEGER, ) ;

5. Donner le code SQL permettant d’entrer dans la base de donn´ees : (2 points)

(a) la famille des Pterodactylidae (NB on consid`erera que cette famille re¸coit l’ID n° 32),

(b) l’´epoque du Jurassique sup´erieur, qui a d´ebut´e il y a 161 millions d’ann´ees et s’est achev´ee il y a 145 millions d’ann´ees (NB on consid`erera que cette ´epoque re¸coit l’ID n° 12),

(c) l’esp`ece Pt´eranodon, de la famille Pterodactylidae et mesurant 7,5 m`etres, qui a v´ecu au Jurassique sup´erieur (NB on consid`erera que cette famille re¸coit l’ID n° 124).

R´eponse :

INSERT INTO famille VALUES (32, ”Pterodactylidae”) ;

INSERT INTO epoque VALUES (12, ”Jurassique sup´erieur”, 161, 145) ; INSERT INTO dinosaure VALUES (124, ”Pt´eranodon”, 7.5, 32) ; INSERT INTO a vecu a lepoque VALUES (124, 12) ;

(Tournez la page SVP)

2

(3)

Exercice 2 :

Nous avons r´ealis´e une base de donn´ees sur les maladies g´en´etiques caus´ees par des mutations ponctuelles (substitution d’une base par une autre, aussi appel´ee SNP pour Single Nucleotide Pattern). La base de donn´ees comprend quatre tables : Maladie, Gene, SNP et A pour SNP.

La table maladie contient les attributs nom (le nom de la maladie), description (description textuelle de la maladie), et dominante (0 si la maladie est r´ecessive, 1 si la maladie est dominante).

La table Gene comprend les attributs nom (le nom du g`ene) et sequence (la s´equence du g`ene).

La table SNP comprend les attributs id gene (identifiant du g`ene sur lequel porte le SNP), position (la position o`u a lieu la substitution, en paire de base) et nouvelle base (la nouvelle base qui remplace la base normale dans ce SNP).

La table A pour SNP est une table de liaison qui relie les maladies aux SNP associ´ees.

Table Maladie :

id nom description dominante

(integer) (text) (text) (integer)

1 Acidurie m´evalonique D´eficit complet en m´evalonate kinase 0 2 Galactos´emie de type 1 Maladie du m´etabolisme du galactose 0 ... (18 723 lignes en tout)

Table Gene :

id nom sequence

(integer) (text) (text)

1 M´evalonate kinase AUGGCTT...

2 Galactose-1-phosphate uridylyltransferase AUGTTCA...

... (15 865 lignes en tout) Table SNP :

id position nouvelle base id gene (integer) (integer) (text) (integer)

1 157 A 1

2 85 A 1

3 333 T 2

... (25 853 lignes en tout)

Table A pour SNP : id maladie id SNP (integer) (integer)

1 1

1 2

2 3

... (25 987 lignes en tout) NB : les diff´erentes questions sont ind´ependantes.

1. Quelles sont les relations entre les tables Maladie, Gene et SNP ? De quels types sont ces relations ? (1 point) R´eponse :

Maladie - SNP : * - * SNP - Gene : * - 1

2. Afin de remplir cette base de donn´ees, dans quelle base existante peut-on trouver les informations suivantes : (1 point)

(a) les s´equences des g`enes ?

(b) les maladies caus´ees par les diff´erentes anomalies g´en´etiques ? (c) la description de la maladie (en fran¸cais) ?

R´eponse :

EMBL, OMIM, Orphanet.

3. Quelle est la description de la maladie “Acidurie m´evalonique”? (NB pour cette question et les suivantes, on donnera la requˆete SQL permettant d’obtenir la r´eponse `a la question ; 1 point)

R´eponse :

SELECT description FROM Maladie WHERE nom = ”Acidurie m´evalonique”;

3

(4)

4. Combien y a-t-il de maladie g´en´etique dominante dans la base ? (1 point) R´eponse :

SELECT COUNT(id) FROM Maladie WHERE dominante = 1 ;

5. Par quelle(s) base(s) peut ˆetre substitu´ee la base en position 90 du g`ene de la “Lactalbumine”? (2 points) R´eponse :

SELECT SNP.nouvelle base FROM Gene, SNP WHERE Gene.nom = ”Lactalbumine” AND SNP.position

= 90 AND SNP.id gene = Gene.id ;

6. Quelle est la base d’origine en position 90 sur le g`ene de la “Lactalbumine”, avant substitution ? (astuce : on utilisera la fonction SUBSTR ; 1 point)

R´eponse :

SELECT SUBSTR(sequence, 90, 1) FROM Gene WHERE nom = ”Lactalbumine”;

7. Combien de SNP diff´erents peuvent causer la maladie “D´eficience en lactase”? (2 points) R´eponse :

SELECT COUNT(SNP.id) FROM Maladie, SNP, a pour SNP WHERE Maladie.nom = ”D´eficience en lac- tase” AND A pour SNP.id maladie = Maladie.id AND A pour SNP.id SNP = SNP.id ;

8. Quelles sont les noms des g`enes sur lesquels des mutations peuvent provoquer la maladie “Citrullin´emie”?

Attention, on ´evitera de lister plusieurs fois le mˆeme g`ene (dans le cas o`u plusieurs SNP sur des positions diff´erents mais sur un mˆeme g`ene provoqueraient cette maladie). (3 points)

R´eponse :

SELECT DISTINCT Gene.nom FROM Gene, SNP, Maladie, A pour SNP WHERE Maladie.nom = ”Ci- trullin´emie” AND A pour SNP.id maladie = Maladie.id AND A pour SNP.id SNP = SNP.id AND Gene.id

= SNP.id gene ;

4

Références

Documents relatifs

base not open invalid set—type invalid member type fújr this set—type no current owner of" set—type record already member of set no current of run unit no more space in Data Base

CREATE VIEW filmsdeDeNiro AS SELECT titre FROM acteurs,roles,films WHERE roles.idfilm=films.idfilm AND acteurs.idacteur=roles.idacteur AND nomacteur=”De Niro”. CREATE VIEW

roles.idacteur=acteurs.idacteur GROUP BY roles.idacteur HAVING COUNT(DISTINCT personnage)=(SELECT MAX(nombreroles) FROM (SELECT COUNT(DISTINCT personnage) AS nombreroles

Dépanner une installation Stage en entreprise Concevoir un système. Algorithmie

2 pts Donner la liste des liens entre les tables selon le modèle donné dans la page 4.. 2 pts Donner une représentation textuelle de la base

11 Créer la requête qui permet d’afficher les noms et les code des épreuves qui ont une date >à 01/01/2009 12 Créer la requête qui permet d’afficher les candidats qui n’ont

(2) Dans le fichier index.php, pour chaque film de la base, cr´ eer un lien vers fiche.php en envoyant un param` etre par la m´ ethode Get ou Post.. (3) R´ ecup´ erer l’id dans

[r]