<?xml version="1.0"?>
<rss version="2.0">
   <channel>
      <title>Concurrencia: Conceptos y SQL Procedural by Meny Reynaga</title>
      <link>https://padlet.com/manuel16616/1gk64y1druc2</link>
      <description>Competencia 4 y 5
Taller de Base de Datos</description>
      <language>en-us</language>
      <pubDate>2017-12-15 01:41:35 UTC</pubDate>
      <lastBuildDate>2023-05-10 15:38:57 UTC</lastBuildDate>
      <webMaster>hello@padlet.com</webMaster>
      <image>
         <url></url>
      </image>
      <item>
         <title>4. 1Conceptos básicos</title>
         <author>manuel16616</author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/216369151</link>
         <description><![CDATA[<div><strong><br></strong><br></div><div><br>Desde el punto de vista del usuario la interacción con la base de datos se lleva a cabo mediante operaciones con significado en el modelo semántico (por ejemplo, una transferencia de fondos en un banco).</div><div><br>Desde el punto de vista de la base de datos estas operaciones pueden estar formadas por varias operaciones elementales (por ejemplo, quitar fondos de una cuenta y añadírselos a otra)</div>]]></description>
         <enclosure url="https://padletuploads.blob.core.windows.net/prod/100365130/02d445b1769b6d02f80ef297d376a3bb/Introducci_n_a_Concurrencia_de_Datos_en_DB2__parte_1.mp4" />
         <pubDate>2017-12-15 02:00:46 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/216369151</guid>
      </item>
      <item>
         <title>Unida 4 Concurrencia: Conceptos</title>
         <author>manuel16616</author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/216369381</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2017-12-15 02:03:33 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/216369381</guid>
      </item>
      <item>
         <title></title>
         <author>manuel16616</author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/216369625</link>
         <description><![CDATA[￼]]></description>
         <pubDate>2017-12-15 02:06:47 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/216369625</guid>
      </item>
      <item>
         <title>4. 2PROPIEDADES DE LAS TRANSACCIONES</title>
         <author>manuel16616</author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/216369734</link>
         <description><![CDATA[<div><br></div><div><br></div><div>Una unidad lógica de trabajo debe exhibir cuatro propiedades, conocidas como propiedades ACID (atomicidad, coherencia, aislamiento y durabilidad), para ser calificacada como transacción.</div><div>Atomicity: Una Transacción (X) se ejecuta completamente o de otra manera se eliminan los cambios parciales realizados.</div><div>Begin Transacction: comentado anteriormente es donde inicia la transacción.<br> Programa: realizas los cambios que deseas en la base de datos.<br> End Transacction: termina la transacción que acabas de realizar.</div><div>Responsable: El método de recuperación, de no completar todas las operaciones, devuelve la BD a su estado anterior a empezar esa X (rollback) se utiliza rollback cuando los cambios que utilizamos no son los requeridos en la base de datos, dejándolos en un estado original como si no se hubiera realizado ningún movimiento o cambio.</div><div>Coherencia:  Asegura que los datos que observamos no cambian (por otros usuarios) hasta que acabemos la Transacción.</div><div>Responsable: los programadores mediante la definición adecuada de la integridad referencial: check, triggers, primary key, foreign key,…</div><div>Aislamiento: Los efectos de una X no son visibles a otros usuarios mientras no se confirmen.<figure class="attachment attachment--preview"><img src="http://www.prograweb.com.mx/tallerBD/images/0401Transferencia-bancaria.png" width="320" height="196"><figcaption class="attachment__caption"></figcaption></figure><br><br></div>]]></description>
         <enclosure url="https://padletuploads.blob.core.windows.net/prod/100365130/ac19b6b1f4c51f35ac385bfc28652d5b/diagrama.png" />
         <pubDate>2017-12-15 02:08:05 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/216369734</guid>
      </item>
      <item>
         <title>4.3 Grados de consistencia</title>
         <author>manuel16616</author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/216371111</link>
         <description><![CDATA[<div>Es un término más amplio que el de integridad. Podría definirse como la coherencia entre todos los datos de la base de datos. Cuando se pierde la integridad también se pierde la consistencia. Pero la consistencia también puede perderse por razones de funcionamiento.<br><br></div><div><br>Una transacción finalizada (<em>confirmada parcialmente</em>) puede no confirmarse definitivamente (<em>consistencia</em>).<br><br></div><ul><li>Si se confirma definitivamente el sistema asegura la persistencia de los cambios que ha efectuado en la base de datos.</li><li>Si se anula los cambios que ha efectuado son deshechos.</li></ul>]]></description>
         <enclosure url="https://padletuploads.blob.core.windows.net/prod/100365130/0eedd98fd66f5cd42ebe17bac8be2f15/sql.png" />
         <pubDate>2017-12-15 02:24:46 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/216371111</guid>
      </item>
      <item>
         <title>4.4 Niveles de Aislamiento</title>
         <author>manuel16616</author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/216371742</link>
         <description><![CDATA[<div><br>Las transacciones especifican un nivel de aislamiento que define el grado en que se debe aislar una transacción de las modificaciones de recursos o datos realizadas por otras transacciones. Los niveles de aislamiento se describen en cuanto a los efectos secundarios de la simultaneidad que se permiten, como las lecturas desfasadas o ficticias.<br><br></div><div><br>Control de los niveles de aislamiento de transacción:<br><br></div><ul><li>Controla si se realizan bloqueos cuando se leen los datos y qué tipos de bloqueos se solicitan.</li><li>Duración de los bloqueos de lectura.</li><li>Si una operación de lectura que hace referencia a filas modificadas por otra transacción:<ul><li>Se bloquea hasta que se libera el bloqueo exclusivo de la fila.</li><li>Recupera la versión confirmada de la fila que existía en el momento en el que empezó la instrucción o la transacción.</li><li>Lee la modificación de los datos no confirmados.</li></ul></li></ul>]]></description>
         <enclosure url="https://padletuploads.blob.core.windows.net/prod/100365130/e9b2d4e5ac3fc63326807a780e63d287/niveles.jpg" />
         <pubDate>2017-12-15 02:33:46 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/216371742</guid>
      </item>
      <item>
         <title>4.5 COMMIT Y ROLLBACK</title>
         <author>manuel16616</author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/216372026</link>
         <description><![CDATA[<div><br>Estructura de una transacción<br>Una transacción de base de datos consta de una o más instrucciones. Específicamente, una transacción consiste en una de las siguientes:<br><br></div><ul><li>Una o más sentencias DML que en conjunto constituyen un cambio atómica a la base de datos</li><li>Una declaración DML</li></ul><div><br>Una transacción tiene un principio y un final.<br>Inicio de una transacción<br>Una transacción comienza cuando se encuentra la primera sentencia de<strong><em> SQL ejecutable</em></strong>.<br>Una sentencia de SQL ejecutable es una instrucción SQL que genera llamadas a <strong><em>una instancia de base de datos,</em></strong> incluyendo <strong>DML</strong> y <strong>DDL</strong> y la instrucción <strong>SET TRANSACCIÓN</strong>.<br>Cuando se inicia una transacción, <strong>Oracle Database</strong> le asigna un segmento undo de datos para grabar las entradas Rollback para la nueva transacción. Un <strong>id de transacción</strong> se asigna durante la primera instrucción <strong>DML</strong>.<br><br></div>]]></description>
         <enclosure url="https://padletuploads.blob.core.windows.net/prod/100365130/cf7e84e5d127aabd3ea485470a48ef12/Imagen1.png" />
         <pubDate>2017-12-15 02:37:26 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/216372026</guid>
      </item>
      <item>
         <title>Unidad 5 SQL Procedural</title>
         <author>manuel16616</author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/216372519</link>
         <description><![CDATA[]]></description>
         <enclosure url="" />
         <pubDate>2017-12-15 02:42:34 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/216372519</guid>
      </item>
      <item>
         <title>5.1 Stored Procedures </title>
         <author>manuel16616</author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/216372786</link>
         <description><![CDATA[<div>procedimiento almacenado (stored procedure en inglés) es un programa (o procedimiento) almacenado físicamente en una base de datos. Su implementación varía de un gestor de bases de datos a otro. La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a una petición de usuario, es ejecutado directamente en el motor de bases de datos, el cual usualmente corre en un servidor separado.</div><div>No es nada mas que un código guardado de SQL que puede ser utilizado una y otra vez.</div><div>CREACIÓN:&nbsp;</div><div>Se crea con las palabras CREATE PROC y se termina con la palabra END</div><div>EJEMPLO:</div><div>CREATE PROC&nbsp; Mi_Procedure AS<br><br></div><div>BEGIN<br><br></div><div>SELECT Customers.ContactName, Customers.City FROM Customers<br><br></div><div>ORDER BY ContactName&nbsp;<br><br></div><div><br></div><div>END<br><br></div><div><br></div><div>EJECUCIÓN</div><div>Para llamar un procedimiento se utiliza la palabra EXCECUTE o EXEC</div><div>EJEMPLO:</div><div>EXECUTE Mi_Procedure<br><br></div><div>En caso de que el procedimiento requiera recibir parámetros, estos se anexan en la sentencia.<br><br></div><div><br></div><div>EXEC SP_EJEMPLO2 ‘Alejandra Camino','Madrid'<br><br></div><div><br><br></div><div>EDITAR:</div><div>Para editar un procedimiento se utiliza la misma palabra reservada para editar una tabla es decir, ALTER.</div><div>Ejemplo:</div><div>ALTER PROCEDURE procedimiento1</div><div>AS</div><div><br></div><div>SELECT * FROM Employees WHERE EmployeeID = (SELECT MAX(EMployeeID) FROM Employees)</div><div>ELIMINAR:</div><div>Para eliminar se utiliza la sentencia DROP</div><div>EJEMPLO:</div><div>DROP procedimiento1</div>]]></description>
         <enclosure url="https://padletuploads.blob.core.windows.net/prod/100365130/ef8d684061fce5ddafb3f3854424b8f8/95cf11dd6857552faa1f15d1783fb1d1.png" />
         <pubDate>2017-12-15 02:45:37 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/216372786</guid>
      </item>
      <item>
         <title>5.2 Funciones</title>
         <author>manuel16616</author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/216372944</link>
         <description><![CDATA[<div>Funciones: Una función es una rutina almacenada que recibe unos parámetros escalares de entrada, luego los procesa según el cuerpo definido de la función y por ultimo retorna en un resultado de un tipo especifico que permitirá cumplir un objetivo.</div><div>Existen 3 tipos:</div><ul><li>Funciones escalares</li><li>Funciones con valores de tabla en linea</li><li>Funciones con valores de tabla y múltiples instrucciones</li></ul><div>FUNCIONES ESCALARES: Las funciones escalares son aquellas que reciben parámetros de entrada para ser procesados y al final retornar en un tipo de dato sencillo.</div><div><br><br></div><div>EJEMPLO: Cuantas veces ha viajado un pasajero en un lapso de tiempo.</div><div>CREATE FUNCTION cuanto_ha_viajado(@idpasajero INT, @fecha_inicio DATE , @fecha_final DATE)</div><div>RETURNS INT</div><div>AS</div><div>BEGIN</div><div>DECLARE @cantidad_ocasiones INT;</div><div>SELECT @cantidad_ocasiones = COUNT(a.idpasajero)</div><div>FROM Aerolinea.Boleto AS a</div><div>WHERE a.idpasajero = @idpasajero AND (fecha_compra BETWEEN @fecha_inicio AND @fecha_final);</div><div>IF ( @cantidad_ocasiones IS NULL)</div><div>SET @cantidad_ocasiones = 0;</div><div>RETURN @cantidad_ocasiones;</div><div>END</div><div>FUNCIONES CON VALORES DE TABLA EN LINEA:  Este tipo de función tiene la misma sintaxis que una función escalar, la única diferencia está en que retorna un tipo de dato TABLE, es decir, una tabla compuesta de registros.</div><div>EJEMPLO: Ver todas las compras realizadas de un producto especifico.</div><div>CREATE FUNCTION ventas_producto(@idproducto INT)</div><div>RETURNS TABLE</div><div>AS</div><div>RETURN(</div><div>SELECT C.NOMBRE, F.FECHA, DF.CANTIDAD, DF.PRECIO,P.IDPRODUCTO</div><div>FROM</div><div>CLIENTE AS C JOIN FACTURA AS F ON C.IDCLIENTE = F.IDCLIENTE</div><div>JOIN DETALLEFACTURA AS DF ON DF.IDFACTURA = F.IDFACTURA</div><div>JOIN PRODUCTO AS P ON P.IDPRODUCTO = DF.IDPRODUCTO</div><div>WHERE P.IDPRODUCTO = @idproducto)</div>]]></description>
         <enclosure url="https://padletuploads.blob.core.windows.net/prod/100365130/5f49c10768b7588848b98f17d1f90f49/Tutoriales_SQL_Server_16___funciones_de_manejo_de_cadenas_parte_1_1_.mp4" />
         <pubDate>2017-12-15 02:47:21 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/216372944</guid>
      </item>
      <item>
         <title>5.3 Triggers</title>
         <author>manuel16616</author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/216373054</link>
         <description><![CDATA[<div>Un "trigger" (disparador o desencadenador) es un tipo de procedimiento almacenado que se ejecuta cuando se intenta modificar los datos de una tabla (o vista). Se definen para una tabla (o vista) específica.</div><div> create triggre NOMBREDISPARADOR</div><div>  on NOMBRETABLA</div><div>  for EVENTO- insert, update o delete</div><div> as</div><div><br></div><div>  SENTENCIAS</div><div>BEFORE|AFTER: Especifica si el Trigger se ejecuta antes o después del evento DML.</div><div>UPDATE|INSERT|DELETE:</div><div>Aquí eliges que sentencia usarás para que se ejecute el Trigger.</div><div>ON nombre_de_la_tabla:</div><div>En esta sección estableces el nombre de la tabla asociada.</div><div>FOR EACH ROW: Establece que el Trigger se ejecute por cada fila en la tabla asociada.</div><div><br></div><div>&lt;bloque_de_instrucciones&gt;: Define el bloque de sentencias que el Trigger ejecutará al ser invocado.</div><div>UTILIDAD</div><div>Con los Triggers podemos implementar varios casos de uso que mantengan la integridad de la base de datos, como Validar información, Calcular atributos derivados, Seguimientos de movimientos en la base de datos, etc.</div><div><br></div><div>Cuando surja una necesidad en donde veas que necesitas que se ejecute una acción implícitamente(sin que la ejecutes manualmente) sobre los registros de una tabla, entonces puedes considerar el uso de un Trigger.</div><div><br><br></div>]]></description>
         <enclosure url="" />
         <pubDate>2017-12-15 02:48:57 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/216373054</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/312350620</link>
         <description><![CDATA[12me]]></description>
         <enclosure url="" />
         <pubDate>2018-12-07 18:10:51 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/312350620</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/411011471</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padletuploads.blob.core.windows.net/prod/100365130/02d445b1769b6d02f80ef297d376a3bb/Introducci_n_a_Concurrencia_de_Datos_en_DB2__parte_1.mp4" />
         <pubDate>2019-11-14 05:13:49 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/411011471</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/509486671</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet.com/manuel16616" />
         <pubDate>2020-04-15 21:48:25 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/509486671</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/853456904</link>
         <description><![CDATA[6me]]></description>
         <enclosure url="" />
         <pubDate>2020-10-22 17:18:53 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/853456904</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/950589409</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet.com/manuel16616" />
         <pubDate>2020-11-22 23:59:23 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/950589409</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/950589503</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet.com/manuel16616" />
         <pubDate>2020-11-22 23:59:28 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/950589503</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/1092865905</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet.com/manuel16616" />
         <pubDate>2021-01-15 20:22:20 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/1092865905</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587139</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet.com/manuel16616" />
         <pubDate>2021-05-20 05:53:52 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587139</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587204</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet.com/manuel16616" />
         <pubDate>2021-05-20 05:53:54 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587204</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587251</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet.com/manuel16616" />
         <pubDate>2021-05-20 05:53:55 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587251</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587289</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet.com/manuel16616" />
         <pubDate>2021-05-20 05:53:56 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587289</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587312</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet.com/manuel16616" />
         <pubDate>2021-05-20 05:53:56 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587312</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587343</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet.com/manuel16616" />
         <pubDate>2021-05-20 05:53:57 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587343</guid>
      </item>
      <item>
         <title></title>
         <author></author>
         <link>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587373</link>
         <description><![CDATA[]]></description>
         <enclosure url="https://padlet.com/manuel16616" />
         <pubDate>2021-05-20 05:53:58 UTC</pubDate>
         <guid>https://padlet.com/manuel16616/1gk64y1druc2/wish/1542587373</guid>
      </item>
   </channel>
</rss>
