Mise en place d'un système d'information sous Oracle basé sur une architecture trois tiers( Télécharger le fichier original )par Saher Tegane Université El-Hadj Lakhdar - BATNA - Ingénieur d’Etat en Informatique 2008 |
cHAPITRE 06
OFA est l'architecture standard qu'el est recommandé d'utiliser dans une base de données Oracle. C'est un ensemble des règles d'installation et de configuration qui donnent des bases oracle rapides, fiables, faciles à faire évoluer et nécessitant peu de maintenance. Les trois règles importantes pour respecter cette architecture sont :
OFA organise donc la base de données en fonction des types de fichiers et de leurs utilisations. Les fichiers binaires, de contrôles, de logs et administratifs peuvent être séparés sur des disques différents. Figure 01 : Schéma d'installation des fichiers oracle 3. Description de la de données Création de la base de donnée : La création de la base de données est la première étape. Lors de la création d'une nouvelle base, il faut tenir compte du jeu de caractères que la base de données utilisera (dans notre cas les langues arabe et français). Une fois que la base de données est crées, le jeu de caractères spécifié ne peut plus être changé, sauf si la base de données est reconstituée (voir l'annexe). Création des Schémas et des utilisateurs : Les Schémas et les utilisateurs : Un schéma est un ensemble nommé d'objets tels que: tables, vues, clusters, procédure et packages associés à un utilisateur précis. Quand un utilisateur de base de données crée des objets, son schéma est automatiquement crée. Un utilisateur ne pourra alors être associé qu'à un seul schéma et réciproquement. Les privilèges : Un privilège est un droit d'exécuter un type particulier d'ordre SQL. Un utilisateur doit avoir un privilège de type système pour accéder à la base de donnée et ses objets et un privilège de type objet pour exécuter une action sur le contenue des objets de la base. Les rôles : sont des groupes de privilèges qui sont accordé à des utilisateurs ou d'autres rôles. Ils sont conçus pour faciliter l'administration des privilèges. Ces notions sont équivalentes au monde réel, en les résume dans l'exemple suivant : Organisation Utilisateur chef Utilisateur chef Utilisateur chef Utilisateur 3.1 Utilisateur 3.2 Utilisateur3.2. 1 Ressources Tâches Figure 02 : Exemple de modélisation d'une organisation Dans une organisation on ne peut pas recruter un utilisateur seulement si on lui affecte des ressource et des tâches sur ces ressources (les ressources dans notre système sont des tables, vues ..., les tâches sont des privilèges et rôles associés à un utilisateur).Chaque utilisateur est responsable de la sécurité de leurs ressources, un autre utilisateur ne peut pas utiliser ces ressources qu'après l'autorisation de l'utilisateur propriétaire. Chaque utilisateur a un rôle dans l'organisation selon leur niveau hiérarchique. Par analogie on résume l'arborescence de l'université dans ce graphe. Chef université : Chef de faculté 1 Chef de faculté 2 Chef de faculté 3 Chef de département Agent de saisie Etudiant Chef de département Chef de département Figure 03 : Modélisation de l'université de Batna. Ce graphe sera nous accompagnons pour crée l'annuaire LDAP. Alors nous avons trois types d'utilisateurs dans notre système :
- création des utilisateurs étudiant - inscription. - orientation et transfère. Schéma : AD_Faculte Tables: Département Procédures : Mise a jours de table : Département Schéma : AD_Departement Tables : - specialite options Etudiant fiche _etude dossier_bloque dossier_retirer dossier_Transferer VIEW fiche _etudiant Procédures : Mise a jours des tables : specialite, options ,Etudiant fiche_etude, dossier_bloque Schéma : AD_Universite Tables: Nationalité Bac Wilaya Commune Université Faculté type_conge Diplôme annee_univ Procédures : Mise a jours des tables : Nationalité, Bac, Wilaya, Commune, Université, Faculté type_conge, Diplôme, annee_univ Schéma : Etudiant Tables: Crée selon les fonctions a ajoutées Procédures : - génération des états de sorties.
- Consultation de la fiche d'étude. - réinscription. Les schémas: AD_Faculte, AD_Universite, AD_Departement, Etudiant, représentent Dans notre système Des schémas partagées (voir chapitre de sécurité), et les utilisateurs sera crées séparément a chaque création d'une faculté, d'un département et chaque inscription d'un étudiant. Par exemple l'utilisateur informatique sera crée au moment de la création du département informatique. Cet utilisateur sera connecté et travaillé sur le schéma département. La création des tablespaces : On peut voir les tablespaces comme les partitions logiques de disque dur ou les répertoires qui aident à l'organisation de l'information selon son type. Par les tablespaces on peut séparer entre les données de système (on parlent des données de l'utilisateur SYS "dictionnaire de données, ....") et les données de l'utilisateur.
L'université est constituée de trois éléments: l'enseignent, l'étudiant, et l'administration pour cela nous avons crée trois tablespaces :
Lorsque une base de données est crée sans tablespace temporaire par défaut, le tablespaces qui est assigné aux utilisateurs créés sans la clause TEMPORARY TABLESPACE est le tablespaces SYSTEM. Pour éviter que le tablespace système soit utilisé comme tablespace temporaire, il est nécessaire de créer un tablespace temporaire par défaut autre que SYSTEM. Un segment temporaire permet d'avoir un gain de performance lorsque, par exemple, plusieurs tris occupent trop de place pour la mémoire et doivent être stockés sur le disque dur temporairement.
Script de création des schémas :
Création des rôles : A l'exception de l'utilisateur Ad_universite (l'administrateur de l'universite qui possède leur propre schéma) les utilisateurs sont crées dynamiquement et ils ne peuvent rien faire initialement même pas la connexion à la base de données, touts les privilèges nécessaires sera donnés par l'utilisateur créateur. C'est pourquoi l'administrateur de l'université (ad_université) doit avoir touts les rôles au départ. 1. Description des rôles: admin_role: c'est le rôle qui regroupe tout les privilèges nécessaire à la création des schémas partagés. inst_role: c'est le rôle qui permet au tout nouvel utilisateur de connecté et de crée des utilisateur. user_fac: il permet aux chefs des facultés de manipuler leurs tables. user_dept: : il permet aux chefs des départements de manipuler leurs tables. select_univ: il permet aux utilisateurs de consulter les tables du schéma ad_université. select_fac: : il permet aux utilisateurs de consulter les tables du schéma ad_faculté. user_dept_ag: un rôle qui sera donné à l'agent de saisie pour lui permet d'accomplir ses taches. user_etud: un rôle spécifique aux étudiants. 1.1 Rôles agent département : c'est le rôle qui sera assigné à l'utilisateur agent de saisie. Le script de la création est le suivant : create role user_dept_ag ; grant select, insert, update, delete on etudiant to user_dept_ag; grant select, insert, update, delete on fiche_etude to user_dept_ag; grant select, insert, update, delete on fiche_etudiant to user_dept_ag; grant select, insert, update, delete on dossier_retirer to user_dept_ag; grant select, insert, update, delete on dossier_bloque to user_dept_ag; grant select, insert, update, delete on dossier_transferer to user_dept_ag; grant select on specialite to user_dept_ag; grant select on options to user_dept_ag; 1.2. Rôles chef de département : c'est le rôle qui sera assigné à l'utilisateur Chef département. Le script de la création est le suivant : create role user_dept; grant select, insert, update, delete on specialite to user_dept; grant select, insert, update, delete on options to user_dept; 1.3. Rôles select_fac: c'est le rôle qui sera assigné à l'utilisateur Chef de departement. Le script de la création est le suivant : create role select_fac; grant select on departement to select_fac; 1.4. Rôles select_univ : c'est le rôle qui sera assigné aux utilisateurs sauf l'étudiant. Le scripte de la création est le suivant : Create role select_univ; grant select on faculte to select_univ; grant select on nationalite to select_univ; grant select on bac to select_univ; grant select on wilaya to select_univ; grant select on commune to select_univ; grant select on universite to select_univ; grant select on deplome to select_univ; grant select on type_conge to select_univ; grant select on annee_univ to select_univ; Création des tables des schémas: 2.1 Schéma Ad_université : Le schéma Ad_université inclut les tables : Nationalité, Bac, Wilaya, Commune Université, Faculté, type_conge, Diplôme, annee_univ. Le scripte est le suivant : Table N° :01 Nationalité :
Table N°:02 Bac:
Table N°:03 Wilaya:
Table N°:04 Communes:
Table N°:05 Université:
Table N°:06 Faculté:
Table N°:07 type_conge:
Table N°:08 Diplôme:
Table N°:09 annee_univ:
Après la création de ces tables, un utilisateur sera assignée au schémas ad_universite ce utilisateur prend le même nom du schéma. Pour nous c'est l'utilisateur Chef université (voir la liste des utilisateurs). Ces objets sont à la responsabilité de ad_universite, et sans leur permettion, aucun utilisateur peut référencer a ces objets .l'utilisateur ad_universite peut attribuer des privilèges aux utilisateurs pour les autorisé de crées des tables fait référence à ces objets,
Mais pour que les utilisateurs ad_faculte, ad_departement peut accéder a ces objets il faut toujours prévenir de nom de la propriétaire, exemple : " AD_Universite. annee_univ". Pour fait une abstraction sur les noms des objets du schémas, on a crée des synonymes :
Création des tables de schéma Ad_ faculté: Table N°:01 department:
Le script qui permet attribuer des privilèges aux utilisateurs autorisés de référencer à la table "département"est le suivant : grant references on departement to ad_departement; Création des synonymes : create public synonym departement for ad_faculte.departement; Création des tables de schéma Ad_département: Table N°:01 spécialité:
Table N°:02 options:
Table N°:03 Etudiant:
Table N°:04 fiche_etude:
Table N°:05 dossier_bloque:
Table N°:06 dossier_retirer:
Table N°:07 dossier_Transferer:
Table N°:08 fiche_etudiant:
WHERE fiche_etude.ident=Etudiant.ident; Création des synonymes :
3. description des interfaces : Le côté applicatif de notre projet consiste de réaliser un ensemble d'interfaces. Et pour cela on a utilisé l'outil de développement oracle forms qui été apparut bien adapter aux nos besoins. On peut groupé les interfaces réalisées en deux types les quelles:
L'accès aux ces interfaces est sécurisé de tel manière à permettre seul au propriétaire de les utilisé (voir Chapitre de sécurité). L'interface UNIVERSITE: L'administrateur d'université utilise cette interface pour effectuer les opérations de mis à jours sur leur propre table tel que l'insertion des wilayas, des universités, des facultés... etc. L'interface FACULTE: Elle est désignée à l'administrateur de faculté pour que elle lui permette d'effectuer les opérations de mis à jours sur la seule table qui est département. L'interface DEPARTEMENT: Elle est désignée pour qu'elle permette à l'administrateur de département d'effectuer les opérations de mis à jours sur leurs propres tables telles que l'insertion des spécialités, des options. L'interface ETUDIANT: L'agent de saisie dans le département utilise cette interface pour rempli les informations d'inscriptions des étudiants. Génération des cartes des étudiants: Pour générer les cartes des étudiants on a utilisé l'outil de développement Oracle Report, et on a implémenté deux possibilités à l'exécution des rapports qui sont: 1. Centraliser la génération des cartes des étudiants dans un serveur d'impression, et pour cela on a utilisé la fonction RUN_REPORT_OBJECT. La fonction SET_REPORT_OBJECT_PROPERTY est utilisée pour exécuter le rapport dynamiquement. Et on a encore utilisé pour le passages des paramètres.
2. Alternativement au run_report_object, nous avons utilisé le Web.show_document pour appeler le rapport par le web vers le poste client. L'interface METTRE A JOURS: Cette interface est pour rempli les informations des étudiant faisons les transfères, les retraits ou bloquons leurs dossiers. Ces interface sont réalisées d'une manière très simples on évitant les animations et les Roundtrips (va et vient) dans le réseaux que le plus possible en raison d'augmenté les performances. |
|