Object-PL / SQL - Object-PL/SQL
Objekt PL / SQL ( objekt -Procedural Språk / Structured Query Language eller helt enkelt O-PL / SQL ) är en metodik för att använda Oracle Corporation : s procedur förlängning språk för SQL och Oracle relationsdatabas . De ytterligare funktionerna från version 7 och andra förbättringar leder till en av de storskaliga miljöimplementeringarna av det objektorienterade databasparadigmet .
Även om PL / SQL: s allmänna syntax tidigare liknade Ada eller Pascal , fanns det många förbättringar som främst inkluderar Java-inbäddningskoden och den objektorienterade syntaxen inuti SQL.
Blandningen och inbäddningen av utlösare och lagrade procedurer var en av genombrottspunkterna för att stödja användningen av PL / SQL i ett OO- paradigm. Att man i SQL-syntaxen av uttalanden som [klass]. [Object] , och genomförandet av objekttypen (som alla OO språk), avslutat minimi förutsättningar till en mappnings tillvägagångssätt i en utsträckt SQL-språket utan användning av specifik kartläggning programvara .
Autonomi, beröm och betydelse av O-PL / SQL
O-PSL / SQL är inte bara att använda en version av ett programmeringsspråk utan det identifieras som hur man använder det och det definierar tematets autonomi. Varje version av PL / SQL, med början från 7, ger så många innovationer att det är omöjligt att behandla sådana användningar som underteman för PL / SQL. Så stor är den revolutionen att den etablerar en verklig gräns mellan språket, som kan användas som tidigare och OO-tillvägagångssättet i sig själv. Det är bara detta tillvägagångssätt som gör temat viktigt och den storskaliga användningen har fått sin kändis.
En förvirring av föremål
Det kan uppstå förvirring mellan föreställningarna om DBMS-objekt och klassobjekt . Detta är mycket viktigt eftersom vi lever med båda betydelserna på ett språk. Det är nödvändigt att identifiera när dokumentationen hänvisar till ett objekt som en av de två definitionerna.
Databasobjekt är begrepp som hänvisar till relationsdatabaser eller sekventiella databaser och fortsätter att vara giltiga i nya modeller. Tabeller , utlösare , kolumner , index är exempel på databasobjekt, som finns i O-PL / SQL, men med samma betydelse som begreppet Java- objekt, specifikt ett element i en uppsättning som har sin existens med början från en instantiering av en klass.
PL / SQL
PL / SQL är det utvidgade SQL-språket som används av Oracle Database .
PL / SQL finns i Oracle Database (sedan version 7), TimesTen-minnesdatabas (sedan version 11.2.1) och IBM DB2 (sedan version 9.7).
O-PL / SQL gör det möjligt att definiera klasser och starta dessa som objekt, vilket skapar användardefinierade datatyper som skrivkonstruktörer, utöver att använda Java i lagrade procedurer och utlösare.
Exempel på användningar av syntax för O-PL / SQL
Här är en liten uppsättning exempel på O-PL / SQL-syntax, extraherad från den officiella dokumentationen och andra källor:
Ett enkelt exempel på objektorienterad PL / SQL
create or replace type base_type as object (
a number,
constructor function base_type return self as result,
member function func return number,
member procedure proc (n number)
) instantiable not final;
/
Nu skapas typens implementering. Implementeringen definierar hur typens funktioner, procedurer och hur explicita konstruktörer beter sig:
create or replace type body base_type as
constructor function base_type return self as result is
begin
a:=0;
return;
end base_type;
member function func return number is
begin
return a;
end func;
member procedure proc (n number) as
begin
a:=n;
end proc;
end;
/
Vi är redo att härleda från bastyp. Nyckelordet för härledning är under. Den härledda typen definierar ett nytt attribut (heter: m) och åsidosätter funk.
create or replace type deriv_type under base_type (
m number,
overriding member function func return number
);
/
Som det är fallet med bastyper måste de åsidosatta metoderna i den härledda typen implementeras:
create or replace type body deriv_type as
overriding member function func return number is
begin
return m*a;
end;
end;
/
De skapade typerna kan instansieras och metoder kan kallas:
declare
b1 base_type :=base_type();
b2 base_type :=base_type(4);
d1 deriv_type:=deriv_type(5,6);
d2 deriv_type:=deriv_type(5,6);
begin
dbms_output.put_line(b1.func);
dbms_output.put_line(b2.func);
d1.proc(4);
dbms_output.put_line(d1.func);
dbms_output.put_line(d2.func);
end;
/
Resultat
0 4 24 30
De skapade typerna har blivit riktiga typer och kan användas i tabeller:
create table table_base (
b base_type
);
declare
base base_type := base_type();
deriv deriv_type:= deriv_type(8,9);
begin
insert into table_base values(base);
insert into table_base values(deriv);
end;
/
select t.b.func() from table_base t;
Resultat:
0 72
select avg(t.b.func()) from table_base t;
Resultat:
36
Se även
- Relationellt databashanteringssystem
- Komponentorienterad databas
- Transact-SQL
- System för databashantering
Bibliografi
- Bennett, Mathew (2002). Programmering av Oracle Developer (1 utgåva). Indianapolis: Sams. sid. 348. ISBN 0672321106 .
- Balar, donaler (2007). PL / SQL från nybörjare till professionell (1 utgåva). New York: Apress. sid. 469. ISBN 978-1590598825 .
- Feuerstein, Steven; Pribyl, Bill (2009). "26" . Oracle PL / SQL-programmering . Sebastopol: O'Reilly Media, Inc. ISBN 9780596514464 .
- Rahayu, Wenny; taniar, David; Pardede, Eric (2006). Objektorienterad Oracle (PDF) . Hershey: IRM Press. sid. 345. ISBN 1591406080 . Arkiverad från originalet (PDF) 2016-03-03 . Hämtad 2012-04-20 .
Referenser
Externa källor
- Exempel på O-Pl / SQL
- Ett annat exempel på lagrad procedur i Java inbäddad i Oracle Documentation: "Ringa Java-metoder i Oracle Database" . Oracle . Hämtad 20 april 2012 .