Etap II Należy utworzyć kod języka SQL w dialekcie Oracle
Transkrypt
Etap II Należy utworzyć kod języka SQL w dialekcie Oracle
Etap II Należy utworzyć kod języka SQL w dialekcie Oracle implementujący zatwierdzony przez prowadzącego rysunek oddany podczas etapu 2. Dla każdej warstwy musi zostać utworzona odpowiednia tabela wyróżnień. Nazwy tabel nie mogą przekraczać 30 znaków, nie mogą zawierać kropek, myślników, ukośników, spacji, polskich znaków, itp. Następnie muszą zostać podane instrukcje typu INSERT oraz instrukcja rejestrująca warstwę, instrukcje sprawdzające poprawność geometrii oraz instrukcja tworząca indeks przestrzenny. Zatem dla każdej warstwy po kolei w skrypcie powinno się znaleźć • odpowiednie polecenie CREATE, • odpowiednie polecenia INSERT • polecenie typu INSERT INTO USER_SDO_GEOM_METADATA... rejestrujące warstwę • polecenie COMMIT; • polecenie sprawdzające poprawność geometrii za pomocą metody ST_IsValid • polecenie sprawdzające poprawność geometrii za pomocą podprogramu SDO_GEOM.VALIDATE_GEOMETRY_WITH_CONTEXT, • polecenie zakładające indeks przestrzenny dla poszczególnych kolumn przechowujących geometrie • polecenie wybierające wszystkie kolumny i wszystkie wiersze z danej warstwy (SELECT * FROM nazwa_tabeli;) Nazwy indeksów również nie mogą przekroczyć 30 znaków. Geometrie wstawiamy poprzez użycie odpowiednich konstruktorów dla typu SDO_GEOMETRY, a nie za pomocą WKT. Każdą warstwę dobrze sobie zwizualizować, aby sprawdzić, czy baza faktycznie odzwierciedla rysunek. Może być tak, że geometrie są poprawne, ale nie takiego kształtu jak na rysunku lub odwrotnie, że wizualizacja w SQL Developerze wygląda dobrze, a geometrie poprawne nie są. W SQL Developerze może być problem z wyświetleniem punktów lub geometrii, które według aplikacji leżą na brzegu rysunku (może nie być ich widać). W linijce przed każdym kolejnym poleceniu INSERT prosiłabym o zaznaczenie w komentarzu (zaczynającym się od -- lub mieszczącym się między znakami /* i */) informacji czy geometria jest poprawna, tzn. czy metoda ST_IsValid zwróciła 1). Można oczywiście przesłać kod, w którym będą się zdarzały błędne geometrie, tzn. takie, z którymi nie mogą sobie Państwo poradzić (nie wiadomo gdzie jest błąd składniowy lub wizualizacja nie zgadza się z rysunkiem i nie można znaleźć powodu tej różnicy, itd.). Te komentarze pomogą mi w sprawdzaniu (tzn. ja i tak sprawdzam każde polecenie, ale jeśli zaznaczą Państwo te, które są błędne, to nie będę wykonywała skryptu jako całości, a potem usuwała błędnych indeksów, itd. tylko będę wykonywała je linia po linii). Na końcu skryptu, w komentarzu (czyli między znakami /* i */) umieszczamy polecenia kasujące wszystkie warstwy (czyli polecenia DROP TABLE nazwa_tabeli;, kolejno dla wszystkich tabel z projektu) oraz polecenie usuwające wszystkie wiersze z widoku USER_SDO_GEO_METADATA, czyli DELETE FROM USER_SDO_GEOM_METADATA;). Kod należy przesłać prowadzącemu oraz przynieść na zajęcia w postaci elektronicznej. W nazwach przesyłanych skryptów musi się znaleźć Państwa nazwisko i numer wersji (tzn. za pierwszym razem 1, a przy ewentualnych kolejnych poprawkach kolejne numery, aby było wiadomo, która wersja jest która). Jeśli poprawiają Państwo skrypt po moich uwagach, to należy przesłać cały kod (nie tylko poprawione części), a także zaznaczyć poprawiane instrukcje (poprzez poprzedzenie ich komentarzem tak, aby łatwiej było je znaleźć).