postgres - LP GSR 2007/2008

publicité
Bases de données
Open Source
Pierre Crépieux
13/03/2008
Plan
Généralités sur les bases de données relationnelles
A quoi serrent elles ?
Pourquoi un modèle relationnel ?
L'Open Source
Qu'est ce que c'est ?
Pourquoi utiliser une base de données Open Source
Les bases de données Open source
PostgreSQL
MySQL
…
Conclusion
2
Groupe France Télécom
Généralités sur les bases de données
relationnelles
3
Groupe France Télécom
Généralités
• Base de données
Une base de données est un ensemble structuré d'informations.
• Système de Gestion de Base de Données
Un système de gestion de base de données est un ensemble d'outils
permettant :
• La mise a jour des données (ajout, suppression, modification),
• La consultation des données,
• La maintenance des données,
dans un environnement généralement "Multi-Utilisateurs"
4
Groupe France Télécom
Généralités
Les bases de données font l'objet d'un grand intérêt depuis
les années 60.
• Le premier système de BD a été conçu pour la gestion des données du
projet Apollo de la NASA (1961)
• Il se basait sur un modèle hiérarchique.
• Le modèle hiérarchique n'étant pas exempt de limitations, d'autres travaux
ont mené à définir un modèle en réseau [Codasyl71].
• En 1970, un article de E. F. Codd pose les bases du modèle relationnel
[Codd70]
5
Groupe France Télécom
Généralités
Juin 1970, « A Relational Model of Data for Large Shared
Data Banks" : L'article de E. F. Codd pose les fondements du
modèle relationnel. Edgar Franck
• Utiliser la théorie ensembliste ainsi que la logique du premier ordre
pour mettre au point un système de gestion de base de données.
2 principaux objectifs
• maximiser l'indépendance vis-à-vis de la représentation interne des
données (même la définition de la base de données est conservée
par le biais de relations)
• adresser la cohérence des données
6
Groupe France Télécom
Généralités
Le premier système relationnel a été développé dans les années 70
(System/R).
– Afin de manipuler les données qui y étaient stockées le language
SEQUEL a été mis au point.
SEQUEL=Structured English Query Language
Ce langage est ensuite devenu le Structured Query Language: SQL
SQL a été adopté comme recommandation par l'institut de
normalisation américaine (ANSI) en 1986, puis comme norme
internationale par l'ISO en 1987 sous le nom de ISO/CEI 9075 Technologies de l'information - Langages de base de données SQL.
7
Groupe France Télécom
Généralités
Les propriétés ACID sont quatre propriétés essentielles
d'un sous-système de traitement de transactions d'un
système de gestion de base de données. Le mot ACID
est un acronyme référant aux propriétés suivantes :
Atomicité : une transaction doit soit être complètement
validée ou complètement annulée.
Cohérence : aucune transaction ne peut sortir de la base
de données dans un état incohérent.
Isolation : une transaction ne peut voir aucune autre
transaction en cours d'exécution.
Durabilité : une probabilité suffisante que la base de
données ne perdra aucune transaction validée.
Elle sont décrites dans la norme ISO/IEC 10026-1
8
Groupe France Télécom
Théorie
Table = Relation
Contrairement à ce que l'on peut parfois imaginer, le terme
relationnel ne vient pas du fait que l'on peut mettre en relation
plusieurs tables.
ex : select * from personnes, immatriculations where personnes.id =
immatriculations.personne_id
Soit les ensembles E1, E2 et E3, la relation R est un sous ensemble
du produit cartésien E1 X E2 X E3. Dans ce cas R est une relation
ternaire constituée de triplets.
(e1,e2,e3 )
9
є R
Groupe France Télécom
Théorie
L'algèbre relationnel est aux relations ce que
l'arithmétique est aux entiers.
Cas des immatriculations:
Plaque
| Marque
| Propriétaire
-----------------------------------------------------------------------------------XTC-157
| Opel Vectra
| Paul Lenoir
WTD-324
| Citroen
| Paul Lenoir
CRT-143
| Mitsubishi
| Elodie Detor
RTE-666
| Mercedes
| RobVilain
L'ensemble des véhicule que possède Paul Lenoir est donné par:
• { (v1,v2):(v1,v2,Pol Lenoir) є R}
10
Groupe France Télécom
Open Source
11
Groupe France Télécom
Open source
10 critères:
– Libre redistribution,
– Disponibilité du code source,
– Autorisation de faire des modifications et travaux dérivés,
– Intégrité du code source de l'auteur,
– Pas de discrimination envers des personnes,
– Pas de discrimination sur l'usage,
– Distribution de la licence,
– Licence non spécifique à un produit,
– Licence non restrictive vis-à-vis d'autres logiciels,
– Licence technologiquement neutre.
12
Groupe France Télécom
Free Software
4 libertés:
– Liberté d'utiliser un programme quelque soit l'usage (freedom
0).
– Liberté d'étudier le fonctionnement d'un programme et de
l'adapter à ses besoins. (freedom 1). L'accès au code source est
une précondition.
– Liberté de redistribuer le logiciel pour aider son prochain
(freedom 2).
– Liberté d'améliorer le programme, et de distribuer ses
améliorations pour en faire bénéficier l'ensemble de la
communauté. (freedom 3). L'accès au code source est une
précondition.
13
Groupe France Télécom
Open Source / Free Software
Open Source
Open Source Initiative (OSI) a été fondée en 1998.
Définition établie à l'origine par Bruce Perens
Conduit une politique plus adaptée aux réalités économiques
et techniques
≠
Free Software
La Free Software Foundation est apparue en 1985
Sous l'impulsion de Richard Stallman
“Open source is a development methodology; free software is
a social movement.”
14
Groupe France Télécom
Offres propriétaires, commerciales
• Couts des licences
• manque de souplesse
• Complexité d'administration
•…
• Force de vente
• Base de clients établie
• Pérennité
• Absence présumée de
risques de défaillance
• Sécurisant pour le Direction
Technique
• Support Technique
• Fonctionnalités
•…
15
Groupe France Télécom
Offre Open Source
• Absence de licence
• Disponibilité du code
– Modifications possibles
– Réactivité de la communauté
• Support
– Importante communauté
• Manque de visibilité pour les
décideurs
• Couts cachés
– Développement,
– Intégration,
– Prise en mains.
• Support
• Sécurité
– contractualisation ???
16
Groupe France Télécom
Les bases de données Open source
17
Groupe France Télécom
PostgreSQL
PostgreSQL est un moteur de base de
données issu de travaux menés à
l'université de Berkeley
• Le projet initial s'appelait POSTGRES
et était dirigé par Michael Stonebraker
(1985)
• Michael Stonebracker stop le projet en
1993
• Le projet est ensuite repris par 2
étudiants, puis une communauté
grandissante.
• En 1995, le suppport du language SQL
est ajouté, le projet devient Postgres95
• En 1996, il devient PostgreSQL
Licence BSD
18
Développement 100% communautaire !
Groupe France Télécom
Fonctionnalités
• Base de données relationnelle-objet.
– Il est possible de faire hériter une table d'une autre table
• Base de données garantissant les propriétés ACID
• Très respectueux des normes existantes
• Permet de définir des procédures stockées ainsi que des triggers.
• PITR (Point In Time Recovery)
• Tablespaces
• Nombreuses API
• Possibilité de définir ces propres types
• Multi-plateforme
19
Groupe France Télécom
Processus
Le serveur consiste principalement en 2 types de processus:
– postmaster
• Il s'agit du serveur "multi-utilisateur".
• Toute application cliente doit se connecter au postmaster qui va créer un
nouveau process (postgres) pour gérer cette connexion.
• Il gère également les communications entre les processus qu'il a instancié.
– postgres
• C'est un processus dédié à une connexion qui va traiter les requêtes du client.
Ils sont en charge de l'accès aux données hébergées sur le
serveur
– Un processus postmaster gère les données d'un seul cluster de base de données.
– Plusieurs processus postmaster peuvent fonctionner simultanément sur une même
machine (il suffit qu'il ait des zone de stockage et des ports de communication différents).
20
Groupe France Télécom
Outils
initdb
– Créé un cluster de base de données
• créé une arborescence sur le système de fichier afin de stocker les
données de chaque base de données
createdb (dropdb)
– crée une base de donnée
createuser (dropuser)
– crée un nouvel utilisateur
pg_dump (pg_dumpall)
– sauvegarde une base de données
psql
– client en ligne de commande permettant de se connecter un
serveur PostgreSQL
21
Groupe France Télécom
Architecture de PostgreSQL
22
Groupe France Télécom
Mise en oeuvre
/etc/init.d/postgresql start
createuser -U postgres postuser
createdb -U postuser tp
psql -U postuser -l
Name | Owner | Encoding
-------------------------+-------------+--------------| tp
| postuser | SQL_ASCI
I postgres
| postgres | SQL_ASCI
I template0
| postgres | SQL_ASCI
I template1
| postgres | SQL_ASCI
(4 rows)
23
Groupe France Télécom
Mise en oeuvre
psql -U postuser tp
> \h CREATE TABLE
> CREATE TABLE people ( id SERIAL NOT NULL, first_name TEXT
NOT NULL, last_name TEXT NOT NULL, email_address TEXT NOT
NULL, PRIMARY KEY(id), UNIQUE(email_address) );
NOTICE: CREATE TABLE will create implicit sequence "people_id_seq" for serial column "people.id" NOTICE:
CREATE TABLE / PRIMARY KEY will create implicit index "people_pkey" for table "people" NOTICE: CREATE
TABLE / UNIQUE will create implicit index "people_email_address_key" for table "people"
> Insert into people (first_name, last_name,email_address) values
('pierre', 'crépieux','pierre.crepieux@.... .com');
> select first_name,last_name from people;
24
Groupe France Télécom
MVCC
MVCC (Multiversion Concurrency
Control )
– Chaque transaction voit un snapshot de la base de données
(une version donnée)
• permet de garantir l'isolation des transaction
– Grâce au MVCC, les "verrous" d'accès en lecture ne bloquent
pas les verrous d'accès en écriture sur les données.
• permet d'optimiser la concurrence des accès
25
Groupe France Télécom
Isolation
Le standard SQL définit 4 niveaux d'isolation dépendant de 3
phénomènes à éviter entre transactions concurrentes:
• dirty read:
– Une transaction peut lire des données écrites par une transaction concurrente
"non commitée".
• nonrepeatable read
– Une transaction relit une donnée qu'elle a lu et constate que cette dernière a été
modifiée par une autre transaction qui a "commité" entretemps.
• phantom read
– Une transaction ré-execute une requête renvoyant un ensemble de tuples et
constate que l'ensemble est différent du précédent.
– Il diffère du précédent car les données qui avaient déjà été lu n'ont pas changée,
par contre il y en a plus (ou moins)
26
Groupe France Télécom
Isolation
Isolation Level
Dirty Read
Non repeatable Phantom read
read
Read
uncommitted
Possible
Possible
Possible
Read
committed
Not possible
Possible
Possible
Repeatable
read
Not possible
Not possible
Possible
Serializable
Not possible
Not possible
Not possible
27
Groupe France Télécom
WAL
WAL (Write Ahead Log)
L'idée est que les modifications des fichiers de données
(tables, indexes) doivent être écrites sur disque après avoir
été loggées.
– un log décrivant ces changements a été flushé sur disque.
– Il n'est plus nécessaire d'écrire les pages de données sur le
disque à chaque commit de transaction
– Il est possible de reconstituer la base de donnée grâce à ce log
(REDO log)
– le log étant séquentielle, l'activité disque est grandement réduite
28
Groupe France Télécom
Architecture logicielle
29
Groupe France Télécom
Architecture logicielle
30
Groupe France Télécom
Conclusion
31
Groupe France Télécom
Téléchargement