Príručky

Čo je Postgres? Databáza, na ktorej stojí veľa aplikácií, vysvetlená

Postgres (oficiálne PostgreSQL) je bezplatná relačná databáza s otvoreným zdrojovým kódom: program, ktorý ukladá dáta aplikácie do tabuliek riadkov a stĺpcov, prepája tieto tabuľky a odpovedá na otázky o nich v jazyku SQL. Je známy spoľahlivosťou, prísnosťou pri udržiavaní správnych dát a dostatočnou flexibilitou, aby zvládol čokoľvek od zoznamu registrácií až po záznamy veľkej firmy. Mnohé webové aplikácie — a mnohé služby, ktoré ich hostujú — stoja na ňom.

Prečo je to dôležité pri tvorbe s AI

Keď nástroj na tvorbu aplikácií s AI pridá do projektu „databázu“, s veľkou pravdepodobnosťou ide o Postgres. Nemusíte písať SQL, aby ste ho používali, ale trocha porozumenia veľa pomôže:

  • Dáta viete opísať tvarom, aký databáza potrebuje. „Zákazníci majú veľa objednávok; každá objednávka má veľa položiek“ sa priamo preloží do tabuliek.
  • Viete požiadať o správne ochrany. Postgres dokáže sám odmietnuť zlé dáta — duplicitný e-mail, objednávku pre neexistujúceho zákazníka — ak AI nastaví pravidlá.
  • Viete prečítať, čo AI urobila. Názvy tabuliek, stĺpce a vzťahy sa ľahko kontrolujú v prehliadači tabuliek, aj keď sa nikdy nedotknete kódu.

Každodenné prirovnanie: veľmi prísny registratúrny úrad

Predstavte si registratúrny úrad so skrinkou pre každý druh vecí — jedna pre zákazníkov, jedna pre objednávky, jedna pre produkty. Každá karta v zásuvke má rovnaké vytlačené políčka na vyplnenie. Každá karta má jedinečné číslo a objednávková karta nezopakuje údaje zákazníka; len hovorí „zákazník č. 214“ a ukazuje do zásuvky zákazníkov.

Úradník je prísny. Neprijme objednávku, ktorá ukazuje na neexistujúceho zákazníka. Neprijme kartu s prázdnym povinným dátumom. A ak ho požiadate, aby presunul peniaze z jednej účtovnej karty na druhú, buď vykoná obe polovice, alebo žiadnu — nikdy len jednu.

Tým úradníkom je Postgres. Zásuvky sú tabuľky, vytlačené políčka sú stĺpce, každá karta je riadok a odkaz „zákazník č. 214“ je cudzí kľúč (foreign key).

Čo Postgres robí dobre

FunkciaČo to znamená jednoducho
Tabuľky a vzťahyDáta sú v tabuľkách, ktoré na seba ukazujú, takže sa nič nekopíruje na piatich miestach
SQLŠtandardný jazyk na kladenie otázok: „všetky nezaplatené objednávky z minulého mesiaca, najnovšie prvé“
Transakcie (ACID)Skupina zmien sa buď celá vykoná, alebo sa nevykoná nič, aj keď server uprostred spadne
Obmedzenia (constraints)Pravidlá, ktoré databáza vynucuje sama: povinné polia, jedinečné e-maily, platné prepojenia medzi tabuľkami
IndexySkratky pri vyhľadávaní, aby hľadanie zostalo rýchle, keď tabuľky rastú
JSONBUkladanie flexibilných dát v dokumentovom štýle do stĺpca, keď sa pevná štruktúra nehodí
Fulltextové vyhľadávanieVyhľadávanie slov v textových poliach bez osobnej vyhľadávacej služby, pre jednoduché prípady
RozšíreniaDoplnky, napríklad PostGIS pre mapy a polohy, alebo pgvector na ukladanie AI embeddingov
Bezpečnosť na úrovni riadkovPravidlá v databáze o tom, ktoré riadky môže daný používateľ vidieť

Postgres vznikol ako výskumný projekt na University of California v Berkeley v 80. rokoch a od 90. rokov ho vyvíja otvorene globálna komunita. Táto dlhá história je dôvodom, prečo je často predvolenou voľbou: je dobre zdokumentovaný, široko podporovaný a každý väčší cloudový poskytovateľ ponúka spravovanú verziu.

Ukážkový príklad: premena tabuľky na databázové tabuľky

Predstavte si, že máte malý catering a všetko evidujete v jednej tabuľke: každý riadok je udalosť s menom klienta, telefónom, e-mailom, dátumom, ponukou jedál a cenou.

Problémy sa objavia rýchlo. Ten istý klient sa objaví na šiestich riadkoch s dvoma rôznymi telefónnymi číslami. Jedlá sú napísané do jednej bunky ako „canapés x40, salad x2“, takže nemôžete spočítať, koľko canapé ste za mesiac pripravili.

V Postgrese sa tie isté informácie stanú štyrmi tabuľkami:

TabuľkaStĺpcePoznámky
clientsid, name, phone, emailE-mail musí byť jedinečný
eventsid, client_id, date, venue, statusclient_id musí zodpovedať skutočnému klientovi
menu_itemsid, name, unit_priceJeden riadok na jedlo
event_itemsevent_id, menu_item_id, quantityPrepája udalosti s jedlami a množstvom

Teraz je telefónne číslo klienta uložené na jednom mieste. „Koľko canapé sme pripravili v marci?“ je jeden SQL dotaz. A keď zapíšete novú udalosť s jej položkami, transakcia zaručí, že nikdy neskončíte s udalosťou, ktorej sa uložila iba polovica položiek.

Tento krok ľudia preskakujú, keď AI požiadajú „urob mi aplikáciu z tejto tabuľky“. návod na premenu tabuľky na aplikáciu ide ďalej.

Kľúčové pojmy

  • Tabuľka, riadok, stĺpec: druh veci, jeden konkrétny výskyt, jedna informácia o ňom.
  • Primárny kľúč: jedinečné ID každého riadku, zvyčajne id.
  • Cudzí kľúč: stĺpec, ktorý ukazuje na riadok v inej tabuľke, napríklad client_id.
  • Schéma: návrh všetkých tabuliek a stĺpcov.
  • Migrácia: uložená, opakovateľná zmena schémy, napríklad „pridaj stĺpec venue do events“.
  • Dotaz (query): otázka alebo príkaz napísaný v SQL.
  • Connection string: adresa a heslo, ktorými backend dosiahne databázu. Je to tajomstvo — pozri premenné prostredia a tajomstvá.
  • Spravovaný Postgres: služba, ktorá za vás spúšťa, zálohuje a aktualizuje Postgres.

Pre každodenné operácie, ktoré každá aplikácia vykonáva nad týmito tabuľkami — vytvoriť, čítať, upraviť, zmazať — pozri čo znamená CRUD.

Bežné chyby a omyly

  • Jedna obrovská tabuľka. Kopírovanie stĺpcov tabuľky jeden na jeden vedie k rovnakým problémom s duplicitami. Veci, ktoré sa opakujú, rozdeľte do vlastných tabuliek.
  • Ukladanie zoznamov do jedného textového poľa. „canapés x40, salad x2“ v jednom stĺpci sa nedá správne spočítať ani prehľadávať. Použite prepájaciu tabuľku.
  • Žiadne obmedzenia. Bez pravidiel „e-mail musí byť jedinečný“ alebo „každá udalosť potrebuje klienta“ sa zlé dáta potichu dostanú dovnútra a vynoria sa o mesiace neskôr.
  • Ručné meniť databázu v produkcii. Požiadajte o zmeny schémy ako migrácie, aby bola zmena zaznamenaná a dala sa zopakovať.
  • Nechať prehliadač komunikovať s databázou priamo. Frontend má ísť cez backend, ktorý kontroluje oprávnenia. Heslo k databáze nikdy nepatrí do kódu stránky.
  • „Postgres je iba pre veľké firmy.“ Rovnako dobre beží pre zoznam čakajúcich s 50 riadkami a s rastom aplikácie ho nebudete musieť opustiť.
  • Predpoklad, že databáza je záloha. Ukladá dáta; automaticky vás nechráni pred ich zmazaním. Skontrolujte, aké zálohy poskytuje váš hosting.

Čo požiadať od nástroja na tvorbu s AI

  • „Ukladaj [veci] do databázy. Tabuľky: … s týmito poľami: … Každú [objednávku] prepoj so [zákazníkom].“
  • „Nastav e-mail ako jedinečný u zákazníkov. Tieto polia urob povinné. Neumožni objednávku bez zákazníka.“
  • „Pre každú zmenu schémy použi migrácie.“
  • „Pridaj indexy pre vyhľadávania, ktoré robíme najčastejšie: objednávky podľa zákazníka a podľa dátumu.“
  • „Všetok prístup k databáze ide cez server. Connection string drž v premenných prostredia.“

Ak o databáze ako takej ešte neviete, začnite s čo je databáza a potom sa sem vráťte. Full-stack aplikácia ukazuje, kde databáza sedí vedľa frontendu a backendu.

Postgres v Mythexe

Mythex dáva každému projektu, ktorý ju potrebuje, vlastnú dedikovanú databázu Postgres. Nemusíte ju konfigurovať: požiadajte v chate („ulož e-maily čakajúcich do databázy“) alebo použite príkaz /database, Mythex ju pripojí, vloží údaje o pripojení do vašej aplikácie a môže za vás vytvoriť tabuľky. Publikovaná aplikácia uspí svoju databázu po piatich minútach nečinnosti a zobudí ju pri ďalšej požiadavke; platíte za čas, počas ktorého bola skutočne hore, z rovnakého kreditového konta ako tvorba. Podrobnosti sú v dokumentácii k databázam a šablóny dashboardov sú dobrým miestom, kde vidieť aplikácie napojené na dáta.

Otázky

Je Postgres to isté ako PostgreSQL?

Áno. PostgreSQL je oficiálny názov a Postgres je bežný skrátený názov; oba označujú tú istú relačnú databázu s otvoreným zdrojovým kódom.

Je Postgres zadarmo?

Áno. PostgreSQL je open source pod permisívnou licenciou PostgreSQL, takže ho môžete používať zadarmo aj v komerčných produktoch. Platíte iba za servery alebo spravovanú službu, na ktorej beží.

Aký je rozdiel medzi Postgresom a MySQL?

Obe sú bezplatné relačné SQL databázy a obe sú vhodné pre väčšinu aplikácií. Postgres je známy prísnou integritou dát, bohatými dátovými typmi ako JSONB a poľá a veľkým ekosystémom rozšírení; MySQL je známy jednoduchosťou a dlhou históriou vo webovom hostingu.

Je Postgres vhodný pre malú aplikáciu?

Áno. Dobre funguje pre jednoduchý zoznam čakajúcich s jednou tabuľkou aj pre veľké produkčné systémy, takže nebudete musieť databázu meniť, keď aplikácia rastie. Spravované služby uľahčujú prevádzku bez databázového administrátora.

Mythex · Pricing · Vytvorte čokoľvek s AI · Šablóny webov a aplikácií · Mythex v porovnaní · Slovník pojmov tvorby aplikácií s AI · Bezplatné nástroje na tvorbu aplikácií s AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)