Vous êtes sur la page 1sur 5

Partie 1

1. création des types nécessaires pour la création du type personne_type

create type nom_type as object ( nomFamille varchar(30), prenom varchar(30));

create type adresse_type as object ( rue varchar(30), num int, ville varchar(30), pays varchar(20),
codePostal int);

create type telephone_type as varray (6) of varchar(15);

create type personne_type as object ( nss varchar(10), nom nom_type, dateNais date, adresse
adresse_type, telephone telephone1);

2. Creation de la table personne

create table Personne of personne_type(

primary key(nss));

3. insertion des nouveaux tuples

Insert into Personne values( 'B011234', nom_type('bouakkaz', 'mohamed'), '01/08/1980',

adresse_type ('rue de la gare', 12, 'bejaia', 'algerie', 06000),telephone_type ('0213211212',


'0555869699') );

4. Création des nouveaux types

Alter type personne_type not final cascade;

create type diplome_type as object (nom varchar(30), annee int);

create type liste_diplome as table of diplome_type;

create type etudiant_type under personne_type ( numEtud varchar(30), departement varchar(30),


diplome liste_diplome);

create type compte_type as object ( numC int, banque varchar(30));

create type enseignant_type UNDER personne_type ( numEnseig varchar(30), compte compte_type);

create table Etudiant of etudiant_type (

primary key(nss))

nested table diplome store as dip_stock;


create table Enseignant of enseignant_type (

primary key(nss));

Ajout d’un nouveau étudiant

Insert into Etudiant values( '0C145145', nom_type ('ouaret', 'jawad'), '30/03/2002',

adresse_type ('didouche mourad', 05, 'alger', 'algerie', 016000),telephone_type (), 'INF002525',


'informatique', liste_diplome() );

Ajout d’un nouveau enseignant

Insert into Enseignant values( '0M325325', nom_type ('merabi', 'meriem'), '05/05/1980',

adresse_type ('boulevard amirouche', 92, 'bejaia', 'algerie', 06000), telephone_type (), 'EX/INF
08580', compte1(050519802000, 'CPA') );

Insert into Enseignant values( '0M325324', nom_type ('abassi', 'youba'), '10/12/1970',

adresse_type ('rue joli vue', 92, 'alger', 'algerie', 016000),telephone1(), 'EX/INF 08570',
compte1(101219702010, 'BDL') );

Ajouter le numéro de tel à l’étudiant Jawad

update Etudiant

set telephone=telephone_type (' 0666521010',' 0775222222')

where nom=nom_type ('Ouaret','Jawad');

Ajouter le numéro de tel de madame Merabi

update Enseignant

set telephone=telephone_type (' 021232314',' 0626161101')

where nom=nom_type ('Merabi','Meriam');


liste des étudiants : nom, numéro et prénom

select E.nom.nomFamille, E.nom.prenom, E.numEtud

from Etudiant E ;

liste des personnes résidant dans la même ville

select distinct P1.nom.nomFamille, P1.nom.prenom, P2.nom.nomFamille, P2.nom.prenom

from Personne P1, Personne P2

where P1.nss< P2.nss and P1.adresse.ville=P2.adresse.ville;

Partie2
1. Creation des types cours_type et evaluation_type

Create type evaluation_type as object(dates date, note int, etudiant ref etudiant_type);

create type liste_evaluation as table of ref evaluation_type;

create type cour_type;

create type liste_cours as table of ref cour_type;

create type cour_type as object( numCours varchar(20), libellé varchar(50), credit varchar(20),

enseignants ref enseignant_type, etudiants ref etudiant_type, evaluations liste_evaluation, cours


liste_cours);

2. Créations des tables cours et evaluations

Create table Cours of cour_type (

Primary key(numCours),

constraint fk1 foreign key (enseignants) references Enseignant_type,

constraint fk2 foreign key (etudiants) references Etudiant_type)

nested table evaluations store as eval_stock,

nested table cours store as cour_stock;


Create table Evaluation of evaluation_type (Primary key (dates),

constraint fk3 foreign key (etudiant) references Etudiant_type);

3. Ajouter un nouveau cours identifié par "BDA", intitulé "Bases de Données Avancées" de 5

crédits, ayant pas de pré-requis et n'étant le pré-requis de aucun de cours, ayant comme

enseignant Meriam Merabi, et pour l'instant aucun étudiant n'inscrit.

insert into Cours values('BDA','BDDAvancées', '5',

(select ref (e) from Enseignant e where e.nom=nom_type ('Merabi','Meriam')), null,


liste_evaluation(), liste_cours() );

4. /*Ajouter un nouveau cours identifié par "GDC", intitulé "Gestion des données dans le

Cloud "de 5 crédits, Ayant comme pré-requis le cours «Bases de données avancées», en tant

qu’enseignant Youba ABASSI, Et pour le moment, aucun étudiant n'a été inscris.

insert into Cours values('GCD','Gestion des données dand le cloud’, '5',

(select ref (e) from Enseignant e where e.nom=nom_type ('abassi','youba')) ,null, liste_evaluation(),

liste_cours(cour_type (select ref (c) from Cours c where c.numCours='BDA')));

5. Ajouter le cours identifié par ‘’BDA’’ comme étant pris par l’étudiant Jawad, évalué en

02/06/2010 et ayant comme note13.

insert into Evaluation values('02/06/2010',13,

(select ref(e) from Etudiant e where e.nom=nom_type ('Ouaret','Jawad')));

update Cours c

set c.evaluations= liste_evaluation(evaluation_type (select ref(e) from Evaluation e where


e.dates='02/06/2010'))

where c.numCours='BDA';
6. Ajouter le cours identifié par ‘’GDC’’ comme étant pris par l’étudiant Jawad, évalué en

12/06/2010 et ayant comme note 11.

insert into Evaluation values('12/06/2010',11,

(select ref(e) from Etudiant e where e.nom=nom_type ('Ouaret','Jawad')));

update Cours c

set c.evaluations= liste_evaluation(evaluation_type (select ref(e) from Evaluation e where


e.dates='12/06/2010'))

where c.numCours='GDC';

7. Donner le cours prérequis de cours GDC

select c.libellé, value(a).libellé

from Cours c, table(c. cours) a

where c.libellé='Gestion des données dans le cloud’;

8. Donner la moyenne de chaque cours

select c.numCours, avg(value(e).note)

from Cours c, table(c.evaluations) e

group by c.numCours;

Vous aimerez peut-être aussi