31
Bases de données Open Source Pierre Crépieux 13/03/2008

Bases de données Open Source

  • Upload
    alban

  • View
    38

  • Download
    1

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Bases de données Open Source

Bases de donnéesOpen Source

Pierre Crépieux

13/03/2008

Page 2: Bases de données Open Source

2 Groupe France Télécom

Plan

Généralités sur les bases de données relationnellesA quoi serrent elles ?Pourquoi un modèle relationnel ?

L'Open SourceQu'est ce que c'est ?Pourquoi utiliser une base de données Open Source

Les bases de données Open source

PostgreSQLMySQL…

Conclusion

Page 3: Bases de données Open Source

3 Groupe France Télécom

Généralités sur les bases de données relationnelles

Page 4: Bases de données Open Source

4 Groupe France Télécom

Généralités

• Base de donnéesUne 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"

Page 5: Bases de données Open Source

5 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]

Page 6: Bases de données Open Source

6 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

Page 7: Bases de données Open Source

7 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.

Page 8: Bases de données Open Source

8 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

Page 9: Bases de données Open Source

9 Groupe France Télécom

ThéorieTable = 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 ) є R

Page 10: Bases de données Open Source

10 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}

Page 11: Bases de données Open Source

11 Groupe France Télécom

Open Source

Page 12: Bases de données Open Source

12 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.

Page 13: Bases de données Open Source

13 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.

Page 14: Bases de données Open Source

14 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.”

Page 15: Bases de données Open Source

15 Groupe France Télécom

Offres propriétaires, commerciales

• 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•…

• Couts des licences• manque de souplesse• Complexité d'administration•…

Page 16: Bases de données Open Source

16 Groupe France Télécom

Offre Open Source

• Absence de licence• Disponibilité du code

– Modifications possibles– Réactivité de la communauté

• Support– Importante communauté

• Sécurité

• Manque de visibilité pour les décideurs• Couts cachés

– Développement,– Intégration,– Prise en mains.

• Support– contractualisation ???

Page 17: Bases de données Open Source

17 Groupe France Télécom

Les bases de données Open source

Page 18: Bases de données Open Source

18 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

Développement 100% communautaire !

Page 19: Bases de données Open Source

19 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

Page 20: Bases de données Open Source

20 Groupe France Télécom

ProcessusLe 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).

Page 21: Bases de données Open Source

21 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

Page 22: Bases de données Open Source

22 Groupe France Télécom

Architecture de PostgreSQL

Page 23: Bases de données Open Source

23 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)

Page 24: Bases de données Open Source

24 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;

Page 25: Bases de données Open Source

25 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

Page 26: Bases de données Open Source

26 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)

Page 27: Bases de données Open Source

27 Groupe France Télécom

Isolation

Isolation Level Dirty Read Non repeatable read

Phantom 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

Page 28: Bases de données Open Source

28 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

Page 29: Bases de données Open Source

29 Groupe France Télécom

Architecture logicielle

Page 30: Bases de données Open Source

30 Groupe France Télécom

Architecture logicielle

Page 31: Bases de données Open Source

31 Groupe France Télécom

Conclusion