Académique Documents
Professionnel Documents
Culture Documents
L’investigation du domaine a permis de définir les règles suivantes : Un livre peut être
1. Écrit par plusieurs auteurs
2. Édité par plusieurs éditeurs, mais une seul fois par chacun d’entre eux. Pour distinguer,
on donne alors l’année éditions
3. Stocké dans plusieurs dépôts, et cela pour chaque éditeur.
4. Chaque livre stocké est stocké avec une quantité définie.
- Donner le schéma entité-association et les éventuels contraintes d’intégrité correspondant à cet
énoncé.
1
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
Une entreprise veut améliorer sa gestion du matériel ainsi que celle des commandes de ces clients.
Pour cela, elle envisage les orientations suivantes :
§ Elle veut connaître à tout instant la quantité disponible d’un matériel dans un magasin donné
§ Les matériaux sont classés en catégories pour faciliter leur gestion
§ On doit pouvoir connaître les composants d’un matériel et les matériaux dans lesquels on trouve
un composant donné
§ Lors d’une rupture de stock, un matériel peut être remplacé par un matériel de substitution
§ Chaque client a un seuil maximal de commandes autorisé (droit d’approvisionnement) par
catégorie de matériel pour une période donnée
§ Un client ne peut s’approvisionner que dans un magasin et un seul
§ Une commande est définie par un numéro : elle concerne un seul client et différents matériaux,
et précise la quantité commandée
Exercice 4 : Aéroport
Pour les besoins de la gestion d'un aéroport on souhaite mémoriser dans une base de données les
informations nécessaires à la description des faits suivants:
§ chaque avion géré est identifié par un numéro d'immatriculation. Il est la propriété soit d'une
société, soit d'un particulier: dans les deux cas on doit connaître le nom, l'adresse et le numéro
de téléphone du propriétaire, ainsi que la date d'achat de l'avion;
§ chaque avion est d'un certain type, celui-ci étant caractérisé par son nom, le nom du
constructeur, la puissance du moteur, le nombre de places;
§ la maintenance des avions est assurée par les mécaniciens de l'aéroport. Par sécurité, les
interventions sont toujours effectuées par deux mécaniciens (l'un répare, l'autre vérifie). Un
même mécanicien peut, selon les interventions, effectuer la réparation ou la vérification. Pour
toute intervention effectuée, on conserve l'objet de l'intervention, la date et la durée;
§ pour chaque mécanicien on connaît son nom, son adresse, son numéro de téléphone et les
types d'avion sur lesquels il est habilité à intervenir;
§ un certain nombre de pilotes sont enregistrés auprès de l'aéroport. Pour chaque pilote on
connaît son nom, son adresse, son numéro de téléphone, son numéro de brevet de pilote et
les types d'avion qu'il est habilité à piloter avec le nombre total d'heures de vol qu'il a effectué
sur chacun de ces types.
Des questions types auxquelles l'application doit pouvoir répondre sont les suivantes:
1. liste des avions de la société "Voltige";
2. liste des avions qui sont la propriété de particuliers;
3. durée totale des interventions faites par le mécanicien Rochat au mois de janvier;
4. liste des types d'avion de plus de 4 places; - liste des pilotes habilités pour tel type
d'avion;
5. liste des interventions (objet, date) faites sur l'avion numéro 3242XZY78K3.
2
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
Exercice 5 :
3
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
4
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
1. Les contraintes ci-dessous sont-elles vérifiées par ce schéma de bases de données ? Si la réponse est positive,
expliquez pourquoi. Si la réponse est négative, indiquez quelle(s) dépendance(s) fonctionnelle(s) il faut
ajouter/supprimer ou modifier pour que la contrainte soit vérifiée.
i. "Un bureau peut contenir plusieurs postes téléphoniques."
ii. "Il y a une et une seule personne par bureau."
iii. "Un bureau contient un seul ordinateur."
2. A partir des familles de dépendances fonctionnelles initiales données dans l'énoncé, indiquez quelles sont les
clés minimales possibles de chaque relation.
Solution
5
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
Exercice 11 : Normalisation
1. Soit la relation suivante :
COMMANDE(NUMCOM, NUMCLI, NOMCLI, DATE, NUMPRODUIT, LIBELLE)
6
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
6. La relation suivante décrit des commandes faites par des clients, avec les produits et
quantités commandés par client.
Solution
1. La colonne NOMCLI dépend d’une colonne qui n’est pas une clé. La table n’est pas normalisée. On la
décompose en deux tables
COMMANDE(NCOM, NUMCLI, DATE, NUMPRODUIT, LIBELLE) et
CLIENT(NUMCLI, NOMCLI).
Ensuite, dans la nouvelle table COMMANDE, la colonnes LIBELLE dépend d’une colonne qui n’est pas une clé. Par
4 décomposition, on obtient le schéma ci-dessous : Annexe A • Exercices et solutions
COMMANDE(NCOM, NUMCLI, DATE, NUMPRODUIT)
CLIENT(NUMCLI, NOMCLI)
A.3 CHAPITRE 3 - MODÈLE
PRODUIT(NUMPRODUIT, LIBELLE) RELATIONNEL ET NORMALISATION
Avec deux clés étrangères : NUMCLI de COMMANDE et NUMPROUIT de COMMANDE.
3.1 Décomposer si nécessaire la relation ACHAT.
2. La colonne AGREATION dépend de colonnes qui ne forment pas un identifiant. La table n’est pas normalisée.
ACHAT(NCOM, NPRO, PRIX)
On la décompose en deux tables PRODUIT(NPRO, DATE_INTRO, IMPORTATEUR) et AGRE(DATE_INTRO,
NCOM → NPRO
IMPORTATEUR, AGREATION). Une clé étrangère : (DATE_INTRO, IMPORTATEUR) de PRODUIT.
NPRO → PRIX
3.
Solution
L’identifiant de ACHAT est {NCOM}. La DF NPRO → PRIX est donc
anormale. Par décomposition selon cette DF, on obtient le schéma relationnel
normalisé :
ACHAT(NCOM, NPRO); PRODUIT(NPRO, PRIX);
ACHAT[NPRO] ⊆ PRODUIT[NPRO]
4. La clé de COMMANDE est {NCOM}. Les DF NCLI → NOM et NPRO → LIBELLE sont donc anormales. Par
3.2 Décomposer si nécessaire la relation COMMANDE.
décomposition selon chacune de ces DF, on obtient le schéma relationnel normalisé :
COMMANDE(NCOM,
COMMANDE(NCOM, NCLI, NCLI,
DATE, NOM,
NPRO);
DATE, NPRO, LIBELLE)
CLIENT(NCLI,
NCOMNOM);
→ NCLI, DATE, NPRO
PRODUIT(NPRO,
NCLI →LIBELLE);
NOM
NPRO → LIBELLE
COMMANDE[NCLI] ⊆ CLIENT[NCLI]
COMMANDE[NPRO]
Solution ⊆ PRODUIT[NPRO]
L’identifiant de COMMANDE est {NCOM}. Les DF NCLI → NOM et NPRO
→ LIBELLE sont donc anormales. Par décomposition selon chacune de ces
5. LeDF,
graphe ADF comporte
on obtient le schémaunrelationnel
circuit. Lesnormalisé
identifiants
: sont {FILM, VILLE} et {SALLE, FILM}.
Les deux DFCOMMANDE(NCOM,
suivantes sont doncNCLI,
anormales
DATE,: NPRO);
SALLE → VILLE et DISTRIBUTEUR
CLIENT(NCLI, → DELEGUE.
NOM); PRODUIT(NPRO, LIBELLE);
COMMANDE[NCLI] ⊆ CLIENT[NCLI]
COMMANDE[NPRO] ⊆ PRODUIT[NPRO]
7
3.3 Décomposer si nécessaire la relation ACHAT2.
ACHAT2(CLI, PRO, MAG, PRIX)
PRO, MAG → PRIX
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
La DF FILM, VILLE → DISTRIBUTEUR, non anormale, est externe et ne fait pas partie du noyau irréductible. Elle
peut donc faire l’objet d’une décomposition :
CINE(FILM, VILLE, SALLE);
DISTR(FILM, VILLE, DISTRIBUTEUR);
DIS_DEL(DISTRIBUTEUR, DELEGUE);
CINE[FILM, VILLE] ⊆ DISTR[FILM, VILLE]
DISTR[DISTRIBUTEUR] ⊆ DIS_DEL[DISTRIBUTEUR]
SALLE → VILLE
Le noyau résiduel {FILM, VILLE, SALLE} est irréductible et non normalisé. La dernière relation CINE peut être
remplacée par un des trois schémas ci-dessous :
a. CINE(FILM, VILLE, SALLE); SALLE → VILLE
b. CINE(FILM, SALLE); LOC(SALLE, VILLE); CINE[SALLE] = LOC[SALLE] CINE*LOC: FILM, VILLE → SALLE
c. CINE(FILM, VILLE, SALLE); LOC(SALLE, VILLE); CINE[SALLE, VILLE] = LOC[SALLE, VILLE]
6-
8
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
9
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
1. Les contraintes ci-dessous sont-elles vérifiées par ce schéma de bases de données ? Si la réponse est positive,
expliquez pourquoi. Si la réponse est négative, indiquez quelle(s) dépendance(s) fonctionnelle(s) il faut
ajouter/supprimer ou modifier pour que la contrainte soit vérifiée.
i. "Un bureau peut contenir plusieurs postes téléphoniques."
ii. "Il y a une et une seule personne par bureau."
iii. "Un bureau contient un seul ordinateur."
2. A partir des familles de dépendances fonctionnelles initiales données dans l'énoncé, indiquez quelles sont les
clés minimales possibles de chaque relation.
Solution
1
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
Exercice 11 : Normalisation
1. Soit la relation suivante :
COMMANDE(NUMCOM, NUMCLI, NOMCLI, DATE, NUMPRODUIT, LIBELLE)
2
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
6. La relation suivante décrit des commandes faites par des clients, avec les produits et quantités
commandés par client.
Solution
1. La colonne NOMCLI dépend d’une colonne qui n’est pas une clé. La table n’est pas normalisée. On la
décompose en deux tables
COMMANDE(NCOM, NUMCLI, DATE, NUMPRODUIT, LIBELLE) et
CLIENT(NUMCLI, NOMCLI).
Ensuite, dans la nouvelle table COMMANDE, la colonnes LIBELLE dépend d’une colonne qui n’est pas une clé.
Par décomposition, on obtient le schéma ci-dessous :
COMMANDE(NCOM, NUMCLI, DATE, NUMPRODUIT)
CLIENT(NUMCLI, NOMCLI)
PRODUIT(NUMPRODUIT, LIBELLE)
Avec deux clés étrangères : NUMCLI de COMMANDE et NUMPROUIT de COMMANDE.
2. La colonne AGREATION dépend de colonnes qui ne forment pas un identifiant. La table n’est pas normalisée.
On la décompose en deux tables PRODUIT(NPRO, DATE_INTRO, IMPORTATEUR) et AGRE(DATE_INTRO,
IMPORTATEUR, AGREATION). Une clé étrangère : (DATE_INTRO, IMPORTATEUR) de PRODUIT.
3.
4. La clé de COMMANDE est {NCOM}. Les DF NCLI → NOM et NPRO → LIBELLE sont donc
anormales. Par décomposition selon chacune de ces DF, on obtient le schéma relationnel normalisé :
COMMANDE(NCOM, NCLI, DATE, NPRO);
CLIENT(NCLI, NOM);
PRODUIT(NPRO, LIBELLE);
COMMANDE[NCLI] ⊆ CLIENT[NCLI]
COMMANDE[NPRO] ⊆ PRODUIT[NPRO]
5. Le graphe ADF comporte un circuit. Les identifiants sont {FILM, VILLE} et {SALLE, FILM}.
Les deux DF suivantes sont donc anormales :
SALLE → VILLE et DISTRIBUTEUR → DELEGUE.
Cette dernière étant externe, elle permet une première décomposition :
CINE(FILM, VILLE, SALLE, DISTRIBUTEUR);
DIS(DISTRIBUTEUR, DELEGUE);
CINE[DISTRIBUTEUR] ⊆ DIS[DISTRIBUTEUR]
SALLE → VILLE FILM,
VILLE → DISTRIBUTEUR
La DF FILM, VILLE → DISTRIBUTEUR, non anormale, est externe et ne fait pas partie du noyau irréductible.
Elle peut donc faire l’objet d’une décomposition :
CINE(FILM, VILLE, SALLE);
DISTR(FILM, VILLE, DISTRIBUTEUR);
3
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
DIS_DEL(DISTRIBUTEUR, DELEGUE);
CINE[FILM, VILLE] ⊆ DISTR[FILM, VILLE]
DISTR[DISTRIBUTEUR] ⊆ DIS_DEL[DISTRIBUTEUR]
SALLE → VILLE
Le noyau résiduel {FILM, VILLE, SALLE} est irréductible et non normalisé. La dernière relation CINE peut être
remplacée par un des trois schémas ci-dessous :
a. CINE(FILM, VILLE, SALLE); SALLE → VILLE
b. CINE(FILM, SALLE); LOC(SALLE, VILLE); CINE[SALLE] = LOC[SALLE] CINE*LOC: FILM,
VILLE → SALLE
c. CINE(FILM, VILLE, SALLE); LOC(SALLE, VILLE); CINE[SALLE, VILLE] = LOC[SALLE,
VILLE]
6-
4
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - ISIL
Faculté des sciences Bases de Données Avancées
Département MI Dr. Aoudia - 2017/2018
1
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - ISIL
Faculté des sciences Bases de Données Avancées
Département MI Dr. Aoudia - 2017/2018
A. Ecrire le trigger qui assure qu'à chaque moment où une ligne est insérée ou mise à jour dans la table employee, le nom de l'utilisateur courant et
l'heure sont estampillés dans la ligne. Le trigger doit aussi assurer qu'un nom d'employé est donné et que le salaire est une valeur positive.
Solution
B. Ecrire un trigger qui affiche respectivement, pour un employé, l’ancien salaire, le nouveau salaire et la différence entre ces deux salaires
C. Ecrire un trigger qui permet de garder toujours la valeur de l’attribut bonus supérieure de 3% du salaire de l’employé
D. Ecrire un trigger qui permet de sauvegarder le nombre d’employés ayant un salaire > 100 000 dans la table CadresSup
Create Trigger EmpSup
After Insert Or Update of salary Or Delete On Employee
For Each Statement
Begin
insert into R(cnt) Select count(*) from employee where salaire > 100 000;
End;
Exercice 3 :
Soit la relation suivante :
COMPTECLIENT(numCli, nomCli, nbComptes)
2
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - ISIL
Faculté des sciences Bases de Données Avancées
Département MI Dr. Aoudia - 2017/2018
Exercice 4 :
A. Ecrire un trigger qui empêche assure que la somme des prêts d’un client ne dépasse pas 100000.
4.
La DRH annonce que désormais, tout nouvel employé devra avoir un numéro supérieur ou égal à 10000
Il faut donc interdire toute insertion qui ne reflète pas cette nouvelle directive
Solution
CREATE OR REPLACE TRIGGER TRG_BIR_EMP
BEFORE INSERT -- avant insertion
ON EMP -- sur la table EMP
FOR EACH ROW -- pour chaque ligne
Begin
If :NEW.empno < 10000 Then
RAISE_APPLICATION_ERROR ( -20010, 'Numéro employé inférieur à 10000') ;
End if ;
End ;
1. Ecrire un trigger qui permet de Contrôler les salaires : ils doivent être plus grand que le plus petit des salaires
et plus petit que le plus grand des salaire
3
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - ISIL
Faculté des sciences Bases de Données Avancées
Département MI Dr. Aoudia - 2017/2018
2. Écrire un trigger qui permet de mettre le salaire à 5000$ si un employé n’a pas de salaire.
begin
New.salary = 5000
end
4
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - ISIL
Faculté des sciences Bases de Données Avancées
Département MI Dr. Aoudia - 2017/2018
3. Soit une table cumul sert à enregistrer le cumul des augmentations dont ont bénéficié les employés d'une
entreprise.
a. Ecrire le trigger qui fait la mise à jour automatique d’une table cumul qui totalise les augmentations de
salaire de chaque employé.
b. Ecrire un trigger qui ajoute une ligne dans la table cumul quand un employé est créé
5
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - ISIL
Faculté des sciences Bases de Données Avancées
Département MI Dr. Aoudia - 2017/2018
a. Créer le trigger T1 qui permet d’ajouter la quantité entrée de la table Achat à la quantité en stock dans la table produit
correspondant à chaque insertion d’un achat.
b. Créer le trigger T2 qui permet de retrancher la quantité sortie de la table Vente de la quantité en stock dans la table produit
correspondant à chaque insertion d’une vente.
c. Ecrire le trigger T3 dans la table Achat qui permet de mettre à jour la Qut_St de la table Produit après chaque suppression
d’un achat.
d. Ecrire le trigger T4 dans la table Vente qui permet de mettre à jour la Qut_St de la table Produit après chaque suppression
d’une Vente.
e. Modifier le trigger T1 pour mettre à jour la Qut_st de la table Produit après chaque modification d’une opération d’achat.
f. Modifier le trigger T2 pour mettre à jour la Qut_st de la table Produit après chaque modification d’une opération de Vente.
6
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - ISIL
Faculté des sciences Bases de Données Avancées
Département MI Dr. Aoudia - 2017/2018
7
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - ISIL
Faculté des sciences Bases de Données Avancées
Département MI Dr. Aoudia - 2017/2018
8
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - ISIL
Faculté des sciences Bases de Données Avancées
Département MI Dr. Aoudia - 2017/2018
9
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - ISIL
Faculté des sciences Bases de Données Avancées
Département MI Dr. Aoudia - 2017/2018
10
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - ISIL
Faculté des sciences Bases de Données Avancées
Département MI Dr. Aoudia - 2017/2018
1. Supposons que l'on rajoute à la table Personne du schéma FilmBD ci-dessus, une colonne nbRoles
donnant le nombre de rôles ayant été joués par cette personne. Écrivez un TRIGGER pour mettre à jour cette
colonne suite à l'insertion d'un nouveau rôle.
2. En se référant au schéma de base de données ci-dessus, écrire pour chaque contrainte ci-dessous un
TRIGGER qui vérifie que :
a. Un film ne peut pas avoir plus de cinq genres différents. Vérifier cette contrainte lors d'une insertion
seulement.
b. Une personne ne peut pas jouer dans un film dont il/elle est le réalisateur. Vérifier cette contrainte
seulement lors de l'insertion dʼun nouveau rôle.
c. L'année de sortie d'un film ne peut pas être supérieure à l'année courante. Vérifier cette contrainte
lors d'une insertion ET d'un update.
Solution
11
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - ISIL
Faculté des sciences Bases de Données Avancées
Département MI Dr. Aoudia - 2017/2018
12
ème
Université Alger 1 Ben Youcef Ben Khedda 3 année Informatique - ISIL
Faculté des sciences Bases de Données Avancées
Département MI Dr. Aoudia - 2017/2018
13
Université Alger 1 Ben Youcef Ben Khedda 3ème année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
Voila un document XML avec 5 erreurs. Entourez-les puis corrigez-les (Ne réécrivez pas le document,
faites les modifications dans le texte).
1
Université Alger 1 Ben Youcef Ben Khedda 3ème année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
Correction
Solution
On souhaite écrire un livre en utilisant le formalisme XML. Le livre est structuré en sections
(au moins 2), en chapitres (au moins 2) et en paragraphes (au moins 2).
Le livre doit contenir la liste des auteurs (avec nom et prénom).
Tous les éléments doivent posséder un titre, sauf le paragraphe qui contient du texte.
Proposez une structuration XML de ce document (avec 2 auteurs, 2 sections, 2 chapitres par section et 2
paragraphes par chapitre).
Solution
4
Université Alger 1 Ben Youcef Ben Khedda 3ème année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
Solution
5
Université Alger 1 Ben Youcef Ben Khedda 3ème année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
2. Même question
Réponse
3. Même question
6
Université Alger 1 Ben Youcef Ben Khedda 3ème année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
Partie 2 XQUERY
7
Université Alger 1 Ben Youcef Ben Khedda 3ème année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
<auteurs>
{ document("bib.xml")//book[2]/author/la }
</auteurs>
Solution
<?xml version="1.0"?>
<auteurs>
<la>Rigaux</la>
<la>Scholl</la>
<la>Voisard</la>
</auteurs>
2. Même question
<livre>
Tous les sous-elements sauf les auteurs:
{ document("bib.xml")//book[1]/(* except author) }
</livre>
Solution
<livre>
8
Université Alger 1 Ben Youcef Ben Khedda 3ème année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
3. Même question
<livre>
Le prix suivi des auteurs:
{ document("bib.xml")//book[1]/(price,author) }
</livre>
Solution
Résultat:
<livre>
Le prix suivi des auteurs:
<price>28.95</price>
<author><la>Amann</la><fi>B.</fi></author>
<author><la>Rigaux</la><fi>P.</fi></author>
</livre>
On a changé l’ordre des noeuds (_union)
4.
5. Même question
Requête:
document("bib.xml")//book/author[la eq "Scholl"]
Résultat:
<author><la>Scholl</la><fi>M.</fi></author>
6. Même question
Requête:
document("bib.xml")//book[author/la eq "Scholl"]
Résultat:
ERROR
9
Université Alger 1 Ben Youcef Ben Khedda 3ème année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
7. Même question
Requête:
"Les auteurs du premier livre sont",
document("bib.xml")//book[1]/author/xf:string(la)
Résultat:
Les auteurs du premier livre sont, Amann, Rigaux
(xf:string est une fonction prédéfinie).
10
Université Alger 1 Ben Youcef Ben Khedda 3ème année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
Partie 3 XPATH
1. //COURS[INTITULE=’XML’]
2. //COURS[INTITULE=XML]
Solution
Solution :
1: <?xml version="1.0"?>
2: <COURS>
3: <INTITULE>XML</INTITULE>
4: <XML>XML</XML>
5: </COURS>
Justification.
– La première requête retourne les éléments de type COURS ayant un élément fils INTITULE dont
la valeur textuelle est XML.
– La seconde requête retourne les éléments de type COURS ayant un élément fils INTITULE et un
élément de type XML dont les valeurs textuelles sont identiques.
<cv>
<etatcivil>
<nom>Lemay</nom>
<prenom>Aurélien</prenom>
<date>5 Juin 1976</date>
<lieu> Tourcoing </lieu>
</etatcivil>
11
Université Alger 1 Ben Youcef Ben Khedda 3ème année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
Solution
12
Université Alger 1 Ben Youcef Ben Khedda 3ème année Informatique - SI
Faculté des sciences Administration de Bases de Données
Département MI Dr. Aoudia - 2017/2018
13