Implémentation
Dans le cadre de la conception de la base de données de l'association "Objectifs", vous avez abouti au modèle relationnel ci-après.
Projet (#Num:int, Nom:string, Debut:date, Fin:date, Specialite=>Specialite, ChefDeProjet=>Membre) avec Nom NOT NULL, Debut NOT NULL, Fin NOT NULL, Specialite NOT NULL, ChefDeProjet NOT NULL
Tache (#NumProjet=>Projet, #NumTache, Nom:string, Participant=>Membre) avec Nom NOT NULL
Membre (#Num:int, Prenom:string, Nom:string, Specialite=>Specialite) avec (Prenom, Nom) KEY
Partenaire (#Nom:string, Description:string)
Partenariat (#Partenaire=>Partenaire, #Projet=>Projet, role:string)
Specialite (#Intitule:string)
Question
Question
Écrire et exécuter un code SQL LMD[2] compatible Oracle permettant d'insérer dans la base les données du tableau initial dans un fichier objectifs-init.sql
.
Indice
Pour insérer des dates utiliser la fonction TO_DATE : Fonctions de traitement des dates
Question
Écrire un fichier CSV pour chaque table (projet.csv
, specialite.csv
...), avec les informations de votre choix, afin d'alimenter la base en données complémentaires. Chargez ces fichiers à l'aide de SQL Developer.
Indice
Produisez ces fichiers à l'aide d'un éditeur de texte comme GEdit, et à l'aide d'un tableur comme LibreOffice Calc.
Indice
Pensez à finaliser votre série d'insertions par une instruction COMMIT afin de terminer correctement la transaction.
Question
Écrire en algèbre relationnel, puis en SQL les vues suivantes afin de faciliter l'accès à vos données :
vProjet est la jointure des projets et des membres chefs de projet.
vTaches est la jointure de vProjet avec les taches et les membres participants.
vPartenariat est la jointure entre les partenariats, vProjet et les partenaires.
Indice
La création de ces vues sera enregistrée dans un fichier objectifs-vues.sql
.
Solution
Algèbre relationnel
vProjet = JOINTURE (Projet, Membre, Projet.ChefDeProjet=Membre.Num)
vTaches = JOINTURE (vProjet, JOINTURE (Tache, Membre, Tache.Participant=Membre.Num), Tache.NumProjet=vProjet.Num)
vPartenariat = JOINTURE (vProjet, JOINTURE (Partenariat, Partenaire, Partenariat.Partenaire=Partenaire.Nom), Partenariat.Projet=vProjet.Num)