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 llamada (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 usa 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

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

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

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

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

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

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

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

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

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

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

PROCEDIMIENTOS ALMACENADOS Y TRIGGERS. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007

PROCEDIMIENTOS ALMACENADOS Y TRIGGERS. Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007 PROCEDIMIENTOS ALMACENADOS Y TRIGGERS Bases de Datos Ingeniería de Sistemas y Computación Universidad Nacional de Colombia 2007 Procedimientos almacenados Un procedimiento almacenado es un conjunto de

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

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

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

Módulo II: Introducción

Módulo II: Introducción Módulo II: Introducción Bases de Datos Trabajo con un SGBDR Creación de Bases de Datos Maximiliano Odstrcil - 1 Bases de Datos Tipos de Bases de Datos Objetos de Bases de Datos Maximiliano Odstrcil - 2

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

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

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

Tema 1. Bases de datos activas

Tema 1. Bases de datos activas Tema 1. Bases de datos activas Diseño de Sistemas de Bases de Datos Merche Marqués 18 de marzo de 2002 Índice 1. Introducción 1 2. El modelo evento condición acción 1 2.1. Definición y uso de disparadores

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

Bases de Datos / Elementos de Bases de Datos 2015

Bases de Datos / Elementos de Bases de Datos 2015 Bases de Datos / Elementos de Bases de Datos 2015 Stored Procedures, Triggers y Transacciones en MySQL Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1 Stored Procedures

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

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

Integridad en sistemas de bases de datos relacionales

Integridad en sistemas de bases de datos relacionales Integridad en sistemas de bases de datos relacionales Competencias específicas a adquirir Asegurar la integridad de los datos mediante la aplicación de los mecanismos soportados por los SGBDs. Identificar

Más detalles

Tema 33. El lenguaje SQL

Tema 33. El lenguaje SQL Tema 33. El lenguaje SQL Introducción... 1 Modos de uso... 2 Ejecución de las sentencias SQL... 2 Instrucciones DDL Data Definition Language-... 3 Instrucciones DML Data Manipulation Language-... 4 Instrucciones

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

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

Base de Datos Nortwind

Base de Datos Nortwind Base de Datos Nortwind Resumen del desarrollo de la práctica. Analizar la información almacenada en la base de datos NorthWind haciendo uso de las distintas funciones de MS-SQL server. Desarrollo de la

Más detalles

Haga clic para PostgreS cambiar el estilo

Haga clic para PostgreS cambiar el estilo Taller # 1 Uso y Manejo l Sistema Gestor Bases Datos PostgreSQL Luis García Computación ldgarc@gmail.com Contenido - Creación Tablas (Create Table...) ( Check Foreign Keys ) - Inserción Datos (Insert Into...)

Más detalles

LENGUAJE ESTRUCTURADO DE CONSULTAS SQL (2)

LENGUAJE ESTRUCTURADO DE CONSULTAS SQL (2) LENGUAJE ESTRUCTURADO DE CONSULTAS SQL (2) N O T A S D E L A M A T E R I A B A S E S D E D A T O S I L I C E N C I A T U R A E N C I E N C I A S D E L A C O M P U T A C I Ó N U N I V E R S I D A D D E

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

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

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos Grupo de Bases de Datos Avanzadas Univ. Carlos III de Madrid Índice V.1 Introducción V.1 SQL como Lenguaje de V.1.1 Definición del esquema V.1.2 Evolución del esquema V.2 SQL como Lenguaje de Manipulación

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

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

Tema: Combinación de tablas

Tema: Combinación de tablas Base de datos I. Guía 4 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: Combinación de tablas Objetivo Específico Utilice alias en los nombres de las tablas. Combine datos

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

Í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

CURSO TRANSACT SQL MANUAL TÉCNICO CURSO TRANSACT SQL MANUAL TÉCNICO 1

CURSO TRANSACT SQL MANUAL TÉCNICO CURSO TRANSACT SQL MANUAL TÉCNICO 1 CURSO TRANSACT SQL MANUAL TÉCNICO CURSO TRANSACT SQL MANUAL TÉCNICO 1 Introducción... 3 Consultas Básicas... 3 Consultas de Selección... 3 Consultas de Modificación... 7 Consultas de Combinación... 9 Consultas

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

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

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo:

Permite definir cada relación que pertenece a la base de datos relacional, incluyendo: TEMA 7.- EL ESTANDAR SQL. El Sublenguaje de Manipulación. El Sublenguaje de Definición. El Sublenguaje de Control. El Sublenguaje Huésped. 1. El Sublenguaje de Manipulación. (Se verá en la clase de problemas)

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

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

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

LENGUAJE SQL. Bárbula, Febrero de 2007. Historia y Definición

LENGUAJE SQL. Bárbula, Febrero de 2007. Historia y Definición LENGUAJE Integrantes: Ceci Vanessa Paredes Oswaldo Rodríguez Aury Bárbula, Febrero de 2007 : Es una herramienta para organizar, gestionar y recuperar datos almacenados en una base de datos. funciona con

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

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

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

ÍNDICE INTRODUCCIÓN...13

ÍNDICE INTRODUCCIÓN...13 ÍNDICE INTRODUCCIÓN...13 CAPÍTULO 1. EL MODELO RELACIONAL. LENGUAJE SQL...17 1.1 INTRODUCCIÓN AL MODELO RELACIONAL...17 1.2 RELACIONES...19 1.2.1 Definición formal de relación...21 1.2.2 Propiedades y

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

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

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

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

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc).

LENGUAJE SQL. En Mysql se utiliza un subconjunto de SQL (update, insert into, delete, select, truncate,etc). LENGUAJE SQL Un manejador de base de datos debe de contener lenguajes que permitan definir el modelos de los datos, este mismo es que permite crear la estructura de la base de datos. Lenguaje de Definicion

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

Integridad y Seguridad en los sistemas de Bases de Datos. Javier Escobar Luis Ramirez Omar Asprino

Integridad y Seguridad en los sistemas de Bases de Datos. Javier Escobar Luis Ramirez Omar Asprino Integridad y Seguridad en los sistemas de Bases de Datos Javier Escobar Luis Ramirez Omar Asprino Contenido 1. Restricciones de Integridad 1. Claves Primarias 2. Restricciones de los Dominios 3. Integridad

Más detalles

SINTAXIS DE SQL-92. ::= CREATE SCHEMA [ ... ]

SINTAXIS DE SQL-92. <definición de esquema >::= CREATE SCHEMA <cláusula de nombre de esquema> [ <elemento de esquema>... ] SINTAXIS DE SQL-92 Introducción: Se presenta brevemente un resumen de la sintaxis de SQL según el estándar ISO 9075 (SQL- 92), dividido en tres partes: - Lenguaje de Definición de Daots (LDD), - Lenguaje

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

BASES DE DATOS SQL MÁS S DE SQL (DML) OPERADOR UNION (L30) UNION UNION 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

- 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

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

8283: Administración y programación en Microsoft SQL Server 2012

8283: Administración y programación en Microsoft SQL Server 2012 8283: Administración y programación en Microsoft SQL Server 2012 Este curso es orientado a los profesionales en desarrollo que desean maximizar la participación de SQL Server 2012 en beneficio del desempeño

Más detalles

Disparadores en ORACLE

Disparadores en ORACLE Diseño de Bases de Datos y Seguridad de la Información PL/SQL-1 PL/SQL: lenguaje de programación estructurado en bloques Bloques: unidad mínima en PL/SQL Soportan DML y DDL Anónimos / Con nombre Disparadores

Más detalles

Acceso a bases de datos MySQL con PHP

Acceso a bases de datos MySQL con PHP GESTIÓN Y ADMINISTRACIÓN WEB Acceso a bases de datos MySQL con PHP Ing. CIP Fabián Silva Alvarado fsilvasys@hotmail.com DEFINICIÓN DE BASE DE DATOS Base de Datos es un conjunto de datos relacionados entre

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION CICLO 01-2012 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION GUIA DE LABORATORIO Nº 8 Nombre de la practica: Combinación de tablas Lugar de ejecución: Laboratorio de Informática

Más detalles

SENTENCIAS Y CONSULTAS EN SQL SERVER

SENTENCIAS Y CONSULTAS EN SQL SERVER SENTENCIAS Y CONSULTAS EN SQL SERVER En esta sección nos preocuparemos por conocer, las consultas en SQL que describiremos aquí. Para eso haremos un pequeño de las palabras claves que se utilizan en SQL,

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

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

Lenguaje para descripción de datos

Lenguaje para descripción de datos Amparo López Gaona tación Fac. Ciencias, UNAM Mayo 2012 Definición de Datos El lenguaje para definición de datos permite especificar: Esquema de cada relación. El dominio de cada atributo. Restricciones

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

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

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

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

Base de Datos LSI y PI Lic. Paola Daniela Budán Lic. Federico Rosenzvaig

Base de Datos LSI y PI Lic. Paola Daniela Budán Lic. Federico Rosenzvaig Base de Datos LSI y PI Lic. Paola Daniela Budán Lic. Federico Rosenzvaig Motores de Bases de Datos MySQL (Oracle) SQL Server (Microsoft) PostgreSQL Oracle (Oracle) DB2 (IBM) Informix (IBM) Instalación

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

Tema 4. SQL. Juan Ignacio Rodríguez de León

Tema 4. SQL. Juan Ignacio Rodríguez de León Tema 4. SQL Juan Ignacio Rodríguez de León Resumen Este tema se centra exclusivamente en el estudio del lenguaje de consultas SQL (Structured Query Language). SQL usa una combinación de álgebra relacional

Más detalles

Implementación n de Base de Datos con Microsoft SQL Server 2000. Ing. Martín Manuel Leiva Castillo Ing. Jorge Martín Rodríguez Castro

Implementación n de Base de Datos con Microsoft SQL Server 2000. Ing. Martín Manuel Leiva Castillo Ing. Jorge Martín Rodríguez Castro Implementación n de Base de Datos con Microsoft SQL Server 2000 Ing. Martín Manuel Leiva Castillo Ing. Jorge Martín Rodríguez Castro Visión general de SQL Server Contenido 1. Qué es SQL Server 2000? 2.

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

SQL dinámico en Transact SQL

SQL dinámico en Transact SQL SQL dinámico en Transact SQL Transact SQL permite dos formas de ejecutar SQL dinamico(construir sentencias SQL dinamicamente para ejecutarlas en la base de datos): La instrucción EXECUTE - o simplemente

Más detalles

Bases de Datos SEGURIDAD E INTEGRIDAD EN BASES DE DATOS. Ejemplo del Lado del servidor

Bases de Datos SEGURIDAD E INTEGRIDAD EN BASES DE DATOS. Ejemplo del Lado del servidor Bases de Datos SEGURIDAD E INTEGRIDAD EN BASES DE DATOS Ejemplo del Lado del servidor Aplicación de conceptos: Se hizo referencia a los elementos que poseen los Sistemas de Gestión de Bases de Datos (SGBD)

Más detalles

BASES DE DATOS OBJETO-RELACIONALES

BASES DE DATOS OBJETO-RELACIONALES Departament d Informàtica BASES DE DATOS OBJETO-RELACIONALES Un sistema de gestión de pedidos Wladimiro Díaz Villanueva Curso 2001-2002 Índice General 1 Introducción 3 1.1 Entidades y relaciones.................................

Más detalles

TEMA 8. CONSTRUCCIÓN DE GUIONES DE ADMINISTRACIÓN

TEMA 8. CONSTRUCCIÓN DE GUIONES DE ADMINISTRACIÓN 1 TEMA 8. CONSTRUCCIÓN DE GUIONES DE ADMINISTRACIÓN 1. Introducción 2. Procedimientos y funciones 3. Parámetros y variables 4. Instrucciones condicionales 5. Instrucciones repetitivas 6. Cursores 7. Gestión

Más detalles

ÍNDICE PRIMERA PARTE... 17

ÍNDICE PRIMERA PARTE... 17 ÍNDICE PREFACIO... xv PRIMERA PARTE... 17 CAPÍTULO 1. BASES DE DATOS... 19 BASE DE DATOS RELACIONAL... 20 ESTRUCTURA MÍNIMA DE ALMACENAMIENTO... 21 EJEMPLO DE TABLA... 22 RESUMEN... 23 CAPÍTULO 2. CONSULTAS

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

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION CICLO 1-2015 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION GUIA DE LABORATORIO Nº10 Nombre de la practica: Creación de Vistas y Procedimientos Almacenados Lugar de ejecución:

Más detalles

OBJETIVOS METODOLOGÍA PROCEDIMIENTO 1.- Trabajo con el servidor de bases de datos Sybase

OBJETIVOS METODOLOGÍA PROCEDIMIENTO 1.- Trabajo con el servidor de bases de datos Sybase UNIVERSIDAD NACIONAL DE COLOMBIA FACULTAD DE INGENIERIA Departamento de Ingeniería de Sistemas e Industrial Curso de Bases de Datos Por: Ismael Castañeda Fuentes Taller Marzo 21 de 2013 OBJETIVOS Conectarse

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

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

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

Programación SQL. Lucio Salgado Diciembre 2008

Programación SQL. Lucio Salgado Diciembre 2008 Programación SQL Lucio Salgado Diciembre 2008 1 Gestionadores de Bases de Datos (DBMS) Es el software que permite administrar bases de datos, a través de ella el usuario puede usar los datos con mucha

Más detalles

Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3

Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3 Manejo de Concurrencia en Mysql Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3 InnoDB y TRANSACTION ISOLATION LEVEL... 3 Lecturas consistentes que no

Más detalles

Curso de MySQL y Java

Curso de MySQL y Java Curso de MySQL y Java Introducción: instalación, arranque y primeros pasos 1. Material En este curso vamos a trabajar con el servidor mysql versión 4.0.18. También utilizaremos una herramienta llamada

Más detalles

Lenguaje de manipulación de datos

Lenguaje de manipulación de datos Lenguaje de manipulación de datos El lenguaje de manipulación de datos (DML) es una parte central de SQL. Cuando necesite agregar, actualizar o eliminar un dato en la base de datos, se ejecuta una sentencia

Más detalles

Modificación de datos

Modificación de datos Modificación de datos Contenido Introducción 1 Uso de transacciones 2 Inserción de datos 4 Eliminación de datos 15 Actualización de datos 20 Consideraciones acerca del rendimiento 24 Modificación de datos

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

Implementación de Triggers en Firebird/Interbase SQL Server

Implementación de Triggers en Firebird/Interbase SQL Server Implementación de Triggers en Firebird/Interbase SQL Server Objetivos: Que el alumno comprenda las opciónes de implementación que tiene toda base de datos y sus implicancias. Que el alumno sea capaz de

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

ÍNDICE. Introducción... Capítulo 1. Novedades de Access 2013... 1

ÍNDICE. Introducción... Capítulo 1. Novedades de Access 2013... 1 Introducción... XIII Capítulo 1. Novedades de Access 2013... 1 Nuevas posibilidades de cifrado, compactación y reparación de archivos... 1 Trabajo en la nube... 2 Compartir la información... 3 Guardar

Más detalles

SQL: Lenguaje de acceso a bases de datos

SQL: Lenguaje de acceso a bases de datos SQL: Lenguaje de acceso a bases de datos Israel Herraiz Universidad Politécnica de Madrid Israel Herraiz, UPM SQL: Lenguaje de acceso a bases de datos 1/88 Contenidos 1 Introducción a las bases de datos

Más detalles