Présentation du SGBDR postgreSQL Présentation Générale

publicité
Présentation Générale
PostgreSQL est un SGBDR étendu, c’est à dire qu’il inclut des notions
d’un SGBDO
Présentation du SGBDR postgreSQL
C’est un produit libre (licence BSD) qui l’on peut télécharger à partir du
site http://www.postgresql.org
Fred Hémery
C’est un SGBDR multi-utilisateurs et qui fonctionne en mode
client/serveur
IUT Béthune
Département
Réseaux & Télécommunications
Il introduit les concepts suivants :
I
I
Base de Données (I4) — 05/06
I
I
la notion de classe
la notion d’héritage
la notion de type
la notion de fonction
Comparable à Oracle 9i disponible lui aussi gratuitement, mais pas libre
logo
(IUT Béthune — Département R&T)
Présentation du SGBDR postgreSQL
Base de Données (I4) — 05/06
1 / 21
logo
(IUT Béthune — Département R&T)
Présentation du SGBDR postgreSQL
Base de Données (I4) — 05/06
2 / 21
Architecture
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.
Un site est une machine sur laquelle est installée le serveur postgresql
1986-1994 : Toujours à Berkeley, Michael Stonebraker dirige une équipe
qui développe un SGBDO appelé Postgres. La société Illustra
commercialise le produit.
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 :
I
I
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.
une nouvelle base de données
un 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.
2000 : V7.0 utilisant un langage SQL norme 92 (SQL2), actuellement v8.1
logo
(IUT Béthune — Département R&T)
Présentation du SGBDR postgreSQL
Base de Données (I4) — 05/06
3 / 21
Architecture
logo
(IUT Béthune — Département R&T)
Présentation du SGBDR postgreSQL
Base de Données (I4) — 05/06
5 / 21
Architecture
un processus client peut avoir une ou plusieurs connexions avec le SGBD
postgresql
Une session d’utilisation du SGBD postgresql met en jeu les processus
suivants :
I
I
I
un processus qui gère les demandes de connexion au SGBD (postmaster).
Celui ci crée
un processus qui gère la session entre le SGBD et
un processus client (psql par exemple) qui a initié la session.
logo
(IUT Béthune — Département R&T)
Présentation du SGBDR postgreSQL
Base de Données (I4) — 05/06
7 / 21
Le catalogue système
I
I
Les utilisateurs standards qui utilisent le SGBD
Les administrateurs qui gèrent les données (catalogue système) système
du SGBD : les méta-données.
I
I
I
Cela signifie que l’on peut les modifier avec une requête SQL
Il est cependant préférable d’utiliser les commandes prévues
Par exemple la table qui gère les utilisateurs est pg_shadow, une vue est
disponible pour les utilisateurs de base (pg_user).
F La requête CREATE USER username va modifier la table pg_shadow
Autre exemple la table pg_database
logo
F La requête CREATE DATABASE basename modifie la table pg_database
(IUT Béthune — Département R&T)
Base de Données (I4) — 05/06
9 / 21
Présentation du SGBDR postgreSQL
Base de Données (I4) — 05/06
c r e a t e u s e r [ −h machine ] ( commande s h e l l )
CREATE USER nom PASSWORD ’ motPasse ’ CREATEUSER ( commande SQL)
Création d’une base de données
c r e a t e d b [ −h machine ] [−−encoding encoding ]
[ −−owner owner ] [ . . . ] ( commande s h e l l )
CREATE DATABASE name
[ [ WITH ] [ OWNER [ = ] dbowner ] [ TEMPLATE [ = ] t e m p l a t e ]
[ ENCODING [ = ] encoding ]
[ TABLESPACE [ = ] t a b l e s p a c e ] ] ( commande SQL)
Les administrateurs (super-utilisateurs) sont les seuls qui peuvent créer
d’autres utilisateurs
Les 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.
I
Présentation du SGBDR postgreSQL
Création d’un utilisateur
Avec Postgresql
I
(IUT Béthune — Département R&T)
Le catalogue système
Dans un SGBD il y a deux types d’utilisateurs
I
logo
11 / 21
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)
logo
Présentation du SGBDR postgreSQL
Base de Données (I4) — 05/06
13 / 21
Le catalogue système
Structure du SGBD : Les schémas
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
pg_aggregate
pg_attrdef
pg_attribute
pg_cast
pg_class
pg_constraint
pg_conversion
pg_database
pg_depend
pg_description
pg_group
pg_index
pg_inherits
pg_language
pg_largeobject
pg_listener
pg_namespace
pg_opclass
pg_operator
pg_proc
pg_rewrite
pg_shadow
pg_statistic
pg_trigger
pg_type
Contenu
aggregate functions
column default values
table columns ("attributes", "fields")
casts (data type conversions)
tables, indexes, sequences ("relations")
check constraints, unique / primary key constraints, foreign key constraints
encoding conversion information
databases within this database cluster
dependencies between database objects
descriptions or comments on database objects
groups of database users
additional index information
table inheritance hierarchy
languages for writing functions
large objects
asynchronous notification
namespaces (schemas)
index access method operator classes
operators
functions and procedures
query rewriter rules
database users
optimizer statistics
triggers
data types
(IUT Béthune — Département R&T)
Présentation du SGBDR postgreSQL
Base de Données (I4) — 05/06
Avec Postgresql
I
Le SGBD gère un cluster de bases de données.
F
I
I
Les utilisateurs et les groupes sont les seules données partagées par
l’ensemble des bases de données
Une 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.
Le schéma peut être vu comme un espace de nommage
La structure de schéma est utile pour plusieurs raisons :
I
I
I
logo
15 / 21
Maintenance BD
Permet à plusieurs utilisateurs de partager la même base de données sans
interférences.
Permet d’organiser les objets contenus dans la base de données en
entités logiques
Les 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
logo
17 / 21
Sauvegarde et Restauration BD
Un autre aspect de la sécurité est de sauvegarder les données sur un
autre support (redondance).
Il existe des commandes qui vont permettre de maintenir l’espace utilisé
par le stockage des données
I
Récupération de l’espace occupé par les lignes qui ont été supprimées ou
modifiées
F
I
I
Le dump de la base de données
I
La restauration de la base de données
I
La restauration d’une base de données par cette méthode n’inclut pas sa
création qui doit être faite avant avec
pg_dump dbname > outfile.sql
psql dbname < infile.sql
VACUUM
Maintenir des statistiques d’utilisations des données pour faciliter le travail
de l’algorithme de planification et de résolution des requêtes
F
createdb -T template0 dbname
VACUUM ANALYSE
La sauvegarde du système de fichiers de la base de données
I
Nettoyer le travail des éventuelles anciennes requêtes mal terminées
F
tar -cf backup.tar /usr/local/pgsql/data
VACUUM FREEZE
I
I
Il faut pour cela que le serveur de base de données soit arrêté
La taille de la sauvegarde peut être plus importante que le dump (index
recalculé et non stocké)
logo
(IUT Béthune — Département R&T)
Présentation du SGBDR postgreSQL
Base de Données (I4) — 05/06
19 / 21
logo
(IUT Béthune — Département R&T)
Présentation du SGBDR postgreSQL
Base de Données (I4) — 05/06
21 / 21
Téléchargement