SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
Corso di Basi di Dati e Laboratorio




                      PostgreSQL
              Alfio Ferrara - Stefano Montanelli




 A.A. 2005/2006             Basi di Dati e Laboratorio   1




Introduzione

• PgSQL
   – http://www.postgresql.org
   – DBMS relazionale Open Source (licenza GPL)
   – Applicazione Client – Server
   – La distribuzione consiste in un server e una
     applicazione client da riga di comando (pgsql)
   – Disponibili diversi script di amministrazione
     (initdb, pgdump, …)




 A.A. 2005/2006             Basi di Dati e Laboratorio   2




Supporto allo standard

• Postgres supporta ampiamente lo standard
  SQL99
         • Complex queries, Foreign keys, Triggers, Views,
           Transactional integrity, Multiversion concurrency
           control
• Estensioni
         •   Data types
         •   Functions
         •   Operators
         •   Aggregate functions
         •   Index methods
         •   Procedural languages

 A.A. 2005/2006             Basi di Dati e Laboratorio   3




                                                               1
Avvio del servizio

• Il servizio è avviato dall’istruzione:
    – postmaster -D /path/cluster -i



 Avvio del servizio                  Accetta connessioni non locali

        Directory di memorizzazione fisica


• Il server può gestire più database e essere
  associato a un cluster specifico

  A.A. 2005/2006        Basi di Dati e Laboratorio          4




Inizializzare un cluster

• Creare una directory (/path/cluster) con su
  cui l’utente amministratore (postgres) abbia
  i permessi in lettura/scrittura
    – initdb -D /path/cluster
• Si possono creare utenti e database senza
  utilizzare il client psql
    – createuser test / dropuser test
    – createdb testdb / dropdb testdb



  A.A. 2005/2006        Basi di Dati e Laboratorio          5




Stato iniziale

• Inizialmente sono presenti i database
  template0 e template1
• Essi sono utilizzati come template per la
  creazione di nuovi database
• È possibile creare un proprio template
  come base per la generazione di nuovi
  database



  A.A. 2005/2006        Basi di Dati e Laboratorio          6




                                                                      2
Uso del client psql
• psql template1[-h host -U utente]
   – Se omesso viene assunto l’utente corrente e se
     omesso il db si assume che il db abbia lo stesso nome
     dell’utente
• I comandi sono distinti in due tipologie:
   – Comandi del client: preceduti da 
   – Comandi SQL
• Help in linea
   – ?[comando]: help sui comandi del client
   – h[comando]: help su sql
• Altri comandi utili
   – l lista dei db, d descrittore, dt elenco tabelle, etc.

 A.A. 2005/2006          Basi di Dati e Laboratorio        7




SELECT

• Il comando SELECT oltre che per normali
  query è utilizzato anche per attivare le
  funzioni postgres
• Esempi:
   – SELECT current_date;
   – SELECT 2 + 4;




 A.A. 2005/2006          Basi di Dati e Laboratorio        8




Creazione di utenti e db
    CREATE USER name [ [ WITH ] option [ ... ] ]

         SYSID uid
       | CREATEDB | NOCREATEDB
       | CREATEUSER | NOCREATEUSER
       | IN GROUP groupname [, ...]
       | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
       | VALID UNTIL 'abstime'


     CREATE DATABASE name
       [ [ WITH ] [ OWNER [=] dbowner ]
            [ TEMPLATE [=] template ]
            [ ENCODING [=] encoding ]
            [ TABLESPACE [=] tablespace ] ]


 A.A. 2005/2006          Basi di Dati e Laboratorio        9




                                                                 3
Creazione di tabelle

• La creazione di tabelle è conforme allo
  standard, ad eccezione dell’uso di tipi di
  dato particolari o funzioni
• Un esempio di estensione dello standard è
  costituito dalla capacità di tabelle PSQL di
  ereditare da altre tabelle




 A.A. 2005/2006       Basi di Dati e Laboratorio   10




Esempio di inheritance
Postgresql tutorial (www.postgresql.org)

CREATE TABLE cities (
  name       text,
  population real,
  altitude   int
);


                        CREATE TABLE capitals (
                          state  char(2)
                        ) INHERITS (cities);



 A.A. 2005/2006       Basi di Dati e Laboratorio   11




Array

• Postgres supporta anche un tipo di dato
  array
• Permette l’uso di attributi multivalore e
  pertanto è da evitare perché non produce
  schemi normalizzati




 A.A. 2005/2006       Basi di Dati e Laboratorio   12




                                                        4
Funzioni e estensioni

• Postgres implementa un numero molto
  vasto di funzioni e tipi di dato complessi
• Ricordiamo:
    – Gestione della concorrenza e transazioni
    – Estensioni procedurali di SQL
    – Gestione del partizionamento




  A.A. 2005/2006       Basi di Dati e Laboratorio      13




Esempio: gestione di sequenze

CREATE [ TEMPORARY | TEMP ] SEQUENCE name [ INCREMENT [ BY ]
increment ]
[ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO
MAXVALUE ]
[ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ]


• La sequenza viene poi manipolata con
    – Nextval(sequenza)
    – Currval(sequenza)
    – Setval(sequenza,valore[,booleano*])
    – * Determina se il nuovo valore influenza
      nextval

  A.A. 2005/2006       Basi di Dati e Laboratorio      14




Informazioni di catalogo e di sistema

• Il catalogo è strutturato secondo tre
  schemi:
    – Pg_catalog: database di sistema (utenti, etc.)
    – Information_schema: contiene i metadati
    – Public: schema di default dei nuovi db
• Esempi:
    – SELECT * from pg_catalog.pg_user;
    – SELECT * from information_schema.tables;



  A.A. 2005/2006       Basi di Dati e Laboratorio      15




                                                               5
Controllo dell’accesso

• Il controllo dell’accesso si effettua per
  mezzo del file
      – pg_hba.conf
• Il file viene collocato nel cluster dallo script
  initdb sulla base del default
• Modificando il file è possibile definire
  diverse politiche di accesso con regole
  analoghe a quelle dei firewall


   A.A. 2005/2006                 Basi di Dati e Laboratorio            16




Sintassi
       local   database user auth-method [auth-option]
       host    database user CIDR-address auth-method [auth-option]
       hostssl database user CIDR-address auth-method [auth-option]
       hostnossl database user CIDR-address auth-method [auth-option]
       host    database user IP-address IP-mask auth-method [auth-option]
       hostssl database user IP-address IP-mask auth-method [auth-option]
       hostnossl database user IP-address IP-mask auth-method [auth-option]

      – Local: unix socket
      – Host: TCP/IP
      – SSL: uso di connessioni protette
      – Auth-method: trust | reject | md5 | …
      – Auth-option: opzioni dei diversi metodi



   A.A. 2005/2006                 Basi di Dati e Laboratorio            17




Esempi
#Tutti gli utenti su tutti i db

# TYPE DATABASE            USER        CIDR-ADDRESS            METHOD
  local all                all                                 trust

# Lo stesso per TCP/IP

# TYPE DATABASE            USER        CIDR-ADDRESS            METHOD
  host all                 all         127.0.0.1/32            trust

#Lo stesso ma specificando gli indirizzi via IP-MASK

# TYPE DATABASE            USER        IP-ADDRESS IP-MASK        METHOD
  host  all                all         127.0.0.1  255.255.255.255 trust




   A.A. 2005/2006                 Basi di Dati e Laboratorio            18




                                                                              6
Esempi

# Consenti ad un utente da host 192.168.12.10 di connettersi al database
# quot;postgresquot; se l’utente fornisce la password corretta


# TYPE DATABASE        USER        CIDR-ADDRESS          METHOD
  host postgres        all         192.168.12.10/32      md5




   A.A. 2005/2006          Basi di Dati e Laboratorio          19




Dump e restore

 • Copiare e salvare un database
     – pg_dump [opzioni] nomedb > file
     – pg_dumpall consente il dump delll’intero
       cluster
           • Le opzioni dello script consentono di determinare
             se effettuare il dump del solo schema o anche dei
             dati e di determinare l’utente
 • Restore
     – Psql nomedb < file
           • Occorre creare il database vuoto e eventuali utenti
             associati al db


   A.A. 2005/2006          Basi di Dati e Laboratorio          20




Dump

 • Il dump può essere diviso su più file
     – pg_dump dbname | split -b 1m - filename
     – cat filename* | psql dbname
 • Oppure compresso
     – pg_dump dbname | gzip > filename.gz
     – cat filename.gz | gunzip | psql dbname




   A.A. 2005/2006          Basi di Dati e Laboratorio          21




                                                                           7

Weitere ähnliche Inhalte

Was ist angesagt?

Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e https
Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e httpsApache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e https
Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e httpsFulvio Corno
 
Biblioteca Generale della Custodia di Terra Santa a Gerusalemme : Specifiche ...
Biblioteca Generale della Custodia di Terra Santa a Gerusalemme : Specifiche ...Biblioteca Generale della Custodia di Terra Santa a Gerusalemme : Specifiche ...
Biblioteca Generale della Custodia di Terra Santa a Gerusalemme : Specifiche ...KohaGruppoItaliano
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazioneEnrico Pirozzi
 
Lezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaLezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaAndrea Della Corte
 
Managing configuration in Drupal 8 - SIDCamp 2015
Managing configuration in Drupal 8 - SIDCamp 2015Managing configuration in Drupal 8 - SIDCamp 2015
Managing configuration in Drupal 8 - SIDCamp 2015Kelyon Srl
 
Build a SQL Server machine - the right way (Italian)
Build a SQL Server machine - the right way (Italian)Build a SQL Server machine - the right way (Italian)
Build a SQL Server machine - the right way (Italian)Danilo Dominici
 
Introduzione a Drupal e componenti del core - SIDCamp 2015
Introduzione a Drupal e componenti del core - SIDCamp 2015Introduzione a Drupal e componenti del core - SIDCamp 2015
Introduzione a Drupal e componenti del core - SIDCamp 2015Kelyon Srl
 

Was ist angesagt? (10)

Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e https
Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e httpsApache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e https
Apache HTTP Server - Funzionalità - Configurazione - Virtual Host - SSL e https
 
SaaS con Symfony2
SaaS con Symfony2SaaS con Symfony2
SaaS con Symfony2
 
Apache HTTP Server
Apache HTTP ServerApache HTTP Server
Apache HTTP Server
 
Biblioteca Generale della Custodia di Terra Santa a Gerusalemme : Specifiche ...
Biblioteca Generale della Custodia di Terra Santa a Gerusalemme : Specifiche ...Biblioteca Generale della Custodia di Terra Santa a Gerusalemme : Specifiche ...
Biblioteca Generale della Custodia di Terra Santa a Gerusalemme : Specifiche ...
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazione
 
PostgreSQL : Tuning
PostgreSQL : TuningPostgreSQL : Tuning
PostgreSQL : Tuning
 
Lezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in JavaLezione 11: Accesso ai RESTful Web Services in Java
Lezione 11: Accesso ai RESTful Web Services in Java
 
Managing configuration in Drupal 8 - SIDCamp 2015
Managing configuration in Drupal 8 - SIDCamp 2015Managing configuration in Drupal 8 - SIDCamp 2015
Managing configuration in Drupal 8 - SIDCamp 2015
 
Build a SQL Server machine - the right way (Italian)
Build a SQL Server machine - the right way (Italian)Build a SQL Server machine - the right way (Italian)
Build a SQL Server machine - the right way (Italian)
 
Introduzione a Drupal e componenti del core - SIDCamp 2015
Introduzione a Drupal e componenti del core - SIDCamp 2015Introduzione a Drupal e componenti del core - SIDCamp 2015
Introduzione a Drupal e componenti del core - SIDCamp 2015
 

Andere mochten auch

04 Progettazione Logica
04  Progettazione Logica04  Progettazione Logica
04 Progettazione Logicaguestbe916c
 
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
Corso Di  Basi Di  Dati 01  Algebra Relazionale   OttimizzazioniCorso Di  Basi Di  Dati 01  Algebra Relazionale   Ottimizzazioni
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioniguestbe916c
 
Corso Di Basi Di Dati 02 S Q L Query
Corso Di  Basi Di  Dati 02  S Q L   QueryCorso Di  Basi Di  Dati 02  S Q L   Query
Corso Di Basi Di Dati 02 S Q L Queryguestbe916c
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionaleguestbe916c
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controlloguestbe916c
 
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M Lguestbe916c
 
09 Esercizi Generali
09  Esercizi Generali09  Esercizi Generali
09 Esercizi Generaliguestbe916c
 

Andere mochten auch (8)

04 Progettazione Logica
04  Progettazione Logica04  Progettazione Logica
04 Progettazione Logica
 
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
Corso Di  Basi Di  Dati 01  Algebra Relazionale   OttimizzazioniCorso Di  Basi Di  Dati 01  Algebra Relazionale   Ottimizzazioni
Corso Di Basi Di Dati 01 Algebra Relazionale Ottimizzazioni
 
Corso Di Basi Di Dati 02 S Q L Query
Corso Di  Basi Di  Dati 02  S Q L   QueryCorso Di  Basi Di  Dati 02  S Q L   Query
Corso Di Basi Di Dati 02 S Q L Query
 
Esercitazioni 01 Algebra Relazionale
Esercitazioni 01  Algebra RelazionaleEsercitazioni 01  Algebra Relazionale
Esercitazioni 01 Algebra Relazionale
 
Algebra
AlgebraAlgebra
Algebra
 
Corso Di Basi Di Dati 09 Modelli Controllo
Corso Di  Basi Di  Dati 09  Modelli ControlloCorso Di  Basi Di  Dati 09  Modelli Controllo
Corso Di Basi Di Dati 09 Modelli Controllo
 
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
 
09 Esercizi Generali
09  Esercizi Generali09  Esercizi Generali
09 Esercizi Generali
 

Ähnlich wie Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L

Stack tecnologico Per Linked Data
Stack tecnologico Per Linked DataStack tecnologico Per Linked Data
Stack tecnologico Per Linked DataSynapta
 
Stack tecnologico Per Linked Data
Stack tecnologico Per Linked DataStack tecnologico Per Linked Data
Stack tecnologico Per Linked DataDavide Allavena
 
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
Laboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato ServerLaboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato Server
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Serverguestbe916c
 
Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Emanuele Zanchettin
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Clientguestbe916c
 
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL ClusterMySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL ClusterPar-Tec S.p.A.
 
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...azuredayit
 
MySQL 5
MySQL 5MySQL 5
MySQL 5jekil
 
SQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkSQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkAlessio Biasiutti
 
Quanto mi costa SQL Pool Serverless Synapse
Quanto mi costa SQL Pool Serverless SynapseQuanto mi costa SQL Pool Serverless Synapse
Quanto mi costa SQL Pool Serverless SynapseMarco Pozzan
 
Novità di SQL Server 2017
Novità di SQL Server 2017Novità di SQL Server 2017
Novità di SQL Server 2017Gianluca Hotz
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech LabUgo Landini
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Codemotion
 
Cloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciutoCloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciutoBioDec
 
Implementazione di un ambiente in alta affidabilità
Implementazione di un ambiente in alta affidabilitàImplementazione di un ambiente in alta affidabilità
Implementazione di un ambiente in alta affidabilitàAlfredo Parisi
 
Basi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiBasi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiMajong DevJfu
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiPietro Corona
 
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...Par-Tec S.p.A.
 

Ähnlich wie Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L (20)

Stack tecnologico Per Linked Data
Stack tecnologico Per Linked DataStack tecnologico Per Linked Data
Stack tecnologico Per Linked Data
 
Stack tecnologico Per Linked Data
Stack tecnologico Per Linked DataStack tecnologico Per Linked Data
Stack tecnologico Per Linked Data
 
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
Laboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato ServerLaboratorio Di  Basi Di  Dati 07  Programmazione  Web Lato Server
Laboratorio Di Basi Di Dati 07 Programmazione Web Lato Server
 
Corso Java 2 - AVANZATO
Corso Java 2 - AVANZATOCorso Java 2 - AVANZATO
Corso Java 2 - AVANZATO
 
Utilizzo dei principali comandi di Mysql
Utilizzo dei principali comandi di MysqlUtilizzo dei principali comandi di Mysql
Utilizzo dei principali comandi di Mysql
 
Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2Implementare e mantenere un progetto azure sql database v.2
Implementare e mantenere un progetto azure sql database v.2
 
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
Laboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato ClientLaboratorio Di  Basi Di  Dati 06  Programmazione  Web Lato Client
Laboratorio Di Basi Di Dati 06 Programmazione Web Lato Client
 
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL ClusterMySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
MySQL Tech Tour 2015 - Progettare, installare e configurare MySQL Cluster
 
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
Azure Day Rome Reloaded 2019 - Ingestion nel datalake passando tramite API Ma...
 
MySQL 5
MySQL 5MySQL 5
MySQL 5
 
SQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with SparkSQL Saturday 2019 - Event Processing with Spark
SQL Saturday 2019 - Event Processing with Spark
 
Quanto mi costa SQL Pool Serverless Synapse
Quanto mi costa SQL Pool Serverless SynapseQuanto mi costa SQL Pool Serverless Synapse
Quanto mi costa SQL Pool Serverless Synapse
 
Novità di SQL Server 2017
Novità di SQL Server 2017Novità di SQL Server 2017
Novità di SQL Server 2017
 
JBoss Data Grid Tech Lab
JBoss Data Grid Tech LabJBoss Data Grid Tech Lab
JBoss Data Grid Tech Lab
 
Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015Infinispan codemotion - Codemotion Rome 2015
Infinispan codemotion - Codemotion Rome 2015
 
Cloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciutoCloud storage in azienda: perche` Riak ci e` piaciuto
Cloud storage in azienda: perche` Riak ci e` piaciuto
 
Implementazione di un ambiente in alta affidabilità
Implementazione di un ambiente in alta affidabilitàImplementazione di un ambiente in alta affidabilità
Implementazione di un ambiente in alta affidabilità
 
Basi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativiBasi di Dati - A2 - Tecnologia dei sistemi informativi
Basi di Dati - A2 - Tecnologia dei sistemi informativi
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
 
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...
MySQL Day Roma 2022 - MySQL: dall'alta disponibilità al disaster recovery in ...
 

Mehr von guestbe916c

Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q Lguestbe916c
 
Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioniguestbe916c
 
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q Lguestbe916c
 
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
Corso Di  Basi Di  Dati 06  Esercizi Di Progettazione ConcettualeCorso Di  Basi Di  Dati 06  Esercizi Di Progettazione Concettuale
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettualeguestbe916c
 
Corso Di Basi Di Dati 03 Progettazione Concettuale
Corso Di  Basi Di  Dati 03  Progettazione ConcettualeCorso Di  Basi Di  Dati 03  Progettazione Concettuale
Corso Di Basi Di Dati 03 Progettazione Concettualeguestbe916c
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazioneguestbe916c
 
Corso Di Basi Di Dati 04 Progettazione Logica
Corso Di  Basi Di  Dati 04  Progettazione LogicaCorso Di  Basi Di  Dati 04  Progettazione Logica
Corso Di Basi Di Dati 04 Progettazione Logicaguestbe916c
 
Corso Di Basi Di Dati 02 S Q L D M L
Corso Di  Basi Di  Dati 02  S Q L  D M LCorso Di  Basi Di  Dati 02  S Q L  D M L
Corso Di Basi Di Dati 02 S Q L D M Lguestbe916c
 
Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q Lguestbe916c
 
Esercitazioni 04 Progettazione Concettuale E Logica
Esercitazioni 04  Progettazione Concettuale E LogicaEsercitazioni 04  Progettazione Concettuale E Logica
Esercitazioni 04 Progettazione Concettuale E Logicaguestbe916c
 
Corso Di Basi Di Dati 08 Protezione Dei Dati
Corso Di  Basi Di  Dati 08  Protezione Dei DatiCorso Di  Basi Di  Dati 08  Protezione Dei Dati
Corso Di Basi Di Dati 08 Protezione Dei Datiguestbe916c
 
06 Normalizzazione
06  Normalizzazione06  Normalizzazione
06 Normalizzazioneguestbe916c
 
04 B Progettazione Logica E S
04 B  Progettazione Logica  E S04 B  Progettazione Logica  E S
04 B Progettazione Logica E Sguestbe916c
 

Mehr von guestbe916c (14)

Esercitazioni 02 S Q L
Esercitazioni 02  S Q LEsercitazioni 02  S Q L
Esercitazioni 02 S Q L
 
Corso Di Basi Di Dati 10 Transazioni
Corso Di  Basi Di  Dati 10  TransazioniCorso Di  Basi Di  Dati 10  Transazioni
Corso Di Basi Di Dati 10 Transazioni
 
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
Laboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q LLaboratorio Di  Basi Di  Dati 04  P L  S Q L E  P Lpg S Q L
Laboratorio Di Basi Di Dati 04 P L S Q L E P Lpg S Q L
 
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
Corso Di  Basi Di  Dati 06  Esercizi Di Progettazione ConcettualeCorso Di  Basi Di  Dati 06  Esercizi Di Progettazione Concettuale
Corso Di Basi Di Dati 06 Esercizi Di Progettazione Concettuale
 
Corso Di Basi Di Dati 03 Progettazione Concettuale
Corso Di  Basi Di  Dati 03  Progettazione ConcettualeCorso Di  Basi Di  Dati 03  Progettazione Concettuale
Corso Di Basi Di Dati 03 Progettazione Concettuale
 
Corso Di Basi Di Dati 05 Normalizzazione
Corso Di  Basi Di  Dati 05  NormalizzazioneCorso Di  Basi Di  Dati 05  Normalizzazione
Corso Di Basi Di Dati 05 Normalizzazione
 
Corso Di Basi Di Dati 04 Progettazione Logica
Corso Di  Basi Di  Dati 04  Progettazione LogicaCorso Di  Basi Di  Dati 04  Progettazione Logica
Corso Di Basi Di Dati 04 Progettazione Logica
 
Corso Di Basi Di Dati 02 S Q L D M L
Corso Di  Basi Di  Dati 02  S Q L  D M LCorso Di  Basi Di  Dati 02  S Q L  D M L
Corso Di Basi Di Dati 02 S Q L D M L
 
Esercitazioni 03 Algebra + S Q L
Esercitazioni 03  Algebra +  S Q LEsercitazioni 03  Algebra +  S Q L
Esercitazioni 03 Algebra + S Q L
 
S Q L
S Q LS Q L
S Q L
 
Esercitazioni 04 Progettazione Concettuale E Logica
Esercitazioni 04  Progettazione Concettuale E LogicaEsercitazioni 04  Progettazione Concettuale E Logica
Esercitazioni 04 Progettazione Concettuale E Logica
 
Corso Di Basi Di Dati 08 Protezione Dei Dati
Corso Di  Basi Di  Dati 08  Protezione Dei DatiCorso Di  Basi Di  Dati 08  Protezione Dei Dati
Corso Di Basi Di Dati 08 Protezione Dei Dati
 
06 Normalizzazione
06  Normalizzazione06  Normalizzazione
06 Normalizzazione
 
04 B Progettazione Logica E S
04 B  Progettazione Logica  E S04 B  Progettazione Logica  E S
04 B Progettazione Logica E S
 

Laboratorio Di Basi Di Dati 03 Il D B M S Postgre S Q L

  • 1. Corso di Basi di Dati e Laboratorio PostgreSQL Alfio Ferrara - Stefano Montanelli A.A. 2005/2006 Basi di Dati e Laboratorio 1 Introduzione • PgSQL – http://www.postgresql.org – DBMS relazionale Open Source (licenza GPL) – Applicazione Client – Server – La distribuzione consiste in un server e una applicazione client da riga di comando (pgsql) – Disponibili diversi script di amministrazione (initdb, pgdump, …) A.A. 2005/2006 Basi di Dati e Laboratorio 2 Supporto allo standard • Postgres supporta ampiamente lo standard SQL99 • Complex queries, Foreign keys, Triggers, Views, Transactional integrity, Multiversion concurrency control • Estensioni • Data types • Functions • Operators • Aggregate functions • Index methods • Procedural languages A.A. 2005/2006 Basi di Dati e Laboratorio 3 1
  • 2. Avvio del servizio • Il servizio è avviato dall’istruzione: – postmaster -D /path/cluster -i Avvio del servizio Accetta connessioni non locali Directory di memorizzazione fisica • Il server può gestire più database e essere associato a un cluster specifico A.A. 2005/2006 Basi di Dati e Laboratorio 4 Inizializzare un cluster • Creare una directory (/path/cluster) con su cui l’utente amministratore (postgres) abbia i permessi in lettura/scrittura – initdb -D /path/cluster • Si possono creare utenti e database senza utilizzare il client psql – createuser test / dropuser test – createdb testdb / dropdb testdb A.A. 2005/2006 Basi di Dati e Laboratorio 5 Stato iniziale • Inizialmente sono presenti i database template0 e template1 • Essi sono utilizzati come template per la creazione di nuovi database • È possibile creare un proprio template come base per la generazione di nuovi database A.A. 2005/2006 Basi di Dati e Laboratorio 6 2
  • 3. Uso del client psql • psql template1[-h host -U utente] – Se omesso viene assunto l’utente corrente e se omesso il db si assume che il db abbia lo stesso nome dell’utente • I comandi sono distinti in due tipologie: – Comandi del client: preceduti da – Comandi SQL • Help in linea – ?[comando]: help sui comandi del client – h[comando]: help su sql • Altri comandi utili – l lista dei db, d descrittore, dt elenco tabelle, etc. A.A. 2005/2006 Basi di Dati e Laboratorio 7 SELECT • Il comando SELECT oltre che per normali query è utilizzato anche per attivare le funzioni postgres • Esempi: – SELECT current_date; – SELECT 2 + 4; A.A. 2005/2006 Basi di Dati e Laboratorio 8 Creazione di utenti e db CREATE USER name [ [ WITH ] option [ ... ] ] SYSID uid | CREATEDB | NOCREATEDB | CREATEUSER | NOCREATEUSER | IN GROUP groupname [, ...] | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | VALID UNTIL 'abstime' CREATE DATABASE name [ [ WITH ] [ OWNER [=] dbowner ] [ TEMPLATE [=] template ] [ ENCODING [=] encoding ] [ TABLESPACE [=] tablespace ] ] A.A. 2005/2006 Basi di Dati e Laboratorio 9 3
  • 4. Creazione di tabelle • La creazione di tabelle è conforme allo standard, ad eccezione dell’uso di tipi di dato particolari o funzioni • Un esempio di estensione dello standard è costituito dalla capacità di tabelle PSQL di ereditare da altre tabelle A.A. 2005/2006 Basi di Dati e Laboratorio 10 Esempio di inheritance Postgresql tutorial (www.postgresql.org) CREATE TABLE cities ( name text, population real, altitude int ); CREATE TABLE capitals ( state char(2) ) INHERITS (cities); A.A. 2005/2006 Basi di Dati e Laboratorio 11 Array • Postgres supporta anche un tipo di dato array • Permette l’uso di attributi multivalore e pertanto è da evitare perché non produce schemi normalizzati A.A. 2005/2006 Basi di Dati e Laboratorio 12 4
  • 5. Funzioni e estensioni • Postgres implementa un numero molto vasto di funzioni e tipi di dato complessi • Ricordiamo: – Gestione della concorrenza e transazioni – Estensioni procedurali di SQL – Gestione del partizionamento A.A. 2005/2006 Basi di Dati e Laboratorio 13 Esempio: gestione di sequenze CREATE [ TEMPORARY | TEMP ] SEQUENCE name [ INCREMENT [ BY ] increment ] [ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ] [ START [ WITH ] start ] [ CACHE cache ] [ [ NO ] CYCLE ] • La sequenza viene poi manipolata con – Nextval(sequenza) – Currval(sequenza) – Setval(sequenza,valore[,booleano*]) – * Determina se il nuovo valore influenza nextval A.A. 2005/2006 Basi di Dati e Laboratorio 14 Informazioni di catalogo e di sistema • Il catalogo è strutturato secondo tre schemi: – Pg_catalog: database di sistema (utenti, etc.) – Information_schema: contiene i metadati – Public: schema di default dei nuovi db • Esempi: – SELECT * from pg_catalog.pg_user; – SELECT * from information_schema.tables; A.A. 2005/2006 Basi di Dati e Laboratorio 15 5
  • 6. Controllo dell’accesso • Il controllo dell’accesso si effettua per mezzo del file – pg_hba.conf • Il file viene collocato nel cluster dallo script initdb sulla base del default • Modificando il file è possibile definire diverse politiche di accesso con regole analoghe a quelle dei firewall A.A. 2005/2006 Basi di Dati e Laboratorio 16 Sintassi local database user auth-method [auth-option] host database user CIDR-address auth-method [auth-option] hostssl database user CIDR-address auth-method [auth-option] hostnossl database user CIDR-address auth-method [auth-option] host database user IP-address IP-mask auth-method [auth-option] hostssl database user IP-address IP-mask auth-method [auth-option] hostnossl database user IP-address IP-mask auth-method [auth-option] – Local: unix socket – Host: TCP/IP – SSL: uso di connessioni protette – Auth-method: trust | reject | md5 | … – Auth-option: opzioni dei diversi metodi A.A. 2005/2006 Basi di Dati e Laboratorio 17 Esempi #Tutti gli utenti su tutti i db # TYPE DATABASE USER CIDR-ADDRESS METHOD local all all trust # Lo stesso per TCP/IP # TYPE DATABASE USER CIDR-ADDRESS METHOD host all all 127.0.0.1/32 trust #Lo stesso ma specificando gli indirizzi via IP-MASK # TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD host all all 127.0.0.1 255.255.255.255 trust A.A. 2005/2006 Basi di Dati e Laboratorio 18 6
  • 7. Esempi # Consenti ad un utente da host 192.168.12.10 di connettersi al database # quot;postgresquot; se l’utente fornisce la password corretta # TYPE DATABASE USER CIDR-ADDRESS METHOD host postgres all 192.168.12.10/32 md5 A.A. 2005/2006 Basi di Dati e Laboratorio 19 Dump e restore • Copiare e salvare un database – pg_dump [opzioni] nomedb > file – pg_dumpall consente il dump delll’intero cluster • Le opzioni dello script consentono di determinare se effettuare il dump del solo schema o anche dei dati e di determinare l’utente • Restore – Psql nomedb < file • Occorre creare il database vuoto e eventuali utenti associati al db A.A. 2005/2006 Basi di Dati e Laboratorio 20 Dump • Il dump può essere diviso su più file – pg_dump dbname | split -b 1m - filename – cat filename* | psql dbname • Oppure compresso – pg_dump dbname | gzip > filename.gz – cat filename.gz | gunzip | psql dbname A.A. 2005/2006 Basi di Dati e Laboratorio 21 7