2007.09_PostgreSQL_[Bazy Danych].pdf

(659 KB) Pobierz
332760183 UNPDF
rozwiązania
PostgreSQL
PostgreSQL
zaczynamy z OpenOfice Base
Adam Radłowski
PostgreSQL jest znanym i wcale nie nowym systemem baz danych. Powstał w słynnym Uniwersytecie
Kalifornijskim w Berkeley i nazywał się wtedy po prostu Postgres. W ubiegłym roku obchodził dwudzieste
urodziny. Pomimo podeszłego informatycznie wieku rozwija się bardzo szybko i dynamicznie.
M am okazję już od kilku lat obserwować je-
częściowo lub w całości na GPL, warto zapoznać się
z systemem licencjonowania MySQL-a;
• dobra, przetłumaczona na język polski literatura,
co jest zawsze ważne na początku;
• doskonała, spójna dokumentacja, bazująca na przyję-
tych deinicjach i pojęciach z baz danych, niepróbują-
ca szokować radosnym słowotwórstwem;
• bardzo dobra prędkość obróbki danych przy zacho-
waniu pełnej transakcyjności;
• duża ilość interfejsów programistycznych i sterowni-
ków dostępu do baz;
• bazy danych transakcyjne, bez ustalania ich granicz-
nej wielkości;
• rozbudowany mechanizm kursorów odczytu;
• wieloplatformowość;
• doskonały serwis – fachowe odpowiedziedzi udziela-
ne są nieodpłatnie, nierzadko w ciągu kwadransa.
Dlaczego postawiłem na PostgreSQL?
Tak jak większość programistów musiałem wraz ze zmie-
niającym się (zaczynając od XT) komputerem PC i syste-
mami operacyjnymi, działającymi na tej platformie sprzę-
towej, w pewnym momencie podjąć decyzję o wymianie
poczciwego DOS-a na coś nowocześniejszego. Wybór padł
na Linuksa, a jeśli chodzi o system baz danych – na Post-
greSQL.
Argumentami za PostgreSQL-em były:
• wygodne licencjonowanie – PostgreSQL opiera się na
prostej licencji – BSD, więc nawet mniej restrykcyj-
nej niż LGPL, pozwalającej na swobodne jego uży-
wanie w różnie licencjonowanych aplikacjach; dla po-
równania z innymi systemami baz danych, opartych
Jak zacząć
Jeśli jesteś osobą niezbyt obeznaną z bazami danych SQL,
a potraisz np. choć w małym stopniu używać interfejsu do
tworzenia zapytań, raportów i formularzy w Microsoft®
44
wrzesień 2007
go działanie w różnych systemach opera-
cyjnych, pisać dla niego oprogramowa-
nie klienckie.Nigdy mnie nie zawiódł.
Strona systemu zarządzania bazami danych PostgreSQL:
http://www.postgresql.org .
332760183.009.png 332760183.010.png
 
rozwiązania
PostgreSQL
niczyłem w kursie „ Administering a Microsoft®
SQL Server™ 2000 Database ”, zdumiało mnie
to, że nikt z uczestników oprócz mnie nie znał
SQL-a, choć sądząc po zawartości skryptu na-
pisanego do kursu - ta umiejętność ewidentnie
jest na kursie potrzebna. Dbający o bazy admi-
nistrator na pewno będzie w jakimś momen-
cie zmuszony napisać prosty skrypt SQL - wy-
zwalacz czy cokolwiek innego.
Instalacja sterownika w wersjach 1.1.x opi-
sana jest na stronie sterownika. Zalecam jed-
nak OpenOfice 2.2.x, ponieważ ma on więk-
sze możliwości operowania na bazach danych
niż 1.1.x.
W swojej dystrybucji Linuksa zainstalujcie
wszystko, co należy do pakietu PostgreSQL.
Jeżeli jest to Mandriva 2007 czy Fedora, lokal-
ny motor bazy powinien działać po zainstalo-
waniu i wystartowaniu demona (usługi) Post-
greSQL albo (dla mało doświadczonych) prze-
ładowaniu systemu operacyjnego.
Aby założyć plik bazy danych komuniku-
jącej się z serwerem bazy PostgreSQL, wybie-
ramy w OpenOfice 2.2.x opcję Plik/Nowy/baza
danych .
Będziemy przechodzić przez odpowied-
nie etapy pracy kreatora – przedstawione na
rysunkach.
Wybieramy z listy wyboru „ Połącz z istnie-
jącą bazą danych ” opcję „ postgresql ”.
Teraz wpisujemy parametry połączenia.
Na rysunku 2. przedstawiłem przykładowy
Rysunek 1. Wybieramy z listy wyboru „Połącz
z istniejącą bazą danych” opcję „postgresql”
PostgreSQL i OpenOfice
Dla OpenOfice stworzono sterownik do ob-
sługi baz danych PostgreSQL. Z niego też najle-
piej jest skorzystać przy operowaniu na bazach
(mamy jeszcze JDBC i ODBC, ale wspominany
sterownik wydaje się najsprawniejszy).
Można go pobrać ze strony http://dba.
openofice.org/drivers/postgresql/index.html .
Instalujemy go w OpenOfice 2.2.x w opcji:
Narzędzia/Menedżer pakietów , gdzie po kliknię-
ciu przycisku Dodaj wybieramy plik ze sterow-
nikiem, wyłączamy OpenOfice, włączamy na
powrót i to wszystko.
Access i brakuje Ci czegoś takiego w Linuk-
sie, to z tego artykułu dowiesz się o połącze-
niu OpenOfice z PostgreSQL i... nie będzie
Ci potrzebna gruntowna znajomość Postgre-
SQL-a na początek.
Jeżeli jednak chcesz poznać PostgreSQL
lepiej, to powinieneś, moim zdaniem zrobić
to, co opisuję poniżej.
Należy kupić jakąś cienką książeczkę
z ćwiczeniami praktycznymi. Należy spraw-
dzić, czy publikacja zawiera to, co nas intere-
suje, czyli podstawowe opisy instalacji, koni-
gurowania i pracy na bazie danych. Jeśli nie
znamy języka SQL, należy sprawdzić, czy au-
tor nie zakłada, że taką umiejętność posia-
damy. W moim wypadku była to publika-
cja Marcina Szeligi „ PostgreSQL 7.2. Ćwicze-
nia praktyczne ” .
Trzeba przeczytać tyle, aby wiedzieć, co
zrobić na początek i zainstalować Postgre-
SQL z binarnych pakietów dostarczonych
z naszą dystrybucją Linuksa. Następnie nale-
ży wykonać ćwiczenia z książki, działając prak-
tycznie w systemie baz danych.
Jeżeli chcemy tworzyć oprogramowanie
klienckie, a nie znamy SQL-a, należy nauczyć
się tego języka (książeczka do ćwiczeń po-
winna dawać taką możliwość), tak aby wie-
dzieć, że coś można zrobić. W trakcie używa-
nia PostgreSQL-a będziemy systematycznie
poszerzać naszą wiedzę.
Potem poszukać trzeba dokładniejszej
i bardziej odpowiadającej naszym potrzebom
pozycji, przeczytać ją i działać w PostgreSQL-
u już na etapie rzeczywistego korzystania.
W moim wypadku taką książką była publika-
cja „ Bazy danych i PostgreSQL ” Richarda Sto-
nesa i Neila Matthew.
W trakcie pracy w pewnym momencie
zacząłem się opierać na oryginalnej doku-
mentacji PostgreSQL, która jak dotąd nie za-
wierała (w wersji 8.1.4) tylko jednej odpowie-
dzi - jak używać funkcji umożliwiającej two-
rzenie zapytań do dwóch baz danych naraz.
Należy bezwzględnie poznać język SQL,
nawet jeśli jesteśmy administratorem systemu
baz danych, czyli teoretycznie baz nie używa-
my, nie robimy w nich zmian itp. Kiedy uczest-
Rysunek 2. Wpisujemy parametry połączenia
Rysunek 3. Uwierzytelnienie użytkownika
www.lpmagazine.org
45
332760183.011.png 332760183.001.png 332760183.002.png 332760183.003.png
 
rozwiązania
PostgreSQL
Rysunek 5. Ustawienia specjalne
Rysunek 4. Rejestracja bazy
Aby w OpenOfice możliwa była edycja
tabeli, musi ona mieć klucz główny. Klucz
główny założony na pole specjalne OID nie
daje możliwości edycji. W wersjach 8.1.x
i wyższych domyślnie nie ma OID , oprócz te-
go jest ono ukryte, więc na razie nie kłopocz-
my się tym, co to jest.
W OpenOfice wersja 1.1.x mamy także
dostęp do baz, gdzie możemy tworzyć zapy-
tania, a nawet tabele, wypełniać je, kreować
formularze edycyjne, ale tylko poprzez zare-
jestrowane bazy jako źródła danych (w Open-
Ofice 1.1.x parametry bazy nie są zapisywa-
ne w pliku).
Nie piszę o tym, jak w OpenOfice zakła-
da się tabele czy tworzy zapytania (zapytania
to kwerendy – ten twór językowy także „bar-
dzo lubię”). Jest to temat powiązany z Open-
Ofice, a nie konkretnie z PostgreSQL-em.
Tym niemniej para PostgreSQL-OpenOfice
to naprawdę dobre połączenie klienta do ba-
zy i wysokiej jakości serwera bazy.
Należy także wspomnieć, że w Linuksie
mamy bardzo wygodne narzędzie do pra-
cy z bazami danych (tak wynika z opisów)
– Kexi. Niestety, nie miałem nigdy potrze-
by użyć tej aplikacji. Tym niemniej z samej
ciekawości na pewno „spróbuję się” niedłu-
go z Kexi (kiedy piszę ten artykuł, właśnie
trwa kompilacja).
Niniejszy artykuł najprawdopodobniej
zapoczątkuje serię podobnych, opisujących
różne elementy pracy z PostgreSQL i cieka-
we funkcjonalności tego systemu zarządza-
nia bazami danych.
wpis, który można zmodyikować dla połą-
czenia z dowolnym serwerem PostgreSQL.
W systemach Mandriva 2007 i Fedora, je-
żeli działa już w naszym komputerze serwer
bazy PostgreSQL, mamy dostęp do pustej ba-
zy „ postgres ”. Jeżeli nie umiemy zakładać baz
w PostgreSQL-u, a chcielibyśmy po prostu pra-
cować, wystarczy zamiast powyższych wpisać
parametry user=postgres dbname=postgres .
Wpisy host= ..., port= ..., password= ... pomijamy.
Dla bardziej zaawansowanych - parame-
try, które podajemy, są zgodne z parametrami,
jakie podajemy funkcji PQConnectdb z bibliote-
ki libpq . Nie wpisujemy nazwy użytkownika
i nie zaznaczamy kwadracika (ang. check box )
Wymagane hasło, ponieważ podaliśmy te in-
formacje w parametrach połączenia z bazą. Je-
śli chcielibyśmy, aby OpenOfice zawsze py-
tał nas o hasło przy otwieraniu pliku bazy
OpenOfice, w parametrach połączenia z ba-
zą pomijamy wpisanie danej user i password
i w okienku, które widzimy na Rysunku 3, wpi-
sujemy użytkownika i zaznaczamy kwadra-
cik Wymagane hasło . Kliikamy przycisk Testuj
połączenie .
Mam nadzieję, że podczas pierwszej pró-
by podłączenia do bazy uzyskacie taki sam po-
zytywny komunikat jak na Rysunku 3. W os-
tatnim kroku każemy zarejestrować bazę i wcis-
kamy Utwórz .
Rejestracja bazy do operowania w modu-
le baz danych OpenOfice nie jest potrzebna,
lecz jeśli chcielibyśmy wykorzystać bazę jako
źródło danych dla arkusza kalkulacyjnego al-
bo korespondencji seryjnej, musi ona być za-
rejestrowana.
Już możemy używać bazy, ale koniecz-
nie należy przeprowadzić kilka dodatko-
wych czynności, związanych z ustawianiem
połączenia... Kiedy baza danych jest otwarta,
wybieramy z menu Open Ofice Edycja/Baza
danych/Ustawienia zaawansowane i w zakład-
ce Ustawienia specjalne musimy wybrać opcje
tak jak na Rysunku 5.
W przypadku komputera lokalnego (we
wspominanym przypadku dystrybucji Man-
driva 2007 czy Fedora) nie musimy już nic wię-
cej ustawiać. Jeżeli podłączamy się do serwe-
ra, który koduje polskie znaki inaczej niż nasz
system, musimy poinformować o tym sterow-
nik, wchodząc do Edycja->Baza danych->Wła-
ściwości w zakładce Ustawienia dodatkowe wy-
brać z listy kodowanie znaków serwera bazy . Na
rysunku 6. z systemu pracującego w ISO8859-
2 podłączamy się do bazy danych kodowanej
w UTF-8. Nazwy hosta i portu nie ruszamy,
choć wyglądają dziwnie ( port ) – wpisaliśmy
te elementy wcześniej przy okazji nawiązywa-
nia połączenia. Schemat jest czymś w rodzaju
katalogu (folderu), w którym gromadzone są
tabele w bazie. Jako domyślny schemat klient
PostgreSQL traktuje schemat „ public ”.
Jeżeli podłączamy się w najprostszy spo-
sób do gotowej bazy „ postgres ” w systemie
Mandriva 2007 lub Fedora, w bazie nie ma
schematu „ public ”. Przy zakładaniu pierwszej
tabeli należy po prostu wpisać, że ma ona być
założona w schemacie „ public ” i schemat zo-
stanie założony.
O autorze
Adam Radłowski specjalizuje się w zakre-
sie tworzenia aplikacji bazodanowych dla
sieci lokalnych i rozległych (od kilku lat Post-
greSQL - platforma klienta - Linuks), kieruje
wdrożeniami tych aplikacji, zapewnia pomoc
autorską irmom współpracującym. Równo-
legle zajmuje się m.in. administracją bazami
PostgreSQL oraz systemami GIS.
Kontakt z autorem:
adamr@informatyka.gdansk.pl
Rysunek 6. Podłączamy się do bazy danych
kodowanej w UTF-8
46
wrzesień 2007
332760183.004.png 332760183.005.png 332760183.006.png 332760183.007.png 332760183.008.png
Zgłoś jeśli naruszono regulamin