Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Funkcja wbudowana

Termin Definicja
Funkcja wbudowana

Funkcja wbudowana to funkcja dostarczana natywnie przez system bazodanowy, gotowa do użycia bez dodatkowej implementacji.

Rola funkcji wbudowanych w systemie bazodanowym

Funkcja wbudowana to gotowy mechanizm udostępniany przez system bazodanowy. Jej zadaniem jest wykonanie określonej operacji na przekazanych argumentach i zwrócenie wyniku, bez konieczności definiowania całego algorytmu przez autora zapytania. Argumentem może być wartość stała, nazwa kolumny, wynik innego wyrażenia albo parametr zapytania. Funkcja może działać na pojedynczym wierszu lub na całym zbiorze wierszy, zależnie od swojego rodzaju.

Do typowych zastosowań należą operacje matematyczne, tekstowe, daty i czasu, konwersji typów oraz agregacji. Funkcja tekstowa może na przykład zwrócić długość łańcucha albo połączyć fragmenty tekstu. Funkcja daty może wyodrębnić rok z wartości daty, a funkcja matematyczna może zaokrąglić wynik obliczenia. Funkcje agregujące, takie jak suma, średnia, minimum, maksimum i liczba elementów, przetwarzają wiele wierszy i zwykle występują razem z grupowaniem wyników.

Funkcje skalarne i agregujące a sposób obliczania wyniku

Funkcja skalarna zwraca jeden wynik dla każdego wiersza, w którym jest obliczana. Jeżeli kolumna zawiera nazwy produktów, funkcja przetwarzająca tekst może zwrócić zmienioną postać nazwy osobno dla każdego rekordu. Wynik funkcji skalarnej może być użyty w liście wybieranych kolumn, warunku filtrowania, sortowaniu lub innym wyrażeniu. Trzeba jednak uwzględnić, że zastosowanie funkcji do kolumny w warunku może utrudnić optymalizatorowi wykorzystanie indeksu, ponieważ porównywana jest wartość obliczona, a nie bezpośrednio przechowywana.

Funkcja agregująca oblicza wynik na podstawie wielu wartości. Bez grupowania może zwrócić jedną wartość dla całego zbioru przetwarzanych rekordów. Po zastosowaniu grupowania wynik jest wyliczany oddzielnie dla każdej grupy, na przykład dla każdego działu, miesiąca albo kategorii. Funkcje agregujące mają określone zasady traktowania wartości pustych. W wielu systemach wartość NULL nie jest liczona jako zwykła wartość w funkcjach takich jak suma lub średnia, natomiast liczba rekordów może być obliczana według innej reguły zależnie od użytej postaci funkcji.

Typy danych, wartości NULL i przewidywalność rezultatu

Poprawne użycie funkcji wbudowanej wymaga zgodności argumentów z oczekiwanymi typami danych. Funkcja przeznaczona do pracy z tekstem nie musi przyjmować liczby bez jawnej konwersji, a funkcja obliczająca różnicę między datami wymaga wartości rozpoznawanych jako daty lub czas. Automatyczne konwersje typów mogą zależeć od systemu bazodanowego, ustawień sesji albo formatu danych, dlatego w zapytaniach wymagających jednoznacznego działania stosuje się konwersję jawną. Szczególnej ostrożności wymagają liczby dziesiętne, ponieważ konwersja do typu całkowitego może usunąć część ułamkową, a nie tylko zmienić sposób jej wyświetlania.

NULL oznacza brak znanej wartości i nie jest tym samym co pusty tekst, zero ani wartość logiczna false. Funkcja może zwrócić NULL, gdy argument ma wartość NULL, ale nie jest to reguła uniwersalna. Niektóre funkcje potrafią zastąpić NULL wartością domyślną, inne propagują brak wartości do wyniku. W wyrażeniach logicznych obecność NULL może prowadzić do wyniku nieokreślonego, dlatego warunki sprawdzające brak wartości powinny korzystać z przeznaczonej do tego składni systemu, a nie ze zwykłego porównania znakiem równości.

Znaczenie ma również kolejność obliczeń. Dzielenie przez zero, przepełnienie zakresu typu liczbowego, nieprawidłowy format daty lub konwersja tekstu zawierającego znaki nienumeryczne mogą zakończyć wykonanie zapytania błędem. Funkcje zależne od bieżącej daty, czasu, ustawień językowych lub strefy czasowej nie zawsze zwracają ten sam rezultat przy każdym uruchomieniu. Przy testowaniu zapytań należy więc rozdzielić błędy danych wejściowych od błędów samej funkcji i sprawdzić typy kolumn, wartości NULL oraz ustawienia środowiska wykonawczego.

Użycie funkcji w zapytaniach i diagnostyka problemów

Diagnostykę warto rozpocząć od ustalenia, czy problem dotyczy nazwy funkcji, liczby argumentów, typu danych, wartości wejściowej czy oczekiwanego formatu wyniku. Ten sam zapis może zachowywać się inaczej, gdy funkcja zostanie użyta w filtrze, projekcji, sortowaniu albo grupowaniu. Należy sprawdzić dokumentację konkretnego systemu bazodanowego, ponieważ lista dostępnych funkcji, nazwy argumentów, reguły zaokrąglania oraz sposób obsługi dat nie są identyczne we wszystkich silnikach.

Przydatnym testem jest wykonanie funkcji na małym, kontrolowanym zestawie danych obejmującym zwykłą wartość, NULL, wartość pustą, liczbę ujemną, graniczną datę oraz przypadek niepoprawny. Pozwala to ustalić, czy wynik jest zgodny z założeniem i czy błąd pojawia się przed filtrowaniem, podczas konwersji, czy dopiero przy agregacji. Jeżeli funkcja jest używana w często wykonywanym zapytaniu, trzeba dodatkowo przeanalizować plan wykonania i sprawdzić, czy obliczenia nie powodują pełnego skanowania tabeli. Warszawskie Pogotowie Komputerowe wykonuje profesjonalną naprawę laptopów i komputerów PC, w tym diagnostykę problemów z oprogramowaniem oraz działaniem podzespołów potrzebnych do pracy z aplikacjami bazodanowymi.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę