Módulo VI: Procedimientos y Desencadenadores

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Módulo VI: Procedimientos y Desencadenadores"

Transcripción

1 Módulo VI: Procedimientos y Desencadenadores Procedimientos Almacenados Implementación de Desencadenadores Maximiliano Odstrcil - 1

2 Procedimientos Almacenados Introducción Creación, Ejecución y Modificación Uso de Parámetros Procedimientos Extendidos Manejo de Mensajes de Error Maximiliano Odstrcil - 2

3 Introducción Definición Ventajas de los SP Proceso Inicial de los SP Proceso Subsiguiente de los SP Maximiliano Odstrcil - 3

4 Definición (1) Un Procedimiento Almacenado (Stored Procedure) es una colección de sentencias SQL, con un nombre, almacenadas en el servidor, dentro de la BD. La finalidad de un procedimiento almacenado es análoga a la de una función, subprograma o método en un lenguaje de programación: encapsular tareas repetitivas. Maximiliano Odstrcil - 4

5 Definición (2) Características: Soportan la declaración de variables, ejecución condicional y otras características de programación. Aceptan parámetros de entrada y devuelven valores. Devuelven un valor de estado que indica éxito o falla. Pueden llamar a otros procedimientos almacenados. Maximiliano Odstrcil - 5

6 Definición (3) Tipos de procedimientos: Del sistema Locales Temporales Remotos Extendidos Maximiliano Odstrcil - 6

7 Definición (4) Procedimientos almacenados del sistema: Procedimientos almacenados con que cuenta el SGBDR. Sirven para devolver la información de las tablas del sistema y ejecutar tareas de mantenimiento. MySQL no tiene estos tipos de procedimientos. En SQL Server se almacenan en la BD master y sus nombres comienzan con sp_. Ejemplo: sp_help. Maximiliano Odstrcil - 7

8 Definición (5) Procedimientos almacenados locales: Procedimientos creados en las BD de usuario individuales. Procedimientos almacenados temporales: En SQL Server sus nombres empiezan con # o ## (si son locales o globales). No son soportados por MySQL. Procedimientos almacenados remotos: Soportan la funcionalidad de consultas distribuidas. Maximiliano Odstrcil - 8 y operaciones

9 Definición (6) Procedimientos almacenados extendidos: Procedimientos implementados como vínculos dinámicos a librerías (DLLs) que se ejecutan fuera del ambiente del servidor. No son soportados por MySQL. En SQL Server, sus nombres comienzan con xp_ y son ejecutados de manera similar a los SP. Algunos procedimientos almacenados de sistema llaman en su cuerpo a estos procedimientos. Maximiliano Odstrcil - 9

10 Ventajas de los SP (1) Encapsulan la lógica de negocio y crean una lógica de la aplicación reusable: Las reglas o políticas de negocio encapsuladas en SP se pueden modificar en un único lugar. Todos los clientes pueden usar los mismos procedimientos almacenados asegurándose un acceso consistente a los datos. Ocultan a los usuarios la complejidad subyacente y detalles internos de la BD: Si todas las funciones de negocio se soportan mediante un conjunto de procedimientos almacenados, los usuarios no deben acceder a las tablas directamente. Maximiliano Odstrcil - 10

11 Ventajas de los SP (2) Proveen mecanismos de seguridad: Se puede asignar permisos a los usuarios para ejecutar un procedimiento almacenado, aún cuando no tengan permisos para acceder a las tablas o vistas a que hacen referencia los procedimientos. Mejoran la perfomance: Los procedimientos almacenados implementan varias tareas mediante una serie de sentencias SQL. Se puede aplicar lógica condicional a los resultados de las primeras sentencias para determinar las siguientes. Todas estas sentencias forman parte de un único plan de ejecución. Maximiliano Odstrcil -

12 Ventajas de los SP (3) Reducen el tráfico en la red: En vez de mandar miles de sentencias SQL por la red, los usuarios mandan una única sentencia (el llamado al SP al servidor) y reciben la respuesta. Reducen la vulnerabilidad debido a los ataques de SQL injection: Mediante el uso de parámetros en el código SQL se reduce la posibilidad que se puedan embeber sentencias SQL en los valores de los parámetros. Maximiliano Odstrcil - 12

13 Proceso Inicial de los SP (1) Plan de ejecución: muestra cómo navega por las tablas y vistas el SGBDR, y cómo utiliza los índices para ejecutar una consulta. Se puede ver el plan de ejecución de la consulta que se ejecutó (plan real), o la forma en que el SGBDR ejecutará la consulta (plan estimado). Estos planes pueden diferir ligeramente ya que el SGBDR tiene en cuenta otras operaciones que se estén ejecutando en el plan real. Maximiliano Odstrcil - 13

14 Proceso Inicial de los SP (2) El proceso de creación de un SP consiste de 4 etapas: Análisis sintáctico (parsing): el SGBDR controla la sintaxis del cuerpo del procedimiento y lo prepara para su optimización. En esta etapa no se controlan los nombres de los objetos o columnas. Normalización: el SGBDR verifica que todos los nombres de objetos y columnas referenciados en el cuerpo del procedimiento sean correctos y válidos. Maximiliano Odstrcil - 14

15 Proceso Inicial de los SP (3) El proceso de creación de un SP consiste de 4 etapas: Compilación: el SGBDR construye el plan de ejecución para el SP, creando grafos para todas las sentencias del tipo DML, los cuales son usados por el optimizador para optimizar el plan de ejecución, el cual se guarda en el cache de procedimientos. Maximiliano Odstrcil - 15

16 Proceso Inicial de los SP (4) El proceso de creación de un SP consiste de 4 etapas: Optimización: el optimizador determina el costo de los diferentes posibles planes de ejecución, eligiendo el menor. Para esto tiene en cuenta: Cantidad de datos en las tablas y naturaleza de sus índices. Los operadores involucrados en la cláusula WHERE. La presencia de Joins, UNION, GROUP BY y ORDER BY. Maximiliano Odstrcil - 16

17 Proceso Inicial de los SP (5) La primera vez que se ejecuta un SP, el SGBDR arma un plan de ejecución (optimizado) para el mismo y lo guarda en el cache de procedimientos. El cache de procedimientos es un área de memoria que guarda temporalmente los planes de ejecución compilados. La permanencia de los planes de ejecución viene dada por: El tiempo requerido para su recompilación (costo). Su frecuencia de uso (edad). Maximiliano Odstrcil - 17

18 Proceso Inicial de los SP (6) Un plan de ejecución consiste del plan en sí mismo y el contexto de ejecución: Execution context connection 1 Execution context connection 2 Execution context connection 3 Parameter value: 12 Parameter value: 24 Parameter value: 36 Query plan SELECT * FROM MyTable WHERE PriKey =? Maximiliano Odstrcil - 18 Procedure cache Age Cost

19 Proceso Inicial de los SP (7) Creación Creación Parsing Parsing Ejecución Ejecución Optimización Optimización (primera (primeravez vez oorecompilación) recompilación) Compilación Compilación Maximiliano Odstrcil - 19 Entradas Entradas en en las las tablas tablas sysobjects sysobjects yy syscomments syscomments Plan Plan de de compilación compilación en en el el cache cache de de proc. proc.

20 Proceso Subsiguiente de los SP (1) Una vez que se ejecutó un SP, su plan de ejecución permanece en memoria, por lo que sucesivas ejecuciones, cada una con un contexto de ejecución diferente (incluyendo parámetros y variables), pueden compartirlo, evitando los pasos de análisis, compilación y optimización (ejecución más rápida). La reutilización de los planes de ejecución es una de las mayores ventajas de los SP. Maximiliano Odstrcil - 20

21 Creación, Ejecución y Modificación Creación de SP Recomendaciones Ejecución de SP Modificación y Borrado de SP Maximiliano Odstrcil - 21

22 Creación de SP (1) Se puede crear un SP de manera similar a la creación de vistas, con un asistente o mediante la sentencia CREATE PROCEDURE. Consideraciones: Los SP pueden referenciar tablas, vistas, SP y tablas temporales. Si un SP crea una tabla temporal local, ésta deja de existir cuando termina la ejecución del SP. En SQL Server la sentencia CREATE PROCEDURE es un batch por si mismo. La sentencia CREATE PROCEDURE puede incluir casi cualquier sentencia SQL. Maximiliano Odstrcil - 22

23 Creación de SP (2) Consideraciones: En SQL Server, para ejecutar CREATE PROCEDURE se debe ser miembro de los roles sysadmin o db_owner, o se debe tener permiso de creación de procedimientos. SQL Server: CREATE CREATE PROC PROC dbo.overdue_books dbo.overdue_books AS AS SELECT SELECT ** FROM FROM dbo.loan dbo.loan WHERE WHERE due_date due_date << GETDATE() GETDATE() GO GO Maximiliano Odstrcil - 23

24 Creación de SP (3) MySQL: DELIMITER DELIMITER // // CREATE CREATE PROCEDURE PROCEDURE verempleados() verempleados() BEGIN BEGIN SELECT SELECT ** FROM FROM Employees; Employees; END END // // DELIMITER DELIMITER ;; Maximiliano Odstrcil - 24

25 Creación de SP (4) Los SP pueden anidarse (cuando un SP llama a otro SP). La características son: Puede haber hasta 32 niveles de anidamiento (SQL Server). El nivel de anidamiento actual se almacena en la variable global (SQL Server). Si un SP llama a un segundo SP, este último puede acceder a todos los objetos definidos localmente en el primero. Maximiliano Odstrcil - 25

26 Creación de SP (5) En SQL Server: Para ver información sobre los SP se pueden usar los procedimientos sp_help, sp_helptext y sp_depends. Para obtener una lista de SP: sp_stored_procedures. En MySQL: Para ver información sobre un SP se puede ejecutar la sentencia SHOW CREATE PROCEDURE nombre; Para obtener una lista de SP: SHOW PROCEDURE STATUS; Maximiliano Odstrcil - 26

27 Recomendaciones En SQL Server, se debe tratar de evitar romper la cadena de permisos, por lo que se recomienda que el usuario dbo sea el dueño de los procedimientos (similar a las vistas). Realizar un procedimiento por cada tarea (cohesión). Crear, probar y corregir los procedimientos en el servidor, luego hacer la prueba en los clientes. En SQL Server, evitar el uso del prefijo sp_ para los procedimientos. Usar las mismas configuraciones de conexión para todos los SP. Minimizar el uso de procedimientos temporales. Maximiliano Odstrcil - 27

28 Ejecución de SP (1) Los procedimientos almacenados se pueden ejecutar por sí mismos: SQL Server: se emplea la sentencia EXEC[UTE] seguida del nombre del SP y sus parámetros: EXEC EXEC overdue_books overdue_books MySQL: se emplea la sentencia CALL seguida del nombre del SP y sus parámetros: CALL CALL verempleados(); verempleados(); Maximiliano Odstrcil - 28

29 Ejecución de SP (2) En SQL Server los SP también se pueden ejecutar como parte de una sentencia INSERT, la cual puede poblar una tabla con el resultado (ResultSet) devuelto por un SP (la tabla debe existir y los tipos de datos y columnas deben coincidir): INSERT INSERT INTO INTO customers customers EXEC EXEC employee_customer employee_customer Maximiliano Odstrcil - 29

30 Modificación y Borrado de SP (1) Los SP son modificados en respuesta a los requisitos del usuario o a cambios en las tablas subyacentes. En SQL Server, para modificar un SP existente se puede usar un asistente o bien la sentencia ALTER PROC[EDURE]. En MySQL, la sentencia ALTER PROCEDURE sólo permite modificar algunas características de un SP, no su cuerpo ni parámetros. Maximiliano Odstrcil - 30

31 Modificación y Borrado de SP (2) Consideraciones (SQL Server): Se deben incluir las opciones que correspondan para la modificación del procedimiento, como WITH ENCRYPTION, WITH RECOMPILE, etc. La sentencia sólo modifica un SP. Si el SP llama a otros, éstos no se ven afectados. Se necesita tener determinados permisos para modificar el SP. Maximiliano Odstrcil - 31

32 Modificación y Borrado de SP (3) El siguiente ejemplo modifica el SP overdue_books: ALTER ALTER PROC PROC overdue_books overdue_books AS AS SELECT SELECT CONVERT(char(8),due_date,1) CONVERT(char(8),due_date,1) date_due, date_due, isbn, isbn, copy_no, copy_no, SUBSTRING(title, SUBSTRING(title, 1, 1, 30)title, 30)title, member_no, member_no, lastname lastname FROM FROM OverdueView OverdueView ORDER ORDER BY BY due_date due_date GO GO Maximiliano Odstrcil - 32

33 Modificación y Borrado de SP (4) Para borrar un SP se puede usar un asistente o la sentencia DROP PROC[EDURE]. SQL Server: DROP DROP PROC PROC overdue_books overdue_books MySQL: DROP DROP PROCEDURE PROCEDURE verempleados; verempleados; Maximiliano Odstrcil - 33

34 Uso de Parámetros Parámetros de Entrada Ejecución de SP con Parámetros Retorno de Valores de Salida Recompilación Explícita de SP Maximiliano Odstrcil - 34

35 Parámetros de Entrada (1) Permiten pasar información a los SP. Se los debe declarar en la sentencia CREATE PROCEDURE. Consideraciones: Verificar al principio del SP los valores de entrada para atrapar posibles valores inválidos. Proveer valores por defecto apropiados (depende del SGBDR). El máximo número de parámetros depende del SGBDR. El máximo número de variables locales de un SP es limitado solamente por la memoria disponible (depende del SGBDR). Los parámetros tienen un ámbito local al SP. Maximiliano Odstrcil - 35

36 Parámetros de Entrada (2) Sintaxis para SQL tipo_dato [ = valor_defecto] CREATE CREATE PROC PROC longstring longstring == char(8) char(8) == 'English' 'English' AS AS is is null null BEGIN BEGIN PRINT PRINT "Please "Please provide provide aa title title (or (or partial partial title) title) and and the the translation" translation" PRINT PRINT "find_isbn "find_isbn 'Oliver%', 'Oliver%', 'Japanese'" 'Japanese'" Maximiliano Odstrcil - 36

37 Parámetros de Entrada (3) Sintaxis para MySQL: parámetro tipo_dato DELIMITER DELIMITER // // CREATE CREATE PROCEDURE PROCEDURE verunempleado(ide verunempleado(ide INTEGER) INTEGER) BEGIN BEGIN SELECT SELECT ** FROM FROM Employees Employees WHERE WHERE EmployeeID EmployeeID == ide; ide; END END // // DELIMITER DELIMITER ;; Maximiliano Odstrcil - 37

38 Ejecución de SP con Parámetros (1) En SQL Server se puede llamar un SP con parámetros de 2 formas: Pasando los valores por referencia (forma explícita) Pasando los valores por posición Maximiliano Odstrcil - 38

39 Ejecución de SP con Parámetros (2) Paso de valores por referencia: en la sentencia EXEC se especifica el parámetro de la = valor. El orden de los parámetros puede ser cualquiera. Se pueden omitir parámetros, en cuyo caso adoptan el valor por defecto o el valor nulo. Se puede = DEFAULT. EXEC EXEC == == 'Dogwood 'Dogwood == 'CA', == '94203' '94203' Maximiliano Odstrcil - 39 'LaBrie', 'LaBrie', == 'Sacramento', 'Sacramento',

40 Ejecución de SP con Parámetros (3) Paso de valores por posición: Se pasan los valores en el mismo orden en que fue definido el SP. Se pueden omitir parámetros en valores por defecto, pero no se debe interrumpir la secuencia. Se usan también valores nulos y DEFAULT como parámetros. EXEC EXEC addadult addadult 'LaBrie', 'LaBrie', 'Linda', 'Linda', null, null, 'Dogwood 'Dogwood Drive', Drive', 'Sacramento', 'Sacramento', 'CA', 'CA', '94203', '94203', null null Maximiliano Odstrcil - 40

41 Ejecución de SP con Parámetros (4) En MySQL sólo se pueden pasar los valores por posición: Se pasan los valores en el mismo orden en que fue definido el SP. Se usan también valores nulos como parámetros. CALL CALL verunempleado('sales verunempleado('sales Representative', Representative', 'Ms.'); 'Ms.'); Maximiliano Odstrcil - 41

42 Retorno de Valores de Salida (1) Un SP puede devolver información al SP o cliente que lo llama en forma de parámetros de salida. En SQL Server, para indicar que un parámetro es de salida se emplea la cláusula OUTPUT en la definición del SP: CREATE CREATE PROCEDURE PROCEDURE smallint smallint OUTPUT OUTPUT AS AS GO GO Maximiliano Odstrcil - 42

43 Retorno de Valores de Salida (2) En MySQL, los parámetros pueden ser de 3 tipos: IN: modo por defecto. Implica que quien llame al SP debe proporcionar ese parámetro. El SP trabaja con una copia de este parámetro. OUT: el valor de este parámetro se puede cambiar en el SP. El SP no puede acceder al valor inicial de este parámetro cuando empieza. INOUT: combinación de las 2 opciones anteriores. Maximiliano Odstrcil - 43

44 Retorno de Valores de Salida (3) Ejemplo en MySQL: DELIMITER DELIMITER // // CREATE CREATE PROCEDURE PROCEDURE cantempleados(t cantempleados(t VARCHAR(30), VARCHAR(30), toc toc VARCHAR(25), VARCHAR(25), out out cant cant integer) integer) BEGIN BEGIN SELECT SELECT count(employeeid) count(employeeid) INTO INTO cant cant FROM FROM Employees Employees WHERE WHERE (Title (Title == t) t) AND AND (TitleOfCourtesy (TitleOfCourtesy == toc) toc) ;; END END // // DELIMITER DELIMITER ;; Maximiliano Odstrcil - 44

45 Retorno de Valores de Salida (4) En SQL Server, para llamar a un SP con parámetros de salida también se emplea la cláusula OUTPUT. La sentencia que llama al SP debe tener una variable para guardar el valor de salida, que puede ser de cualquier tipo de datos, salvo text o image. smallint smallint EXECUTE EXECUTE mathtutor mathtutor 5, 5, OUTPUT OUTPUT SELECT SELECT 'The 'The result result is: Maximiliano Odstrcil - 45

46 Retorno de Valores de Salida (5) En MySQL, para llamar a un SP con parámetros de salida se hace: CALL CALL cantempleados('sales cantempleados('sales Representative', Representative', Maximiliano Odstrcil - 46

47 Recompilación Explícita de SP (1) A veces SQL Server necesita reoptimizar los planes de ejecución de los SP: Se agregan nuevos índices Se cambian los datos en columnas indexadas Esta optimización se produce automáticamente cuando: Inicia SQL Server y se ejecuta la consulta por primera vez. Se cambian las tablas subyacentes. Si se agrega un índice, por ejemplo, se debe recompilar manualmente el SP. Maximiliano Odstrcil - 47

48 Recompilación Explícita de SP (2) Un plan de ejecución consiste del plan en sí mismo y el contexto de ejecución, el cual incluye los valores de los parámetros. Si estos valores no son los mismos en las sucesivas llamadas al SP, la performance del SP puede disminuir, por lo que también resulta ventajoso recompilar un SP. Maximiliano Odstrcil - 48

49 Recompilación Explícita de SP (3) Tres formas de recompilar explícitamente un SP: Especificar la opción WITH RECOMPILE en la sentencia CREATE PROCEDURE, con lo cual el SP no se guarda en el cache y se recompila cada vez que se ejecuta. Especificar la opción WITH RECOMPILE en la sentencia EXECUTE, con lo cual se crea un nuevo plan durante la ejecución del SP y se guarda en el cache. Usar el SP de sistema sp_recompile, con lo cual el SP se recompila la próxima vez que se ejecute. Si se lo ejecuta con una tabla o vista, todos los SP asociados son recompilados. Maximiliano Odstrcil - 49

50 Procedimientos Extendidos Los SP extendidos son funciones dentro de una DLL que incrementan la funcionalidad de SQL Server. Características: Se programan usando la API de Open Data Services. Pueden incluir características de C y C++ por ejemplo. Pueden contener múltiples funciones. Se pueden llamar desde un cliente SQL Server. Se pueden agregar solamente a la BD master. EXEC EXEC master..xp_cmdshell master..xp_cmdshell 'dir 'dir c:\mssql7' c:\mssql7' Maximiliano Odstrcil - 50

51 Manejo de Mensajes de Error (1) Para aumentar la efectividad de los SP, se deben incluir mensajes de error que comuniquen el estado de la transacción al usuario. En SQL Server, para implementar los mensajes de error se cuenta con: Sentencia RETURN Procedimiento sp_addmessage Función Sentencia RAISERROR Maximiliano Odstrcil - 51

52 Manejo de Mensajes de Error (1) Sentencia RETURN: Sale de una consulta o SP incondicionalmente. Puede retornar un valor de estado entero llamado código de retorno. SQL Server devuelve automáticamente 0 de cualquier SP, a menos que se especifique otro valor. Maximiliano Odstrcil - 52

53 Manejo de Mensajes de Error (2) Sentencia RETURN: CREATE CREATE PROC PROC smallint smallint OUTPUT OUTPUT AS AS IF IF == '') '') OR OR == '')) '')) RETURN RETURN -1-1 INSERT INSERT INTO INTO Department Department (Name, (Name, GroupName) GroupName) == SCOPE_IDENTITY() SCOPE_IDENTITY() RETURN 0 RETURN 0 GO GO Maximiliano Odstrcil - 53

54 Manejo de Mensajes de Error (3) Sentencia RETURN: int int == AddDept AddDept 'Refunds', 'Refunds', OUTPUT OUTPUT IF IF SELECT SELECT ELSE ELSE SELECT SELECT Maximiliano Odstrcil - 54 == 'Error' 'Error'

55 Manejo de Mensajes de Error (4) Procedimiento sp_addmessage: Crea mensajes de error definidos por el usuario. Todos los mensajes de error (de usuario y sistema) se almacenan en la tabla sysmessages. Se pueden escribir en el Visor de Sucesos de Windows. EXEC EXEC == == == El El registro registro no no puede puede ser ser == TRUE TRUE Maximiliano Odstrcil - 55

56 Manejo de Mensajes de Error (5) Función del sistema Contiene el número de error de la sentencia Transact-SQL más reciente. Se borra y resetea con cada sentencia que se ejecuta. Retorna un 0 cuando la sentencia se ejecuta satisfactoriamente. Se para detectar un número de error específico o para abandonar un SP condicionalmente <> <> 00 BEGIN BEGIN ROLLBACK ROLLBACK TRAN TRAN RETURN RETURN END END COMMIT COMMIT TRAN TRAN Maximiliano Odstrcil - 56

57 Manejo de Mensajes de Error (6) Sentencia RAISERROR: Genera un mensaje de error definido por el usuario y avisa al sistema que ha ocurrido un error. Permite a la aplicación poner un mensaje de error definido por el usuario o bien una cadena construida dinámicamente. Puede escribir mensajes de error en el registro de errores de SQL o en el Visor de Sucesos de Windows. RAISERROR RAISERROR (500,10,1) (500,10,1) WITH WITH LOG LOG Maximiliano Odstrcil - 57

58 Manejo de Mensajes de Error (7) /* /* Mensajes Mensajes de de error error definidos definidos por por el el EXEC EXEC sp_addmessage sp_addmessage 50010, 50010, 10, 10, 'Member 'Member EXEC EXEC sp_addmessage sp_addmessage 500, 500, 10, 10, 'Member 'Member EXEC EXEC sp_addmessage sp_addmessage 50012, 50012, 10, 10, 'Member 'Member Juvenile Juvenile member.' member.' EXEC EXEC sp_addmessage sp_addmessage 50013, 50013, 10, 10, 'Member 'Member loan. loan. usuario. usuario. */ */ number number not not found.' found.' cannot cannot be be deleted.' deleted.' is is responsible responsible for for currently currently has has books books on on CREATE CREATE PROCEDURE PROCEDURE member_no member_no == NULL NULL AS AS is is null null BEGIN BEGIN PRINT PRINT 'You 'You must must supply supply aa member member number' number' RETURN RETURN END END /*Sigue*/ /*Sigue*/ Maximiliano Odstrcil - 58

59 Manejo de Mensajes de Error (8) IF IF NOT NOT EXISTS EXISTS (SELECT (SELECT ** FROM FROM member member WHERE WHERE member_no BEGIN BEGIN RAISERROR RAISERROR (50010, (50010, 10, 10, 1) 1) --Member --Member not not found. found. RETURN RETURN END END IF IF EXISTS EXISTS (SELECT (SELECT member_no member_no FROM FROM juvenile juvenile == adult_member_no) adult_member_no) BEGIN BEGIN RAISERROR RAISERROR (500, (500, 10, 10, 1) 1) RAISERROR RAISERROR (50012, (50012, 10, 10, 1) 1) PRINT PRINT 'Remove 'Remove the the juvenile juvenile member(s) member(s) first' first' RETURN RETURN END END /*Sigue*/ /*Sigue*/ Maximiliano Odstrcil - 59

60 Manejo de Mensajes de Error (9) IF IF EXISTS EXISTS (SELECT (SELECT member_no member_no FROM FROM loan loan WHERE WHERE member_no BEGIN BEGIN RAISERROR RAISERROR (50013, (50013, 10, 10, 1) 1) --Books --Books on on loan. loan. RAISERROR RAISERROR (500, (500, 10, 10, 1) 1) --Member --Member cannot cannot be be deleted. deleted. RETURN RETURN END END /*Sigue*/ /*Sigue*/ Maximiliano Odstrcil - 60

61 Manejo de Mensajes de Error (10) BEGIN BEGIN TRANSACTION TRANSACTION IF IF EXISTS EXISTS (SELECT (SELECT member_no member_no FROM FROM reservation reservation WHERE WHERE member_no BEGIN BEGIN PRINT PRINT 'Deleting 'Deleting Loan Loan Reservation Reservation information' information' DELETE reservation DELETE reservation WHERE WHERE member_no END END IF IF EXISTS EXISTS (SELECT (SELECT member_no member_no FROM FROM juvenile juvenile WHERE member_no WHERE BEGIN BEGIN DELETE DELETE juvenile juvenile WHERE WHERE member_no END END ELSE ELSE IF IF EXISTS EXISTS (SELECT (SELECT member_no member_no FROM FROM adult adult WHERE WHERE member_no member_no BEGIN BEGIN DELETE DELETE adult adult WHERE member_no WHERE END END /*Sigue*/ /*Sigue*/ Maximiliano Odstrcil - 61

62 Manejo de Mensajes de Error () GO GO DELETE DELETE member member WHERE WHERE member_no SELECT SELECT 'Member 'Member '' 'has 'has been been removed removed from from the the library library database.' database.' COMMIT COMMIT TRANSACTION TRANSACTION Maximiliano Odstrcil - 62

63 Manejo de Mensajes de Error (12) En MySQL, para implementar los mensajes de error se cuenta con la sentencia LEAVE: DELIMITER DELIMITER // // CREATE CREATE PROCEDURE PROCEDURE borrarorden(ido borrarorden(ido integer) integer) SALIR:BEGIN SALIR:BEGIN DECLARE DECLARE mensaje mensaje VARCHAR(100); VARCHAR(100); IF IF (ido (ido is is null) null) THEN THEN SET SET mensaje mensaje == 'Debe 'Debe especificar especificar una una orden'; orden'; SELECT SELECT mensaje; mensaje; LEAVE LEAVE SALIR; SALIR; END END IF; IF; END END // // DELIMITER DELIMITER ;; Maximiliano Odstrcil - 63

64 Implementación de Desencadenadores Introducción a Triggers Definición de Triggers Ejemplos de Triggers Consideraciones de Perfomance Maximiliano Odstrcil - 64

65 Introducción a Triggers Qué es un Trigger Usos de Triggers Consideraciones de Uso Maximiliano Odstrcil - 65

66 Qué es un Trigger (1) Un desencadenador (trigger) es un tipo especial de SP que se ejecuta automáticamente cuando se modifican los datos de la tabla sobre la que se lo creó (trigger DML): Cuando ocurre una inserción, modificación o borrado de datos en una tabla, y se definió un trigger para la misma y para esa acción, se ejecuta automáticamente, no pudiéndose detener. Hay otros triggers que se ejecutan cuando se emplean sentencias del tipo CREATE, ALTER y DROP (trigger DDL). Maximiliano Odstrcil - 66

67 Qué es un Trigger (2) Un trigger, junto con la sentencia que lo dispara, son tratados como una sola transacción (no hace falta iniciar explícitamente la transacción). Esta transacción se puede volver atrás dentro del cuerpo del trigger. Cualquier sentencia SQL que sea admitida por un SP se puede incluir dentro de un trigger. Maximiliano Odstrcil - 67

68 Usos de Triggers (1) Características: Se usan para mantener la integridad de datos. No devuelven valores de consulta. Su principal ventaja es que manejan complejidad de procesamiento. Maximiliano Odstrcil - 68

69 Usos de Triggers (2) Usos: Cambios en cascada de tablas relacionadas: un trigger para borrado en la tabla Compras puede borrar todas las filas de la tabla LineasCompras (estos cambios se pueden ejecutar más eficientemente empleando integridad referencial en cascada). Forzar integridad de datos de manera compleja: los triggers pueden proteger contra inserciones, borrados y modificaciones incorrectas, e imponer restricciones más complejas que las definidas mediante constraints de tipo CHECK (pueden referenciar columnas en otras tablas). Maximiliano Odstrcil - 69

70 Usos de Triggers (3) Usos: Definición de mensajes de error de usuario: los triggers pueden mostrar mensajes de error definidos por el usuario. Comparar los estados antes y después: los triggers pueden comparar el estado de una modificación de datos antes y después de dicha modificación y luego ejecutar determinadas acciones según esta diferencia. Maximiliano Odstrcil - 70

71 Consideraciones de Uso (1) Los triggers son reactivos mientras que las constraints son proactivas. Los triggers se disparan después de la ejecución de sentencias INSERT, UPDATE o DELETE. Las constraints se verifican primero: Se verifican antes de la sentencia y del trigger. Si se violan las constraints, el trigger nunca se ejecuta. Las tablas pueden tener múltiples triggers del mismo tipo (INSERT, UPDATE o DELETE) sin orden de ejecución. Maximiliano Odstrcil - 71

72 Consideraciones de Uso (2) Los dueños de tablas deben tener permisos para crear, modificar y borrar triggers. No se puede crear triggers en vistas ni en tablas temporales, pero sí las pueden referenciar. No deben retornar ResultSets: Aunque pueden hacerlo, no tiene sentido devolver filas ya que las aplicaciones no lo esperan. Maximiliano Odstrcil - 72

73 Consideraciones de Uso (3) No admiten parámetros. En SQL Server se puede usar la función del sistema para determinar el número de filas afectadas en una transacción. Maximiliano Odstrcil - 73

74 Definición de Triggers Creación de Triggers Triggers INSERT Triggers DELETE Triggers UPDATE Modificación y Borrado de Triggers Maximiliano Odstrcil - 74

75 Creación de Triggers (1) Desde la versión 2005 de SQL Server hay 2 tipos de trigger DML: Triggers AFTER: se ejecutan después que se produce la acción que dispara el trigger. Estos triggers sólo se pueden definir en tablas, y se pueden definir varios en una misma tabla. Triggers INSTEAD OF: se ejecutan en lugar de la acción usual del trigger. Se pueden definir también en vistas (por tabla o vista sólo se puede definir uno. Maximiliano Odstrcil - 75

76 Creación de Triggers (2) Teniendo en cuenta los 2 tipos de triggers DML en SQL Server, si una tabla tiene definidas constraints, triggers del tipo AFTER y del tipo INSTEAD OF: Las constraints se verifican después de la ejecución de los triggers INSTEAD OF, pero antes de la de los triggers AFTER. Si se violan las constraints, las acciones de los triggers INSTEAD OF se vuelven atrás y los triggers AFTER nunca se disparan. Maximiliano Odstrcil - 76

77 Creación de Triggers (3) En MySQL, al momento de definir un trigger DML se puede especificar el momento en el que se disparará: AFTER: el trigger se dispara después que se modifique cada fila. BEFORE: el trigger se dispara antes que se modifique cada fila. Maximiliano Odstrcil - 77

78 Creación de Triggers (4) Los triggers se pueden crear con un asistente o bien con la sentencia CREATE TRIGGER. En la sentencia se especifica: El nombre del trigger La tabla a la cual pertenece el trigger El o los eventos por los que se dispara el trigger El cuerpo del procedimiento Maximiliano Odstrcil - 78

79 Creación de Triggers (5) En SQL Server se puede emplear la cláusula IF UPDATE (columna) para focalizar la acción a una determinada columna, y no a todas las columnas de una tabla. Para crear un trigger se requiere determinados permisos. En SQL Server: Se debe ser miembro de los roles db_owner o sysadmin. Es recomendable que el dbo sea dueño de los objetos subyacentes para no romper la cadena de permisos. Maximiliano Odstrcil - 79

80 Creación de Triggers (6) Los triggers pueden aceptar cualquier sentencia SQL, salvo: Todas las sentencias CREATE Todas las sentencias DROP ALTER (TABLE, DATABASE, PROCEDURE, TRIGGER) GRANT, REVOKE y DENY UPDATE STATISTICS RECONFIGURE LOAD DATABASE y RESTORE DATABASE Maximiliano Odstrcil - 80 VIEW y

81 Triggers INSERT (1) Un trigger INSERT se ejecuta cuando se agregan filas a una tabla sobre la que está creado. Funcionamiento (SQL Server): Cuando se dispara un trigger INSERT (porque se agregaron filas a la tabla sobre la que está creado) también se agregan filas a una tabla llamada inserted. La tabla inserted es una tabla lógica que mantiene una copia de las filas que se agregaron (contiene el log de la actividad de inserción). La tabla inserted permite referenciar sus filas desde el trigger. Maximiliano Odstrcil - 81

82 Triggers INSERT (2) Funcionamiento (SQL Server): Las filas de la tabla inserted siempre son un duplicado de una o más filas en la tabla del trigger. El trigger puede examinar la tabla inserted para determinar las acciones a ejecutar. La actividad (INSERT, UPDATE, DELETE) se registra pero queda ilegible y puede leerse solamente a través de la tabla inserted. Maximiliano Odstrcil - 82

83 Triggers INSERT (3) Se realiza una inserción a una tabla con un trigger INSERT INSERT INSERT loan loan VALUES VALUES (603, 4,, (603, 4,, 123, 123, GETDATE(), GETDATE(), (GETDATE() (GETDATE() ++ 30)) 30)) loan loan isbn isbn copy_no copy_no title_no title_no mem_no mem_no outdate outdate Maximiliano Odstrcil duedate duedate /13/91 02/13/91 02/27/91 02/27/ /14/91 02/14/91 02/28/91 02/28/ /14/91 02/14/91 02/28/91 02/28/91

84 Triggers INSERT (4) Se realiza una inserción a una tabla con un trigger INSERT INSERT INSERT loan loan VALUES VALUES (603, (603, 4, 4,,, 123, 123, GETDATE(), GETDATE(), (GETDATE() (GETDATE() ++ 30)) 30)) loan loan isbn isbn copy_no copy_no title_no title_no mem_no mem_no outdate outdate Maximiliano Odstrcil /13/91 02/13/91 02/14/91 02/13/91 02/15/91 02/13/91 02/14/91 02/14/91 02/14/91 02/14/91 02/14/91 duedate duedate 02/27/91 02/27/91 02/28/91 02/27/91 03/17/91 02/27/91 02/28/91 02/28/91 02/28/91 02/28/91 02/28/91

85 Triggers INSERT (5) Se realiza una inserción a una tabla con un trigger INSERT INSERT INSERT loan loan VALUES VALUES (603, (603, 4, 4,,, 123, 123, GETDATE(), GETDATE(), (GETDATE() (GETDATE() ++ 30)) 30)) loan loan isbn isbn copy_no copy_no title_no title_no mem_no mem_no outdate outdate /13/91 02/13/91 02/14/91 02/13/91 02/15/91 02/14/91 02/13/91 02/14/91 02/14/91 02/14/91 02/14/91 duedate duedate 02/27/91 02/27/91 02/28/91 02/27/91 03/17/91 02/28/91 02/27/91 02/28/91 02/28/91 02/28/91 02/28/91 Se registra la inserción en la tabla inserted inserted inserted Maximiliano Odstrcil /15/91 02/15/91 03/17/91 03/17/91

86 Triggers INSERT (6) Se ejecutan las acciones del trigger USE USE library library CREATE CREATE TRIGGER TRIGGER loan_insert loan_insert ON ON loan loan FOR FOR INSERT INSERT AS AS UPDATE UPDATE cc SET SET on_loan on_loan == 'Y' 'Y' FROM copy c INNER FROM copy c INNER JOIN JOIN inserted inserted II ON ON c.isbn c.isbn == i.sbn i.sbn AND AND c.copy_no c.copy_no == i.copy_no i.copy_no GO GO copy copy isbn isbn copy_no copy_no title_no title_no on_loan on_loan Maximiliano Odstrcil YY YY NN NN

87 Triggers INSERT (7) En el caso de MySQL, para crear un trigger INSERT: DELIMITER DELIMITER // // CREATE TRIGGER CREATE TRIGGER Telefonos_Insert Telefonos_Insert AFTER AFTER INSERT INSERT ON ON Telefonos Telefonos FOR FOR EACH EACH ROW ROW BEGIN BEGIN --- cuerpo cuerpo del del trigger trigger END// END// DELIMITER DELIMITER ;; Si se especifica la opción FOR EACH ROW, el trigger se ejecuta una vez para cada fila, y si no se especifica esta opción, el trigger se ejecuta una única vez sin importar el número de filas. Maximiliano Odstrcil - 87

88 Triggers INSERT (8) Así como en el caso de SQL Server se tenía acceso dentro del cuerpo de trigger a una tabla llamada inserted, en MySQL se tiene acceso a una tabla llamada NEW: En una inserción, la tabla NEW tiene las filas a insertar. En una modificación, la tabla NEW tiene las filas con los valores modificados. La tabla NEW es insensible a mayúsculas. Maximiliano Odstrcil - 88

89 Triggers DELETE (1) Un trigger DELETE se ejecuta cuando se borran filas de una tabla sobre la que está creado. Funcionamiento: Cuando se dispara un trigger DELETE, porque se borraron filas de la tabla sobre la que está creado, estas filas agregan a una tabla llamada deleted. La tabla deleted es una tabla lógica que guarda una copia de las filas que han sido borradas (las filas en la tabla original no existen). Maximiliano Odstrcil - 89

90 Triggers DELETE (2) Funcionamiento: La tabla borrada y la tabla deleted no tienen filas en común. La tabla deleted está siempre en el cache (memoria). La tabla deleted permite referenciar sus filas desde el trigger. Este trigger no se ejecuta con TRUNCATE TABLE. Maximiliano Odstrcil - 90

91 Triggers DELETE (3) Se borran filas de una tabla con un trigger DELETE loan loan isbn isbn copy_no copy_no title_no title_no mem_no mem_no outdate outdate DELETE DELETE loan loan WHERE isbn WHERE isbn == 44 AND AND copy_no copy_no == /13/91 02/13/91 02/13/91 02/13/91 02/14/91 02/14/91 02/14/91 02/14/91 loan loan isbn isbn copy_no copy_no title_no title_no mem_no mem_no outdate outdate Maximiliano Odstrcil /13/91 02/13/91 02/13/91 02/13/91 02/14/91 02/14/91 02/14/91 02/14/91 duedate duedate 02/27/91 02/27/91 02/27/91 02/27/91 02/28/91 02/28/91 02/28/91 02/28/91 duedate duedate 02/27/91 02/27/91 02/27/91 02/27/91 02/28/91 02/28/91 02/28/91 02/28/91

92 Triggers DELETE (4) Se registra el borrado en la tabla deleted loan loan isbn isbn copy_no copy_no title_no title_no mem_no mem_no outdate outdate deleted deleted 44 Maximiliano Odstrcil duedate duedate /13/91 02/13/91 02/27/91 02/27/ /14/91 02/14/91 02/28/91 02/28/ /14/91 02/14/91 02/28/91 02/28/ /13/91 02/13/91 02/27/91 02/27/91

93 Triggers DELETE (5) Se ejecutan las acciones del trigger USE USE library library CREATE CREATE TRIGGER TRIGGER loan_delete loan_delete ON ON loan loan FOR FOR DELETE DELETE AS AS UPDATE UPDATE cc SET SET on_loan on_loan == 'N' 'N' FROM FROM copy copy cc INNER INNER JOIN JOIN deleted deleted dd ON ON c.isbn c.isbn == d.isbn d.isbn AND AND c.copy_no c.copy_no == d.copy.no d.copy.no GO GO copy copy isbn isbn copy_no copy_no title_no title_no on_loan on_loan Maximiliano Odstrcil YY YY N NN NN

94 Triggers DELETE (6) En MySQL, dentro de un trigger DELETE se tiene acceso a una tabla llamada OLD: Tiene las filas antes que sean modificadas o borradas. La tabla OLD es insensible a mayúsculas. Maximiliano Odstrcil - 94

95 Triggers UPDATE (1) Un trigger UPDATE se ejecuta cuando se modifican filas de una tabla sobre la que está creado. Funcionamiento: Cuando se dispara un trigger UPDATE, porque se modificaron filas de la tabla sobre la que está creado, las filas originales se mueven a la tabla deleted, y las filas modificadas se insertan a la tabla inserted. El trigger puede estas 2 tablas, además de la tabla donde se están haciendo las modificaciones. Maximiliano Odstrcil - 95

96 Triggers UPDATE (2) Funcionamiento: En SQL Server se puede definir el trigger para que monitorice los cambios de una columna específica solamente, para esto se usa la sintaxis: IF UPDATE columna. Maximiliano Odstrcil - 96

97 Triggers UPDATE (3) Se modifican filas de una tabla con un trigger UPDATE UPDATE UPDATE member member SET SET member_no member_no == WHERE WHERE member_no member_no == Maximiliano Odstrcil - 97 member member member_no member_no lastname lastname firstname firstname middleinitial middleinitial photograph photograph Anderson Anderson Barr Barr Barr Barr Anderson Anderson Andrew Andrew AA Andrew Andrew RR Bill NULL Bill NULL Bill BB Bill ~~~ ~~~ ~~~ ~~~ ~~~ ~~~

98 Triggers UPDATE (4) Se modifican filas de una tabla con un trigger UPDATE UPDATE UPDATE member member SET SET member_no member_no == WHERE WHERE member_no member_no == member member member_no member_no lastname lastname firstname firstname middleinitial middleinitial photograph photograph Anderson Anderson Barr Barr Barr Barr Anderson Anderson Andrew Andrew AA Andrew Andrew RR Bill NULL Bill NULL Bill BB Bill Se registra la modificación como 2 pasos Maximiliano Odstrcil - 98 deleted deleted 1234 Barr 1234 Barr Andrew Andrew RR ~~~ ~~~ inserted inserted Barr Barr Andrew Andrew RR ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~ ~~~

99 Triggers UPDATE (5) Se ejecutan las acciones del trigger USE USE library library GO GO CREATE CREATE TRIGGER TRIGGER member_update member_update ON ON member member FOR FOR UPDATE UPDATE AS AS IF IF UPDATE UPDATE (member_no) (member_no) BEGIN BEGIN RAISERROR RAISERROR ('Transaction ('Transaction cannot cannot be be processed.\ processed.\ ***** Member number cannot be modified.', ***** Member number cannot be modified.', 10, 10, 1) 1) ROLLBACK TRANSACTION ROLLBACK TRANSACTION member member member_no member_no lastname lastname firstname firstname middleinitial middleinitial photograph photograph Maximiliano Odstrcil - 99 Anderson Anderson Barr Barr Barr Barr Anderson Anderson Andrew Andrew AA Andrew Andrew RR Bill NULL Bill NULL Bill BB Bill ~~~ ~~~ ~~~ ~~~ ~~~ ~~~

100 Triggers UPDATE (6) En MySQL, dentro de un trigger UPDATE se tiene acceso a las tablas OLD y NEW. Maximiliano Odstrcil - 100

101 Modificación y Borrado de Triggers (1) Al igual que un SP, se puede modificar o borrar un trigger. Modificación (SQL Server): Se puede usar un asistente o la sentencia ALTER TRIGGER. Al igual que en un SP, se tiene la resolución de nombres posterior, que permite referenciar objetos todavía inexistentes. ALTER ALTER TRIGGER TRIGGER loan_insert loan_insert ON ON loan loan FOR FOR INSERT INSERT AS AS UPDATE UPDATE copy copy SET SET on_loan on_loan == 'y' 'y' FROM FROM copy copy INNER INNER JOIN JOIN inserted inserted ON ON copy.isbn copy.isbn == inserted.isbn inserted.isbn AND copy.copy_no AND copy.copy_no == inserted.copy_no inserted.copy_no Maximiliano Odstrcil - 101

102 Modificación y Borrado de Triggers (2) Borrado de triggers: Los triggers se pueden borrar empleando un asistente o bien la sentencia DROP TRIGGER nombre_trigger. Cuando la tabla se borra, todos sus triggers asociados se borran también. El permiso para borrar un trigger lo tiene el dueño de la tabla únicamente. DROP DROP TRIGGER TRIGGER loan_insert loan_insert Maximiliano Odstrcil - 102

Bases de Datos Relacionales

Bases de Datos Relacionales Bases de Datos Relacionales PROCEDIMIENTOS ALMACENADOS Preparó: Ismael Castañeda Fuentes Fuentes: Manuales Sybase Manuales SQL Server Manuales Oracle Procedimientos almacenados Un procedimiento almacenado

Más detalles

UNIVERSIDAD DEL ISTMO CAMPUS IXTEPEC LIC. INFORMATICA GRUPO 508 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000

UNIVERSIDAD DEL ISTMO CAMPUS IXTEPEC LIC. INFORMATICA GRUPO 508 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000 Creación de la base de Datos Pulsamos F5 para Actualizar, y una vez posicionados en nuestra base de datos,se crean los scripts que seran soportados por el

Más detalles

MANUALITO MS-SQL SERVER

MANUALITO MS-SQL SERVER MANUALITO MS-SQL SERVER Contenido 1. Crear Store Procedures en MS SQL Server... 1 2. Crear Triggers en MS SQL Server... 5 3. Crear Vistas en MS SQL Server... 9 1. Crear Store Procedures en MS SQL Server

Más detalles

Consultas con combinaciones

Consultas con combinaciones UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden

Más detalles

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL.

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL. 2.6.1.- Concepto de vista. Una vista es una tabla derivada de otras tablas (básicas o virtuales). Una vista se caracteriza porque: Se considera que forma parte del esquema externo. Una vista es una tabla

Más detalles

Laboratorio Informix. Stored Procedures Triggers

Laboratorio Informix. Stored Procedures Triggers Laboratorio Informix Stored Procedures Triggers Repaso A partir del ER, hicimos las tablas de la base de datos. Creamos en MySql las base de datos y las tablas Hicimos una aplicación que se comunica con

Más detalles

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento Laboratorio Informix Stored Procedures Triggers Repaso A partir del ER, hicimos las tablas de la base de datos. Creamos en MySql las base de datos y las tablas Hicimos una aplicación que se comunica con

Más detalles

Administradores de Bases de Datos Studio.NET 2005 Y SQL Server 2005. Barrios

Administradores de Bases de Datos Studio.NET 2005 Y SQL Server 2005. Barrios Curso de SQL Server 2005 Developer e Introducción a VB.net Práctica No.1. Escribiendo y ejecutando código transact sql desde el Query Analyzer EELLAA BBO RRAADDO PPO RR: FFEECCHHAA DDEE EELLAABB OO RR

Más detalles

6. PROGRAMACIÓN CON TRANSACT-SQL

6. PROGRAMACIÓN CON TRANSACT-SQL 6. PROGRAMACIÓN CON TRANSACT-SQL 6.1. Introducción. " # 6.2. Declaración y asignación de variables. $ " % & ' # ( % ) # (( ) *$+,$ " $ # &-' $ $. $" / # 0 1$,$2 DECLARE @limite money SET @limite = 10 SELECT

Más detalles

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) El lenguaje de consulta estructurado o SQL (por sus siglas en inglés Structured Query Language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite

Más detalles

Base de datos Procedimientos Almacenados y Funciones

Base de datos Procedimientos Almacenados y Funciones Base de datos Procedimientos Almacenados y Eduardo Saavedra A. Universidad Nacional Andrés Bello 4 de noviembre de 2008 Contenidos Ventajas 1 Ventajas 2 3 4 5 Conceptos Ejemplo 6 Procedimiento Almacenado

Más detalles

- Bases de Datos - - Diseño Físico - Luis D. García

- Bases de Datos - - Diseño Físico - Luis D. García - Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo

Más detalles

GALA CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) No Consultas. Definiciones Transacciones ( L33 )

GALA CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) No Consultas. Definiciones Transacciones ( L33 ) Definiciones Transacciones ( L33 ) CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) Transacciones En Microsoft ( L33 ) MANUAL (REQUIERE PROGRAMACION) AUTOMATICO (COM+ O DTM) DTM (DISTRIBUTED TRANSACTION

Más detalles

Sub consultas avanzadas

Sub consultas avanzadas Sub consultas avanzadas Objetivo Después de completar este capítulo conocerá lo siguiente: Escribir una consulta de múltiples columnas Describir y explicar el comportamiento de las sub consultas cuando

Más detalles

Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER. GUÍA 2 Pág. 1

Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER. GUÍA 2 Pág. 1 Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER GUÍA 2 Pág. 1 I. OBJETIVOS Utilizar procedimientos almacenados Conocer el uso de los cursores

Más detalles

Un ejemplo teórico de trigger podría ser éste:

Un ejemplo teórico de trigger podría ser éste: 9. TRIGGERS EN LA BASE DE DATOS Un trigger (disparador sería la traducción técnica) es un bloque PLSQL que se ejecuta implícitamente cuando ocurre un evento y pueden ser de base de datos o de aplicación.

Más detalles

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1 UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEM LABORATORIO DE BES DE DATOS 1 Prof. Marco Aedo Práctica de Laboratorio Nº 6 I. OBJETIVOS

Más detalles

Tema: PROCEDIMIENTOS ALMACENADOS.

Tema: PROCEDIMIENTOS ALMACENADOS. Base de datos I. Guía 9 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: PROCEDIMIENTOS ALMACENADOS. Objetivo Específico Conocer la sintaxis de un procedimiento almacenado

Más detalles

Oracle 12c DISEÑO Y PROGRAMACIÓN

Oracle 12c DISEÑO Y PROGRAMACIÓN Oracle 12c Se estudia el servidor de bases de datos empresarial Oracle 12c, centrándose especialmente en el punto de vista de un diseñador o programador de bases de datos, pero explicando también cómo

Más detalles

Implementación de Procedimientos Almacenados

Implementación de Procedimientos Almacenados Implementación de Procedimientos Almacenados Contenido Introducción 1 Introducción a los procedimientos almacenados 2 Creación, ejecución, modificación y eliminación de procedimientos almacenados 10 Utilización

Más detalles

Laboratorio de Bases de Datos

Laboratorio de Bases de Datos Laboratorio de Bases de Datos Unidad V Departamento de Electricidad, Electrónica y Computación Facultad de Ciencias Exactas y Tecnología Universidad Nacional de Tucumán Primer Semestre 2016 Introducción

Más detalles

Implementación de funciones definidas por el usuario

Implementación de funciones definidas por el usuario Implementación de funciones definidas por el usuario Contenido Introducción 1 Qué es una función definida por el usuario? 2 Definición de funciones definidas por el usuario 3 Ejemplos de funciones definidas

Más detalles

Estándar de desarrollo de aplicaciones del Govern de les Illes Balears

Estándar de desarrollo de aplicaciones del Govern de les Illes Balears Estándar de desarrollo de aplicaciones del Govern de les Illes Balears BASE DE DATOS Versión 5.0 Fecha Revisión: 28/05/09 Índice de contenidos INTRODUCCIÓN... 3 NOMENCLATURA DE BASE DE DATOS... 4 2.1.

Más detalles

abacformacio@abacformacio.com 1

abacformacio@abacformacio.com 1 Cu Oracle 10gg Estudia el servidor de bases de datos Oracle 10g desde el punto de vista de un diseñador y programador de bases de datos, prestando atención a los objetos que puede crear, como tablas, consultas

Más detalles

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008 Base de Datos I SQL PROCEDURAL Triggers y Stored Procedures Ing. Gustavo A. Correa Reina UNCPBA 2008 SQL Procedural Posibilita el uso de código procedural conjuntamente con sentencias SQL que son almacenadas

Más detalles

Práctica A: Trabajo con subconsultas

Práctica A: Trabajo con subconsultas Trabajo con Subconsultas 1 Práctica A: Trabajo con subconsultas Objetivos Después de realizar esta práctica, el alumno será capaz de: Usar una subconsulta como tabla derivada Usar una subconsulta como

Más detalles

Restricciones (constraints) FOREIGN KEY

Restricciones (constraints) FOREIGN KEY INSTITUTO DE EDUCACION TECNICA PROFESIONAL INTEP 1 Restricciones (constraints) FOREIGN KEY InnoDB también soporta restricciones de claves foráneas. La sintaxis para definir una restricción de clave foránea

Más detalles

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle: PL/SQL (Procedural Language/Structured Query Language) PL/SQL es el lenguaje de programación que proporciona Oracle para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los

Más detalles

Base de datos relacional

Base de datos relacional Base de datos relacional Una base de datos relacional es una base de datos que cumple con el modelo relacional, el cual es el modelo más utilizado en la actualidad para modelar problemas reales y administrar

Más detalles

A.1. Definiciones de datos en SQL

A.1. Definiciones de datos en SQL A.1. Definiciones de datos en SQL Las Sentencias del lenguaje de definición de datos (DDL) que posee SQL operan en base a tablas. Las Principales sentencias DDL son las siguientes: CREATE TABLE DROP TABLE

Más detalles

Microsoft SQL Server 2005

Microsoft SQL Server 2005 Microsoft SQL Server 2005 Módulo 1: Diseño y programación Estudia el servidor de bases de datos SQL Server 2005 desde el punto de vista de un diseñador y programador de bases de datos, prestando atención

Más detalles

8 SQL SERVER 2008 RA-MA

8 SQL SERVER 2008 RA-MA ÍNDICE Capítulo 1. Características, novedades y entorno de trabajo... 17 1.1 Novedades en SQL Server 2008... 17 1.2 Instalación de Microsoft SQL Server 2008... 19 1.3 Versiones de Microsoft SQL Server

Más detalles

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006 Bases de Datos SQL 1 SQL Jorge Pérez R. Universidad de Talca, II Semestre 2006 Bases de Datos SQL 2 SQL + Procedural La mayoría de los DBMS actuales permiten extensiones de SQL para la creación de bloques

Más detalles

Diseño de bases de datos

Diseño de bases de datos Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla Avda Reina Mercedes sn. 41012 Sevilla TlfFax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es Diseño

Más detalles

Tema: Disparadores Parte I.

Tema: Disparadores Parte I. Base de datos I. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: Disparadores Parte I. Objetivo Utilizar la sintaxis de un disparador en SQL Server Implementar transacciones

Más detalles

Uso de las herramientas de consulta de Transact-SQL

Uso de las herramientas de consulta de Transact-SQL Uso de las herramientas de consulta de Transact-SQL Contenido Introducción 1 Analizador de consultas SQL 2 Uso de la herramienta Examinador de objetos en el Analizador de consultas SQL 3 Uso de plantillas

Más detalles

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL. GUIA DE LABORATORIO # 5 Nombre de la Practica: Manipulación de datos Lugar de ejecución: Centro de Computo MATERIA: Base de Datos II CICLO: 02-2012 I. OBJETIVOS ESPECIFICOS Qué el estudiante: Manipule

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE IGNATURA NOMBRE DE LA IGNATURA LSC 2009-2 12001 Administración de Bases de Datos PRÁCTICA No. 5 LABORATORIO DE NOMBRE DE LA PRÁCTICA

Más detalles

Bases de Datos / Elementos de Bases de Datos 2011. Que es un Stored Procedure? Stored Procedures: Ventajas

Bases de Datos / Elementos de Bases de Datos 2011. Que es un Stored Procedure? Stored Procedures: Ventajas Bases de Datos / Elementos de Bases de Datos 2011 Stored Procedures, Triggers y Transacciones en MySQL Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1 Que es un Stored

Más detalles

9- Procedimientos almacenados.

9- Procedimientos almacenados. Objetivos: 9- Procedimientos almacenados. Crear procedimientos almacenados para ser usados en el desarrollo de software. Recursos: Microsoft SQL Server Management Studio Guías prácticas. Base de datos

Más detalles

T12 Vistas y tablas temporales

T12 Vistas y tablas temporales 1 de 9 17/05/2013 14:01 Lecciones SQL > T12 Vistas y tablas temporales En esta sesión vamos a mostrar dos tipos de objetos de uso habitual en cualquier SGBD: las vistas y las tablas temporales. Mientras

Más detalles

Restricciones de Integridad

Restricciones de Integridad Restricciones de Integridad Amparo López Gaona México, D.F. Semestre 2000-I Restricciones de Integridad Las principales restricciones de integridad que pueden indicarse son: La clave primaria. Claves candidatas.

Más detalles

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA ÍNDICE CAPÍTULO 1. CARACTERÍSTICAS, NOVEDADES Y ENTORNO DE TRABAJO...17 1.1 NOVEDADES EN SQL SERVER 2008 R2...17 1.2 INSTALACIÓN DE MICROSOFT SQL SERVER 2008 R2...18 1.3 VERSIONES DE MICROSOFT SQL SERVER

Más detalles

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h Creación De Índices (L32) UNA TABLA PUEDE CONTENER VARIOS ÍNDICES SQL SERVER CREA AUTOMATICÁMENTE ÍNDICES ÚNICOS PARA ASEGURAR LOS CONSTRAINTS DE PRIMARY KEY Y UNIQUE EL ÍNDICE POR DEFECTO PARA LA CLAVE

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 9. Reglas de Integridad FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 9. Reglas de Integridad 1.- Introducción. 2.- Claves Primarias. 3.- Regla de Integridad de Entidades. 4.- Claves Ajenas. 5.- Regla de Integridad

Más detalles

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros La sentencia INSERT permite agregar nuevas filas de datos a las tablas existentes. Está sentencia

Más detalles

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN Tipos de datos SQL admite una variada gama de tipos de datos para el tratamiento de la información contenida en las tablas, los tipos

Más detalles

Sistemas de Datos Curso: Ernesto Chinkes. Subconsultas Stored Procedures - Triggers

Sistemas de Datos Curso: Ernesto Chinkes. Subconsultas Stored Procedures - Triggers Subconsultas Stored Procedures - Triggers Subconsultas Concepto Ubicación En el SELECT En el FROM En el WHERE Operadores IN ANY-ALL EXISTS Concepto Son sentencias SELECT que aparecen dentro de otra consulta

Más detalles

CONSULTAS BASICAS EN SQL SERVER

CONSULTAS BASICAS EN SQL SERVER CONSULTAS BASICAS EN SQL SERVER CONSULTAS DE SELECCION Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos, esta información es devuelta

Más detalles

Tema 4. Manipulación de datos con SQL

Tema 4. Manipulación de datos con SQL Tema 4 Manipulación de datos con SQL Índice Tema 4 1. Inserción de registros. Consultas de datos anexados. 2. Modificación de registros. Consultas de actualización. 3. Borrado de registros. Consultas de

Más detalles

1. DML. Las subconsultas

1. DML. Las subconsultas 1.1 Introducción 1. DML. Las subconsultas Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la lista de selección, en la cláusula WHERE o HAVING, originalmente no se

Más detalles

ADMINISTRACIÓN DE BASE DE DATOS

ADMINISTRACIÓN DE BASE DE DATOS SQL SERVER T-SQL QUERY s es ADMINISTRADOR GRÁFICO SGBD Elementos objetos Tablas Procedimientos Triggers Funciones Usuarios Permiso Roles Contraseñas Programas DTS (Data Transfer System) Exportación e Importación

Más detalles

CURSO DE SQL SERVER 2005

CURSO DE SQL SERVER 2005 CURSO DE SQL SERVER 2005 Una vez finalizado el curso, el alumno estará preparado para: Instalar y configurar SQL Server 2005. Comprender los conceptos más importantes del diseño de bases de datos. Crear

Más detalles

Curso Online de Microsoft

Curso Online de Microsoft Curso Online de Microsoft SQL Server Presentación: Estudia el servidor de bases de datos empresarial Microsoft SQL Server 2005 centrándose especialmente en el punto de vista de un diseñador o programador

Más detalles

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported

Aviso Legal El presente libro electrónico se distribuye bajo Attribution-NonCommercial- NoDerivs 3.0 Unported PROGRAMACIÓN ORIENTADA A OBJETOS APLICADA A BASES DE DATOS Por LAURA NOUSSAN LETTRY BrowserSQL MySQL Workbench en Linux (Abril 2015, Mendoza) Aviso Legal El presente libro electrónico se distribuye bajo

Más detalles

Tema: USO DE COMBINACIONES EXTERNAS.

Tema: USO DE COMBINACIONES EXTERNAS. Base de datos I. Guía 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: USO DE COMBINACIONES EXTERNAS. Objetivo Específico Definir las combinaciones externas Conocer el uso

Más detalles

BASES DE DATOS SQL MÁS S DE SQL (DML) OPERADOR UNION (L30) <SELECT1> UNION <SELECT2> UNION <SELECTN> Copyright 2006, 2007 Instituto Gala

BASES DE DATOS SQL MÁS S DE SQL (DML) OPERADOR UNION (L30) <SELECT1> UNION <SELECT2> UNION <SELECTN> Copyright 2006, 2007 Instituto Gala OPERADOR UNION (L30) UNION UNION OPERADOR INTERSECCION (L31) OPERADOR RELACIONAL INTERSECCION, DEVUELVE REGISTROS CON CAMPOS COMUNES. LAS TABLAS INVOLUCREADAS DEBEN TENER

Más detalles

GUIA DE LABORATORIO N 9 B. (000Webhost Php- Para desarrollar en casa)

GUIA DE LABORATORIO N 9 B. (000Webhost Php- Para desarrollar en casa) GUIA DE LABORATORIO N 9 B (000Webhost Php- Para desarrollar en casa) Objetivo: Crear servicios web utilizando la arquitectura REST, para obtener información desde un servidor web gratuito que se conecta

Más detalles

Implementación de desencadenadores

Implementación de desencadenadores Implementación de desencadenadores Contenido Introducción 1 Introducción a los desencadenadores 2 Definición de desencadenadores 10 Funcionamiento de los desencadenadores 16 Ejemplos de desencadenadores

Más detalles

Laboratorio de Bases de Datos

Laboratorio de Bases de Datos Laboratorio de Bases de Datos Unidad V Departamento de Electricidad, Electrónica y Computación Facultad de Ciencias Exactas y Tecnología Universidad Nacional de Tucumán Primer Semestre 2018 Introducción

Más detalles

Procedimientos, Funciones, Trigger y Cursores en ORACLE

Procedimientos, Funciones, Trigger y Cursores en ORACLE Procedimientos, Funciones, Trigger y Cursores en ORACLE PROCEDIMIENTOS ALMACENADOS Un procedimiento almacenado es un conjunto de instrucciones en PL/SQL, que pueden ser llamados usando el nombre que se

Más detalles

Curso SQL Nivel Avanzado 1. Miguel Jurado García

Curso SQL Nivel Avanzado 1. Miguel Jurado García Curso SQL Nivel Avanzado 1 Miguel Jurado García Temario Sesión 1: 1- Elementos de Sintaxis Uso de Variables Collation y las Fechas Construcción de Sentencias Dinámicas 2- SQL Server Management Studio Filtrado

Más detalles

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

BASE DE DATOS QUÉ ES UNA BASE DE DATOS? BASE DE DATOS BASE DE DATOS QUÉ ES UNA BASE DE DATOS? Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. Actualmente la mayoría de

Más detalles

Acronis License Server. Guía del usuario

Acronis License Server. Guía del usuario Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE

Más detalles

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas. Vistas. El resultado de una consulta en el caso de SQL siempre es una tabla, ésta se puede hacer permanente dentro de la base de datos. En este caso se dice que esta tabla resultado es una vista o una

Más detalles

BASES DE DATOS AVANZADAS Transacciones en MYSQL

BASES DE DATOS AVANZADAS Transacciones en MYSQL Ejercicio Transacciones mysql> CREATE TABLE innotest (campo INT NOT NULL PRIMARY KEY) TYPE = InnoDB; Query OK, 0 rows affected (0.10 sec) mysql> INSERT INTO innotest VALUES(1); Query OK, 1 row affected

Más detalles

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE

LAS SUBCONSULTAS SQL SERVER 2005. Manual de Referencia para usuarios. Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS SQL SERVER 2005 Manual de Referencia para usuarios Salomón Ccance CCANCE WEBSITE LAS SUBCONSULTAS Una subconsulta es una consulta que aparece dentro de otra consulta o subconsultas, en

Más detalles

AUDITORÍA DE BASE DE DATOS MICROSOFT SQL SERVER 2014 WALTER JAVIER NAPÁN TARMEÑO

AUDITORÍA DE BASE DE DATOS MICROSOFT SQL SERVER 2014 WALTER JAVIER NAPÁN TARMEÑO AUDITORÍA DE BASE DE DATOS MICROSOFT SQL SERVER 2014 WALTER JAVIER NAPÁN TARMEÑO Auditoría de Bases de Datos Temas: 1. Introducción a la auditoría de SQL Server 2. Herramientas de auditoría de SQL Server

Más detalles

PROCEDIMIENTOS ALMACENADOS. CREATE PROCEDURE nombreprocedimiento [@parametro1 tipodato [=valordefecto]][,...]

PROCEDIMIENTOS ALMACENADOS. CREATE PROCEDURE nombreprocedimiento [@parametro1 tipodato [=valordefecto]][,...] PROCEDIMIENTOS ALMACENADOS CREATE PROCEDURE nombreprocedimiento [@parametro1 tipodato [=valordefecto]][,...] SENTENCI.. forma de llamarlo [exec] nombreprocedimiento [valorparametro1][,valor paremtro2...]

Más detalles

LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER

LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER LABORATORIO 10. ADMINISTRACIÓN DE COPIAS DE SEGURIDAD EN SQL SERVER GUÍA DE LABORATORIO Nº 1O Actividad de Proyecto No. 12: ESTABLECER PLANES DE RESGUARDO, RESTAURACION Y CONTINGENCIA. Estructura de contenidos.

Más detalles

SQL Server 2000. FEMEPA SQL Server 2000

SQL Server 2000. FEMEPA SQL Server 2000 FEMEPA Partes del SQL El lenguaje SQL está compuesto de varios sub-lenguajes, entre los cuales destacan los tres siguientes: DML. Lenguaje de definición de datos. Todas las sentencias de manipulación de

Más detalles

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo. CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia

Más detalles

Programación de Consultas SQL ADO.Net LDP3501-2011 / DUOC-AV

Programación de Consultas SQL ADO.Net LDP3501-2011 / DUOC-AV En esta guía: Programación de Consultas SQL ADO.Net LDP3501-2011 / DUOC-AV Procedimientos Almacenados... 1 Procedimientos Almacenados (Stored Procedures)... 1 Sintaxis de Procedimientos Almacenados...

Más detalles

FIREBIRD: SQL PROCEDIMENTAL (PSQL)

FIREBIRD: SQL PROCEDIMENTAL (PSQL) FIREBIRD: SQL PROCEDIMENTAL (PSQL) Vicente Tejero Trueba Pag 1 IES Pedro Espinosa FIREBIRD: SQL PROCEDIMENTAL (PSQL) 1.- INTRODUCCION...1 2.- EXTENSIONES DEL LENGUAJE...2 2.1.- Terminadores...2 2.2.- Variables...3

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE IGNATURA NOMBRE DE LA IGNATURA LSC 2009-2 12001 Administración de Bases de Datos PRÁCTICA No. 5 LABORATORIO DE NOMBRE DE LA PRÁCTICA

Más detalles

Tema 1. Bases de datos activas

Tema 1. Bases de datos activas 18 de marzo de 2002 1 1. Introducción 2. El modelo evento-condición-acción Definición y uso de disparadores en Oracle Características de las reglas activas 3. Propiedades de las reglas activas 4. Aplicaciones

Más detalles

Nociones de performance

Nociones de performance Maestría en Bioinformática Bases de Datos y Sistemas de Información Nociones de performance Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy Agenda Conceptos Índices Optimizador Planes de acceso

Más detalles

Base de Datos Práctica 1.

Base de Datos Práctica 1. Base de Datos Práctica 1. Objetivo: Introducción al Mysql, aprender a identificar los errores más comunes en la creación de las bases de datos para su solución, conocer los diferentes tipos de datos y

Más detalles

TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008

TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008 TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008 ESTRUCTURA DEL SEMINARIO Modulo 1: Crear y administrar una base de datos SQL Server Métodos para crear una base de datos SQLServer.

Más detalles

Índice. iii. Objetivos... 24

Índice. iii. Objetivos... 24 Índice Objetivos... 2 1: Modelación de base de datos... 2 2: Ejemplo de un caso de negocios... 3 2.1: Requerimientos de la aplicación... 4 2.2: Características de flujo de información... 4 2.3: Diagrama

Más detalles

Trabajos de Ampliación. Bases de datos NoSQL.

Trabajos de Ampliación. Bases de datos NoSQL. BASES DE DATOS NoSql Son bases de datos pensadas para aplicaciones que hagan un uso intensivo de la misma. Estas bases de datos permiten una mayor flexibilidad y facilidad a la hora de introducir los datos

Más detalles

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas LENGUAJE SQL Que es SQL? SQL es un estándar un lenguaje estructurado para consultas SQL te permite acceder y manejar bases de datos SQL es un Estándar (ANSI American National Standards Institute) Que puede

Más detalles

Otros objetos de Base de Datos

Otros objetos de Base de Datos Maestría en Bioinformática Bases de Datos y Sistemas de Información Otros objetos de Base de Datos Ing. Alfonso Vicente, PMP alfonso.vicente@logos.com.uy Agenda Secuencias Triggers Vistas Código almacenado

Más detalles

Oracle básico (IV): Programación en PL/SQL

Oracle básico (IV): Programación en PL/SQL Oracle básico (IV): Programación en PL/SQL El lenguaje de programación de Oracle, llamado PL/SQL, es un lenguaje portable, procedural y de transacción muy potente y de fácil manejo, con las siguientes

Más detalles

Creación y administración de grupos de dominio

Creación y administración de grupos de dominio Creación y administración de grupos de dominio Contenido Descripción general 1 a los grupos de Windows 2000 2 Tipos y ámbitos de los grupos 5 Grupos integrados y predefinidos en un dominio 7 Estrategia

Más detalles

Bases de Datos Relacionales

Bases de Datos Relacionales 2da. Parte Bases de Datos Relacionales Objetivos de la Clase SQL. Tipos de sentencias SQL Describir los tipos de dato que se pueden utilizar al especificar la definición de columnas. Sentencias SQL Select.

Más detalles

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.

Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra. Unidad IV: Seguridad 4.1 Tipos de usuario El objetivo de la creación de usuarios es establecer una cuenta segura y útil, que tenga los privilegios adecuados y los valores por defecto apropiados Para acceder

Más detalles

INSTITUCIÓN EDUCATIVA GABRIEL GARCIA MÁRQUEZ BASE DE DATOS. DESARROLLO DE SOFTWARE Página 1 de 28 SQL SQL

INSTITUCIÓN EDUCATIVA GABRIEL GARCIA MÁRQUEZ BASE DE DATOS. DESARROLLO DE SOFTWARE Página 1 de 28 SQL SQL Página 1 de 28 es un estandar para accesar y manejar bases de datos Este tutorial te va a mostrar como manejar bases de datos en My, Server, MS Access, Oracle, Sybase, DB2 y otras bases de datos Que es?

Más detalles

Recuperación del Sistema

Recuperación del Sistema Recuperación del Sistema 1 Andrés Moreno S. Diagrama de Transición de Estados COMMIT y ROLLBACK puntos de confirmación BEGIN activo READ / WRITE END parcialmente confirmado COMMIT confirmado fallo fallo

Más detalles

Procedimientos almacenados con parametros de salida

Procedimientos almacenados con parametros de salida Procedimientos almacenados con parametros de salida CREATE PROC[EDURE] [ {@parámetro tipodatos} [= predeterminado] [OUTPUT] ] [,...n] [WITH { RECOMPILE ENCRYPTION } ] AS Sentencias

Más detalles

SQL (Structured Query Language)- DML

SQL (Structured Query Language)- DML SQL (Structured Query Language)- DML Data Manipulation Language: Data Definition Language: Control Commands: Authorization Commands: SELECT, UPDATE, INSERT, DELETE CREATE: TABLE, INDEX, VIEW DROP: TABLE,

Más detalles

PRACTICA DE ADMINISTRACION DE BASES DE DATOS

PRACTICA DE ADMINISTRACION DE BASES DE DATOS Depto. De Organización y Estructura de la Información Curso 2003/2004 Pág. 1 PRACTICA DE ADMINISTRACION DE BASES DE DATOS Una entidad bancaria gestiona datos relativos a operaciones bancarias de sus clientes

Más detalles

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h Creación B.D. y Constraints

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h Creación B.D. y Constraints Crear Una Base De Datos (L12) A TRAVÉS DE LA CONSOLA DE ADMINISTRACIÓN A TRAVÉS DEL ASISTENTE DE BASES DE DATOS (DATABASE WIZARD) A TRAVÉS DE COMANDOS SQL (CREATE DATABASE, CREATE TABLE) Crear Un Grupo

Más detalles

PRÁCTICA III. DISPARADORES EN SQL (II)

PRÁCTICA III. DISPARADORES EN SQL (II) PRÁCTICA III. DISPARADORES EN SQL (II) MODELOS AVANZADOS DE BASES DE DATOS CURSO 2000/2001 Objetivo Conocer mejor los disparadores en SQL. Se verá uno de los principales inconvenientes que se presentan

Más detalles

MySQL: Guía de Referencia

MySQL: Guía de Referencia Instituto Tecnologico Superior de Coatzacoalcos (ITESCO). MySQL: Guía de Referencia Farid Alfredo Bielma Lopez fbielma@fbielma.org http://fbielma.org/course/fbielma/curso_mysql.pdf Resumen del curso Algunas

Más detalles

Curso de PHP con MySQL Gratis

Curso de PHP con MySQL Gratis Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este

Más detalles

SEPARAR Y ADJUNTAR UNA BASE DE DATOS. Separar una base de datos

SEPARAR Y ADJUNTAR UNA BASE DE DATOS. Separar una base de datos SEPARAR Y ADJUNTAR UNA BASE DE DATOS Separar una base de datos Al separar una base de datos la está eliminando de la instancia de SQL Server, pero la deja intacta en sus archivos de datos y en los archivos

Más detalles

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO LENGUAJE DE CONSULTA ESTRUCTURADO - SQL 1. TIPOS DE DATOS 2. COMANDOS DDL 2.1 Créate 2.2 Drop 2.3 Alter 3. COMANDOS DML 3.1 Select 3.2 Insert 3.3 Update 3.4 Delete 4. CLAUSULAS 4.1 From 4.2 Where 4.3 Having

Más detalles

Enlaces relacionados: http://otn.oracle.com/tech/pl_sql/index.html

Enlaces relacionados: http://otn.oracle.com/tech/pl_sql/index.html 1.INTRODUCCION PL/SQL (Procedural Language ó Programming Language, según distintas fuentes, aunque la oficial es la primera) es el lenguaje utilizado por Oracle como extensión al SQL, y que nos va a permitir

Más detalles

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS Objetivo: El propósito de esta guía es indicarle como configurar un entorno moodle de prácticas en

Más detalles