You are on page 1of 15

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE

JBuilder
i bazy danych
Autor: Mariusz Marzec
ISBN: 83-7361-748-5
Format: B5, stron: 264

ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Informacja najcenniejszy towar na wspczesnym rynku, wymaga rozbudowanych


narzdzi pozwalajcych na magazynowanie i korzystanie z niej. Do magazynowania
informacji wykorzystywane s coraz bardziej rozbudowane systemy zarzdzania bazami
danych. Do przegldania danych zgromadzonych w ich tabelach tworzone s mniej lub
bardziej rozbudowane aplikacje. Dziki nim informacje z baz danych przedstawiane s
w formie moliwej do przegldania, modyfikowania i drukowania.
Java w pocztkowym okresie swojego rozwoju kojarzona bya wycznie z Internetem
i koszmarnymi apletami typu padajcy nieg, dzi jest uznanym i popularnym
jzykiem programowania, coraz czciej wykorzystywanym do tworzenia aplikacji
bazodanowych. Producenci rodowisk programistycznych rwnie zwrcili uwag
na popularno Javy, co zaowocowao powstaniem kilku bardzo udanych narzdzi,
a wrd nich JBuilder Enterprise.
JBuilder i bazy danych to podrcznik tworzenia aplikacji bazodanowych za pomoc
rodowiska JBuilder Enterprise. Przedstawia zarwno zagadnienia zwizane z bazami
danych, jak i te, ktre wi si z wykorzystywaniem ich w aplikacjach w jzyku Java.
Opisuje komponenty bazodanowe oferowane przez JBuildera oraz sposoby
projektowania i implementowania aplikacji z ich wykorzystaniem. Zawiera rwnie
informacje dotyczce tworzenia mechanizmw raportujcych i drukujcych.
Elementy jzyka SQL
Tworzenie tabel baz danych
czenie aplikacji z baz danych
Sterowniki JDBC
SQL Server 2000
Zastosowanie komponentw bazodanowych oraz komponentw
graficznego interfejsu uytkownika w JBuilder
Projektowanie aplikacji bazodanowej w JBuilder
Raporty oraz drukowanie

Przekonaj si, jak szybko i efektywnie


moesz tworzy aplikacje w rodowisku JBuilder

Spis treci
Wstp ............................................................................................... 7
Rozdzia 1. Baza danych ...................................................................................... 9
Elementy baz danych....................................................................................................... 10
Zasady projektowania baz danych................................................................................... 12
Podsumowanie ................................................................................................................ 16

Rozdzia 2. Elementy jzyka SQL........................................................................ 17


Polecenia SQL................................................................................................................. 19
SELECT .......................................................................................................................... 19
INSERT........................................................................................................................... 22
UPDATE ......................................................................................................................... 23
DELETE.......................................................................................................................... 24
CREATE TABLE............................................................................................................ 24
DROP TABLE ................................................................................................................ 27
ALTER TABLE .............................................................................................................. 28
CREATE VIEW.............................................................................................................. 29
DROP VIEW................................................................................................................... 30
COMMIT ........................................................................................................................ 30
ROLLBACK ................................................................................................................... 31
TRANSAKCJE ............................................................................................................... 31
WHERE........................................................................................................................... 31
TRIGGERY..................................................................................................................... 32
Procedury skadowane (stored procedure)....................................................................... 33
Funkcje agregujce.......................................................................................................... 34
Podsumowanie ................................................................................................................ 35

Rozdzia 3. Narzdzia wspomagajce tworzenie i modyfikacj baz danych ........... 37


Przygotowanie projektu................................................................................................... 42
Tworzenie tablicy ............................................................................................................ 43
Tworzenie kluczy gwnych............................................................................................ 45
Tworzenie powiza midzy tablicami ........................................................................... 45
Tworzenie perspektyw..................................................................................................... 47
Generowanie skryptw.................................................................................................... 47
Generowanie dokumentacji projektu............................................................................... 49
Podsumowanie ................................................................................................................ 50

JBuilder i bazy danych

Rozdzia 4. Poczenie z baz danych................................................................. 51


SQL Server 2000............................................................................................................. 52
DBase .............................................................................................................................. 55
Access ............................................................................................................................. 55
Sterowniki JDBC............................................................................................................. 56
Podsumowanie ................................................................................................................ 59

Rozdzia 5. SQL Server 2000 ............................................................................. 61


Instalacja pakietu............................................................................................................. 64
Struktura SQL Servera 2000 ........................................................................................... 69
Usugi SQL Server .......................................................................................................... 70
Najwaniejsze narzdzia pakietu..................................................................................... 70
Przygotowanie projektu bazy .......................................................................................... 81
Migracja bazy.................................................................................................................. 87
Podsumowanie ................................................................................................................ 90

Rozdzia 6. Tworzenie bazy danych Access......................................................... 91


Przykadowy projekt bazy ............................................................................................... 91
Uytkownicy i uprawnienia............................................................................................. 98
Podsumowanie ................................................................................................................ 99

Rozdzia 7. Przygotowanie bazy w systemie JDataStore .................................... 101


DataBase Pilot............................................................................................................... 103
JDataStore Explorer ...................................................................................................... 104
Uprawnienia i uytkownicy........................................................................................... 111
JDataStore Server .......................................................................................................... 113
Podsumowanie .............................................................................................................. 115

Rozdzia 8. Komponenty bazodanowe w JBuilderze ........................................... 117


Wstp ............................................................................................................................ 117
Java i bazy danych......................................................................................................... 119
JBuilder i bazy danych .................................................................................................. 123
DataExpress................................................................................................................... 124
DataBase ....................................................................................................................... 124
TableDataSet ................................................................................................................. 125
QueryDataSet ................................................................................................................ 126
QueryResolver............................................................................................................... 129
ProcedureDataSet .......................................................................................................... 129
ProcedureResolver ........................................................................................................ 129
ParameterRow ............................................................................................................... 130
DataSetView.................................................................................................................. 132
DataStore....................................................................................................................... 134
StorageDataSet .............................................................................................................. 134
DataStoreConnection .................................................................................................... 134
TxManager .................................................................................................................... 135
DataStoreServer ............................................................................................................ 135
DataStorePump.............................................................................................................. 136
DataStoreSync............................................................................................................... 136
JDBCDataSource .......................................................................................................... 137
Podsumowanie .............................................................................................................. 137

Rozdzia 9. Komponenty graficzne dbSwing ...................................................... 139


JFrame ........................................................................................................................... 141
JPanel ............................................................................................................................ 142
JToolBar........................................................................................................................ 142

Spis treci

5
JMenuBar, JMenu, JMenuItem ..................................................................................... 143
JOptionPane standardowe okna dialogowe .............................................................. 143
JDBRadioButton ........................................................................................................... 147
JDBCheckBox............................................................................................................... 148
JDBToggleButton.......................................................................................................... 149
JDBLabel....................................................................................................................... 149
JDBTextField ................................................................................................................ 149
JDBTextArea................................................................................................................. 150
JDBTextPane................................................................................................................. 152
JDBEditorPane .............................................................................................................. 152
JDBComboBox ............................................................................................................. 153
JDBList ......................................................................................................................... 156
JDBSlider ...................................................................................................................... 156
JDBTree ........................................................................................................................ 157
JDBTable....................................................................................................................... 158
TableScrollPane ............................................................................................................ 160
JDBStatusLabel............................................................................................................. 161
JDBNavToolBar............................................................................................................ 161
DBPasswordPrompter ................................................................................................... 162
Zdarzenia....................................................................................................................... 162
Podsumowanie .............................................................................................................. 165

Rozdzia 10. Projektowanie aplikacji bazodanowej.............................................. 167


Etapy projektu aplikacji klient-serwer........................................................................... 168
Charakterystyka aplikacji typu klient-serwer ................................................................ 169
Projektowanie aplikacji z uyciem JBuilder8................................................................ 169
JBuilder 8 wiadomoci oglne ................................................................................. 170
Elementy uywane do projektowania aplikacji ............................................................. 175
Projekt aplikacji na platformie Access .......................................................................... 176
Zaoenia projektowe .............................................................................................. 176
Projekt bazy................................................................................................................... 177
Projekt aplikacji............................................................................................................. 179
Projekt aplikacji na platformie SQL Server 2000.......................................................... 196
Zaoenia projektowe .............................................................................................. 197
Projekt bazy................................................................................................................... 198
Projekt aplikacji............................................................................................................. 206
Wywoywanie okien z menu ......................................................................................... 228
Podsumowanie .............................................................................................................. 230

Rozdzia 11. Prezentacja wynikw pracy aplikacji: raporty i wydruki ................... 231
Projektowanie wydruku................................................................................................. 234
Doczanie rysunkw do wydrukw ............................................................................. 237
Uywanie wydrukw podczas pracy aplikacji............................................................... 238
Podsumowanie .............................................................................................................. 239

Rozdzia 12. Przygotowanie pakietu aplikacji ..................................................... 241


Tworzenie pliku archiwum............................................................................................ 241
Tworzenie pliku uruchomieniowego ............................................................................. 244
Podsumowanie .............................................................................................................. 246

Skorowidz...................................................................................... 247

Rozdzia 7.

Przygotowanie bazy
w systemie JDataStore
W pakiecie JBuilder, poza rodowiskiem projektowania aplikacji, zawarto rwnie kilka
narzdzi, sucych do przygotowania i pracy z bazami danych w systemie JDataStore.
Jest to rozwizanie, ktre moemy stosowa wszdzie tam, gdzie nie ma potrzeby
uywania systemw bazodanowych innych firm. Korzystanie z plikw *.jds 1 nie wymaga
stosowania sterownikw ODBC, poczenie jest nawizywane cakowicie za pomoc
jzyka Java, przy uyciu sterownika com.borland.datastore.jdbc.DataStoreDriver. JDataStore jest wydajnym, w caoci napisanym w jzyku Java rozwizaniem, stworzonym
na potrzeby magazynowania danych dla aplikacji tworzonych w JBuilderze. Dostp
do bazy danych uzyskujemy przez sterowniki JDBC i interfejs DataExpress. System
obsuguje transakcyjno i prac wielu uytkownikw, magazynowanie obiektw serializowanych, tabel i innych plikw.
Bazy danych tego typu charakteryzuj si nastpujcymi parametrami:
 minimalna wielko bloku danych: 1 KB,
 maksymalna wielko bloku danych: 32 KB,
 domylna wielko bloku danych: 4 KB,
 maksymalna wielko pliku JDataStore: 2 biliony blokw (2 G).

Dla domylnego rozmiaru bloku maksymalna wielko bazy bdzie miaa


8 796 093 022 208 bajtw (8 TB),
 maksymalna liczba wierszy w tablicy: 4 biliony (4 G),
 maksymalna dugo wiersza: 1/3 wielkoci bloku,
 maksymalna wielko danych typu BLOB: 2 GB kada,
 maksymalna wielko strumienia plikowego: 2 GB dla kadego,
 znak separatora katalogw: /,
1

Pliki zawierajce struktur bazy danych JDataStore.

102

JBuilder i bazy danych


 zarezerwowane nazwy:


SYS/Connections,

SYS/Queries,

SYS/Users.

W bazach typu JDataStore wykorzystywane s typy danych przedstawione w tabeli 7.1.


Tabela 7.1. Typy danych obsugiwane przez JDataStore
Typ danych
w JDataStore

Opis

Synonim

SMALLINT

Warto numeryczna z zakresu 32768 do 32767

SHORT

INT

Warto numeryczna z zakresu 2147483648


do 2147483647

INTEGER

BIGINT

Warto numeryczna z precyzj


9223372036854775808
do 9223372036854775807

LONG

DECIMAL (p, d)

Warto rzeczywista z precyzj: p oznacza liczb


cyfr przed przecinkiem, d po przecinku.
Maksymalna ich suma moe by rwna 72

BIGDECIMAL

REAL

Warto numeryczna z przedziau od 1.4E-45


do 3.4E38 z precyzj 23 bitw

DOUBLE

Warto rzeczywista z zakresu od 4.9E-324


do 1.8E308 z precyzj 52 bitw

FLOAT (p)

Warto numeryczna z precyzj do 52 bitw

VARCHAR (p, m)

Cig znakw zmiennej dugoci: p dugo


cakowita cigu, m liczba znakw w wierszu.
Domylnie wielko p nie jest okrelona,
m domylnie przyjmuje warto 64

STRING

VARBINARY (p, m)

Cig binarny zmiennej dugoci. Znaczenie


parametrw takie samo jak powyej

INPUTSTREAM BINARY

OBJECT (t, m)

Cig obiektw jzyka Java, skadowanych w bazie


dziki serializacji obiektw: t oznacza klas obiektu,
m liczb obiektw

BOOLEAN

Zmienna dwuwartociowa true / false

DATE

Data liczona od roku 0

TIME

Czas okrelany w zakresie: 00:00:00 do 23:59:59

TIMESTAMP

Zwraca czas i dat w zalenoci od strefy czasowej

DOUBLE_PRECISION

BIT

Doczone narzdzia, poza przegldaniem danych, dodatkowo zapewniaj nam proste


mechanizmy administracyjne, tzn. zarzdzanie uytkownikami, przydzielanie praw, tworzenie kopii bezpieczestwa bazy, import danych z innych platform bazodanowych itp.
Do wykorzystania mamy trzy aplikacje, z ktrych kada jest uywana do innych funkcji.

Rozdzia 7. Przygotowanie bazy w systemie JDataStore

103

 DataBase Pilot zapewnia moliwo przegldania baz, ktrych aliasy

s zdefiniowane w ODBC. Przy jego wykorzystaniu moemy podejrze


zawarto kadej bazy, do ktrej posiadamy sterownik ODBC, a nie tylko
JDataStore.
 JDataStore Explorer za pomoc tego narzdzia mamy moliwo

tworzenia struktury bazy JDataStore, tworzenia nowych baz, testowania


zapyta SQL itd.
 JDataStore Server serwer baz danych JDataStore. Jeeli chcemy stworzy

baz zdaln, z ktr aplikacje klientw bd czyy si przez sie, lub


umoliwi podczenie wielu uytkownikw, musimy na komputerze
uruchomi serwer JDataStore.

DataBase Pilot
Aplikacj moemy wykorzysta na przykad w sytuacji, gdy jest potrzebna rczna modyfikacja bazy, a nie posiadamy narzdzi administracyjnych, ktre powinny by dostarczone
z okrelonym systemem bazodanowym. Na rysunku 7.1 widzimy interfejs aplikacji
z list dostpnych baz danych do przegldania w lewym oknie. Prawe okno, w zalenoci
od wybranej zakadki, udostpnia dwie funkcje:
 informacje o rdle danych, gdy wybrana jest zakadka Definition. Na przykadzie

wida dane dotyczce bazy danych stworzonej za pomoc Accessa. W zalenoci


od rodzaju wybranej bazy, znajduj si tam podstawowe informacje dotyczce
sterownika, nazwy uytkownika, hasa itd.,
 podrczny edytor polece SQL, jeeli wybierzemy Enter SQL. Za jego pomoc

moemy edytowa polecenia SQL i wykonywa je natychmiastowo EXECUTE.


Moliwe jest rwnie wczytywanie skryptw zawierajcych odpowiednie
polecenia i wykonywanie ich za pomoc przycisku Load SQL. Na dole zakadki
znajduje si wynik wykonania polecenia  wraz z komponentem
nawigacyjnym, za pomoc ktrego moemy edytowa okrelone wartoci.
Jeeli dane s pobierane z kilku tablic, naley pamita o wypenieniu wszystkich
wymaganych danych przy uwzgldnieniu struktury bazy, czyli ogranicze
i kluczy. W przypadku gdy dane bd niewaciwe lub niekompletne, zostanie
wygenerowany komunikat o bdzie.
Bardzo proste menu gwne aplikacji zawiera trzy pozycje:
 File podmenu, udostpnia nam funkcje:


New tworzy nowy URL, czyli rdo danych na licie dostpnych,

Open otwiera baz danych stworzon wczeniej za pomoc opcji New,

Close zamyka aktualne rdo danych,

Create Table tworzy tabel w wybranej bazie,

Apply uaktualnia zmiany w bazie,

104

JBuilder i bazy danych

Rysunek 7.1.
Okno gwne aplikacji
DataBase Pilot

Cancel cofa zmiany dokonane w bazie,

Delete usuwa URL z listy.

 View ustawienia dotyczce sposobu prezentowania danych w aplikacji.

Dodatkowa opcja pozwala na podgld danych typu BLOB.


W przykadzie na rysunku 7.1 w oknie z list URL znajduj si trzy bazy JDataStore
oraz dwie Accessa. Aby doda nowy alias bazy danych do listy, uywamy funkcji New.
W oknie dialogowym, jak na rysunku 7.2, wybieramy sterownik, za pomoc ktrego
bdziemy si komunikowali z baz (w polu Driver), oraz rdo danych.
Rysunek 7.2.
Konfiguracja
nowego URL-a

W przypadku sterownika ODBC jest to alias bazy danych z Administrator ODBC, w przypadku bazy JDataStore jest to plik *.jds w okrelonej lokalizacji. Dostpne sterowniki
omwi przy komponencie  
w rozdziale 8. Kiedy ju poczenie z baz zostanie nawizane, moemy za pomoc zakadki Execute Sql i odpowiednich polece
operowa na danych. Na rysunku 7.3 wida efekty wykonania prostego zapytania na
przykadowej bazie.

JDataStore Explorer
Drugie z opisywanych narzdzi jest przeznaczone dla projektantw bazy JDataStore. Zawiera ono szereg przydatnych funkcji, za pomoc ktrych moemy wykona wszystkie
charakterystyczne operacje, znane z innych platform bazodanowych. Okno gwne aplikacji

Rozdzia 7. Przygotowanie bazy w systemie JDataStore

105

Rysunek 7.3.
Wykorzystanie
zakadki Enter Sql
do pracy
z baz danych

(rysunek 7.4) jest podzielone na dwie czci. W lewej znajduje si drzewo rozwijane
z aktualnie otwartymi rdami JDataStore oraz ich elementami, w prawej pojawiaj
si rne opcje, w zalenoci od wybranego obiektu.
Rysunek 7.4.
Okno gwne aplikacji
JDataStore Explorer

W przedstawionym przykadzie z drzewa zostaa tabela T_TEST. Z prawej strony


moemy podejrze jej zwarto na karcie View lub struktur (karta Structure), co wida
na rysunku.
Menu aplikacji zostao podzielone na kilka sekcji:
 File za pomoc funkcji tu umieszczonych tworzymy nowe bazy danych

lub otwieramy istniejce,


 Edit funkcje edycji, takie jak usuwanie, zmiana nazwy, cofanie operacji

usuwania,

106

JBuilder i bazy danych


 View opcje rozwijania i zwijania poszczeglnych elementw struktury

drzewa,
 TxManager manager zarzdzania transakcjami,
 Tools zawiera funkcje suce do administracji i zarzdzania baz danych:


Import wczytywanie z innych platform bazodanowych struktury bazy,

Sql testowanie polece SQL,

Create Table tworzenie tabeli,

Create Index tworzenie indeksw,

Refresh JDataStore odwieanie bazy danych,

Save JDataStore zapis zmian do pliku jds,

Delete JDataStore usunicie wybranej bazy danych,

Verify JDataStore weryfikacja poprawnoci bazy,

Pack JDataStore wykonywanie kopii bezpieczestwa bazy,

Copy JDataStore kopiowanie pliku jds,

Administer Users zarzdzanie uytkownikami i prawami.

W celu zapoznania si z programem, przedstawi proces przygotowania kilku tabel


w nowej bazie danych. Pierwszym krokiem jest oczywicie stworzenie pliku jds. Wybieramy z menu opcj File/New i w oknie dialogowym New JDataStore, jak na rysunku 7.5,
ustalamy wymagane parametry.

Rysunek 7.5. Parametry nowo tworzonej bazy danych JDataStore

Najwaniejsze parametry to ustalenie: pliku jds, w ktrym bdzie przechowywana nasza


baza, wersji sterownika JDS, wielkoci bloku w kilobajtach (Block size in kilobytes)
oraz parametrw dodatkowych, dotyczcych uywania logw. Jeeli zdecydujemy, e
nasza baza nie powinna obsugiwa transakcji, pole Install w sekcji Tx Manager powinno

Rozdzia 7. Przygotowanie bazy w systemie JDataStore

107

pozosta odznaczone. W przeciwnym przypadku wybieramy przycisk Properties i ustalamy dodatkowe parametry, jak wida na tym samym rysunku w oknie Tx Manager
Properties. W oknie zawarto kilka parametrw zwizanych z obsug logw:
 Maximum open logs decyduje o liczbie otwartych plikw logw. Jeeli uywamy

wicej ni jednego, warto rozmieci je w rnych lokalizacjach lub nawet


napdach. Zabezpieczy to nasz baz przed konsekwencjami awarii,
 Maximum log size maksymalna wielko pliku logw, domylnie 64 MB,
 A, B log directory lokalizacja plikw logw. Jeeli pola pozostawimy puste,

pliki logw zostan umieszczone w tej samej lokalizacji, co plik bazy danych,
 Check frequency czstotliwo zapisywania do plikw. Decyduje, jak czsto

powstaj zapisy do plikw logw. Im czstsze zapisy, tym wiksze bezpieczestwo,


ale wolniejsza praca bazy,
 Soft Commit okrela, czy uywa opcji programowego zatwierdzania transakcji.

Programowa realizacja gwarantuje odzyskanie danych w momencie awarii


aplikacji. Nie zabezpiecza natomiast przed awariami spowodowanymi przez
system operacyjny lub sprzt, dlatego te jest zalecana dla stabilnego rodowiska
pracy aplikacji. Opcja ta poprawia dziaanie poprzez wstrzymywanie zapisw
na dysk i wykonywanie operacji bazodanowych w pamici komputera,
 Record status kontroluje, czy komunikaty generowane podczas pracy z baz

s zapisywane do pliku logw STATUS log, ktry jest przechowywany


w lokalizacji okrelonej w A log directory (rysunek 7.5).
Po stworzeniu bazy przystpujemy do zaprojektowania struktury. Moemy do tego celu
wykorzysta zewntrzne narzdzia projektowe (jak chociaby wspomniane w rozdziale
3.) i po wygenerowaniu skryptw SQL wczyta je i wykona na naszej bazie, lub wykorzysta funkcje programu. Aby zapozna Czytelnika z dziaaniem JDataStore Explorera, zaprojektujemy baz za jego pomoc. Na pocztku dodamy dwie tablice, zawierajce proste dane, pniej utworzymy indeksy i powizania. W celu dodania nowej
tablicy wybieramy z menu Tools/Create Table. Na rysunku 7.6 widzimy okno dialogowe edytora tablicy.
Dla naszych potrzeb przygotujemy dwie tablice, zawierajce ponownie dane ludzi i dane
adresowe. Jedn z nich widzimy na rysunku 7.6, zawiera ona trzy kolumny:
 ID_$ identyfikator, typ INT, pole ustalone jako wymagane (Required) oraz

automatycznie zwikszajce warto w przypadku wykonywania polecenia


 (AutoIncrement). Dodatkowo dla kadej kolumny mona ustali warto
domyln w kolumnie Default,
 MIASTO nazwa miasta, typ STRING o dugoci 20 znakw, pole rwnie

musi by wypenione,
 ULICA definicja jest dokadnie taka sama, jak w przypadku poprzedniej kolumny,
 ID_USER kolumna, ktra zostanie wykorzystana jako klucz obcy do kolumny

ID_$ w tabeli T_LUDZIE. Rwnie zdefiniujemy j jako wymagan i ustalimy


taki sam typ, jak dla kolumn ID_$.

108

JBuilder i bazy danych

Rysunek 7.6.
Definiowanie nowej
tablicy o nazwie
T_ADRESY

Druga o nazwie T_LUDZIE bdzie zawieraa nastpujce kolumny:


 ID_$ identyfikator, typ INT, pole ustalone jako wymagane (Required)

oraz automatycznie zwikszajce warto w przypadku wykonywania


polecenia  (AutoIncrement),
 IMIE nazwa miasta, typ STRING o dugoci 15 znakw, pole rwnie musi

by wypenione,
 NAZWISKO definicja jest dokadnie taka sama, jak w przypadku poprzedniej

kolumny,
 ROK rok urodzenia.

Kiedy tablice zostan ju przygotowane, naley zdefiniowa jeli potrzeba indeksy i klucze w poszczeglnych tablicach. W celu utworzenia indeksu i klucza w tabeli
wybieramy j z listy i wywoujemy opcj menu Tools/Create Index. Powoduje to otwarcie
okna dialogu jak na rysunku 7.7, w ktrym okrelimy wymagane parametry.
Aby przygotowa indeks, wystarczy poda jego nazw w polu Index Name i przenie
w sekcji Columns kolumny (jedn lub wicej) z okna Available do Selected. W tym
przykadzie tworzymy indeks na kolumnie ID_$. Ma on by kluczem gwnym, dlatego
zaznaczamy pole Primary Key oraz Unique. Podczas tworzenia indeksw w JDataStore zauwaamy, e nie mona stworzy indeksu na kolumnie z atrybutem AutoIncrement (numerowanie automatyczne). W ten sposb moemy przygotowa indeksy
i klucze gwne we wszystkich wymagajcych tego tabelach w bazie. Nazwy nadawane
indeksom powinny by dla jasnoci nazywane w zgodzie z przyjt przez projektanta
konwencj. Oczywicie kady projektant moe przyj wasny sposb nazewnictwa.
W naszym przykadzie przyjlimy schemat:
 dla klucza gwnego IDX_PK_nazwaTabeli, pierwszy czon oznacza, e jest

to indeks, drugi oznacza PK primary key, FK foreign key,


 dla klucza obcego IDX_FK_nazwaKolumny.

Rozdzia 7. Przygotowanie bazy w systemie JDataStore

109

Rysunek 7.7.
Edytor indeksw

O ile do tworzenia tabel, indeksw i kluczy gwnych moemy wykorzysta odpowiednie pozycje menu, przygotowanie pozostaych elementw bazy nie jest ju takie
proste. Aplikacja nie udostpnia narzdzi do tworzenia ogranicze czy wizualnego
tworzenia relacji pomidzy tabelami (jak chociaby prezentowany w poprzednim rozdziale MS Access). W celu zapewnienia spjnoci referencyjnej bazy oraz ustalenia
dodatkowych parametrw jej struktury musimy wykorzysta jzyk SQL i za pomoc
odpowiednich polece utworzy wymagane skadniki. Na szczcie autorzy aplikacji
wrd dostpnych funkcji umiecili edytor polece SQL. Praca z nim nie jest moe
szczeglnie wygodna, ale spenia on swoje zadania. My go wykorzystamy do przygotowania kluczy obcych oraz dodania ogranicze na kolumny tabel. Edytor mona
uruchomi na dwa sposoby, wybierajc z menu Tools/SQL lub ikon SQL z paska narzdzi. Okno edytora widzimy na rysunku 7.8, zawiera ono kilka przyciskw, ktre
moemy wykorzysta do wykonania polecenia SQL (Execute), przywrcenia poprzedniego polecenia (Previous), wybrania nastpnego (Next) oraz wczytania zewntrznego
pliku z poleceniami SQL (Load SQL). Za pomoc tego ostatniego moemy wczyta
skrypty przygotowane przez zewntrzne narzdzia projektowe typu CASE. W pierwszym kroku przygotujemy klucz obcy w tabeli T_ADRESY do tabeli T_LUDZIE o nazwie IDX_FK_ID_USER. Na podstawie wiedzy zdobytej w rozdziale 2. edytujemy nastpujce polecenie:
 
  
  
   
 

     


    
 

Stworzy ono ograniczenie na kolumnie ID_USER w tablicy T_ADRESY, ktre nie zezwoli,
aby do tej kolumny zostaa wpisana warto, ktra nie wystpuje w kolumnie ID_$
w tabeli T_LUDZIE. Jest to podobna relacja, jak tworzylimy w rozdziale 6., jednak
w tym przypadku projektujemy j bez uycia interfejsu graficznego. Po dodaniu ograniczenia odpowiednia ga pojawia si w lewym oknie struktury bazy (rysunek 7.9).

110

JBuilder i bazy danych

Rysunek 7.8.
Edytor polece SQL
w aplikacji
JDataStore Explorer

Rysunek 7.9.
Struktura bazy
z dodanymi kluczami
primary key
i foreign key

Naley pamita o zgodnoci typw kolumn, wykorzystywanych w takim ograniczeniu.


W ten sposb moemy tworzy zalenoci pomidzy innymi tablicami w bazie. Zasada
dziaania jest taka sama, jak w innych systemach bazodanowych i zapewnia spjno
referencyjn bazy. Drugie ograniczenie, jakie dodamy do naszej bazy, bdzie dotyczyo
kolumny ROK w tablicy T_LUDZIE. Ma ono na celu uniemoliwienie wpisywania roku
poniej wartoci 1900. W tym celu wykorzystamy ponisz instrukcj i za pomoc polecenia Execute edytora SQL wykonamy j na bazie.
   
     

Tym sposobem moemy przygotowa wszelkie inne polecenia SQL i wykona je na


bazie JDataStore.
Poza standardowymi funkcjami, dostarczanymi przez jzyk SQL, bazy JDataStore dostarczaj kilka dodatkowych funkcji, ktre programista moe wykorzysta przy tworzeniu polece SQL. Naley jednak pamita, e instrukcje SQL, wykorzystujce te
funkcje, bd wymagay zmian, gdy przeniesiemy je na inn platform bazodanow.
Krtka lista najczciej wykorzystywanych funkcji:

Rozdzia 7. Przygotowanie bazy w systemie JDataStore

111

   zwraca warto bezwzgldn z podanej

 
 
  

  ,    i    bardzo przydatne funkcje,
zwracajce aktualn dat i czas. Podajemy nazw funkcji w poleceniu
 ,

jak wida poniej, nazwa tablicy jest nieistotna, znajduje si jedynie w celu
poprawnoci skadni SQL.

  


  

W wyniku zapytania otrzymamy aktualn dat i czas.


  and  uycie funkcji spowoduje zmian wszystkich liter w cigu

lub kolumnie podanej jako parametr na due lub mae.


  suy do wydzielenia z danych typu  i  .

Za pomoc pierwszego polecenia pobierzemy miesic z podanej daty i bdzie


to warto .
    !"#"$!

Za pomoc drugiego godzin 19.


   !%%!&

Podczas uywania funkcji naley pamita o odpowiedniej formie podanej


wartoci, jak wida w przykadach.
    zwraca pozycj zadanego cigu znakw wewntrz innego. Wykonanie

polecenia

 ! !! !da w rezultacie 2.

    zwraca w wyniku zapytania substring (wycinek tekstu) pobrany

z kolumny cig znakw.


! ! ' (zwraca cig  

   z pobranego cigu znakw usuwa spacje lub inne zadane znaki


!)*+,-./)0,12.!

W wyniku wykonania tej funkcji otrzymamy string 



!",
wykonanie polecenia z parametrem spowoduje usunicie podanego znaku
tutaj #
 !! !$3&$#!w wyniku otrzymamy '789.75'.

You might also like