APEX-perusteita

 

Asenna APEX 4.0 käyttöösi testipuolelle. Asenna myös SQL Developer käyttöösi.

 

Luo lopuksi työalue admin-puolella testisovelluksiasi varten. APEX’ssa on oma työalue (workspace) käsitteensä. Anna kuvaava nimi työalueelle.

 

Jos on tarpeen nähdä syntyneen taulualueen nimi, niin valitse APEX’in admin-puolelta kohdasta ”Manage Workspaces” – ”Existing Workspaces” – ja listalta haluttu workspace (Workspace Name) ja ”Workspace Summary” raportilta kohta “Workspace Schemas” mistä näet ko. työalueen taulualueen nimen (Schemas, Tablespaces).

 

Jos tietokannan varmuuskopiointi on tehty dynaamisesti (ilman RMAN’ia) tai RMAN’in backup database komennolla on APEX-taulualue/et automaattisesti mukana varmistuksilla. DBA’n kannattaa varmistaa tämä kaikista APEX-ympäristöistä. Muussa tapauksessa (ilman RMAN’ia), tulee tarvittavat APEX-taulualueet lisätä käsin varmistusskriptiin.

 

Jokaisella taululla tulee olla oma pääavaimensa (pk, primary key) ja jokaisella lapsi-taululla oma viiteavaimensa (fk, foreign key). Voit generoidfa pk’lle arvon before row triggerillä taulun omasta sequenssistä. Anna sequenssille riittävä cache-arvo ja nomaxvalue. Using tablespace optiolla voit ohjata syntyvän indeksin omalle taulualueelleen. Jos dataa on paljon, niin tarkista tarvitaanko lisäindeksejä sovelluksen ja raporttien nopeuttamiseksi.

 

Tässä esimerkkinä companies- ja measures-taulujen luonnit. Mukana myös sequenssien ja before row triggerien luonnit. Nimeä tämä skripti johonkin hakemistoon vaikka nimelle companies_and_measures.sql. Aja skripti ohjelmointi-puolen (Application Builder) SQL Workshopin SQL-skripteistä (SQL Scripts), niin skriptit pysyy hyvin kasassa täällä APEX-puolella.

 

drop table companies cascade constraints

/

create table companies(

id                               number not null primary key,

firm_name                  varchar2(100) not null

)

/

drop sequence companies_seq

/

create sequence companies_seq nomaxvalue

/

create or replace trigger companies_trig01

before insert on companies

for each row

begin

select companies_seq.nextval into :new.id from dual;

end;

/

drop table measures cascade constraints

/

create table measures(

id                  number not null primary key,

fk_id            number not null,

mes_date   date not null,

measure1   number(10,2),

measure2   number(10,2),

measure3   number(10,2),

measure4   number(10,2),

measure5   number(10,2),

measure6   number(10,2),

measure7   number(10,2),

measure8   number(10,2),

measure9   number(10,2),

name1        varchar2(50),

name2        varchar2(50)

)

/

alter table measures

add constraint measures_fk_id foreign key ( fk_id ) references companies ( id ) on delete cascade

/

drop sequence measures_seq

/

create sequence measures_seq nomaxvalue

/

create or replace trigger measures_trig01

before insert on measures

for each row

begin

select measures_seq.nextval into :new.id from dual;

end;

/

 

Anna taulujen sarakkeille mahdollisimman kuvaavat nimet (Kts. Measures-taulun measure-sarakenimet eivät ole kuvaavia.) sovellusta ajatellen, niin sinun ei tarvitse muutella niin paljon sovelluksen labeleita.

 

Surrogaatti pk’n voi nimetä aluksi vaikka id’ksi ja lapsi-taulun fk’n fk_id’ksi, niin saat ”rautalankamallin” nopeasti aikaiseksi.

 

Jos teet lomake- tai taulukko näytön (page) hierarkian välistä, niin tee arvolista (lov, list of value) jaetuksi komponentiksi ja aseta se lapsi-taulun fk-kenttään. Lov helpottaa lapsi-rivin kohdistamista oikealle emolle. Id-arvon voi halutessaa liittää mukaan lov’in sql’än ”nimi-kentän” perään vaikka muodossa ”nimi ( id )”. Näillä esimerkkitauluilla lov’in voisi tehdä measures-taulun form page’n fk-kentälle (fk_id).

 

Sitten vaan sovellusta rakentamaan (Application Builder) omista tauluista tai valmissovellusta asentamaan tutkimaan ja testaamaan. Luo companies- ja measures-tauluista vaikka master detailj page. Anna sovellukselle kuvaava nimi (esim. Companies and Measures).

 

Käynnistä sovelluspuoli selaimesta, anna workspace’n nimi, sovellustunnus (userid/schema) ja salasana. Valitse Application Builder ja create. Rakennamme sovelluksen nollasta (scratch) ja SQL-tauluihin perustuen. Anna sovellukselle kuvaava nimi (Companies and Measures) ja valitse applikaatio-schema. Valitse create. Valitse master detalj page ja anna master-tauluksi companies ja detalj-tauluksi measures. Valitse create page ja create. Valitse lopuksi create application yhteenvetoruudulta.

 

Ja sitten vaan testaamaan ja tutkimaan mitä sovelluksella voi tehdä. Kaikki sovelluksen perustoiminnot hakua, muutosta, lisäystä ja poistoa varten tuli automaattisesti. Jotakin kosmeettista viilausta, kenttien järjestykseen liittyen jne. voi jo tämä ”rautalankamalli” vaatia, mutta ne on helppo tehdä.

 

Voit myös käydä läpi manuaalista vaihe vaiheelta esimerkki-sovelluksen rakentamista. Myös muita vaihtoehtoja omaehtoiseen opiskelemiseen voi löytyä (oracle learning library).

 

                     Copyright © 2004 Susara Oy 

jukka.sakkinen(at)susara.fi – 040 826 9 553 – SUSARA.FI - Susara Oy