PostgreSQL Installation et exploitation  sous Linux
Plan <ul><li>I -  Présentation  : </li></ul><ul><li>1 - Définition. </li></ul><ul><li>2 - Historique. </li></ul><ul><li>3 ...
I -  Présentation
I - Présentation 1 - Définition <ul><li>PostgreSQL est un SGBD objet  Relationnel OpenSource, Multi-platformes. </li></ul>...
I - Présentation 1 - Définition <ul><li>Nouveaux types de données ; </li></ul><ul><li>Nouvelles fonctions ; </li></ul><ul>...
I - Présentation 2 - Historique <ul><li>PostgreSQL est un projet d'origine universitaire : </li></ul><ul><li>Université de...
I - Présentation 2 - Historique <ul><li>Postgres95 1.0 1994-1996 :  SQL (Andrew Yu, Jolly Chen) </li></ul><ul><li>PostgreS...
I - Présentation 3 - Architecture <ul><li>PostgreSQL utilise un modèle client-serveur : &quot;un processus par utilisateur...
I - Présentation 3 - Architecture <ul><li>Les applications Client qui veulent accéder à la base de données font appel  </l...
II - Installation
II - Installation 1 - Pré-requis <ul><li>La version utilisée est : postgresql-8.2.3 </li></ul><ul><li>Téléchargement : ftp...
II - Installation 1 - Pré-requis <ul><li>Étapes d’installation : </li></ul><ul><li>gcc / g++ : Compilateur C de GNU </li><...
II - Installation 2 -  Super utilisateur <ul><li>La  création  de  super utilisateur  : </li></ul>$> sudo adduser postgres...
II - Installation 3 -  Préparation de l’installation  <ul><li>La  création   d’un répertoire  dans la  racine  /opt : </li...
II - Installation 3 -  Préparation de l’installation  <ul><li>Lance la configuration  : </li></ul><ul><li>Pour plus  d’inf...
II - Installation 4 -  Compilation et installation  <ul><li>Pour compiler  : </li></ul><ul><li>Pour lance l’installation  ...
II - Installation 5 -  Configuration système <ul><li>Configuration des variables  d’environnements  : </li></ul>$> gedit /...
II - Installation 6 -  Initialisation  <ul><li>Donner  les  droits  aux  utilisateurs  : </li></ul>$> sudo chmod o+rw /usr...
II - Installation 6 -  Initialisation  <ul><li>Initialisation PostgreSQL  : </li></ul>$> su - postgres Password :  $> init...
II - Installation 7 - Service Postgres   <ul><li>Le répertoire  /opt/sources/ postgresql-8.2.3/  contient les scripts de  ...
II - Installation 8 - Démarrage  <ul><li>Démarrer  postgreSQL : </li></ul>$> sudo /etc/init.d/postgres stop <ul><li>Arrête...
II - Installation 8 -  Démarrage   <ul><li>Démarrer  postgreSQL : </li></ul>$> pg_ctl   stop <ul><li>Arrêter  postgreSQL  ...
III - Exploitation
III - Exploitation 1 -  Concepts de base  <ul><li>Lors de l'initialisation du &quot;cluster&quot; de base de données, deux...
III - Exploitation 1 -  Concepts de base  <ul><li>PostgreSQL vient avec plusieurs langages côté serveur qui permettent  </...
III - Exploitation 1 -  Concepts de base  <ul><li>Création d'une base de données en mode non connecter : </li></ul>Postgre...
III - Exploitation 1 -  Concepts de base  Postgres#>c ma_base <ul><li>Pour changer la base courante  : </li></ul>Postgres#...
III - Exploitation 2 -  Cas Pratique : <ul><li>Un hôpital désire gérer, pour chaque patient, les informations suivantes : ...
III - Exploitation 2 –  Cas Pratique : <ul><li>Diagramme de classe : </li></ul>
III - Exploitation 2 -  Cas Pratique : <ul><li>Travail demandé : </li></ul><ul><li>Créer une base de données appelée «hopi...
III - Exploitation 2 -  Cas Pratique : <ul><li>Travail demandé : </li></ul><ul><li>Lister l’identité et l’adresse de tout ...
III - Exploitation 2 -  Cas Pratique : <ul><li>Travail demandé : </li></ul><ul><li>Changer l'adresse du médecin de code16....
Prochain SlideShare
Chargement dans…5
×

PostgreSQL sous linux

5 434 vues

Publié le

Mise en œuvre de PostgreSQL a partir du code source sous linux

Publié dans : Formation
0 commentaire
5 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
5 434
Sur SlideShare
0
Issues des intégrations
0
Intégrations
104
Actions
Partages
0
Téléchargements
129
Commentaires
0
J’aime
5
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

PostgreSQL sous linux

  1. 1. PostgreSQL Installation et exploitation sous Linux
  2. 2. Plan <ul><li>I - Présentation : </li></ul><ul><li>1 - Définition. </li></ul><ul><li>2 - Historique. </li></ul><ul><li>3 - Architecture. </li></ul><ul><li>II - Installation : </li></ul><ul><li> 1 - Pré-requis </li></ul><ul><li> 2 - Super utilisateur </li></ul><ul><li> 3 - Préparation de l’installation </li></ul><ul><li> 4 - Compilation et installation </li></ul><ul><li> 5 - Configuration système </li></ul><ul><li> 6 - Initialisation </li></ul><ul><li> 7 - Service Postgres </li></ul><ul><li> 8 - Démarrage </li></ul><ul><li>III - Exploitation : </li></ul><ul><li>1 - Concepts de base </li></ul><ul><li> 2 - Cas pratique </li></ul>
  3. 3. I - Présentation
  4. 4. I - Présentation 1 - Définition <ul><li>PostgreSQL est un SGBD objet Relationnel OpenSource, Multi-platformes. </li></ul><ul><li>Développé à l'université de Californie au département des sciences </li></ul><ul><li>informatiques de Berkeley. </li></ul><ul><li>Il supporte une grande partie du standard SQL : </li></ul><ul><li>Requêtes complexes. </li></ul><ul><li>Clés étrangères. </li></ul><ul><li>Déclencheurs (triggers). </li></ul><ul><li>Vues. </li></ul><ul><li>Intégrité des transactions. </li></ul>
  5. 5. I - Présentation 1 - Définition <ul><li>Nouveaux types de données ; </li></ul><ul><li>Nouvelles fonctions ; </li></ul><ul><li>Nouveaux opérateurs ; </li></ul><ul><li>Nouvelles fonctions d'agrégat ; </li></ul><ul><li>Nouvelles méthodes d'indexage ; </li></ul><ul><li>Nouveaux langages de procédure. </li></ul><ul><li>PostgreSQL est extensible par l'utilisateur après l’adoption du SQL3. En ajoutant, par exemple, des : </li></ul>
  6. 6. I - Présentation 2 - Historique <ul><li>PostgreSQL est un projet d'origine universitaire : </li></ul><ul><li>Université de Californie (Berkeley) </li></ul><ul><li>Développement 1977-1985 </li></ul><ul><li>Le projet n'est pas libre dans les premières années : </li></ul><ul><li>Une première version commerciale donne naissance à Ingres (1985). </li></ul><ul><li>Le projet continue à Berkeley sous le nom de Postgre (Post-Ingre). </li></ul><ul><li>Naissance de PostgreSQL : En 1995 les étudiants apportent le support </li></ul><ul><li>de SQL </li></ul><ul><li>Le code est libre depuis en 1996. </li></ul>
  7. 7. I - Présentation 2 - Historique <ul><li>Postgres95 1.0 1994-1996 : SQL (Andrew Yu, Jolly Chen) </li></ul><ul><li>PostgreSQL 6.0 1997-1999 : union. . . PL/pgSQL </li></ul><ul><li>PostgreSQL 7.0 2000 : intégrités réferentielles </li></ul><ul><li>PostgreSQL 7.1 2001 : jointure externe </li></ul><ul><li>PostgreSQL 7.4 2003 : information schéma </li></ul><ul><li>PostgreSQL 8.0 2004 : tablespace </li></ul><ul><li>PostgreSQL 8.1 2005 : Rôles </li></ul><ul><li>PostgreSQL 8.2 2006 : performances. . . </li></ul>
  8. 8. I - Présentation 3 - Architecture <ul><li>PostgreSQL utilise un modèle client-serveur : &quot;un processus par utilisateur&quot;. </li></ul><ul><li>Une session PostgreSQL consiste en plusieurs processus coopérants: </li></ul><ul><li>un processus démon superviseur (postmaster) </li></ul><ul><li>L'application utilisateur (p.ex. le programme PSQL, PGAdmin3) </li></ul><ul><li>le serveur de base de données (processus Postgres) </li></ul>User Application LIBPQ Client Host Postmaster Server (Postgres) Server Host
  9. 9. I - Présentation 3 - Architecture <ul><li>Les applications Client qui veulent accéder à la base de données font appel </li></ul><ul><li>à la librairie. </li></ul><ul><li>Cette librairie envoie la requête de l'utilisateur à travers le réseau vers le </li></ul><ul><li>Postmaster. </li></ul><ul><li>Le Postmaster démarre un nouveau processus serveur (un processus par </li></ul><ul><li>utilisateur) et connecte ce processus au processus de l'application client. </li></ul><ul><li>A partir de ce moment, les processus client et Serveur communiquent sans </li></ul><ul><li>intervention du Postmaster. </li></ul>User Application LIBPQ Client Host Postmaster Server (Postgres) Server Host
  10. 10. II - Installation
  11. 11. II - Installation 1 - Pré-requis <ul><li>La version utilisée est : postgresql-8.2.3 </li></ul><ul><li>Téléchargement : ftp://ftp.fr.postgresql.org/source/v8.2.3/ </li></ul><ul><li>Il existe diffères types d'installation (code source, rpm, deb, mdk …) </li></ul><ul><li>L’utilité de l'installation à partir des codes sources réside dans le fait quelle </li></ul><ul><li>marche dans les différentes distributions et de bien contrôler les </li></ul><ul><li>paramètres de l'installation. </li></ul><ul><li>Chemins : </li></ul><ul><li>Répertoire contenant les sources : /opt/sources/ </li></ul><ul><li>Repertoire d'instalation : / usr/local / (par défaut) </li></ul><ul><li>Vous pouvez utiliser le chemin que vous voulez. </li></ul>
  12. 12. II - Installation 1 - Pré-requis <ul><li>Étapes d’installation : </li></ul><ul><li>gcc / g++ : Compilateur C de GNU </li></ul><ul><li>libreadline : bibliothèque qui permet d’avoir accès à l’historique de </li></ul><ul><li>requête dans le moniteur interactif psql. </li></ul><ul><li>zlib : bibiothèque nécessaire pour la création d’archives lors de la </li></ul><ul><li>sauvegardes de bases de données en archive tar ou compressées . </li></ul><ul><li>Des erreurs peuvent être engendré pendant la préparation et la compilation, en raison des dépendance des bibliothèques. </li></ul><ul><li>Il faut se loger en « root » pour avoir le droit d’installer des programmes. </li></ul>Préparation Compilation Installation
  13. 13. II - Installation 2 - Super utilisateur <ul><li>La création de super utilisateur : </li></ul>$> sudo adduser postgres <ul><li>Pourqoui le super utilisateur : </li></ul><ul><li>Pour des raisons de sécurité, il est conseillé de créer un </li></ul><ul><li>utilisateur «  postgres  », pour évité tout menace tel que </li></ul><ul><li>les attaques des requêtes de type &quot;SQL injection&quot; par le </li></ul><ul><li>réseau ou par une mauvaise utilisation d’un simple </li></ul><ul><li>utilisateur . </li></ul>
  14. 14. II - Installation 3 - Préparation de l’installation <ul><li>La création d’un répertoire dans la racine /opt : </li></ul><ul><li>Copier le fichier compressé : </li></ul>$> sudo mkdir /opt/sources $> sudo cp postgresql-8.2.3.tar.gz /opt/sources/ $> cd /opt/sources/ $> tar -zxvf postgresql-8.2.3.tar.gz <ul><li>La décompression : </li></ul><ul><li>z : compresser/décompresser les fichiers à travers le gzip. </li></ul><ul><li>x : extraire les fichiers de l’archive. </li></ul><ul><li>v : permet d'obtenir une description des fichiers désarchivés. </li></ul><ul><li>f : pour désigner l'archive contenant les fichiers (paramètre) . </li></ul>
  15. 15. II - Installation 3 - Préparation de l’installation <ul><li>Lance la configuration : </li></ul><ul><li>Pour plus d’information tapez : </li></ul>$> ./configure $> ./configure - - help $> sudo aptitude install g++ $> sudo aptitude install libreadline5-dev $> sudo aptitude install zlibc $> sudo aptitude install zlibg-dev <ul><li>Télécharger les bibliothèque nécessaire : </li></ul><ul><li>Ou bien : </li></ul>$> sudo aptitude install g++ libreadline5-dev zlibc zlibg-dev
  16. 16. II - Installation 4 - Compilation et installation <ul><li>Pour compiler : </li></ul><ul><li>Pour lance l’installation : </li></ul>$> make $> sudo make install <ul><li>Pour voir les erreurs : </li></ul>$> sudo make - - check <ul><li>Postgres sera installer dans le répertoire : </li></ul><ul><li>/usr/local/pgsql/ </li></ul><ul><li>/usr/local/pgsql/bin/ : contient les fichiers binaires (commandes) </li></ul><ul><li>/usr/local/pgsql/lib/ : contient les bibliothèques de Postgres </li></ul>
  17. 17. II - Installation 5 - Configuration système <ul><li>Configuration des variables d’environnements : </li></ul>$> gedit /etc/profile <ul><li>Ajouter les lignes suivantes : </li></ul># Chemin des bibliothèque Postgres export LD_LIBRARY_PATH=/usr/local/pgsql/lib # Chemin des commandes Postgres export PATH=/usr/local/pgsql/bin:$PATH <ul><li>Pour vérifier : S e connecter entend que utilisateur « postgres » : </li></ul>$> su – postgres Password : $> env | grep PATH=
  18. 18. II - Installation 6 - Initialisation <ul><li>Donner les droits aux utilisateurs : </li></ul>$> sudo chmod o+rw /usr/local/pgsql/ <ul><li>Créer le ré pertoire qui va contenir les bases de données (culster) : </li></ul>$> sudo mkdir /usr/local/pgsql/data <ul><li>Puisque l’ utilisateur « postgres » est le super utilisateur du PostgreSQL, </li></ul><ul><li>alors il doit être le propriétaire de /usr/local/pgsql/data/ : </li></ul>$> sudo chown postgres /usr/local/pgsql/data -R
  19. 19. II - Installation 6 - Initialisation <ul><li>Initialisation PostgreSQL : </li></ul>$> su - postgres Password : $> initdb -D /usr/local/pgsql/data -A md5 -W <ul><li>-A md5 : Pour crypter les mots de passe en md5. </li></ul><ul><li>- W : Assigner un mot de passe au super-utilisateur. Sans cela, </li></ul><ul><li>tous les utilisateurs locaux peuvent avoir accès au serveur </li></ul><ul><li>sans sécurité. </li></ul>$> gedit ~/.bash_profile export PGDATA= /usr/local/pgsql/data <ul><li>Pour ne pas écrire a chaque fois -D , éditer le profile de l’ utilisateur « postgres » : </li></ul><ul><li>Ajouter la nouvelle variable d’environnement PGDATA dans le profile : </li></ul>
  20. 20. II - Installation 7 - Service Postgres <ul><li>Le répertoire /opt/sources/ postgresql-8.2.3/ contient les scripts de </li></ul><ul><li>démarrage pour différentes plateformes . </li></ul>$> sudo update-rc.d postgres defaults <ul><li>Rendre Postgres un service pour une machine linux : </li></ul>$> sudo cp /opt/sources/ postgresql-8.2.3/ contrib/start-scripts/linux /etc/init.d/postgres <ul><li>Mise à jour de la liste des services : </li></ul><ul><li>Démarrer postgreSQL : </li></ul>$> sudo /etc/init.d/postgres start $> sudo /etc/init.d/postgres start
  21. 21. II - Installation 8 - Démarrage <ul><li>Démarrer postgreSQL : </li></ul>$> sudo /etc/init.d/postgres stop <ul><li>Arrêter postgreSQL : </li></ul><ul><li>Red émarrer postgreSQL : </li></ul>$> sudo /etc/init.d/postgres start $> sudo /etc/init.d/postgres restart <ul><li>Recharger les paramètres postgreSQL : </li></ul>$> sudo /etc/init.d/postgres reload
  22. 22. II - Installation 8 - Démarrage <ul><li>Démarrer postgreSQL : </li></ul>$> pg_ctl stop <ul><li>Arrêter postgreSQL : </li></ul><ul><li>Red émarrer postgreSQL : </li></ul>$> pg_ctl start $> pg_ctl restart <ul><li>Recharger les paramètres postgreSQL : </li></ul>$> pg_ctl reload
  23. 23. III - Exploitation
  24. 24. III - Exploitation 1 - Concepts de base <ul><li>Lors de l'initialisation du &quot;cluster&quot; de base de données, deux bases sont </li></ul><ul><li>créées : template1 et template0. </li></ul><ul><li>Lors de la création d'une base, c'est template1 qui est copiée par défaut, </li></ul><ul><li>toute modification de template1 est donc répercutée sur les nouvelles </li></ul><ul><li>bases de données. </li></ul><ul><li>Template0 est une base modèle qui ne doit pas être modifiée, elle contient </li></ul><ul><li>des objets prédéfinis selon la version de PostgreSQL. </li></ul><ul><li>Pour se connecte au serveur : </li></ul>$> psql -U postgres $> psql -U postgres template1
  25. 25. III - Exploitation 1 - Concepts de base <ul><li>PostgreSQL vient avec plusieurs langages côté serveur qui permettent </li></ul><ul><li>d'écrire des procédures stockées. Pour cela il faut les installer. </li></ul><ul><li>Le langage propre à PostgreSQL s'appelle PL/PGSQL. </li></ul><ul><li>Il faut installer PL/PGSQL sur template1, afin que toutes les bases en </li></ul><ul><li>disposent. </li></ul><ul><li>On ajoute le langage grâce à la commande shell suivante : </li></ul>$> createlang plpgsql template1 <ul><li>la commande pour créer une base de données à partir d’une template est : </li></ul>$> create database ma_base template template_base;
  26. 26. III - Exploitation 1 - Concepts de base <ul><li>Création d'une base de données en mode non connecter : </li></ul>Postgres#> create database ma_base <ul><li>Création d'une base de données en mode connecter : </li></ul><ul><li>Suppression d'une base de données en mode non connecter : </li></ul>$> createdb ma_base -U postgres $> dropdb ma_base -U postgres <ul><li>Suppression d'une base de données en mode non connecter : </li></ul>Postgres#> drop database ma_base
  27. 27. III - Exploitation 1 - Concepts de base Postgres#>c ma_base <ul><li>Pour changer la base courante : </li></ul>Postgres#> SELECT user(); Postgres#> SELECT version(); Postgres#> SELECT current_database(); Postgres#> SELECT current_user(); <ul><li>Exemple des quelques commandes sous psql : </li></ul><ul><li>Exemple de requête : </li></ul>
  28. 28. III - Exploitation 2 - Cas Pratique : <ul><li>Un hôpital désire gérer, pour chaque patient, les informations suivantes : </li></ul><ul><li>Par ailleurs l’hôpital tient à jour la liste des médecins qu’il a déjà </li></ul><ul><li>enregistrés, qui comprend pour chaque médecin : </li></ul><ul><li>Nom, Prénom </li></ul><ul><li>Adresse (numéro, rue et ville) </li></ul><ul><li>Matricule, CIN, CNSS </li></ul><ul><li>Date naissance </li></ul><ul><li>Dossier médical (un chemin pour le dossier électronique) </li></ul><ul><li>Nom, Prénom </li></ul><ul><li>Adresse (numéro, rue et ville) </li></ul><ul><li>Code </li></ul><ul><li>Spécialité </li></ul><ul><li>Téléphone </li></ul>
  29. 29. III - Exploitation 2 – Cas Pratique : <ul><li>Diagramme de classe : </li></ul>
  30. 30. III - Exploitation 2 - Cas Pratique : <ul><li>Travail demandé : </li></ul><ul><li>Créer une base de données appelée «hopital» </li></ul><ul><li>Créer le type «identité» qui comprend : le nom et le prénom </li></ul><ul><li>Créer le type «adresse» identifié par : numéro, rue, ville </li></ul><ul><li>Créer la table «personne» qui contient les attributs suivants : </li></ul><ul><li>id de type identité </li></ul><ul><li>adr de type adresse </li></ul><ul><li>Créer la table «médecin» qui hérite de la table personne. </li></ul><ul><li>Créer la table «patient» qui hérite de la table personne. </li></ul><ul><li>Insérer des données afin d’exploiter la base de données. </li></ul>
  31. 31. III - Exploitation 2 - Cas Pratique : <ul><li>Travail demandé : </li></ul><ul><li>Lister l’identité et l’adresse de tout les Patients et les médecins </li></ul><ul><li>Lister les patients qui habitent Casablanca et leurs médecins . </li></ul><ul><li>Lister les patients qui ont consulté un médecin de leur ville </li></ul><ul><li>Créer la fonction «Afficher» qui a comme paramètre une identité </li></ul><ul><li>et qui l’affiche sous forme «Nom Prénom». </li></ul><ul><li>Créer la fonction «Afficher» qui a comme paramètre une adresse </li></ul><ul><li>et qui l’affiche sous forme « N° …, rue, ville ». (Surcharge de la </li></ul><ul><li>fonction Afficher) . </li></ul><ul><li>Lister les patients et les médecins avec la nouvelle forme (utiliser </li></ul><ul><li>les fonctions) . </li></ul>
  32. 32. III - Exploitation 2 - Cas Pratique : <ul><li>Travail demandé : </li></ul><ul><li>Changer l'adresse du médecin de code16. </li></ul><ul><li>Changer juste la rue du médecin de code 17 </li></ul><ul><li>Créer la fonction «Listerpatient» qui a comme paramètre un </li></ul><ul><li>entier et qui permet d’afficher les nom et prénom des patients </li></ul><ul><li>qui ont vu un médecin donné. </li></ul><ul><li>Donner un exemple d’utilisation de la fonction «Listerpatient» </li></ul><ul><li>Sauvegarder la base de données «hopital». </li></ul><ul><li>Créer une nouvelle base de données nommée «backhopital» et </li></ul><ul><li>restaurer la sauvegarde de la base «hopital» dans la nouvelle </li></ul><ul><li>base de données. </li></ul>

×