TSGERI 2011/2012 1/50
25/10/2011 SOMMAIRE INTRODUCTION...3 1-LA TECHNOLOGIE...4 1.1 Le produit...4 1.2 Les clients et les utilisateurs...6 1.3 Le marché...7 1.3.1 Les solutions propriétaires (utilisant le langage SQL) :...7 1.3.2 Les solutions open-source :...8 1.3.3Les prix...9 1.4 Les perspectives d'évolution...10 2.L'ADMINISTRATION D'UNE BASE DE DONNEES...11 2.1 Le rôle et les tâches d'un administrateur de base de données...11 2.1.1 Maintenance et préconisations...11 2.1.2 La sauvegarde...12 2.1.3 La sécurité...13 2.1.4 La performance...14 2.2 La conceptualisation d'une base de données...15 2.2.1 Qu'est-ce que la méthode merise...15 2.2.2 le MCD...16 2.2.3 Le MLD...20 2.2.4 Le MPD...22 2.3INSTALLATION ET CONFIGURATION D'UNE BASE DE DONNEES...25 2.3.1 Installation d'un serveur Web : Apache2...25 2.3.2 Configuration d'un client : phppgadmin...29 2.3.3 L'outil d'administration pgadmin3...32 2.3.4 Utilisation d'une base de données : partie DDL...35 2.3.5Utilisation d'une base de données : partie DML...41 3 L'INTERFACAGE D'OPEN OFFICE AVEC UNE BASE DE DONNEES...50 3.1 Introduction...50 3.2 Mise en place...50 4-GLOSSAIRE...58 2/50
INTRODUCTION Si on devait simplifier l'architecture d'une entreprise d'un point de vue informatique, on la séparerait en 3 parties : -la partie réseau et système -la partie développement -la partie Système de Gestion de Base de Données. Les SGBDR occupent donc une place prépondérante au sein de l'entreprise. Les racines de PostgreSQL, Ingres L'historique de la base de données PostgreSQL trouve ses fondements en Ingres. Son prototype, le projet RDBMS (développé par Michael Stonebreaker et Eugene Wong). Ces deux protagonistes font partis à cette époque de l'université de Berkeley, puis en 1985, M.Stonebreaker décide de recommencer le développement de Ingres et il l'appela PostgreSQL. L'administrateur de base de données «communique» ou intervient sur sa base de données via des requêtes SQL (Structured Query Langage). C'est le langage de programmation utilisé dans l'administration et la gestion de base de données. 3/50
1-LA TECHNOLOGIE Le chapitre à propos de la technologie de PostgreSQL s'articule autour de quatre parties. Elles permettent de mieux appréhender les différents aspects qui caractérisent cette SGBDR. 1.1 Le produit PostgreSQL est un logiciel de gestion de base de données orienté objet. PostgreSQL repose sur le langage SQL (Structured Query Langage) et offre de nombreuses fonctionnalités modernes comme : -des requête complexes -des clés étrangères (foreign key) -des triggers -des vues -le contrôle des versions concurrentes. -la persistance des données -le contrôle des actions concurrentes -la récupération de données -les requêtes associatives. On peut l'administrer de manière différentes. Que ce soit en interface de ligne de commande grâce à psql, de manière graphique avec une interface web comme phppgadmin ou encore via un outil d'administration graphique comme pgadmin3. Cependant, leur administration repose sur le même fonctionnement, la norme de langage SQL. Le langage SQL est un langage informatique qui permet d'émettre des requêtes sur des bases de données, on peut donc créer, modifier, supprimer données. Le langage SQL est un langage accessible en lecture et en compréhension. C'est ce qu'on appelle un langage déclaratif, une requête est le résultat attendu et il n'est pas nécessaire de décrire le cheminement qui permet d'arriver à son résultat. PostgreSQL fonctionne sous différentes plate-formes comme PostgreSQL fonctionne sous (la liste n'est pas exhaustive) : -Linux -NetBSD 4/50
-FreeBSD -UNIX -Windows On peut s'appuyer sur la documentation officielle qui est également libre de consultation. Certains Acronymes particularisent la documentation de PostgreSQL, et pour une bonne compréhension de ce SGBDR et de son fonctionnement, il est préférable de se familiariser avec certains comme : -le DDL (Data Definition Langage), qui est le langage de définition des données, qui regroupe les commandes SQL telles que CREATE TABLE, ALTER USER. -le DML (Data Manipulation Langage), qui est le langage de manipulation des données. Il regroupe les commandes SQL telles que INSERT, UPDATE, DELETE. On peut bien sûr en citer d'autres plus connus comme DBA (DataBase Administrator) ou FAQ (Frequently Asked Question) ou encore SQL (Structured Query Langage). 5/50
1.2 Les clients et les utilisateurs PostgreSQL bénéficie d'une licence libérale, c'est à dire qu'il peut être utilisé, modifié ou encore distribué librement, que ce soit d'un point de vue privé, commercial ou encore dans l'enseignement. L'utilisation «privée» de PostgreSQL : PostgreSQL est souvent utilisé par les autodidactes qui souhaitent découvrir les bases de données. Les sources traitant de cette SGBRD sont nombreuses sur le net permettant ainsi son accès à tous. Le point de vue académique : Pour des raisons voisines à l'utilisation privée de PostgreSQL, l'usage au sein des cursus scolaires est très répandue. Les autres solutions utilisées dans le monde professionnel sont chères et il est difficile pour une école de justifier l'utilisation d'un logiciel coûteux puisqu'il n'est pas en production. Le point de vue commercial / professionnel : Nombreuses sont les entreprises qui utilise PostgreSQL. C'est certes un logiciel open source mais son exploitation en milieu de production requière un savoir faire et une connaissance importante par son administrateur. Quelques exemples d'utilisation de PostgreSQL dans le milieu professionnel : Yahoo! : cette énorme société mondialement connue utilise une version modifiée de PostgreSQL. Il y a encore deux ans, la taille de sa base de donnée était considérée comme la plus importante qui soit. MySpace : a également opté pour cette solution pour son réseau social. Skype : le site de téléphonie mobile (racheté par Microsoft) Sony : pour le PSN (PlayStation Network), pour sa plate-forme de jeux en ligne (gratuit, lui aussi dans son utilisation) 6/50
1.3 Le marché 1.3.1 Les solutions propriétaires (utilisant le langage SQL) : DB2 : cette solution IBM orientée gros système (mainframe), ces avantages reconnus sont : -son évolutivité -bas coût opérationnel (coût plus faible en administration qu'oracle) -fiabilité et utilisation accessible Oracle : Très répandu dans le monde professionnel, les arguments de cette SGBDR sont : -utilisation de cloud privés (à l'accès rapide) -optimiser la disponibilité des données en éliminant les capacités inutilisées des centres de données -accélérer les performances par la compression des données vers des partitions peu coûteuses -réputé pour sa capacité à gérer les gros volumes de données Microsoft SQL server 2008 : -interface graphique ergonomique -outils de développement Microsoft (.Net, ADO.Net, MSDTC, ) -administration plus aisée que les autres solutions propriétaires. 1.3.2 Les solutions open-source : Les solutions open-source prennent de plus en plus d'importance et gagnent des parts de marché. La preuve en est que les éditeurs de solutions propriétaires proposent désormais des versions allégées gratuites de leur licence phare. Néanmoins, ces versions gratuites ne rivalisent en aucun cas les SGBD open-source puisque elles sont limitées en terme d'espace mémoire, de nombre de processeurs... MySQL en est l'une des principales. 7/50
1.4 Les perspectives d'évolution La virtualisation des bases de données : La société mondialement connue VMware a créé un nouveau service le vfabric Data Director. Il permettra de virtualiser une base de données à l'aide du cloud. Partant d'un constat : «De nombreuses entreprises ont des centaines de grandes bases de données qui ne sont pas bien gérées, ni très sécurisées» ; «l'utilisation d'un conteneur virtuel pour construire une brique unique, elles auront fait un pas de géant pour réduire la dispersion des bases de données». (D'après David McJannet, directeur cloud et des services applicatifs chez VMware) Ce nouveau service, nommé cloud-ready, s'appuiera dans un premier temps sur Postgres. Les limites de la virtualisation pour un SGBDR : La virtualisation est devenue très populaire. Néanmoins, est-elle réellement un gain de performance pour la gestion des bases de données? Le principal intérêt de la virtualisation d'un SGBDR réside dans la facilité de maintenance et le lissage de charge de petits serveurs par la mutualisation des ressources ou les économies d'échelle réalisées sur les licences. Néanmoins, les performances du serveur de bases de données sont diminuées. Les données sont représentées par des objets logiques, et sont stockés de manière hybride. La RAM est sollicitée pour la mise en cash et les disques dur pour la persistance des données. Les trois critères de performance sont : -la mémoire RAM -les disques dur performants -le processeurs et leur cadencement. De plus, il est fortement recommandé de dédier une machine pour l'exploitation d'une base de donnée. Aucun autre service ne doit être installé sur la machine. L'efficacité d'un SGBDR repose sur sa rapidité à répondre aux requêtes. En définitive, l'utilisation de la virtualisation des serveurs de base de données peut être retenue dans le cas ou les serveurs sont peu sollicités et avec des bases de données de taille faible. Si l'on attend des performances et une grande volumétrie de sa base, virtualiser semble exclu. 8/50
2.L'ADMINISTRATION D'UNE BASE DE DONNEES 2.1 Le rôle et les tâches d'un administrateur de base de données Un administrateur de base de données a beaucoup de responsabilités car il est le gardien des données de l'entreprise. Ses champs d'application sont variés puisqu'il est en charge d'un nombre de tâches diverses et variées. 2.1.1 Maintenance et préconisations Il a tout d'abord un rôle a jouer au quotidien dans la maintenance et la pérennisation du système d'information. Car il peut être amené à participer à l'élaboration de nouvelles applications en terme de développement ou de tests. Il peut également apporter toute son expérience afin de dispenser la mise en place de bonnes pratiques, de préconisations ou encore établir des standards (par exemple : pour les développeurs). Bien sûr, il est en charge de la modélisation de la base de données et de la définition et la gestion de l'espaces de stockage nécessaire à la production. Ici, un schéma pour retranscrire son action en terme de maintenance et de pérennisation du système d'information : 9/50
2.1.2 La sauvegarde Un autre aspect du rôle de l'administrateur de base de données est en rapport avec la sauvegarde des données. Son action peut être à titre préventif, d'une solution de récupération après un événement critique, de l'actualisation du système et des mises à jour, ces éléments sont synthétisés ci-dessous : 2.1.3 La sécurité Un administrateur de base de données est aussi amené à vérifier la cohérence des données de la base. Il organise également l'accès aux données en autorisant des profils de connexion, ces profils bénéficieront de droits et de permissions en rapport à l'exécution de certaines commandes. 10/50
2.1.4 La performance Toute aussi importante, la partie performance d'une base de données est organisée autour de plusieurs pôles. Certaines bases ne sont pas développées en interne, l'administrateur devra donc évaluer et dimensionner les serveurs en rapport à l'application accueillie, que ce soit en terme de volume ou en terme de maintenance. De plus, par rapport à la maintenance de «base», il doit continuellement vérifier l'état des disques (défragmentation) et de la bonne gestion des fichiers pour ne pas les saturer. Cependant, au delà de la maintenance, il doit aussi veiller au maintien du niveau de performance, il analysera les rapports et les statistiques concernant les temps de réponse, les diagnostiquer et éventuellement ajouter des ressources physiques ou remanier le modèle de sa base en l'optimisant. Pour information, l'optimisation s'organise de manière proactive. 11/50
2.2 La conceptualisation d'une base de données 2.2.1 Qu'est-ce que la méthode merise La méthode merise est une méthode d'analyse, de conception et de gestion de projet, elle fait partie intégrante de la méthodologie des systèmes d'information. Merise est en fait le modèle conceptuel qui permet de travailler sur la base de données avant sa création. Ce système d'analyse permet d'organiser et d'analyser une entreprise dans ses flux d'informations et d'en faire une première représentation conceptuelle, puis logique et enfin physique. On les nomme respectivement Modèle Conceptuel de Données (MCD), le Modèle Logique de données (MLD) et le Modèle Physique de Données (MPD). Dans cette partie du rapport de synthèse, les modèles seront abordés et réalisé avec le logiciel PowerAMC15. Les différentes étapes seront les suivantes : -MCD -MLD -MPD -Base de données -Liaison de cette DB générée avec les outils d'administration. 2.2.2 le MCD 12/50
Pour créer une base de données, il y a un travail de réflexion à réaliser. Il faut modéliser une situation réelle en un modèle conceptuel logique et représentatif. Dans un premier temps, il faut créer un Modèle Conceptuel de Données, ici, la méthode merise sera utilisée ainsi que le logiciel poweramc15. Ne pas oublier de changer dans :/outils/options du modèle/ puis choisir son système de notification : J'ai choisi pour situation initiale, l'exemple de l'afpa. Nous allons décortiquer la logique de MCD. 13/50
Les entités : Elles sont considérées comme objet. On peut noter qu'une entité complétée de ses attributs forment une occurrence. On pourrait avoir comme occurrence : 15, LOGEON, Vincent, 18 chemin de la tuilerie, 59237.Les attributs : Ce sont les éléments qui composent une entité. Les associations : Une association représente le lien entre 2 entités. Les cardinalités : Elles permettent d'indiquer le nombre de fois où une association est possible. Les possibilités s'échelonnent de nulle à n (n qui correspond à une variable supérieure à 1). 14/50
La cardinalité est associée à son entité la plus proche. Lecture du modèle MCD : Ici, quelques exemples de lecture. La manière de procéder est la suivante : -il faut lire le nom de l'entité, l'association, la cardinalité et l'entité suivante. ==>un professeur peut dispenser 1 ou plusieurs cours Dans notre exemple concret, des professeur enseigne un seul type de cours (un professeur d'anglais) ou plusieurs type de cours (réseau, maintenance, base de données) ==>un cours peut être dispensé par aucun ou plusieurs professeur. Dans notre exemple, un cours sur la programmation peut être dispensé par aucun professeur ou par plusieurs. 15/50
2.2.3 Le MLD Une fois le modèle conceptuel de données créé, on peut passer à la deuxième étape de la méthode merise, le Modèle Logique de Données d'où le passage du modèle conceptuel au modèle relationnel. Pour générer le MLD dans poweramc15, #outils ; générer un modèle logique de données On obtient ce résultat : Nous allons voir les changements opérés par le passage au MLD. 16/50
Les entités : Les entités sont semblables hormis l'apparition de petit symboles en début de champs, Le symbole «#» indique la clé primaire et donc permet de la différencier des autres champs qui commençe par le symbole «o». MLD MCD Les cardinalités : Elles étaient exprimées sous forme d'entiers, on constate qu'elle sont exprimées par des verbes dans le MLD. MLD MCD 17/50
Les relations : On constate l'apparition de contraintes dans les relations. Ce sont en fait désormais des tables à part entières. Les clés primaires de chaque entité deviennent des clés étrangères au sein de la table qui était une relation lors du MCD. Autrement dit, si deux entités sont liées par une relation, lors du passage au MLD, cette relation deviendra une entité ou table qui sera composée des clés primaires des entités qui composait respectivement cette relation. Les champs qui composent maintenant ces nouvelles tables sont appelées clés étrangères. En définitive, nous pourrions déjà, avec le MLD, créer une base de données en ILC puisque ce modèle nous a permis de visualiser le nombre de table nécessaires à la prochaine réalisation de cette base de données. 2.2.4 Le MPD Le modèle physique de données permet d'implémenter le modèle au sein d'un système de gestion de base de données. C'est en fait la partie DDL (Data Definition Langage). La méthode merise, par le moyen du MPD, va générer la structure de la base de données conceptualisée au sein de la SGBDR de son choix. 18/50
Ici, on choisira PostgreSQL version 8. Nous avons donc obtenu ce schéma, les flèches indiquent comment sont établies les clés étrangères. Elles nous indiquent également de quelles clés primaires elle dépendent en reliant la table l'entité correspondante. Ce Modèle Physique de Données va nous permettre de générer la base de données. 19/50
Il faut cliquer sur l'onglet SGBD puis «générer une base de données». Nous pouvons faire différent choix grâce à la fenêtre «Génération d'une base de données» Un fichier au nom AFPA.sql sera créé dans le répertoire : C:\Program Files (x86)\sybase\poweramc15\ La base de données est maintenant générée dans le fichier AFPA.sql. Nous allons maintenant lancer le script au sein de notre SGBD. Le fichier AFPA.sql sera transférer de Windows à Linux grâce au secure file transfert du ssh. L'utilisation d'interpréteur permettra par la suite une modification par la saisie manuelle des requête SQL. Nous pourrons également modifier les différents modèles de merise en éditant l'espace de travail et suivre à nouveau le cheminement ci-dessus. 20/50
Et maintenant nous allons créer une base de données au nom d'afpa : Puis, implémenter le fichier créé grâce à merise dans la SGBD : Une fois la base de données créée, on en change son propriétaire. Actuellement c'est postgres le propriétaire : nous allons donc faire de l'utilisateur tsgeri, le nouvel propriétaire de la base de données «afpa» : Nous pourrons désormais nous connecter avec le compte tsgeri : 21/50
Nous pourrons également vérifier graphiquement la création de la base de données grâce à l'outil d'administration phppgadmin : 2.3INSTALLATION ET CONFIGURATION D'UNE BASE DE DONNEES 2.3.1 Installation d'un serveur Web : Apache2 Pour l'installation de PostgreSQL, nous utiliserons une des distributions de Linux, Debian. Plusieurs conditions sont requises : -une connexion à internet configurée et opérationnelle. -les droits d'administration -un serveur web (ici apache) Installation d'un server HTTP : apache Il faut être en shell de connexion root # et télécharger les paquets apache2 22/50
Notre serveur peut nous afficher des pages statiques, mais pour qu'il puisse afficher les pages dynamiques, il faut installer PHP 5 sur le server apache : Ensuite, on met à jour les paquets afin de mettre à jour la liste des packages : Ensuite, on démarre le serveur apache : On vérifie que le serveur tourne : Installation des paquets et du client Modification des fichiers de configuration : -modifier le fichier postgresql.conf 23/50
-faire un sauvegarde de sécurité : -modifier la mention «localhost» par «*», pour se connecter à distance : -modification du fichier /etc/postgresql/8,4/pg_hba.conf : (ne pas oublier la sauvegarde de sécurité) =>ajouter à la fin host all all <@ du réseau>md5 ne pas oublier le préfixe!!! -lancement et vérification du processus : 24/50
=>un utilisateur postgres est créé automatiquement au téléchargement des paquets d'installation -attribution d'un mot de passe au compte postgres : -se connecter à la base de données : -postgres est le compte administrateur pour psql. Par mesure de sécurité, il faut créer un compte utilisateur (sauf pour les tâches administrateur), car comme il est créé par défaut, il est connu de tous et donc discutable en terme de sécurité. -création de la base de données =>se connecter à psql et faire créer sa base -modification du propriétaire de la DB serpent, ce sera tsgeri -affectation d'un mot de passe à l'utilisateur tsgeri 25/50
-se connecter avec tsgeri : (il faut créer également tsgeri hors de la base) 2.3.2 Configuration d'un client : phppgadmin -dans un premier temps télécharger les paquets d'installation du client -puis modifier les fichiers de configuration du fichier apache.conf, on pourra modifier les permissions et mettre en commentaire «deny from all» et enlever le commentaire de «allow from all». Cette manipulation donnera donc accès à toutes machines de se connecter au client. (les login feront office de clés de sécurité à l'accès) : 26/50
-modifier le fichier pg_hba.conf avec l'adresse du poste de travail Windows : Puis on se connecte au client web, avec l'adresse de son serveur qui supporte la base de données postgresql : On renseigne l'adresse du serveur de base de données dans le navigateur suivi du nom de notre client, phppgadmin Il nous est demandé de nous identifier, on comprend mieux pourquoi un nouveau utilisateur a été créé. La création d'un compte postgres est automatique à la création de la base de données avec PostgreSQL. Cette création d'utilisateur d'usine ne peut donc servir d'identifiant pour des raisons de sécurité. 27/50
On se connecte avec le compte tsgeri créé précédemment. Nous sommes désormais connecté à notre base de données préalablement créer en interface de ligne de commande, la base de données serpent : 2.3.3 L'outil d'administration pgadmin3 PgAdmin3 est un outil d'administration qui permet à une base de données PostgreSQL d'être administrée à distance par un outil graphique. PgAdmin3 ne nécessite pas d'installation de paquet sur le serveur Linux (debian). Son utilisation est très voisine de celle de phppgadmin, nous verrons donc en détail sa configuration et les avantages de cet outil. 28/50
Installation de pgadmin3 : Configuration de pgadmin3 : L'interface administrateur se présente comme ceci : Pour utiliser l'outil, il faut dans un premier temps le configurer et donc l'interconnecter à notre base de données. Pour cela, il faut ajouter notre serveur, le déclarer et faire : =>fichier ; ajouter un serveur. 29/50
La fenêtre «ajouter un enregistrement de serveur apparaît», il faut maintenant renseigner les champs : Puis cliquer sur : ok. On constate que nous sommes désormais connectés à l'outil d'administration pgadmin3 30/50
On peut bien entendu dérouler les onglets en cliquant sur les petits symboles «+», N.B : les outils phppgadmin et pgadmin3 étant très voisin dans leur utilisation et la manipulation des tables et de leurs données (même si on lui préfère généralement phppgadmin), les démonstration sur l'utilisation d'une base de données seront réalisées avec phppgadmin. Les principales différences entre pgadmin et phppgadmin : -pgadmin3 s'installe sur plusieurs systèmes d'exploitation. -pgadmin3 ne requiert pas l'utilisation d'un navigateur. -phppgadmin est développé en langage php qui est le langage très couramment utilisé pour le développement de page Web. 31/50
2.3.4 Utilisation d'une base de données : partie DDL Création des tables : On utilise l'éditeur de texte «context» pour créer un fichier de type «.sql» et l'injecter dans un second temps dans la base de données. A l'aide de la commande «\i» A l'aide de la commande «\i», on injecte le fichier «.sql» préalablement créé dans context : Visionner ses tables avec «\d» : On peut créer une table grâce à son client, via l'interface graphique : 32/50
Ici, on crée la table partenaire (on peut également conserver certains paramètres des tables précédentes ou repartir sur une table vierge) On obtiendra : Si on clique sur la table partenaire on peut directement modifier, supprimer ces contraintes. (nous reviendront plus tard sur l'option parcourir) 33/50
Pour supprimer une table, il faut d'utiliser la commande DROP, ici on crée une table actionnaires pour l'exemple : On exécute le fichier.sql : Maintenant, on procède à la suppression de la table : On constate grâce à notre client que la table est bien supprimée : Pour consulter la liste des tables en ILC faire : \d 34/50
Création des schémas Une base de données contient un ou plusieurs schémas nommés qui eux, contiennent des tables. Les schémas contiennent aussi d'autres types d'objets nommés (type de données, fonctions et opérateurs) L'intérêt d'utiliser des schémas est : -d'autoriser de nombreux utilisateurs à utiliser des base de données différentes sans interférences entre eux. -d'organiser les objets de la base de données en groupes logiques afin de faciliter leur gestion. -les applications tiers peuvent être placées dans des schémas séparés pour éviter les collisions avec les noms d'autres objets. En Interface de ligne de commande : Ensuite pour alimenter son schéma avec des tables, il faudra indiquer à la base de données lequel on souhaite alimenter, on sépare donc le nom de schéma et le nom de la table à créer ou à alimenter par un point : (on note que l'absence de double quote après «CREATE TABLE») la table est crée dans la base de données : 35/50
On vérifie graphiquement la création de la table appelée pour l'exemple «table» dans le base de données serpent, dans le schéma mon_projet, on constate la création de «table» Pour effacer ce schéma avec ses tables, il faudra à nouveau utiliser la commande DROP et la commande CASCADE qui permet de supprimer de manière récursive les tables et les contraintes de ces tables. N.B : Pour consulter la liste des schémas faire la commande : \dn 36/50
2.3.5Utilisation d'une base de données : partie DML Alimenter ses tables : Ce sont les informations qui seront sollicitées lors de l'exploitation de la base de données et donc extraites des tables (un fichier client par exemple). La commande «INSERT INTO 'nom table' VALUES 'attributs table' : Pour la table client Pour la table fournisseur Visionner le contenu d'une table avec la commande «SELECT * FROM» Pour la table client 37/50
Pour la table fournisseur Extraire le contenu de ses tables : En interface de ligne de commande : la commande SELECT * FROM + nom de la table ; De manière graphique : il suffit d'afficher la liste de ses tables et de faire «parcourir» 38/50
Les fonctions d'agrégat : Ces fonctions permettent de parcourir une table pour en ressortir un seul résultat par les fonctions max,min, avg, count et sum. Par exemple, si on souhaite connaître le client le plus âgé, on interrogera la table clients de cette manière : Si on souhaite connaître le fournisseur ayant la plus petit numéro d'identification (clés primaire), Les contraintes et les types de caractères : Elles permettes de définir les données attendues dans un champ, qu'il soit entier, réel, de type non nul ou encore de déterminer le nombre de caractères ou de numéro qui renseignent un champ (un numéro de téléphone) Nous allons créer dans une table «contrainte» différents champs en respectant certains types de caractères pour illustrer cette partie : 39/50
La table est créée, ligne contrainte_id => integer signifie que l'on attend un nombre entier qui ne peut être nul on observe en bas de tableau que cette ligne est une clé primaire ligne contrainte_nom => le nombre de caractères ne peut excéder 50 ligne contrainte_telephone=>le nombre de caractères ne peut être supérieur à 10 Les contraintes et les types de caractères limitent les erreurs de renseignements de champs une fois les tables créés et soumises aux règles que l'on a définit. La description des tables de la base avec la commande «\d» 40/50
la définition de la table avec la commande «\d + nom table» Modification des tables : Lors de l'exploitation d'une base de données, on peut être amené a modifier l'intitulé d'une colonne, Il faudra dans la première partie de la requête cibler la table et ensuite l'intitulé de la colonne. Que se soit remplacer l'intitulé d'un colonne, on modifiera l'intitulé d'une colonne pour coller à l'évolution des tables et harmoniser celles-ci : Renommer une colonne avec ALTER TABLE «*» RENAME COLUMN «*» TO «*» On constate donc les modifications : 41/50
ou que ce soit pour modifier tout simplement l'orthographe : On visualise la table On entre la requête SQL On interroge la base de données afin de vérifier le changement au pluriel des intitulés Les contraintes : Les contraintes permettent de limiter le type de données à insérer dans une table. Ces contraintes peuvent être spécifiées lors de la création d'une table par l'intermédiaire de l'instruction CREATE TABLE, 42/50
NOT NULL, UNIQUE, CHECK, clé primaire, clé étrangère. Ici, l'exemple d'une requête SQL, la Clés Primaire. Les colonnes sont le plus souvent possible soumises à une contrainte. Elles permettent de restreindre la nature des données futures, qui alimenteront ses champs. Si on attend comme valeur, une valeur numérique positive (un prix de vente), il faudra indiquer par l'utilisation de CHECK et spécifier entre parenthèses que le prix est supérieur à 0. Dans les exemples ci-dessous, la colonne correspondant au date de naissance des clients est vide. Ici, l'intérêt est d'ajouter la contrainte «non nulle». Elle permettra à l'entreprise d'adresser des courriers personnalisés à ses clients, comme pour un pli lui souhaitant un bon anniversaire (et lui proposer une offre commercial ). C'est un moyen de fidélisation. 43/50
On constate si-dessus que l'entête «date_naissance» n'est pas soumis à une contrainte, L'utilisation de cette commande SQL permet donc d'encadrer le résultat attendu dans la table client et la colonne date_naissance, ce champs ne pourra pas être vide. Pour supprimer cette contrainte, il faudra utiliser cette requête, Nous avons vu les commandes principales requêtes concernant la définition et la manipulation des données au sein de PostgreSQL. 44/50
3 L'INTERFACAGE D'OPEN OFFICE AVEC UNE BASE DE DONNEES 3.1 Introduction Dans cette partie, nous aborderons l'interfaçage d'une base de données. Cette démarche permettra de mettre en avant son utilisation concrète et de faire la liaison entre une base de données et un logiciel bureautique (openoffice). Cependant, la SGBD postgresql est installée sous une distribution Linux alors qu'openoffice sous Windows. L'idée est donc de mettre en relation, d'interconnecter les deux logiciels. L'objectif est de créer un mailing adressé aux clients figurant dans la base de données créée préalablement. (Il faut disposer dans un premier temps du pilote ODBC (Open DataBase Connectivity), c'est un format définit par Microsoft qui permet la communication entre des clients bases de données fonctionnant sous Windows avec les SGBG). 3.2 Mise en place -lancer OpenOffice.org et choisir comme l'application Base de données, 45/50
-à l'étape 1, choisir se connecter à une base de données existante et sélectionner Open DataBase Connectivity qui est notre connecteur entre les deux logiciels. -à l'étape 2, cliquer sur parcourir, puis dans un second temps, cliquer sur gérer, 46/50
Le logiciel OpenOffice nous propose différents pilotes «connecteur», par défaut, le pilote postgresql n'y figure pas. -Il faudra donc ajouter le driver pour postgres. -télécharger le pilote et lancer son installation 47/50
l'ajout du pilote a été prise en compte, -ajouter une nouvelle source de données utilisateur, cliquer sur ajouter et choisir postgresql, puis renseigner les champs (indiquer en rouge), -on constate qu'à l'étape 2, notre source de données est bien PostgreSQL, 48/50
-à l'étape 3, on se connecte avec les identifiants préalablement renseignés, Puis tester la connexion : On constate qu'il y a un problème Le problème vient du fait que la configuration du serveur est en md5. Ce qui induit une connexion cryptée. A priori, la connexion cryptée n'est pas possible, il faut donc modifier le fichier pg_hba.conf et modifier le type de connexion possible : et on modifie le format md5 en password (puisqu'il nous est demandé un login mot de passe), par contre, ces mêmes login/mot de passe apparaîtront en clair sur le réseau avec n'importe quel outil comme Wireshark. Ici, la configuration actuelle : Les options proposées : 49/50
Ici, avec le changement de configuration : OpenOffice permet donc de créer des publipostages grâce à une base de données existante. 50/50