1 Département d’informatique. Faculté de mathématiques et d’informatique. Unive

1 Département d’informatique. Faculté de mathématiques et d’informatique. Université Batna 2. Master 1 – ISI Module : SGBDA Corrigé type TD n°5 Exercice 01 : R1. - La création d’un nouveau type Couleur - La création d’un nouveau type, liste des couleurs (ou T_Couleurs), d'une longueur allant jusqu'à 20 couleurs. - La création d’un nouveau type Vehicule. - Attention : il y aura d’autres types (voiture_sport, forgoun, …) vont hériter les caractéristiques de ce type, alors il faut ajouter l’instruction « not final » dans la requête ci-dessous. - La création d’un nouveau type « voiture_sport » qui hérite d'autres caractéristiques incrustées dans le type « Vehicule », donc il doit utiliser le mot-clé « UNDER » comme figuré ci-dessous. - De la même manière, la création des nouveaux types « forgoun » et « camion » qu’ils aussi héritent des caractéristiques de « Vehicule », donc il doit utiliser le mot-clé « UNDER » comme figuré ci-dessous. create type Couleur As object (nom_couleur char(20)) ; create type T_Couleurs As VArray(20) OF Couleur ; create type Vehicule As object(id_Vehicule Integer, num_licence varchar(20), fabricant varchar(15), modele varchar(15), col Couleur, date_achat date )not final; / CREATE TYPE voiture_sport UNDER vehicule( puissance integer, cond_ageLocataire integer ); CREATE TYPE forgoun UNDER vehicule( nombre_passagers integer ); CREATE TYPE camion UNDER vehicule( capacite_charge integer ); 2 Culture générale : En général, toutes les roues d'un véhicule tout-terrain sont motrices. Souvent ce type de véhicule est appelé 4 × 4 (prononcé « quatre fois quatre » ou « quatre-quatre »), dans le cas d'un véhicule à quatre roues à transmission intégrale, mais certains véhicules tout-terrain peuvent aussi avoir seulement deux roues motrices dans le cas des buggys, six ou huit roues motrices pour certains camions, voire être montés sur des chenilles1. - Après cette petite définition, nous déduisons que nous avons besoin, avant de créer le type « voiture_tout_train », de créer un nouveau type que nous l’appellerons « transmission » et un autre nouveau type qui se compose d’ensemble de « transmission » et nous l’appellerons « T_Transmissions» - Le dernier nouveau type sera « voiture_tout_train » qu’il aussi hérite les caractéristiques de « Vehicule », donc il doit utiliser le mot-clé « UNDER » comme figuré ci-dessous. Maintenant, nous pouvons utiliser tous ces types pour créer de tables, par exemples : Exercice 02 : R1. De la même manière de l’exercice 1, nous allons créer les types : T_Rue, T_Adresse, T_num_telephone.  La nouvelle dans cet exercice est la syntaxe de la déclaration d’une méthode.  La méthode « age » a comme objectif le calcul l’âge du formateur à partir de sa date de naissance. 1 Voir https://fr.wikipedia.org/wiki/V%C3%A9hicule_tout-terrain create type transmission As object (nbre_roues integer); create type T_Transmissions As VArray(4) OF transmission; CREATE TYPE voiture_tout_train UNDER vehicule( garde_au_sol real, Transmission T_Transmissions ); create table vehicules of vehicule; create table voitures_tout_train of voiture_tout_train; create type T_Rue As object(nom_rue varchar(15), numero_rue Integer, numero_appartement Integer ); create type T_Adresse As object(rue T_Rue, ville varchar(25), pays varchar(45), code_postal Integer ); CREATE TYPE T_num_telephone AS VARRAY(5) OF varchar(10); 3  Pour déclarer une fonction sous oracle (SGBDR-O), on doit utiliser les mots-clés « MEMBER », « FUNCTION » et « RETURN » comme figuré ci-dessous.  Et la définition du corps de la fonction est comme suit :  Tel que : o RETURN NUMBER : la valeur retournée est de type “NUMBER” o Trunc : pour tronqué le résultat (Ex. TRUNC(15.3) = 15) o months_between(sysdate, date_naissance): le nombre de mois entre la date actuelle (date de système ou sysdate) nombre et la date de naissance de formateur (date_naissance).  Finalement nous pouvons créer la table « formateur » R2. / Exercice 03 : Employee (nom_empl, #enfants, #EnsembleCompetance) Enfant (nom_enfant, dateNaissance) Competances (type, #EnsembleExamen) Examens (annee, ville) R1. Le langage de définition de données ODL pour présenter ce schéma relationnel, avec les types appropriés pour chaque attribut : - La création d’un nouveau type Enfant create type Enfant as object (nom_enfant char(30), dateNaissance date) ; create type T_Formateur as object(Id integer, nom varchar(15), prénom varchar(15), Adresse T_Adresse, num_telephone T_num_telephone, date_naissance date, MEMBER FUNCTION age RETURN NUMBER ); CREATE OR REPLACE TYPE BODY T_Formateur AS MEMBER FUNCTION age RETURN NUMBER AS BEGIN RETURN trunc(months_between(sysdate, date_naissance)/12); END age; END; Create table Formateur of T_Formateur; 4 - La création d’un nouveau type, ensemble d’enfants (ou T_ Enfants), d'une longueur allant jusqu'à 12 enfants maximum. - La création d’un nouveau type Examen - La création d’un nouveau type, ensemble des examens (ou T_Examens), d'une longueur allant jusqu'à 5 Examens. - La création d’un nouveau type, compétence d’employée (ou Competances) qui se compose lui-même d'un autre nouveau type qui a été déjà créé (T_Examens). - La création d’un nouveau type, ensemble des compétence d’employée (ou T_ Competances), d'une longueur allant jusqu'à 14 compétences. - On finalise par la création de la table Employee qui se compose de plusieurs autres nouveaux types qui ont été déjà créés (T_ Enfants, T_ Competances). R2. Les requêtes SQL pour : 1. Trouvez les noms de tous les employés qui ont un enfant né le 1er janvier 2000 ou après : create type T_Enfants As VArray(12) OF Enfant; create type Examen as object (annee Integer, ville char(20)); create type T_Examens As VArray(5) OF Examen; create type Competances as object (type char(30), EnsembleExamen T_Examens); create type T_ Competances As VArray(14) OF Competances; create table Employee (nom_empl char(15), enfants T_ Enfants, EnsembleCompetance T_ Competances); SELECT E.nom_empl, enf.nom_enfant, enf.dateNaissance FROM Employee E, TABLE(E.enfants) enf where enf.dateNaissance > TO_DATE('01-01-2000','DD-MM-YYYY'); 5 2. Trouvez les employés qui ont passé un examen pour le type de compétence «agent de saisie» dans la ville «Batna» : 3. Trouvez tous les types de compétences dans la relation Employée. SELECT E.nom_empl FROM Employee E, TABLE(E.EnsembleCompetance) C, TABLE(C.EnsembleExamen) EX where C.type = 'agent de saisie' and EX.ville = 'Batna'; SELECT DISTINCT C.type FROM Employee E, TABLE(E.EnsembleCompetance) C ; uploads/s3/ td5-corrige-type.pdf

  • 19
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager