logo
Présentation du SGBDR postgreSQL
Fred Hémery
IUT Béthune
Département
Réseaux & Télécommunications
Base de Données (I4) — 05/06
(IUT Béthune — Département R&T) Présentation du SGBDR postgreSQL Base de Données (I4) — 05/06 1 / 21
logo
Présentation Générale
PostgreSQL est un SGBDR étendu, c’est à dire qu’il inclut des notions
d’un SGBDO
C’est un produit libre (licence BSD) qui l’on peut télécharger à partir du
site http://www.postgresql.org
C’est un SGBDR multi-utilisateurs et qui fonctionne en mode
client/serveur
Il introduit les concepts suivants :
Ila notion de classe
Ila notion d’héritage
Ila notion de type
Ila notion de fonction
Comparable à Oracle 9i disponible lui aussi gratuitement, mais pas libre
(IUT Béthune — Département R&T) Présentation du SGBDR postgreSQL Base de Données (I4) — 05/06 2 / 21
logo
Historique
1977-1985 : A l’origine un projet universitaire, Université de Californie à
Berkeley basé sur le produit Ingres commercialisé par la société
Relational Technologies/Ingres Corporation.
1986-1994 : Toujours à Berkeley, Michael Stonebraker dirige une équipe
qui développe un SGBDO appelé Postgres. La société Illustra
commercialise le produit.
1994-1995 : Deux étudiants Jolly Chen puis Andrew Yu incorporent au
projet le langage SQL. l’application s’appelle Postgres95
1996 : Le projet quitte Berkeley, MARC FOURNIER in Canada, THOMAS
LOCKHART en Pasadena, California, VADIM MIKHEEV en Krasnoyarsk,
Russia, et Bruce Momjian en Philadelphia, Pennsylvania reprennent les
250,000 lignes de code C. Ils renomment le projet postgresql version 6.0.
2000 : V7.0 utilisant un langage SQL norme 92 (SQL2), actuellement v8.1
(IUT Béthune — Département R&T) Présentation du SGBDR postgreSQL Base de Données (I4) — 05/06 3 / 21
logo
Architecture
Un site est une machine sur laquelle est installée le serveur postgresql
L’administrateur du SGBD (postgres) est celui qui est propriétaire des
programmes, du répertoire et des bases de données qu’il contient. Il a
tous les privilèges sur le SGBD. Il peut notamment créer :
Iune nouvelle base de données
Iun nouvel utilisateur
Sous UNIX pour créer un nouveau "cluster de bases de données" on
utilise la commande initdb -D /nom/du/repertoire.
Généralement avec une distribution Linux, le premier lancement du
SGBD postgresql exécutera par défaut la commande initdb.
(IUT Béthune — Département R&T) Présentation du SGBDR postgreSQL Base de Données (I4) — 05/06 5 / 21
logo
Architecture
Une session d’utilisation du SGBD postgresql met en jeu les processus
suivants :
Iun processus qui gère les demandes de connexion au SGBD (postmaster).
Celui ci crée
Iun processus qui gère la session entre le SGBD et
Iun processus client (psql par exemple) qui a initié la session.
(IUT Béthune — Département R&T) Présentation du SGBDR postgreSQL Base de Données (I4) — 05/06 7 / 21
logo
Architecture
un processus client peut avoir une ou plusieurs connexions avec le SGBD
postgresql
(IUT Béthune — Département R&T) Présentation du SGBDR postgreSQL Base de Données (I4) — 05/06 9 / 21
logo
Le catalogue système
Dans un SGBD il y a deux types d’utilisateurs
ILes utilisateurs standards qui utilisent le SGBD
ILes administrateurs qui gèrent les données (catalogue système) système
du SGBD : les méta-données.
Avec Postgresql
ILes administrateurs (super-utilisateurs) sont les seuls qui peuvent créer
d’autres utilisateurs
ILes autres utilisateurs (standards) peuvent ou non créer des bases de
données
Les méta-données sont stockées dans des tables classiques.
ICela signifie que l’on peut les modifier avec une requête SQL
IIl est cependant préférable d’utiliser les commandes prévues
IPar exemple la table qui gère les utilisateurs est pg_shadow, une vue est
disponible pour les utilisateurs de base (pg_user).
FLa requête CREATE USER username va modifier la table pg_shadow
IAutre exemple la table pg_database
FLa requête CREATE DATABASE basename modifie la table pg_database
(IUT Béthune — Département R&T) Présentation du SGBDR postgreSQL Base de Données (I4) — 05/06 11 / 21
logo
Le catalogue système
Création d’un utilisateur
createuser [ −h machine ] (commande shell )
CREATE USER nom PASSWORD ’motPasse ’ CREATEUSER (commande SQL)
Création d’une base de données
createdb [ −h machine ] [−−encoding encoding ]
[−−owner owner ] [ . . . ] ( commande shell )
CREATE DATABASE name
[ [ WITH ] [ OWNER [=] dbowner ][ TEMPLATE [=] template ]
[ ENCODING [=] encoding ]
[ TABLESPACE [=] tablespace ] ]( commande SQL)
La suppression d’un utilisateur
dropuser
DROP USER name
La suppression d’une base de données
dropdb
DROP DATABASE name
(IUT Béthune — Département R&T) Présentation du SGBDR postgreSQL Base de Données (I4) — 05/06 13 / 21