1 / 30

PostgreSQL

PostgreSQL. Vypracoval: Standa Bršlica 50820 @ mail.muni.cz. Historie. vývoj PostgreSQL začal roku 1986 na univerzitě v Berkeley první demoverze byla představena v roce 1988 na konferenci ACM-SIGMOD

arella
Télécharger la présentation

PostgreSQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PostgreSQL Vypracoval:Standa Bršlica 50820@mail.muni.cz

  2. Historie • vývoj PostgreSQL začal roku 1986 na univerzitě v Berkeley • první demoverze byla představena v roce 1988 na konferenci ACM-SIGMOD • v r. 1992 byl kód PostgreSQL zkomercializován společností Illustra Information Technologies • v r. 1995 byl PostgreSQL uvolněn na web jako open-source(autoři Andrew Yu a Jolly Chen)

  3. Okolnosti vzniku • PostgreSQL se vyslovuje Post-Gres-Q-L • PostgreSQLvychází z databáze POSTGRES - výzkumného prototypu DBMS nové generace • zPOSTGESbyl převzat silný datový model a bohatý soubor datových typů a jeho dotazovací jazyk PostQuel byl nahrazen rozšířenou podmnožinou jazyka SQL • poslední verzí jePostgreSQL 7.4.

  4. Hlavní rysy 1/5 • PostgreSQL je open-source šířený pod BSD licencí umožňující vlastní úpravy a jejich další šíření • jeobjektově-relační SQL server • z SQL podporuje cizí klíče, JOIN tabulek, pohledy, TRIGGER, vnořené příkazy SELECT, příkazy CASE, COALESCE a NULLIF

  5. Hlavní rysy 2/5 • umožňuje uživatelem definované funkce • uživatelem definované funkce lze využít k návrhu vlastních datových typů, konverzních a agregačních funkcí • je podporován většinou programovacích jazyků, popř. skriptovacími jazyky : PHP, Perl, Python, Embeded SQL pro C/C++, Java (JDBC) a další

  6. Hlavní rysy 3/5 • na rozdíl od jiných open-source databázových serverů (např. MySQL) podporuje zamykání dat na úrovni záznamu a nikoli na úrovni celé tabulky, tzn., že záznamy je možno číst i při jejich současné aktualizaci, aniž by došlo k již zmiňovanému uzamčení celé tabulky i pro čtení • umožňuje ukládání velkých objektů, včetně obrázků, zvuků a videa. Tyto objekty mohou být vybírány celé nebo po částech client aplikací.

  7. Hlavní rysy 4/5 • podporuje SELECT DISTINCT and SELECT DISTINCT ON ( column ), k zobrazení pouze unikátních řádků. • plně podporuje GROUP BY a agregační funkce jako COUNT, SUM, AVG, MIN, MAX, STDDEV, and VARIANCE. Navíc mohou být agregační funkce vytvářeny v C nebo jiném procedurálním jazyku podporovaným PostgreSQL.

  8. Hlavní rysy 5/5 • obsahuje více jak 100 vestavěných funkcí(matematické, časové a práci s řetězci), ODBC funkce (kompatibilní s Oracle) a podporuje funkce pro full-text indexování • Obsahuje indexování: B-tree, R-tree, Hash a uživatelsky-definované indexační metody. • podporuje rollback

  9. PostgreSQL client/server 1/2 • používá client/server model. • PostgreSQL session se skládá z následujících spolupracujících procesů (programů): - server procesy, které řídí databázové soubory, přijímají připojení do databáze z client aplikací a vykonávají akce na databázi za klienty

  10. PostgreSQL client/server 2/2 - uživatelé client aplikací, kteří chtějí vykonávat databázové operace. Client -aplikace mohou byt různého druhu: • text-oriented nástroje, • grafické aplikace, • web server, které zpřístupňují databáze přes webové stránky nebo • speciální nářadí na údržbu. Některé client aplikace jsou vybaveny PostgreSQL distribucí, většina je však vyvinutá uživateli.

  11. Klient • Klienta lze provozovat na MS Windows (a jiných), ten prostřednictvím TCP/IP protokolu komunikuje se serverem běžícím na některé z podporovaných Unixových platforem. K databázi PostgerSQL lze přistupovat skrze rozhraní ODBC.

  12. Server • Server může být na WindowsNT a Win2k provozován pouze s knihovnou Cygwin, Cygnus Unix/NT porting library. Existuje port pro Novell Netware 6 více na http://forge.novell.com.

  13. Ovladače PostgreSQL Pro PostgreSQL existuje ODBC driver: - ADO.NET provider, - komerční dbExpress Driver, - OpenOffice postgresql-sdbc-driver

  14. Rozhraní v PostgreSQL Distribuce PostgreSQL obsahuje tato rozhraní: • C (libpq) • Embbedded C (ecpg) • Java (jdbc) • Python (PyGreSQL) • TCL (libpgtcl) • další na (http://gborg.postgresql.org)

  15. Schémata • dovolují více uživatelům používat databázi bez rušení druhého uživatele • umožňují organizovat databáze do logických skupin, které jsou lehčeji ovladatelné • v různých schématech mohou být použita stejná jména objektů bez toho, aniž by vznikl konflikt • schémata mohou obsahovat tabulky, funkce a operátory

  16. Datové typy • PostgreSQL podporuje obvyklé datové typy jako int, smallint, real, double, precision, chat(N), varchar(N), date, time, timestamp, interval a bohatou sadu geometrických typů • lze definovat datové typy, proto jména typů nejsou syntakticky klíčová, kromě případů v SQL standardu.

  17. Zajímavé datové typy • Point – bod (x, y) • Line – úsečku ((x1, y1), (x2, y2)) • Path – open path [(x1,y1),...] • polygon – polygon ((x1,y1),...) • circle – kruh <(x,y),r> • cidr –IPv4 nebo IPv6 adresa • Macaddr – MAC adresa

  18. Grafické rozhraní Pro PostgreSQL existuje několik grafickýchrozhraní: - PgAccess (http://www.php.net) - PgAdmin • RHDB Admin (http://source.redhat.com/rhdb/) • PHPPgAdmin - rozhraní založené na web technologii (htttp://phppgadmin.souceforge.net/)

  19. CASE nástroj • CASE Studio 2, které podporuje PostGreSQL 7.4. dále také mimo jiné podporuje MySQL a Firebird. Vyvinuto společností CHARONWARE. • více na (http://www.casestudio.com)

  20. Srovnání s MySQL • v porovnání s MySQL a podobnými databázovými systémy je PostgreSQL rychlejší při víceuživatelském přístupu, složitějších dotazech a zatížení read/write dotazy. • MySQL je rychlejší v jednodušších dotazech s malým počtem uživatelů

  21. Celkové srovnání 1/2 • PostgreSQL má hodně společných vlastností s velkými komečními DBMS, např. transakce, vnořené dotazy, trigger, pohledy, kontrolu referenční integrity a sofistikované zamykání. • podporuje některé vlastnosti, které tyto systémy nemají, uživatelem definované typy, dědičnost, pravidla, MVCC redukující zamykání.

  22. Celkové srovnání 2/2 • podpora mailových konferencí FAQ • velké množství kvalitních manuálů a přístupný zdrojový kód • PostgreSQL lze volně používat pro nekomerční i komerční použití. • možnost do svých produktů přidat kód PostgreSQL bez omezení

  23. MVCC Multi-Version Concurrency Control (MVCC) pro vysoce přizpůsobivé souběžné aplikace: • readersneblokujíwritersa writersneblokují readers. • „lepší než zamykání řádků" • rozmanité řádkové a tabulkové zamykání jsou také dostupné.

  24. 1. příklad • Příklad na vytvoření a zrušení tabulky: CREATE TABLE weather ( cityvarchar(80), temp_loint,--low temperature temp_hiint, -- high temperature prcpreal, -- precipitation datedate ); DROP TABLEweather;

  25. 2. příklady • Příklad select SELECT city, max(temp_lo) FROM weather WHERE city LIKE 'S%' GROUP BY city HAVING max(temp_lo) < 40;

  26. 3. příklady • Příklad na primarní a cizí klíč: CREATE TABLE cities ( cityvarchar(80) primary key, location point); CREATE TABLE weather ( cityvarchar(80) referencescities, temp_loint, temp_hiint, prcpreal, datedate);

  27. 4. příklady • Dědičnost je převzata z object-oriented databází. CREATE TABLE cities ( nametext, populationreal, altitudeint -- (in ft)); CREATE TABLE capitals ( statechar(2) ) INHERITS (cities); • Řádek tabulky capitals zdědí všechny sloupce (name, population, and altitude) z rodičovské tabulky cities

  28. 5. Příklady 1/2 • Příklad na mazání řádku v jedné tabulce spojené se druhou many-to-many.Jestliže chce někdo smazat produkt, na který se někdo odkazuje není to dovoleno.

  29. 5. příklad 2/2 CREATE TABLE products ( product_nointeger PRIMARY KEY, nametext, price numeric); CREATE TABLE orders ( order_idinteger PRIMARY KEY, shipping_addresstext, ...); CREATE TABLE order_items ( product_no integer REFERENCES products ON DELETE RESTRICT, order_id integer REFERENCES orders ON DELETE CASCADE, quantityinteger, PRIMARY KEY (product_no, order_id));

  30. Odkazy • Aktuální verze PostgreSQL7.4.2. lze stáhnout na adrese (http://www.postgresql.org/mirrors-ftp.html) nebo (ftp://ftp2.cz.postgresql.org/pub/postgresql/latest/postgresql-7.4.2.tar.gz) • oficiální stránky (http://www.postgresql.org)

More Related