diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..9a4275b2b25fbcd9e9a575ee1e37197614104c4a --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# Tp bases de données avancées + +1. Balde Abdoul Aziz +2. BOUZID Katia + +## Diagramme de classe + +[voir le diagramme uml](uml.png) diff --git a/projet.sql b/projet.sql index 79a39eeadb5f7b72355c1bc76f7a1a136b6fb2a3..a12de38453974e038389d07f34cf82217b9a61af 100644 --- a/projet.sql +++ b/projet.sql @@ -23,6 +23,7 @@ CREATE OR REPLACE TYPE Competence_type AS OBJECT ( ); / CREATE OR REPLACE TYPE Aptitude_type AS OBJECT ( + intitule VARCHAR2(2), description VARCHAR2(200), competence_id REF Competence_type ); @@ -50,7 +51,7 @@ CREATE TABLE Etudiant OF Etudiant_type (UNIQUE (ine)); CREATE TABLE Enseignant OF Enseignant_type (UNIQUE (matricule)); CREATE TABLE Domaine OF Domaine_type (UNIQUE ( id_domaine)); CREATE TABLE Competence OF Competence_type; -CREATE TABLE Aptitude OF Aptitude_type; +CREATE TABLE Aptitude OF Aptitude_type ( UNIQUE (intitule)); CREATE TABLE Ue OF Ue_type NESTED TABLE enseignants STORE AS Ue_Enseignants NESTED TABLE etudiant STORE AS Ue_Etudiants; CREATE TABLE Evaluation OF Evaluation_type NESTED TABLE aptitudes STORE AS Evaluation_Aptitudes; @@ -87,20 +88,24 @@ INSERT INTO Competence (description, domaine_id) INSERT INTO Competence (description, domaine_id) VALUES ('C2', (SELECT REF(dom) FROM Domaine dom WHERE dom.id_domaine = 'D3')); -INSERT INTO Aptitude (description, competence_id) -VALUES ('Tirer parti des atouts de l-objet', (SELECT REF(com) FROM Competence com WHERE com.description = 'C2' AND +INSERT INTO Aptitude (intitule, description, competence_id) +VALUES ('A1', 'Tirer parti des atouts de l-objet', (SELECT REF(com) FROM Competence com WHERE com.description = 'C2' AND com.domaine_id = (SELECT REF(dom) FROM Domaine dom WHERE dom.id_domaine = 'D1'))); -INSERT INTO Aptitude (description, competence_id) -VALUES ('Traduire un modèle en code RO', (SELECT REF(com) FROM Competence com WHERE com.description = 'C2' AND +INSERT INTO Aptitude (intitule, description, competence_id) +VALUES ('A2', 'Traduire un modèle en code RO', (SELECT REF(com) FROM Competence com WHERE com.description = 'C2' AND com.domaine_id = (SELECT REF(dom) FROM Domaine dom WHERE dom.id_domaine = 'D1'))); -INSERT INTO Aptitude (description, competence_id) -VALUES ('Savoir utilisé DataGrip', (SELECT REF(com) FROM Competence com WHERE com.description = 'C1' AND +INSERT INTO Aptitude (intitule, description, competence_id) +VALUES ('A3','Savoir utilisé DataGrip', (SELECT REF(com) FROM Competence com WHERE com.description = 'C1' AND com.domaine_id = (SELECT REF(dom) FROM Domaine dom WHERE dom.id_domaine = 'D1'))); -INSERT INTO Aptitude (description, competence_id) -VALUES ('Savoir connecter DataGrip', (SELECT REF(com) FROM Competence com WHERE com.description = 'C1' AND +INSERT INTO Aptitude (intitule, description, competence_id) +VALUES ('A4','Savoir connecter DataGrip', (SELECT REF(com) FROM Competence com WHERE com.description = 'C1' AND + com.domaine_id = (SELECT REF(dom) FROM Domaine dom WHERE dom.id_domaine = 'D1'))); + +INSERT INTO Aptitude (intitule, description, competence_id) +VALUES ('A6','Configurer un projet GraphStream', (SELECT REF(com) FROM Competence com WHERE com.description = 'C1' AND com.domaine_id = (SELECT REF(dom) FROM Domaine dom WHERE dom.id_domaine = 'D1'))); INSERT INTO Ue (intitule, enseignants, etudiant) @@ -134,25 +139,40 @@ VALUES ('M1_GRA', Enseignants_list_type( INSERT INTO Evaluation (ue, aptitudes) VALUES ((SELECT REF(u) FROM Ue u WHERE u.intitule = 'M1_BDA'), Aptitude_list_type( - (SELECT REF(a) FROM Aptitude a WHERE ROWNUM = 1) + (SELECT REF(a) FROM Aptitude a WHERE a.intitule = 'A1') ) ); +INSERT INTO Evaluation (ue, aptitudes) +VALUES ((SELECT REF(u) FROM Ue u WHERE u.intitule = 'M1_BDA'), + Aptitude_list_type( + (SELECT REF(a) FROM Aptitude a WHERE a.intitule = 'A2') + ) +); + +INSERT INTO Evaluation (ue, aptitudes) +VALUES ((SELECT REF(u) FROM Ue u WHERE u.intitule = 'M1_GRA'), + Aptitude_list_type( + (SELECT REF(a) FROM Aptitude a WHERE a.intitule = 'A6') + ) +); COMMIT; + -- requete de selection -- --- simple -- -SELECT nom, prenom FROM ENSEIGNANT; --cette requette permet de selectionné tous les aptitudes du domaine D1 -SELECT a.description -FROM Aptitude a -WHERE a.competence_id IN ( - SELECT c.OBJECT_ID - FROM Competence c - WHERE DEREF(c.domaine_id).id_domaine = 'D1' -); +SELECT a.description FROM Aptitude a WHERE a.competence_id.domaine_id.id_domaine = 'D1'; + +-- cette requete des ue tenu par M. Balev +SELECT u.intitule + FROM Ue u, TABLE(u.enseignants) e + WHERE e.COLUMN_VALUE.matricule = 'BLV255'; + + +-- cette requete qui permet de trouver le nombre d'evaluation par UE +SELECT e.ue.intitule, COUNT(*) as "Nombre d'évaluations" +FROM Evaluation e +GROUP BY e.ue.intitule; --- requete de l'intitutilé des ue tenu par M. Balev --- requete evaluation diff --git a/uml.png b/uml.png new file mode 100644 index 0000000000000000000000000000000000000000..31870b7be6f311216747b096bf1b2427b4cc9401 Binary files /dev/null and b/uml.png differ