14 jul 2012

Grupo 1, PSM /SQL


Procedimientos almacenados en el esquema: creación de funciones y procedimientos PSM. Instrucciones simples en PSM. Instrucciones de bifurcación. Consultas en PSM. Excepciones en PSM. 


 Blog del Grupo 1
BENEFICIOS DE LOS PROCEDIMIENTOS ALMACENADOS

Los procedimientos almacenados y funciones ofrecen varios beneficios para el desarrollo de aplicaciones, distribución y operación: 
Sintaxis SQL más flexible. Las rutinas almacenadas (procedimientos almacenados) pueden ser escritas utilizando extensiones para la sintaxis SQL, tales como composición de sentencias y construcciones para el control de flujo, esto facilita la expresión de lógicas complejas.
 • Capacidades para el manejo de errores. Una rutina almacenada puede crear manejadores de errores que son utilizados cuando surgen condiciones excepcionales. La ocurrencia de un error no necesitará causar la terminación de la rutina sino que puede ser manejada apropiadamente. 
Fácil de mantener. Una única copia de una rutina es más fácil de mantener que una copia insertada dentro de cada aplicación. La actualización de aplicaciones es más fácil si todos utilizan una rutina en común, debido a que si es necesario actualizar una sola rutina, no todas las aplicaciones que la usan.
Los clientes se benefician de las actualizaciones del servidor. La actualización del servidor (upgrades) mejoran el desempeño de las rutinas almacenadas que se ejecutan en el host. Esto mejora el desempeño para las aplicaciones clientes que usan las rutinas aun cuando las maquinas clientes no sean actualizadas. • Mejor seguridad. Una rutina puede ser escrita para acceder datos sensibles sobre el definidor de la rutina para el invocador de la rutina, pero no retorna nada que el invocador no debería ver. Una rutina también puede ser utilizada para modificar tablas de manera segura, sin darle a los usuarios acceso directo a las tablas. Esto previene la realización de cambios posiblemente no seguros sobre ellos. 
DIFERENCIAS ENTRE FUNCIONES Y PROCEDIMIENTOS 
La diferencia más general entre procedimientos y funciones es que son invocados de forma diferente y son utilizadas para diferentes propósitos:
Un procedimiento no retorna un valor. En su lugar este es invocado con una sentencia CALL para realizar una operación tales como la modificación de una tabla o el procesamiento de registros recuperados.
Una función es invocada dentro de una expresión y retorna un solo valor directamente al llamador para ser utilizado en la expresión. Es decir, una función es utilizada en expresiones de la misma forma como una constante, una función preconstruida, o una referencia a la columna de una tabla.
 • No se puede invocar una función con una sentencia CALL, ni se puede invocar un procedimiento almacenado en una expresión. La sintaxis para la creación de rutinas difiere algo para los procedimientos y funciones: 
Los parámetros de procedimiento pueden ser definidos como de solo entrada, solo salida, o para ambos entrada y salida. Esto significa que un procedimiento puede pasar valores de regreso al llamador por la utilización de parámetros de salida. Estos valores pueden ser accedidos en sentencias que sigan la sentencia CALL. Las funciones solo tienen parámetros de entrada. Como resultado, aunque ambos los procedimientos y funciones pueden tener parámetros, la sintaxis de declaración de parámetros de procedimiento difieren para las funciones. 
EJEMPLO:
// CREATE PROCEDURE variables() BEGIN --Asignación de valores a variables con SET --DECLARE var1, var2, var3 INT; --SET var1 = 1, var2 = 2; --SET var3 = var1 + var2; -- Asignación de variables con SELECT ... INTO DECLARE nombre_variable CHAR(50); DECLARE cant_variable INT; SELECT nombre_cooperativa, cant_masculino INTO nombre_variable, cant_variable FROM cooperativa WHERE nombre_cooperativa = 'SUCRE'; SELECT nombre_variable, cant_variable; END; // delimiter ; CALL variables(); 1.2 

Cursor: modificación por cursor. Protección contra modificaciones concurrentes. 
 Cursores Un cursor permite acceder un resultado (result set), una fila (registro) a la vez. Debido a su orientación en filas, los cursores a menudo son utilizados en ciclos (loops) que localizan y procesan una fila dentro de cada iteración del ciclo. 
 La implementación del cursor en MySQL tiene las siguientes propiedades: este es proporcionado para cursores de solo lectura (read-only); no pueden ser utilizados para modificar tablas. Los cursores solo avanzan a través de un resultado fila por fila; no permiten ir hacia atrás y luego hacia delatante libremente. Para usar un cursor en una rutina almacenada, se debe escribir la sentencia DECLARE CURSOR que nombra el cursor y asociarlo con una sentencia SELECT que produce un resultado (result set): DECLARE cursor_name CURSOR FOR select_statement Cada cursor declarado dentro de un bloque debe tener un nombre diferente. Para abrir el cursor, coloque su nombre en una sentencia OPEN. Esto ejecuta la sentencia SELECT asociada con el cursor: OPEN cursor_name La sentencia FETCH localiza la próxima fila o registro de un resultado de un cursor abierto. La sentencia nombra el cursor y proporciona una lista de variables dentro del cual localizará los valores de las columnas de la fila. Aquí debe estar una variable por columna en el resultado (result set).


El ambiente SQL: Ambientes. Esquemas. Catálogos. Clientes y servidores en el ambiente SQL.Esquemas El esquema de la base de datos. Una vez construido el esquema conceptual, el diseño de bases de datos obliga a realizar varias tareas previas a la construcción del esquema lógico global del sistema, también llamado esquema de bases de datos. Por el momento, basta saber que el esquema de la base de datos representa la descripción de los datos de la base de datos, mientras que el esquema conceptual representaba a la realidad. La primera de las tareas necesarias es la identificación de los datos requeridos, para obtener como resultado las partes del área de aplicación que deben representarse mediante datos, y en que forma deben presentarse éstos a los usuarios.

Grupo 1
Acosta Zailuma
Aparicio Raul
Aray Lucio
Cedillo Javier
Bolivar Frank
Bolivar Freddy
Gomez Alexis
Gonzales Guillermo

Seccion 1, Trayecto 4, trimestre 1, Codigo PIAB413

Blog del Grupo 1

No hay comentarios: