/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Oracle - SP eller API?
Fra : YJ


Dato : 03-06-06 23:26

Lad os antage man sidder i en webudviklerstilling og har den luksus, at man
har en DBA'er der styrer al SQL i databasen vha. f.eks. PLSQL.
Udvikleren kommer altså aldrig til at lave en eneste SQL streng, men kalder
SP'er og får data retur.

Er denne metode anvendelig ved store projekter?
Er der smarte OOP features i PLSQL?
Kan man genbruge SQL kode i PLSQL?

Jeg har fået at vide, at svaret er nej til ovenstående og at DBA'eren burde
lave et API i stedet, hvor han kunne udføre sin SQL.
På denne måde var SQL stadig isoleret fra brugeren og han ville have et
langt mere sofikstikeret sprog til rådighed.

Hvad siger I til ovenstående?

YJ



 
 
Michael Zedeler (05-06-2006)
Kommentar
Fra : Michael Zedeler


Dato : 05-06-06 08:32

YJ wrote:
> Lad os antage man sidder i en webudviklerstilling og har den luksus, at man
> har en DBA'er der styrer al SQL i databasen vha. f.eks. PLSQL.
> Udvikleren kommer altså aldrig til at lave en eneste SQL streng, men kalder
> SP'er og får data retur.
>
> Er denne metode anvendelig ved store projekter?

Ja.

> Er der smarte OOP features i PLSQL?

Nej.

> Kan man genbruge SQL kode i PLSQL?

Ja.

> Jeg har fået at vide, at svaret er nej til ovenstående og at DBA'eren burde
> lave et API i stedet, hvor han kunne udføre sin SQL.

At lave stored procedures er da et API. Det er et PL/SQL-API.

> På denne måde var SQL stadig isoleret fra brugeren og han ville have et
> langt mere sofikstikeret sprog til rådighed.

Jeg har set eksempler på at man konsekvent har indkapslet alt i stored
procedures for at undgå at folk brugte forespørgsler direkte på
tabellerne i databasen. Det skulle efter sigende betyder at man nemmere
kunne ændre tabelstruktur, men jeg tvivler på at det er muligt at lave
større ændringer uden at man også er nødt til at ændre måden man kalder
procedurerne på.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
I am less likely to answer usenet postings by anonymous authors.
Visit my home page at http://michael.zedeler.dk/

YJ (05-06-2006)
Kommentar
Fra : YJ


Dato : 05-06-06 09:17

> > Jeg har fået at vide, at svaret er nej til ovenstående og at DBA'eren
burde
> > lave et API i stedet, hvor han kunne udføre sin SQL.
>
> At lave stored procedures er da et API. Det er et PL/SQL-API.

Ja, men API i sig selv er ikke målet.
Målet er at have en høj grad af fleksibilitet i sin kodning.
Hvis man lavede et Java API, som var den eneste der talte direkte med
databasen havde man jo pludseligt meget store muligheder, f.eks. OOP


YJ



Michael Zedeler (05-06-2006)
Kommentar
Fra : Michael Zedeler


Dato : 05-06-06 15:44

YJ wrote:
>>>Jeg har fået at vide, at svaret er nej til ovenstående og at DBA'eren
>
> burde
>
>>>lave et API i stedet, hvor han kunne udføre sin SQL.
>>
>>At lave stored procedures er da et API. Det er et PL/SQL-API.
>
> Ja, men API i sig selv er ikke målet.
> Målet er at have en høj grad af fleksibilitet i sin kodning.

Det kommer jo an på hvilke problemer, man ønsker at løse.

> Hvis man lavede et Java API, som var den eneste der talte direkte med
> databasen havde man jo pludseligt meget store muligheder, f.eks. OOP

Ja. Men så skal du vist lige forklare hvad du mener med ordet
fleksibilitet ovenfor, da Java som bekendt kun er ét ud af mange sprog,
som man dermed udelukker. Det synes jeg ikke lyder særlig fleksibelt.

Iøvrigt findes der da den slags API'er. De kaldes normalt for
objekt-persistens-lag. Hibernate er et eksempel.

Det er bare noget helt andet end stored procedures.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
I am less likely to answer usenet postings by anonymous authors.
Visit my home page at http://michael.zedeler.dk/

YJ (05-06-2006)
Kommentar
Fra : YJ


Dato : 05-06-06 18:08

> > Hvis man lavede et Java API, som var den eneste der talte direkte med
> > databasen havde man jo pludseligt meget store muligheder, f.eks. OOP
>
> Ja. Men så skal du vist lige forklare hvad du mener med ordet
> fleksibilitet ovenfor, da Java som bekendt kun er ét ud af mange sprog,
> som man dermed udelukker. Det synes jeg ikke lyder særlig fleksibelt.

Jamen hvis du anvender PL/SQL inden i databasen har du jo også udelukket en
masse sprog.
Du misforstår pointen.
Om det er Java eller et andet sprog man koder sit API i det underordnet.
Pointen skulle være at komme ud af PL/SQL, som ikke er et fleksibelt sprog.
Brugeren der normalt ville kalde en SP i databasen kalder nu API'et og får
samme data retur. Brugeren kan altså ikke mærke forskel.
Derimod har DBA'eren en masse fordele ved at kunne anvende OOP og en masse
andet, når han skal kode.



> Iøvrigt findes der da den slags API'er. De kaldes normalt for
> objekt-persistens-lag. Hibernate er et eksempel.
>
> Det er bare noget helt andet end stored procedures.

Jamn så taler vi forbi hinanden. Jeg ønsker ikke at afskaffe SP. Jeg ønsker
at give DBA'eren et sprog at kode i, som er væsentligt mere udbygget end
PL/SQL.

YJ



Michael Zedeler (05-06-2006)
Kommentar
Fra : Michael Zedeler


Dato : 05-06-06 20:43

YJ wrote:
>>>Hvis man lavede et Java API, som var den eneste der talte direkte med
>>>databasen havde man jo pludseligt meget store muligheder, f.eks. OOP
>>
>>Ja. Men så skal du vist lige forklare hvad du mener med ordet
>>fleksibilitet ovenfor, da Java som bekendt kun er ét ud af mange sprog,
>>som man dermed udelukker. Det synes jeg ikke lyder særlig fleksibelt.
>
> Jamen hvis du anvender PL/SQL inden i databasen har du jo også udelukket en
> masse sprog.

Nej. Du kan kalde disse procedurer fra alle miljøer, hvor man normalt
ellers ville kunne få fat i databasen.

> Du misforstår pointen.
> Om det er Java eller et andet sprog man koder sit API i det underordnet.
> Pointen skulle være at komme ud af PL/SQL, som ikke er et fleksibelt sprog.

Enig. PL/SQL er meget begrænset. Til gengæld findes der databasesystemer
som giver mulighed for at bruge andre sprog til SP.

> Brugeren der normalt ville kalde en SP i databasen kalder nu API'et og får
> samme data retur. Brugeren kan altså ikke mærke forskel.
> Derimod har DBA'eren en masse fordele ved at kunne anvende OOP og en masse
> andet, når han skal kode.

Det er selvmodsigende at skrive at man ved at skrive at et API er et
alternativ til at bruge SP. En flok SPer kan sagtens udgøre et API.

Men bortset fra det, har du hørt om begrebet multi tier-systemer?

>>Iøvrigt findes der da den slags API'er. De kaldes normalt for
>>objekt-persistens-lag. Hibernate er et eksempel.
>>
>>Det er bare noget helt andet end stored procedures.
>
> Jamn så taler vi forbi hinanden. Jeg ønsker ikke at afskaffe SP. Jeg ønsker
> at give DBA'eren et sprog at kode i, som er væsentligt mere udbygget end
> PL/SQL.

Det findes skam. Tag et kig på PostgreSQL. Der opstår bare et andet
problem, som er at definere grænsen imellem applikationerne og
databasens logik. Det må man så afgøre fra sag til sag.

Jeg tror det er svært for alvor at udnytte at man afvikler kode på
serveren, så man faktisk får noget der performer bedre (eller i det
mindst lige så godt). Det er nok derfor man har implementeret relativt
rudimentære sprog til programmering af SP.

Generelt er der en masse overlap imellem hvad databaser tilbyder af
funktioner og de almindeligt udbredte objekt-persistenslag, så man ender
med at vælge noget fra.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
I am less likely to answer usenet postings by anonymous authors.
Visit my home page at http://michael.zedeler.dk/

Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409077
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste