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
logo
Le catalogue système
Le SGBD postgresql gère ses données dans une base de données
particulière. Les tables qui la composent ont un nom qui commence par
les lettres “pg_”
Nom de la table Contenu
pg_aggregate aggregate functions
pg_attrdef column default values
pg_attribute table columns ("attributes", "fields")
pg_cast casts (data type conversions)
pg_class tables, indexes, sequences ("relations")
pg_constraint check constraints, unique / primary key constraints, foreign key constraints
pg_conversion encoding conversion information
pg_database databases within this database cluster
pg_depend dependencies between database objects
pg_description descriptions or comments on database objects
pg_group groups of database users
pg_index additional index information
pg_inherits table inheritance hierarchy
pg_language languages for writing functions
pg_largeobject large objects
pg_listener asynchronous notification
pg_namespace namespaces (schemas)
pg_opclass index access method operator classes
pg_operator operators
pg_proc functions and procedures
pg_rewrite query rewriter rules
pg_shadow database users
pg_statistic optimizer statistics
pg_trigger triggers
pg_type data types
(IUT Béthune — Département R&T) Présentation du SGBDR postgreSQL Base de Données (I4) — 05/06 15 / 21
logo
Structure du SGBD : Les schémas
Avec Postgresql
ILe SGBD gère un cluster de bases de données.
FLes utilisateurs et les groupes sont les seules données partagées par
l’ensemble des bases de données
IUne base de données contient un ou plusieurs schémas qui sont
accessibles ou non (droits d’accès) au travers d’une même connexion.
ILe schéma peut être vu comme un espace de nommage
La structure de schéma est utile pour plusieurs raisons :
IPermet à plusieurs utilisateurs de partager la même base de données sans
interférences.
IPermet d’organiser les objets contenus dans la base de données en
entités logiques
ILes applications tiers peuvent être isolées dans un schéma particulier.
Le concept de Schéma est analogue à celui des répertoires pour les
systèmes d’exploitation, à la différence que les schémas ne sont pas
obligatoire dans un SGBD.
(IUT Béthune — Département R&T) Présentation du SGBDR postgreSQL Base de Données (I4) — 05/06 17 / 21
logo
Maintenance BD
Il existe des commandes qui vont permettre de maintenir l’espace utilisé
par le stockage des données
IRécupération de l’espace occupé par les lignes qui ont été supprimées ou
modifiées
FVACUUM
IMaintenir des statistiques d’utilisations des données pour faciliter le travail
de l’algorithme de planification et de résolution des requêtes
FVACUUM ANALYSE
INettoyer le travail des éventuelles anciennes requêtes mal terminées
FVACUUM FREEZE
(IUT Béthune — Département R&T) Présentation du SGBDR postgreSQL Base de Données (I4) — 05/06 19 / 21
logo
Sauvegarde et Restauration BD
Un autre aspect de la sécurité est de sauvegarder les données sur un
autre support (redondance).
ILe dump de la base de données
pg_dump dbname > outfile.sql
ILa restauration de la base de données
psql dbname < infile.sql
ILa restauration d’une base de données par cette méthode n’inclut pas sa
création qui doit être faite avant avec
createdb -T template0 dbname
La sauvegarde du système de fichiers de la base de données
tar -cf backup.tar /usr/local/pgsql/data
IIl faut pour cela que le serveur de base de données soit arrêté
ILa taille de la sauvegarde peut être plus importante que le dump (index
recalculé et non stocké)
(IUT Béthune — Département R&T) Présentation du SGBDR postgreSQL Base de Données (I4) — 05/06 21 / 21
1 / 2 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !