1.0.1. PostgreSQL. Il database Open Source piu' avanzato



Documenti analoghi
PostgreSQL. Il database Open Source piu' avanzato

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

PostGIS. L'estensione geografica a PostgreSQL

The world s most advanced class on PostgreSQL o quasi! 4 Marzo 8 Aprile L'Antipasto 11 Marzo

Laboratorio di Basi di Dati e Web

DBMS (Data Base Management System)

Tool. Basi di Dati e Sistemi Informativi Prof. Marco Di Felice Dott.sa Sara Zuppiroli A.A

Corso di Laboratorio di Basi di Dati

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Laboratorio di Basi di Dati

PostgreSQL 8.4. Associazione Italiana PostgreSQL Users Group ConfSL 2009 Speaker's Corner Bologna, 13 Giugno 2009

Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Gestione delle tabelle

PROGRAMMA DI CLASSE 5AI

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

Corso sul linguaggio SQL

DBMS: MySQL CORSO DI BASI DI DATI 2014/2015

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Corso di Informatica Generale 1 IN1. Linguaggio SQL

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL (STRUCTURED QUERY LANGUAGE)

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

SQLite forensics. Il database Free piu' diffuso al mondo

PROGRAMMA CORSO Analista Programmatore JAVA - ORACLE

Architettura di storage

SQLite Forensics. Il database Free piu' diffuso al mondo

Introduzione a MySQL

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL (STRUCTURED QUERY LANGUAGE)

Volumi di riferimento

Basi di Dati: Corso di laboratorio

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

Introduzione a phpmyadmin

SQL Sintassi Dei Comandi

A.S. 2014/2015- Programma svolto di INFORMATICA ITCG E. Fermi Tivoli classe V C SIA. Programma svolto di. Informatica. classe VC S.I.A a.s.

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

Basi di dati SQL. Standardizzazione di SQL. Linguaggi di Interrogazione: SQL. Prof.Angela Bonifati

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

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

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Lezione 8. Metadati, Viste e Trigger

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

Stored Procedures. Massimo Mecella Dipartimento di Ingegneria informatica automatica e gestionale Antonio Ruberti Sapienza Università di Roma

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Introduzione a PostgreSQL e phppgadmin

RDBMS: panorama attuale. RDBMS: panorama attuale


Basi di Dati Corso di Laura in Informatica Umanistica

Corso sul linguaggio SQL

Corso base di Informatica. Microsoft Excel. Microsoft Access INFORMATICA. Docente: Durata: 40 ore. Destinatari

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

Azioni. Select e join non consentono di modificare il contenuto del DB. Inserzione di nuovi dati. Azioni desiderate. Aggiornamento di dati

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)

Informatica Generale Andrea Corradini Sistemi di Gestione delle Basi di Dati

Definizione e manipolazione dei dati in SQL

Nella relazione CINEMA, Nome è chiave secondaria. Nella relazione FILM, CodRegista, e CodProtagonista sono chiavi esterne sulla tabella PERSONE.

Informatica B. Contenuti. Introduzione alle Basi di Dati e ai DBMS. Introduzione a dati e basi dati DBMS Modello dei dati

MySQL. Un database Aperto per tutte le stagioni

Lezione 9. Applicazioni tradizionali

Informatica per le discipline umanistiche 2 lezione 10

DB2 Universal Database (UDB) DB2 Universal Database (UDB)

Il linguaggio SQL: DDL di base

Definizione di domini

Una metodologia di progettazione di applicazioni web centrate sui dati

Structured Query Language parte 1

Introduzione al linguaggio SQL

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

SQL. Storia e standard

Il sistema IBM DB2. Sistemi Informativi T. Versione elettronica: L01.1.IntroduzioneDB2.pdf

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici

MEZZI CodM Tipo Targa AnnoI Assicurato

SQL - Tipi di dato Il linguaggio SQL

Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini

Introduzione a PostgreSQL

Laboratorio Progettazione Web PHP e MySQL - Lezione 9. Andrea Marchetti IIT-CNR andrea.marchetti@iit.cnr.ita 2012/2013

Basi di Dati e Sistemi Informativi. Structured Query Language

Ministero della Pubblica Istruzione Ufficio Scolastico Regionale per la Sicilia Direzione Generale

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

Linguaggio SQL. Structured Query Language

Laboratorio di Basi di Dati Introduzione a SQL

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

SQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM : SQL ISO 9075:1992 SQL:1999 SQL:2003

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

SQL. Lezione 1. Docente: Alberto Belussi

MAX, SUM, AVG, COUNT)

User Tools: DataBase Manager

Metodi per la Gestione dei Dati (lezioni di laboratorio)

Basi di Da( MySQL & MySQL Workbench. Anna Monreale

Laboratorio di Basi di Dati

PMF Integration Tools

Introduzione. Dicom in Oracle 11g: gestione e vantaggi

Archivi e Basi di Dati

SQL Server. SQL server e un RDBMS di tipo client/server che utilizza Transact-SQL per gestire la comunicazione fra un client e SQL Server

Dispensa di database Access

ISTITUTO DI ISTRUZIONE SUPERIORE Cigna Baruffi Garelli

Transcript:

1.0.1 PostgreSQL Il database Open Source piu' avanzato

Argomenti trattati Corso PostgreSQL - Modulo Base (NdE questa presentazione!) Introduzione ORDBMS PostgreSQL Architettura SQL etc Tools Storia

Argomenti non trattati Corso PostgreSQL - Modulo Amministrazione Amministrazione PostgreSQL Installazione Backup/Restore Sicurezza PostgreSQL su Unix Configurazione Tuning

Argomenti non trattati Corso PostgreSQL - Modulo Avanzato Architetture complesse Replication PostGIS Clustering Progettazione e programmazione Disegno logico/fisico delle basi dati Interfacce di programmazione

Argomenti non trattati Corso PostGIS - Modulo Avanzato Introduzione PostgreSQL OpenGIS Consortium (OGC) SFSQL PostGIS Oggetti geometrici Oggetti geografici Funzioni SQL Applicazioni WEB

Obiettivi Fornire una conoscenza di base su PostgreSQL dal punto di vista architetturale e funzionale Presentare le principali caratteristiche dell'sql di PostgreSQL Fornire una panoramica sugli strumenti piu' comunemente utilizzati su PostgreSQL Storia di PostgreSQL e... futuro!

ORDBMS PostgreSQL e' DBMS relazionale Open Source piu' avanzato al mondo e non ha nulla da invidiare a sistemi commerciali. I suoi principali punti di forza sono: Free! Gratis e distribuito con una licenza molto libera (MIT) Funzionalita' molto ampie (eg. Object Oriented, GIS,...) Robustezza ed integrita' dei dati Notevole diffusione Un ottimo e completo SQL utilizzabile direttamente e con i piu' diffusi linguaggi di programmazione Fornito anche con una licenza commerciale ed con supporto Distribuito in molteplici distribuzioni Linux, Unix ed anche WinX

ORDBMS PostgreSQL risulta particolarmente vantaggioso perche': Buone prestazioni Ricco di funzionalita' Robustezza ed integrita' dati: full ACID, referential integrity, object-oriented Semplice nell'utilizzo, nell'amministrazione e per la programmazione... Object-Oriented Relational Database Management System

ORDBMS Le caratteristiche object-oriented sono potenti ma di semplice utilizzo: Ereditarieta': CREATE TABLE emp (sal numeric) INHERITS (person); Contraints: ON DELETE/UPDATE [RESTRICT CASCADE SET NULL SET DEFAULT] Arrays, User defined data type: INTEGER[3]

Diffusione PostgreSQL e' utilizzato in moltissimi progetti ed ambienti: Nel mondo: Yahoo!, MySpace, BASF, Skype, CISCO,... Altri esempi su: http://www.postgresql.org/about/users Presso il CSI Piemonte: Database GIS (PostGIS; 8.3.4) Varie ed eventuali (CMDBuild) Biblioteche (8.3.5) Pila Standard (9.0.4) Pila Oracle compatible (sperimentale: EDB+Adv)

Argomenti trattati PostgreSQL Introduzione ORDBMS PostgreSQL Architettura SQL Amministrazione PostgreSQL Installazione e configurazione Backup/Restore/Import Sicurezza

Architettura L'architettura di PostgreSQL e' relativamente semplice. La struttura dei processi presenta una serie di processi di background, tra cui il principale (Postmaster) e gli eventuali processi utente (Postgres Server). Il processo postmaster e' il processo principale che si occupa della gestione delle connessioni (e' in LISTEN sulla porta socket di default 5432) ed e' il "padre" di tutti i processi, sia di sistema (eg. wal writer) sia quelli relativi alle connessione utente. Su ogni processo utente e' riportata in argv[*] l'origine e l'attivita' in corso. Tutti i processi girano come utente postgres ed eseguono un attach al segmento di shared memory su cui vengono mantenuti bufer e lock. Nel tempo l'architettura dei processi si e' matenuta sempre costante anche se nelle versioni piu' recenti sono presenti piu' processi di sistema. La consistenza dei dati e' mantenuta con l'mvcc. La struttura fisica consente di utilizzare tablespace diferenti per database.

Architettura - Utilizzo PostgreSQL si utilizza con interfacce grafiche Client-Server (pgadminiii):

SQL PostgreSQL fornisce un SQL ANSI SQL:2008 molto completo e ricco. PostgreSQL e' semplice da utilizzare: $ psql [-d bench] bench=# \dt List of relations Schema Name Type Owner --------+----------+-------+------- public accounts table bench public branches table bench... (4 rows) bench=# \h Available help: ABORT COMMIT DELETE FETCH ALTER AGGREGATE COMMIT PREPARED DISCARD GRANT... bench=# ^D

SQL (DCL) Un'istanza PostgreSQL gestisce piu' database: e' un clustered database Ogni DB e' distinto ed ha un suo catalogo. La scelta del DB da utilizzare va fatta in connessione e non puo' essere cambiata Gli utenti/ruoli valgono per tutto il DB cluster. Le autorizzazioni vengono concesse con il comando di GRANT Ogni Database ha un ruolo PUBLIC Non esistono sinonimi ma la ricerca degli oggetti avviene con il SEARCH_PATH SQL da linea di comando: psql \XYZ permette di visualizzare informazioni sugli oggetti presenti e sullo stato della base dati oppure impostare variabili \dt \d EMP \? Lancio script con \i Output script con \o filename

SQL (DDL) I comandi di DDL sono SQL Standard (eg. create table): E' possibile indicare attributi sulle colonne (eg. NOT NULL, UNIQUE,...) E' possibile dichiarare le foreign key ed i relativi constraint INTEGER, BIGINT 4/8 byte, NUMERIC(s,p) o DECIMAL a virgola mobile, DOUBLE 8 byte in binario DATE solo data, TIME solo ora (fino ai microsecondi), TIMESTAMP data ed ora (fino ai microsecondi) CHAR, VARCHAR e TEXT arrivano sino ad 1GB; BYTEA dati binari SERIAL assegna automaticamente valori univoci alle colonne Altro: ENUM, XML, INTERVAL, BOOLEAN, OID, INET, MONEY, composite, ANY,... Sono presenti diversi tipi di indici. Quello di default e' il BTREE

SELECT SQL (DML) postgres=# select version(), current_user, now();... postgres=# select * from pg_tables;...

SQL (DML) SELECT, PL/pgSQL e TABLE FUNCTIONS ( sum(sal postgres=# select loc, count(*), -> from emp, dept -> where emp.deptno = dept.deptno -> group by loc order by loc limit 5 offset 2;... postgres=# create or replace function empdept(int) returns setof emp7 as $$ select * from emp7 where deptno=$1; $$ language SQL; postgres=# select * from empdept(10);...

SQL (DML) INSERT, UPDATE, DELETE postgres=# insert into votazione(scelta, voti) values ( pizza,1), ( hot-dog,1); postgres=# update emp set sal=sal+100; postgres=# delete from emp where empno=10;

SQL (funzioni) PostgreSQL ha un insieme molto ampio di operatori, funzioni e clausole: Operatori: AND, OR, NOT, BETWEEN, LIKE, SIMILAR, ~,,... Funzioni su stringhe, numeri, date:, SUBSTRING( x FROM y FOR z), LENGTH, UPPER, LOWER,... SIN, ROUND,... NOW, pg_sleep()... Funzioni logiche: CASE WHEN THEN, NULLIF(), GREATEST, LEAST Funzioni di gruppo: COUNT(), SUM(), AVG(), HAVING,...

SQL (funzioni, variabili) PostgreSQL ha un insieme molto ampio di operatori, funzioni e clausole. Tipicamente ogni comando e' richiamato con una funzione: Funzioni di amministrazione: pg_switch_xlog() pg_cancel_backend(pid) pg_terminate_backend(pid) current_setting(setting_name) set_config(setting_name, new_value, is_local) pg_reload_conf() pg_start_backup()...

Altre funzionalita' Molti aspetti funzionali di PostgreSQL non sono stati riportati in questa breve presentazione: Linguaggio procedurale PostgreSQL dispone di diversi linguaggi procedurali per la creazione di funzioni e la programmazione dei trigger. Il piu' utilizzato e' il PL/pgSQL Strumenti di amministrazione psql, pg_dump, pg_dumpall, pg_ctl, pgadminiiii, pg_restore, Replication,... Interfacce di programmazione e connettori Linguaggi: C, C++ via libpq; ecpg; Perl, PHP, Phyton,... Interfacce: JDBC 3/4 type 4, DBD::Pg, plsqlodbc,...

Storia Dal 1995 PostgreSQL ha avuto una notevole evoluzione:

Varie ed eventuali Domande e risposte... Link utili http://www.postgresql.org/ Sito ufficiale PostgreSQL http://www.xenialab.it/meo/web/index1.htm#post In italiano ma non ufficiale!