Bazy_danych_i_PostgreSQL_Od_podstaw_bdpspo.pdf

(1141 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TREŒCI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
Bazy danych i PostgreSQL.
Od podstaw
Autorzy: Richard Stones, Neil Matthew
T³umaczenie: Rados³aw Meryk
ISBN: 83-7197-650-X
Tytu³ orygina³u:
Beginning Databases with PostgreSQL
Format: B5, stron: 610
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOŒCIACH
ZAMÓW CENNIK
PostgreSQL wci¹¿ zyskuje na popularnoœci i jest uwa¿any za najlepszy darmowy system
zarz¹dzania relacyjnymi bazami danych. Pocz¹tkowo by³ tworzony w œrodowisku
uniwersyteckim, potem — jako otwarty projekt internetowy — przez utalentowanych
programistów z ca³ego œwiata. Coraz czêœciej du¿e firmy decyduj¹ siê na wybór
PostgreSQL jako systemu zarz¹dzania bazami danych.
Niniejsza ksi¹¿ka jest kompletnym podrêcznikiem opisuj¹cym cechy systemu
PostgreSQL. Zawiera opis najprostszych metod instalacji i zarz¹dzania systemem,
tworzenia w³asnych baz danych, jak równie¿ omówienie integracji baz danych
z aplikacjami napisanymi w najpopularniejszych jêzykach programowania
wykorzystywanych w Internecie. Czytelnik znajdzie w niej wskazówki dotycz¹ce
tworzenia coraz bardziej wyrafinowanych zapytañ jêzyka SQL, ³¹czenia tabel,
wykorzystywania transakcji, monitorowania pracy serwera, tworzenia w³asnych
aplikacji w jêzykach wysokiego poziomu i wiele innych.
Dla kogo jest ta ksi¹¿ka?
Ksi¹¿ka jest adresowana do Czytelników rozpoczynaj¹cych swoj¹ przygodê
z relacyjnymi bazami danych (nie jest wymagana wiedza z zakresu jêzyków SQL, PHP,
Java czy Perl). Opisano w niej zarówno najprostsze zapytania, jak i coraz bardziej
skomplikowane metody zarz¹dzania bazami danych, które umo¿liwi¹ im rozwi¹zywanie
codziennych problemów administratorów baz danych. Dziêki lekturze mo¿na nauczyæ siê
zarz¹dzania baz¹ danych PostgreSQL w œrodowiskach Windows i Unix.
Co zawiera ksi¹¿ka?
Wprowadzenie do systemu PostreSQL
Opis instalacji z pakietów binarnych i kodów Ÿród³owych w œrodowiskach
Windows i Unix
Opis narzêdzi graficznych
Przyk³ady zapytañ obejmuj¹cych zapytania z³o¿one, funkcje agreguj¹ce i inne
Przedstawienie transakcji, poziomów izolacji, procedur sk³adowanych
i wyzwalaczy
Monitorowanie wydajnoœci i kontrolowanie pracy serwera
£¹czenie z baz¹ danych i wykonywanie instrukcji SQL z poziomu jêzyka C (libpq)
Tworzenie aplikacji przy u¿yciu jêzyków PHP, Perl i Java
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
"
"
"
"
"
"
"
"
Podziękowania ......................................................................................................................................15
Wstęp.....................................................................................................................................................17
Jak wymawiać „PostgreSQL”..................................................................................... 17
Co jest treścią tej książki?........................................................................................ 17
Stosowane konwencje.............................................................................................. 19
Pobranie kodu źródłowego ........................................................................................ 20
Rozdział 1. Wstęp do PostgreSQL.........................................................................................................21
Programowanie z wykorzystaniem danych................................................................... 21
Kartotekowe bazy danych ......................................................................................... 23
Co to jest baza danych? ........................................................................................... 24
Rodzaje baz danych ................................................................................................. 25
Sieciowy model bazy danych................................................................................ 25
Hierarchiczny model baz danych........................................................................... 26
Relacyjny model bazy danych............................................................................... 27
Języki zapytań.......................................................................................................... 28
SQL................................................................................................................... 29
Systemy zarządzania bazą danych ............................................................................. 31
Co to jest PostgreSQL? ............................................................................................ 32
Krótka historia PostgreSQL ................................................................................. 33
Architektura PostgreSQL ..................................................................................... 34
Licencje Open Source ......................................................................................... 35
Zasoby .............................................................................................................. 36
Rozdział 2. Podstawy relacyjnych baz danych ................................................................................. 37
Arkusze kalkulacyjne ................................................................................................ 37
Trochę terminologii ............................................................................................. 38
Ograniczenia arkuszy kalkulacyjnych..................................................................... 39
Czym wyróżnia się baza danych?.......................................................................... 40
Wybór kolumn ............................................................................................... 41
Wybór typu danych dla każdej z kolumn ........................................................... 41
Unikalne identyfikowanie wierszy .................................................................... 42
Porządek wierszy ........................................................................................... 43
Wprowadzanie danych do bazy danych ....................................................................... 43
Dostęp do danych przez sieć ............................................................................... 44
Tworzenie podzbiorów informacji .......................................................................... 45
Dodatkowe informacje.............................................................................................. 48
Wiele tabel......................................................................................................... 48
Relacje pomiędzy tabelami .................................................................................. 49
4
Bazy danych i PostgreSQL. Od podstaw
Projektowanie tabel.................................................................................................. 51
Podstawowe zasady rzemiosła............................................................................. 52
Zasada pierwsza — podział danych na kolumny ............................................... 52
Zasada druga — określenie unikalnego sposobu identyfikacji każdego wiersza .. 52
Zasada trzecia — usunięcie powtarzających się informacji................................ 53
Zasada czwarta — stosowanie właściwych nazw.............................................. 53
Przykład bazy danych klient-zamówienie................................................................ 54
Wyjście poza granice dwóch tabel ........................................................................ 54
Finalizowanie projektu wstępnego ........................................................................ 57
Podstawowe typy danych .......................................................................................... 59
Wartości specjalna NULL..................................................................................... 60
Sprawdzanie wartości NULL ........................................................................... 61
Przykładowa baza danych ......................................................................................... 62
Rozdział 3. Instalacja........................................................................................................................... 63
Instalować czy uaktualniać?...................................................................................... 64
Instalacja PostgreSQL z pakietów binarnych systemu Linux ......................................... 64
Anatomia instalacji PostgreSQL ...................................................................... 66
Instalacja PostgreSQL z kodu źródłowego .................................................................. 69
Uruchamianie PostgreSQL.............................................................................. 72
Tworzenie bazy danych................................................................................... 76
Tworzenie tabel ............................................................................................. 78
Usuwanie tabel ............................................................................................. 79
Wypełnianie tabel danymi............................................................................... 80
Zatrzymywanie PostgreSQL............................................................................. 82
Instalacja PostgreSQL w Windows ............................................................................. 83
Cygwin — środowisko UNIX w systemie Windows............................................. 83
Usługi IPC dla Windows ................................................................................. 87
PostgreSQL dla Cygwin .................................................................................. 88
Kompilacja PostgreSQL w Windows................................................................. 88
Konfiguracja PostgreSQL dla Windows ............................................................ 89
Automatyczne uruchamianie PostgreSQL ......................................................... 90
Rozdział 4. Dostęp do danych.............................................................................................................. 95
Wykorzystanie psql .................................................................................................. 96
Proste instrukcje SELECT ......................................................................................... 98
Podstawianie nazw kolumn................................................................................ 100
Porządek wierszy .............................................................................................. 100
Ukrywanie duplikatów........................................................................................ 103
Wykonywanie obliczeń ............................................................................................ 105
Wybór wierszy........................................................................................................ 107
Bardziej złożone warunki ................................................................................... 109
Porównywanie wzorców ..................................................................................... 111
Ograniczanie liczby wierszy w wyniku .................................................................. 112
Porównania danych o różnych typach ....................................................................... 113
Sprawdzanie wartości NULL............................................................................... 113
Sprawdzanie danych typu data i czas ................................................................. 114
Ustawianie formatu daty i czasu ................................................................... 115
Funkcje daty i czasu .................................................................................... 119
Spis treÊci
5
Wiele tabel............................................................................................................ 121
Tworzenie związku pomiędzy dwoma tabelami ..................................................... 121
Aliasy nazw tabel .............................................................................................. 126
Tworzenie związku trzech tabel................................................................................ 127
Rozdział 5. Graficzne narzędzia PostgreSQL ...................................................................................133
psql ...................................................................................................................... 134
Uruchamianie psql............................................................................................ 134
Polecenia w psql .............................................................................................. 134
Historia poleceń ............................................................................................... 135
Skrypty w psql .................................................................................................. 136
Badanie bazy danych ........................................................................................ 137
Przegląd opcji wiersza polecenia ........................................................................ 138
Przegląd poleceń wewnętrznych ......................................................................... 139
ODBC ................................................................................................................... 139
pgAdmin................................................................................................................ 144
Kpsql.................................................................................................................... 149
PgAccess .............................................................................................................. 150
Formularze i narzędzia do projektowania zapytań................................................. 152
Microsoft Access ................................................................................................... 153
Tabele łączy ..................................................................................................... 154
Wprowadzanie danych....................................................................................... 158
Raporty............................................................................................................ 158
Microsoft Excel ...................................................................................................... 159
Zasoby.................................................................................................................. 163
Rozdział 6. Interfejs danych ..............................................................................................................165
Wprowadzanie danych do bazy danych ..................................................................... 165
Proste operacje INSERT .................................................................................... 166
Bezpieczniejsza postać instrukcji INSERT ...................................................... 169
Wprowadzanie danych do kolumn typu SERIAL .................................................... 170
Dostęp do numerów sekwencji ..................................................................... 171
Wprowadzanie wartości NULL ............................................................................ 173
Polecenie \copy ............................................................................................... 175
Pobieranie danych bezpośrednio z innej aplikacji................................................. 178
Aktualizacja danych w bazie danych......................................................................... 182
Ostrzeżenie................................................................................................. 183
Usuwanie wierszy z bazy danych.............................................................................. 185
Rozdział 7. Zaawansowane wyszukiwanie danych .........................................................................189
Funkcje agregacji ................................................................................................... 190
COUNT ............................................................................................................ 190
GROUP BY a COUNT(*) ................................................................................ 192
HAVING a COUNT(*) .................................................................................... 194
COUNT(nazwa_kolumny)............................................................................... 196
Funkcja MIN() ................................................................................................... 197
Funkcja MAX() .................................................................................................. 198
Funkcja SUM().................................................................................................. 199
Funkcja AVG()................................................................................................... 199
Powiązania typu UNION .......................................................................................... 200
6
Bazy danych i PostgreSQL. Od podstaw
Zapytania podrzędne .............................................................................................. 202
Rodzaje zapytań podrzędnych ............................................................................ 205
Zapytania podrzędne skorelowane ..................................................................... 206
Powiązania same z sobą ........................................................................................ 210
Powiązania zewnętrzne........................................................................................... 211
Rozdział 8. Definicje danych i operacje manipulowania danymi .....................................................217
Typy danych........................................................................................................... 218
Typ Boolean ..................................................................................................... 218
Typy znakowe ................................................................................................... 220
Typy numeryczne .............................................................................................. 222
Typy daty i czasu .............................................................................................. 225
Specjalne typy PostgreSQL ..................................................................................... 225
Tworzenie własnych typów ................................................................................. 226
Typy tablicowe............................................................................................. 226
Konwersja pomiędzy typami............................................................................... 227
Inne operacje manipulowania danymi ................................................................. 229
Magiczne zmienne ............................................................................................ 230
Kolumna OID.................................................................................................... 230
Manipulowanie tabelami......................................................................................... 231
Tworzenie tabel ................................................................................................ 232
Ograniczenia dla kolumny............................................................................. 232
Ograniczenia dla tabel ................................................................................. 236
Uaktualnianie struktury tabeli ............................................................................ 237
Usuwanie tabel ................................................................................................ 240
Tabele tymczasowe........................................................................................... 240
Perspektywy .......................................................................................................... 240
Ograniczenia kluczy obcych..................................................................................... 244
Klucze obce jako ograniczenia dla kolumn .......................................................... 246
Klucze obce jako ograniczenia dla tabel.............................................................. 247
Opcje ograniczeń dla kluczy obcych .................................................................... 250
DEFERRABLE .............................................................................................. 251
ON UPDATE oraz ON DELETE ........................................................................ 251
Rozdział 9. Transakcje i blokady......................................................................................................253
Co to są transakcje? .............................................................................................. 254
Reguły ACID ..................................................................................................... 257
Transakcje dla pojedynczych użytkowników .............................................................. 258
Ograniczenia transakcji ..................................................................................... 260
Transakcje z wieloma użytkownikami ....................................................................... 261
Poziomy izolacji ANSI ........................................................................................ 261
Niepożądane zjawiska.................................................................................. 262
Poziomy izolacji ANSI/ISO ................................................................................. 266
Tryb chained (autozatwierdzanie) oraz tryb unchained .......................................... 267
Blokady................................................................................................................. 268
Zakleszczenia................................................................................................... 269
Jawne blokady.................................................................................................. 271
Blokowanie wierszy...................................................................................... 271
Blokady tabel .............................................................................................. 272
Zgłoś jeśli naruszono regulamin