Академический Документы
Профессиональный Документы
Культура Документы
2011-2012
Chêne Pierre-Antoine II.2403 Advanced DataBases TP 1 à 4
De Rouzé Geoffroy
A – INTRODUCTION
Le but de ces différents TP était la mise en place d’une base de données pour l’organisation
d’une bibliothèque. La création de cette base a pu s’effectuer en plusieurs étapes.
Tout d’abord nous avons simplement créé les différentes tables qui structurent cette base de
données. Nous avons ensuite dû la modifier et l’amélioré, notamment grâce à l’implémentation de
contraintes d’intégrités (TP 1) et la gestion du contenu des bases produites (TP 2). Lors du TP 3 et 4,
nous avons amélioré nos compétences PL/SQL par la mise en place d’une procédure de gestion de la
qualité des ouvrages.
Ayant eu la même préférence pour l’APP informatique lors de notre première année, nous
avions déjà eu la chance de travailler sur des bases de données à travers la création du site internet
demandée.
Cependant, les quelques requêtes SQL que nous avions pu coder l’année dernière ne nous
ont été que d’un très faible recours comparé aux problématiques abordées cette année.
Page 2
Chêne Pierre-Antoine II.2403 Advanced DataBases TP 1 à 4
De Rouzé Geoffroy
B – TRAVAIL EFFECTUE
I – SQL-LDD
1. Les différentes tables créées sont identifiées dans le tableau ci-dessous avec
leurs contraintes d’intégrités.
D’autres données sont présentes dans ces tables, mais ne sont pas des
contraintes.
Le code pour la création de ces tables est donné en annexe (page x).
Page 3
Chêne Pierre-Antoine II.2403 Advanced DataBases TP 1 à 4
De Rouzé Geoffroy
2. Nous avons ensuite défini une séquence afin de faciliter la mise en place d’un
numéro pour chaque membre. Cette séquence permettra une
incrémentation automatique du numéro affecté à chaque nouveau membre.
Ci-dessous le code SQL utilisé pour créer la séquence :
3. Il nous a également fallu créer une contrainte d’intégrité dont le but était
d’interdire la possibilité d’avoir deux membres possédant le même nom,
prénom et téléphone.
Vous trouverez ci-dessous le code SQL utilisé pour créer la contrainte :
Page 4
Chêne Pierre-Antoine II.2403 Advanced DataBases TP 1 à 4
De Rouzé Geoffroy
6. Pour finir cette partie SQL-LDD, nous avons dû simplifier le remplissage des
tables, notamment la table Exemplaire, en mettant une valeur par défaut sur
le champ Etat.
Ci-dessous le code SQL qui modifie la valeur du champ Etat pour un nouvel
exemplaire ajouté :
II – SQL-LMD
3.
MERGE INTO exemplaires n using(SELECT isbn, count(*)as nombre from details group by
isbn) o
ON(o.isbn = n.isbn)
WHEN MATCHED THEN
UPDATE SET n.etat ='neuf'
where o.nombre<11;
MERGE INTO exemplaires n using(SELECT isbn, count(*)as nombre from details group by
isbn) o
ON(o.isbn = n.isbn)
WHEN MATCHED THEN
UPDATE SET n.etat ='bon'
where(o.nombre>11AND o.nombre<25);
Page 5
Chêne Pierre-Antoine II.2403 Advanced DataBases TP 1 à 4
De Rouzé Geoffroy
MERGE INTO exemplaires n using(SELECT isbn, count(*)as nombre from details group by
isbn) o
ON(o.isbn = n.isbn)
WHEN MATCHED THEN
UPDATE SET n.etat ='moyen'
where(o.nombre>25AND o.nombre<60);
MERGE INTO exemplaires n using(SELECT isbn, count(*)as nombre from details group by
isbn) o
ON(o.isbn = n.isbn)
WHEN MATCHED THEN
UPDATE SET n.etat ='mauvais'
where nombre>60;
6. Le but de cette question est de connaitre les noms des membres ayant
emprunté un livre depuis plus de deux semaines. Pour ce faire, nous devons
établir une connexion entre les livres empruntés depuis plus de deux
semaines et la personne l’ayant emprunté. C’est pour cela que nous utilisons
le code suivant :
On peut voir que le numéro du member doit être égal au membre inscrit
dans la table emprunt, que le numéro de l’emprunt doit être égal à l’emprunt
inscrit dans la table du detail, que l’isbn du detail doit être celui de l’ouvrage.
Page 6
Chêne Pierre-Antoine II.2403 Advanced DataBases TP 1 à 4
De Rouzé Geoffroy
II – Requêtes SQL
1
All (tous)
Page 7
Chêne Pierre-Antoine II.2403 Advanced DataBases TP 1 à 4
De Rouzé Geoffroy
D – Annexe
I – SQL-LDD
1.
Page 8