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