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

języki rozszerzające SQL takie jak PL/sql, PL/pgSQL
PI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 227
0

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

V1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 14
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.

Koziołek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Stacktrace
  • Postów: 6823
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).

PI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 227
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?

P0
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 57
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.

Koziołek
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Stacktrace
  • Postów: 6823
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):

Kopiuj
Update my_table set my_field = my_procedure(my_field);

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

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

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

Kopiuj
Select my_procedure() from DUAL

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.