Innehållsförteckning:
Video: The Thinning 2024
PL / SQL är språket som ska användas vid skrivning av kod som finns i databasen. I följande artikel kommer du att se olika situationer där du hittar PL / SQL användbart.
Använda databasutlösare
A trigger är en händelse inom DBMS som kan leda till att vissa kod körs automatiskt. Det finns fyra typer av databasutlösare:
- Tabellnivåutlösare kan initiera aktivitet före eller efter en INSERT, UPDATE eller DELETE-händelse. Dessa används oftast för att spåra historikinformation och databasförändringar, för att hålla överflödiga data synkroniserade eller för att förbättra säkerheten genom att förhindra att vissa operationer uppstår.
- Visningsnivåutlösare är mycket användbara. En vy är ett lagrat SQL-formulär som utvecklare kan fråga som om det var en databas tabell själv. Genom att placera INSTEAD OF triggers i en vy kan INSERT, MODIFY och DELETE kommandona appliceras på vyn oberoende av dess komplexitet, eftersom INSTEAD OF triggeren definierar vad som kan göras för vyn.
- Databasnivåutlösare kan aktiveras vid uppstart och avstängning. När databasen startar kan du till exempel testa tillgången på andra databaser eller webbtjänster. Innan du stänger av databasen kanske du vill anmäla andra databaser och webbtjänster om att databasen går offline.
- Sessionsnivåutlösare kan användas för att lagra specifik information. När en användare till exempel loggar på eller av, kanske du vill utföra kod som innehåller användarens inställningar och laddar dem i minnet för snabb åtkomst. När sessionen stängs kan en utlösare spara inställningarna för framtida användning.
Skripting med hastighet
När du skriver kod kan du skriva in en del av kod och utföra den utan att först spara den i databasen. Oracle tillhandahåller denna kapacitet, som stöds av alla PL / SQL IDE.
Håll koden serverns sida
Majoriteten av PL / SQL-koden lagras som programenheter i servern. En typisk applikation har många kodord.
Vissa programmerare, särskilt webbaserade utvecklare som arbetar i J2EE eller. NET-miljöer, försök att skriva större delen av sin kod på applikationsservern i Java (för J2EE-utvecklare) eller VB. NET (för. NET-utvecklare). Det här är inte bra. I en databasapplikation ägnas mycket av logiken till att hämta och uppdatera information. Om koden för att uppnå denna uppgift finns i en applikationsserver måste den skicka en begäran till databasen över ett nätverk. Då måste databasen bearbeta begäran och skicka informationen tillbaka över nätverket för att ansökan ska behandlas.Eftersom nätverk och datorer nu är väldigt snabba kanske du tror att det här bara tar några fraktioner av en sekund. Även om det här är fallet för en enda begäran, om en mycket komplex applikation kräver miljoner eller till och med hundratals miljoner interaktioner med databasen kan multiplicering av antalet interaktioner med ensfraktioner av en sekund leda till mycket dålig prestanda.
Även relativt enkla operationer som kräver endast några databasförfrågningar kan vara problematiska om ansökan nås av hundratals, tusentals eller tiotusentals användare samtidigt. Det är mycket svårare att bygga en databasintensiv applikation utan att använda serverns kodning än att skriva all kod som ska köras på en applikationsserver.
Ett av argumenten mot att skriva serverns kod är att applikationen inte kommer att vara bärbar (kan inte flyttas från en plattform till en annan). De flesta organisationer som använder Oracle har dock använt det under en mycket lång tid (tio eller flera år) och överväger inte en övergång till en annan plattform. Dessutom är webbutveckling för närvarande i ett tillstånd av snabbt flöde. Organisationer byter ofta mellan. NET, J2EE och andra miljöer för sin webbaserade applikationsutveckling.
Båda. NET och J2EE miljöer är i flux också. I J2EE-miljön var industristandarden för webbutveckling för ett år sedan att skapa JavaServer-sidor (JSPs). För närvarande är industristandarden att arbeta i JSP / Struts-miljön. Under det närmaste året kommer JavaServer Faces (JSFs) sannolikt att bli branschstandard. Därför löper kodskriven i mellannivå en hög risk för att det behöver skrivas om i framtiden.
Server-sidkoden körs snabbare, är lättare att underhålla och testa, och är mindre mottaglig för förändring än kod placerad i mellannivå. Därför är det viktigt att skapa viktiga delar av en applikation i databasen.
Det finns ett antal platser där du kan skriva kod som dina program kan använda:
- Programportioner: PL / SQL-programenheter kan returnera en uppsättning värden (funktioner) eller PL / SQL-rutiner kan utföra databasoperationer (procedurer). Dessa funktioner och procedurer kan kallas av andra funktioner och procedurer eller (vid funktioner) som används i SQL-satser. PL / SQL-rutiner kan vara så stora och komplexa som du behöver dem att vara. Vissa komplexa rutiner kan innehålla tusentals kodrader. Hela systemen kan innehålla miljoner kodrader.
- PL / SQL-kod inbäddad i visningar: Med Oracle kan du bädda in kod i databasvyer. Koden kan faktiskt vara belägen på ett av två ställen i vyn. Först kan du placera korrekt utformade funktioner som returnerar ett värde i SELECT-delen av ett SQL-uttalande för att hämta ytterligare information, som kanske eller kanske inte ingår i de tabeller som efterfrågas. Du kan också bädda in PL / SQL i INSTEAD OF triggers i en vy. Dessa utlösare låter dig utföra INSERT, UPDATE och DELETE operationer på komplexa visningar, med PL / SQL hantera hanteringen av hur dessa operationer ska hanteras.
- Batchrutiner: Batchrutiner körkod som behandlar ett stort antal poster samtidigt. Att generera fakturor för varje kund i ett system eller bearbeta lönekontroller för en hel organisation är exempel på batchrutiner. Dessa rutiner är vanligtvis stora, komplexa och databasintensiva. Denna typ av rutin borde säkert skrivas i PL / SQL.