La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

PostgreSQL Introduction Jean-Jacques LE COZ. Histoire Université de Berkeley (Californie) Ancêtre de PostgreSQL : Ingres (1977-1985) Postgres : projet.

Présentations similaires


Présentation au sujet: "PostgreSQL Introduction Jean-Jacques LE COZ. Histoire Université de Berkeley (Californie) Ancêtre de PostgreSQL : Ingres (1977-1985) Postgres : projet."— Transcription de la présentation:

1 PostgreSQL Introduction Jean-Jacques LE COZ

2 Histoire Université de Berkeley (Californie) Ancêtre de PostgreSQL : Ingres (1977-1985) Postgres : projet de base de données objet (1986-1994) Postgres95 : ajout de fonctionnalité SQL (1994-1995) Projet PostgreSQL A partir de 1996 250 000 lignes de code 1999 : total des donations = 25 millions de $ Open source licence BSD

3 Postgresql SGBDR Implémentations Norme SQL1 (SQL) Norme SQL2 (Fonctions, trigger, procédures stockées,...) Quelques aspects de la norme SQL3 (orientations objet) www.postgresql.org Réplication Transaction (OLTP) APIs pour la programmation Tuning

4 Licence Open Source Licence BSD (logiciel et documentation) Utilisation, copie, modification, distribution Pas de droits Pas d'accord préalable Obligation d'inscrire deux paragraphes Non responsabilité de l'Université de Californie Mauvais fonctionnement Garantie

5 Programmation Langages ADA, C, C++, C#, Java, Perl, TCL/TK, PHP, Python, Ruby APIs LIBPQ, LIBPGEASY, ECPG, LIBPQ++ ODBC, JDBC (natif) PGTCLSH SQL embarqué ECPG/C - C++

6 PostgreSQL et Java Communauté dédiée à JDBC URL : jdbc.postgresql.org Versions de driver 2, 3 et bientôt 4 Haute disponibilité avec une solution Java Surcouche intergicielle (Middleware) Produit SEQUOIA (sequoia.continuent.org) Licence libre Apache V2 Basé sur le projet Objectweb C-JDBC Equilibrage de charge Tolérance de panne

7 Installation Site officiel www.postgresql.org Nombreux sites miroirs Packages format tar.gz format RPM Installation $> rpm -ivh package.rpm Tous les packages en respectant les dépendances

8 Le dba postgresql Administrateur par défaut /etc/passwd user : postgres Démarrage de l'instance ou cluster (démon postmaster) Arrêt de l'instance Tuning Création des utilisateurs et accord des droits Sauvegardes

9 Création d'une instance Création de l'instance $> initdb -D /chemin/data [options] Démarrage postmaster -i -D /chemin/data &[options] Par défaut sur le port 5432 ( -p numéro de port ) Création d'utilisateurs $>createuser [options] Création d'une base de données (1 instance = n bases) $>createdb nomBase [options]

10 Architecture

11 Configuration Le fichier pg_hba.conf Détermine les clients et leur mode d'authentification Détermine les types d'accès des clients Le fichier pg_ident.conf Détermine la correspondance entre des noms d'utilisateurs système et des noms d'utilisateurs postgres.

12 Administration (1) Sécurité : Le fichier pg_hba.conf Types d'authentification Valeurs : trust, password, md5, crypt Connexions Types : UNIX socket, TCP/IP Valeurs : local ou host Bases de données Valeurs : all ou nom d'une base Clients Valeurs : aucune, adresse IP d'un host, adresse IP d'un réseau

13 Administration (2) Sauvegarde $>pg_dumpall > filename $>pg_dump nom de BD > filename $>pg_dumpall | gzip > filename.gz $>pg_dumpall | split -b 1m – filename Restauration $>psql nom de BD < filename $>gunzip -c filename.gz | psql $>cat filename.* | psql

14 Administration (3) Nétoyage des données obsolètes $>vacuumdb -z -d nom de BD -U username Performances (shared_buffers) Linux $>echo 33554432 >/proc/sys/kernel/shmall $>echo 33554432 >/proc/sys/kernel/shmmax PostgreSQL $>shared_buffers = 4096 $>sort_mem = 8192 $>max_connections = 8

15 Interface graphique (1) Pgaccess Écrit en C/C++ Permet : Création de tables Mise à jour : insert, update, delete Sélection : select Utilisation $>pgaccess &

16 Interface graphique (2) Squirrel Écrit en Java Il faut un driver JDBC (version 3) Permet la : Création de tables Mise à jour : insert, update, delete Sélection : select Utilisation $>squirrel-sql.sh &

17 Interface graphique (3) PGADMIN III Multi-plateformes MS-Windows 2000, XP GNU/Linux FreeBSD MacOS X et SUN OS en développement Support des langues : 20 langues supportées Accès natif à PostgreSQL Tous les objets postgres sont pris en compte

18 Interface graphique (4) SQL Explorer Plugin pour Eclipse Tous les SGBDR Avec JDBC Requêtes SQL

19 Interface graphique (5) Azzurri Clay Plugin pour Eclipse Tous les SGBDR Avec JDBC Modèlisation de base de données Génération automatique de schéma

20 Interface texte psql Utilisation $>psql nom base de données [ options ] \q (quit) \d (liste les tables) \? (aide) =>ordres sql;

21 Inerface graphique pour la commande explain Produit rhdb-explain Éditeur RedHat Produit sous forme graphique l'ensemble des opérations effectué par le moteur de PostgreSQL pour résoudre une requête SQL. Site web: www.redhat.com Compilation des sources par: $>ant dist Exécution par $>java -jar rhdb-explain/dist/rhdb-explain.jar &

22 Création d'une base de données Il faut être utilisateur ou administrateur postgresql Avoir le droit de création de BD $>createdb nombase $>psql nombase =>create table essai(id int, libelle varchar(20)); =>insert into essai values (111,'ABCD'); =>select * from essai;

23 Clefs primaires et étrangères Création d'une clef primaire CREATE TABLE Ra (nomColonneA type sql primary key,...); Création d'une clef étrangère CREATE TABLE Rb (..., nomColonneB type sql,..., foreign key(nomColonneB) references Ra (nomColonneA);

24 Gestion des contraintes d'intégrité Intégrité référentielle Quand une information dans une table en référence une autre dans une autre table et que le SGBDR assure cette relation. Ces informations doivent être synchronisées. Exemple : Le SGBDR garantie qu'il est impossible de créer une commande pour un client inexistant. Table commande(numero, date, #code client) Table client(code, nom,...)

25 Gestion des contraintes d'intégrité Intégrité référentielle (suite) Problème de la mise à jour Ordres SQL update et delete Options sur un update de clef primaire No action ou Restrict, Cascade, Set null, Set default Options sur un delete de clef primaire No action ou Restrict, Cascade, Set null, Set default Problème de la suppression de table Odre SQL drop table

26 PostgreSQL : limites (1) Taille maximum pour une base ? Sans limite. (il existe des bases en production de 4 TB). Taille maximum pour une table ? 32 TB. Taille maximum pour une colonne ? 1.6 TB. Taille maximum pour un champ ? 1 GB.

27 PostgreSQL : limites (2) Nombre maximum de lignes pour une table ? Sans limite. Nombre maximum de colonnes dans une table ? 250-1600 cela dépend du type des colonnes. Nombre maximum d'indexes sur une table ? Sans limite.

28 Conclusion Article de « Entreprise Systems » : DBMS Licensing Woes Turn Customers to Open Source Systems 12/16/2003 There is something rotten in the state of database management system (DBMS) pricing today, consultancy META Group says, and it has a lot to do with rapid changes to database licensing models and service and support agreements. The upshot, suggests META Group analyst Charlie Garry, is that by 2006, a majority of customers will conclude that the current vendor-client licensing model is broken and in need of retooling. Some will look to downsize - or - ''rightsize'' their database infrastructures, even as others consolidate DBMSes, or, increasingly, look to open source software (OSS) database solutions. De beaux jours pour les SGBDR Open Source : MySQL, PostgreSQL, Derby,...

29 Bibliographie PostgreSQL Introduction and Concepts – Bruce Momjian – édition Addison Wesley Parctical PostgreSQL – John C.Worsley, Joshua D.Drake – édition O'Reilly PostgreSQL Essential Reference – Barry Stinson – édition Paperback PostgreSQL Developer's Handboobk – Erwald Geshwinde, Hans Jüergen Shöenig - édition Paperback

30 Documentation Sur le site www.postgresql.orgwww.postgresql.org Manuels Notes techniques Documentation officielle spécialisée par version Livres en ligne ''PostgreSQL Introduction and concepts'' B. Momjian ''Practical PostgreSQL'' J. C. Worsley & J. D. Drake Tutoriaux


Télécharger ppt "PostgreSQL Introduction Jean-Jacques LE COZ. Histoire Université de Berkeley (Californie) Ancêtre de PostgreSQL : Ingres (1977-1985) Postgres : projet."

Présentations similaires


Annonces Google