Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ponieważ osadzony program SQL zawiera kombinację instrukcji języka SQL i hosta, nie można przesłać go bezpośrednio do kompilatora dla języka hosta. Zamiast tego jest kompilowany za pośrednictwem wieloetapowego procesu. Mimo że ten proces różni się od produktu do produktu, kroki są mniej więcej takie same dla wszystkich produktów.
Na tej ilustracji przedstawiono kroki niezbędne do skompilowania osadzonego programu SQL.
Pięć kroków jest zaangażowanych w kompilowanie osadzonego programu SQL:
Osadzony program SQL jest przesyłany do prekompilatora SQL, narzędzia programistycznego. Prekompiler skanuje program, znajduje osadzone instrukcje SQL i przetwarza je. Dla każdego języka programowania obsługiwanego przez system DBMS wymagany jest inny prekompiler. Produkty DBMS zwykle oferują prekompilatory dla co najmniej jednego języka, w tym C, Pascal, COBOL, Fortran, Ada, PL/I i różnych języków zestawów.
Prekompiler tworzy dwa pliki wyjściowe. Pierwszy plik to plik źródłowy, pozbawiony osadzonych instrukcji SQL. W ich miejsce, prekompiler zastępuje wywołania własnościowych procedur DBMS, które zapewniają połączenie w czasie działania między programem a DBMS. Zazwyczaj nazwy i sekwencje wywoływania tych procedur są znane tylko prekompilerowi i systemowi DBMS; nie są interfejsem publicznym dla systemu DBMS. Drugi plik to kopia wszystkich osadzonych instrukcji SQL używanych w programie. Ten plik jest czasami nazywany modułem żądania bazy danych lub modułem DBRM.
Dane wyjściowe pliku źródłowego z prekompilera są przesyłane do standardowego kompilatora dla języka programowania hosta (takiego jak kompilator C lub COBOL). Kompilator przetwarza kod źródłowy i generuje kod obiektu jako dane wyjściowe. Należy pamiętać, że ten krok nie ma nic wspólnego z bazą danych DBMS lub sql.
Linker akceptuje moduły obiektowe generowane przez kompilator, łączy je z różnymi rutinami bibliotecznymi i tworzy program wykonywalny. Procedury biblioteki powiązane z programem wykonywalnym obejmują zastrzeżone rutyny DBMS opisane w kroku 2.
Moduł żądania bazy danych wygenerowany przez prekompiler jest przesyłany do specjalnego narzędzia powiązania. To narzędzie sprawdza instrukcje SQL, analizuje, weryfikuje i optymalizuje je, a następnie tworzy plan dostępu dla każdej instrukcji. Wynikiem jest połączony plan dostępu dla całego programu reprezentujący wersję wykonywalną osadzonych instrukcji SQL. Narzędzie powiązania przechowuje plan w bazie danych, zwykle przypisując mu nazwę programu aplikacji, który będzie go używać. Niezależnie od tego, czy ten krok odbywa się w czasie kompilacji, czy w czasie wykonywania, zależy od systemu DBMS.
Zwróć uwagę, że kroki używane do kompilowania osadzonego programu SQL są bardzo ściśle skorelowane z krokami opisanymi wcześniej w temacie Przetwarzanie instrukcji SQL. W szczególności należy zauważyć, że prekompiler oddziela instrukcje SQL od kodu języka hosta, a narzędzie powiązania analizuje i weryfikuje instrukcje SQL i tworzy plany dostępu. W systemach DBMS, w których krok 5 odbywa się w czasie kompilacji, pierwsze cztery kroki przetwarzania instrukcji SQL odbywają się w czasie kompilacji, podczas gdy ostatni krok (wykonanie) odbywa się w czasie wykonywania. Ma to wpływ na szybkie wykonywanie zapytań w takich systemach DBMS.