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

Contenu connexe

PDF
Pgbadger
Affinitic
 
PPT
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
PASCAL Jean Marie
 
DOCX
Rapport Kernel Linux - Configuration – Compilation & installation
Ayoub R.
 
ODP
08 01 mise en place d'un serveur web
Noël
 
PPT
Serveur Web (1)
Saïd Radhouani
 
PDF
PostgreSQL sous linux
Khalid ALLILI
 
PPT
DRAFT - Vm Ware - Installation Nuxeo
PASCAL Jean Marie
 
PDF
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Aurelien Navarre
 
Pgbadger
Affinitic
 
[DRAFT] Utiliser VmWare pour l'installation d'un Alfresco
PASCAL Jean Marie
 
Rapport Kernel Linux - Configuration – Compilation & installation
Ayoub R.
 
08 01 mise en place d'un serveur web
Noël
 
Serveur Web (1)
Saïd Radhouani
 
PostgreSQL sous linux
Khalid ALLILI
 
DRAFT - Vm Ware - Installation Nuxeo
PASCAL Jean Marie
 
Meetup Drupal Lyon 2016 - Environnements de dév Drupal automatisés LXC et Ans...
Aurelien Navarre
 

Tendances (17)

PDF
Installation et configuration d'apache tomcat
Manassé Achim kpaya
 
PPT
APACHE HTTP
Rachid NID SAID
 
PDF
Rapport openembedded
Ayoub R.
 
DOC
PostgreSQL
Majid CHADAD
 
PPTX
Concepts de sauvegarde et de récupération
Soukaina Boujadi
 
PDF
Configuration Management avec Drupal 8
Aurelien Navarre
 
PDF
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
Aurelien Navarre
 
ODP
08 02 mise en place de serveurs virtuels apache 2
Noël
 
PDF
Mis en place d'un herbergement multiple sous centos 6.
Manassé Achim kpaya
 
PDF
Rapport systéme embarqué busybox
Ayoub R.
 
PDF
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Aurelien Navarre
 
PDF
Bases de données Spatiales - POSTGIS
Omar El Kharki
 
PPTX
Presentation kernel - Kernel Linux - Configuration – Compilation & installation
Ayoub R.
 
DOCX
Scheduler & SLA
Ayoub R.
 
PPTX
Sauvegardes de base de données
Soukaina Boujadi
 
PPTX
Exposé open embedded
Ayoub R.
 
PDF
Mis en place d'un serveur web avec herbergement multiple sous centos 6.
Manassé Achim kpaya
 
Installation et configuration d'apache tomcat
Manassé Achim kpaya
 
APACHE HTTP
Rachid NID SAID
 
Rapport openembedded
Ayoub R.
 
PostgreSQL
Majid CHADAD
 
Concepts de sauvegarde et de récupération
Soukaina Boujadi
 
Configuration Management avec Drupal 8
Aurelien Navarre
 
DrupalCamp Nantes 2016 - Migrer un site Drupal 6 ou Drupal 7 vers Drupal 8
Aurelien Navarre
 
08 02 mise en place de serveurs virtuels apache 2
Noël
 
Mis en place d'un herbergement multiple sous centos 6.
Manassé Achim kpaya
 
Rapport systéme embarqué busybox
Ayoub R.
 
Meetup Drupal Lyon mars 2013 - Optimiser les performances Drupal par le cache
Aurelien Navarre
 
Bases de données Spatiales - POSTGIS
Omar El Kharki
 
Presentation kernel - Kernel Linux - Configuration – Compilation & installation
Ayoub R.
 
Scheduler & SLA
Ayoub R.
 
Sauvegardes de base de données
Soukaina Boujadi
 
Exposé open embedded
Ayoub R.
 
Mis en place d'un serveur web avec herbergement multiple sous centos 6.
Manassé Achim kpaya
 
Publicité

En vedette (20)

PDF
de Google Maps à OpenStreetMap
Frédéric Rodrigo
 
PPS
3.2 Les Infrastructures de données spatiales régionales développées dans le p...
grisicap
 
ODP
Introduction à CakePHP
Pierre MARTIN
 
PDF
Installation apache mandriva
Majid CHADAD
 
PDF
rapport_stage_issame
AMAL Issame
 
KEY
Node.js et MongoDB: Mongoose
jeromegn
 
PPTX
Symfony2 Introduction Presentation
Nerd Tzanetopoulos
 
PDF
Bases de données spatiales
Guillaume Matheron
 
PDF
Introduction au webmapping au-dela de google maps
VisionGÉOMATIQUE2012
 
PPT
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
Jean-Antoine Moreau
 
PDF
Media center sous linux
Yannick Pavard
 
PPT
Forum aaf preuve sécurité 22 mars 2013 (2)
AssociationAF
 
PDF
Simulations et applications réparties sous LINUX
Fdiwa
 
DOC
Virtualisation
Said Essatte
 
PDF
Offre d'emploi Ingénieur intégration système LINUX H/F
Simstream
 
PPT
Mysql Apche PHP sous linux
Khalid ALLILI
 
PDF
LinPKI
LINAGORA
 
PPT
De la Securité Informatique a l’Identite Numerique 2.0
Eric Herschkorn
 
PDF
Cas cliniques module 4 2008
Idris Ahmed
 
PPTX
Utilisation des réseaux informatiques dans l’enseignement
Kaouther Skiken
 
de Google Maps à OpenStreetMap
Frédéric Rodrigo
 
3.2 Les Infrastructures de données spatiales régionales développées dans le p...
grisicap
 
Introduction à CakePHP
Pierre MARTIN
 
Installation apache mandriva
Majid CHADAD
 
rapport_stage_issame
AMAL Issame
 
Node.js et MongoDB: Mongoose
jeromegn
 
Symfony2 Introduction Presentation
Nerd Tzanetopoulos
 
Bases de données spatiales
Guillaume Matheron
 
Introduction au webmapping au-dela de google maps
VisionGÉOMATIQUE2012
 
LINUX Mise en place d’une exploitation industrialisée – automatisée – sécuris...
Jean-Antoine Moreau
 
Media center sous linux
Yannick Pavard
 
Forum aaf preuve sécurité 22 mars 2013 (2)
AssociationAF
 
Simulations et applications réparties sous LINUX
Fdiwa
 
Virtualisation
Said Essatte
 
Offre d'emploi Ingénieur intégration système LINUX H/F
Simstream
 
Mysql Apche PHP sous linux
Khalid ALLILI
 
LinPKI
LINAGORA
 
De la Securité Informatique a l’Identite Numerique 2.0
Eric Herschkorn
 
Cas cliniques module 4 2008
Idris Ahmed
 
Utilisation des réseaux informatiques dans l’enseignement
Kaouther Skiken
 
Publicité

Similaire à PostgreSQL sous linux (20)

PDF
Meetup PostgreSQL Nantes PG10
slardiere
 
PDF
Pgbackrest meetup
Jean-Christophe Arnu
 
PDF
postgrespreentation.pdf
abirtarchoun
 
PDF
Snort implementation
Rokitta Apollonia
 
PDF
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
Open Source Experience
 
PDF
PostgreSQL pour débutants
Lætitia Avrot
 
PDF
Where can buy PostgreSQL Server Programming 2nd Edition Usama Dar ebook with ...
pidroudonkoh
 
PDF
alphorm.com - Formation PostgreSQL administration
Alphorm
 
PDF
Documentation PostgreSQL 9.5.4.pdf
strapol
 
PDF
Nouveautés PostgreSQL 12
slardiere
 
PDF
optimadata.nl-Comment exécuter Postgres sur Docker partie 2.pdf
Pascal Ponzoni
 
PDF
Maintenance du système Linux
EL AMRI El Hassan
 
PDF
Msqpt formation-mysql-et-postgresql
CERTyou Formation
 
PDF
Spectre et Meltdown - Quels impacts pour vos bases de données ?
leboncoin engineering
 
PDF
pgBackRest - pgday.fr
slardiere
 
PDF
optimadata.nl-Comment exécuter Postgres sur Docker partie 3.pdf
Pascal Ponzoni
 
PDF
SQL Debug avec Django @ PyConFr 2015
Rodolphe Quiédeville
 
PDF
Présentation Unix/Linux (mise à jour 2016)
Emmanuel Florac
 
PPT
Linux_Cours.ppt
dallelkhezzaneint
 
PDF
Installer et configurer NAGIOS sous linux
Zakariyaa AIT ELMOUDEN
 
Meetup PostgreSQL Nantes PG10
slardiere
 
Pgbackrest meetup
Jean-Christophe Arnu
 
postgrespreentation.pdf
abirtarchoun
 
Snort implementation
Rokitta Apollonia
 
PostgreSQL, plus qu'une base de données, une plateforme aux multiples usages
Open Source Experience
 
PostgreSQL pour débutants
Lætitia Avrot
 
Where can buy PostgreSQL Server Programming 2nd Edition Usama Dar ebook with ...
pidroudonkoh
 
alphorm.com - Formation PostgreSQL administration
Alphorm
 
Documentation PostgreSQL 9.5.4.pdf
strapol
 
Nouveautés PostgreSQL 12
slardiere
 
optimadata.nl-Comment exécuter Postgres sur Docker partie 2.pdf
Pascal Ponzoni
 
Maintenance du système Linux
EL AMRI El Hassan
 
Msqpt formation-mysql-et-postgresql
CERTyou Formation
 
Spectre et Meltdown - Quels impacts pour vos bases de données ?
leboncoin engineering
 
pgBackRest - pgday.fr
slardiere
 
optimadata.nl-Comment exécuter Postgres sur Docker partie 3.pdf
Pascal Ponzoni
 
SQL Debug avec Django @ PyConFr 2015
Rodolphe Quiédeville
 
Présentation Unix/Linux (mise à jour 2016)
Emmanuel Florac
 
Linux_Cours.ppt
dallelkhezzaneint
 
Installer et configurer NAGIOS sous linux
Zakariyaa AIT ELMOUDEN
 

Plus de Khalid ALLILI (8)

PPTX
Jprofiler
Khalid ALLILI
 
ODP
Logiciels Libres: quel opportunités pour les marocains ?
Khalid ALLILI
 
PPTX
Corba
Khalid ALLILI
 
PDF
Partager wana
Khalid ALLILI
 
PPT
Introduction au Bluetouth
Khalid ALLILI
 
PPT
upload en PHP
Khalid ALLILI
 
PPT
Oracle Database Vault
Khalid ALLILI
 
PPT
Sérialisation, Persistance Et Mapping Objet Relationnel
Khalid ALLILI
 
Jprofiler
Khalid ALLILI
 
Logiciels Libres: quel opportunités pour les marocains ?
Khalid ALLILI
 
Partager wana
Khalid ALLILI
 
Introduction au Bluetouth
Khalid ALLILI
 
upload en PHP
Khalid ALLILI
 
Oracle Database Vault
Khalid ALLILI
 
Sérialisation, Persistance Et Mapping Objet Relationnel
Khalid ALLILI
 

Dernier (20)

PPT
PRESENTATION Paramètres d'urgence en Biochimie.ppt
ayaprodige
 
PPTX
Getting to know you all about me presentation.pptx
kaudmon73
 
PDF
Converging media a new introduction to mass communication Fifth Edition Mcintosh
cymyhfjjcg2796
 
PDF
Coronaviruses Methods and Protocols Second Edition Helena J. Maier
mcxtwie1101
 
PPT
Cours - Classification Engrais.pptCours - Classification Engrais.ppt
BidoMido
 
PDF
Afforestation in India Dimensions of Evaluation 1st Edition H. S. Gupta
errzjvc4654
 
PDF
Handbook of Organizational Creativity 1st Edition Jing Zhou
vddzkclijy199
 
PPTX
Le tableau volé.pptx Film français
Txaruka
 
PDF
Je pige enfin ! L'anglais - Marie-Virginie Speller.pdf
BelhassenJebali
 
PDF
7.01.21-Biologie-de-lallergie-L.GARNIER.pdf
Sophie523294
 
PDF
Uhf Rfid Technologies For Identification And Traceability 1st Edition Jeanmar...
viragasterp1
 
PDF
Always Making Waves Providence University Book 5 C Morgan Ali Parker
ydjmdflz2625
 
PDF
Taiwan a new history Murray A. Rubinstein
ofwlfktuje182
 
PDF
Methods in Helio and Asteroseismology Frank P. Pijpers
upekjcxv870
 
PDF
MEDIA LAW AND ETHICS 4th Edition Roy Moore & Michael Murray
mfypkavt8064
 
PDF
Je pige enfin lespagnol.PDF langue espagnole
BelhassenJebali
 
PDF
The Employment Legacy of the 2012 Olympic Games A Case Study of East London N...
kbtotovgg3330
 
PPTX
REPERES_THEORIQUES_ LEADERSHIP santé.pptx
Sylla5
 
PDF
Future Earth Advancing Civic Understanding Of The Anthropocene 1st Edition Da...
helienassr5p
 
PDF
Interactive Atlas of Human Anatomy v3 0 3rd Edition Frank H. Netter
okerqmeroj3107
 
PRESENTATION Paramètres d'urgence en Biochimie.ppt
ayaprodige
 
Getting to know you all about me presentation.pptx
kaudmon73
 
Converging media a new introduction to mass communication Fifth Edition Mcintosh
cymyhfjjcg2796
 
Coronaviruses Methods and Protocols Second Edition Helena J. Maier
mcxtwie1101
 
Cours - Classification Engrais.pptCours - Classification Engrais.ppt
BidoMido
 
Afforestation in India Dimensions of Evaluation 1st Edition H. S. Gupta
errzjvc4654
 
Handbook of Organizational Creativity 1st Edition Jing Zhou
vddzkclijy199
 
Le tableau volé.pptx Film français
Txaruka
 
Je pige enfin ! L'anglais - Marie-Virginie Speller.pdf
BelhassenJebali
 
7.01.21-Biologie-de-lallergie-L.GARNIER.pdf
Sophie523294
 
Uhf Rfid Technologies For Identification And Traceability 1st Edition Jeanmar...
viragasterp1
 
Always Making Waves Providence University Book 5 C Morgan Ali Parker
ydjmdflz2625
 
Taiwan a new history Murray A. Rubinstein
ofwlfktuje182
 
Methods in Helio and Asteroseismology Frank P. Pijpers
upekjcxv870
 
MEDIA LAW AND ETHICS 4th Edition Roy Moore & Michael Murray
mfypkavt8064
 
Je pige enfin lespagnol.PDF langue espagnole
BelhassenJebali
 
The Employment Legacy of the 2012 Olympic Games A Case Study of East London N...
kbtotovgg3330
 
REPERES_THEORIQUES_ LEADERSHIP santé.pptx
Sylla5
 
Future Earth Advancing Civic Understanding Of The Anthropocene 1st Edition Da...
helienassr5p
 
Interactive Atlas of Human Anatomy v3 0 3rd Edition Frank H. Netter
okerqmeroj3107
 

PostgreSQL sous linux

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