1 Oracle Gebruikersclub Holland VISIE Voorjaar 2010 Jaargang 15 Nummer 1 h 7,50 Verslag eerste OGh APEX-dag Nieuwe mogelijkheden in Application Expres...
Op de dag zelf was het dan ook gezellig druk (150 deelnemers en 17 sprekers, naast de organisatie) en bij sommige sessies moesten er nog gauw stoelen bijgezet worden. Zowel van de deelnemers als van de sprekers kregen we veel positieve reacties. Het bestuur is dan ook verheugd dat ook deze dag zo succesvol was. Vanaf deze plek wil ik iedereen bedanken die hieraan heeft meegeholpen en in het bijzonder Learco Brizzi en Rob van Wijk die samen met Conclusion het programma hebben samengesteld. In dit nummer leest u er meer over. Het ene evenement is nog niet geweest of het volgende komt er al weer aan. Op 19 mei a.s. organiseren we de OGh Fusion Middleware/SOA-dag. De organisatie is reeds in volle gang. Zodra het programma beschikbaar is, zullen we u daarover informeren, zowel via de website als via de gebruikelijke gepersonifieerde mail. Dit jaar gaan we voor het eerst de algemene ledenvergadering langs elektro-
nische weg doen. De stukken zullen we via e-mail toezenden aan de contactpersonen en vervolgens kan er via de website op gereageerd worden. Hierna zal het bestuur in vergadering bijeenkomen en bepalen of er voldoende leden akkoord zijn. Op deze manier is het lijfelijk bijwonen van de ALV niet meer nodig en kunt u toch uw stem uitbrengen op het moment dat het u het beste uitkomt. Tot slot wil ik nog melden dat de OGhgroup op LinkedIn inmiddels al meer dan 550 leden heeft en nog steeds groeiende is. Als u er nog niet bij hoort, meldt u dan aan en laat zien dat u lid bent. De OGh is er voor de leden. Dus heeft u ideeën, suggesties, wensen, vragen of wilt u een steentje bijdragen? Laat het ons weten! Als u uw stem laat horen, zullen wij luisteren. Tot ziens bij een van de OGh bijeenkomsten. Robin Buitenhuis Voorzitter OGh
Inhoud Voorwoord - door Robin Buitenhuis
3
Verslag eerste OGh APEX-dag
4
Column – Ook de weg kwijt? door Theo Koster
10
APEX 4.0: de nieuwe mogelijkheden door Iloon Ellen-Wolff
12
APEX-as-a-Service door Andrik Eker en Bart Meijer
16
Eerste OGh Fusion Middleware-dag
19
Performance en PL/SQL – Steven Feuerstein in Nederland
20
door Toine van Beckhoven
Column – DBA 2.5 door Frits Hoogland
23
Spatial – Voorbij ruimtelijke grenzen door Remco Takken
24
Oracle Spatial dag in november
25
Oracle Locator and Oracle Spatial 11g Best Practices door Han Wammes
26
Ervaringen met SQL Developer door Frits Hoogland
29
OGh APEX-dag
Succes OGh APEX-dag weerspiegelt grote belangstelling voor Oracle ontwikkeltool
Indrukwekkend aantal nieuwe features in APEX 4.0 Een ding werd duidelijk tijdens de OGh APEX-dag die op 30 maart jl. in Figi Zeist voor de eerste maal werd gehouden: de Oracle ontwikkeltool mag zich verheugen in een enorme belangstelling van een sterk groeiende aanhang. De nieuwe versie APEX 4.0, die binnenkort officieel het licht ziet, telt een indrukwekkend aantal nieuwe en aangepaste features, die uitgebreid aan bod kwamen tijdens deze in alle opzichten geslaagde APEX-dag. Die grote belangstelling werd weer-
tijdens en na afloop van de APEX-dag
vermeldde twee plenaire sessies en
spiegeld in het aantal deelnemers
kwam duidelijk naar voren dat de
een flink aantal parallelsessies die
aan de APEX-dag. Binnen zeer korte
deelnemers het interessante en geva-
waren opgesplitst in drie tracks, met
tijd hadden zich 170 deelnemers in-
rieerde programma bijzonder positief
een onderverdeling naar kennis- en
geschreven, waardoor een wachtlijst
beoordeelden. Deze OGh APEX-dag
ervaringsniveau
moest worden geopend, want de ac-
zal dan ook net als de DBA-dag die
Een uitgebreid verslag van een suc-
commodatie was berekend op maxi-
vorig jaar voor het eerst werd gehou-
cesvolle dag, met dank aan de deel-
maal 150 personen. De plenaire zaal
den, zeker een vervolg krijgen.
nemers die als verslaggever een bij-
van Figi Zeist was dan ook tot en met de laatste stoel bezet. Uit de reacties
en
praktijkcases.
drage hebben geleverd. Het programma van de APEX-dag
APEX 4.0: the next step in Web Application Development
4
Verslag Erik Trip
leggen van gewenste functionaliteit
Dynamic actions
De keynote werd verzorgd door Pa-
centraal staat. Verder was het een
Met behulp van dynamic actions is
trick Wolf, bij Oracle EMEA verant-
van de ultieme doelen van de het
het mogelijk om op een declaratieve
woordelijk voor de technische ont-
APEX development team om inter-
manier op de webclient ‘dingen’ te
wikkelingen binnen APEX. Met zijn
actieve webpagina’s te kunnen ma-
realiseren waar voorheen JavaScript
aansprekende presentatie, die hij zelf
ken die niet gerefreshed hoeven te
voor gebruikt zou moeten worden.
‘APEX 4.0: The next step in database
worden (F5). Hij vermeed hierbij de
Te denken valt hierbij aan het tonen
driven web development’ noemde,
term Web 2.0. omdat deze term naar
en niet tonen van bepaalde velden
wist hij de aandacht van het zeer ge-
zijn (terechte) mening te pas en te
op basis van een waarde in een ander
ïnteresseerde publiek moeiteloos vast
onpas gebruikt wordt.
veld. Bijvoorbeeld het veld commis-
te houden. Aan de hand van talrijke
Van APEX 4.0 zijn inmiddels twee
sie uit de bekende emp tabel alleen
demo’s liet hij de nieuwe features in
early adopter versies verschenen die
tonen wanneer de job van de betref-
APEX 4.0 in hoog tempo de revue
voor iedereen te benaderen zijn via
fende employee ‘salesman’ is. Dit is
passeren.
http://tryapexnow.com/ De nieuwe
vanaf APEX 4.0 te realiseren m.b.v.
versie bevat maar liefst 170 nieuwe
dynamic actions. Er zijn 2 varianten
Sunrise
features. Sommigen daarvan zijn de-
van dynamic actions. Patrick Wolf
Patrick vergeleek de nieuwe versie
tails, maar er zijn ook een groot aan-
liet van beide een voorbeeld zien.
van APEX met een ‘sunrise’. Niet zo
tal indrukwekkende features te zien.
Met behulp van dynamic action zal
maar een nieuwe release dus, maar
Patrick behandelde daar een groot
de APEX ontwikkelaar in staat zijn
een compleet gemoderniseerde om-
aantal van.
om op een meer gestructureerde en
geving waarin het declaratief vast-
snellere manier dit soort zaken te
OGh APEX-dag
regelen. Waar voorheen op verschil-
zullen ontstaan om plug-ins be-
is nog steeds aanwezig in APEX 4.0
lende plaatsen JavaScript werd ge-
schikbaar te stellen.
maar werd door Patrick ‘classic’ en
bruikt zijn we nu in staat dit op een
Binnen APEX 4.0 is er voor dit doel
‘old’ genoemd. Ik moet beamen dat
declraratieve manier te doen. Het
al een zogeheten plug-in repository:
met de komst van deze tree-view de
schrijven van JavaScript is voor veel
Er zijn hier echter nog geen plug-ins
user interface inderdaad nog laag-
APEX ontwikkelaars een tijdrovende
door Oracle beschikbaar gesteld.
drempeliger is geworden. Met name
en ingewikkelde klus. Met behulp
Patrick gaf wel aan dat het APEX
voor Oracle Forms ontwikkelaars is
van de dynamic actions is een deel
development team door middel van
deze user interface, die vergelijkbaar
van deze taak verleden tijd. Wan-
plug-ins via deze weg in een vroeg
is met de UI die Oracle Forms ter
stadium al nieuwe functionaliteit ter
beschikking heeft, een verademing.
beschikking kan stellen.
Voor APEX ontwikkelaars die ver-
neer de standaard dynamic actions niet voldoende zijn kan er ook nog gebruik gemaakt gaan worden van JavaScript in een dynamic action.
Plug-ins Een ander ‘breaking new feature’ zijn
trouwd zijn met de component view
de plug-ins. Op het internet zijn tal-
APEX Builder
betekent dit even door de zure appel
loze open source JavaScript widgets te
Het APEX team heeft ook veel aan-
heen bijten.
vinden. Het tempo waarin deze ver-
dacht besteed aan de APEX Builder.
schijnen is nooit bij te houden door
Deze is in de loop van de verschil-
De opbouw van de uiteindelijk ge-
het APEX development team. Om
lende versies nauwelijks gewijzigd.
bouwde webpagina wordt in volg-
toch een manier te vinden om dit
Patrick gaf aan dat de builder te in-
orde van boven naar beneden in
soort initiatieven te kunnen omar-
gewikkeld was geworden en dat men
deze user interface getoond. (Before
men zijn de plug-ins geïntroduceerd
heeft gepoogd deze laagdrempeliger
Header, After Header etc.). Met an-
en meer productief te maken. De
dere woorden: de volgorde van page
in APEX 4.0. Net als bij de dynamic actions kan met behulp van plug-ins de bestaande set van user interface widgets worden uitgebreid op een declaratieve manier. De plug-ins zijn te vinden in het shared-components sectie van APEX. Patrick liet het voorbeeld van een zogeheten Group by poplist zien. Dit is een poplist van employees die gegroepeerd zijn per department name. Deze department name is in een andere kleurstelling ook in deze poplist te zien. Deze poplist is dus geen standaard APEX functionaliteit. De plugin werd geïnstalleerd en na installatie kan je bij een item dit type poplist nu eenvoudig selecteren. Er is in de korte tijd dat APEX 4.0 EA beschikbaar is al een vrij groot aantal plug-ins verschenen, zoals de amazon star rating, de slider en een password validation plug-in.
meest opvallende wijziging in dit
rendering is binnen de Application
Het is de verwachting dat er binnen
kader is de tree-view in APEX Buil-
Builder te zien. Verder is binnen deze
de actieve APEX community binnen
der. De builder uit eerdere versies
UI sprake van context sensitive me-
korte tijd verschillende initiatieven
kent de zg. component view. Deze
nu’s. Met een rechtermuisknop actie
5
OGh APEX-dag
drag & drop functionaliteit, het kopiëren van items , resequencen van items en balloon informatie over een item wanneer je met de muis over dit item beweegt. Patrick Wolf gaf ook aan dat in nieuwere versies de Application Builder nog verder uitgebreid gaat worden. Te denken valt daarbij bijvoorbeeld aan het selecteren van meerder items tegelijk, gevolgd door een bulk update. Deze tree view van APEX Builder is overigens (met beperktere functionaliteit) ook beschikbaar als nieuw item type.
Search Function Een kleinere, minder in het oog springende verbetering betreft de be-
worden alleen die acties getoond die
Er werden ook enkele kleinere nieuwe
voor het geselecteerde item van toe-
features van de Application Builder
passing zijn.
getoond. Voorbeelden daarvan zijn
Advertentie
Do you still wonder? www.ciber.nl
6
“CIBER is klantgericht… Zij zijn de eersten die
“CIBER stelt afdelingen in
“je kunt gewoon dingen
opstaan als er ’s nachts iets gedaan moet worden.”
staat om te excelleren.”
aan ze overlaten.”
ZIGGO
RIjksGebOuwendIenst
essent
OGh APEX-dag
de numeric check van de huidige
mogelijkheid om zelf (declaratief)
versie overbodig. Bovendien is er
webpagina’s te maken zonder
een aantal properties op ietm
daarbij kennis van SQL of PL/
niveau
de
SQL nodig te hebben. In de wan-
required property. Deze is nu ook
delgangen wordt de websheets
declaratief vast te leggen.
bijgekomen,
zoals
functionaliteit de Excel killer
• Nieuwe region types
genoemd. Het is zeer eenvoudig
De eerder genoemde tree is een
om een Excel sheet te transfor-
tere search functionaliteit.
voorbeeld van een nieuw region
meren naar een websheet pagina.
Wanneer je vervolgens op de getoon-
type. Een ander in het oog spring-
de resultaten klikt kun je in een keer
ende new feature op dit vlak is
Grote vraag blijft natuurlijk wan-
het gevonden object wijzigen. In de
het
van
neer APEX 4.0 officieel in productie
huidige versie kun je dit soort zoek
regions binnen regions. Dit worden
zal gaan. Natuurlijk kon Patrick daar
acties in de export sql file doen maar
subregions genoemd en deze
officieel niets over zeggen. Hij gaf wel
dit is beduidend arbeid intensiever
functionaliteit draagt met name
aan dat de code op het punt van be-
en foutgevoeliger.
bij aan een flexibelere manier
vriezen staat en dat er begonnen is
kunnen
definiëren
voor het realiseren van een
met het vertalen. Hij liet wel door-
New themes
bepaalde lay-out.
schemeren dat APEX 4.0 wellicht
In APEX 4.0 is ook een aantal nieu-
• Cascading List of Values
geïntroduceerd zal worden tijdens de
we themes beschikbaar gekomen. In
Wanneer je binnen een pagina
ODTUG Kaleidoscope conferentie in
de sessie van Art Melssen - Styling
een poplist op departments hebt
juni van dit jaar (meer info op
in APEX - werd uitvoerig ingegaan
laten volgen door een poplist op
http://www.odtugkaleidoscope.com/).
op de tekortkomingen van de hui-
employees, wil je in de tweede
dige themes binnen APEX. Een deel
poplist in het algemeen alleen die
van deze tekortkomingen (veel html
employees zien die werkzaam zijn
tables i.p.v. divs) zijn in APEX 4.0
op het eerder gekozen department.
opgeheven.
In de huidige versie van APEX is
dit alleen te realiseren met java-
Script code. In APEX 4.0 kunnen
Helaas had Patrick ‘slechts’ 1 uur
we dit declaratief vastleggen.
spreektijd gekregen en kon hij een
• Tabular Form verbeteringen
Verslag Arne Suverein
aantal nieuwe features slechts kort
De tabular kent een aantal ver-
Een van de vragen die ik als deel-
aanstippen. Genoemd werden:
beteringen. Deze liggen met name
nemer van de OGh APEX dag be-
• APEX Listener
op het vlak van het op een
antwoord wilde zien, is of APEX de
De APEX Listener zal de nieuwe
declaratieve manier van vast-
naam van Acces-killer kwijt kan ra-
aanbevolen manier worden om
leggen van validaties
ken. Is APEX een tool die ingezet kan
te communiceren met APEX.
• Websheets
worden voor bedrijfskritische appli-
Het is de opvolger van de em-
Het was enigszins verbazend dat
caties? Een van de bedrijven die hier-
bedded pl/sql gateway en Apache
websheets niet een prominentere
op een antwoord zou moeten kun-
Mod/plsql.
plaats hadden gekregen in de
nen geven is het Centraal Boekhuis
• Interactive reports verbeteringen
presentatie van Patrick.
(CB). Binnen de Oracle wereld staat
Deze al zeer uitgebreide functio-
Websheets wordt toch als een
het CB bekend als een standvastig
naliteit wordt in APEX 4.0 nog
van de meest aansprekende nieuwe
verdediger van de ‘dikke database’.
verder uitgebreid.
features genoem. (zie het artikel
De in ‘Javaanse’ ogen onverwachte
van Iloon Ellen-Wolff over de
en onwaarschijnlijke overstap van
Diversen
• Nieuwe item types en declara-
Centraal Boekhuis goes APEX
tieve validaties
nieuwe features van APEX elders
Java naar APEX is in deze optiek een
De lijst met item types is dras-
in dit nummer, waarin de feature
logische consequentie van het YAFE
tisch ingekort (nog maar 1 date
websheets uitvoerig wordt be-
principe (Yet Another Front End),
picker) en er is ook een nieuw
handeld, red.).
dat door Toon Koppelaars (ex-CB,
item type bijgekomen, namelijk
In het kort geeft websheets de
nu RuleGen) wordt uitgedragen. Ik
het number datatype. Deze maakt
(technische) eindgebruiker de
was erg benieuwd naar de ervaringen
7
OGh APEX-dag
met en de conclusies over deze opmerkelijke ommezwaai.
Dikke database Kitty Spaas en Mark Rooijakkers van Centraal Boekhuis deden in een aansprekende duopresentatie in een plenaire sessie uit de doeken wat er bij een overgang naar APEX allemaal naar voren komt. Vanaf 2001 gebruikt CB J2EE webapplicaties naast een aantal Forms applicaties voor intern gebruik op hun ‘dikke database’ architectuur. Dikke database betekent: sluiting te geven met betrekking tot
De belangrijkste conclusie van CB
• Data en bedrijfsregels in de
aanwezige
was dat APEX geschikt is voor grote
en bestaande architectuur.
database
ontwikkelcompetenties
bedrijfskritische toepassingen. Ik wil
• Dunne user interface
daaraan toevoegen dat naar mijn
• Communicatie tussen UI en
Pilot
mening een organisatie wel een de-
In een pilot in 2006 is ervaring opge-
gelijke applicatiearchitectuur moet
database via API
daan, zijn standaarden en richtlijnen
hebben waarop APEX gedropt kan
Toepassen van J2EE in een dergelijke
opgesteld en kengetallen verzameld.
worden. Omdat dit bij CB het geval
architectuur stuitte binnen de orga-
Daarna zijn vanaf 2008 alle online
is, kon het ook een succes worden.
nisatie op een aantal nadelen: onge-
webapplicaties
Andere lessen die getrokken kunnen
wenste afhankelijkheid van de leve-
bouwd naar APEX. Bijzonder hierbij
rancier van J2EE Framework en ook
is dat naast de navigatie en functi-
is niet iedere PL/SQL ontwikkelaar
onaliteit ook de lay-out 100 procent
• Ga niet één-op-één ombouwen,
direct een goede J2EE ontwikkelaar.
identiek moest zijn. De realisatie is
je bespaart daarmee niet op testen
Toen de J2EE applicaties vervangen
‘off-site’ uitgevoerd door O2U. CB
en je moet behoorlijk wat trucs
moesten worden is gekozen voor Yet
zette een team in van een projectlei-
gaan uithalen om het UI goed te
Another Front End, in dit geval viel
der, een tester en enkele reviewers ter
krijgen.
de keuze op APEX. En ten opzichte
bewaking van standaarden en richt-
• Niet elke PL/SQL ontwikkelaar is
van J2EE beloofde dit een betere aan-
lijnen.
een APEX ontwikkelaar, ook binnen
APEX heb je specialisten (Java-
Script, CSS) nodig.
één-op-één
omge-
worden:
Nu ondersteunen de APEX applicaties van Centraal Boekhuis 4.000 gebruikers en geven 750.000 hits per dag. Het CPU-gebruik op de server is toegenomen van 40 naar 60 procent, met een besparing van een applicatieserver. Samenvattend: een uitermate nuttig inkijkje in een bijzondere migratie, die aangeeft dat APEX zijn tijd als Acces-killer inderdaad heeft gehad. Meer over de dikke database is te
8
Kitty Spaas van Centraal Boekhuis presenteerde samen met collega Mark Rooijak-
vinden op: http://thehelsinkidecla-
kers de sessie ‘Centraal Boekhuis goes APEX’.
ration.blogspot.com/.
OGh APEX-dag
Hands-on APEX De eerste paralleltrack – Introduction to APEX – werd ingeleid met een presentatie van Toon Koppelaars van RuleGen, die de deelnemers liet kennismaken met APEX door eerst in grote lijnen de architectuur
maken van het totaal aantal scher-
van APEX en de installatie en con-
men, maar wat betreft de benodigde
Vanuit Forms communiceren met APEX
figuratie te behandelen. Vervolgens
tijd voor conversie maar liefst zestig
Het principe is gebaseerd op het feit
lichtte hij aan de hand van een aan-
procent opeisen. Deze schermen zijn
dat vanuit een Form een JavaScript
tal voorbeelden de meest relevante
de ‘bottlenecks’ als het om conversie
functie aangeroepen kan worden uit
concepten van APEX toe, zoals sub-
gaat.
het APEX gedeelte van de HTML-pa-
mit processing, branching en page
Een alternatief voor deze complexe
gina. Met deze JavaScript functie kan
rendering.
schermen is niet omzetten naar
dus vanuit Forms gecommuniceerd
APEX maar integreren in de APEX
worden met de APEX pagina. Wel
Met de opgedane basiskennis konden
applicatie, zo stelde Roel Hartman
moet het Form aangepast worden
de deelnemers vervolgens zelf aan de
in zijn presentatie Integratie van
zodat deze de JavaScript functie op
slag met APEX in de Hands-on ses-
Oracle Forms en APEX Het gaat hier
het goede moment aanroept.
sie. Tijdens deze sessies kregen de
uiteraard over webforms. De Forms
deelnemers mogelijkheid praktische
bestaan dan uit een HTML pagina
Als voorbeeld werd een Google Map
ervaring op te doen met APEX en zelf
met daarbinnen een applet. Met in-
(APEX) en een tabel met geografi-
wat tips en trucs uit te proberen, on-
tegratie wordt bedoeld het embedden
sche informatie (Form) gebruikt. De
der deskundige begeleiding van Toon
van een Form in een APEX pagina en
locatie van het geselecteerde record
Koppelaars
deze twee onderdelen met elkaar la-
in de tabel is zichtbaar in de Google
ten communiceren.
Map. Als een ander record in de
en
OGh-bestuurslid
Learco Brizzi van Iitium.
tabel geselecteerd wordt, toont de
Integratie van Oracle Forms en APEX
Embedden van een Form in APEX
Google Map de nieuw geselecteerde locatie (figuur 1)
Een webform is een HTML pagina
Verslag Bauke den Otter Veel bedrijven die Forms applicaties gebruiken zoeken naar een alterFiguur 1
natief. Naast Java komt dan al snel
met een applet. Een webform is een-
APEX in beeld. De conversie van
voudig op meerdere manieren op te
eenvoudige Forms naar APEX is geen
nemen in een APEX HTML Region.
probleem. Echter, meestal hebben
• Cut & Paste de Form HTML code
Vanuit APEX communiceren met Forms
Forms applicaties een beperkt aantal
Dit is lastiger, een webform is een
zeer complexe schermen die ook nog
• Maak een PL/SQL procedure die
applet en gesloten. Om dit op te los-
eens intensief gebruikt worden door
de webform HTML genereert
sen moet de CommunicatorBean
de organisatie. Dit zijn de schermen
• Neem de URL van de webform op
aangepast worden zodat deze externe
met veel validaties en triggers, kort-
events kan ontvangen. Daarnaast
om met een complexe User Interface.
Met de nodige styling is het webform
moet de Forms applet aangepast
Grofweg kan gesteld worden dat deze
naadloos op te nemen in de APEX
worden zodat deze met de juiste actie
complexe schermen tien procent uit-
pagina.
reageert op het externe event dat de
in de Region
in de Region
9
OGh APEX-dag
CommunicatorBean doorgeeft.
van deze techniek immers een fall-
Als voorbeeld werd een tabel met
back scenario.
NAW-gegevens
getoond
(APEX)
en daarnaast een Form met gedetailleerde informatie van het geselecteerde record in de APEX tabel (figuur 2)0. Als een ander record
APEX Masterclass
Verslag Rob van Wijk De laatste presentatie in de paralleltrack Masters of APEX werd verzorgd door Art Melssen van Ciber. In deze
geselecteerd wordt in de APEX tabel
In de druk bezochte APEX Master-
goed bezochte sessie Styling in APEX
past het Form zich aan en laat in-
class leidde Dimitri Gielis van APEX
vertelde Art dat hij een voorstander is
formatie van het nieuw geselecteerde
Evangelists en bekend APEX-blogger,
van een strikte scheiding van HTML,
record zien. Ook kunnen wijzigingen
de deelnemers van APEX 3.x naar
CSS en JavaScript. HTML dient voor
doorgevoerd worden in het Form of
APEX 4.0. Dimitri behandelde in
de inhoud en structuur, CSS voor de
de APEX tabel.
stevig tempo best practices en tips &
lay-out en JavaScript voor het gedrag
De benodigde code om Forms in
tricks waarmee gebruikers zich van-
van je pagina’s. Bij APEX wordt naar
APEX te embedden en met elkaar te
daag al kunnen voorbereiden op de
Art’s zin nog teveel HTML gebruikt
laten praten is klein en de opzet is
dag dat APEX 4.0 officieel beschik-
voor lay-out zaken. Dit beperkt de
telkens hetzelfde. Dat maakt deze
baar is. Een ding is volgens Dimitri
mogelijkheden om met de lay-out
opzet serieus toepasbaar in de prak-
zeker: met de komst van APEX 4.0
te spelen. Als de lay-out belangrijk
tijk. Voordeel voor de klant is dat
zal het leven van de APEX Develo-
voor je is, dan verdient het aanbeve-
deze kan kiezen voor een meer ge-
per veranderen. In de masterclass
ling om je eigen templates te maken.
leidelijke overgang van Forms naar
werden de veranderingen en nieuwe
Dit is gewoon een kwestie van doen,
APEX. Ook wordt de drempel om een
features in APEX 4.0 belicht aan de
maar vereist uiteraard wel gedegen
conversie van Forms naar APEX uit
hand van real-case scenario’s en live
kennis van HTML en CSS. Om te la-
te voeren verlaagd. Er is door middel
demo’s.
ten zien wat er mogelijk is als je de
Advertentie
10
Styling in APEX
OGh APEX-dag
HTML gelijk laat en de lay-out aan CSS over laat, liet hij een paar aansprekende voorbeelden zien, die te vinden zijn op www.csszengarden. com; een paar nieuwe CSS-bestanden onder je pagina en de pagina ziet er totaal anders uit.
Tips en voorbeelden Vervolgens kwam een aantal tips aan de orde om een goede start te maken met je eigen templates. Hoe om te gaan met de verschillende browsers, hun versies en hun eigenaardigheden. Art betoogde ook dat je van ieder soort template er maar eentje
Twaalf deelnemers aan de APEX-dag konden zelf aan de slag met APEX tijdens de
nodig hebt en geen 15 verschillende
Handson sessie.
zoals je in de APEX themes ziet. Met de CSS-bestanden maak je dan de
maakten de deelnemers kennis met
res op de golfbaan vergemakkelijkt.
verschillen in plaats van met een
Flightcare België (FCB), één van de
Hun presentatie AGILE application
compleet nieuwe template. Van een
bedrijven op de Brusselse luchthaven
development using Oracle APEX and
viertal
wer-
die de vluchtafhandeling van allerlei
Model Driven Development (MDD)
den voorbeelden behandeld hoe je
template-onderdelen
luchtvaartmaatschappijen verzorgt.
ging aan de hand van demo’s in op
ze zelf het beste kunt opzetten: een
Van grondafhandeling voor vlieg-
de grootste voordelen van APEX:
page, list, button en report template
tuigen tot passagier check-in, van
time to market, schaalbaarheid en
en tevens werden er een paar jQuery
vrachtafhandeling tot het laden van
flexibiliteit.
plug-ins aangestipt.
de vliegtuigen. Sinds 2007 heeft FCB
Verscheidene deelnemers vertelden
gekozen voor APEX om heel speci-
De derde praktijkcase ‘Top Logistics
aan het einde van deze presentatie
fieke, doch uiteenlopende data en
100% powered by APEX’ toonde aan
dat ze vol met ideeën zaten om ze
functionele behoeften op een snelle
dat APEX ook toepast kan worden als
toe te passen in hun eigen situatie.
en flexibele manier ter beschikking
bedrijfskritische applicatietool. Expe-
Gelukkig bevatte de presentatie veel
te stellen aan de business. Tijdens de
ditiebedrijf Top Logistics is gespecia-
URL’s naar sites met achtergrond-
presentatie lichtten de sprekers tel-
liseerd in de import, export en opslag
informatie over wat er werd behan-
kens aan de hand van een case een
van accijnsgoederen. Patrick Ball van
deld, zodat de toehoorders later alles
bepaalde functionaliteit toe, gevolgd
Fiton en Jaap van der Reijden (Top
nog eens rustig door kunnen nemen.
door de technische oplossing. Dit
Logistics) vertelden dat Top Logistics
(De presentatie is te downloaden van
bleek een prima mogelijkheid om
wel ideeën had over hoe het nieuwe
de OGh website). Al met al een in-
kennis te maken met de kracht van
systeem moest worden ingericht
spirerend verhaal dus, net als de an-
het framework en tegelijkertijd de
en met welke functionaliteit, maar
dere presentaties tijdens deze in alle
oplossingen outside-the-box te leren
moeite had met de concrete defini-
opzichten geslaagde OGh APEX-dag.
kennen.
tie. De deelnemers kregen te horen hoe APEX hen de mogelijkheid bood
APEX at work
om via Rapid Application Design
paralleltrack 3 kwam een drietal in-
Agile application development using Oracle APEX and Model Driven Development (MDD)
teressante gebruikerscases aan bod.
De tweede presentatie ging bijna
neafhandeling en het opmaken van
Een APEX-dag zou niet compleet zijn zonder verhalen uit de praktijk. In
(RAD) de ideeën vorm te geven en te visualiseren. Processen als expeditie en warehouse management, doua-
letterlijk het veld in. Gijs Burmann
voorraadposities en laadlijsten via
Flightcare België
van Datajini en Aris Begemann van
een portaal draaien inmiddels vol-
In een presentatie van Olivier Du-
iZeescore legden uit hoe APEX spe-
ledig op APEX.
pont en Jan Huyzentruyt van iAdvise
linzicht en het bijhouden van sco-
11
OGh APEX-dag
Column
Tot slot
dat deze OGh dag heeft aangetoond
Tot slot deed zij een oproep aan de
De APEX-dag werd afgesloten met
dat APEX duidelijk leeft bij de Ora-
OGh-leden om onderwerpen aan te
een “samenvattend kort dankwoord
cle community. APEX is volgens haar
dragen die leven binnen het vakge-
van Iloon Ellen-Wolf, werkzaam bij
uitgegroeid tot een professioneel,
bied, om zo deze in alle opzichten ge-
Oracle Support Services en vurig
mooi
slaagde APEX-dag een even succesvol
pleitbezorger van de APEX ‘ideolo-
ondanks de scepsis die aanvankelijk
gie’. Iloon maakt deel uit van een
heerste voor dit ‘gratis’ product van
internationaal team waarin zij als
Oracle. “Oracle en gratis, dat gaat
De OGh APEX-dag is mede mogelijk
Advanced Resolution Engineer voor
gewoon niet samen.”
gemaakt door de Silver sponsors Ciber
Forms en APEX ondersteuning biedt
Iloon Ellen gaf aan dat APEX verder
en Itium.
aan engineers overall ter wereld.
zal worden uitgebreid met meer plug-
De presentaties van deze dag zijn te
Ook geeft zij APEX-cursussen voor
ins en spoorde de aanwezigen aan
downloaden van de OGh website:
Oracle University en publiceert zij
vooral feedback te leveren om zo Ora-
www.ogh.nl.
regelmatig over APEX, onder meer in
cle de kans te geven APEX nog verder
Het verslag van de OGh APEX-dag is
OGh Visie (zie het artikel APEX 4.0:
te verbeteren. Beginnende gebruikers
tot stand gekomen met medewerking
de nieuwe mogelijkheden elders in
raadde zij met klem aan om “morgen
van Erik Trip van Darwin IT-Professi-
dit nummer).
al aan de slag te gaan met APEX”,
onals, Arne Suverein en Rob van Wijk
Iloon ellen deelde haar enthousiasme
met
van Ciber en Bauke den Otter van
voor APEX met haar gehoor en stelde
de website www.tryapexnow.com.
uitgekristalliseerd
als
aanbevolen
product,
vertrekpunt
vervolg in 2011 te geven.”
Itium.
Column Ook de weg kwijt? Al meer dan tien jaar nu ben ik on-
sproken die met droge ogen verkon-
(Rdb, Open-SQL) of ergens diep in
bezoldigd Oracle-watcher. Maar, ik
digden dat het inderdaad wel inge-
integreren (Exadata).
raak het een beetje kwijt. Het over-
wikkeld begint te worden.
ICT-technologie en (dat vinden de
zicht, de samenhang en de duide-
12
lezers niet leuk om te horen) –archi-
lijkheid. Het wordt me te veel. Hé
De vraag is wie er nog geïnteres-
tecturen worden een achterhaalde
Oracle, hou eens op met quaziljoen
seerd is. Ik ben ervan overtuigd dat
discussie. Klanten willen duidelijk-
verschillende producten, die (zelf
de klant dat niet meer is. Er zijn nu
heid en overzichtelijke keuzes. Ge-
aankruisen wat van toepassing is)
Oracle-klanten, Sun-klanten, BEA-
looft u het niet? Kijk dan maar eens
□wel / □niet overlappen, □wel / □niet
klanten etc., die allemaal een factuur
hoe auto’s en huizen worden ge-
integreren en □wel / □niet de koper
betalen aan Oracle, maar niet meer
kocht. Het woord turn-key komt niet
opzadelen met een probleem.
gebonden zijn met Oracle. Oracle
voor niets uit de aannemerij… Nog
moet daarom een Darwiniaanse sur-
steeds niet overtuigd? Kijk dan naar
Ik kom steeds meer ‘specialisten’ te-
vival of the fittest toepassen.
de iPad en iPhone. ICT-ers schreeu-
gen die namens Oracle alles weten
Alleen al voor de database noemt
wen moord en brand dat ze zelf geen
van een product. Het nadeel van
de website 17 producten en varian-
controle hebben over de applicaties.
specialisten is dat voor een hamer er
ten! Terug dus naar enkele duidelijke
Maar, klanten lopen ermee weg, om-
alles uitziet als een spijker. Met ‘hun’
producten (geen bundels, alstublieft
dat hij het gewoon doet.
product kunnen we vele problemen
geen bundels) die gewoon doen wat
oplossen. Ik ben de laatste jaren let-
ze doen moeten. Voorbeeld: gewoon
terlijk niemand meer tegengekomen
één database leveren. (Klant: “wat
die me eenvoudig kon uitleggen hoe
kan deze database?”. Oracle: “al-
Theo Koster is directeur van Conclu-
alle zelf ontwikkelde, voorheen ge-
les”). Bij voorkeur zelfs een data-
sion Corporate & Public Communica-
bundelde, al dan niet overgenomen
base-appliance; inpluggen en wegwe-
tion, een adviesorganisatie voor ICT-
producten allemaal samenhingen.
zen. De overige database producten
marketing. Zijn e-mailadres tkoster@
Wel heb ik hoge Oracle-mannen ge-
gewoon weggeven als open-source
conclusion.nl staat open voor reacties.
Theo Koster
APEX 4.0: de nieuwe mogelijkheden
Early adopter release beschikbaar op OTN
APEX 4.0: de nieuwe mogelijkheden Door Iloon Ellen-Wolff APEX - Application Express 4.0
Treeview - Overzicht van gebruikte
form), waarbij de voordelen van in-
wordt in de zomer of het najaar
objecten binnen een pagina in een
teractieve rapportage en tabelvorm
van 2010 uitgebracht. Om ont-
boom structuur. Dit vergemakkelijkt
formulieren
wikkelaars de kans te geven om
het bewerken van een pagina.
Websheets voorziet in filtering en
kennis te maken met de nieuwe
Plug-ins - Er bestaat de mogelijkheid
sortering met de mogelijkheid meer-
mogelijkheden, is er een early
om zelf objecten te maken die stan-
dere records op het scherm toe te
adopter versie beschikbaar op
daard niet aanwezig zijn binnen Ap-
voegen, te wijzigen of te verwijde-
OTN
plication Express en te gebruiken zijn
ren. Websheets is een collectie van
com). Er is enorm veel functio-
binnen de applicatie.
pagina’s die de WIKI syntax onder-
naliteit toegevoegd en gewijzigd
Uiterlijk - De gebruiksvriendelijk-
steunt. (http://code.google.com/p/
in APEX 4.0. In dit artikel een
heid van de tools is verbeterd.
support/wiki/WikiSyntax). Pagina’s
kort overzicht van de belangrijk-
Webservices - Ondersteunt naast
kunnen onderverdeeld worden in
ste nieuwe mogelijkheden, met
SOAP ook REST(REpresentational
secties en hiërarchieën.
extra aandacht voor de nieuwe
State Transfer).
(http://www.tryapexnow.
Websheets functionaliteit.
zijn
gecombineerd.
Websheet Wizard Naast de hier bovengenoemde mo-
Application Express heeft een websheet
Nieuwe features in Application Express 4.0:
gelijkheden zijn er nog tal van an-
wizard. Deze wizard is te benaderen
dere uitbreidingen op versie 4.0. In
vanaf de Application Builder.
Administrators - Apart menu voor
dit artikel wordt de nieuwe websheet
administrators met functies zoals
functionaliteit nader belicht.
applicatiebeheer en monitoring.
Functionaliteit van websheets • Creëren en delen van pagina’s
Advisor - Checks kunnen uitgevoerd
Websheets
over het web met behulp van een
worden op de applicatie zoals pro-
Websheets is een prachtige nieuwe
internet browser.
grammeer fouten, security verbete-
uitbreiding binnen APEX, die be-
• Creëren van paginahiërarchieën
ringen, kwaliteitsbewaking etc.
schikbaar is gekomen in de early
en crosslinks met gebruikmaking
ApexListener - Alternatief voor Ora-
adopter release 2. Deze mogelijkheid
van crosslink pagina’s (Pagina-
cle HTTP/Mod-PLSQL en Embedded
is voor de eindgebruiker ontwikkeld,
naam syntax wordt hier gebruikt).
PL/SQL gateway.
is heel simpel gehouden en is krach-
• Maken en beheren van datagrid.
Charts - Verbetering en uitbreiding
tig door zijn eenvoud.
Datagrid is een soort tabelvorm
van de chart mogelijkheden.
Een websheet is een voor gedefini-
formulier.
Dynamic actions - Om acties/ge-
eerde Application Express applicatie.
• Creëren van interactieve rappor-
beurtenissen uit te voeren na een be-
Een applicatie kan ontwikkeld wor-
tage met behulp van SQL en on-
paalde handeling en/of actie op het
den op een zeer gebruiksvriendelijke
derliggende datamodel.
scherm. (Te vergelijken met triggers
en interactieve manier. Zonder enige
• Annotatie pagina’s.
uit Oracle Forms)
voorkennis van applicatieontwikke-
•
Files : Upload en download
Repository - Uitbreiding van reposi-
ling en/of SQL/PLSQL kan een ap-
van files
tory tabellen en views.
plicatie worden gebouwd.
•
Images: Images kunnen in-
Team development - De volledige ad-
Websheets is een mix tussen de al
line in de pagina gebruikt
ministratie van een ontwikkelteam
bestaande interactieve rapportage
worden
kan hier ondergebracht worden.
en tabelvorm formulieren (tabular
•
Notes: Commentaar kan
13
APEX 4.0: de nieuwe mogelijkheden
toegevoegd worden.
gemaakt en opgeslagen worden
• Application Express gebruikers-
•
Tags: Kunnen worden ge-
• E-mail. Na abonnering wordt
bruikt in zoekopdrachten
data per e-mail opgestuurd in
• Single Sign On van Oracle
door de inhoud.
een bepaalde tijdsinterval
• LDAP
• Authenticatie en autorisatie kunnen
Authenticatie
gedefinieerd worden.
naam en wachtwoord (Lightweight
Directory
Access Protocol)
De log in kan gecontroleerd worden
• Aangepaste authenticatie
• Websheets kunnen hergebruikt
door:
worden in de applicaties van ont-
• Publieke toegang (Public access)
Repository
wikkelaars.
• Een websheet kan geconverteerd
worden naar een Application
Express applicatie.
(Customized)
Voorbeeld van het maken van een websheet:
Datagrid Datagrid is een set van tabelvorm data, dit is vergelijkbaar met een spreadsheet. De structuur van datagrid kan gedefinieerd worden door middel van kolomnamen, kolomtypes of door middel van kopiëren en plakken van spreadsheetdata. Na de creatie kan het onderliggende datamodel aangepast worden. Dit is na-
Stap 1: Het creëren van een nieuwe applicatie. Ook de in-
tuurlijk een zeer krachtige toepassing
houd van de homepage kan gedefinieerd worden. De inhoud kan
waar naar verwachting veel van ge-
worden gemaakt met de WYSIWYG editor (CK Editor)
bruik gemaakt zal worden. Naast de kolommen die men zelf definieert in een datagrid worden de volgende kolommen automatisch aangemaakt: Eigenaar, Gecreëerd door, Gecreëerd op, Aangepast door, Aangepast op, Rijvolgorde en annotaties). Datagrid lijkt veel op interactieve rapportage die zeer eenvoudig is aan te passen. In een datagrid kunnen er de volgende aanpassingen gemaakt worden. • Aanmaken van lijst van geldige
waarden (LOV)
• Toevoegen of verwijderen van
kolommen (Aanpassen van het
datamodel)
• Filters • Sortering van data • Highlighting • Aanmaken
van
paginaonder-
brekingen
• Berekeningen (Formulas) • Grafieken (Charts)
14
• Ordering van data (Group by) • Meerdere versies kunnen worden
Stap 2: De wizard toont een summary pagina voordat de websheet wordt aangemaakt. Na het drukken op de knop bevestigen wordt de websheet aangemaakt.
APEX 4.0: de nieuwe mogelijkheden
Stap 3: Een websheet wordt aangeroepen vanuit de Applica-
Websheets worden opgeslagen als
tion Builder. Standaard wordt de Application Express ge-
metadata en gebruiken de APEX$
bruikersnaam en wachtwoord als authenticatie gebruikt.
views. Dit geeft extra flexibiliteit voor de workspace ontwikkelaars.
Conclusie Websheets is niet een eenvoudig spreadsheet maar behelst veel meer functionaliteit. Het is ontwikkeld voor niet-ontwikkelaars en kan gebruikt worden zonder enige voorkennis van SQL/PL-SQL. De websheet kan hergebruikt worden binnen applicaties en kan uiteindelijk worden geconverteerd als een volledige ApStap 4: In de rechter bovenhoek staan de diverse mogelijk-
plication Express applicatie.
heden die beschikbaar zijn in een websheet. Een datagrid wordt aangemaakt door middel van knippen en plakken vanuit een spreadsheet.
Het eind resultaat.
Over de auteur Iloon Ellen-Wolff is sinds 1997 werkzaam voor Oracle Support Services Nederland, met als hoofdverantwoordelijkheid en –competentie Application Express. Iloon werkt in een internationaal Team waarin zij als ‘Advanced Resolution Engineer’ voor Forms en APEX ondersteuning biedt aan engineers overal ter wereld. Binnen Oracle onderhoudt zij de contacten tussen development, productmanagement en support. Iloon Ellen verzorgt daarnaast verschillende APEX cursussen voor Oracle University. 15
APEX-as-a-Service
Oracle technologie als basis voor SaaS-applicatie
APEX-as-a-Service Door Andrik Eker en Bart Meijer SaaS, oftewel Software-as-a-Ser-
• In tegenstelling tot de oudere ASP
Oracle database en APEX. Aan de orde
vice, is een term die steeds vaker de
(Application Service Providing)-
komen de opzet van een SaaS datamo-
kop opsteekt. SaaS is een vorm van
filosofie, wordt er niet voor elke
del, Datascheiding en Aanpasbaarheid
dienstverlening waarbij de dienst
klant een aparte instantie van
van de applicatie.
online beschikbaar gesteld wordt.
een
Opzet SaaS datamodel
De afnemer van deze dienst be-
maken alle klanten gebruik van
taalt maandelijks een bedrag aan
dezelfde database en applicatie.
Een van de belangrijkste aspecten van
de aanbieder om gebruik te maken
Beheerkosten
hierdoor
SaaS is de beveiliging. Meer nog dan in
van deze dienst. Met de database en
laag (updates en upgrades hoeven
andere applicaties is het afschermen
APEX heeft Oracle een goede basis
maar één keer doorgevoerd te
van data belangrijk. Men wil immers
voor een SaaS-applicatie.
worden).
niet dat klant A de bedrijfskritische
applicatie
opgezet,
blijven
maar
data van klant B kan inzien. Het is
16
De voordelen voor de afnemer van
Met name de voordelen aan de kant
daarom wenselijk al binnen het da-
een SaaS-dienst zijn eenvoudig te on-
van de afnemers zijn groot te noemen.
tamodel, dicht op de data, deze schei-
derkennen:
Volgens Gartner werd in 2005 nog
ding vast te leggen. Dit doen we door
• Doordat de IT-infrastructuur be-
5% van budget voor zakelijke software
de entiteit Tenant (huurder) te intro-
horend bij de dienst elders ligt,
besteed aan SaaS en zal dit in 2011 al
duceren. Deze entiteit staat feitelijk
zijn
investeringen
gestegen zijn naar 25%. Een goede re-
voor een instantie van de applicatie
relatief laag en hoeft de afnemer
den om als leverancier van diensten de
voor een bepaalde klant. Of zoals in
geen onderhoud en beheer te
wereld van SaaS te betreden.
het oude ASP model staat een Tenant
plegen. Er kan dus flink worden
bespaard
personeel.
de
initiële
op
IT-kosten
en
voor een installatie op een server.
Oracle technologie-stack Als we naar de Oracle technologie-
• Het mooie van SaaS is dat de prijs
stack kijken, lijken we met de Oracle
voor het gebruik laag gehouden
database en APEX (Application Ex-
kan worden als er veel afnemers
press) een uitstekende basis voor een
zijn;
SaaS-applicatie te hebben. De Oracle
kosten gedragen.
gezamenlijk
worden
de
database biedt een veilige en robuuste
• SaaS past binnen de filosofie van
plek om data op te slaan en met APEX
het nieuwe werken; de applicatie
kunnen mooie, moderne internetap-
wordt over het internet ontsloten
plicaties maken om die data te onslui-
en is daarmee overal en altijd te
ten. APEX draait in de database en dat
bereiken. De gebruikers hoeven
maakt het geheel schaalbaar, wat in
niet langer naar kantoor te gaan
een SaaS-architectuur van groot be-
In afbeelding 1 is een datamodel ge-
om gebruik te maken van de
lang is.
toond van een SaaS-applicatie. De
applicatie.
Afbeelding 1
tabel Tenants bevat de afnemers van Bij het bouwen van een SaaS-applica-
de dienst, met daaraan de gebruikers-
Voor de leverancier zijn er uiteraard
tie wordt een aantal eisen gesteld die
accounts gekoppeld behorende bij
ook voordelen aan te wijzen:
bij de traditionele applicatiebouw van
de Tenant. Daarnaast staat een ta-
• Met de ontwikkelde service kan
ondergeschikt belang zijn. In dit arti-
bel waarin applicatiedata zit. Deze is
een breed publiek bediend worden
kel worden drie van deze eisen verder
groen gemaakt om aan te geven dat de
(de applicatie wordt immers via
toegelicht en wordt besproken hoe ze
data die erin zit van een ander niveau
internet aangeboden).
toegepast kunnen worden binnen de
is, namelijk Tenant-afhankelijke data.
APEX-as-a-Service
In de praktijk zal door een eindgebrui-
gelogd wordt op de database binnen
security van de VPD of VPD-light. In
ker ook nooit een selectie mogen wor-
een context het ID van de Tenant ge-
het eerste geval dient met DBMS_RLS
den gedaan over de gehele tabel, maar
registreerd. Op basis van deze context
op iedere tabel een policy te worden ge-
alleen over de aan hem beschikbare
is binnen de sessie van de gebruiker te
definieerd waarin wordt bepaald welke
gestelde data. Iedere tabel in het da-
bepalen welke data getoond mag wor-
records getoond mogen worden en
tamodel krijgt een referentie naar de
den. Anders gezegd, de data wordt ge-
aan wie. In het tweede geval wordt er
kolom Tenants.id. Dit hoeft niet per se
filterd op Tenant ID.
per tabel een view gedefinieerd waarin
referentieel te worden afgedwongen,
Voor het registreren van de Tenant
gefilterd wordt. Met behulp van de
omdat de data in deze kolom nooit
ID in de context hebben we een pac-
sys_context functie kan de huidige Te-
zichtbaar wordt voor de gebruiker.
kage nodig en uiteraard een context.
nant worden opgehaald uit de context.
Maar vanwege performance redenen
Als voorbeeld nemen we het package
Door bijvoorbeeld de volgende query
kan het natuurlijk wel interessant zijn
pkg_saas en als context security. Het
op de tabel klanten te draaien wordt
om foreign keys te leggen.
package bevat een procedure set_te-
van alle klanten van de huidige Tenant
nant, die vanuit de applicatie wordt
de naam en het ID getoond:
Datascheiding met de Virtual Private Database
aangeroepen met de sessie van de ingelogde gebruiker. Hoewel niet strikt
select id
De Enterprise Edition van de Oracle
noodzakelijk zijn we uitgegaan van
,
klant_naam
database biedt de mogelijkheid tot da-
een custom authorisatie met daarbij
from
klanten
tascheiding met behulp van security
een tabel sessions, waarin de huidige
where
policies op tabellen en views. Dit ma-
sessies worden bijgehouden.
context(‘SECURITY’, ‘TENANT_
nagen van de toegang tot data wordt
=
sys_
ID’);
de Virtual Private Database (VPD)
De inhoud van set_tenant zou er als
genoemd. Voor de overige Oracle da-
volgt uit kunnen zien:
tabaseversies bestaat deze optie niet, maar daar bestaat wel de mogelijkheid
Tenant_id
Door middel van triggers op de tabellen kan met dezelfde functie de Tenant_id worden gevuld:
begin
van een implementatie door middel
/* haal de Tenant_id op uit
van views (een soort VPD-light) te
de tabel sessions op basis
:new.tenant_id
maken.
van de sessie */
context(‘SECURITY’, ‘TENANT_
:=
sys_
Voordat er data beschikbaar wordt ge-
select Tenant_id
steld dient er bekend te zijn wie de ge-
into
v_tenant_id
bruiker is (het authenticeren) en om
from
sessions
Op deze manier hoeft de Tenant_id
welke Tenant het gaat. Er is een keuze
where
session_id = <para-
niet beschikbaar te worden gemaakt
te maken of de Tenant bekend wordt
meter met de sessie>;
op het moment dat een gebruiker succesvol inlogt of dat er een Tenant wordt opgegeven voordat er een inlog
ID’);
aan de gebruiker en wordt deze informatie op de achtergrond gebruikt. Tij-
/* registreer de Tenant_id in de context
security */
dens de implementatie van VPD-light kan worden overwogen de benodigde
plaatsvind. Door de Tenant bekend te
dbms_session.set_
views in een separaat schema te plaat-
laten zijn voordat men inlogt is het in-
context(‘SECURITY’,’TENANT_
sen. Hiermee wordt bij (onverwachte)
logscherm ook te personaliseren met
ID’,v_tenant_id);
directe toegang op het schema, de data
de stijl van de Tenant. Dit kan men
end;
afgeschermd.
naar de applicatie een unieke code
Met het volgende commando maken
mee te geven van de Tenant. Uiteraard
we de context aan en geven PKG_SAAS
Aanpasbaarheid van de applicatie
moet deze unieke code geen opvolgend
de mogelijkheid variabelen in de con-
Een van de aantrekkelijke punten van
nummer zijn, om te voorkomen dat
text aan te passen.
de SaaS-gedachte is dat afnemers van
bereiken door bijvoorbeeld in de URL
mensen met het bewerken van de pa-
zo’n applicatie in staat gesteld worden
rameters een andere Tenant kunnen
CREATE CONTEXT security USING
om de applicatie te personaliseren
openen. Op basis van de code wordt
pkg_saas;
(vormgeving) en tot op zekere hoogte
de Tenant bepaald en een gepersonali-
aan te passen aan de eigen behoeften
seerd inlogscherm getoond.
Vanaf dit punt is het relevant of ge-
(weergave gegevens). Hoe kunnen we
Wanneer de gebruiker succesvol is in-
bruikt wordt gemaakt van Row Level
binnen APEX hieraan tegemoet komen?
17
APEX-as-a-Service
Een legitieme vraag van een klant zou
len vanuit een application process is
wordt de stylesheet in de map van de
kunnen zijn om de vormgeving van
binnen de gehele applicatie deze naam
Tenant gerefereerd in plaats van het
de applicatie naar zijn huisstijl om te
beschikbaar. De inhoud van het ap-
standaard theme. Op dezelfde manier
zetten. Dit betekent dat per klant een
plication process zou iets kunnen zijn
is de het logo in de application defini-
andere vormgeving van toepassing is.
als:
tion te wijzigen in
ter gebaseerd op themes en templates.
/* haal de bij de ingelogde
#IMAGE_PREFIX#tenants/&GLOB_
Deze keuze in de opzet van APEX leidt
gebruiker
TENANT./logo.png
tot beperkte mogelijkheden voor wat
op */
betreft het toepassen van meerdere
select naam
Dit maakt het mogelijk per Tenant een
vormgevingen voor een applicatie. Er
into
:GLOB_TENANT
apart logo te tonen. Op deze manier
kan namelijk niet runtime naar een
from
Tenants t
is het relatief eenvoudig om aanpas-
ander theme gesprongen worden.
,
users u
singen aan het uiterlijk beheersbaar en
Wat betreft de vormgeving zijn we dus
where
t.id
onderhoudbaar te doen binnen APEX.
beperkt in de mogelijkheden die APEX
and
u.naam = :APP_USER;
De vormgeving binnen APEX is echbehorende
Tenant
= u.tenant_id
ons standaard biedt. Gelukkig kunnen
layout van de applicatie, die niet op
we met niet al te veel moeite toch een
Nu de naam (bijvoorbeeld devries) in
deze manier is te beinvloeden.
heel eind tegemoet komen in de vraag
GLOB_TENANT te vinden is kan er-
De volgende afbeeldingen geven een
van de klant. Denk maar aan het ge-
aan worden gerefereerd. Dit wordt ge-
indruk van wat met weinig moeite al
bruik van verschillende stylesheets en
daan vanuit de page template. In ieder
mogelijk is.
plaatjes.
page template is iets te vinden als
Weergave van gegevens
In het volgende voorbeeld is uitgegaan van een ‘vormgeving’ per klant, maar
rel=”stylesheet”
Belangrijker dan het uiterlijk is meestal
er zou natuurlijk ook gekozen kun-
href=”#IMAGE_PREFIX#themes/
de inhoud van de applicatie: de gege-
nen worden voor een serie standaard
theme_13/theme_3_1.css”
vens. In een SaaS-applicatie zal door-
vormgevingen waar de klant uit kan
type=”text/css” />
gaans voor een generieke opzet worden
kiezen. Om te beginnen wordt een APEX
gekozen wat betreft het datamodel. Er Door dit te wijzigen in:
theme gekozen die veel aansluit bij de
moeten immers zoveel mogelijk klanten gebruik van kunnen maken. Dit
vormgeving die gewenst is. Deze wordt
leidt echter tot beperkingen bij de ene
vervolgens toegepast op de applicatie.
href=”#IMAGE_
klant, die kan niet alle gegevens kwijt,
De bij de theme behorende plaatjes en
PREFIX#tenants/&GLOB_TE-
terwijl een andere klant teveel lege
stylesheets worden opgeslagen in de
NANT./theme_3_1.css”
velden blijft zien, omdat deze ze niet
welbekende map /i/themes/
type=”text/css” />
gebruikt.
theme>. Afhankelijk van de opzet van
APEX biedt standaard de Excel-achtige
de APEX omgeving is deze te bereiken
interactive reports, waarin de moge-
via FTP, HTTP of netwerklokatie. Per klant wordt de inhoud van deze map aangepast naar de gewenste vorm. Zo kunnen plaatjes, kleuren en lettertypen worden aangepast. Per klant wordt een map aangemaakt op de locatie /i/tenants, bijvoorbeeld /i/tenants/devries, waar deze aangepaste onderdelen worden geplaatst. Hoe kunnen we vanuit APEX nu gebruik maken van ons aangepaste theme? Om de locatie van het klantthema te bereiken is de naam van de
18
Uiteraard blijft men gebonden aan de
map nodig. Door een applicatieitem GLOB_TENANT te maken en te vul-
Een scherm van ‘De Jong’
APEX-as-a-Service
port. Dit valt afhankelijk van de opzet toe te passen op items, regions, pages etc.
Conclusie APEX biedt standaard voor SaaS-applicaties al veel mogelijkheden. Door wat eenvoudige uitbreidingen is het mogelijk een service aan te bieden waarbij de klant meer mogelijkheden krijgt om de applicatie aan te passen naar zijn eisen. Dankzij de eenvoudige datascheiding-mogelijkheden van de Een scherm van ‘De Vries’ lijkheid zit zelf data op te maken naar
bijvoorbeeld door middel van een pac-
Oracle Database in combinatie met
kage eenvoudig bepaald worden of een
Application Express is een SaaS-appli-
gegeven gewenst is op een scherm.
catie aanbieden veel eenvoudiger en
de wens van de gebruiker. De gebruiker
goedkoper geworden.
kan kolommen tonen en verbergen en
Een condition van het type ‘PL/SQL
het resultaat bewaren voor een andere
Function Body Returning a Boolean’
De auteurs zijn werkzaam bij het Exper-
keer. Op de achtergrond gebeurt dit
van een report column zou kunnen
tisecentrum Oracle van Caesar Groep,
door per gebruiker instellingen bij te
zijn:
Andrik Eker als Technology Manager/ Consultant en Bart Meijer als Systeem-
houden over de weergave. Dit principe kan door heel APEX worden gebruikt
return
door elke Tenant de mogelijkheid te
beschikbaar(‘KLANTEN.NAAM’)
pkg_saas.is_gegeven_
ontwikkeiaar. Het artikel is een weergave van de presentatie die Bart Meijer samen met Menno Noorloos, Applicatieontwik-
bieden aan te geven welke kolommen er beschikbaar dienen te zijn en of deze
Op deze manier zou de Tenant kun-
kelaar bij Caesar, tijdens de OGh APEX-
al dan niet verplicht zijn. Door deze
nen aangeven dat de kolom naam niet
dag heeft gehouden.
gegevens in een tabel op te slaan kan
hoeft te worden getoond in het rap-
OGh Fusion Middleware-dag met prominente gastspreker Op 19 mei organiseert voor de
Management en middleware.
eerste maal de Fusion Middleware-
• Oracle Service Bus • BPEL in een BPM context
dag. Na de succesvolle DBA-dag in
De bijeenkomst geheel in het teken
• SOA bij de Gemeente Rotterdam
november vorig jaar en de APEX-
van de Oracle Fusion Middleware-
• Monitoring en beheer van
dag op 30 maart jl. (zie verslag op
technologie en architectuur, die diep-
pagina 4 van dit nummer) is dit de
gaand en vanuit verschillende ge-
• Oracle Weblogic vs. Oracle
derde in de reeks van vier Special
zichtspunten zal worden besproken
Interest Group dagen die de OGh
en toegelicht. En uiteraard biedt deze
• Oracle en Sun –
jaarlijks organiseert.
OGh-bijeenkomst ook een uitstekend
Voor deze bijeenkomst heeft de
platform om kennis te delen en er-
OGh de bekende analist en BPM-
varingen uit te wisselen met collega-
Het definitieve programma en na-
goeroe Bruce Silver bereid gevon-
gebruikers en sprekers.
dere details over de locatie van de
den als gastspreker op te treden.
De OGh Middleware-dag wordt ge-
OGh Fusion Middleware-dag loca-
Bruce Silver is oprichter van BP-
houden op 19 mei van ca. 9.30 –
tie zijn binnenkort beschikbaar op
Messentials en Principal Analyst van
17.00 uur in een nog nader te bepalen
de website van de OGh.
Bruce Silver Associates. Hij geldt als
locatie in het midden van het land.
een van ’s werelds grootste experts
Onderwerpen die in ieder geval aan
Noteer in ieder geval alvast de
op het gebied van Business Process
bod komen zijn:
datum 19 mei in je agenda.
Fusion Middleware Application Server nu en in de toekomst
19
Steven Feuerstein – Performance en PL/SQL
Performance en PL/SQL Steven Feuerstein in Nederland Door Toine van Beckhoven Vorige maand konden OGh-le-
nieuwe performance functionaliteit
dure ‘A’ daarentegen is een mooie en
den voor de vijfde keer in elf jaar
in Oracle 11g. Gedurende de avond
waarneembare verbetering. Steven
weer genieten van de presenta-
werd de presentatie ook doorspekt
noemde de 80-20 regel: de meeste
tiekwaliteiten en kennis van Ste-
met best practices en aanwijzingen
van je code zal nooit onderdeel van
ven Feuerstein, alom erkend als
om PL/SQL code te schrijven: met
een bottleneck worden, dus maak
dé PL/SQL expert in de wereld.
inachtneming van een aantal goede
geen obsessie van het optimaliseren
En om nog eens te benadrukken
gewoontes kun je namelijk veel beter
van al je regels code.
hoe zijn naam wordt uitgespro-
gebruik maken van verbeteringen in
ken, volgt hier een quote van zijn
nieuwe versies, zoals de in 11g geïn-
Caching
website
www.stevenfeuerstein.
troduceerde Function Result Cache.
Het eerste performance mechanis-
com: “How do you pronounce
In dit verslag laat ik zien welke per-
me waarover Steven sprak betreft
your last name?” – “Oh, all right.
formance handvatten de ontwikke-
caching. Het idee achter caching is
The answer is (drum roll, please):
laar onder meer heeft.
om een snellere toegang tot meer
FOYER-STEEN.”
dan eenmaal gebruikte gegevens te
Performance Tuning
bewerkstelligen dan zonder caching.
Feuerstein noemt zichzelf momen-
Performance Tuning is van belang in
Toegang tot gegevens kan om meer-
teel ‘PL/SQL Evangelist at Quest
alle softwarelagen: de ketting is im-
dere redenen traag zijn en de meest
Software’. Hij schreef en schrijft tal
mers zo sterk als zijn zwakste scha-
voor de hand liggende is die waarbij
van boeken, presentaties, software
kel. Maar overdrijf het niet en focus
data uit de database gelezen moet
en artikelen geheel gewijd aan PL/
op de meest significante problemen.
worden via een SQL query. Hoe op-
SQL. Sinds 1999 probeer ik altijd te
In een proces waarvan procedure ‘A’
timaal de query ook is, zodra het
gaan kijken als hij Nederland aan-
95% van de tijd kost en procedure
proces door de SQL laag moet is er
doet. Op 23 maart was Steven te gast
‘B’ de resterende 5%, zal een perfor-
een reeks aan resource intensieve
bij Ordina in Nieuwegein, dat samen
mance verbetering van 80% van pro-
operaties nodig voordat de data bij
met Quest Software het seminar In-
cedure ‘B’ de totale doorlooptijd niet
de client arriveert. Waaronder net-
noveer jij mee met Oracle 11g? had
merkbaar verkorten. 80% van proce-
werkverkeer, latching, I/O, parsing,
georganiseerd.
Op
de
inmiddels
bekende Feuerstein-wijze (geestig, luchtig, maar bovenal informatief en met altijd wel een opmerking van politieke aard erin) vulde Steven de avond. De ontvangst door Ordina was prima, met een uitgebreid warm buffet. Door afzegging van een andere aangekondigde spreker was de avond dan ook geheel voor Steven. Dat beviel hem wel: ‘Ik moet altijd vechten tegen de tijd. Nu kan ik ontspannen de tijd nemen voor mijn presenta-
20
tie’. Het onderwerp van de avond was High Performance PL/SQL en
Steven Feuerstein – Performance en PL/SQL
filtering, sortering en grouping. Als
De cache wordt geïnvalideerd zodra
Magic and Mystery Of PL/SQL Col-
data relatief statisch is (duidelijk va-
er wijzigingen worden aangebracht
lections’. Destijds was Oracle 9i de
ker bevraagd dan gemuteerd), is het
in ervan afhankelijke tabellen (die je
productieversie van de database. In
sneller om die data -eenmaal opge-
in 11g R1 zelf moet aangeven, maar
de afgelopen jaren is Bulk Processing
haald- te cachen en bij elke volgende
die in R2 door Oracle zelf worden
verder geoptimaliseerd en elke ont-
vraag te serveren uit die cache.
afgeleid)
wikkelaar die nog ‘row-by-row loops’
Oracle zelf biedt al vele jaren ver-
Let op: in geval van Virtual Private
schrijft in PL/SQL zou echt moeten
schillende caching mechanismen,
database functionaliteit alsmede in
kijken of Bulk Processing mogelijk
maar die zijn aanwezig in de SGA
het geval van Invoker rights stored
is.
(System Global Area). En SGA toe-
modules moeten extra maatregelen
Row-by-row wordt ook wel slow-
gang heeft altijd een zekere vorm van
getroffen worden om geen onbe-
by-slow genoemd en dat komt voor
overhead: het is shared memory en
trouwbare of zelfs beveiligde gege-
een groot deel door het grote aan-
shared memory wordt beschermd
vens terug te geven.
tal ‘context switches’ dat gedaan
door latches. En tot Oracle 11g was
De resultaten van de Function Re-
wordt tussen de SQL en PL/SQL
er geen mogelijkheid om data caches
sult Cache zijn zeer goed: tests die
engine. Met Bulk Processing (BULK
van volledige resultaten te maken,
Steven gedaan heeft wijzen uit dat
COLLECT en FORALL) worden met
behalve door zelf in PL/SQL package
deze cache maar nauwelijks langza-
name deze context switches gemini-
variabelen data op te slaan (in col-
mer is dan PGA caching. Dat heeft
maliseerd. De verbeteringen zijn zeer
lections). Deze data wordt dan ge-
te maken met het feit dat de Func-
significant. De code wordt wel iets
cached in de UGA (de User Global
tion Result cache in Shared memory
ingewikkelder, maar het resultaat
Area). Dit is geheugen dat - simpel
staat: toegang daartoe is altijd wat
maakt dat meer dan goed. Feuerstein
gezien - alleen toegankelijk is voor
kostbaarder dan PGA toegang.
noemt Bulk Processing PL/SQL’s be-
de sessie, dus zonder de noodzaak
Een best practice die Steven aanhaal-
langrijkste performance instrument.
tot bescherming zoals in de SGA en
de en waar hij op blijft wijzen is: mi-
In de nieuwere versies van Oracle is
daarmee minder vatbaar voor con-
nimaliseer SQL in PL/SQL! Alle SQL
met name het gebruiksgemak verbe-
currency problemen. In dedicated
statements in PL/SQL programma’s
terd. Zo hoeft de collection die een
server mode is de UGA onderdeel
zouden achter een API verborgen
FORALL statement aanstuurt niet
van de PGA (Process Global Area),
moeten worden. Hoe minder versies
meer sequentieel doorlopen te wor-
maar in shared server mode is het
van ongeveer dezelfde SQL state-
den en hoeft de collection niet se-
onderdeel van de shared pool.
ments in de applicatie verspreid zit-
quentieel gevuld te zijn: middels de
ten, des te eenvoudiger je kunt pro-
INDICES OF en de VALUES OF clau-
Caching in de UGA heeft als nadeel
fiteren van optimalisatietechnieken
ses kunnen alleen specifieke collec-
dat het aanzienlijk geheugen kan ver-
in de database, zoals minimaliseren
tion entries gebruikt worden. Tevens
bruiken: iedere user krijgt zijn eigen
van (hard) parses en... de Function
kunnen individuele entries waar-
kopie van de data, wat bij te grote
Result Cache. Ik heb zelf Steven goed
voor het FORALL DML statement
caches leidt tot geringe schaalbaar-
leren kennen omdat ik zijn eerste
faalt, bewaard worden in een error
heid van de applicatie. Deze vorm
versie van een Table Encapsulator
collection, waarmee het falen van
van caching is geschikt voor kleine
generator met veel tevredenheid heb
enkele entries geen consequenties
statische datasets of bij een gering
gebruikt (PL/Generator). Inmiddels
heeft voor alle goed verlopen entries
aantal batchprocessen die data no-
is er een gratis versie van zo’n ge-
(SQL%BULK_EXCEPTIONS).
dig hebben die gedurende de duur
nerator beschikbaar bij Quest (Co-
van de batch statisch blijft.
deGen), die voortborduurt op PL/
Pipelined functions
Generator.
Een heel vreemde eend in de bijt
Oracle 11 biedt de Function Result
van stored modules is de PIPELINED
Cache, die in werking treedt zodra
Bulk Processing
table function. Maar het is er eentje
een stored Function wordt aange-
Het volgende onderwerp, Bulk Pro-
met geweldige eigenschappen. Het
maakt met de RESULT_CACHE clau-
cessing, heb ik in een eerdere OGh
aparte eraan is namelijk dat het een
se. Oracle zorgt er dan voor dat:
Visie al eens besproken (OGh Visie
function is die geen waarde retour-
De combinatie van input parameter
2003, nummer 2, te downloaden
neert via het RETURN statement en
values en de return value wordt ge-
van www.ogh.nl), toen Feuerstein
die tevens aan het aanroepende pro-
cached (in shared memory)
een presentatie gaf met de titel ‘The
ces resultaten teruggeeft terwijl de
21
Oracle en cloud computing
mogelijk naar het aanroepende
Tenslotte
staande slide uit Steven’s presentatie
proces teruggegeven moet worden
Naast genoemde performance in-
geeft een voorbeeld van zo’n stored
(een website die zo snel mogelijk
strumenten heeft Feuerstein tips ge-
function. De roodgekleurde woorden
de eerste records wil laten zien
geven over het gebruik van Profilers
zijn wat een table function tot een
kan hier een voorbeeld van zijn,
(zoals DBMS_PROFILER) en timing
PIPELINED table function maken.
maar ook een ETL proces waarbij
mogelijkheden om de efficiency van
functie nog niet afgerond is. Onder-
PL/SQL programma’s te meten. Alhoewel vrijwel alles in de presentatie bekende kost voor me was, pikte ik toch weer wat tips op die ik kan gebruiken en werd ik weer aangezet tot beter nadenken over mijn programma logica. Alleen al daarom is een avond luisteren naar Steven Feuerstein elke keer weer waardevol. Bezoek zeker eens de genoemde website van Steven Feuerstein (www. stevenfeuerstein.com). Hierop staat een schat aan informatie en voorbeeld code die je vrijelijk, maar op eigen risico, kunt gebruiken. En speel vanaf 8 april mee met de wereldwijde PL/SQL Challenge en neem het op Pipelined Table functions zijn te ge-
een consumer proces de records
tegen alle PL/SQL ontwikkelaars in
bruiken in situaties waarbij:
die terugkomen verwerkt)
de wereld!
• complexe transformaties gedaan
• gebruik wordt gemaakt van pa-
moeten worden die normaal
rallel
gesproken een reeks van SQL
functions
statements zouden betekenen
• de data, zodra deze beschikbaar is
RANGE
Tuning en PL/SQL hebben zijn groot-
strategieën.
(getransformeerd
is)
zo
snel
Table
Toine van Beckhoven (http://www.
parallel
jom-it.nl/) is zelfstandig en allround
uitgevoerd worden via HASH,
Oracle specialist. Oracle Performance
query:
pipelined kunnen
of
ANY
partition
ste interesse.
Ook u kunt lid worden van de OGh en ontvangt automatisch OGh Visie! Meld u aan via www.ogh.nl Niet-leden kunnen zich gratis abonneren op OGh Visie via www.ogh.nl
Banners website Golden sponsor Silver sponsor Bronze sponsor
Hoogte 120 x 120 pixels € 3.000,- per jaar € 150,- per kwartaal € 75,- per kwartaal
Uitgegeven door: Oracle Gebruikersclub Holland Postbus 701, 3700 AS Zeist, www.ogh.nl T 030-699 70 65 F 030-696 23 78 e.mail [email protected] Advertentietarieven OGh Visie (zie onze website www.ogh.nl ) Voorjaar 2010 verschijningsdatum 20 april 2010 Najaar 2010 verschijningsdatum 20 september 2010 Winter 2010 verschijningsdatum 20 december 2010
22 OGH VOORJAAR Flyer.indd 1
16-04-2010 11:57:55
Column
Column
OGh Visie verwelkomt Frits Hoogland als columnist. Frits werkt als principal consultant bij VX Company, is actief blogger en presenteerde onder andere op Oracle Open World, UKOUG, SIOUG, DBA Symposium. Frits is in augustus 2009 tot Oracle ACE benoemd en maakt sinds begin dit jaar deel uit van de redactie van OGh Visie.
DBA 2.5
De recente goedkeuring van de EU
Daarnaast doet de Oracle database
zich actief met de wait interface heb-
voor de Sun acquisitie door Oracle
software ook ‘uitvallen’ naar andere
ben bezig gehouden, zeer waarschijn-
zorgt voor een explosieve uitbrei-
vakgebieden: ASM neemt een gedeel-
lijk al een ‘DBA 2.0’ zijn.
ding van het toch al niet geringe
te van de storage taken (die meestal
productportfolio van Oracle. In
door een sysadmin uitgevoerd wor-
DBA 2.5
het oog springend is daarbij met
den) over en in versie 11gR2 wordt
Met alle nieuwe producten die er met
name de uitbreiding in de richting
met een SCAN listener ook een stukje
de Sun acquisitie bij zijn gekomen – en
van hardware. Wat betekent dit
netwerkadministratie naar de DBA-
dan met name het Solaris besturings-
voor de Oracle DBA?
taken toegetrokken.
systeem en alle gerelateerde producten, worden de lagen in de stack die
Vroeger
In het ‘Performing an Oracle DBA
mogelijk beheerd moet worden door
Vroeger was alles beter. Of niet? Een
1.0 to DBA 2.0 Upgrade’ artikel van
een DBA nog omvangrijker. Nadat
Oracle DBA beheerde toen de data-
Harald van Breederode en Joel Good-
heel geleidelijk networking, storage
base. Dat betekende onder andere:
man wordt uiteengezet waarom een
en operating system tot het vakge-
• database objecten beheren: een
Oracle DBA tegenwoordig verder dan
bied van een DBA zijn gaan behoren,
2K blocksize betekende toen een
de database dient te kijken, namelijk
gaat daar dan nu ook hardware bij
maximum
ook naar besturingssysteem, storage
komen?
en netwerk.
Een duidelijk voorbeeld hiervan is de
van
121
extents;
dreigde dit maximum bereikt te
worden, moest het object worden
geëxporteerd, en opnieuw inge-
Wait Interface
is de hardware het exclusieve terrein
lezen met ‘compress=Y’.
Voor mij kwam de eerste aanzet tot
van Oracle. Ik bespeur hier ook hoe
• ruimte beheren: want ruimte in
‘DBA 2.0’ bij de kennismaking met
snel technieken uitgewisseld worden:
de database moest gealloceerd
de Oracle wait interface. De wait in-
Sun’s Flashfire techniek is een onder-
worden voordat deze op was,
terface laat de tijd zien die in verschil-
deel van Oracle’s databasemachine
Sun Oracle Database Machine. Hier
autoextend bestond nog niet.
lende onderdelen van de Oracle ser-
versie 2.
• queries tunen: de rule based op-
ver code is gespendeerd. Dit betekent
Dit brengt echter het risico met zich
timizer evalueerde de tabellen
dat de effectiviteit van de parsing en
mee dat door het grote aantal vakge-
van achter naar voor in de from
executie van een statement kan wor-
bieden die tot het DBA-domein zijn
clause, en een index werd ge-
den beoordeeld. Deze beoordeling is
gaan behoren, het aantal mensen die
bruikt als gebruik mogelijk was;
alleen mogelijk als je enige kennis
zich dit alles eigen kunnen maken
de rule based optimizer.
hebt opgedaan over de (innerlijke)
steeds kleiner zal worden. Hoeveel
werking van parsing en executie van
Oracle DBA’s zijn al daadwerkelijk
Nu
SQL door de Oracle server. De effec-
‘2.0’, laat staan ‘2.5’?
Tegenwoordig is het werk van een
tiviteit van de innerlijke werking van
Oracle DBA niet meer gelimiteerd
de database wordt weer bepaald door
tot de database. Veel DBA’s hebben te
hoe het besturingssysteem de werking
maken met het ‘the box says so’ prin-
van de database uitvoert.
DBA 2.0: Harald van Breederode en Joel
cipe, wat betekent dat de DBA soms
Om zinnige dingen te doen op basis
Goodman:
ook de applicatieserver moet beheren,
van het wait-profiel moet je dus een
certification/docs/Oracle%20DBA%20
want het is immers ook een Oracle
idee hebben over de (interne) werking
2.0.pdf
product (staat op de doos), of Linux
van de database, maar ook over hoe
Sun Oracle Database Machine: http://
beheren, want er wordt gebruik ge-
het besturingssysteem deze werking
www.oracle.com/database/docs/sun-
maakt van Oracle Enterprise Linux.
faciliteert. Dit betekent dat DBA’s die
oracle-database-machine-faq.pdf
Frits Hoogland
http://blogs.oracle.com/
23
Ontwikkelingen spatial informatie
Oracle Product Manager Xavier Lopez over ontwikkelingen rond spatial informatie
Voorbij ruimtelijke grenzen Door Remco Takken De laatste jaren heeft Oracle veel
Zonder dat dure GIS-licenties nodig
energie gestoken in het integreren
zijn, is het nu mogelijk om locatiedata
van kaartmateriaal in businessap-
te raadplegen, en zelfs te analyseren,
plicaties. Maar er is veel meer aan
alles direct uit Oracle.
de hand op het gebied van ‘spatial’
Lopez vindt niet dat Oracle daarom
informatie. Oracle Product Mana-
de richting inslaat van de GIS-leve-
ger Xavier Lopez noemt 3D GIS en
ranciers: “Toen onze ontwikkelaars
andere mogelijkheden, net buiten
de mapping-tool gingen ontwerpen,
het ‘hardcore’ geo-informatiedo-
was dat een puur zakelijke beslissing.
mein, zoals Building Information
Oracle’s MapViewer is bedoeld om
Modeling (BIM).
internetkaartjes direct in mainstream businessapplicaties te kunnen plaat-
Xavier Lopez omschrijft het als de
sen. Het is niet gericht op competitie
‘geospatial data explosion’. Oracle’s
met onze partners in de geo-sector.
Product Manager Ruimtelijke en Se-
Door de MapViewer-tool als gratis
mantische Technologieën, ziet hoe
middleware-product in de markt te
satellietgegevens, data uit mobiele in-
zetten, komen we ontwikkelaars tege-
Xavier Lopez is Product Manager
winning, terreinmodellen (al dan niet
moet die, zonder een ingewikkeld GIS,
Ruimtelijke en Semantische
in 3-D), doorlopend blijven uitdijen.
hun business-software van locatie-in-
Technologieën bij Oracle.
“Je moet daarbij ook bedenken dat op
formatie kunnen voorzien.”
alle overheidsniveaus groeiende geo-
24
last van een grote onderhoudsopera-
datasets worden bijgehouden. En dan
Locatie-informatie
tie? Hoe groot is de uitval per regio?
is er natuurlijk ook nog wat sommigen
Oracle’s recente focus op business
En hoe lang duurde het voordat een
de ‘op vrijwillige basis’ ingewonnen
intelligence werd mede veroorzaakt
storing werd opgelost? Hoeveel verlies
geo-informatie noemen: het vrijelijk
door verschillende overnames in de
is daardoor geleden in een maand? In
en massaal geo-taggen op internet.
laatste jaren. “Toen we dankzij de
een jaar? In al deze voorbeelden speelt
Open Street Map is een indrukwek-
overname van Siebel en Hyperion de
de locatie een hoofdrol. Het zal steeds
kend voorbeeld van deze stroming.
BI-mogelijkheden binnen handbereik
belangrijker worden in analyses, filters
Maar waar het écht interessant wordt,
hadden, waren we natuurlijk al lang
en bij besluitvormingsprocessen.”
is hoe het allemaal bij elkaar komt.”
bezig met ‘geospatial’. En nu zijn we op het punt aanbeland waar Oracle
Standaardisatie
Kaarten en businessapplicaties
een infrastructuur kan aanbieden
Het is alweer vijftien jaar geleden
waarin het gemakkelijker is om loca-
sinds Oracle de ‘Spatial’-optie intro-
In de afgelopen paar jaar is Oracle
tie-informatie te koppelen aan busi-
duceerde in haar databaseportfolio.
druk bezig met het integreren van
ness intelligence.”
Sindsdien zijn de standaarden die het
kaartmateriaal in hun businessap-
Met betrekking tot het praktische ge-
benaderen van ruimtelijke data moe-
plicaties. Binnen Oracle Fusion Mid-
bruik van deze integratie, zegt Lopez:
ten vergemakkelijken in belang toege-
dleware wordt de kaart-rendering tool
“Onze klanten merken dat ruimtelijke
nomen.
MapViewer ingezet, die de benodigde
analyses binnen BI-processen duide-
Het Open Geospatial Consortium
data rechtstreeks uit Oracle Spa-
lijk winst opleveren. Goede voorbeel-
(OGC) is grotendeels verantwoorde-
tial betrekt om kaarten te genereren.
den van heldere ‘dashboards’ vind je
lijk voor het standaardiseringproces.
MapViewer kan worden gezien als
bij nutsbedrijven en andere grote or-
OGC Specificaties als Simple Fea-
een geo-ICT tool voor ontwikkelaars.
ganisaties: hoeveel klanten hadden er
tures, Web Map Server, Web Features
Ontwikkelingen spatial informatie
Server, en Web Coverage Server wor-
overgezet van papier naar het digitale
Oracle Spatial als BIM Server
den inmiddels ondersteund door alle
domein.”
Een spannende manier om 3D-geo-
belangrijke GIS-leveranciers.
data te kunnen inzetten, ligt volgens
Het is echter lange tijd gebruikelijk
In de laatste twee releases van Oracle
Xavier Lopez in de mogelijkheid om
geweest dat GIS-gebruikers hun data
Spatial (11g1 en 11g2) kun je 3D data
Oracle Spatial te laten draaien als BIM
constant moesten converteren van en
ruwweg in drie categorieën weergeven.
Server, om het opkomende gebruik
naar verschillende (gesloten) data-
Ten eerste is er het 3D-vectormodel,
van Building Information Modelling
formaten. Dit verandert nu het Web
dat wordt gebruikt voor stadsmodel-
(BIM) te faciliteren.
opkomt als ‘computing platform’.
lering. Een voorbeeld hiervan zijn de
Lopez: “CAD biedt een rijke functio-
Hoewel Oracle een van de eerste data-
met foto’s beklede blokkendozen die
naliteit op het gebied van 3D-objec-
baseleveranciers was met een ‘ruimte-
zijn gebouwd volgens het OGC-ge-
ten: de productie, visualisatie en bij-
lijke optie’, biedt tegenwoordig haast
standaardiseerde CityGML. In Ora-
behorende workflows. Een ruimtelijke
elke commerciële en open source da-
cle-taal: sdo_geometry (3d).
database zoals Oracle Spatial kan de
tabaseleverancier ondersteuning aan
3D CAD-tools verbeteren met trans-
geodata. Deze ontwikkeling geeft aan
Een tweede vorm van 3D is het trian-
actionele ondersteuning, versiema-
dat ruimtelijke data meer en meer
gulaire terreinmodel, dat veelal wordt
nagement, beveiliging, attribuuttoe-
wordt geaccepteerd door de main-
ingezet voor oppervlaktemodellering,
kenning en analyse. Uiteindelijk zal
stream.
het zogenaamde sdo_tin. Een re-
de combinatie van BIM en de ruimte-
cente toevoeging betreft de mogelijk-
lijke database het eenvoudiger maken
3D werelden weergeven
heid om in Oracle’s 3D-wereld ook
om 3D CAD-modellen te delen als
En dan is er nog 3D, ondersteund
lidar-sensordata direct op te slaan
webservices. Natuurlijk is dit een eer-
door Oracle sinds versie 11g. Een van
in de database. Het datatype sdo_pc
ste stap op weg naar iets anders: een
de belangrijkste redenen dat 3D GIS
(point cloud) dat Oracle inzet, refe-
IT-infrastructuur voor het creëren,
zo langzaam van de grond komt, is het
reert direct aan de miljoenen puntjes
beheren en visualiseren van virtuele
gebrek aan relevante datasets. Lopez
die worden geassocieerd met lidar en
werelden ligt in het verschiet.”
ziet echter dat de ontwikkelingen op
laserscandata. De mogelijkheden van
3D-gebied in een stroomversnelling
2D-datamanagement in Oracle Spa-
Remco Takken rtakken@gismagazine.
zijn geraakt: “Met de huidige toena-
tial zijn uitgebreid met een nieuw 3D
nl is hoofdredacteur van GIS-Magazine
me van lidar-sensoren en verbeterde
spatial-referentiesysteem om met deze
www.gismagazine.nl. Daarnaast levert
orthofoto’s, gaan de ontwikkelingen
specifieke datatypes en daaraan gerela-
hij bijdragen aan het tijdschrift GeoIn-
sneller dan toen 2D-kaarten werden
teerde attributen te kunnen omgaan.
formatics www.geoinformatics.com.
Oracle Spatial dag in november In de tweede helft van november van dit jaar wordt weer een OGh Spatial dag georganiseerd. De Spatial dag is een vervolg op de zeer succesvolle Spatial dagen van 19 en 26 november vorig jaar. Doelstelling van de Spatial dag 2010 is alle geïnteresseerden te informeren en te laten ervaren wat de ontwikkelingen, toepassingen en toekomstverwachtingen zijn van Oracle Spatial.
Denk mee over de invulling Op dit moment wordt er door de SIM Commissie hard gewerkt aan de invulling van het programma. Ook u kunt hieraan bijdragen. Zowel ideeën voor onderwerpen, concrete projecten of presentaties kunnen via m.uitentuis@ogh. nl tot 15 mei doorgegeven worden. We zullen zo veel als mogelijk gebruik maken van uw ideeën en wensen. In de komende uitgave OGh Visie en uiteraard via de website van de OGh (www.ogh.nl) zullen we u op de hoogte houden aangaande de definitieve datum, locatie en programma van het event. We verwachten van de Spatial Dag 2010 een nog groter succes te kunnen maken. Milan Uitentuis, Voorzitter OGh SIM Commissie
25
Oracle Locator and Oracle Spatial 11g Best Practices
Oracle Locator and Oracle Spatial 11g Best Practices Door Han Wammes, Business Development Manager Oracle Spatial bij Oracle Nederland Introduction
implement and support the latest
Oracle feature. The same core Ora-
This technical white paper describes
open standards in the spatial and
cle utilities (impdp, expdp, import,
best practices for Oracle Locator and
location services areas, as put for-
export, sqlldr) used for non-spatial
Oracle Spatial with SDO_GEOME-
ward by the Open Geospatial Con-
data, are also used with spatial data.
TRY, the Oracle Database native data
sortium (OGC) and ISO SQL/MM
Oracle enables mainstreaming spati-
type for storing vector data. Oracle
standard.
al data in your organization and ca-
Spatial extends the core location fea-
pitalizing on existing Oracle know-
tures included in every Oracle data-
Oracle Locator and Oracle Spa-
base with Oracle Locator. Therefore,
tial are native features of Oracle
this document refers to Oracle Lo-
Database providing security, high
cator when describing best practices
availability, disaster tolerance, ma-
that apply to both Oracle Locator
nageability and performance for all
and Oracle Spatial. It refers to Oracle
your data, including your spatial
Oracle patch sets
Spatial when practices are specific to
data. Only users of the Oracle na-
If possible, upgrade to the latest
Oracle Spatial. This paper highlights
tive spatial data type can take full
Oracle Database patch set. This will
some best practices and tips to help
advantage of all of these features:
ensure you are running the Oracle
design and develop applications that
partitioning, local partitioned spa-
Database version with the latest spa-
use Oracle spatial technology. Many
tial indexes, partition exchange in-
tial features and performance opti-
of the recommendations in this pa-
cluding spatial indexes, transporta-
mizations.
per are not specific to Oracle Loca-
ble table space support for spatial
tor, allowing customers to capitalize
data and spatial indexes, replication,
Data modeling
on existing Oracle knowledge within
workspace manager (versioning, and
Traditional
their enterprise.
valid time), parallel index builds and
concepts apply when dealing with
queries, and spatially-driven multi-
spatial data. Oracle Database sup-
level security.
ports many traditional data types,
Oracle Locator support by GIS and location tools and applicati-
ledge in your enterprise.
General best practices
RDBMS
data
model
including VARCHAR2 for characters,
ons, and for standards: All major
Oracle DBAs and developers ca-
DATE type for dates, NUMBER type
GIS and location services technology
pitalize on their existing Oracle
for numbers, and the SDO_GEOME-
vendors, and mapping and imagery
knowledge since Oracle spatial
TRY data type for storing the coordi-
data providers directly integrate with
technologies are integrated with core
nates of spatial features. Oracle Da-
Oracle Locator. They support the na-
Oracle Database utilities and features
tabase does not have spatial tables,
tive Oracle SDO_GEOMETRY data
listed in this and the previous para-
just ordinary Oracle Database tables
type without compromising features
graph. If you know Oracle Database,
with one or more SDO_GEOMETRY
or performance. Oracle also consis-
and never heard of Oracle Locator,
columns. When you create norma-
tently works to help shape, drive,
you already know over 80% of this
lized tables, Oracle recommends in-
Dit is het eerste deel van een serie over Oracle Locator en Oracle Spatial Best Practices. Omdat we op termijn deze serie wellicht beschikbaar willen maken voor een internationale doelgroep, is de tekst in het Engels gesteld. 26
Oracle Locator and Oracle Spatial 11g Best Practices
cluding SDO_GEOMETRY columns
-nerally the same value for all
custom coordinate system.
in tables where all the other columns
axes
Beginning with Oracle Database 10g
in the table have a one-to-one rela-
• Spatial reference identifier (SRID)
tionship with the SDO_GEOMETRY
release 2, custom coordinate systems must be entered via the EPSG data
column. Consider the following
The lower and upper bound of each
model defined in Oracle Database.
example of modeling road and river
axis is not the minimum bounding
Every custom EPSG entry will auto-
spatial features. Road information
rectangle (MBR) of the data in the
matically generate an entry into the
might include number of lanes, a
SDO_GEOMETRY column. The axes
MDSYS.CS_SRS table. The process to
street address range, and more. River
bounds should be values that contain
add a custom coordinate system is
information might include salinity,
all current and future geometries.
described in the Oracle Spatial Users
maximum depth, and more. Even
The first axis defined must always
Guide and Reference. In the MDSYS.
though they are both linear features,
be x, and the second axis y. Optio-
CS_SRS dictionary, a numeric pri-
since the information for roads is
nal z and measure axes can also be
mary key called SRID identifies each
not relevant to rivers, and river in-
defined. When dealing with geode-
supported coordinate system. The
formation is not relevant to roads,
tic data (data that is longitude/lati-
dictionary table also contains the
it is not recommended to store their
tude), the first axis must be defined
definition of each coordinate system
coordinates in the same SDO_GEO-
with a (-180, 180) range, and the
in the well known text (WKT) gram-
METRY column of a table. A nor-
second axis as (-90, 90). Tolerance
mar defined by the Open GIS Con-
malized data model would store the
is generally the same for both the x-
sortium (OGC). Associating spatial
road spatial features in a Roads ta-
axes and y-axes. Tolerance is the dis-
data with a coordinate system is as
ble, along with other columns that
tance two coordinates must be apart
simple as associating the spatial data
have a one to one relationship with
to be considered unique. Oracle’s
with an SRID value. Associating spa-
the coordinates of a road. A similar
geometry validation routines, spatial
tial data with an SRID is recommen-
normalized data model is recom-
operators, and spatial functions all
ded, especially if your data is geo-
mended for a Rivers table. An addi-
use tolerance. It is very important
graphic, that is, related to the Earth.
tional benefit of storing roads apart
to define a tolerance that reflects the
Geographic data can be divided into
from rivers becomes more apparent
true resolution at which your data
two categories, geodetic (longitude/
at query time. When you are only
was collected.
latitude data), and projected (non-
searching for roads, there is no need
When storing data that is not lon-
longitude/latitude
to sift through a table that contains
gitude/latitude, the tolerance unit is
considers geodesic distances between
entries for both roads and rivers.
the same as the coordinate system
consecutive coordinates of geome-
unit associated with the spatial data.
tries defined with a geodetic SRID.
data).
Oracle
Metadata, tolerance and coordi-
When
nate systems
data, the tolerance unit is meters.
Transportable table space with
storing
longitude/latitude
column
All coordinate systems supported by
spatial data and spatial indexes
in a table requires an entry in the
Oracle Locator are defined in a dic-
If moving large amounts of spatial
Oracle Locator metadata dictionary,
tionary table called MDSYS.CS_SRS.
data and spatial indexes from one
USER_SDO_GEOM_METADATA.
In addition, a data model for repre-
database instance to another, you
The metadata entry includes the fol-
senting coordinate systems in the
may want to consider transportable
lowing information:
European Petroleum Survey Group
table spaces. Beginning with Oracle
• Name of the table that contains
(EPSG) standard was introduced in
Database 10g, transportable table
the column of type SDO_GEO-
Oracle 10g Release 2. Every EPSG de-
spaces support transporting spatial
METRY
fined coordinate system has a corres-
indexes, as long as the source and
• Name of the column defined with
ponding entry in MDSYS.CS_SRS.
target platforms are the same Endian
Oracle Locator comes pre-configured
format. Transporting just the spatial
• Number of axes (dimensions)
with over 1000 coordinate systems
data (not the spatial index) does not
for
defined. The pre-configured coordi-
require the source and target plat-
column
Every
SDO_GEOMETRY
the SDO_GEOMETRY data type the
SDO_GEOMETRY
nate systems satisfy the requirement
forms to have the same Endian for-
• Lower and upper bounds for each
of many users. If none of the pre-
mat. If you plan to transport table
configured coordinate systems meet
spaces, you may want to reconsider
your needs, you can add your own
how data and indexes are mapped
axis
• Tolerance value for each axis, ge
27
Oracle Locator and Oracle Spatial 11g Best Practices
to table spaces to help optimize your
attributes, and loads (or appends)
Making tolerance finer may fix the
transport strategy.
the records into an Oracle table.
error. Points may truly be repeated. Remo-
Data loading
Point data in the SDO_POINT at-
ve duplicate vertices.
Bulk loads can be accomplished with
tribute of the SDO_GEOMETRY
ORA 13349 – Polygon boundary
traditional Oracle Database utilities,
object
crosses itself. Tolerance may be set
such as sqlldr, imp, or impdp. Bulk
When possible, store point data in
too coarsely. Making the tolerance
unloading can be accomplished with
the SDO_POINT attribute of the
finer may fix the error. Polygon truly
utilities like Oracle Database export
SDO_GEOMETRY object instead of
self intersects. Fix the polygon by en-
utilities, exp or expdp. These utilities
the SDO_ORDINATES attribute.
suring that no edges intersect.
require no spatial specific syntax.
ORA 13367 – Wrong rotation for
As recommended with non-spatial
Geometry validation
interior/exterior rings. Correct the
data, if you are performing a large
Spatial data must be valid to ensure
rotation of the polygon ring. Outer
bulk load or unload, it is recom-
correct results when you perform
rings should be counterclockwise,
mended to drop indexes (including
spatial analysis. If an SDO_GEO-
inner rings clockwise. The additional
spatial indexes if they exist), per-
METRY column is spatially indexed,
context information reported by the
form the bulk transaction, and re-
Oracle will perform some validity
validation routines can be supplied
create indexes after the transaction
checks when spatial data is inserted
to the following routines to help fix
completes. If indexes are not drop-
into the column. But complete vali-
invalid geometries:
ped prior to a bulk load or unload,
dation only occurs by running either
• SDO_UTIL.REMOVE_DUPLICA-
they are maintained as the transac-
the SDO_GEOM.VALIDATE_GEO-
tion occurs. SQL*Loader can load
METRY_WITH_CONTEXT or SDO_
• SDO_UTIL.EXTRACT
spatial data, but it does not under-
GEOM.VALIDATE_LAYER_WITH_
stand Geographic Information Sys-
CONTEXT procedure.
The SDO_UTIL package contains
tem (GIS) vendor exchange formats,
If data is guaranteed to be valid prior
other helpful utilities for inspecting
such as ESRI shape files, MapInfo
to data load, validation is not neces-
geometries, for example:
Tab files, Autodesk DWG files, or
sary. Otherwise, validation is highly
• SDO_UTIL.GETNUMELEM
Microstation DGN files. Each ma-
recommended. Invalid geometries
Returns the number of elements
jor GIS vendor has their own tool to
should either be corrected or deleted.
in a geometry
import their exchange formats into
SDO_GEOM.VALIDATE_GEOME-
• SDO_UTIL.GETNUMVERTICES
Oracle’s SDO_GEOMETRY format.
TRY_WITH_CONTEXT and SDO_
– Returns the number of vertices
There are also universal translation
GEOM.VALIDATE_LAYER_WITH_
in a geometry
products, such as
CONTEXT validate geometries in
• SDO_UTIL.GETNUMRINGS –
Feature Manipulation Engine (FME)
accordance with rules defined by the
Returns the number of rings in a
by Safe Software that can load nu-
Open GIS Consortium (OGC) via
geometry.
merous vendor formats into the
the Simple Feature Specification for
See the documentation for additio-
SDO_GEOMETRY data type. FME
SQL. When invalid geometries are
nal utilities.
can also extract data stored in Ora-
reported (for example, a self-inter-
cle’s SDO_GEOMETRY data type
secting polygon), additional context
and translate it to any of FME’s sup-
information, such as which edges
ported GIS vendor formats.
intersected, is also reported. The ad-
Since ESRI shape files are a very com-
ditional context information is very
mon exchange format, Oracle posts
useful in correcting invalid geome-
a free Java utility on the Oracle Tech-
tries. Some of the most common va-
nology Network for loading shape
lidation errors reported include:
files. You can download this utility
28
from the following URL: http://otn.
Error Reported Possible Causes
oracle.com/products/spatial.
and Corrective Actions
The
utility is an excellent tool that has
ORA 13356 – Adjacent repeated
been tested extensively. It reads sha-
points in a geometry are redundant.
pe file geometries along with their
Tolerance may be set too coarsely.
TE_VERTICIES
–
Het tweede deel van het artikel Oracle Locator en Oracle Spatial Best Practices wordt gepubliceerd in het volgende nummer van OGh Visie, editie Najaar 2010.
SQL Developer
Ervaringen met SQL Developer Door Frits Hoogland Oracle heeft al weer enige tijd
derzoeksobject. Deze bleek echter
dex.html), voor Windows, Linux en
geleden een product gelanceerd
niet geschikt voor mij.
Mac OS X. Daarnaast wordt het pro-
voor ontwikkelaars en DBA’s.
duct meegeleverd met de database
Aanvankelijk heette dat product
TOAD
vanaf versie 11gR2 (11.2.0.1). Java
‘Raptor’, wat mij lekker uit-
De volgende logische keuze was
heeft natuurlijk wel het voordeel van
dagend en agressief in de oren
TOAD. Natuurlijk was ik TOAD al
platformonafhankelijkheid! De ver-
klonk, maar later kreeg het de
meerdere malen tegengekomen (bij
sie die ik gebruik is 2.1.0.63 op Mac
veel tammere naam ‘SQL Develo-
voornamelijk ontwikkelaars), maar
OS X (10.6)
per’. Wat doet nu SQL Developer,
ik heb daar een natuurlijke aversie
De schermindeling na het opstarten
wat zijn de mogelijkheden en wat
tegen, voornamelijk door (waar-
is rustig en overzichtelijk. Een knop-
kan het niet. Is er reden om SQL
schijnlijk) historische zaken, zoals
penbalk boven, rechts een ‘naviga-
Developer te (gaan) gebruiken?
het volledig scannen van een table
tor’ window met daarin connecties
die een gebruiker/ontwikkelaar aan-
en rapporten, en rechts het resulta-
SQL*DBA
klikt, en het vasthouden van parallel
tenscherm, waarin onder andere een
In eerste instantie heb ik mij niet
query slaves na een parallelle exe-
SQL worksheet (vergelijkbaar met
de moeite getroost naar SQL Deve-
cutie. TOAD heeft een chaotische
SQL*Plus functionaliteit) kan wor-
loper te kijken. Oracle lanceert wel
schermindeling.
den vertoont, maar ook objecteigen-
meer producten, en niet altijd even
TOAD alleen op Windows en is het
succesvol. Met dit product kreeg
een (duur) betaald product. Vol-
ik heel even een flashback naar
doende reden voor mij om het niet
Het aanmaken van een connectie is
‘SQL*DBA’ van Oracle versie 7 (dat
geschikt te achten.
eenvoudig (rechtsklik, nieuwe con-
Daarnaast
werkt
voor mij toen niet echt handig was
schappen.
nectie). Ook het activeren van een
om mee te werken, en volgens mij
SQL Developer
connectie is precies hoe ik het ver-
voor niemand), vanwege de SQL en
Dan is de beurt aan SQL Developer.
wacht: rechtsklik, connect. Na het
resultaatvelden. Daarnaast is het een
Een Java-applicatie, (gratis) te down-
aanloggen worden alle mogelijk ob-
Java product, wat niet altijd een flit-
loaden op de homepage (http://
jecttypen vertoont. Dit is het eerste
sende user-experience geeft. Ik heb
www.oracle.com/technology/pro-
punt waarop je moet weten hoe het
SQL*Plus en ik heb mijn scripts: wie
ducts/database/sql_developer/in-
SQL Developer ontwikkelteam het
maakt mij wat? Een recente opdracht zorgde er voor dat ik wat meer naar databaseobjecten en de data zelf moest kijken, in plaats van naar de technische werking van de database. Het browsen in de database gaat natuurlijk prima met SQL*Plus, maar om meer en sneller overzicht te hebben van verschillende schema’s en objecten en data in deze schema’s is een visuele tool toch erg handig. Dit zorgde voor dat ik op onderzoek uit ging naar een dergelijke tool. Omdat ook de databaseconsole (de webgebaseerde beheerinterface) was geïnstalleerd, was dit het eerste on-
Figuur 1. SQL Developer scherm na aanloggen.
29
SQL Developer
bedacht heeft: hier staan alle objecten van de user waarmee je aanlogt. Als je niet als de applicatie-user aanlogt, heb je dus niets aan de hele rij. De onderste in de rij is ‘Other Users’, waaronder alle andere users/schema’s staan. Afhankelijk van de rechten van de aangelogde user worden objecten in de betreffende schema’s getoond. Het uitvoeren van SQL werkt op dezelfde wijze als TOAD: invoeren query, uitvoeren met CTRL-Enter. Het SQL worksheet wordt dan in tweeën gedeeld, en een Query result paneel laat het resultaat zien:
Figuur 3. SQL Developer scherm met object eigenschappen.
Objectdetails
makkelijk is te zien is hoe de indexen
1.Zet de generatie SQL in een leeg
Als op een van de objecten (bijvoor-
gerelateerd zijn aan de constraints.
SQL worksheet
beeld een tabel) wordt geklikt, dan
De SQL tab (die de SQL laat zien die
bijvoorbeeld
wordt een extra tabblad geopend en
nodig is om het geselecteerde object
count(*) from ‘||table_name||’;’
wordt daarin een groot aantal de-
te creëren) voorziet nog het beste in
from user_tables;
tails zichtbaar, waardoor het object
deze behoefte.
2.Klik op ‘run script’
eenvoudig te onderzoeken is. In het
‘SELECT
‘select
3.Nu kan in het ‘script output’ pa-
oog springend is natuurlijk de ‘data’
SQL generatie.
neel op dezelfde button gedrukt wor-
tab, waarmee naar de inhoud van
Veel DBA’s gebruiken SQL om SQL
den, de inhoud van het paneel komt
de tabel gekeken kan worden. Het
te genereren, om op die manier han-
in een eigen SQL worksheet en kan
is erg makkelijk de ‘filter’ te gebrui-
delingen te kunnen uitvoeren op
bewerkt en uitgevoerd worden.
ken, hier kunnen filters opgegeven
meerdere databaseobjecten (bijvoor-
worden op dezelfde manier als in de
beeld het genereren van een ‘drop’
Data import.
‘where’ clausule van een SQL state-
script voor tabellen), SQL Developer
Het kan voorkomen dat data ingela-
ment.
ondersteunt dit door output weer te
den moet worden. Veelal wordt data
Punt van kritiek is dat het niet erg
kunnen gebruiken als script:
aangeboden in een ‘CSV’ variant (ASCII tekst met een vooraf bekende veld-scheidingsteken, veelal een komma) of in Excel. Met SQL Developer is het mogelijk beide typen data in te laden. Dit is erg comfortabel. Het alternatief een SQL Loader definitie maken en daarmee (middels SQL*Loader zelf of een external table) de data inlezen. Puntje van kritiek is dat met een CSV import SQL Developer keurig de breedte van de eerste 1000 rows meet, en daar de breedte op aanpast voor de import. Het is natuurlijk
30
goed mogelijk dat na deze 1000 rows Figuur 2. SQL Developer scherm na executie van een statement.
er verder in de data nog bredere ko-
SQL Developer
lommen voorkomen. Er is geen optie
‘Format’ in het menu dat getoond
om alle data door te lezen en een ko-
wordt door middel van rechts-klik in
lombreedte te meten waar alle data
SQL Worksheet paneel.
in past.
standaard meegeleverd. Buiten dit (eenvoudige) gebruik biedt SQL Developer uiteraard on-
Conclusie
dersteuning voor het ontwikkelen in
Formattering
SQL Developer werkt prima en voelt
PL/SQL, het gebruik van subversion
Bij het maken of intypen van een
als een solide product. Het biedt
(versiebeheer) en daarnaast ook on-
SQL, of als de SQL uit een stuk
de ‘agility’ van het gebruik van
dersteuning en automatisering van
(PL/SQL) code of uit de SQL Area
SQL*Plus (SQL Developer is in mijn
migratie van Microsoft Access, Mi-
(V$SQL) wordt gehaald, is vaak de
optiek hier dus een prima substituut
crosoft SQL Server, Mysql, Sybase,
opmaak niet ideaal waardoor het le-
voor), maar biedt daarnaast allerlei
Terradata en IBM DB2 UDB naar
zen en het begrijpen van de SQL las-
extra mogelijkheden zoals het een-
Oracle, en de data modeller.
tig is. SQL Developer kan SQL for-
voudig kunnen inspecteren van ob-
matteren waardoor het goed leesbaar
jecten zoals tabellen, en de inhoud
Frits Hoogland is Principal Consultant
wordt. SQL formatteren kan gekozen
daarvan. Daarnaast wordt SQL De-
bij VX Company en redactielid van
worden door middel van de optie
veloper vanaf de database versie 11.2
OGh Visie.
Advertentie
Vitalizing your organisation with knowledge
PeopleSoft-experts Oracle-experts
www.sennac.com
T 00 31 (0)10 477 76 95
31
CONSPECT
ICT diensten
Wie zoekt kent Conspect niet, wie Conspect kent zoekt niet... Wij zijn gespecialiseerd in: