PostgreSQL
Z Wikipedii
| PostgreSQL | |
| Rodzaj | relacyjny system baz danych |
| Pierwsze wydanie | 1 maja 1995 |
| Aktualna wersja stabilna | 8.3.5 - 3 listopada 2008; 20 dni temu |
| Producent | PostgreSQL Global Development Group |
| Licencja | BSD |
| Platforma systemowa | FreeBSD, Mac OS X, Linux, Solaris, Windows |
| www.postgresql.org | |
PostgreSQL (/poːst ɡɹɛs kjuː ɛl/[1]) to, obok MySQL i Firebird, jeden z trzech najpopularniejszych wolnodostępnych systemów zarządzania relacyjnymi bazami danych. Początkowo opracowywany na Uniwersytecie Kalifornijskim w Berkeley i opublikowany pod nazwą Postgres. W miarę rozwoju i zwiększania funkcjonalności, baza danych otrzymała nazwy Postgres95 i ostatecznie PostgreSQL, aby upamiętnić pierwowzór oraz zaznaczyć zgodność ze standardem SQL.
PostgreSQL zalicza się do baz typu RDBMS z rozszerzeniami obiektowymi.
Spis treści |
[edytuj] Cechy
[edytuj] Funkcje
W samej bazie można pisać procedury składowane w różnych językach programowania:
- wbudowany język PL/pgSQL podobny do proceduralnego języka PL/SQL w bazie Oracle
- języki skryptowe m.in.
- języki kompilowane C, C++, lub Java (jako PL/Java)
- język statystyczny R jako PL/R
[edytuj] Indeksy
W PostgreSQL zaimplementowano obsługę wielu typów indeksów takich jak B-drzewo, Hash, R-drzewo i GiST. Indeksy posiadają dodatkowe możliwości:
- Indeksy funkcyjne, gdzie indeks powstaje poprzez wynik funkcji, a nie z wartości kolumny.
- Indeksy częściowe czyli indeksy reprezentujące część tabeli, mogą zostać utworzone poprzez dodanie klauzuli "WHERE" na końcu CREATE INDEX.
- W razie potrzeby PostgreSQL może przeglądać indeksy od końca.
- Od wersji 8.1 możliwe jest łączenia indeksów przy użyciu tzw. bitmap indeksowych.
[edytuj] Wyzwalacze
Posiada mechanizm wyzwalaczy (ang. triggery). Wyzwalacze są uruchamiane automatycznie przed lub po operacjach takich jak UPDATE, INSERT i DELETE. Wyzwalacza nie mogą być używane w widokach, bo nie można na nich przeprowadzać powyższych operacji . Do widoków można użyć mechanizmu reguł (ang. rules) by w ten sposób symulować możliwość zmieniania danych w widoku, który w PostgreSQLu jest z zasady tylko do odczytu. Wyzwalacz jest mechanizmem uruchamiającym procedurę, która może być napisana w dowolnym języku proceduralnym, który jest obsługiwany przez bazę, m.in. PL/SQL, PL/Perl, PL/Python lub PL/Tcl.
[edytuj] MVCC
PostgreSQL ma zaimplementowany mechanizm MVCC (Multiversion Concurrency Control) do zarządzania transakcjami. Mechanizm ten umożliwia udostępnienie tej samej krotki więcej niż jednej transakcji. Równocześnie może istnieć przynajmniej kilka wersji tej samej krotki, które nie są widoczne dla innych użytkowników do zakończenia danych transakcji. Dzięki temu baza danych wydajnie zachowuje zasadę ACID.
[edytuj] Reguły
Reguły są to elementy aktywne, które mogą być stosowane m.in. jako rozszerzenie widoków. Za pomocą reguł można zrealizować widoki modyfikujące, jako że reguły mogą mieć w definicji klauzulę INSTEAD OF co spowoduje, że robiąc zapytanie INSERT wstawiające dane do widoku, reguła zamiast tego zapytania zrobi inne, które wstawi dane do tabeli (bądź wielu tabel), z której widok odczytuje dane.
[edytuj] Typy danych
Rozszerzona jest definicja typów danych, o nowe typy, obejmujące m.in. obsługę:
- adresów IP i IPv6
- bloków CIDR i adresów MAC
- tablic
Dodatkowo użytkownicy mogą definiować własne typy danych, które całkowicie korzystają z infrastruktury GIST PostgreSQL. Doskonałym przykładem jest zdefiniowanie typów danych geograficznych na potrzeby systemów informacji geograficznej (GIS) w module PostGIS.
[edytuj] Obiekty definiowane przez użytkownika
Można tworzyć większość obiektów bazodanowych m.in.:
- indeksy
- operatory
- agregaty
- domeny
- rzutowania
- konwersje
[edytuj] Inne cechy
Silnik ten zawiera wiele obiektowych rozszerzeń takich jak możliwość definiowania nowych typów podstawowych i dziedziczenia typów tablic.
Posiada zaawansowany system transakcji, dwufazowe zatwierdzanie (2PC) i możliwość dodawania funkcjonalności dzięki modułom zawartym w contribie.
Jednym z pierwszorzędnych celów twórców PostgreSQL jest jak największa zgodność ze standardem SQL.
PostgreSQL jest dostępny na platformy: AIX, FreeBSD, HP-UX, IRIX, Linux, Mac OS, Microsoft Windows, NetBSD, OpenBSD, Solaris i UnixWare.
Od 3 listopada 2008 aktualną wersją jest 8.3.5.
PostgreSQL jest dostępny na licencji BSD.
[edytuj] Narzędzia do współpracy z bazą danych
- pgAdmin
- phpPgAdmin - administracja za pomocą przeglądarki internetowej
- psql
- DBManager Professional Enterprise Edition
- TOra
[edytuj] Historia
Historia rozwoju PostgreSQL sięga 1973 roku. Wtedy to dr Michael Stonebraker wraz z Eugene Wong rozpoczęli badania nad relacyjnymi systemami baz danych. Efektem tych badań było rozpoczęcie projektu Ingres na Uniwersytecie Kalifornijskim w Berkeley, w 1977 roku. Projekt prowadzony był pod kierunkiem dr Michaela Stonebrakera, który w 1982 roku opuścił uczelnię, zakładając firmę, która zajęła się skomercjalizowanym systemem Ingres. Jednak wkrótce, w 1984 roku wrócił na uczelnię.
W 1985 roku rozpoczęto pod kierunkiem prof. Michaela Stonebrakera prace badawcze nad projektem obiektowo-relacyjnej bazy danych Postgres (post-ingres). Postgres został wyposażony w zaawansowany język zapytań POSTQUEL. Następnie w 1987 roku wprowadzono do Postgresa reguły, procedury, typy i elementy obiektowe. Projekt ten był sponsorowany przez Defense Advanced Research Projects Agency (DARPA), Army Research Office (ARO), National Science Foundation (NSF) i ESL, Inc. Również ten projekt został skomercjalizowany, nadano mu nazwę Illustra. Ostatecznie komercyjny już system Illustra wykupiła firma Informix. Firma Informix użyła system Illustra w swoim produkcie Universal Server. W przeciwieństwie do projektu Ingres, projekt Postgres był nadal udoskonalany na uniwersytecie. Wersję oznaczoną numerem 1 opublikowano w czerwcu 1989 roku. Następnie w 1990 roku została opublikowana wersja 2, w której przepisano systemem reguł. Natomiast w 1991 roku ukazała się wersja 3 zawierająca m.in. przepisany na nowo systemem reguł i poprawiony silnik zapytań. Ostatnią wersją projektu Postgres była wersja 4.2, która nadal bazowała na języku zapytań POSTQUEL.
Dwaj absolwenci, członkowie zespołu Stonebrakera, Andrew Yu i Jolly Chen w 1994 roku dodali interpreter języka SQL, zastępując język zapytań POSTQUEL. Projekt ten udostępniono na licencji BSD w maju 1995 roku jako Postgres95. Dalszą pracą nad projektem podjęła w 1996 roku społeczność Open Source, zmieniając nazwę projektu na PostgreSQL i tworząc organizację PostgreSQL Global Development Group do koordynacji rozwoju projektu. Zdecydowano się że nowa wersja będzie oznaczona numerem 6.0, jako następca Postgres95, którego można oznaczyć jako wersję 5.0 systemu macierzystego Postgres.
W 2001 Command Prompt, Inc. wydaje Mammoth PostgreSQL, najstarszą istniejącą komercyjną dystrybucję PostgreSQL. Firma ta aktywnie wspiera do dnia dzisiejszego społeczność PostgreSQL przez sponsorowanie programistów i projektów dotyczących m.in. PL/Perl, PL/php oraz hostuje dla projektu PostgreSQL Build Farm.
Natomiast w 2005 roku PostgreSQL otrzymuje pełne wsparcie od firmy Pervasive Software, komercyjnego dostawcy rozwiązań bazodanowych. Firma ta znana jest między innymi z produktu Betrieve, bardzo rozpowszechnionego na platformie Novell Netware. W międzyczasie zaangażowanie w projekt PostgreSQL zgłosiła kolejna firma EnterpiseDB. Firma ta zwraca szczególną uwagę na dostosowanie PostgreSQL do współpracy z aplikacjami specjalnie napisanymi dla Oracle. Natomiast firma Greenplum Inc. wspiera prace m.in. zmierzające do rozszerzenia możliwości systemu przy używaniu jako hurtownie danych, oraz wypuszcza system Bizgres bazujący na PostgreSQL.
W listopadzie 2005 roku Sun Microsystems ogłosił oficjalne wsparcie dla PostgreSQL.
5 grudnia, 2006 roku została wydana wersja 8.2.
[edytuj] Odznaczenia
Baza danych PostgreSQL jest często nagradzana przez użytkowników baz danych.
Niektóre odznaczenia w poszczególnych latach:
- 1999 LinuxWorld Editor's Choice Award for Best Database
- 2000 Linux Journal Editors' Choice Awards for Best Database
- 2002 Linux New Media Editors Choice Award for Best Database
- 2003 Linux Journal Editors' Choice Awards for Best Database
- 2004 Linux New Media Award For Best Database
- 2004 Linux Journal Editors' Choice Awards for Best Database
- 2004 ArsTechnica Best Server Application Award
- 2005 Linux Journal Editors' Choice Awards for Best Database
- 2006 Linux Journal Editors' Choice Awards for Best Database
- 2008 Developer.com Product of the Year, Database Tool
[edytuj] Literatura
[edytuj] polska
- "Bazy danych i PostgreSQL od podstaw" (Richard Stones, Neil Matthew). ISBN 83-7197-650-X
- "PostgreSQL" (Bruce Momjian). ISBN 83-87150-22-3
- "PostgreSQL, Praktyczny przewodnik" (John C. Worsley, Joshua D. Drake). ISBN 83-7197-754-9
[edytuj] angielska
- "Beginning Databases with PostgreSQL, Second Edition" (Neil Matthew, Richard Stones). ISBN 1-59059-478-9
- "Beginning PHP and PostgreSQL 8: From Novice to Professional" (W. Jason Gilmore, Robert Treat). ISBN 1-59059-547-5
- "Practical PostgreSQL" (John C. Worsley, Joshua D. Drake). ISBN 1-56592-846-6 (także dostępna online)
- "PostgreSQL" (Korry Douglas). ISBN 0-672-32756-2
[edytuj] Linki zewnętrzne
- Strona domowa PostgreSQL
- Dokumentacja PostgreSQL
- Planet PostgreSQL - blog ludzi rozwijających PostgreSQL
- Polska strona projektu
- PgFoundry - projekty powiązane z PostgreSQL
Przypisy
- ↑ (przykład dźwiękowy, 5,6 kB MP3
| Straż Graniczna rozbiła grupę przemytników |
Funkcjonariusze Nadbużańskiego Oddziału Straży Granicznej (NOSG) rozbili grupę, zajmującą się obrotem towarami, głównie papierosami, bez polskich znaków skarbowych akcyzy. Zatrzymano trzy osoby. |
| Kurski: widziałem ministra nawalonego jak Messerschmitt |
Zdaniem Jacka Kurskiego Elżbieta Kruk padła ofiarą panującej w mediach niechęci do PiS. Na antenie Radia ZET poseł bronił swojej partyjnej koleżanki i opowiadał o ministrze rządu Donalda Tuska, który pijany przyszedł do studia telewizji Polsat. |
| Autobus wpadł do rowu, 12 rannych |
Na drodze wojewódzkiej nr 865 Jarosław - Lubaczów autobus wpadł do rowu w miejscowości Makowisko (Podkarpackie). 12 osób - uczestników wycieczki - trafiło do szpitala. Na razie nie wiadomo, jak poważne odnieśli obrażenia. |
| Zachodniopomorskie: Ok. 10 tys. osób bez prądu |
W Zachodniopmorskiem wraca zasilanie do powiatów pyrzyckiego i stargardzkiego. Usuwane są kolejne awarie stacji transformatorowych. Prace utrudnia jednak silny wiatr - poinformował rzecznik ENEA OPERATOR Paweł Oboda. Porywisty wiatr i śnieżyce uszkodziły 250 stacji transformatorowych. Ok. 10 tys. mieszkańców nie ma prądu. |
| Wyjazdowe obrady klubu PO: wraca sprawa Staroń |
Podczas wyjazdowego posiedzenia klubu PO w miejscowości Ossa k. Rawy Mazowieckiej Lidia Staroń czyniła wyrzuty kolegom, że nie wsparli jej po publikacji "Rzeczpospolitej". Gazeta napisała, że Staroń zarobiła kilkaset tysięcy zł, bo ustawa, nad którą pracowała, pozwoliła jej uwłaszczyć lokal usługowy. Donald Tusk - relacjonuje zastrzegający anonimowość uczestnik obrad - poparł Staroń, natomiast Zbigniew Chlebowski nie zabrał głosu. |
| Pierwsza ofiara mrozu. Mężczyzna znaleziony na Podkarpaciu |
45-letni mężczyzna jest najprawdopodobniej pierwszą tegoroczną ofiarą mrozów na Podkarpaciu. Policjanci wyjaśniają dokładne przyczyny śmierci mieszkańca Trzebuski. Mężczyznę znaleziono niespełna sto metrów od jego domu. Wiele wskazuje na to, że zmarł w wyniku wychłodzenia organizmu. |
| Pacelt do dymisji, dostanie nowe zadania |
Ostrowiecki poseł Platformy Obywatelskiej Zbigniew Pacelt zostanie odwołany ze stanowiska wiceministra sportu. Teraz będzie odpowiadał za przygotowania reprezentacji Polski do igrzysk w Londynie. |
| Osiedlowy zespół ukradł sprzęt Acid Drinkers |
Policjanci odzyskali sprzęt muzyczny należący do zespołu Acid Drinkers. Złodziejami okazali się 17-letni Jakub K. i 18-letni Paweł K., członkowie osiedlowego zespołu z Ełku. Za kradzież odpowiedzą przed sądem. Grozi im nawet pięć lat więzienia. |
| Drugie podejście PO do ustawy o mediach |
PO wraca do rozmów z lewicą o zmianach w mediach. W przyszłym tygodniu politycy Platformy maja wyłożyć na stół nowy projekt ustawy medialnej - dowiedział się "Dziennik". |
| PiS zaniepokojone sprawą posłów Sejmu Litwy z Kartą Polaka |
PiS jest zaniepokojone sprawą posłów litewskiego Sejmu posiadających Kartę Polaka. Dwóm z trzech posłów AWPL grozi utrata mandatu litewskiego posła z powodu przyjęcia przez nich Karty, co budzi na Litwie kontrowersje. |

