Ćwiczenie 3

Transkrypt

Ćwiczenie 3
Ćwiczenie 3. Bazy danych w środowisku MicroStation
Konfiguracja - Podłączenie Bazy Danych Access do MSt 95
PRZED uruchomieniem MSt. Z sieci ściągamy http://www2.geod.agh.edu.pl/~artkraw/
pliki gis.mdb, punkty.txt i cd10.dgn. Kopiujemy je do swojego podkatalogu. Otwieramy bazę
danych i przeglądamy jej strukturę (rodzaj tabel i kolumn).
Następnie przechodzimy w menu START do podmenu Ustawienia, następnie do Panelu
Sterowania stamtąd wybieramy Źródła Danych ODBC. Wybieramy zakładkę Użytkownik
DSN. Naciskamy klawisz Add (Dodaj). Z podanego zestawu sterowników wybieramy
sterownik bazy Access. Następnie nadajemy nazwę połączenia ODBC oraz opis
połączenia. Następnie w sekcji baza danych naciskamy klawisz Wybierz, wskazując na plik
gis.mdb (jest to źródło dla danego połączenia odbc). Po utworzeniu połączenia zamykamy
Administratora ODBC.
Zapisujemy swoją nazwę połączenia ODBC ...................... (1*)
1.1. Nowa działka na mapie
1. Otwórz plik cd10.dgn
2. Na warstwę 22, narzędziem Keyin (xy=) wnosimy dwa nowe punkty graniczne działki nr 40,
która będzie graniczyła z działką nr 13 – położoną przy ulicy Livingston. Dla punktów grubość
ustawić na 6 a kolor biały. Współrzędne xy=2547476,583839, xy=2547418,583964.
3. Następnie narzędziem info pozyskaj parametry rysunkowe linii granicznej działek i elementem
typu 3 (line) narysuj nowe granice działki numer 40. Następnie wstaw centroid działki. W tym
celu ustaw parametry dla rysowania dla centroidu i wybierz narzędzie wstaw punkt. Położenie
centroidu określamy w przybliżeniu za pomocą narzędzia Measure Area – metoda pomiaru –
Method: Flood z wybraną opcją Display Centroid. Po wstawieniu centroidu odznacz opcję
Display centroid.
4. Wstaw prawidłowy opis tekstowy.
1.2. Tworzenie połączenia elementu grafiki do bazy danych
1. Sprawdź lub ustaw tryb połączenia (Linkage Mode) w oknie Database na NEW (otwarcie
tego okna z menu: Settings>Database>Dialog)
2. Łączymy się z bazą danych Settings>Database>Connect - wybieramy Database Server ODBC i wpisujemy nazwę naszego połączenia ODBC (1*)
3. Zdefiniuj Active Entity jako tablicę prototypową tabeli parcel z atrybutem owner:
Aby to zrobić w oknie KeyIn wpisz:
AE=insert into parcel (owner) values ('Jan Kowalski')
4. Sprawdź czy faktycznie powstała tabela Active Entity:
W oknie KeyIn wpisz: SQL
Pojawi się nowe okno SQL Window.
Z menu Tools uruchom paletę DATABASE wybierz narzędzie Show Active Entity.
W oknie SQL Window zobaczymy naszą tabelę AE stworzoną na podstawie tabeli parcel
wypełnioną tylko nowym imieniem i nazwiskiem podanym w 3 punkcie tego ćwiczenia 1.2.
5. Wykonaj połączenie centroidu parceli z tabelą parcel.
Z palety DATABASE uruchom narzędzie Attach Active Entity.
Kliknij na centroid (Klawisz myszy - data) nowej parceli nr 40
Kliknij drugi raz (Klawisz myszy - data) w celu potwierdzenia swojego wyboru.
6. Sprawdź czy uzyskane połączenie jest poprawne:
Z palety DATABASE uruchom narzędzie Review Database Attributes of Element
Kliknij na centroid nowej parceli nr 40
Kliknij w celu potwierdzenia swojego wyboru.
W oknie SQL Window zobaczymy naszą tabelę parcel wypełnioną danymi podanymi z
tabeli AE oraz z nadanym wartością MSLINK np. 753 (zanotuj własną) jednoznacznie
identyfikującą centroid parceli nr 40 w wierszem tabeli bazy danych.
6. Korzystając z otwartego okna SQL Window uzupełnij wartość działki pana Jana
Kowalskiego (kolumna parc_value).
W oknie SQL Window wpisz wyrażenie SQL:
UPDATE parcel SET parc_value=2000 where mslink = 753
Następnie uruchom narzędzie Review Database Attributes of Element i klikając na centroid
parceli nr 40 sprawdź czy w oknie SQL pojawi się wartość 2000.
Spróbuj uzupełnić dwa pola wiersza bazy danych pana Jana Kowalskiego. (parcel_no = 40,
str_name = LIVINGSTON DR.
UWAGA 1) atrybuty tekstowe podaje się w nawiasach i apostrofach. 2) pytanie zapisz do
pliku SQL Window>File>SaveAs.
7. Zamknij MicroStation otwórz bazę danych Access, otwórz twoją bazę gis.mdb.
W tabeli Parcels przeglądnij wiersz który został utworzony przez ciebie (dodany do bazy) i
uzupełnij dane na podstawie istniejących rekordów bazy. Zamknij bazę Access, Otwórz
Microstation uruchom narzędzie Review Database Attributes of Element i klikając na
centroid parceli nr 40 sprawdź czy w oknie SQL pojawią się wprowadzone w Accessie
wartości.
8. Dorysuj jeszcze trzy sąsiadujące z parcelą 40 parcele 41, 42 i 43 – czyli wykonaj
czynności tak jak wcześniej opisano. Współrzędne narożników parcel zaimportuj z pliku
punkty.txt - import Tools > Annotation > XYZ. Uwaga – aby wykonać paste w okno KeyIn
trzeba nacisnąć Shift + Insert.
Uwaga po wykonaniu połączenia z centroidem za każdym razem wartość mslink się
zmienia! Po dorysowaniu parcel wstaw centroidy oraz dla każdej praceli wykonaj
czynności opisane od punktu 5 do pkt. 7 (wypełnij kolumny: house_num parc_area i
mapid=10).
Ćwiczenie 1.3. Wykorzystanie relacyjnego mechanizmu pracy z danymi tekstowymi w
środowisku Microstation
1.3.1. Zapytania do bazy danych - SQL
W celu obsługi zapytań SQL do bazy danych w Microstation zaimplementowano narzędzie
SQL Window, które otwieramy i w polu edycyjnym wpisujemy poszczególne komendy
SQL. Proszę zachować pytania 8, 9 w postaci plików tekstowych:
Ostatnie 4 pytania zapisać w plikach pX.sql gdzie to X-numer pytania.
1. Przeglądnąć wszystkie kolumny tabeli parcel w uporządkowanej kolejności alfabetycznie wg użytkowników:
select * from parcel order by owner
2. Przeglądnąć wybrane pięć kolumn tabeli parcel:
select owner,parcel_no,parc_area,parc_value from parcel
3. Przeglądnąć 4 kolumny tabeli parcel oraz obliczyć wartość (cenę) na jednostkę
powierzchni dla poszczególnych parcel:
select owner,parcel_no,parc_area,parc_value,parc_value/parc_area from
parcel
4. Policzyć ile jest wszystkich użytkowników w bazie parcel:
select count(owner) from parcel
5. Policzyć ile jest użytkowników w bazie parcel dla których mapid (numer mapy) jest
równy 10:
select count(owner) from parcel where mapid=10
6. Policzyć średnią wartość parceli:
select avg(parc_value) from parcel
7. Przeglądnąć na jakiej mapie (*.dgn) znajduje się który właściciel:
select owner,mapname from parcel,maps where parcel.mapid=maps.mslink
and parcel.mslink>535
8. Policz ilość wszystkich parceli na mapie nr 10
9. Policz średnią wartość parcel na mapie nr 10 o powierzchni mniejszej niż 17000:
10. Zwiększ wszystkie ceny parcel na mapie nr 10 o 15%
11. Jeszcze raz policz średnią wartość parcel na mapie nr 10 o powierzchni mniejszej niż
17000:
12. Wybierz 7 najdroższych parcel znajdujących się na mapie nr 10.
13. Wybierz te rekordy kolumny mapid, których zawartość jest pusta.
1.3.2. Przeglądanie atrybutów tekstowych (z bazy danych) na podstawie wyboru elementów
grafiki
1. Sprawdź lub ustaw tryb wyświetlania (Forms) w oknie Database na NONE
(otwarcie omawianego okna z menu Settings>Database>Dialog)
2. Przeglądnij wybrane parcele na podstawie wskazania kursorem myszy:
 W oknie KeyIn wprowadź komendę Active Review (skrót RA)
RA=SELECT * FROM parcel
Z menu Palety Narzędzi Database wybierz narzędzie Rewiev Database Attributes of
Element
Kliknij raz na centroid, klikając drugi raz obok centroidu potwierdzamy swój wybór.
{Ten zestaw naszych czynności (pkt.2) spowodował automatyczne wygenerowanie przez
MSt. pytania select from parcel where parcel.mslink=<MSLINK key>}
3. W oknie SQL wyświetlane są wszystkie kolumny, przeglądnijmy tylko kilka wybranych
kolumn z tabeli parcel:
 W oknie KeyIn wprowadź komendę Active Review (skrót RA)
RA=SELECT owner,parcel_no,parc_area,parc_value FROM parcel
Z menu Palety Narzędzi Database wybierz narzędzie Rewiev Database Attributes of
Element
Kliknij raz na centroid, klikając drugi raz obok centroidu potwierdzamy swój wybór.
1.3.3. Wyświetlanie atrybutów bazy danych w rysunku dgn
1. Ustawiamy widok rysunku w okolicy parcel 40, 41, 42, 43
2. Przeglądamy dane o tabeli parcel zawarte w tabeli mscatalog (przy użyciu SQL Window)
select * from mscatalog where tablename = 'parcel'
{ w kolunie DASTABLE zdefiniowano nazwę istniejącej już tablicy parcel_das która
posłuży nam do przygotowania (wybrania) informacji tekstowych z tabeli parcel do
wyświetlania ich w pliku dgn}
3. Przeglądamy zawartość tabeli parcel_das:
select * from parcel_das
W kolumnie sqldas mamy zapisane pytanie SQL które służy do wyboru informacji
przeznaczonych do wyświetlania. Tego typu pytań może być więcej i numerowane one są w
kolumnie dastype (przeglądamy klawiszem Next).
4. Z palety Text wybieramy narzędzie Place Text Node. A następnie w bliskim sąsiedztwie
(ok. 30 FT) centroidów parcel opisanych w pkt. 1 tego ćwiczenia oraz parcel 13, 10, 11
wstawiamy obok każdego centroidu jeden text node. {UWAGA opcja Text Node w oknie
View Attributes MUSI być włączona ! (skrót klawiszowy Ctrl+B).Abyśmy mogli zobaczyć
wstawiane tekst nody!
5. Następnie z palety database wybieramy narzędzie Attach Displayable Attributes
(DASType - typ połączenia ustawiamy na 1). Następnie kojarzymy pary - klikamy na
centroid (raz identyfikujemy drugi raz obok potwierdzamy) następnie kilkamy na
sąsiedniego text node (raz identyfikujemy drugi raz potwierdzamy). Wykonujemy to w celu
skojarzenia go z tablicą parcel podłączoną do wcześniej wskazanego centroidu.
6. Następnie narzędziem Load Displayable Attributes klikamy na wstawione przez nas text
node.
7. Oprócz dorysowanych parcel 40,41,42,43 wszystkie pozostałe numery parcel są również
typu text node.
Skasuj więc swoje numery parcel, Przeglądnij tabelę parcel_das w poszukiwaniu typu
umożliwiającego wyświetlanie numeru parceli.
Wstaw nowy text node.
Załaduj numery parcel z bazy danych.
8. Uruchom ACCESSa i dla parcel 13, 10, 11 zmień nazwy właścicieli. Przejdź do MSt 95 i
załaduj text node dla tych parcel
Ćwiczenie 1.4. Generowanie raportów
Ćwiczenie 1.4.1 Generowanie raportów przy pomocy narzędzia Fence Elements
1. Otwieramy plik cd10.dgn
2. W oknie KeyIn wprowadzamy:
RS=$ (co oznacza select tablename,reporttable from mscatalog) klikamy Next aż do
uzyskania tabeli parcel.
3. Generujemy tabelę raportu o nazwie parcel_report1 ze wszystkimi rekordami
tabeli parcel które zostaną wybrane za pomocą narzędzia fence.
Zakreśl jeden kwartał parcel (między ulicami STRATTON i HYDEN) narzędziem Place
Fence - Fence type Shape, Fence Mode Inside.
Uruchom narzędzie Generate Report Table
Kliknij raz wewnątrz Fence.
Pytaniem sql przeglądnij zawartość tabeli parcel_report
Zadaj pytanie do tabeli pracel_report - wybierz parcele tańsze niż 20000 i większe niż
15000.
....................... (pytanie zachowaj w pliku sql).
4. Otwórz Accessa i zmień nazwę parcel_report na parcel_report1
Ćwiczenie 1.4.2 Generowanie raportów przy pomocy narzędzia Fence Elements z
ustalonym warunkiem
1. Settings > Design File > Color > Element highlighting Color ustaw na czerwony.
2. W oknie Database>Setup zmieniamy nazwę tabeli raportów na Raport2
3. W oknie KeyIn wprowadzamy:
DS=none Komenda usuwa inne stare warunki
4. W oknie KeyIn wprowadzamy:
DS=Select * From parcel where parc_value>15700
Zakreśl ten sam obszar co poprzednio narzędziem Place Fence - Fence type Shape, Fence
Mode Innide.
Uruchom narzędzie Generate Report Table (kliknij w obszar fenca)
Pytaniem sql przeglądnij zawartość tabeli Raport2.
5. Uruchom User Command (plik skryptowy UCM) o nazwie hilite.ucm w KeyIn:
UC=hilite
6. Przeglądnij efekty i naciśnij refresh aby zaznaczenia znikły.
Podsumowanie/Sprawdzenie wiadomości.
Wpisz komendę w KeyIn
SET DATABASE
Na przykładzie tabeli Parcel (wskazanej w oknie Tables) opisz
przeznaczenie poszczególnych rubryk tabeli mscatalog. (w jakim
ćwiczeniu jaka rubryka posiadała jakie przeznaczenie)

Podobne dokumenty