Accueil À propos Portfolio Stages Veille Contact

Axel Rayer

Web Developper

Projet scolaire : Installation et manipulation d'un serveur de base de données PostgreSQL


Lors de ma deuxième années de BTS SIO, nous avons du travaillez sur une activité portant sur le serveur de base de données "PostgreSQL", pour cela nous devions répondre à une trentaine de questions et enfin synthétiser le tout sur notre Portfolio.

PostgreSQL est un système de gestion de base de données, développé à l'origine par l'université de Berkeley. Il s'appuie sur les modèles relationnels mais apporte des extensions objet comme :

  • Les classes
  • L'héritage
  • Les types de données utilisateurs (tableaux, structures, listes..)
  • Les fonctions
  • Supporte complètement SQL
  • Portable sur plus de 20 environnements depuis la version 6.4.

  • Cela permet de qualifier PostgreSQL de système de gestion de base de données "relationnel-objet" (ORDBMS), à ne pas confondre avec les bases de données orientées objets qui ne supportent pas SQL, mais OQL (Object Query Language) de plus PostgreSQL est diffusé avec ses sources (licence libre).

    Instalation de PostgreSQL
    Pour l'installer, il suffit de taper la commande « apt-get install postgresql » ainsi le paquet de PostgreSQL sera installé sur votre machine (hôte ou virtuelle). Par défaut, l'installation ajoute un nouvel utilisateur Linux et un utilisateur de base de données Postgres. Il est d’ailleurs le seul, au début, à être autorisé à se connecter à la base de données. Il ne possède pas de mot de passe, je vous conseille de ne pas lui en mettre pour une meilleure sécurité. Pour accéder à PostgreSQl, il faut se connecter avec l'utilisateur « postgres » en tapant la commande suivante « sudo -i -u postgres ». Pour pouvoir lancer l'invite de commande, il suffit d'utiliser une commande qui est « psql ». Ainsi, vous serez connecté à PostgreSQL en mode administrateur. De là, on peut commencer à créer des utilisateurs, des bases de données, etc…

    Mode de fonctionnement de PostgreSQL
    Les trois composantes majeures sont :
  • Un processus de supervision (daemon) qui prend en charge les connexions des clients : postmaster
  • Les applications clientes comme psql, qui permettent de passer des requêtes SQL
  • Le ou les serveurs de bases de données (agents). Processus d'ouverture de session : (voir le schéma d'ouverture de session.)
  • Description du processus d'ouverture de session
  • Le client passe une requête au daemon postmaster via un socket. Par défaut sur le port 5432. La requête contient le nom de l'utilisateur, le nom de la base de données. Le daemon, peut à ce moment utiliser une procédure d'authentification de l'utilisateur. Pour cela il utilise le catalogue de la base de données, dans lequel sont définis les utilisateurs.
  • Le daemon crée un alors un agent pour le client. Le processus serveur répond favorablement ou non en cas d'échec du démarrage du processus. (exemple : nom de base de données invalide).
  • Le processus client se connecte sur le processus agent. Quand le client veut clore la session, il transmet un paquet approprié au processus agent et ferme la connexion sans attendre la réponse.
  • Plusieurs processus agents peuvent être initialisés pour un même client.


  • Mais bref ! Tout cela n'est que la théorie. Passons à présent à l'activité pur.

    Cette activité comportait une trentaines de questions, pour ce compte rendu nous nous conteterons de lister différentes commandes importantes en les regroupants dans des thèmes communs.



    Utilitaire :
  • Redémarez le service : sudo service postgresql restart
  • Afficher la liste de toutes les bases de données : \l
  • Afficher la liste des tables d'une base de données : \d
  • Afficher la liste des groupes : \du
  • Afficher la liste des droits des différentes tables : \z
  • Se connecter à une base de données : \c nomdb
  • Se déconnecter de PostgreSQL: \q
  • Déconnecter un utilisateur : exit
  • Liste des autres commandes : \?


  • Utilisateur et rôle :
  • Créer un utilisateur sans privilèges particuliers : CREATE USER user;
  • Créer un utilisateur qui aura des privilèges d’administrateur : CREATE USER Admin password ‘mpadmin’ superuser createdb;
  • Ajouter un mot de passe au compte utilisateur : ALTER ROLE user password ‘test’
  • Créer un groupe (rôle) : CREATE ROLE groupetest;
  • Attribuer des rôles : GRANT groupetest to Admin


  • Tables et bases de données :
  • Créer une nouvelle base de données : CREATE DATABASE basetest
  • Créer une table :CREATE TABLE ORDINATEUR (no_ordi integer primary key, nom varchar(50), prix_total varchar(50), no_carte_mere interger) ;
  • Saisir des occurrences suivantes dans une table :insert into MERE values (1,’msi’,100)
  • Ajouter une colonne dans une table : Alter table ordinateur add column marque_ordi varchar(25) ;
  • Renommer la table : ALTER TABLE basetest RENAME ordi