vendredi 10 octobre 2014

Exercice base de donnée (les requête Serie 2)


Enoncé

Exercice 1 :

Soit la base de données suivante correspondant à la gestion d'un éleveur d'animaux de compagnie :

Animaux (n°animal, nom animal, race, sexe, date_de_naissance)
Filiation (n°animal enfant, n°animal mère, n°animal père)
Aliments_autorisés (race, n°aliment)
Aliments_interdits (race, n°aliment)
PlatMenu (jour, race, n°aliment, quantité)
Aliment (n°aliment, nom, calories, protéines, lipides, glucides)

Dans la relation "PlatMenu", les quantités sont données en grammes. Dans la relation "aliments" les calories, les
protéines, les lipides et les glucides sont donnés pour 1 gramme.
Dans la relation filiation, il ne peut pas y avoir de valeur nulle.

Ecrire les requêtes suivantes en SQL :

R1 : Quels aliments a mangé Félix le 31 décembre 1999 ?
R2 : Combien Dolly a t-elle eu d'enfants ?
R3 : Quels aliments interdits a mangé Postit ?
R4 : Quelle race d'animaux n'a aucun aliment interdit ?
R5 : Sachant que le 25 décembre 2000 les chiens n'ont eu qu'un seul repas où ils n'ont mangé qu'un seul aliment (du chocolat), quelle quantité de glucides ont-ils absorbé chacun ce jour là ?
R6 : Ecrire la requête SQL permettant de voir s'il n'y a pas eu d'erreur avec l'insertion d'un animal femelle comme "père" dans la relation "filiation", ou d'un animal mâle comme mère dans la relation filiation.


Exercice 2 :

Soit la base de données suivante :
PERSONNE (n°personne, nom, prénom, date_naissance)
INVITE (n°personne invitante, n°personne invitée, âge_anniversaire)
SOUHAIT (n°personne, âge_anniversaire, cadeau)
OFFERT (n°personne offrant, n°personne recevant, âge_anniversaire, cadeau)

La relation INVITE contient les personnes invitées à fêter un anniversaire.
La relation SOUHAIT contient les cadeaux qu'une personne souhaite recevoir pour son anniversaire.
La relation OFFERT contient les cadeaux qu'une personne a reçu pour son anniversaire.

Ecrire les requêtes suivantes en SQL :

R1 : Quelles personnes ont reçu comme cadeau "Astérix au pays des BD" ?
R2 : Quelles personnes n'ont jamais reçu aucun cadeau ?
R3 : Quelles personnes de plus de 12 ans reçoivent des peluches (par exemple "lapin en peluche", "pingouin peluche") ?
R4 : Combien de cadeaux différents a reçu la personne n°23 pour son 20ième anniversaire ?
R5 : Donner la liste des personnes (n°, nom, prénom), avec leurs cadeaux souhaités, dans un ordre facilitant la lecture.
R6 : Quelles personnes ont reçu plus de 4 cadeaux pour leur 30ième anniversaire ?
R7 : Qui a reçu tous les cadeaux qu'il avait souhaité ?

Exercice 3 :

Soit la base de données suivante :

Pathologie (code, libellé, famille)
Médicament (code, nom, prix_d_une_dose, laboratoire)
Composition_médicament (code_médicament, code_ingrédient, qté)
Ingrédient (code, libellé, famille)
Patient (nss, nom, prénom, sexe, âge, adresse)
Diagnostique (nss, code_pathologie)
Prescription (nss, code_médicament, qté, périodicité)

Exemples de pathologies : <21, rougeole, maladie infectieuse>, 
<24, appendicectomie, opération>,
Exemple de médicament : <34, Antadiol, 2, Aventis>,
Exemple d'ingrédient : <54, pénicilline, antibiotique>,
Exemple de Composition_médicament <34,54,25>,
Exemple de prescription : <2831075089076, 34, 2, 3) (le patient 2831075089076 doit prendre le médicament 34 à raison de 2 doses 3 fois par jour).

Ecrire les requêtes suivantes en SQL :

a) Quels patients ne reçoivent aucun médicament ?
b) Quels patients reçoivent des antibiotiques ?
c) Quels patients de moins de 12 ans reçoivent des antibiotiques ?
d) Combien de médicaments différents prend le patient n° 123456789 ?
e) Donner la liste des patients (nss, nom, prénom), avec leurs pathologies.
f) Quels patients ont plus de 4 pathologies ?
g) Quel patient est le plus âgé ?


Exercice 4 :

Soit la base de données suivante de la maternité e-Choux :

ADMISSIONS (n°mère, nom mère, prénom mère, adresse )
NAISSANCES (n°bébé, sexe, prénom, nom, poids, taille, heure-naissance, jour-naissance, mois-naissance, année-naissance, n°mère)
STATISTIQUES (mois, année, nombre de filles, nombre de garçons, poids moyen filles, poids moyen garçons)

Ecrire les requêtes suivantes en SQL :

a) Quels sont les mois où il naît plus de filles que de garçons ?
b) Quelles mères (numéro) ont eu des naissances multiples ?
c) Quel est le garçon le plus grand né en 2003 ?
d) Quels sont les bébés qui ont le même prénom que leur mère ?
e) Combien de bébés a eu Madame Mélanie Vincent à la maternité e-Choux ?
f) Quels sont les prénoms de filles plutôt rares (c'est à dire donnés moins souvent que la
moyenne) ?

Exercice 5 :

Soit la base de données suivante correspondant à la gestion d'un site en ligne de tamagotchis (des poissons rouges).
Chaque membre internaute doit nourrir tous les jours son poisson, ce qui le fait grossir de 
2 g à chaque fois.
S'il est nourri plus de 2 fois par jour, il tombe malade, ce qui a pour effet de le faire maigrir de 10g à chaque fois.
S'il part en vacances, l'internaute peut laisser son poisson à la garderie, où le poisson est automatiquement nourri 2 fois par jour.

Poisson (n° poisson, nom poisson, âge, poids)
Internaute (n°internaute, nom, prénom, adresse email)
Propriété (n°poisson, n°internaute)
Repas (n°poisson, jour, heure, minute)
Garderie (n°poisson, date_début, date_fin)

Ecrire les requêtes suivantes en SQL :

a) Combien de poissons ont plus de 40 jours ?
b) Combien de noms de poissons peut-on répertorier sur ce site ?
c) Quel est le poids moyen des poissons laissés à la garderie ?
d) Quel est l’internaute vainqueur, c'est-à-dire celui dont le poisson a le poids le plus élevé (il peut y en avoir plusieurs en cas d’égalité de poids) ?
e) Quels sont les internautes ayant tous leurs poissons à la garderie ?
f) Donner tous les couples d’internautes ayant donné le même nom à leur poisson.


0 commentaires:

Enregistrer un commentaire