La GNU GPL non è sempre accondiscendente; dice di "no" ad alcune delle cose che a volte la gente vuole fare. Alcuni utenti affermano che sia negativo il fatto che la GPL "escluda" alcuni sviluppatori di software proprietario che "hanno bisogno d'essere portati nella comunità del software libero." Ma non siamo noi ad escluderli dalla nostra comunità; sono loro che scelgono di non entrare. Decidere di produrre software proprietario equivale a decidere di starne fuori. Esservi dentro significa cooperare con noi; non possiamo "portarli nella nostra comunità" se non vogliono unirsi a noi. Ciò che possiamo fare è offrire un incentivo ad unirsi a noi. È per far sì che il nostro software già prodotto sia un incentivo che la GNU GPL è stata pensata: "Se renderete il vostro software libero, potete utilizzare questo codice". Di certo in questo modo non si vincerà sempre, ma qualche volta sì. "Richard Stallman"

macbuntu, cinelerra, cinnamon, lmms, ubuntu, linux Debian, Linux Ubuntu, software libero Gnome Media Player, Multimedia, Audio, Video, Linux, Ubuntu ubuntu 13.04, raring ringtail, linux Kubuntu, KDE, Ubuntu Valve Steam, giochi, Linux, Ubuntu QTOctave, MatLab, programmazione, Linux, Ubuntu Google Calendar, Office, Ubuntu, Linux infografica, email, posta elettronica, messaggistica, Ubuntu, Linux Gnome 3 shell, ambiente grafico, Ubuntu, Arch Linux

PostgreSQL, Completo RDBMS (Relational DataBase Management System) Open Source per la gestione di grandi quantità di dati

martedì 23 settembre 2008


Completo RDBMS (Relational DataBase Management System) Open Source per la gestione di grandi quantità di dati. Questo database è scalabile, veloce e supporta in modo completo lo standard ANSI SQL. Ideale come base di dati all'interno di strutture aziendali.

PostgreSQL è un completo database relazionale ad oggetti con licenza libera (stile BSD).

PostgreSQL è un'ottima alternativa sia rispetto ad altri prodotti liberi come MySQL, Firebird SQL e MaxDB che a quelli a codice chiuso come Oracle, Informix o DB2.

Ultima versione stabile: 8.4.1 rilasciata il 09/09/2009.

L'immagine “http://www.aliprestito.net/banner/468x60_ali_r2aereo.gif” non può essere visualizzata poiché contiene degli errori.


Offre caratteristiche uniche nel suo genere che lo pone per alcuni aspetti all'avanguardia nel settore dei database.

PostgreSQL si pronuncia postgre-ES-CHIU-EL (SQL = "es chiu el"). (Esempio audio, 5.6k MP3). Spesso viene abbreviato come "Postgres", sebbene questo sia un nome vecchio dello stesso progetto.

Storia

Inizialmente il dbms si chiamava Ingres ed era un progetto del Berkeley. Nel 1982 il capo progetto, Michael Stonebraker, ha lasciato il Berkeley per commercializzare il prodotto, ma in seguito è tornato all'accademia. Nel 1985 l'ha lasciata nuovamente per dare vita a un progetto post-Ingres (Postgres) che superasse gli evidenti limiti dei prodotti concorrenti dell'epoca. La base dei sorgenti di Ingres e di Postgres erano, e sono rimasti nel tempo, ben distinti.

Il nuovo progetto puntava a fornire un supporto completo ai tipi di dati, in particolare la possibilità di definire nuovi tipi di dati (UDF, User Defined Types). Vi era anche la possibilità di descrivere la relazione tra le entità (tabelle), che fino ad allora veniva lasciata completamente all'utente. Perciò non solo Postgres preservava l'integrità dei dati, ma era in grado di leggere informazioni da tabelle relazionate in modo naturale, seguendo le regole definite dall'utente.

Dal 1986 gli sviluppatori diffusero un gran numero di articoli che descrivevano il nuovo sistema e nel 1988 venne rilasciato un primo prototipo funzionante. La versione 1 venne rilasciata nel giugno del 1989 per un numero di utenti contenuto. Seguì una versione 2 nel giugno del 1990, in cui il sistema delle regole venne completamente riscritto.

Nella versione 3, del 1991, questo sistema venne riscritto ancora, ma venne aggiunto anche il supporto a gestori multipli di immagazzinamento dei dati e un motore di query migliorato. Nel 1993 vi era già un numero di utenti notevole che inondava il team di sviluppo con richieste di supporto e di nuove features. Dopo aver rilasciato la versione 4, che fu principalmente un ripulimento del codice, il progetto terminò.

Sebbene il progetto Postgres fosse ufficialmente abbandonato, la licenza BSD dava modo agli sviluppatori Open Source di ottenere una copia del software per poi migliorarlo a loro discrezione. Nel 1994 due studenti del Berkeley, Andrew Yu e Jolly Chen aggiunsero a Postgres un interprete SQL per rimpiazzare il vecchio QUEL che risaliva ai tempi di Ingres. Il nuovo software venne quindi rilasciato sul web col nome di Postgres95. Nel 1996 cambiò nome di nuovo: per evidenziare il supporto al linguaggio SQL, venne chiamato PostgreSQL.
L'immagine “http://www.motoreshopping.it/barclaycard/550x550_b.jpg” non può essere visualizzata poiché contiene degli errori.
Il primo rilascio di PostgreSQL è stata la versione 6. Da allora ad occuparsi del progetto è una comunità di sviluppatori volontari provenienti da tutto il mondo che si coordina attraverso Internet. Alla versione 6 ne sono seguite altre, ognuna delle quali ha portato nuovi miglioramenti. Nel gennaio 2005 è stata rilasciata la 8.

Sebbene la licenza permetta la commercializzazione del software, il codice di Postgres non è stato sviluppato commercialmente con la stessa rapidità di Ingres. Ad un certo punto, però, Paula Hawthorn (membro originale del team di Ingres) e Michael Stonebraker formarono una società chiamata Illustra Information Technologies per commercializzarlo.

Descrizione
Un rapido esame di PostgreSQL potrebbe suggerire che sia simile agli altri database. PostgreSQL usa il linguaggio SQL per eseguire delle query sui dati. Questi sono conservati come una serie di tabelle con foreign keys (n.d.t. 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 dal database.

I database SQL conservano dati semplici in "flat tables" (tabelle piatte n.d.t.), richiedendo che sia l'utente a prelevare e raggruppare le informazioni correlate utilizzando le query. Questo contrasta con il modo in cui sia le applicazione 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).

Convertire le informazioni dal mondo SQL a quello della programmazione orientata agli oggetti, presenta difficoltà dovute principalmente al fatto che i due mondi utilizzano modelli di organizzazione dei dati molto differenti. L'industria chiama questo problema "impedance mismatch" (discrepanza 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 nel database. PostgreSQL permette agli utenti di definire nuovi tipi basati sui normali tipi di dato SQL, permettendo al database stesso 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 nel database 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 di database. Dalla versione 7.4 è diventato molto più semplice creare ed usare tipi personalizzati attraverso il comando "CREATE DOMAIN".
L'immagine “http://www.motoreshopping.it/prometeo/500x300.gif” non può essere visualizzata poiché contiene degli errori.

La programmazione del database stesso 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 strutture di controllo di 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 piattaforme di database.

In PostgresSQL i programmatori possono implementare la logica in uno dei molti linguaggi supportati.

* Un linguaggio nativo chiamato PL/pgSQL simile al linguaggio procedurale di Oracle PL/SQL, che offre particolari vantaggi nelle procedure che fanno un intensivo uso di query.
* Wrappers per i più diffusi linguaggi di scripting come Perl, Python, Tcl, e Ruby che permettono di utilizzare la loro potenza nella manipolazione delle stringhe e nel link ad estese librerie di funzioni esterne.
* Le procedure che richiedono prestazioni maggiori e logiche di programmazione complesse possono utilizzare il C ed il C++.
* Inoltre è disponibile anche un interfacciamento all'esoterico linguaggio R, ricco di funzioni statistiche e per il calcolo matriciale

Il programmatore può inserire il codice sul server come funzioni, che rendono il codice riutilizzabile come stored procedure, in modo che il codice SQL possa richiamare funzioni scritte in altri linguaggi (come il C o il Perl).

Punti di forza della programmabilità di PostgreSQL:

* Incremento delle prestazioni, in quanto la logica viene applicata direttamente dal server di database 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 database dal punto di vista della programmabilità, il che aiuta a spiegare il successo di Illustra. utilizzare PostgreSQL può ridurre fortemente il tempo totale di programmazione di molti progetti, con i vantaggi suddetti che crescono con la complessità del progetto stesso.
fonte: wikipedia

L'immagine “http://www.parship.it/main/images/banner/yyc468c.gif” non può essere visualizzata poiché contiene degli errori.

Ultimi post pubblicati




160x600_kingolotto_auto.gif

Vacanze    TUI.it

Universo Linux

0 commenti:

Ultimi post pubblicati

I miei preferiti

Segnala Feed WebShake – tecnologia iFeed Aggregatore di blog Aggregatore Blogstreet - dove il blog è di casa Vero Geek iwinuxfeed.altervista.org Paperblog Add to Technorati Favorites Directory dei blog italiani BlogItalia.it - La directory italiana dei blog Feed XML offerto da BlogItalia.it BlogNews Il Bloggatore web counter Feedelissimo intopic.it