Lär dig PostgreSQL: Kom igång med den andra gratis databasen

Avslöjande: Ditt stöd hjälper till att hålla webbplatsen igång! Vi tjänar en remissavgift för några av de tjänster vi rekommenderar på denna sida.


PostgreSQL (ibland bara kallat Postgres) är ett öppen källkodsobjektrelationsdatabashanteringssystem (ORDBMS). Avsikten med PostgreSQL-utvecklingsgemenskapen är att göra den till “världens mest avancerade open source-databas.” Den implementerar majoriteten av SQL-standarden, men lägger också till ett antal avancerade funktioner som inte finns i andra relationsdatabassystem.

Kort historia av PostgreSQL

1973 började två datavetare vid UC Berkeley, Eugene Wong och Michael Stonebraker, arbeta med ett databassystem som de kallade Ingres (INteractive GRaphics REtreival System). Arbetet var ursprungligen avsett för användning av universitetets ekonomer, men Stonebraker och Wong utökade projektet till att arbeta med ett relationsdatabassystem, inspirerat av IBM: s System R och koncepten i det nya strukturerade frågeställningen.

1982 lämnade Stonebraker Berkeley för att arbeta med ett proprietärt relationsdatabassystem, som han kallade POSTGRES (Post-Ingres). POSTGRES använde många idéer från Ingres, men var inte en gaffel för dess kodbas. Stonebraker var avsedd att lägga till uttryckligt stöd för datatyper och relationer i databasen.

Den första prototypen för det nya systemet demonstrerades 1988, och version 1 släpptes kom 1989. Version 2 kom nästa år och version 3 nästa år, varje gång med omskrivna frågeställningar. År 1993 fanns det så många användare att POSTGRES-teamet inte kunde följa med supportförfrågningar. 1994 släppte teamet version 4 och avslutade projektet. De släppte allt arbete under en öppen licens (MIT-stil), vilket gav andra utvecklare möjlighet att ta över projektet.

Samma år ersatte två UC Berkeley-studenter POSTGRES frågespråk med SQL och släppte sin nya version (Postgres95) på webben. 1996 tillhandahöll Marc Fournier från Hub.org en utvecklingsserver och Postgres blev ett open source-utvecklingsprojekt. Det byttes namn till PostgreSQL (post-gres-cue-ell). Utvecklingen har sedan dess fortsatt av ett stort samhälle av frivilliga och utvecklare kända som The PostgreSQL Global Development Group.

Om PostgreSQL

PostgreSQL gör alla saker du kan förvänta dig att ett relationsdatabassystem ska göra. Data lagras i användarskapade tabeller, där varje post är en rad i en specifik tabell. Kolumner på en tabell motsvarar olika attribut. Tabeller kan relateras till varandra för att skapa komplexa datastrukturer. Postgres, som de flesta RDBMS, använder SQL för frågor. Det som gör PostgreSQL intressant är antalet ytterligare funktioner som den erbjuder.

Förhållande mellan objekt

PostgreSQL är inte bara en relationsdatabas, det är en objektrelationell databas. Detta innebär att det stöds objektorienterade programmeringsprinciper som arv och polymorfism. Dessa funktioner är ett försök att ta itu med några av de svårigheter som ofta uppstår när man kopplar relationella datastrukturer till objekt.

Datatyper

PostgreSQL tillhandahåller en utvidgad uppsättning av datatyper. Alla RDBMS stöder flera sorter av numeriska, flytande punkt, sträng, booleska och datumtyper. PostgreSQL tillhandahåller också:

  • unga, universellt unika ID, som är viktiga för distribuerade databassystem;
  • monetär, en fast decimaltyp som eliminerar avrundnings- och beräkningsfelen som finns i flytande punktnummer;
  • räknat upp, en statisk uppsättning alternativ;
  • geometriska typer: punkt, ruta, linjesegment, linje, bana, polygon och cirkel;
  • binärt, liknande SQL: s klumpobjekt;
  • nätverksadresser, enligt flera protokoll;
  • bitsträng, binära strängar med fast längd som kan användas som bitmasker;
  • textvektorer som är användbara för sökfunktioner i fulltext;
  • datatillverkningstyper som XML, JSON och matriser;
  • sammansatta typer, som grupperar flera andra typer tillsammans;
  • intervalltyper, inklusive numeriska intervall, datumintervall och tidsintervall;
  • användardefinierade typer.

Datastorlek och integritet

PostgreSQL kan hantera enorma mängder data. Själva uppgifterna kan vara enorma – radstorleksgränsen är 1,6 TB och ett enda fält kan innehålla 1 GB data.

Systemet är också ACID (Atomicity, Consistency, Isolation and Durability) kompatibelt, med mycket stark transaktions- och referensintegritet.

Virtuella tabeller

När du kör en SQL-fråga mot en uppsättning databastabeller är resultatet en annan tabell. Virtuella tabeller är en databasfunktion som låter dig skapa dessa resultattabeller och sedan köra ytterligare frågor mot dem. Detta möjliggör mer komplicerad frågeställning och möjligheter för förbättringar av läsprestanda.

PostgreSQL stöder flera virtuella tabellfunktioner. Två som är unika för PostgreSQL är rekursions- och materialiserade vyer. Rekursion gör det möjligt att köra samma fråga på den resultatuppsättning som den redan producerade. Detta kan göras flera gånger tills alla möjliga aggregerade resultat hittas. Rekursion är användbar för hierarkiskt strukturerade data. Materialiserade vyer skapar ihållande (lagrade) virtuella tabeller, som kan uppdateras när det behövs (en gång om dagen, vid skrivning). För ofta körda frågor med komplexa sammanfogningar kan detta påskynda prestandan enormt.

PostgreSQL-resurser

PostgreSQL fakturerar sig själv som “världens mest avancerade open source-databas”, vilket antagligen är sant. Det betyder att det finns mycket att lära sig när det gäller PostgreSQL. Här är de bästa resurserna för att gå från Postgres nybörjare till expert.

Uppkopplad

Den första platsen att börja med är den officiella PostgreSQL-webbplatsen.

Handledningar

  • Den officiella handledning från postgresql.org, förmodligen det första du bör läsa;
  • PostgreSQL Tutorial, en hel webbplats tillägnad Postgres tutorials;
  • Postgres Guide, en annan webbplats med ett enda syfte, med en massa tutorials om specifika aspekter av att använda PostgreSQL.
  • PostgreSQL Tutrorial en mycket enkel och enkel introduktion från Tutorials Point;
  • PostgreSQL Tutorial en annan grundläggande introduktion från w3resource;
  • PostgreSQL-databasen och Linux, en Linux-specifik handledning (särskilt användbart om du kommer att göra en webbinstallation, eftersom du förmodligen kommer att använda Linux Hosting).

Videohandledning

  • Nybörjarhandbok för PostgreSQL, en betald videobaserad handledning hos Udemy;
  • Nybörjare PostgreSQL-databas Tutorial 1 – Installera och ställa in PostgreSQL;
  • SQL Tutorial 1: Installera och ställa in PostgreSQL;
  • Mode är svårt; PostgreSQL är lätt;
  • Postgres Demystifierad.

Referens

  • PostgreSQL-dokumentation, du bör lära känna detta dokument; det finns en sexvolym utskriftsversion (länk till volym 1) om du föredrar papper;
  • PostgreSQL Wiki, den samhällsdrivna källan för all dokumentation som inte finns i den officiella dokumentationen – en ovärderlig källa till praktisk information;
  • PostgreSQL Cheat Sheet, om du behöver en snabb påminnelse om SQL;
  • PostgreSQL kommandorad cheatsheet, om du behöver en snabb påminnelse om PostgreSQLs psql-kommandon.

Verktyg

  • PostgreSQL Software Catalog, en kategoriserad lista över hundratals verktyg för Postgres;
  • PostGIS, rumsliga och geografiska objekt för PostgreSQL;
  • pgAdmin, nästan oumbärligt skrivbord GUI-verktyg för databashantering;
  • phpPgAdmin, ett webbgui för PostgreSQL, tillgängligt från ett antal webbhotellföretag;
  • Det finns faktiskt ett stort antal GUI-hanteringsverktyg för PostgreSQL;
  • Postgresql-orm-paketet;

Drivrutiner och bibliotek

  • Psycopg och PyGreSQL för Python och django.contrib.postgres för Django;
  • Pg pärla för Ruby;
  • PostgreSQL-förlängning för PHP;
  • Nod-postgres för Node.js;
  • JDBC för Java.

Gemenskap och pågående lärande

  • Postgres Weekly, en regelbunden sammanställning av viktiga PostreSQL-nyheter;
  • PGCon – PostgreSQL-konferens för användare och utvecklare, den officiella årliga samlingen av PostgreSQL-utvecklare;
  • Planet Postgres, en sammanställning av viktiga PostgreSQL-bloggar;
  • Lokal PostgreSQL Meetups-grupp;
  • forum:
    • Postgres Plus Forum;
    • dBforums: PostgreSQL.

Böcker

  • Lärande PostgreSQL, av Juba, Vannahme och Volkov;
  • PostgreSQL: Up and Running: En praktisk introduktion till den avancerade Open Source-databasen, av Obe och Hsu;
  • PostgreSQL för Data Arkitekter, av Jayadevan Maymala;
  • Börjar databaser med PostgreSQL: Från nybörjare till professionell, av Stones och Matthew;
  • PostgreSQL 9 Administration Cookbook, av Riggs, et al;
  • PostgreSQL Developer Guide, av Ahmed, Fayyaz och Shahzad;
  • PostgreSQL Server-programmering, av Dar, et al;
  • PostgreSQL 9 Cookbook med hög tillgänglighet, av Shaun M Thomas;
  • Felsökning PostgreSQL, av Hans-Jurgen Schonig;
  • PostgreSQL Administration Essentials, av Hans-Jurgen Schonig;
  • PostgreSQL, av Korry Douglas.

Allmänna SQL- och relationsdatabasprinciper

Du får mycket mer ut av PostgreSQL om du har en god förståelse för grundläggande RDBMS-principer, speciellt datamodellering (konsten och vetenskapen att ta reda på hur man ska representera information som relationella data).

  • Börjar modellera för relationella data, av Allen och Terry;
  • Learning SQL, av Alan Beaulieu;
  • SQL Cookbook, av Anthony Molinaro;
  • SQL Antipatterns: Undvika fallgroparna i databasprogrammering, av Bill Karwin.

Jämför databaser

PostgreSQL är ett av flera alternativ för relationsdatabashanteringssystem (RDBMS). De primära alternativen till PostgreSQL är:

  • Orakel,
  • MySQL och dess drop-in ersättare MariaDB;
  • Microsoft SQL Server;
  • SQLite.

För de flesta projekt har du naturligtvis inte något val mellan dessa. Oracle är en egenutvecklad applikation som används för stora företag; om det inte är du behöver du inte det. MS SQL Server är också sluten källa och är bara en fördel om du bygger och distribuerar i en Windows-miljö. SQLite är en bra databas för många okonventionella ändamål, men är inte väl lämpad för de flesta databasdrivna applikationer.

Så, hur kan du välja mellan PostgreSQL och MySQL? Här är några resurser för att hjälpa:

  • MySQL vs PostgreSQL, förmodligen den mest detaljerade och opartiska jämförelsen som finns tillgänglig;
  • SQLite vs MySQL vs PostgreSQL: En jämförelse av relationsdatabashanteringssystem;
  • Varför jag väljer PostgreSQL över MySQL / MariaDB;
  • Systemegenskaper Jämförelse MariaDB vs MySQL vs PostgreSQL;
  • PostgreSQL Vs. MySQL.

NoSQL-databaser

Jämförelse av Postgres till MySQL lämnar en snabbväxande kategori databassystem: icke-relationella eller “NoSQL” -databaser. Här är jämförelsen inte mellan två relativt liknande tekniker, utan mellan helt olika sätt att hantera och hantera data.

Den mest populära (överlägset) NoSQL-databasen är MongoDB. De andra relativt populära valen är Cassandra, Couchbase och Redis.

Här är några resurser som hjälper dig att tänka genom att välja mellan PostgreSQL och ett NoSQL-alternativ:

  • SQL vs NoSQL KO. Postgres vs Mongo;
  • PostgreSQL vs NoSQL: Varför struktur är viktig (PDF);
  • Systemegenskaper Jämförelse MongoDB mot PostgreSQL;
  • Jämför Inkomparabel: PostgreSQL vs MySQL vs MongoDB;
  • 9 databaser på 45 minuter.

Intressant nog har PostgreSQL nyligen lagt till några NoSQL-funktioner, medan MongoDB använder PostgreSQL för några av sina analysverktyg.

Behöver jag lära mig PostgreSQL?

”Lärande” PostgreSQL innebär (åtminstone) två saker: allmänna relationella databasprinciper (SQL, datamodellering) och PostgreSQLs unika inställning till dessa saker.

För en majoritet av funktionerna byggda på relationsdatabassystem är det liten skillnad från utvecklarens synvinkel mellan att arbeta med PostgreSQL och en annan RDBMS som MySQL. Denna SQL-kärna är viktig att veta för de flesta webbutvecklare och kommer att tjäna dig bra för de flesta jobb.

Behöver du veta de specifika sakerna som gör PostgreSQL unik? Det beror på vilka andra färdigheter du redan har och vilka typer av system du troligtvis kommer att arbeta med.

I allmänhet föredras MySQL av PHP-utvecklare – det är standard RDBMS för WordPress, Joomla !, och Drupal. .NET-utvecklare och andra som arbetar på Microsoft-servrar kommer vanligtvis att gynna MS SQL Server. Stora företagsutvecklare behöver mer kännedom om Oracle.

Så vem är verkligen i PostgreSQL? Det verkar vara den föredragna databasen för de flesta av Ruby och Python-samhällena, särskilt med Ruby on Rails och Django. Node.js-utvecklare använder ofta Mongo, men när en relationell datastore krävs är det vanligtvis PostgreSQL. Molntjänsteleverantörer tenderar att föredra Postgres framför MySQL, till och med tillhandahålla WordPress-implementeringar ovanpå det.

Tack vare ORM och databasabstraktionen som tillhandahålls av ramar som Ruby on Rails, Django och Laravel kan du göra en hel del utan att känna till PostgreSQL specifikt, så du förmodligen vill fokusera på andra språk först. Men om du redan har fått huvudet på några programmeringsspråk och vill gräva in databasteknologi är PostgreSQL ett bra ställe att börja.

Ytterligare läsning och resurser

Vi har fler guider, självstudier och infografik relaterade till kodning och utveckling:

  • SQL Resources: vår allmänna SQL-resurs som är avgörande för alla relationsdatabasutvecklare.
  • Introduktion till ADO.NET: lära dig allt om detta system för att använda någon databas alls inom .NET-ramverket.
  • Introduktion till Ruby on Rails: kom igång med att lära sig en av de mest populära webbutvecklingsplattformarna.

Ultimate Guide to Web Hosting

Om du ska skapa databasdrivna applikationer kommer du att behöva vara värd för dem någonstans. Kolla in vår ultimata guide till webbhotell. Det förklarar allt du behöver veta för att göra ett välgrundat val.

Ultimate Guide to Web Hosting
Ultimate Guide to Web Hosting

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map