estudiante

Páginas: 7 (1598 palabras) Publicado: 28 de mayo de 2013
Funciones y Triggers
Introducción, Ejemplos
Álvaro Herrera

13 de noviembre de 2004

Álvaro Herrera

Funciones y TriggersIntroducción, Ejemplos

Contenidos

Funciones: ¿para qué?
Lenguajes
Tipos de funciones
Creación de funciones
tradicionales
SRFs

Funciones para triggers
Indices Funcionales

Álvaro Herrera

Funciones y TriggersIntroducción, Ejemplos

¿Para quéquiero funciones?

Mantener lógica lejos de la aplicación
consistencia entre aplicaciones
reducción de funcionalidad duplicada

Acceso predefinido a objetos restringidos
Escoger herramienta adecuada a cada caso
Algunas cosas necesitan lenguaje procedural
SQL es declarativo
se necesita poder expresivo distinto

Álvaro Herrera

Funciones y TriggersIntroducción, Ejemplos

Los lenguajesPostgreSQL soporta múltiples lenguajes procedurales
saber usar el apropiado en cada caso
conocer debilidades, fortalezas de cada uno

Hackers:
agregar soporte a nuevos lenguajes

Lenguajes confiables (trusted)
se puede “desconfiar” del usuario

Álvaro Herrera

Funciones y TriggersIntroducción, Ejemplos

Lenguajes: SQL

Lenguaje más básico y simple
No otorga poder adicionalPermite simplificar consultas

Álvaro Herrera

Funciones y TriggersIntroducción, Ejemplos

Lenguajes: PL/pgSQL

PL por excelencia
Procedural
Sintaxis para loops, condicionales, etc

Fácil de usar
portar desde Oracle PL/SQL
sintaxis simple y apropiada

No particularmente veloz ···
cache de planes de ejecución

Álvaro Herrera

Funciones y TriggersIntroducción, Ejemplos Lenguajes: C

Muy potente, flexible
Excelente rendimiento
Tiene acceso a todo
ejecutar consultas, escribir archivos, etc
incluso a botar el proceso servidor

Obtuso, pesado, complicado, peligroso
usarlo sólo en caso de necesidad!

No es confiable (trusted)

Álvaro Herrera

Funciones y TriggersIntroducción, Ejemplos

Lenguajes: scripting

Tcl
Perl
Python
PHP
otros

Álvaro HerreraFunciones y TriggersIntroducción, Ejemplos

Lenguajes: PL/R

Mención especial
brillantemente mantenido

Propósito específico
manejo estadístico

Álvaro Herrera

Funciones y TriggersIntroducción, Ejemplos

Lenguajes: conclusiones

Experimentar, usar, familiarizarse
Puede alivianar el trabajo ···
si se usa la herramienta adecuada

Puede mejorar rendimiento

“prematureoptimization is the root of all evil”
(Donald Knuth)

Álvaro Herrera

Funciones y TriggersIntroducción, Ejemplos

Tipos de funciones

Según lo que retornan
Funciones “normales”
SRF (set-returning function)
Agregación

Especiales
trigger
language_handler

Privilegios durante invocación
security definer
security invoker

Álvaro Herrera

Funciones y TriggersIntroducción, Ejemplos Funciones Tradicionales

Retornan un solo resultado
escalar o tupla

Es posible retornar un cursor abierto
Pueden tener efectos secundarios
tabla temporal

Álvaro Herrera

Funciones y TriggersIntroducción, Ejemplos

Sintaxis de Creación de Funciones

CREATE [OR REPLACE] FUNCTION
([tipo argumento], ···)
RETURNS [tipo resultado]
{ LANGUAGE lenguaje
| IMMUTABLE | STABLE |VOLATILE
| CALLED ON NULL INPUT
| RETURNS NULL ON NULL INPUT
| STRICT
| [EXTERNAL] SECURITY INVOKER
| [EXTERNAL] SECURITY DEFINER
| AS ’definición’
| AS ’archivo’, ’símbolo’
} ···

Álvaro Herrera

Funciones y TriggersIntroducción, Ejemplos

Creación de Funciones: atributos

IMMUTABLE
retorna lo mismo con los mismos argumentos
no hace búsquedas en la BD!

STABLE
como immutable,pero puede cambiar con el estado de la BD

VOLATILE
puede cambiar de una llamada a otra
si tiene efectos secundarios

Álvaro Herrera

Funciones y TriggersIntroducción, Ejemplos

Creación de Funciones: atributos (2)

STRICT
RETURNS NULL ON NULL INPUT
si algún argumento es NULL, no es necesario llamarla

CALLED ON NULL INPUT
debe ser invocada

Álvaro Herrera

Funciones y...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Estudiante
  • Estudiante
  • Estudiante
  • Estudiante
  • El estudiante
  • Estudiante
  • Estudiante
  • Estudiante

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS