PostgreSQL
| PostgreSQL
| |
|---|---|
|
| |
| Podstawowe dane
| |
| deweloper | Globalna grupa programistyczna PostgreSQL |
| Rok wydania | 8 lipca 1996 r. |
| Aktualna wersja |
13.4 ( 12 sierpnia 2021 ) |
| system operacyjny | Pochodne Uniksa , Linux , Windows |
| język programowania | C. |
| Kategoria | System baz danych , serwer |
| Licencja | Licencja PostgreSQL porównywalna z licencją BSD lub licencją MIT |
| niemieckojęzyczny | nie |
| www.postgresql.org | |
PostgreSQL ( English [ , pəʊstgɹɛs kjʊ'ɛl ]), często nazywany Postgres za krótki , jest wolna , system zarządzania bazami danych obiektowo-relacyjnego (Ordbms). Jego rozwój rozpoczął się w latach 80-tych, od 1997 roku oprogramowanie jest open source - rozwijane przez społeczność .
PostgreSQL jest w dużym stopniu zgodne z SQL standardowego SQL: 2011, to znaczy H. większość funkcji jest dostępna i zachowuje się zgodnie z definicją. PostgreSQL jest w pełni zgodny z ACID (w tym język definicji danych ) i obsługuje rozszerzalne typy danych , operatory , funkcje i agregaty . Chociaż społeczność programistów bardzo ściśle trzyma się standardu SQL, nadal istnieje szereg funkcji specyficznych dla PostgreSQL, z adnotacją w dokumentacji dla każdej właściwości, czy odpowiada ona standardowi SQL, czy jest specyficzna. . Ponadto PostgreSQL posiada szeroką gamę rozszerzeń zewnętrznych producentów, takich jak: B. PostGIS do zarządzania danymi geoprzestrzennymi .
PostgreSQL jest zawarty w większości dystrybucji Linuksa . Apple dostarcza wersję Mac OS X Lion (10.7) do PostgreSQL jako standardową bazę danych.
fabuła
PostgreSQL, wcześniej znany jako Postgres, później Postgres95, powstał w wyniku rozwoju bazy danych na Uniwersytecie Kalifornijskim w Berkeley . Zaczęło się od projektu Ingres , w którym Michael Stonebraker był odpowiedzialny za opuszczenie uniwersytetu w 1982 roku, aby komercyjnie sprzedać Ingres. Po powrocie Stonebrakera na uniwersytet w 1985 roku rozpoczął projekt Post-Ingres, aby wyeliminować problemy ówczesnych systemów zarządzania bazami danych. Baza kodu pierwszego postgresa różni się od kodu Ingresa.
W 1989 roku ukończono pierwszą wersję Postgresa.
W 1994 roku, Postgres był przez uczniów Andrew Yu i Jolly Chen w SQL - interpreter rozszerzony i oprogramowanie jako open source pod nazwą Postgres95 zwolniony. Kod Postgres95 był zgodny ze standardem ANSI-C i został zmniejszony o 25%, przy jednoczesnej poprawie wydajności i niezawodności. Postgres95 w wersji 1.0.x był od 30 do 50 procent szybszy niż Postgres w wersji 4.2 w teście Wisconsin .
W miarę rozwoju sieci WWW wzrosło zainteresowanie bazami danych. W 1996 roku Postgres otrzymał nową nazwę PostgreSQL. Pierwsza wersja opublikowana pod tą nazwą to 6.0. Od tego czasu PostgreSQL jest stale rozwijany.
nieruchomości
- Kompleksowa koncepcja transakcji, która obsługuje Multiversion Concurrency Control (MVCC)
- Umożliwia złożone zapytania z podzapytaniami (podwyborami), również zagnieżdżone
- Integralność referencyjna (w tym ograniczenia , klucze obce)
- Ustaw operacje
- Dziedziczenie z tabel
- Maksymalny rozmiar bazy danych jest ograniczony tylko dostępną pamięcią
- Widoki, które można również zapisywać za pomocą reguł (reguł i wyzwalaczy) (widoki aktualizowalne)
- Wyzwalacze i procedury składowane są możliwe w różnych językach: PL/pgSQL , PL/c, PL/Tcl, PL/Python , PL/Perl, PL/Java, PL/PHP, PL/Ruby, PL/R, PL/sh, PL / Scheme, PL / Parrot , PL / V8 (obecnie jeszcze eksperymentalne)
- Interfejsy do wielu języków programowania , w tym C , C ++ , Object Pascal , Java / JDBC , Tcl , PHP , Perl , Python , Ruby oraz ODBC i .NET
- Działa na wielu platformach Unix , od wersji 8.0 również natywnie pod Windows
- Eksport i import zarówno danych jak i struktur baz danych (schematów)
- Możliwość rozbudowy o funkcje, typy danych definiowane przez użytkownika i operatory
- Replikacja asynchroniczna i synchroniczna . Zaletą replikacji synchronicznej jest zapewnienie, że transakcja została faktycznie przeprowadzona na co najmniej dwóch serwerach, co oznacza, że przez cały czas można zagwarantować pełną kopię zapasową (hot standby). Ta niezawodność jest oczywiście kupowana kosztem dłuższego czasu oczekiwania na zatwierdzenie . W związku z tym istnieje również możliwość synchronicznej replikacji szczególnie ważnych procesów biznesowych, takich jak transakcje finansowe, oraz używania znacznie szybszej replikacji asynchronicznej do mniej ważnych transakcji, takich jak rejestrowanie interakcji użytkownika.
Rozszerzenia
Dostępnych jest szereg dodatkowych modułów do zainstalowania przez użytkownika , w tym GiST (Generalized Search Tree), uniwersalny interfejs umożliwiający definiowanie metod wyszukiwania i sortowania w szerokich granicach. Jedną z takich aplikacji jest PostGIS , który może zarządzać obiektami geograficznymi i strukturami danych, a tym samym służyć jako baza danych dla systemów informacji geograficznej (GIS). Inną aplikacją GiST jest OpenFTS ( Open Source Full Text Search), wyszukiwanie pełnotekstowe dozwolone w obiektach DB.
Szereg rozszerzeń zajmuje się klastrowaniem i replikacją , równoległym używaniem i synchronizacją rozproszonych serwerów DB .
Wartości graniczne
W tej sekcji opisano niektóre ograniczenia starszej wersji. Ponieważ nowsze wersje zostały udostępnione, niektóre z nich mogły zostać usunięte.
Opisane tutaj ograniczenia dotyczą wersji 8.4 do 9.5:
- maksymalny rozmiar bazy danych: nieograniczony
- maksymalny rozmiar stołu: 32 TB
- maksymalna wielkość zbioru danych: 1,6 TB
- maksymalny rozmiar komórki: 1 GB
- maksymalna liczba wierszy na tabelę: nieograniczona
- Kolumny VARCHAR i TEXT nie mogą być większe niż 1 GB
- Maksymalna liczba kolumn na tabelę zależy od używanych typów danych i wynosi od 250 do 1600
Zaktualizuj bazę danych
Każdy numer wersji pomocniczej jest utrzymywany przez społeczność programistów PostgreSQL przez pięć lat. Wersje zawierają ulepszenia wydajności i poprawki błędów, ale nigdy nowe funkcje. Najstarsza wciąż używana linia wersji to 9.5, która została wydana w styczniu 2016 roku.
Podczas aktualizacji oprogramowania należy najpierw wykonać kopię zapasową istniejących baz danych, a następnie odtworzyć je w nowej wersji PostgreSQL i danych zaimportowanych z poprzedniej kopii zapasowej. Jest to konieczne, jeśli zmieniła się druga lub pierwsza cyfra numeru wersji, ale nie, jeśli zmieniła się trzecia cyfra.
Wszystkie obsługiwane obecnie wersje są dostarczane z narzędziem o nazwie pg_upgrade, które może aktualizować katalog danych bez konieczności wcześniejszego tworzenia kopii zapasowych i przywracania bazy danych.
Po zaimportowaniu bazy danych należy wykonać polecenie „Analiza”, aby tabela analiz „pg_statistic” została poprawnie wypełniona. Niewykonanie „analizy” może prowadzić do problemów z wydajnością. Wskazane jest również wykonywanie tego polecenia raz dziennie w okresach niskiej pracy w celu utrzymania wydajności. Polecenie „vacuum” powinno być również uruchamiane regularnie, aby ograniczyć rozmiar bazy danych.
Wersje
| wersja | Opublikowano dnia | Opis / uwaga |
|---|---|---|
| 8,0 | Od wersji 8.0 PostgreSQL obsługuje Windows . Kolejną innowacją jest obsługa savepointów. Dzięki nim można kontynuować transakcję w uprzednio zapisanym punkcie zapisu, jeśli została przerwana z powodu błędu . | |
| 8,3 | Luty 2008 | Wersja 8.3 przyniosła szereg ulepszeń wydajności i ulepszeń funkcjonalnych, w tym:
|
| 9,0 | wrzesień 2010 | Wersja 9.0 wprowadziła funkcje replikacji i gorącej gotowości oraz ulepszenia w zakresie bezpieczeństwa, monitorowania i specjalnych typów danych. |
| 9,1 | 12 września 2011 | Wersja 9.1 przyniosła poprawę wysokiej dostępności podczas obsługi kilku serwerów za pomocą replikacji synchronicznej, dostępu do zewnętrznych źródeł danych, kolumnowo poprawnej językowo sortowalności, integracji rozszerzeń i szeregu innych ulepszeń. |
| 9,2 | 10 września 2012 | Wersja 9.2 zawiera przede wszystkim nowe funkcje poprawiające wydajność. |
| 9,3 | 9 września 2013 r. | Znaczące ulepszenia dotyczą obsługi formatu JSON , widoków zmaterializowanych i widoków zapisywalnych . |
| 9,4 | 18 grudnia 2014 | Przyspieszone przetwarzanie danych JSON poprzez format binarny JSONB. |
| 9,5 | 7 stycznia 2016 | Kontrola bezpieczeństwa na poziomie wiersza, indeksy zakresu bloków (BRIN), IMPORT SCHEMATU ZAGRANICZNEGO , dodano pg_rewind. |
| 9,6 | 29 września 2016 | Najważniejsze zmiany dotyczą skalowania pionowego („scale-up”) i poziomego („scale-out”), zapytań równoległych, wyszukiwania fraz i usprawnień replikacji synchronicznej, a także ogólnej poprawy wydajności i użyteczności. |
| 10 | 5 października 2017 r. | Najważniejsze zmiany dotyczą partycjonowania deklaratywnego, replikacji logicznej, ulepszonej równoległości zapytań i lepszych skrótów haseł. |
| 11 | 18 października 2018 | Poprawiono również niezawodność i wydajność partycjonowania, obsługę transakcji w procedurach składowanych oraz równoległość zapytań w zapytaniach równoległych. Istnieje teraz kompilacja just-in-time (JIT) dla wyrażeń. |
| 11,3 | 9 maja 2019 | |
| 11,4 | 20 czerwca 2019 | |
| 11,5 | 8 sierpnia 2019 | |
| 12. | 3 października 2019 r. | Poprawa szybkości zapytań i zapytań wyrażeń SQL/JSON. W tej wersji możliwa jest teraz również wymiana pamięci stołowej. |
| 13 | 25 września 2020 r. |
Narzędzia programowe
Sam PostgreSQL działa w tle i może być interaktywnie obsługiwany na różne sposoby. Aplikacja konsolowa psql jest dostarczana z instalacją do obsługi zorientowanej na wiersz poleceń . Programy z graficznym interfejsem użytkownika do obsługi i zarządzania bazą danych często muszą być instalowane osobno: bezpłatne produkty obejmują PgAdmin i phpPgAdmin . Ponadto oferowana jest duża liczba narzędzi komercyjnych, które oferują również graficzne modelowanie CASE , funkcje importu i eksportu czy monitorowanie baz danych. MySQL Narzędzie migracji jest zawarty w każdej wolnej PostgreSQL pobierania pakietu z EnterpriseDB.
Skrypt Pythona „pgtune” jest ważnym narzędziem do konfiguracji bazy danych. Standardowe ustawienia bazy danych często nie są dostosowane do używanego sprzętu. "Pgtune" pokazuje sugerowane rozwiązania jak "dostroić" bazę danych w celu znacznego zwiększenia wydajności bazy danych. Istnieje narzędzie online do określenia najważniejszych ustawień bazy danych. Początkującym często trudno jest określić odpowiednie parametry konfiguracyjne. Bez odpowiedniej konfiguracji baza danych często nie jest zbyt wydajna. Narzędzie zostało pierwotnie opracowane przez Grega Smitha (drugi kwadrant).
Nagrody i wyróżnienia
PostgreSQL otrzymał w przeszłości wiele nagród. Wreszcie projekt otrzymał nagrodę za całokształt twórczości na OSCON 2019.
literatura
- Lutz Fröhlich: PostgreSQL 9: Praktyczna książka dla administratorów i programistów . Hanser , Monachium 2013, ISBN 978-3-446-42239-1
- Peter Eisentraut, Bernd Helmle: Administracja PostgreSQL . O'Reilly , 2013, ISBN 978-3-86899-361-5
- Ioannis Papakostas: Tworzenie baz danych w PostgreSQL 9 . TEIA AG - Akademia Internetowa i Wydawnictwo Podręczników, Berlin 2010, ISBN 978-3-942151-06-1
- Andreas Scherbaum: PostgreSQL. Praktyka bazodanowa dla użytkowników, administratorów i programistów . Open Source Press , Monachium 08/2009, ISBN 978-3-937514-69-7
linki internetowe
produkt
- www.postgresql.org (angielski) - oficjalna strona internetowa
- www.postgres.de - niemiecka strona dotycząca PostgreSQL
Narzędzia i wyjaśnienia
- PGXN (angielski) — sieć rozszerzeń PostgreSQL
- Wykład Chaos Computer Club Ulm: PostgreSQL - Słoń nigdy nie zapomina (wideo, audio)
- Podcast : / dev / radio na PostgreSQL
- FAQ na sql-info.de
Indywidualne dowody
- ↑ www.postgresql.org . (dostęp 9 czerwca 2017 r.).
- ↑ Wydano PostgreSQL 13.4, 12.8, 11.13, 10.18, 9.6.23 i 14 Beta 3! . (dostęp 13 sierpnia 2021 r.).
- ^ PostgreSQL: Licencja. W: PostgreSQL.org. Źródło 11 kwietnia 2012 .
- ↑ Próbka audio do wymowy „PostgreSQL” (plik MP3; 5,6 kB)
- ↑ Często zadawane pytania dotyczące PostgreSQL. Co to jest PostgreSQL? Jak to się wymawia? Co to jest Postgres? W: wiki.postgresql.org. Pobrano 27 sierpnia 2015 .
- ↑ PostgreSQL: Dokumentacja: 10: Dodatek D. Zgodność z SQL. W: PostgreSQL.org. Źródło 8 listopada 2017 .
- ^ PostgreSQL: macierz funkcji. W: PostgreSQL.org. Źródło 19 maja 2012 .
- ^ PostgreSQL: Informacje. W: PostgreSQL.org. Źródło 11 kwietnia 2012 .
- ↑ PostgreSQL: Dokumentacja: Podręczniki: PostgreSQL 9-1: pg_upgrade. W: PostgreSQL.org. Źródło 11 kwietnia 2012 .
- ↑ Analiza dokumentacji PostgreSQL - zbieranie statystyk dotyczących bazy danych
- ↑ Rutynowe odkurzanie dokumentacji PostgreSQL
- ↑ PostgreSQL 9.0 z wbudowaną replikacją. W: heise online . 20 września 2010, dostęp 11 kwietnia 2012 .
- ↑ Opublikowano PostgreSQL 9.1 – artykuł na Golem.de , od 16 września 2011 r.
- ↑ PostgreSQL 9.2: Informacje o wydaniu – Dokumentacja online PostgreSQL, 10 września 2012 r.
- ↑ http://www.postgresql.org/docs/9.5/static/release-9-5.html
- ↑ http://www.postgresql.org/docs/9.6/static/release-9-6.html
- ↑ PostgreSQL: Dokumentacja: 10: E.1. Wydanie 10. Dostęp 9 października 2017 r .
- ↑ PostgreSQL: Dokumentacja: 11: E.1. Wydanie 11. Źródło 19 października 2018 .
- ↑ Wydano PostgreSQL 11.3, 10.8, 9.6.13, 9.5.17 i 9.4.22! Źródło 17 czerwca 2019 .
- ↑ Wydano PostgreSQL 11.4, 10.9, 9.6.14, 9.5.18, 9.4.23 i 12 Beta 2. 20 czerwca 2019, dostęp 27 czerwca 2019 .
- ↑ PostgreSQL: Dokumentacja: 11: E.1. Wydanie 11.5. Źródło 13 października 2019 .
- ↑ PostgreSQL: Dokumentacja: 12: E.1. Wydanie 12. Pobrano 13 października 2019 r .
- ↑ Wydano PostgreSQL 13! Źródło 25 września 2020 .
- ↑ pgadmin.org (angielski)
- ↑ Strona pobierania PostgreSQL. Źródło 24 września 2011 .
- ↑ Alternatywy — konfiguracja ClusterControl PostgreSQL
- ↑ narzędzie pgtune
- ↑ Jeśli jesteś nowy w PostgreSQL, najczęstszym wyzwaniem, przed którym stajesz, jest dostrojenie środowiska bazy danych.
- ↑ Pozyskiwanie narzędzia online
- ↑ Lista nagród ( pamiątka z 1 marca 2012 r. w Internetowym Archiwum ) na stronie projektu.
- ↑ O'Reilly OSCON na Twitterze. 18 lipca 2019, dostęp 27 marca 2021 .
- ^ Mark Wong: Nagroda PostgreSQL. EnterpriseDB , 23 lipca 2019, dostęp 27 marca 2021 .