Polytech`Montpellier – IG1

Transcription

Polytech`Montpellier – IG1
Polytech Montpellier – IG3
Bases de Données
TP3
Première étape : Création et modifcation d'attributs
On désire intégrer dans la BD BIBLIO de nouvelles données sur les abonnés et pouvoir simuler un
thesaurus.
1) Il s'agit, pour les abonnés, de stocker leur date de naissance (ce qui permettra un calcul
automatique de leur age) ainsi que leur type (parmi : {Adulte, Enfant}) et leur catégorie dont les
valeurs admissibles sont : {Regulier, Occasionnel, A probleme, Exclu}.
Après avoir choisi les types syntaxiques adaptés, effectuez la création des nouveaux attributs
DATE_NAI, TYPE_AB et CAT_AB dans la relation concernée en spécifant une contrainte
d'intégrité de domaine pour TYPE_AB et CAT_AB (donnez les valeurs admissibles en majuscules).
Vérifez l'opération en consultant la structure de cette relation par DESCRIBE (ou DESC). Puis
contrôlez la mise en œuvre des contraintes de domaine en tentant d'affecter une valeur invalide aux
attributs TYPE_AB et CAT_AB pour un abonné existant.
2) On désire étendre la défnition du type de l'attribut TARIF dans la relation ABONNE, en
augmentant la taille des valeurs possibles de 2 positions. Consultez la défnition de cet attribut puis
effectuez sur la base la modifcation correspondante et vérifez la.
3) A partir de la relation MOT_CLEF, qui répertorie l'ensemble des termes pouvant indexer les
différents ouvrages, on désire intégrer, dans la base, un mécanisme permettant de simuler un
thesaurus. Un thesaurus est une hiérarchie de mots clefs décrivant les liens entre des termes
génériques et des termes plus spécifques. Par exemple, le thesaurus dans notre application pourrait
être (partiellement) représenté par l'arborescence suivante :
Le principal intérêt de simuler un tel thesaurus et de permettre d'étendre ou au contraire de
restreindre les recherches d'ouvrages par mots clefs. Par exemple, si un livre est seulement indexé
par le mot clef "Modèle Relationnel", il devra pouvoir être sélectionné par un utilisateur recherchant
tous les ouvrages traitant de "Bases de données" ou de "Sciences".
Modifez le schéma conceptuel de la base de manière à simuler ce thesaurus. Répercutez ces
modifcations sur le schéma relationnel joint en indiquant, si nécessaire, les clefs primaires ou
étrangères. Vous devez ensuite réaliser sur la base les mises à jour structurelles requises, en
spécifant les éventuelles contraintes d'intégrité et en consultant au préalable la défnition des
attributs compatibles.
TP Oracle
Page 1
Deuxième étape : Création de relation
Telle qu'elle est conçue, la BD ne stocke aucune information sur les auteurs des ouvrages. Il faudrait
en particulier connaître le nom et le prénom des auteurs ainsi que leur nationalité d'origine. Sachant
qu'il existe des ouvrages collectifs mais aussi des écrits anonymes et des auteurs homonymes,
effectuez les modifcations nécessaires sur le schéma conceptuel pour prendre en compte ces
différentes informations.
Répercutez ces modifcations sur le schéma relationnel, en précisant, si besoin est, les clefs primaire
et étrangère(s).
Réalisez ces mises à jour structurelles sur la BD exemple, en spécifant les différentes contraintes
d'intégrité mises en jeu. Vérifez vos manipulations.
Troisième étape : Mises à jour des données
Sur la base re-structurée, on vous demande de réaliser les opérations de mise à jour des données
suivantes.
1) Effectuez les modifcations nécessaires pour que les liens entre termes génériques et spécifques
du thesaurus donné en exemple soient pris en compte dans la base.
2) Pour tous les abonnés existant dans la BD, réalisez l'affectation de la valeur "Adulte" à l'attribut
TYPE_AB si leur age est supérieur à 16 et à "Enfant" s'il est inférieur. Si l'age n'est pas renseigné,
on considèrera que la valeur est manquante.
Quatrième étape : Création et manipulation de vues
Créez une vue ABONNE_MONTP donnant le numéro, le nom et le prénom des abonnés
habitant Montpellier. Puis réalisez l’insertion, à travers la vue créée, d’un nouvel abonné
montpelliérain. Vérifez ensuite la propagation de la mise à jour en consultant les tuples de
la relation ABONNE.
TP Oracle
Page 2
Syntaxe
Paramétrage de requête : insert into nom_relation values (&val_1, &val_2) ;
Lors de l’éxécution, il vous sera demandé de saisir une valeur pour val_1 et val_2.
Au niveau de l’éditeur SQLplus, r ou run permet de ré-exécuter la requête contenue dans le buffer.
Langage de Défnition de Données :
Création d’une relation :
CREATE TABLE nom_table (Nom_de_colonne1 Type_de_donnée,
Nom_de_colonne2 Type_de_donnée,
…
CONSTRAINT Nom_contrainte1 Type_de_contrainte,
CONSTRAINT Nom_contrainte2 Type_de_contrainte
… );
Le type de données pouvant être alphanumérique : CHAR(n) Chaîne de caractères de
longueur fxe n (n<16383), VARCHAR(n) Chaîne de caractères de longueur variable ;
numérique : NUMBER(n,[d]) Nombre de n chiffres [optionnellement d après la virgule],
INTEGER ;
Ou de type horaire : DATE …
L'option NOT NULL, placée immédiatement après le type de donnée rend la saisie de cet
attribut est obligatoire.
Le type de la contrainte peut être :
UNIQUE , PRIMARY KEY (liste_att), FOREIGN KEY (liste_att) REFERENCES nom_relation
(liste_att_compatible) , CHECK condition_simple .
Modifcation d’une relation :
ALTER TABLE nom_table (modification) ;
La modifcation peut être : ADD def_colonne, MODIFY def_colonne, ADD CONSTRAINT
def_contrainte, DROP CONSTRAINT nom_contrainte.
Langage de Manipulation de Données :
Modifcation :
UPDATE nom_table SET
Suppression :
Nom_att1 = Nouvelle_val2, … [WHERE Condition] ;
DELETE FROM nom_table [WHERE Condition] ;
Insertion :
INSERT INTO nom_table [Liste_att]
Ou
TP Oracle
VALUES (liste_valeurs) ;
(requêtes_sql) ;
Page 1

Documents pareils