PostgreSQL
PostgreSQL je volný namítat-relační databáze server, povolený dolů BSD- styl licence. To je alternativa k jiný volný-softwarové databázové systémy (takový jak MySQL, Firebird, a SapDB), stejně jako proprietární systémy takový jak Věštec a IBM je DB2.
Oficiální výslovnost " PostgreSQL " je " pošta-Gress-Q-L ".
| Tabulka s obsahem |
| 1 historie 2 popis 3 rysy 4 vnější spojení |
PostgreSQL je konečný výsledek dlouhého vývoje, který začíná s Ingres projekt u UC Berkeley. Vedení projektu, Michael Stonebraker opustil Berkeley k commercialize Ingres v roce 1982, ale nakonec se vrátil k akademickému světu. Poté, co se vrátil k Berkeleyu v roce 1985, Stonebraker odstartoval poštu-Ingres projekt k adrese problémy s modelem relační databáze, který stal se rostoucí vyjasní se během časných osmdesátých lét. Primární volby mezi tyto byly příbuzenská modelová neschopnost rozumět " píše ", kombinace jednodušších dat, která tvoří jedinou jednotku. Dnes my typicky odkazovat se na tyto jak objekty.
Vyplývající projekt, pojmenovaný Postgres, mířil na představovat minimální počet rysů potřeba sčítat dokončit podporu typů. Tito zahrnovali schopnost definovat druhy, ale také schopnost k úplně popisovat vztahy & ndash který až do tohoto čas byl široce použitý ale tvrdil úplně uživatelem. V Postgres databáze " rozuměl " vztahy, a mohl vyhledávat informace v příbuzných stolech v předurčeném člověku používání cesty pravidla.
Začínat v roce 1986 tým uvolnil množství dokladů popisovat východisko pro systém, a 1988 měl prototyp verzi nahoru a běh. Verze 1 byl propuštěn k malému počtu uživatelů v červnu 1989, následovaný verzí 2 s re-systém napsaných pravidel v červnu 1990. 1991 je verze 3 re-napsal pravidla systém znovu, ale také přidal podporu pro rozmanité ukládací manažery a zlepšený dotazový motor. 1993 tam byli obrovský počet uživatelů a projekt byl zaplaven žádostmi pro podporu a rysy. Poté, co uvolnil verzi 4 primárně jak cleanup, projekt skončil.
Ačkoli Postgres projekt měl oficiálně skončil, BSD licence pod kterým Postgres byl vyvinut umožněný Otevřený zdroj vývojáři získat kopii a vyvinout to dalečejší. V roce 1994, Andrew Yu a veselý Chen dodal SQL interpret jazyka nahradit dříve QUEL systém Ingres byl umístěný na, vytvářet Postgres95. Kód byl následovně povolený k webu nacházet si jeho vlastní cestu na světě. Postgres95 byl otevřený zdroj potomek tohoto originálního Berkeley kódu. V roce 1996 to bylo rozhodl se změnit jméno odrážet použití SQL, slušivý PostgreSQL, a verze počítat byl tlačil se dopředu k verzi 6, proto výroba Postgres95 se stát verzí 5. Software byl udržován skupinou vývojářů databáze z celého světa, uspořádaný přes internet.
Ačkoli licence počítala s commercialization Postgres, unlike Ingres Postgres kód nebyl rozvinutý komerčně se stejnou rychlostí jak Ingres, který je poněkud překvapující rozvažování výhody produkt nabídl. Hlavní odnož byla vytvořena když Michael Stonebraker a Paula Hawthornová, originál Ingres člen týmu, který přešel z Ingres, se tvořil Illustra informační technologie k commercialize Postgres.
Illustra je produkt byl nejprve představen v roce 1991, kde to bylo používáno v Sequoia 2000 vyčnívat pozdě ten rok. 1995 produkt přidal schopnost psát elektrické moduly, na které oni se odkazovali jak DataBlades. Unlike jiné elektrické technologie, s DataBlades externí autoři mohli psát kód vytvořit nové minimum-vyrovnaný datatypes, a říci databázi jak k obchodu, indexovat a řídit to. Pro příklad, jeden nejpopulárnější DataBlades byl používán vytvořit čas-série, seznam jedné zvláštní proměnné v průběhu doby, často s mezerami. Pro příklad, cena akcie v průběhu doby se mění, ale tam jsou časy, jako víkendy, kde data se nemění a není tam žádný záznam. Tradiční databáze mají difficultly zabývat se tímto druhem úlohy; zatímco oni mohou najít záznam pro zvláštní datum, nález jeden to je " aktivní " v jednom z mezer čas konzumuje. Se sériemi času DataBlade, toto bylo rychlé a snadné.
DataBlades byl increadibly úspěšný a začal tvořit značný průmysl " bzučet ", nakonec vedoucí Informix koupit společnost úplně v roce 1996. Zasvěcenci průmyslu prohlašovali, že to by nebylo možné sloučit dva produkty, ale ve skutečnosti toto bylo přijatelně snadné protože oba byli založení na originále Ingres kód a pojetí. Infomix povolený jejich Illustra-umístěný Server univerzálie v roce 1997, opouštět je v bezproblémové pozici v podmínkách technické hodnoty. Popis
Zběžná prohlídka Postgres vyústí v popis systému, který je velmi podobný jiným systémům relační databáze: PostgreSQL použití SQL jazyk k dotazům běhu na datech, která jsou organizována jak sérii stolů s cizí klíče spojovat příbuzná data spolu. Primární výhody Postgres přes tyto systémy jsou nejlépe popisovány jak programmability: Postgres dělá to hodně snadnější stavět skutečné aplikace používat data vzatého od databáze.
Relační model uloží jednoduché datové typy v " byt " stoly, vyžadovat, aby uživatel sbíral příbuzné informační používání SQL jazyk. Toto rozpory s cestou data sám skončí být používán, typicky v vysokoúrovňovém jazyce s bohatými datovými typy kde všichni příbuzných dat je zvažován být kompletní jednotka jeho vlastní, typicky odkazoval se na jak záznam nebo objekt se spoléhat na jazyk.
Přestavovat informace od SQL svět do programovacího světa je těžký protože dva prostě mít velmi odlišné modely cesty data jsou organizována. Tento problém je široce známý jak impedance záměna v průmyslu, a mapování od jednoho modelu k jiný typicky pokračuje asi 40 % času projektu. Množství řešení mapování, typicky odkazoval se na jak namítat-relační mapování, být na trhu, ale oni inklinují být drahý a mít problémy jejich vlastní, pozoruhodně výkon.
V Postgres mnoho z těchto záležitosti mohou být řešeny přímo v databázi. Postgres dovolí uživateli definovat nové druhy umístěný ven normální SQL píše, dovolovat databázi sám rozumět datům komplexu. Pro intance, vy můžete definovat adresa sestávat z několik řetězců pro věci jako číslo ulice, město a země. Od toho bod na jednom může snadno vytvořit tabulky obsahovat všechna pole potřeboval držet adresu s jediným řádkem.
Postgres také dovolí typům zahrnovat dědičnost, jeden z hlavních představ v objektově orientované programování. Pro příklad, jeden mohl definovat pošta _ kód psát, a pak vytvořit nás _ zip _ kód a canadian _ postal _ kód založený na nich. Adresy mohly pak být speciallized pro nás _ adresa a canadian _ adresa, včetně speciallized pravidla potvrdit data v každém případ.
Další velmi užitečný rys je to Postgres přímo rozumět vztahům mezi stoly. Skuteční lidé typicky má několik adres, který v relačním modelu je uložen tím, že umístí adresy v jednom stolu a zbytek informací uživatele v jiném. Adresy jsou " příbuzný " ke zvláštnímu uživateli tím, že uloží nějakou unikátní informaci, vyslovit uživatelské jméno, v adrese předložit sebe. Aby našel všechny adresy pro " třepat Smithem ", uživatel napíše dotazu to " spoje " data zpět spolu, tím, že zvolí zvláštní jméno od stolu uživatelů a pak hledat to jméno ve stolu adresy. Dělat hledání všech uživatelů v New Yorku je poněkud komplexní, vyžadovat, aby databáze nacházel všechna jména uživatele ve stolu adresy pak hledání stůl uživatele pro ty uživatele. Typické hledání by mohlo vypadat jako toto:
Výběrový u. * od uživatele u, adresa kde. město = ' New York ' a. uživatel _ jméno = u. uživatel _ jméno
V Postgres vztah mezi uživateli a adresy mohou být explicity definovaný. Jednou definovaný adresa se stane vlastnictvím uživatele, tak hledání nahoře může být zjednodušeno velmi k:
Výběrový * od uživatele kde adresa. město = ' New York '
Ne " spoj " je vyžadován, databáze sám rozumí uživateli. oslovit vztah. Příbuzný příklad ukáže moc typů, jestliže jedna použití Postgres dělat:
Vybraná adresa od uživatele
Výsledky budou být rozbity ven automaticky, vracet se jediný ty adresy pro uživatele, ne ti pro firmy nebo jiné objekty, které by mohly být používat stůl adresy.
Konečně programování databáze sám je velmi zlepšen náležitý k funkce. Nejvíce SQL systémy dovolí vám psát uložený proceedure, blok SQL kód, který může být se stavil jiný SQL sdělení. Nicméně SQL sám je chudý programovací jazyk a komplexní logika jde velmi obtížně vytvořit. Horší, mnoho z nejzákladnějších operací v programovacím jazyce, jako branching a looping, být ne podporovaný v SQL sám. Místo toho každý prodejce psal jejich vlastní rozšíření k SQL jazyk přidat tyto rysy, který být nepodrážděný platforma.
V Postgres vy můžete zapsat logiku nejvíce některý jazyk vy si vyberete a seznam podporovaných jazyků roste s každým propuštěním. Kód je pak vložený do serveru jak funkce, malý obal, který nutí kód se objevit jak jestliže to bylo uložený proceedure. Tímto způsobem SQL kód může volat (například) C kód a zlozvyk-versa, dramaticky zvětšovat jednoduchost a výkon.
Tyto výhody sečtou se k výrobě Postgres snadno nejpokročilejší databázový systém od programovacího pohledu, který je jeden důvod pro úspěch Illustra. Používání Postgres moci dramaticky redukovat celkový programovací čas na mnoho projektech, s výhodami rostoucí se složitostí projektu. Rysy
Některé rysy PostgreSQL zřídka nalezený v jiných relačních databázích zahrnovat:
- Uživatelsky definované typy
- Uživatelsky definovaní operátoři
- Dostupnost rozmanitý uložená procedura jazyky, včetně C, SQL, Perl, Python, Tcl, Ruby, skript shellu, nebo domorodec PL / PgSQL
- Podpora pro zeměpisné objekty přes PostGIS
- Souběžnost je řízena přes Multi-verzové řízení souběžné práce (MVCC) design, který zajistí vynikající výkon a dokonce dolů těžký souběžný přístup
- Dědičnost stolů
- Pravidla -- způsob, jak realizovat server-logika strany, která dovolí aplikačního vývojáře modifikovat " strom dotazu " přícházejícího dotazu
- Funkční indexy, částečné indexy
- Omezení referenční integrity včetně omezení cizího klíče, omezení sloupce a kontroly řady
- Spouště
- Pohledy
- Vnější spoje
- Náhradník-vybere
- Transakce
- Silná shoda s SQL standard (SQL92, SQL1999)
- Zašifroval spojení přes SSL
- Binární a textual velký-ukládání objektu
- Online záloha