Un RDBMS libero: PostgreSQL. Pagina 1



Documenti analoghi
Un RDBMS libero: PostgreSQL Federico Campoli Un RDBMS libero: PostgreSQL Pagina 1

Studi di Settore. Nota Operativa 22/4/2013

Lezione 9. Applicazioni tradizionali

Database & FreeBSD. Come configurare il sistema operativo ottimizzando le prestazioni sul DB. GufiCon#3 Milano, 12 Ottobre 2002

Lorenzo Sarti Materiale didattico sarti

Introduzione a PostgreSQL e phppgadmin

FOXWave Gestione gare ARDF IZ1FAL Secco Marco Sezione ARI BIELLA

I MODULI Q.A.T. PANORAMICA. La soluzione modulare di gestione del Sistema Qualità Aziendale

GovPay 2.0. Manuale Installazione

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli)

Configurazione avanzata di IBM SPSS Modeler Entity Analytics

Installazione MS SQL Express e utilizzo con progetti PHMI

Schedulatore per la comunicazione con le Porte di Dominio

Installazione e caratteristiche generali 1

Software di gestione della stampante

Licenza per sito Manuale dell amministratore

Introduzione all Architettura del DBMS

Il web server Apache Lezione n. 3. Introduzione

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per sito)

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Guida all Installazione del ProxyFatturaPA

Database e reti. Piero Gallo Pasquale Sirsi

Al giorno d oggi, i sistemi per la gestione di database

Backup e Restore di un database PostgreSQL Sandro Fioravanti INFN-LNF

Caratteristiche principali. Contesti di utilizzo

SPSS Statistics per Windows - Istruzioni di installazione per (Licenza per utenti singoli)

IBM SPSS Statistics per Linux - Istruzioni di installazione (Licenza per sito)

Manuale per la configurazione di AziendaSoft in rete

Introduzione a Oracle 9i

e/fiscali - Rel e/fiscali Installazione

Base di dati e sistemi informativi

Installazione di GFI WebMonitor

ISTALLAZIONE DI OPEN OFFICE 3.2:

Dispensa di database Access

Come Installare SQL Server 2008 R2 Express Edition With Tools

15J0460A300 SUNWAY CONNECT MANUALE UTENTE

Configurazione avanzata di XAMPP

Kroll Ontrack Servizi RDR Guida rapida

Basi di dati. Corso di Laurea in Ingegneria Informatica Canale di Ingegneria delle Reti e dei Sistemi Informatici - Polo di Rieti

SOMMARIO COSA SERVE... 2 PRIMA DI INIZIARE... 2 COME PROCEDERE LATO SERVER... 3 COME PROCEDERE LATO CLIENT... 3

Istruzioni di installazione di IBM SPSS Modeler Text Analytics (licenza per sito)

FAQ RISPOSTE A DOMANDE FREQUENTI

Informatica DR KLOE Calcolo

Il Sistema Operativo (1)

Indice GAMMA. Guida utente

Installazione di GFI LANguard Network Security Scanner

IRSplit. Istruzioni d uso 07/10-01 PC

Proposta UNIF Progetto: Portale delle fonti di energia rinnovabile. Obiettivi

2009. STR S.p.A. u.s. Tutti i diritti riservati

A. Bardine - Introduzione a PostgreSQL. PostgreSQL è un software relazionale e ad oggetti per la gestione di basi di dati

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

ARCHIVIA PLUS VERSIONE SQL SERVER

Progetto di Ingegneria del Software 2. SWIMv2

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza per utenti singoli)

IBM SPSS Statistics per Mac OS - Istruzioni di installazione (Licenza per sito)

4.1 FAX Sollecito consegne via (Nuova funzione)

Capitolo 1 Oracle: la società e il software Terminologia Oracle Corporation: la storia L offerta corrente 12 1.

Indice. Introduzione PARTE PRIMA L ARCHITETTURA DEI DATABASE 1

IBM SPSS Statistics - Essentials for Python- Istruzioni di installazione per Windows

IBM SPSS Statistics per Windows - Istruzioni di installazione (Licenza di rete)

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

PostgreSQL - amministrazione

Primi passi con Linux

1. BASI DI DATI: GENERALITÀ

Il software di gestione immobiliare più facile da usare. Modulo Web v5.2.

Installazione di IBM SPSS Modeler 14.2 Client (licenza di rete)

Indice generale. Capitolo 3 Introduzione a PHP...43 Sintassi e istruzioni di base Variabili, operatori e commenti Array...

Output di sistema di Capture Pro Software FTP Server

SurfCop. Informazioni sul prodotto

IBM SPSS Statistics - Essentials for Python- Istruzioni di installazione per Windows

Configurazione avanzata di IBM SPSS Modeler Entity Analytics

NOTE OPERATIVE. Prodotto Inaz Download Manager. Release 1.3.0

Guida all installazione di Easy

Installazione di GFI Network Server Monitor

Scheda di Notifica Manuale d'uso

CBC (EUROPE) Srl NOTA APPLICATIVA

GUARINI PATRIMONIO CULTURALE VERSIONE MSDE/SQL SERVER MANUALE DI INSTALLAZIONE GUARINI PATRIMONIO CULTURALE VERSIONE MSDE/SQL SERVER

Hosting Applicativo Upgrade Web Client

Informatica I per la. Fisica

Lezione V. Aula Multimediale - sabato 29/03/2008

Il DBMS Oracle. Express Edition. Donatella Gubiani e Angelo Montanari

Amministrazione e configurazione dell interfaccia. Alessio Rocchi ENEA Frascati

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Application Server per sviluppare applicazioni Java Enterprise

Il Web Server e il protocollo HTTP

IL FITOFOR: UNO STRUMENTO PER LA GESTIONE DELLE INFORMAZIONI FITOSANITARIE. Marino Vignoli, Elisa Moneti, M. Miozzo DREAM - Italia

Presentazione Data Base

Le presenti note vengono rilasciate per presentare le principali novità della release 2010 Sp1 di Contact Pro.

Indicazioni per una corretta configurazione del browser

Terza lezione: Directory e File system di Linux

Attivazione prodotto - Release 2 (2011) Prodotto Attivazione prodotto. Release

ISTRUZIONI PER L INSTALLAZIONE DI MINGW

Manuale Terminal Manager 2.0

Indice Introduzione Elementi di base dei database Il linguaggio SQL (Structured Query Language)

Coordinazione Distribuita

Transcript:

Un RDBMS libero: PostgreSQL by Federico Campoli Un RDBMS libero: PostgreSQL Pagina 1

Copyright (c) 2004 FEDERICO CAMPOLI - rotellaro@gmail.com Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You can download a version of the license at url http://www.gnu.org/licenses/fdl.txt Un RDBMS libero: PostgreSQL Pagina 2

Generalita' sui database Panoramica su PostgreSQL Installazione database via ricompilazione Amministrazione dell'istanza Confronto tra Postgres e altri database Il futuro di Postgres (versione 8.0) Un RDBMS libero: PostgreSQL Pagina 3

Generalita' sui database relazionali Generalita' sui database Pagina 4

DATABASE RELAZIONALE Relational DataBase Management System (RDBMS) I dati sono rappresentati tramite tabelle I database relazionali vengono gestiti attraverso un linguaggio di alto livello, SQL (Structured Query Language). L'RDBMS si occupa dell'archiviazione e dell'integrita' dei dati Generalita' sui database Pagina 5

Il linguaggio SQL SQL, Structured Query Language Permette di agire sull'rdbms in maniera totalmente trasparente Consiste in un insieme ristretto di parole chiave in inglese Esistono vari dialetti a seconda dell'rdbms Attraverso l'sql l'rdbms opera sui dati senza che l'utente debba sapere come ne avviene la gestione Generalita' sui database Pagina 6

Panoramica su PostgreSQL Storia del database relazionale Struttura e funzionamento istanza Il catalogo di sistema Esecuzione di una query Caratteristiche di PostgreSQL Panoramica su PostgreSQL Pagina 7

Nasce nel 1977 all'universita' di Berkeley col nome di INGRES Si evolve nel 1986 come The Berkeley POSTGRES Project Leader del progetto e' il Professor Michael Stonebraker Nel 1994 Andrew Yu and Jolly Chen integrano un interprete SQL al progetto che viene rilasciato col nome Postgres95 Il motore di Postgres95 viene scritto interamente in ANSI C Postgres95 1.0.x e' il 30-50% piu veloce di POSTGRES 4,2 Postgres95 viene rilasciato come progetto open source Dal 1996 viene adottato il nome PostgreSQL Panoramica su PostgreSQL Pagina 8

Istanza PostgreSQL Postmaster Cluster database Panoramica su PostgreSQL Pagina 9

Postmaster Processo padre che si occupa del funzionamento dell'rdbms Necessita, per essere avviato di un cluster database su filesystem Il posmaster resta in attesa di connessioni socket o TCP Le connessioni TCP sono opzionali e vanno abilitate allo startup Ogni richiesta di connessione al postmaster provoca l'avvio di un processo server (postgres) dedicato per la connessione avviatasi Le comunicazioni tra postmaster, cluster database e processi server avvengono via semafori e chiamate ipc Panoramica su PostgreSQL Pagina 10

Cluster database Directory su filesystem formattata per ospitare l'istanza Viene inizializzata con il programma initdb L'owner deve essere lo stesso del processo postmaster All'interndo del cluster e' presente il file di inizializzazione Per funzionare al meglio deve risiedere su filesystem con blocchi da 8k Al suo interno risiede il catalogo di sistema, i template dei database e i database E' possibile crare un'area dati aggiuntiva separata da quella primaria con il programma initlocation (databasespace) Panoramica su PostgreSQL Pagina 11

Il catalogo di sistema Il catalogo di sistema e' costituito da un insieme di tabelle comuni a tutti database del cluster e dal dizionario dati Il dizionario dati si occupa del parsing dei comandi SQL (parser stage) e viene adoperato dal planner per la risoluzione del piano di esecuzione L'owner delle tabelle e' l'utente postgres che e' anche il super user del cluster database Gli utenti non privilegiati possono visualizzarne i dati attraverso delle viste di sistema Le viste di sistema vengono utilizzate per ottenere informazioni sul funzionamento del cluster. Panoramica su PostgreSQL Pagina 12

Le viste di sistema(cenni) pg_user vista di sistema che opera sulla tabella pg_shadow fornisce informazioni sugli utenti pg_tables tabella di sistema, fornisce informazioni sulle tabelle del cluster pg_settings tabella di sistema, fornisce informazioni sui parametri runtime dell'istanza pg_database tabella di sistema, fornisce informazioni sui database presenti nel cluster pg_statistic tabella di sistema, contiene le statistiche degli oggetti del cluster. Viene aggiornata durante le operazioni di analyze degli oggetti del cluster. Panoramica su PostgreSQL Pagina 13

Esecuzione di una query Il client si connette al database server Il processo server riceve la query che viene passata al parser Il parser costruisce il query tree Il planner/optimizer verifica i possibili piani di esecuzione Viene adoperato l'algoritmo genetico per la risoluzione del piano di esecuzione L'executor processa il piano selezionato dal planner/optimizer e restituisce i risultati al processo server. Panoramica su PostgreSQL Pagina 14

Caratteristiche di PostgreSQL Data dictionary e catalogo di sistema Transazionale (richiede apertura esplicita delle transazioni) Funzionalita' di subquery Trigger Supporto per piu' linguaggi procedurali Possibilita' di implementare funzioni attraverso routine esterne scritte in C Viste Funzioni Cursori Trigger Multiversion Concurrency Control Panoramica su PostgreSQL Pagina 15

Installazione database via ricompilazione Installing Postgresql Pagina 16

Perche' ricompilare? Ricompilando si ottiene codice ottimizzato per il processore su cui dovrà girare il software. Si può adoperare sempre l'ultima release senza essere legati al rilascio dei pacchetti binari In fase di configurazione e' possibile specificare alcuni parametri che danno al database caratteristiche speciali come il supporto per il Python o la readline Installing Postgresql Pagina 17

Installazione via compilazione (1) Download dei sorgenti dal sito www.postgresql.org Creare un utente postgres e un gruppo postgres Decomprimere i sorgenti in una directory di appoggio e cambiarne l'ownership a postgres.postgres Diventare utente postgres e avviare la configurazione del source tree con./configure Qualora mancassero librerie necessarie alla compilazione installarle secondo le istruzioni della distribuzione che si sta utilizzando (rpm,dpkg, compilazione). Installing Postgresql Pagina 18

Installazione via compilazione (2) Compilare il database con make Al termine della compilazione eseguire il regression test con make check Installare il database con make install Creare una directory con ownership postgres.postgres e inizializzarla con initdb -D <data_dir> Impostare le variabili di ambiente PATH e PGDATA per il corretto startup del processo postmaster Installing Postgresql Pagina 19

Installazione via compilazione (3) Avviare il database system con pg_ctl postgres@debianworkstation:~$ pg_ctl start postmaster successfully started postgres@debianworkstation:~$ LOG: could not create IPv6 socket: Address family not supported by protocol LOG: database system was shut down at 2004-11-09 23:24:17 CET LOG: checkpoint record is at 0/A7DBB4 LOG: redo record is at 0/A7DBB4; undo record is at 0/0; shutdown TRUE LOG: next transaction ID: 797; next OID: 17151 LOG: database system is ready Installing Postgresql Pagina 20

Amministrazione dell'istanza L'istanza viene amministrata sia come processo che come servizio Il processo viene avviato chiamando direttamente postmaster passandogli il parametro datadir Il servizio (piu' funzionale in un contesto server) viene gestito dal programma pg_ctl che permette di avviare o di stoppare il database system. Se la variabile di ambiente PGDATA e' valorizzata richiede, come parametro, solo il comando da eseguire. Amministrazione istanza Pagina 21

Amministrazione dell'istanza pg_ctl start avvia l'istanza pg_ctl stop ferma l'istanza L'opzione -m indica la modalita' di shutdown che puo' avvenire in 3 modalita' smart attende che le connessioni siano terminate per chiudere l'istanza fast chiude le connessioni esegue il rollback delle transazioni non committate e poi chiude l'istanza immediate termina tutti i processi server e il postmaster lasciando il cluster dirty. Dopo uno shutdown immediate durante lo startup si ha il recovery dell'istanza kill -9 postmaster e' male! Amministrazione istanza Pagina 22

Access PostgreSQL e altri... Non e' un database server Non ha dizionario dati Instabile sopra le 10 connessioni concorrenti Ha foreign keys Ha viste (query) Ha un SDK per interfacce form Non permette una gestione ottimale dello spazio disco Non possiede funzioni di replica Backup solo a freddo (copia file mdb) Lock in lettura a livello di riga PostgreSQL vs $nome_db Pagina 23

Mysql PostgreSQL e altri... Ha un demone server in ascolto su connessioni TCP Non ha dizionario dati Non ha problemi con connessioni multiple Foreign keys attivabili solo con tabelle innodb Non ha viste Non ha nessun tipo di linguaggio procedurale o SDK Datadir unica Non possiede funzioni di replica Backup sottoforma di comandi SQL Lock in lettura a livello di riga PostgreSQL vs $nome_db Pagina 24

Oracle PostgreSQL e altri... Database Server Ha dizionario dati Non ha problemi con connessioni multiple Foreign keys Possiede le Viste Linguaggio procedurale PL/SQL Tablespaces Funzionalita' di replica efficiente Modalita' di backup a caldo e freddo estremamente raffinata e funzionale Lock in scrittura PostgreSQL vs $nome_db Pagina 25

PostgreSQL PostgreSQL e altri... Connessioni su socket unix e TCP (non attive di default) Ha dizionario dati Non ha problemi con connessioni multiple Foreign keys Possiede le Viste Linguaggi procedurali PL/pgSQL, PL/Tcl, PL/Perl, PL/Python Database space (datadir addizionale) Backup a caldo con pgdump come SQL o binario, a freddo con copia datadir Funzionalita' di replica via plugin esterno (SLONY) Multiversion Concurrency Control PostgreSQL vs $nome_db Pagina 26

l futuro di PostgreSQL (ver. 8) Tablespaces Savepoints nelle transazioni Log Archiver Windows port Point In Time Recovery Il futuro di PostgreSQL Pagina 27

Un RDBMS libero: PostgreSQL by Federico Campoli Un RDBMS libero: PostgreSQL Pagina 28