30
PROJET 1 LA PHASE GÉNÉRIQUE DE L’APPLICATION I) La phase de définition Phase dans laquelle on spécifie les besoins en informatique de l’institution. Besoin : Stockage et traitement des données de type commerciales notamment sur : - Les œuvres caritatives décrites par : la date, le lieu, invité convié (institution), organisme (institution). - Les institutions décrites par : le sigle, le nom, l’organisme, l’adresse, les numéros de téléphones, le site web et la ligne éditoriale. - Les bourses décrites par : l’organisme donateur, la date de donation, la date de validité, la bourse, les modalités (nationalité, sexe, âge, diplôme), la durée, le pays, la ville, l’université et le montant. - Les étudiants décrites par : la photo, le nom, le prénom, la date et le lieu de naissance, l’âge, le sexe, la nationalité, la région et le département d’origine, l’ethnie, la résidence (quartier, ville, pays), l’adresse, Email, numéros de téléphones, la première langue, la deuxième langue, cursus universitaire (l’université, la faculté, la filière, le laboratoire, le niveau et les diplômes) et la date d’enregistrement. - Les emplois décris par : l’entreprise, son sigle, son secteur d’activité, l’adresse, les numéros de téléphone, le site web, le poste de l’employé ainsi que le contrat, le salaire et la date de recrutement. Les fonctions désirées : - Accéder aux informations sur les œuvres caritatives.

PROJET 1

Embed Size (px)

DESCRIPTION

Base de Données

Citation preview

Page 1: PROJET 1

PROJET 1 

LA PHASE GÉNÉRIQUE DE L’APPLICATION

I) La phase de définition

Phase dans laquelle on spécifie les besoins en informatique de l’institution.

Besoin : Stockage et traitement des données de type commerciales notamment sur :

- Les œuvres caritatives décrites par : la date, le lieu, invité convié (institution), organisme (institution).

- Les institutions décrites par : le sigle, le nom, l’organisme, l’adresse, les numéros de téléphones, le site web et la ligne éditoriale.

- Les bourses décrites par : l’organisme donateur, la date de donation, la date de validité, la bourse, les modalités (nationalité, sexe, âge, diplôme), la durée, le pays, la ville, l’université et le montant.

- Les étudiants décrites par : la photo, le nom, le prénom, la date et le lieu de naissance, l’âge, le sexe, la nationalité, la région et le département d’origine, l’ethnie, la résidence (quartier, ville, pays), l’adresse, Email, numéros de téléphones, la première langue, la deuxième langue, cursus universitaire (l’université, la faculté, la filière, le laboratoire, le niveau et les diplômes) et la date d’enregistrement.

- Les emplois décris par : l’entreprise, son sigle, son secteur d’activité, l’adresse, les numéros de téléphone, le site web, le poste de l’employé ainsi que le contrat, le salaire et la date de recrutement.

Les fonctions désirées :

- Accéder aux informations sur les œuvres caritatives.

- Accéder aux informations sur les institutions.

- Accéder aux informations sur les bourses.

- Accéder aux informations sur les étudiants.

- Accéder aux informations sur les emplois.

- Accéder aux informations sur les étudiants boursiers (étudiants ayant obtenus une bourse).

Page 2: PROJET 1

- Accéder aux informations sur les étudiants non boursiers (étudiants n’ayant pas obtenus une bourse).

- Accéder aux informations sur les bourses octroyées aux étudiants. - Accéder aux informations sur les bourses non octroyées aux étudiants.

- Accéder aux informations sur les étudiants formés ayant obtenus un emploi.

- Accéder aux informations sur les étudiants formés n’ayant pas obtenus un emploi.

- Compter les étudiants boursiers par région, département et ethnie.

- Compter les étudiants non boursiers par région, département et ethnie.

- Compter les bourses octroyées par institution et par année.

- Compter les bourses octroyées en fonction de la bourse et fonction de l’année.

- Compter les étudiants employés par région, département et ethnie.

- Compter les étudiants non employés par région, département et ethnie.

Les Interfaces utilisateurs :

Une interface assignée aux cadres et directeurs de l’entreprise comportant toute les fonctionnalités.

Une interface assignée aux secrétaires de l’entreprise donc l’unique fonctionnalité sera de stocker et de consulter les données sur les œuvres caritatives, les bourses, les institutions, les étudiants et les emplois.

Une interface assignée aux cadres et directeurs de l’Institution destinée aux datawarehouse et data mining.

II) La phase de développement

Conception d’une base de données relationnelle ou relationnelle objet et d’un datawarehouse relatif à cette base de données.

Conception d’une application constituée de trois interfaces utilisateurs interagissant avec la base de données.

Page 3: PROJET 1

III) Processus de développement d’un environnement de base de données 

Le processus fournit un cadre dans lequel on présente les différentes taches indispensable au développement de l’application.

- Analyse

- Conception du modèle E-R (Entité-Relation) relatif à la base de données.

- Conception du modèle Relationnel dérivé du modèle E-R

- Conception du schéma des requêtes

- Implémentation des relations et des requêtes

- Conception du schéma des autorisations

- Conception du schéma physique

- Conception du datawarehouse

III-1) Les Outils 

Présente les outils nécessaires au développement de l’application :

- Système de base de données open source tel que MySQL pour un système de base de données relationnel ou PostgreSQL pour un système de base de données relationnel objet.

IV) Processus de développement du programme d’application 

Page 4: PROJET 1

PARTIE 1 : CONCEPTION DU SYSTÈME OPERATIONNEL

I- ANALYSE DE LA BASE DE DONNÉES

Une Fondation Camerounaise a pour principales activités :1. Organiser des Œuvres caritatives pour récolter des bourses universitaires.2. Attribuer ces bourses aux étudiants. 3. Rechercher des emplois aux étudiants ayant achevés leurs formations.

Pour réaliser pleinement ses activités, cette fondation organise des œuvres de charités auxquelles un grand nombre d’institutions gouvernementales et non gouvernementales sont conviées.

Lors de ces œuvres de charités, certaines institutions se proposent d’octroyer des bourses à ladite fondation. Par ailleurs cette fondation peut recevoir des dons en bourses des institutions ne participant pas aux œuvres caritatives. Toutefois lorsqu’une institution se propose d’octroyer une ou plusieurs bourses à cette fondation, celle-ci doit conserver certaines informations sur ladite institution tel que : le sigle, le nom, l’organisme, l’adresse, les numéros de téléphones, le site web et la ligne éditoriale.

De même cette fondation devra également conserver des informations sur les œuvres de charités qu’elle organise. Pour cela chaque invitation sera identifiés par : la date, le lieu, les invités conviés (institutions), organisme (institution). Remarque : Une institution peut participer à une ou plusieurs œuvres caritatives sans toutefois octroyer une bourse, tout comme une institution peut octroyer des bourses sans toutefois participer aux œuvres caritatives.

Seules les institutions donateurs seront stockées dans la base de données.Quel que soit le nombre de bourse offertes par une institution, celle-ci sera

enregistré qu’une seul fois dans la base de données.Et pour chaque bourse universitaire attribuée à ladite fondation, celle-ci doit

enregistrer : l’organisme donateur, la date de donation, la date de validité, la bourse, les modalités (nationalité, sexe, âge, diplôme), la durée, le pays, la ville, l’université et le montant.

Pour bénéficier de ces bourses universitaires, chaque étudiant devra formuler une demande à ladite fondation dans laquelle il devra remplir un formulaire contenant les informations suivantes :Photo, le nom, le prénom, la date et le lieu de naissance, le sexe, la nationalité, la région et le département d’origine, l’ethnie, la résidence (quartier, ville, pays), l’adresse, Email, numéro de téléphones, la première langue, la deuxième langue, cursus universitaire (l’université, la faculté, la filière, le laboratoire, le niveau et les diplômes) et la date d’enregistrement.

Remarque : Un étudiant ne peut avoir qu’une seule bourse.Comme il l’est décrit dans ses prérogatives, la fondation se propose de trouver un

emploi à chaque étudiant après sa formation. Lorsque cela est réalisé, la fondation doit enregistrer : le nom de l’entreprise, son sigle, le secteur d’activité, l’adresse, les

Page 5: PROJET 1

numéros de téléphone, le site web. Ainsi le poste, le contrat, le salaire et la date de recrutement de l’étudiant formé.

Remarque : Il est susceptible que certains étudiants après leurs formations ne puissent pas avoir des emplois

Pour son fonctionnement l’ONG prélève une cote part de 30% sur chaque bourse attribuée à un étudiant. Et dans le cas où une bourse n’a pas pu être attribut à étudiant cette bourse sera purement renvoyé à l’institution donateur.

Sur chaque emploi trouvé à un étudiant l’ONG prélève une cote part de 15% de son salaire et cela durant une année entière.

Page 6: PROJET 1

II- LE MODÈLE ENTITÉ RELATION (E-R)

Le modèle entité-relation (E-R) de notre base de données relationnelle objet sera développé autour des informations suivantes :

Les œuvres caritatives seront modélisées en un ensemble d’entités ayant les propriétés descriptives (attributs) suivantes : date, ville, quartier, lieu, institution, sigle, organisme, numero_reception.

Les institutions seront modélisées en un ensemble d’entités ayant les propriétés descriptives (attributs) suivantes : code, sigle, nom, organisme, adresse, numero_telephone, site_web, ligne_editoriale.

Il existera une interaction (relation d’ensemble) entre les ensembles d’entités œuvres caritatives et institutions.

Les donations seront modélisées en un ensemble d’entités ayant les propriétés descriptives (attributs) suivantes : numero_bourse, donateur, date_donation, date_validite, bourse, modalites (nationalite, sexe, âge, diplome), duree, pays, ville, universite, montant.

Il existera une interaction (relation d’ensemble) entre les ensembles d’entités bourses et institutions.

Les étudiants seront modélisés en un ensemble d’entités ayant les propriétés descriptives suivantes :  ID, photo, nom, prenom, date et le lieu de naissance, âge, sexe, nationalité, région et département d’origine, ethnie, résidence (quartier, ville, pays), adresse, Email, numero_telephone, première_langue, deuxième_langue, date_enregistrement, cursus_universitaire (université, faculté, filière, laboratoire, niveau, diplômes).

Il existera une interaction (relation d’ensemble) entre les ensembles d’entités bourses et étudiants précisant la date d’attribution de la bourse.

Les emplois seront modélisés en ensemble d’entités ayant les propriétés descriptives suivantes : l’entreprise, le sigle, le secteur d’activité, l’adresse, numéros de téléphone, site web, ainsi que le poste de l’employe, le contrat, le salaire et la date_recrutement.

Et le schéma E-R de cette conception de base de données relationnelle est le suivant :

Page 7: PROJET 1

(0,1)

(0,*)

(1,*) (1,1)

(0,1)

(1,1)

Institution

(0,1) (0,1)Donation Étudiant

Emploi

Œuvre caritative

Page 8: PROJET 1

III- LE MODÈLE RELATIONNEL OBJET

Le schéma Relationnel Objet dérivé du schéma Entité-Relation ci-dessus est le suivant :

Œuvre_caritative (Date, Ville, Quartier, Lieu, Institution, Sigle, Organisme, Numero_reception).

Institution (Code, Sigle, Nom, Organisme, Adresse, Ligne_Editorial, Tel, Site_web).

Donation (Numero, Donateur, Date_donation, Date_validite, Bourse, Modalite (nationalite, sexe, age, diplome), Duree, Pays, Ville, Universite, Montant)

Etudiant (ID, Photo, Nom, Prenom, Naissance (date, lieu), Age, Sexe, Nationalite, Origine (region, departement, ethnie), Residence (pays, ville, quartier), Adresse, Email, Tel, Langue (1, 2), Cursus_universitaire (universite, faculte, filiere, laboratoire, niveau, diplome) date_enregistrement)

Etudiant_Bourse (Numero, ID, Date_Attribution)

Emploi (Entreprise, Sigle, Secteur_activite, Adresse, Site_web, Tel, ID, Numero, poste, salaire, contrat, date_recrutement).

Page 9: PROJET 1

IV- SCHÉMA DES REQUÊTES

Le schéma des requêtes de cette base de données sera élaboré en fonction du schéma relationnel.

Les différentes requêtes seront :

- Accéder aux informations sur les institutions.

- Accéder aux informations sur les œuvre_caritative.

- Accéder aux informations sur les donations.

- Accéder aux informations sur les étudiants.

- Accéder aux informations sur les Emploi.

- Accéder aux informations sur les institutions donateurs participants aux œuvres caritatives.

- Accéder aux informations sur les institutions non donateurs participants aux œuvres caritatives.

- Accéder aux informations sur les institutions donateurs ne participants aux œuvres caritatives.

- Accéder aux informations sur les étudiants boursiers (étudiants ayant obtenus une bourse).

- Accéder aux informations sur les étudiants non boursiers (étudiants n’ayant pas obtenus une bourse).

- Accéder aux informations sur les bourses octroyées aux étudiants. - Accéder aux informations sur les bourses non octroyées aux étudiants.

- Accéder aux informations sur les étudiants formés ayant obtenus un emploi.

- Accéder aux informations sur les étudiants formés n’ayant pas obtenus un emploi.

- Compter les étudiants boursiers par région, département, ethnie et par année.

- Compter les étudiants non boursiers par région, département, ethnie et par année.

Page 10: PROJET 1

- Compter les bourses octroyées par institution et par année.

- Compter les bourses octroyées en fonction de la bourse et fonction de l’année.

- Compter les étudiants employés par région, département et ethnie.

- Compter les étudiants non employés par région, département et ethnie.

Page 11: PROJET 1

V- ALGÈBRE RELATIONNELLE

L’opération relationnelle permettant d’accéder aux tuples de la relation Œuvre_caritative est :ΠDate, Ville, Quartier, Lieu, Institution, Sigle, Organisme, Numero_reception (Œuvre_Caritative)

L’opération relationnelle permettant d’accéder aux tuples de la relation Institution est :Π Code, Sigle, Nom, Organisme, Adresse, Ligne_Editorial, Tel, Site_web (Institution)

L’opération relationnelle permettant d’accéder aux informations de la relation Bourse est :Π Numero, Donateur, Date_donation, Date_validite, Bourse, Modalite, Duree, Pays, Ville, Universite, Montant (Donation)

L’opération relationnelle permettant d’accéder aux informations de la relation Bourse est :Π Numero, Sigle, Nom, Organisme, Date_donation, Date_validite, Bourse, Modalite, Duree, Pays, Ville, Universite, Montant ¿

(Donation × Institution))

L’opération relationnelle permettant d’accéder aux tuples de la relation Étudiant est :Π ID, Photo, Nom, Prenom, Naissance, Age, Sexe, Nationalite, Ethnie, Origine, Residence, Adresse, Email, Tel, Langue,

Cursus_universitaire, date_enregistrement (Etudiant)

L’opération relationnelle permettant d’accéder aux tuples de la relation Étudiant est :Π Entreprise, Sigle, Secteur_activite, Adresse, Tel, Site_web, ID, Numero, poste, salaire, contrat, date_recrutement (Emploi)

L’opération relationnelle permettant d’accéder aux informations sur les institutions donateurs participant aux Œuvres_caritatives est : Π Code, Sigle, Nom, Organisme, Adresse, Ligne_Editorial, Tel, Site_web ¿ (Institution ⋈ Œuvre_Caritative))

L’opération relationnelle permettant d’accéder aux informations sur les institutions non donateurs participants aux œuvres caritatives est :Π Sigle, Institution, Organisme (Œuvre_Caritative) −¿ Π Sigle, Nom as Institution, Organisme (Institution)

L’opération relationnelle permettant d’accéder aux informations sur les institutions donateurs ne participants aux œuvres caritatives est :Π Code, Sigle, Nom, Organisme, Adresse, Ligne_Editorial, Tel, Site_web (Institution) −¿ Π Code, Sigle, Nom, Organisme,

Adresse, Ligne_Editorial, Tel, Site_web ¿ (Institution ⋈ Œuvre_Caritative))

L’opération relationnelle permettant d’accéder aux informations sur les étudiants boursiers (étudiants ayant obtenus une bourse) est : Π ID, Photo, Nom, Prenom, Naissance, Age, Sexe, Nationalite, Origine, Residence, Adresse, Email, Tel, Langue,

Page 12: PROJET 1

Cursus_universitaire, date_enregistrement, Numero, Date_donation, Date_validite, Bourse, Modalite, Duree, Pays, Ville, Universite,

Montant, date_attribution ((Etudiant ⋈ Etudiant_Bourse) ⋈ Donation))

L’opération relationnelle permettant d’accéder aux informations sur les étudiants non boursiers (étudiants n’ayant pas obtenu des bourses) :Π ID, Photo, Nom, Prenom, Naissance, Age, Sexe, Nationalite, Origine, Residence, Adresse, Email, langue, Cursus_universitaire,

date_enregistrement [(Etudiant ⊐⋈ Etudiant_Bourse) −¿ (Etudiant ⋈ Etudiant_Bourse)]

L’opération relationnelle permettant d’accéder aux informations sur les bourses attribuées aux étudiants est :Π Numero, Date_donation, Date_validite, Bourse, Modalite, Duree, Pays, Ville, Universite, Montant, date_attribution (Donation ⋈ Etudiant_Bourse)

L’opération relationnelle permettant d’accéder aux informations sur les bourses non attribuées aux étudiants est : Π Numero, Date_donation, Date_validite, Bourse, Modalite, Duree, Pays, Ville, Universite, Montant [(Donation ⊐⋈ Etudiant_Bourse) −¿ (Donation ⋈ Etudiant_Bourse)]

L’opération relationnelle permettant d’accéder aux informations sur les étudiants ayant achevé leur formation et obtenus un emploi est :Π ID, Photo, Nom, Prenom, Naissance, Age, Sexe, Nationalite, Origine, Residence, Adresse, Email, Tel, langue, date_enregistrement,

Bourse, Pays, Ville, Universite, Montant, Entreprise, Sigle, Secteur_activite, Adresse, Tel, Site_web, poste, salaire, contrat,

date_recrutement (Etudiant_Boursier ⋈ Emploi)

L’opération relationnelle permettant d’accéder aux informations sur les étudiants boursiers n’ayant pas obtenus un emploi est :Π ID, Photo, Nom, Prenom, Naissance, Age, Sexe, Nationalite, Origine, Residence, Adresse, Email, Tel, langue, date_enregistrement,

Bourse, Pays, Ville, Universite, Montant [(Etudiant_Boursier ⊐⋈ Emploi) −¿ (Etudiant_Boursier ⋈ Emploi)]

L’opération relationnelle permettant de compter les étudiants boursiers par région, département, ethnie et par année est :

origine, annee G count (ID) (Etudiant_Boursier)

L’opération relationnelle permettant de compter les étudiants boursiers par sexe et par année est :

sexe, annee G count (ID) (Etudiant_Boursier)

L’opération relationnelle permettant de compter les bourses octroyées par institution et par année est :

sigle, annee G count (Code) (Institution)

L’opération relationnelle permettant de compter les bourses octroyées en fonction de la bourse et de l’année est :

bourse, annee G count (Numero) (Donation)

Page 13: PROJET 1

L’opération relationnelle permettant de compter les emplois par sexe et par année est :

sexe, annee G count (ID) (Employe)

L’opération relationnelle permettant de compter les étudiants employés par ethnie, région, département et par année est :

origine, annee G count (ID) (Employe)

L’opération relationnelle permettant de compter les étudiants non employé par ethnie, région, département et par année est :

origine, annee G count (ID) (Non_Employe)

VI- IMPLEMENTATION

VI- 1 IMPLEMENTATION DES RELATIONS

CREATE TABLE Œuvre_Caritative (Date date, Ville text not null, Quartier text not null, Lieu text not null, Institution text not null, Sigle text not null, Numero_reception integer unsigned not null);

CREATE TABLE Institution (Code char (4) Sigle text not null, Nom text not null, Organisme text not null, Adresse text not null, Tel text not null, Site_Web text not null, Ligne_editoriale text not null, Primary key (Code));

CREATE TABLE Donation (Numero char (8),

Donateur char (4) not null, Date_donation date, Date_validite date, Bourse text not null, Modalite text array not null, Duree text not null, Pays text not null,

Page 14: PROJET 1

Ville text not null, Universite text not null, Montant(€) integer unsigned not null, Primary key (Numero) Foreign key (Donateur) references Institution (Code) on

update

Cascade);

CREATE TYPE Naissance AS (Date date, Lieu text not null)

CREATE TYPE Origine AS (Region text not null, Departement text not null, Ethnie text not null);

CREATE TYPE Residence AS (Pays text not null, Ville text not null, Quartier text not null);

CREATE TYPE Cursus AS (Universite text not null, Faculte text not null, Filiere text not null, Laboratoire text not null, Niveau text not null, Diplome text array not null);

CREATE TYPE Langue AS (1 text not null, 2 text not null);

CREATE TABLE Etudiant (Date_enregistrement current_date, ID char (9),

Photo blod not null, Nom text not null, Prenom text, Naissance naissance, Age integer unsigned, Sexe char (1) not null, Nationalite char (3) not null, Origine origine, Residence residence, Adresse text not null, Email text not null,

Page 15: PROJET 1

Tel text array not null, Langue langue, Cursus_universitaire cursus, Primary key (ID);

CREATE TABLE Etudiant_Bourse (Numero char (8) not null unique, ID char (9) not null unique, Date_attribution current_date, Foreign key (Numero) References Bourse on update cascade, Foreign key (ID) References Etudiant on update cascade);

CREATE TABLE Emploi (Entreprise text not null, Sigle text not null, Secteur_activite text not null, Adresse text not null, Tel text array not null, Site_Web text not null, ID char not null, Numero char (8) not null, Poste text not null, Salaire integer unsigned not null, Contrat char (3) not null, Date_recrutement date, Primary key (ID, Numero), Check (Contrat in (‘CDD’, ‘CDI’), Foreign key (Numero) References Bourse on update

cascade, Foreign key (ID) References Etudiant on update cascade);

Page 16: PROJET 1

VI-2 CONCEPTION DES RELATIONS VIRTUELLES

CREATE VIEW Bourse ASSELECT Numero, Sigle, Nom, Organisme, Date_donation, Date_validite, Bourse,

Modalite, Duree, Pays, Ville, Universite, MontantFROM Donation natural join InstitutionWHERE Institution.Code ¿ Donation.Donateur ORDER BY date_donationGROUP BY Bourse ;

CREATE VIEW IDPOC ASSELECT Code, Sigle, Nom, Organisme, Adresse, Ligne_Editorial, Tel, Site_webFROM Institution natural join Œuvre_CaritativeWHERE Institution.Nom ¿ Œuvre_Caritative.Institution ORDER BY Sigle GROUP BY Organisme ;

CREATE VIEW INDPOC AS[(SELECT Sigle, Institution, OrganismeFROM Oeuvre_Caritative)EXCEPT(SELECT Sigle, Nom as Institution, OrganismeFROM Institution)]ORDER BY Sigle ;

CREATE VIEW IDNPOC AS[(SELECT Code, Sigle, Nom, Organisme, Adresse, Ligne_Editorial, Tel, Site_webFROM Institution)EXCEPT(SELECT Code, Sigle, Nom, Organisme, Adresse, Ligne_Editorial, Tel, Site_webFROM IDPOC] ORDER BY SigleGROUP BY Organisme;

Page 17: PROJET 1

CREATE VIEW Etudiant_Boursier ASSELECT ID, Photo, Nom, Prenom, Naissance, Age, Sexe, Nationalite, Origine,

Residence Adresse, Email, Tel, langue, Cursus_universitaire, Date_enregistrement, Numero, Date_donation, Date_validite, Bourse, Modalite, Duree, Pays, Ville, Universite, Montant, date_attribution

FROM (Etudiant natural join Etudiant_Bourse) natural join Donation ORDER BY Nom and Prenom ;

CREATE VIEW Etudiant_non_Boursier AS[(SELECT ID, Photo, Nom, Prenom, Naissance, Age, Sexe, Nationalite, Origine,

Residence Adresse, Email, Tel, langue, Cursus_universitaire, Date_enregistrement,FROM Etudiant natural left outer join Etudiant_Bourse)EXCEPT(SELECT ID, Photo, Nom, Prenom, Naissance, Age, Sexe, Nationalite, Origine,

Residence Adresse, Email, Tel, langue, Cursus_universitaire, Date_enregistrement,FROM Etudiant natural join Etudiant_Bourse)]ORDER BY Nom and Prenom ;

CREATE VIEW Bourse_Attribuee ASSELECT Numero, Date_donation, Date_validite, Bourse, Modalite, Duree, Pays, Ville,

Universite, Montant, Date_attributionFROM Donation natural join Etudiant_BourseORDER BY Date_donation ;

CREATE VIEW Bourse_non_Attribuee AS[(SELECT Numero, Date_donation, Date_validite, Bourse, Modalite, Duree, Pays,

Ville, Universite, MontantFROM Donation natural left outer join Etudiant_Bourse)EXCEPT(SELECT Numero, Date_donation, Date_validite, Bourse, Modalite, Duree, Pays,

Ville, Universite, MontantFROM Donation natural join Etudiant_Bourse)]ORDER BY date_donation;

CREATE VIEW Etudiant_Emploi ASSELECT ID, Photo, Nom, Prenom, Naissance, Age, Sexe, Nationalite, Origine,

Residence, Adresse, Email, Tel, langue, date_enregistrement, Bourse, Pays, Ville, Universite, Montant, Entreprise, Sigle, Secteur_activite, Adresse, Tel, Site_web, poste, salaire, contrat, date_recrutement

FROM Etudiant_Boursier Natural Join EmploiORDER BY Nom and Prenom ;

Page 18: PROJET 1

CREATE VIEW Etudiant_non_Emploi AS[(SELECT ID, Photo, Nom, Prenom, Naissance, Age, Sexe, Nationalite, Origine,

Residence, Adresse, Email, Tel, langue, date_enregistrement, Bourse, Pays, Ville, Universite, Montant, Entreprise, Sigle, Secteur_activite, Adresse, Tel, Site_web, poste, salaire, contrat, date_recrutement

FROM Etudiant_Boursier natural left outer join Emploi)EXCEPT(SELECT ID, Photo, Nom, Prenom, Naissance, Age, Sexe, Nationalite, Origine,

Residence, Adresse, Email, Tel, langue, date_enregistrement, Bourse, Pays, Ville, Universite, Montant, Entreprise, Sigle, Secteur_activite, Adresse, Tel, Site_web, poste, salaire, contrat, date_recrutement

FROM Etudiant_Boursier Natural Join Emploi)] ORDER BY Nom and Prenom ;

VI -3 IMPLEMENTATION DES REQUÊTES

SELECT *FROM Œuvre_Caritative ORDER BY Date ;

SELECT *FROM Institution ORDER BY Sigle GROUP BY Organisme ;

SELECT *FROM DonationORDER BY Date_donationGROUP BY Bourse ;

SELECT *FROM EtudiantORDER BY Nom and Prenom ;

SELECT *FROM Etudiant_Bourse ;

SELECT *FROM Emploi

Page 19: PROJET 1

ORDER BY SigleGROUP BY Secteur_activite ;

SELECT *FROM Bourse ;

SELECT *FROM IDPOC ;

SELECT *FROM INDPOC ;

SELECT *FROM IDNPOC ;

SELECT *FROM Etudiant_Boursier ;

SELECT *FROM Etudiant_non_Boursier ;

SELECT *FROM Bourse_Attribuee ;

SELECT *FROM Bourse_non_Attribuee ;

SELECT *FROM Etudiant_Emploi ;

SELECT *FROM Etudiant_non_Emploi ;

Page 20: PROJET 1

VI-4 EXTENSION PROCÉDURALE DU LANGAGE SQL

L’extension procédurale du langage SQL consiste à associer le langage de requête SQL au langage procédurale.

FONCTIONS ET PROCEDURES

Les codes de la relation institution seront générés par une fonction contenue dans le système de base de données et devront être sous la forme I- XX.Par exemple I-01, I-02, I-03, etc…

Les numéros de réceptions des billets des œuvres caritatives seront générer une fonction contenue dans le système de base de données. Et ces numéros seront des nombres seront de la forme année-X-XX.Par exemple 2015X01, 2015X02,

Les numéros de bourses seront également générés par une fonction contenue dans le système de base de données et devront être sous la forme : année-B-A-XX.Par exemple 2015BA00.La première lettre (B) est une lettre fixe synonyme de Bourse, la deuxième lettre est une variable qui s’incrément dès le nombre à atteint la valeur de 99.Par exemple 2015BA98, 2015BA99, 2015BB00.

Les matricules des étudiants seront générés une fonction contenue dans le système de base de données et devront être sous la forme : année-E-A-XXXPar exemple 2015EA000.La première lettre (E) est une lettre fixe synonyme de Étudiant, la deuxième lettre est une variable qui s’incrément dès le nombre à atteint la valeur de 999.Par exemple 2015EA998, 2015EA999, 2015EB000.

Page 21: PROJET 1

VII- AUTORISATION

L’ONG est administrée par un directeur générale précédé d’un vice-directeur.L’ONG dispose de plusieurs secrétaires donc l’unique tâche est de stocker les

données dans les relations suivantes bourses, institutions, étudiants et entreprises.Seuls les cadres auront le droit d’attribuer les bourses aux étudiants après

études de leurs dossiers et de rechercher des emplois à ces boursiers. La conception de cette base de données sera réalisée à partir d’un super

utilisateur (Administrateur de base de données) et en attribuant à chaque utilisateur ses rôles et ses droits nous avons :

CREATE USER Directeur CONNECTION LIMIT 1 ENCRYPTED PASSWORD ‘XYZAE123451’ ;

CREATE USER Vice_Directeur CONNECTION LIMIT 1 ENCRYPTED PASSWORD ‘XYZBE123463’ ;

CREATE ROLE Cadre;

CREATE ROLE Secretaire;

CREATE USER Secretaire_1 CONNECTION LIMIT 1 ENCRYPTED PASSWORD ‘XYZTA223340’;

CREATE USER Secretaire_2 CONNECTION LIMIT 1 ENCRYPTED PASSWORD ‘XYZTA215601’;

CREATE USER Secretaire_3 CONNECTION LIMIT 1 ENCRYPTED PASSWORD ‘XYZTA120134’;

Page 22: PROJET 1

CREATE USER Secretaire_4 CONNECTION LIMIT 1 ENCRYPTED PASSWORD ‘XYZTA569834’;

CREATE USER Cadre_1 CONNECTION LIMIT 1 ENCRYPTED PASSWORD ‘YXZTB123653’;

CREATE USER Cadre_2 CONNECTION LIMIT 1 ENCRYPTED PASSWORD ‘YXZTB743512’;

CREATE USER Cadre_3 CONNECTION LIMIT 1 ENCRYPTED PASSWORD ‘YXZTB995703’;

GRANT Secretaire TO Secretaire_1, Secretaire_2, Secretaire_3, Secretaire_4

GRANT Cadre TO Cadre_1, Cadre_2, Cadre_3

CREATE TABLESPACE ONG LOCATION ‘C :\Users\Pierre Patrick Etobe\ONG’ ;

CREATE DATABASE SOS_MASTER_FORMATION TABLESPACE ONG CONNECTION LIMIT 9;

GRANT <insert, select>ON <Bourse.Institution, Bourse.Bourse, Bourse.Etudiant, Bourse.Entreprise>TO < Secretaire>

GRANT <select, insert, update>ON <Bourse.Institution, Bourse.Bourse, Bourse.Etudiant, Bourse.Entreprise,

Bourse.Etudiant_Bourse>TO <cadre>

GRANT <select>ON < Bourse.Etudiants_Boursiers, Bourse.Etudiants_non_Boursiers,

Bourse.Bourses_Disponibles, Bourse.Bourses_Attribuees, Bourse.Etudiants_Boursiers_emploi, Bourse.Etudiants_Boursiers_sans_emploi>

TO <cadre>

GRANT < select, insert, update >ON <bourse.institution, bourse.bourse, bourse.etudiant, bourse.entreprise,

bourse.etudiant_bourse>TO < vice_directeur>

Page 23: PROJET 1

GRANT <select>ON < bourse.etudiants_boursiers, bourse.etudiants_non_boursiers,

bourse.bourses_disponibles, bourse.bourses_attribuees, bourse.etudiants_boursiers_emploi, bourse.etudiants_boursiers_sans_emploi>

TO <vice_directeur>

GRANT < select, insert, update, delete >ON <bourse.institution, bourse.bourse, bourse.etudiant, bourse.entreprise,

bourse.etudiant_bourse>TO < Directeur>

GRANT <select>ON < bourse.etudiants_boursiers, bourse.etudiants_non_boursiers,

bourse.bourses_disponibles, bourse.bourses_attribuees, bourse.etudiants_boursiers_emploi, bourse.etudiants_boursiers_sans_emploi>

TO <Directeur>