FAQ POSTGRESQL

FAQ POSTGRESQL
Secondo il sondaggio annuale degli sviluppatori del 2020 di StackOverflow, PostgreSQL è il secondo sistema di gestione del database più popolare disponibile, e questo non è senza buone ragioni. Dalla sua versione iniziale nel 1996, PostgreSQL, o Postgres, è migliorata considerevolmente, aggiungendo diverse funzionalità utili, tra cui tipi definiti dall'utente, eredità della tabella, controllo di concorrenza multi-versione e altro ancora.

PostgreSQL è anche molto leggero, facile da configurare e può essere installato su diverse piattaforme, come contenitori, macchine virtuali o sistemi fisici. Oltre alla sua GUI predefinita, PGADMIN, Postgres supporta anche oltre 50 altri IDE, un terzo delle quali è libero di usare. Questo articolo coprirà alcune delle domande più frequenti (FAQ) su PostgreSQL.

È PostgreSQL gratuito?

PostgreSQL è un prodotto gratuito che è stato rilasciato ai sensi della licenza PostgreSQL approvata OSI. Ciò significa che non è necessaria alcuna commissione per utilizzare PostgreSQL, anche per scopi commerciali, sebbene ci siano alcune estensioni e servizi di terze parti che richiedono un abbonamento o una tantum.

È PostgreSQL Open-source?

Sì, PostgreSQL è open source. PostgreSQL ha iniziato come progetto dell'Università di Berkeley nel 1986 ed è stato rilasciato al pubblico l'8 luglio 1996, come sistema di gestione dei database relazionali gratuiti e open source.

È PostgreSQL-sensibile al caso?

PostgreSQL è sensibile al caso di default, ma in alcune situazioni, può essere insensibile al caso. Ad esempio, quando si crea una tabella in PostgreSQL, i nomi delle colonne e delle tabelle vengono automaticamente convertiti in caso minuscolo per renderli insensibili al caso. Lo stesso viene fatto anche per le domande; In questo modo, corrispondono ai nomi di colonna e tabella già convertiti.

Si noti che quando si utilizzano le citazioni per la colonna o il nome della tabella, come "Importo", la conversione non si verifica. Dovrai anche usare le citazioni nelle tue domande per impedire a PostgreSQL di convertire le query in minuscolo. È inoltre possibile effettuare i valori della colonna che insensibili al caso utilizzando una parola chiave specifica per PostgreSQL chiamata Citext Quando si creano colonne. Questa parola chiave consente anche una colonna dichiarata come UNICO O CHIAVE PRIMARIA essere insensibile al caso.

È postgresql relazionale?

PostgreSQL è stato originariamente progettato per essere un sistema di gestione del database relazionale. Da allora è cresciuto ben oltre il suo design originale, poiché PostgreSQL ora supporta alcune funzionalità NOSQL, come la memorizzazione e il recupero dei dati in JSON (JSONB) e le coppie di valore chiave (Hstore). A differenza di molti database solo NOSQL, le capacità NOSQL di PostgreSQL sono conformi agli acidi e possono essere interfacciate con SQL, come qualsiasi altro tipo di dati supportato da PostgreSQL.

Perché dovrei usare PostgreSQL?

È necessario comprendere le esigenze del tuo prodotto prima di scegliere un sistema di gestione del database per quel prodotto. Di solito, questa scelta si riduce a utilizzare un DBMS relazionale o un database NOSQL. Se hai a che fare con dati strutturati e prevedibili con un numero statico di utenti o applicazioni che accedono al sistema, considera di andare per un database relazionale, come PostgreSQL.

Oltre a scegliere PostgreSQL perché è un RDBMS, ci sono molte altre funzionalità di questo sistema di gestione del database che lo rende uno dei sistemi più popolari disponibili oggi. Alcune di queste caratteristiche includono quanto segue:

  • Supporto per vari tipi di dati, come JSON/JSONB, XML, coppie di valore chiave (Hstore), punto, linea, cerchio e poligono. Puoi anche creare tipi di dati personalizzati.
  • Involucri di dati stranieri che consentono la connessione ad altri database o flussi, come NEO4J, COUCHDB, Cassandra, Oracle e altro, con un'interfaccia SQL standard.
  • Capacità di costruire funzioni personalizzate.
  • Lingue procedurali, come PL/PGSQL, Perl, Python e altro ancora.
  • Accesso a molte estensioni che forniscono funzionalità aggiuntive, come Postgis.
  • Controllo di concorrenza multi-versivo.
  • Autenticazione a più fattori con certificati e un metodo aggiuntivo.

E molto di più. Puoi vedere un elenco completo delle funzionalità offerte da PostgreSQL qui.

PostgreSQL vs MySQL: è PostgreSQL meglio di MySQL?

MySQL è il sistema di gestione del database più popolare disponibile oggi. È leggero, facile da comprendere e configurare, e molto veloce, in particolare quando si tratta di funzioni di sola lettura ad alta corrente. La facilità d'uso di MySQL semplifica la ricerca di amministratori del database per questo sistema di gestione del database.

Detto questo, a MySQL manca di molte delle funzionalità fornite con i database PostgreSQL. Per cominciare, PostgreSQL non è solo un sistema di gestione del database relazionale, ma è anche un sistema di gestione del database degli oggetti-relazionali. Ciò significa che PostgreSQL supporta caratteristiche uniche, come l'eredità della tabella e il sovraccarico delle funzioni.

Funziona meglio quando si tratta di domande complesse sotto carico pesante. Tuttavia, rallenta quando si tratta di operazioni di sola lettura.

PostgreSQL ha anche una gamma più ampia di tipi di dati disponibili e consente di creare tipi di dati personalizzati per il database. Forse il suo più grande vantaggio rispetto a MySQL è l'estensibilità di PostgreSQL. È possibile creare estensioni PostgreSQL per adattarsi al tuo caso d'uso.

Per la maggior parte, PostgreSQL è un DBMS migliore di MySQL. Ma alla fine, tutto si riduce al tuo caso d'uso. Se stai creando un semplice sito Web o applicazione Web e devi solo archiviare i dati, è meglio utilizzare MySQL. Ma se hai a che fare con operazioni più complesse e ad alto volume, considera di andare con PostgreSQL.

PostgreSQL vs MongoDB: è PostgreSQL meglio di MongoDB?

Un confronto tra PostgreSQL e MongoDB è semplicemente un confronto tra sistemi di gestione dei database relazionali e database NOSQL. E la cui risposta è meglio si riduce al caso d'uso; Come vuoi usare e strutturare i tuoi dati. Ogni DBMS contiene caratteristiche utili in diverse situazioni.

Se stai creando un'applicazione con una struttura di dati imprevedibile e dinamica, ti consigliamo di scegliere un database NOSQL come MongoDB. I sistemi di gestione del database NOSQL sono noti per i loro database senza schema, il che significa che la struttura del database non deve essere definita alla creazione. Questo rende i database NoSQL molto flessibili e facilmente scalabili.

PostgreSQL è una soluzione migliore se si lavora con i dati con una struttura statica fissa che cambia raramente. PostgreSQL ha anche il vantaggio di SQL, un linguaggio di query potente e consolidato. I sistemi di gestione del database relazionale sono più appropriati per le applicazioni che richiedono integrità referenziale, come le applicazioni FinTech.

Negli ultimi anni, entrambi i tipi di DBMS hanno adottato funzionalità chiave dall'altro. Ad esempio, come spiegato sopra, PostgreSQL supporta coppie di valore chiave e tipi di dati JSON, caratteristiche chiave dei sistemi di gestione del database NOSQL (DBMS). MongoDB ora afferma di essere conforme all'acido, una caratteristica chiave dei sistemi di gestione dei database relazionali (RBDMS).

Tuttavia, nessuna delle due funzionalità funziona come nel tipo DBMS originale che lo supporta. Ad esempio, secondo questo articolo, MongoDB ha ancora diversi problemi con la sua conformità acida. Inoltre, mentre PostgreSQL supporta i tipi di dati JSON e le coppie di valore chiave, questo sistema non è senza schema. Sei ancora tenuto a dichiarare la struttura alla creazione.

PostgreSQL: come connettersi a un server di database

Prima di connettersi a un database, assicurarsi di aver scaricato e installato PostgreSQL sul sistema operativo. Quindi, lancia il Psql applicazione. Questo apre un programma di interfaccia di comando dedicato per l'interfaccia con il server di database PostgreSQL.

Una volta avviato il server, ti verrà chiesto di compilare i seguenti campi in sequenza: server, database, porta, nome utente e password. È possibile mantenere le opzioni predefinite impostate durante l'installazione di PostgreSQL colpendo accedere per ogni domanda.

Quando si arriva al campo di input della password, immettere la password impostata durante l'installazione per l'utente "Postgres". Una volta fatto ciò e la tua identità è stata convalidata correttamente, sarai connesso al server di database.

Un altro modo per connettersi a un database è utilizzare pgadmin. pgadmin è la GUI di PostgreSQL per l'interfaccia con i suoi server di database. Usare pgadmin, Avvia l'applicazione. Questo dovrebbe aprire un'applicazione Web sul browser. Fare clic con il tasto destro Server Nell'angolo in alto a sinistra dell'app Web, quindi si libra Creare e seleziona Server… Dal menu che viene visualizzato.

Puoi anche fare clic Aggiungi nuovo server Sotto Link veloci. Qualunque opzione tu scelga, ora dovresti vedere una finestra di dialogo che richiede alcune informazioni.

Immettere un nome per il server, quindi accedi a Connessione scheda. Sotto il Connessione scheda, input "localhost" come tuo Nome/indirizzo host, quindi digitare il file Postgres La password dell'utente che è stata impostata durante l'installazione. Clic Salva Per salvare il server. La finestra di dialogo si chiuderà e sarai connesso automaticamente al server di database.

Dove sono archiviati i database postgreSQL?

Per impostazione predefinita, i database PostgreSQL sono archiviati in a dati cartella, ma la posizione di questa cartella varia con il sistema operativo. Su Windows, di solito lo troverai in una delle seguenti posizioni: C: \ Programmi (x86) \ PostgreSQL \\ Data O C: \ Programmi \ PostgreSQL \\ Data.

Su un Mac, se hai installato PostgreSQL tramite Homebrew, lo troverai /USR/Local/Var/Postgres/Data. Altrimenti, si troverà in /Library/PostgreSQL // Data.

Per Linux, la posizione varia con il sapore Linux. A volte si trova in /USR/Local/PGSQL/Data O /var/lib/postgresql/[versione]/dati.

Per determinare la posizione dei database in modo più accurato, immettere il seguente comando in Psql:

Mostra data_directory;

PostgreSQL: come avviare il server del database

L'avvio di un server PostgreSQL è leggermente diverso per ciascun sistema operativo. Per avviare il server su Windows, in primo luogo, individuare la directory del database. Questo di solito è qualcosa come “C: \ Programmi \ PostgreSQL \ 10.4 \ dati."Copia il percorso della directory, poiché ne avrai bisogno in un momento. Quindi, lancio Prompt dei comandi ed eseguire il seguente comando.

pg_ctl -d "c: \ programmi \ postgresql \ 13 \ data"

Il percorso dovrebbe essere il percorso della directory del database che hai copiato. Per fermare il server, sostituire semplicemente "Avvia" con "Stop" nel comando sopra. Puoi anche riavviarlo sostituendo "Inizia con" Riavvia ".

Quando si tenta di eseguire questo comando, è possibile ottenere il seguente errore: “PG_CTL non è riconosciuto come comando interno o esterno." Per risolvere questo problema, aggiungi “C: \ Programmi \ PostgreSQL \ 9.5 \ bin "e" C: \ Programmi \ PostgreSQL \ 9.5 \ lib "alla variabile dell'ambiente percorso del tuo sistema.

Per MacOS, se hai installato PostgreSQL con Homebrew, utilizzare i seguenti comandi:

Per avviare manualmente il server di database, eseguire il comando seguente:

pg_ctl -d/usr/local/var/postgres

Assicurati che il percorso della directory sia quello del tuo database.

Per avviare ora il server di database e rilanciare al login, eseguire il comando seguente:

Servizi di birra Avvia PostgreSQL

Per fermare il server per entrambi gli scenari, sostituire semplicemente "Start" con "Stop"."

In Linux, prima di avviare un server di database, è necessario prima impostare una password per il Postgres utente. Nessuna password è impostata per impostazione predefinita durante l'installazione. È possibile impostare la password con il seguente comando:

Sudo -u Postgres PSQL -C "Altera l'utente Postgres Password 'Postgres';"

Naturalmente, la tua password può essere qualsiasi cosa tu scelga. Una volta impostata la password, per avviare il server, immettere il comando seguente nel terminale:

SUD SERVIZIO POSTGRESQL Avvia

Per fermare il server, sostituire "Avvia" con "Stop" nel comando, proprio come con Windows e MacOS.

PostgreSQL: come creare un database

Per creare un database, assicurarsi di essere già connesso a un server di database. Segui le istruzioni sopra per farlo. Se sei connesso al server tramite Psql, Immettere il comando seguente per creare un database:

Crea database new_database;

Se si desidera connetterti al tuo database creato di recente, immettere il comando seguente:

\ c new_database

Ora dovresti essere connesso ad esso.

Se ti sei connesso al server tramite PGADMIN, sull'app Web, fare clic con il pulsante destro del mouse su Banche dati, molare Creare, e seleziona Banca dati…

È necessario visualizzare una finestra di dialogo A visualizzare alcuni dettagli per creare il database. Dovrai inserire almeno il nome del database per creare il database. Immettere un nome in Banca dati campo e clic Salva. Ora dovresti essere in grado di vedere il tuo database di recente Banche dati.

Dove sono i registri postgresql?

Per impostazione predefinita, i registri postgreSQL sono archiviati nel tronco d'albero cartella sotto il dati cartella, la posizione predefinita per i database PostgreSQL. Per confermare questo, eseguire il seguente comando in PSQL:

Mostra log_directory;

Si noti che questo comando visualizzerà solo un percorso relativo, ma il percorso dovrebbe essere posizionato in dati cartella.

PostgreSQL ha memorizzato le procedure?

Sebbene PostgreSQL abbia sempre supportato le funzioni definite dall'utente, non è stato fino al suo V11.0 Rilascio che includeva il supporto per le procedure memorizzate. Per creare una procedura memorizzata in PostgreSQL, utilizzare il Crea procedura dichiarazione. Per eseguire una procedura memorizzata, utilizzare il CHIAMATA dichiarazione.

Conclusione

PostgreSQL ha visto uno sviluppo attivo da più di 30 anni, essendo stato creato negli anni '80. Durante questo periodo, PostgreSQL è maturato in modo significativo ed è attualmente il secondo sistema di gestione del database più popolare al mondo, secondo il sondaggio annuale degli sviluppatori 2020 di Stackoverflow 2020.

Due ragioni principali per la popolarità di PostgreSQL sono la sua estensibilità e la miriade di funzionalità utili disponibili per i suoi utenti. Se stai selezionando un DBMS per il tuo progetto e hai deciso di preferire un RDBMS su un database NOSQL, PostgreSQL sarebbe una scelta eccellente per la tua applicazione.