Modelowanie baz danych - Funkcje wbudowane i obiektowe metody
1. Korzyści z wykorzystywania metod w Oracle są następujące:
- modularność (metody pozwalają na podzielenie logiki biznesowej na mniejsze, łatwiejsze do zrozumienia i utrzymania fragmenty)
- abstrakcja (metody pozwalają na oddzielenie implementacji od interfejsu od interfejsu, co ułatwia zarządzanie i rozwój aplikacji)
- reusability (metody mogą być używane w różnych miejscach w aplikacji, co pozwala na uniknięcie powtarzania kodu)
- enkapsulacja (metody pozwalają na ukrycie szczegółów implementacji przed innymi elementami aplikacji, co poprawia bezpieczeństwo i stabilność)
- przejrzystość (metody pozwalają na zwiększenie czytelności kodu poprzez jasne określenie celu i działania każdego fragmentu kodu)
- skalowalność (metody pozwalają łatwe rozbudowanie aplikacji poprzez dodawanie nowych metod bez konieczności modyfikacji istniejących już fragmentów kodu)
- konfiguralność (metody pozwalają na łatwe dostosowanie aplikacji do różnych potrzeb poprzez zmianę implementacji metod bez konieczności modyfikacji pozostałych elementów aplikacji)
- zwiększona funkcjonalność (metody pozwalają na zwiększenie funkcjonalności aplikacji poprzez dodawanie nowych metod i rozszerzanie już istniejących)
2. Oracle udostępnia kilka różnych typów, które mogą być używane w aplikacjach:
- funkcje i procedury (obiekty bazy danych, które zawierają zestaw instrukcji PL/SQL. Różnica pomiędzy nimi polega na tym, że funkcje zwracają wartość, natomiast procedury nie)
- metody statyczne (nie są związane z konkretnym obiektem i mogą być wywoływane bezpośrednio na typie obiektowym)
- metody insancyjne (są związane z konkretnym obiektem i muszą być wywoływane na egzemplarzu danego typu)
- metody konstruktora (służą do tworzenia nowego egzemplarza typu obiektowego)
- metody destruktora (służą do zwalniania zasobów zajmowanych przez obiekt)
- metody przeciążające (pozwalają na stworzenie kilku wersji tej samej metody, które różnią się liczbą lub typem parametrów)
- metody przesłonięcia (pozwalają na nadpisanie implementacji metody zdefiniowanej w klasie bazowej przez implementację zdefiniowaną w klasie pochodnej)
3. W bazie danych Oracle można używać kilku języków programowania do tworzenia metod dla obiektów:
- PL/SQL
- Java
- C
4. Funkcje są zdefiniowane za pomocą słowa kluczowego FUNCTION, a składnia jest następująca:
CREATE OR REPLACE FUNCTION nazwa (parametr1 IN/OUT typ, ...)
return typ
procedury: zamiast FUNCTION, słowo PROCEDURE
5. Funkcje mogą przyjmować parametry IN, OUT lub IN/OUT.
np.
CREATE OR REPLACE calc_bonus (p_employee_id IN NUMBER)
RETURN NUMBER
AS l_bonus NUMBER;
BEGIN
SELECT * INTO L_bonus FROM INTO employees WHERE employee_id = p_employee_id;
REURN l_bonus;
END
6. Metoda statyczna:
CREATE TYPE math_utils AS OBJECT (
STATIC FUNCTION factorial(N NUMBER) RETURN NUMBER
);
CREATE TYPE BODY math_utils AS OBJECT (
STATIC FUNCTION factorial(N NUMBER) RETURN NUMBER IS
BEGIN
/ciało/
END;
);
7. Metoda instancyjna (MEMBER FUNCTION):
j.w.
8. Metody konstruktora (CONSTRUCTOR FUNCTION)
9. Metoda destruktora (DESTRUCTOR MEMBER FUNCTION)