Bazy danych – postgreSQL – programowanie i implementacja.pdf

(122 KB) Pobierz
Microsoft Word - bazy_danych2.doc
temat seminarium: „ Bazy danych – postgreSQL – programowanie i implementacja
temat pracy magisterskiej: „Baza danych postgreSQL – zarządzanie obrazami medycznymi”
27-listopad-2001
Jakub Turmiński
I
Spis treści.
1. Wiadomości wstępne
2. Architektura aplikacji współpracującej z baza danych
3. Relacyjne baza danych na przykładzie postgreSQL-a(rekord, pole, klucz główny,
klucz zewnętrzny, indeks, relacja, tabela, baza danych, rodzaje relacji)
4. Język zapytań - SQL (przykłady)
5. Interfejsy bazy danych
6. PHP/FI (funkcje dostępne do obsługi postgreSQL-a)
7. Formularze HTML
8. Omówienie przykładowej aplikacji „turmomed”
9. Literatura
1. Wiadomości wstępne (pojęcia)
baza danych
DBMS
transakcja
RDBMS (relacyjne bazy danych) 1969r
Język zapytań (SQL) (standardy SQL-1 –1986, SQL-2 – 1992, SQL3-?)
Rodzaje baz danych (lokalne, klient-serwer)
2.1 Architektura aplikacji współpracującej z baza danych
rys.1
2.2 Rysunek teoretyczny – warstwowy model architektury
 
7844318.007.png
2.3 Rysunek warstwowy model architektury w naszym przykładzie
Rys.3
2.4 Aplikacja bazy danych jako interfejs użytkownika
2.5 Warstwa środkowa – reguły dziedziczenia danych
2.6 Komunikacja z bazą: sterowniki, dostęp do danych, protokoły sieciowe
2.7 Sterowniki ODBC (Microsoft)
7844318.008.png 7844318.009.png 7844318.001.png 7844318.002.png
2.8 Sterowniki JDBC (Sun)
3. Relacyjne bazy danych na przykładzie postgreSQL-a
3.1 PostgreSQL – jako relacyjna baza danych
3.2 PostgreSQL – jako baza danych w architekturze klient-serwer
3.3 Instalacja PostgreSQL-a
3.4 Demon bazy –> postmaster (uruchamianie: #postmaster –i & (port5432))
3.5 Zmienne środowiskowe ($PGHOST, $PGDATA, $PGUSER, $LOGFILE, $PGLIB)
3.6 Administracja postgreSQL-em
3.6.1 baza wzorcowa –template1
3.6.2 programy narzędziowe (createdb, destroydb, createuser, destroyuser, vacuumdb)
3.6.3 plik konfiguracyjny dostępu do baz danych postgreSQL-a – pga_hba.cfg
3.7 Interaktywne programy klienckie (psql, kpsql, pgaccess)
4 Język zapytań - SQL (przykłady)
4.1 CREATE DATABASE turmomed;
4.2 DROP DATABASE turmomed;
4.3 CREATE TABLE patient (
id_patient SERIAL,
surname VARCHAR(30),
name VARCHAR(15),
address VARCHAR(50),
PRIMARY KEY(id_patient)
);
4.4 INSERT INTO patient (surname, name, address)
);
CREATE TABLE examination (
id INTEGER NOT NULL UNIQUE PRIMARY KEY,
nr_pics INTEGER,
type varchar(5),
id_patient INTEGER REFERENCE patient(id_patient)
7844318.003.png 7844318.004.png 7844318.005.png
VALUE (‘Kowalski’, ’Jan’, ’ul. Ciepła 5/3’);
4.5 UPDATE patient SET imie=’Piotr’
WHERE id_patient=9;
4.6 DELETE FROM patient
WHERE nazwisko = ‘Kowlaski’;
4.7 SELECT nazwisko, imie, adres
FROM patient
WHERE id_exam = 132;
SELECT surname, name, type
FROM patient JOIN examination
WHER id = 17;
4.8 CREATE INDEX surname_name
ON patient (surname, name);
5. Interfejsy bazy danych
HEITML (rozszerzenie HTML’a o <IF>, <WHILE>, itd...)
APPGEN 4GL
Interface CGI/perl
Python
ODBC, JDBC
PHP/FI
6. PHP/FI (funkcje dostępne do obsługi postgreSQL-a)
6.1 Schematyczny rysunek ułatwiający zrozumienie działania skryptów PHP
Rys.7 Sposób w jaki PHP współpracuje z przeglądarką, serwerm WWW oraz serwerem baz
danych.
6.2 Znaczniki PHP (<? ?> <?PHP ?>)
6.3 Zmienne w PHP ($i=1;)
6.4 PHP jako uproszczony jesyk C++
6.5 Najważniejsze funkcje PHP służące do obsługi baz postgreSQL
pg_connect() – funkcja otwiera połączenie do wskazanej bazy danych
postgreSQL I w przypadku poprawnego wykonania zwraca identyfikator
połączenia. W razie pojawienia się jakichkolwiek błędów funkcja zwraca wartość
FALSE. Identyfikator zwrócony przez tę funkcję jest wykorzystywany w
7844318.006.png
wywołaniu innych funkcji służących do obsługi baz danych postgrSQL. Definicja
funkcji wygląda jak następuje:
int pg_connect(string host, string port, string opcje,
string tty, string nazwa_bazy);
pg_exec() – funkcja wykonuje zapytanie SQL na bazie danych postgreSQL
określonej za pomocą identyfikatora połączenia (argument połączenie). Jeśli
podane polecenie mogło być wykonane, funkcja zwróci identyfikator wyników.
Jeśli identyfikator połączenia nie jest poprawny lub jeśli podczas wykonania
funkcji pojawią się jakieś błędy, zwracana jest wartość FALSE. Funkcja zwraca
indeks, który może zostać wykorzystany do pobrania wyników zapytania.
pg_fieldisnull() – funkcja zwraca wartość TRUE, jeśli wartość pola wynosi
NULL. W przypadku gdy wartość pola nie wynosi NULL, funkcja zwraca
wartość FALSE. Pole można określić podając jego nazwę lub indeks. Numeracja
wierszy rozpoczyna się od wartości 0. Definicja przedstawia się następująco:
int pg_fieldisnull(int id_wyników, int wiersz, mixed pole);
Pg_fieldname() – funkcja zwraca nazwę określonego pola ze zbioru wyników.
Pole to określone jest za pomocą liczby, przy czym numeracja zaczyna się od 0.
A oto składnia funkcji:
Stringpg_fieldname(intid_wyników, int numer_pola);
pg_fieldsize() – funkcja zwraca wielkość pola określonego za pomocą liczby.
Jeśli funkcja zwróci wartość 0, będzie to oznaczało, iż długość pola może się
zmieniać. W przypadku pojawienia się błędów zwracana jest wartość –1.
Składnia jest następująca:
int og_fieldsize(int id_wyników, int numer_pola);
pg_fieldtype() – funkcja zwraca łańcuch znaków zawierający nazwę typu danych
wskazanego pola zbioru wyników. Numeracja pól zaczyna się od 0. Składnia
funkcji wygląda następująco:
string pg_fieldtype(int id_wyników, int numer_pola);
pg_numrows() – funkcja zwraca ilość wierszy w zbiorze wyników. Argument
id_wyników musi być poprawnym identyfikatorem wyników zwróconym przez
funkcję pg_exec(). W przypadku powstania jakichkolwiek błędów funkcja zwraca
wartość –1. A oto składnia funkcji:
int pg_numrows(int id_wyników);
pg_numfields()– funkcja zwraca ilość pól w zbiorze wyników. Argument
id_wyników musi być poprawnym identyfikatorem wyników zwróconym przez
funkcję pg_exec(). W przypadku powstania jakichkolwiek błędów funkcja zwraca
wartość –1. A oto składnia funkcji:
int pg_numfields(int id_wyników);
pg_result() – funkcja zwraca pojedynczą daną ze zbioru wyników o podanym
identyfikatorze. Identyfikator zbioru wyników musi być zwrócony przez funkcję
pg_exec(). Identyfikator wyników wskazuje na dane zapisane w wielu wierszach,
z których każdy zawiera wiele pól. Argument numer_wiersza wskazuje, z
którego wiersza ma pochodzić pobrane pole. Samo pole określane jest za pomocą
argumentu nazwa_pola, może to być nazwa pola lub jego indeks. Zarówno
indeksy wierszy jak i pól rozpoczynają się od wartości 0. Funkcja zwraca dane w
postaci liczb całkowitych, zmiennoprzecinkowych lub łańuchów znaków.
Definicja funkcji wygląda następująco:
mixed pg_result(int id_wyników, int numer_wiersza, mixed nazwa_pola);
Zgłoś jeśli naruszono regulamin