Compte rendu d activité Fiche n 1



Documents pareils
COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

CREATION WEB DYNAMIQUE

Le Langage De Description De Données(LDD)

Langage SQL : créer et interroger une base

Bases de données relationnelles

Bases de Données relationnelles et leurs systèmes de Gestion

Pratique et administration des systèmes

Auto-évaluation Oracle: cours de base

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Installation d'un serveur FTP géré par une base de données MySQL

Olivier Mondet

Le langage SQL (première partie) c Olivier Caron

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Compétences Business Objects

PHP 5. La base de données MySql. A. Belaïd 1

SQL Historique

Partie 0 : Gestion des tablespace et des utilisateurs... 3

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Création et Gestion des tables

INSTALLATION DE L APPLICATION DU CONTEXTE ITASTE

Le langage SQL Rappels

I. MySQL : Serveur et SGBD

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

Bases de données et sites WEB

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

TP Contraintes - Triggers

Gestion des utilisateurs et de leurs droits

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

TP3 : Creation de tables 1 seance

Master Exploration Informatique des données DataWareHouse

Notes de cours : bases de données distribuées et repliquées

Devoir Data WareHouse

Historisation des données

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Introduction au Système de Gestion de Base de Données et aux Base de Données

A QUOI SERVENT LES BASES DE DONNÉES?

Modélisation et Gestion des bases de données avec mysql workbench

Pour les débutants. langage de définition des données

PHP 4 PARTIE : BASE DE DONNEES

I4 : Bases de Données

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

1. Base de données SQLite

Sommaire. Etablir une connexion avec une base de données distante sur PostGreSQL

CHAPITRE 4 POLITIQUES DE CONTRÔLES DES ACCÈS SOUS ORACLE ADMINISTRATION ET TUNING DE BASES DE DONNÉES 10/05/2015 RESPONSABLE DR K.

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Objectifs du TP : Initiation à Access

MODE OPERATOIRE CORIM PROGRESS / SECTION MEI. Exploitation Informatique

Présentation Windows Azure Hadoop Big Data - BI

1 Introduction et installation

Les bases de données

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

TP Administration Oracle

Les BASES de DONNEES dans WampServer

Configurer la supervision pour une base MS SQL Server Viadéis Services

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Encryptions, compression et partitionnement des données

Cours Bases de données 2ème année IUT

Installation de SQL Server Reporting Services avec l intégration dans un site Windows SharePoint Services V3

Gestion de base de données

Le Langage SQL version Oracle

Cours Bases de données

Cours SQL. Base du langage SQL et des bases de données

Partie II Cours 3 (suite) : Sécurité de bases de données

Architecture de la plateforme SBC

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Bacula R - The Network Backup Solution

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

BASES DE DONNEES TP POSTGRESQL

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

PHP et les Bases de données - Généralités

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Thème : Gestion commerciale

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Mysql avec EasyPhp. 1 er mars 2006

MS SQL Express 2005 Sauvegarde des données

GUIDE D INSTALLATION DE L APPLICATION GECOL SUR

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Une famille d'applications permettant à toute organisation d'optimiser le suivi et la gestion de ses ressources internes vous présente

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

1 Position du problème

Administration des bases de données. Jean-Yves Antoine

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Bases de données Outils de gestion

Intégrité des données

Bases de données élémentaires Maude Manouvrier

UNIVERSITE DE CONSTANTINE 1 FACULTE DES SIENCES DE LA TECHNOLOGIE DEPARTEMENT D ELECTRONIQUE 3 ème année LMD ELECTRONIQUE MEDICALE

Application web de gestion de comptes en banques

SYSTÈMES D INFORMATIONS

Exonet : sauvegarde automatisée d une base de données

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Transcription:

Compte rendu d activité Fiche n 1 Alexandre K. (http://ploufix.free.fr) Nature de l activité Création d une base de connaissances avec PostgreSQL Contexte : Le responsable technique souhaite la mise en place d une base de connaissances afin de pouvoir rassembler de manière centralisée certaines données techniques. De cette manière, les informations recueillies doivent être retrouvées plus facilement. En effet, il est indispensable de mettre en place une solution organisée qui contienne les données et dispose de différents modes de recherches. Objectif : Réaliser et assurer la maintenance de la base de données et de son interface. C21 C24 C25 C35 C37 Compétences mises en œuvre pour la réalisation de cette activité. Installer et configurer un micro-ordinateur Installer et configurer un système de gestion de base de données Installer un applicatif Actualiser une solution informatique Administrer et maintenir une base de données Matériels : Un poste Un serveur (Environnement virtualisé avec VMWare) Durée : 45 mn. Conditions de réalisation Logiciels : Un serveur Web (Apache) Un SGBD (PostgreSQL) Un navigateur web Autres contraintes et difficultés : La recherche par mots-clés est complexe et nécessite des outils plus efficaces que le langage SQL (LIKE) afin d obtenir des résultats pertinents. Description et déroulement de l activité Situation initiale : Les informations techniques concernant les différentes interventions sont enregistrées sous format papier ou format numérique sur le poste de chaque technicien. Situation finale : Les informations sont stockées sur la base de données et sont accessibles par un site web. Chaque technicien peut ajouter, modifier, supprimer certaines informations selon ses droits.

Déroulement de l activité par étapes Présentation de la base de données : La base de connaissances doit posséder un système de recherche multicritère : catégorie, utilisateur et mots-clés. L interface doit également posséder un système d identification pour gérer les accès. Seuls les propriétaires des fiches ou les utilisateurs avec des droits d administration peuvent modifier ou supprimer une fiche. Il est possible de lier des fichiers aux fiches, et toute modification sur une fiche fait l objet d un enregistrement précisant la date et l objet de la modification. Les fiches figurent obligatoirement dans une catégorie. Les catégories peuvent contenir des sous-catégories et la recherche sur une catégorie doit inclure les entrées des sous-catégories. Modèle conceptuel de données : Modèle logique de données : fiches (fiche_id, fiche_sujet, fiche_date, fiche_contenu, #cat_id, #user_id); utilisateurs (user_id, user_login, user_mdp, user_nom, user_prenom, user_mail, user_statut); categories (cat_id, cat_nom, cat_rang, cat_parent); fichiers (fichier_id, fichier_location, fichier_type, fichier_libelle, fichier_regexp, #fiche_id); revisions (modif_id, modif_date, modif_historique, #fiche_id); Création de la base : CREATE DATABASE base_connaissances WITH ENCODING='UTF8'; Création des rôles et des utilisateurs : CREATE ROLE Gestionnaires; CREATE ROLE Utilisateurs; Les utilisateurs vont hériter des droits des groupes.

CREATE USER Administrateur ENCRYPTED PASSWORD 'operations' IN ROLE Gestionnaires; CREATE USER DUPONT ENCRYPTED PASSWORD 'pti1' IN ROLE Utilisateurs; Création de l espace de stockage pour les tables : Définition de deux espaces : Fiches et Gestion CREATE TABLESPACE Fiches LOCATION E'E:\\Fiches'; GRANT CREATE ON TABLESPACE Fiches TO public; CREATE TABLESPACE Gestion LOCATION E'E:\\Gestion'; GRANT CREATE ON TABLESPACE Gestion TO public; Création des tables Requête SQL pour la création de la table fichiers qui va gérer la relation entre les fiches et des fichiers. On ajoute directement les clés primaires et étrangères en fonction du modèle logique de données. CREATE TABLE fichiers ( fichier_id serial NOT NULL, fichier_type varchar(10), fichier_libelle varchar(30), fichier_location varchar(100), fichier_regexp varchar(100), fiche_id integer, PRIMARY KEY (fichier_id), FOREIGN KEY (fiche_id) REFERENCES fiches(fiche_id) ON DELETE CASCADE ) TABLESPACE Gestion; On précise l espace de stockage et une contrainte ON DELETE CASCADE sur la clé étrangère fiche_id pour supprimer automatiquement les entrées en relation avec cette clé lors de la suppression d une fiche Suppression d une fiche avec la mise en œuvre de «ON DELETE CASCADE». DELETE FROM fiches WHERE fiche_id = 1 ; La suppression de cette fiche implique la suppression de toutes les entrées en relation avec la fiche possédant l identifiant fiche_id = 1 sur les tables fichiers et révisions. Requête SQL pour insérer des catégories: Le champ cat_id est auto incrémenté c est-à-dire qu il ne reste plus qu à préciser le nom de la catégorie, son rang et sa catégorie parente dans le cas d une sous catégorie. INSERT INTO categories (cat_nom, cat_rang, cat_parent) VALUES ('Microsoft', 1, NULL); INSERT INTO categories (cat_nom, cat_rang, cat_parent) VALUES ('Windows XP', 2, 7);

Attribution des droits sur les tables pour les rôles. GRANT ALL ON fiches, categories, utilisateurs, revisions, fichiers TO GROUP Administrateurs ; GRANT ALL ON fiches,fichiers,revisions, utilisateurs TO GROUP Gestionnaires ; GRANT SELECT ON utilisateurs, categories TO GROUP Gestionnaires ; GRANT SELECT ON fiches, fichiers, revisions, categories, utilisateurs TO GROUP Utilisateurs ; Pour que les utilisateurs puissent faire appel à la requête SEQUENCE qui permet d incrémenter les champs de type SERIAL, il faut leur accorder les droits d exécuter cette requête sur les séquences correspondantes. GRANT ALL ON categories_cat_id_seq, fiches_fiche_id_seq, fichiers_fichier_id_seq, utilisateurs_user_id_seq, revisions_modif_id_seq TO GROUP Administrateurs,Gestionnaires ; En se connectant avec le compte «utilisateur», le bon fonctionnement des droits peut être vérifié. Requête de recherche de données. La requête suivante permet une recherche utilisant l ensemble des critères simultanément : Recherche par mots-clés (port ET rdp OU relai ET messagerie) Recherche par catégorie (Microsoft) Recherche par auteur de la fiche (DUPONT) SELECT cat_nom, fiche_date, fiche_sujet, utilisateurs.user_nom, utilisateurs.user_prenom, fiche_contenu FROM categories, fiches, utilisateurs WHERE (SELECT cat_id FROM categories WHERE cat_nom = 'Microsoft') IN (cat_parent, categories.cat_id) AND utilisateurs.user_nom = 'DUPONT' AND categories.cat_id = fiches.cat_id AND fiches.user_id = utilisateurs.user_id AND to_tsvector('french', fiche_sujet fiche_contenu) @@ to_tsquery ('french','port & rdp relai & messagerie') ORDER BY fiches.fiche_id DESC LIMIT 10 OFFSET 0; Résultat après exécution de cette requête sous pgadmin III : Les catégories «Windows Server» et «Windows XP» sont des sous-catégories de «Microsoft» On constate que l on obtient uniquement les données créées par l utilisateur recherché dans la catégorie voulue et dont les mots clés figurent dans le sujet ou le contenu. La recherche par mots-clés est assurée par l outil «tsearch2» de PostgreSQL qui se base sur l utilisation d un dictionnaire et d une liste de mots d exclusion. Il est également possible de classer les résultats selon un score de pertinence afin de présenter à l utilisateur les résultats qui vont au mieux correspondre à sa recherche dans le cas d un tri avec la clause ORDER BY sur le score généré par «tsearch2».

Sauvegarde et restauration L outil pg_dump all permet d extraire les données d une base vers un fichier. pg_dumpall.exe > F:\backup\sauvegarde.sql c -i -U postgres Pour lancer cette commande en tâche planifiée, il faut fournir la configuration pour l adresse, le port, le nom de la base, le nom du compte et son mot de passe dans %APPDATA%\postgresql\pgpass.conf Pour restaurer cette base, il suffit d exécuter le script de sauvegarde. La base est ensuite à nouveau entièrement fonctionnelle. \i C:/sauvegarde.sql On restaure la sauvegarde Création de vues pour faciliter les requêtes Afin d éviter de devoir taper de longues requêtes, il est utile de créer des vues sur des requêtes courantes. CREATE OR REPLACE VIEW "ConsulterBase" AS SELECT cat_nom as Catégorie, utilisateurs.user_nom as Auteur, fiche_date as Date, fiche_sujet as Sujet, fiche_contenu as Description FROM categories, fiches, utilisateurs WHERE categories.cat_id = fiches.cat_id AND fiches.user_id = utilisateurs.user_id ORDER BY fiches.fiche_id DESC; Ainsi, on peut dorénavant exécuter cette requête à la place de celle présentée ci-dessus. SELECT * FROM "ConsulterBase"; Utilisation depuis l interface web avec PHP Pour que les informations de la base de données puissent être consultées sans pour autant devoir connaître le langage SQL, il est plus convivial et plus rapide d utiliser une interface. Voici une copie d écran partielle de l interface web après l exécution d une recherche : Analyse des résultats obtenus. Objectif Atteint : La base de données est fonctionnelle. Les contraintes sur les tables permettent de maintenir la cohérence des données et d effectuer ainsi des requêtes performantes afin d obtenir rapidement les informations. Bilan : L utilisation d une base SQL sur PostgreSQL répond parfaitement au cahier des charges de cette application. De plus, cette solution est sous licence BSD et distribuée gratuitement. Enfin, sa disponibilité sur bon nombre de plates formes, dont Windows et GNU/Linux, permet un large choix de systèmes concernant son intégration avec d autres applications (Apache, PHP).