języki rozszerzające SQL takie jak PL/sql, PL/pgSQL

0

Do czego są wykorzystywane języki rozszerzające SQL takie jak PL/sql, PL/pgSQL? Jakie problemy one rozwiązują(automatyzują?)?

0

Służą one do programowania procedur składowanych. Dzięki nim możesz przenieść część obliczeń na serwer bazodanowy, np. jeżeli masz kilka aplikacji podpiętych od jednej bazy możesz nimi zaprogramować wspólne procedury.

1

Pozwalają na tworzenie własnych procedur i funkcji. Przykładowo można napisać funkcję, która będzie formatować numer NIP przed wstawieniem go do bazy. Można za ich pomocą przenieść część logiki do bazy co czasami ma sens(np. gdy zaprogramowanie tego w normalnych językach jak Java czy php było by upierdliwe).

0

Czy takie programy działają tylko na dane wchodzące do bazy danych? Czy pisze się takie, które działają na już zebranych danych w bazie?

0

Do jakieś kontrolki napisanej w danym języku możesz podpiąć wykonanie pewnej procedury która zmodyfikuje pewne dane znajdujące się już w bazie danych. Dodatkowo możesz wykorzystać triggery które umożliwią Ci wykonanie pewnej czynności w przypadku dodania/zmodyfikowania/usunięcia pewnych danych (np. usuwasz pewne dane z bazy a przy za pomocą triggera usuwasz powiązania z tą daną). Poprzez funkcje możesz wykonać skomplikowane obliczenia na bazie - np. przeliczanie pewnych statystyk.

0

Na dane wchodzące, istniejące jak i zewnętrzne (dzieci nie róbcie tego w domu). Przykładowo:

Dane istniejące (aktualizacja wszystkich wartości np. nowe formatowanie):

Update my_table set my_field = my_procedure(my_field);

Dane wchodzące (formatowanie danych wchodzących):

insert into my_table (my_field) values(my_procedure(some_value));

Dane zewnętrzne (składania działa z tabelą DUAL):

Select my_procedure() from DUAL

Gdzie my_procedure woła sobie np. REST-owy serwis za pomocą jakiejś dodatkowej biblioteki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1