PostgreSQL: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
fix link
LametinoWiki (discussione | contributi)
Nessun oggetto della modifica
Riga 17:
'''PostgreSQL''' (pronuncia all'[[lingua inglese|inglese]] {{IPA|[poʊstɡrɛs ˌkjuːˈɛl]}} [https://www.postgresql.org/files/postgresql.mp3 Pronuncia], 5,6 kB MP3) è un completo [[Base di dati ad oggetti|DBMS ad oggetti]] rilasciato con [[licenza libera]] (stile [[Licenza BSD]]). Spesso viene abbreviato come "Postgres", sebbene questo sia un nome vecchio dello stesso progetto.
 
PostgreSQL è una reale alternativa sia rispetto ad altri prodotti liberi come [[MySQL]], [[Firebird SQL]] e [[MaxDB]] che a quelli a codice chiuso come [[Oracle Database|Oracle]], [[IBM Informix]] o [[IBM DB2|DB2]] ed offre caratteristiche uniche nel suo genere che lo pongono per alcuni aspetti all'avanguardia nel settore deidelle [[databasebasi di dati]].
 
== Storia ==
Riga 33:
 
== Descrizione ==
Un rapido esame di PostgreSQL potrebbe suggerire che sia simile aglialle altrialtre databasebasi di dati. PostgreSQL usa il linguaggio SQL per eseguire delle query sui dati. Questi sono conservati come una serie di tabelle con [[chiave esterna|chiavi esterne]] che servono a collegare i dati correlati. La programmabilità di PostgreSQL è il suo principale punto di forza ed il principale vantaggio verso i suoi concorrenti: PostgreSQL rende più semplice costruire applicazioni per il mondo reale, utilizzando i dati prelevati daldalla databasebase di dati.
 
ILe databasebasi di dati SQL conservano dati semplici in "[[flat table]]", richiedendo che sia l'utente a prelevare e raggruppare le informazioni correlate utilizzando le query.
Questo contrasta con il modo in cui sia le applicazioni che gli utenti utilizzano i dati: come ad esempio in un linguaggio di alto livello con tipi di dato complessi dove tutti i dati correlati operano come elementi completi, normalmente definiti oggetti o record (in base al linguaggio).
 
La conversione delle informazioni dal mondo SQL a quello della programmazione orientata agli oggetti, presenta difficoltà dovute principalmente al fatto che i due mondi utilizzano differenti modelli di organizzazione dei dati. L'industria chiama questo problema "[[impedance mismatch]]" (conflitto di impedenza): mappare i dati da un modello all'altro può assorbire fino al 40% del tempo di sviluppo di un progetto. Un certo numero di soluzioni di mappatura, normalmente dette "[[object-relational mapping]]", possono risolvere il problema, ma tendono ad essere costose e ad avere i loro problemi, causando scarse prestazioni o forzando tutti gli accessi ai dati ad aver luogo attraverso il solo linguaggio che supporta la mappatura stessa.
 
PostgreSQL può risolvere molti di questi problemi direttamente nelnella databasebase di dati. PostgreSQL permette agli utenti di definire nuovi tipi basati sui normali tipi di dato SQL, permettendo alalla base di databasedati stessostessa di comprendere dati complessi. Per esempio, si può definire un indirizzo come un insieme di diverse stringhe di testo per rappresentare il numero civico, la città, ecc. Da qui in poi si possono creare facilmente tabelle che contengono tutti i campi necessari a memorizzare un indirizzo con una sola linea di codice.
 
PostgreSQL, inoltre, permette l'ereditarietà dei tipi, uno dei principali concetti della [[programmazione orientata agli oggetti]]. Ad esempio, si può definire un tipo codice_postale, quindi creare un tipo cap (codice di avviamento postale) o un tipo us_zip_code basato su di esso. Gli indirizzi nelnella databasebase di dati potrebbero quindi accettare entrambi i tipi, e regole specifiche potrebbero validare i dati in entrambi i casi. Nelle prime versioni di PostgreSQL, implementare nuovi tipi richiedeva scrivere estensioni in C e compilarle nel server della base di databasedati. Dalla versione 7.4 è diventato molto più semplice creare ed usare tipi personalizzati attraverso il comando "CREATE DOMAIN".
 
La programmazione deldella databasebase stessodi dati stessa può ottenere grandi vantaggi dall'uso delle funzioni. La maggior parte dei sistemi SQL permette agli utenti di scrivere una procedura, un blocco di codice SQL che le altre istruzioni SQL possono richiamare. Comunque il SQL stesso rimane inadatto come linguaggio di programmazione, pertanto gli utenti possono sperimentare grandi difficoltà nel costruire logiche complesse. Ancora peggio, il SQL stesso non supporta molti dei principali operatori di base dei linguaggi di programmazione, come le [[Struttura di controllo|strutture di controllo]] di [[ciclo (informatica)|ciclo]] e [[condizionale]]. Pertanto ogni venditore ha scritto le sue estensioni al linguaggio SQL per aggiungere queste caratteristiche, e pertanto queste estensioni non per forza operano su diverse [[piattaforma (informatica)|piattaforme]] di databasebasi di dati.
 
In PostgreSQL i programmatori possono implementare la logica in uno dei molti linguaggi supportati.
Riga 57:
Punti di forza della programmabilità di PostgreSQL:
 
*Incremento delle prestazioni, in quanto la logica viene applicata direttamente dal server della base di databasedati in una volta, riducendo il passaggio di informazioni tra il client ed il server.
*Incremento dell'affidabilità, dovuto alla centralizzazione del codice di controllo sul server, non dovendo gestire la sincronizzazione della logica tra molteplici client e i dati memorizzati sul server.
*Inserendo livelli di astrazione dei dati direttamente sul server, il codice del client può essere più snello e semplice.
 
Questi vantaggi fanno di PostgreSQL, probabilmente, il più avanzato sistema databasebase di dati dal punto di vista della programmabilità, il che aiuta a spiegarne il successo. Utilizzare PostgreSQL può ridurre il tempo totale di programmazione di molti progetti, con i vantaggi suddetti che crescono con la complessità del progetto stesso, ovviamente se utilizzato da utenti esperti nel suo utilizzo.
 
== Indici ==
Riga 103:
 
== Programmi di gestione a interfaccia grafica ==
* [[phpPgAdmin]] – è un'applicazione [[PHP]] libera che consente di amministrare in modo semplificato, con una interfaccia grafica basata sul web, databasebase di dati di PostgreSQL
* [[pgAdmin]] – è un'applicazione multipiattaforma, scritta in [[C++]], che consente di amministrare in modo semplificato, con una interfaccia grafica, databasebase di dati di PostgreSQL.
 
== Altri progetti ==