Resumen para Practicar 10 Páginas PDF

Summary

Este documento resume las operaciones de actualización en bases de datos, incluyendo la eliminación, modificación e inserción de filas. Explica conceptos como integridad referencial, restricciones de dominio y clave, y cómo estas afectan las operaciones. Se incluyen ejemplos para ilustrar cada concepto.

Full Transcript

Operaciones de actualización: son fundamentales para mantener la integridad de los datos. Estas operaciones incluyen la eliminación de filas, la modificación de valores, y la inserción de nuevas filas. Eliminación (DELETE) Cuando se elimina una fila (o tupla) en una tabla, generalmente no afecta a...

Operaciones de actualización: son fundamentales para mantener la integridad de los datos. Estas operaciones incluyen la eliminación de filas, la modificación de valores, y la inserción de nuevas filas. Eliminación (DELETE) Cuando se elimina una fila (o tupla) en una tabla, generalmente no afecta a las restricciones de dominio, clave, o integridad de entidad. Sin embargo, puede afectar la integridad referencial si otras tablas están referenciando a esa fila a través de una clave foránea. Ejemplo de Integridad Referencial en Eliminación: Imaginemos dos tablas: o País: donde cada país tiene un ID País único (clave primaria). o Pintor: donde cada pintor tiene una clave foránea ID País que referencia al ID País de la tabla País, indicando de qué país es el pintor. Si eliminamos un país en la tabla País, cualquier pintor asociado a ese país en la tabla Pintor quedaría con una referencia inválida en su ID País (es decir, apuntaría a un país que ya no existe). Opciones para Manejar la Eliminación y Mantener la Integridad Referencial 1. Rechazar la eliminación: No se permite eliminar el país si hay pintores que dependen de esa entrada. Esto es común en bases de datos para prevenir errores de integridad. 2. Eliminar en cascada: Cuando se elimina el país, también se eliminan todos los pintores que pertenecen a ese país. Esto asegura que no queden referencias inválidas. 3. Actualizar el valor de la clave foránea a NULL: Aquí, al eliminar el país, el ID País en la tabla Pintor se convierte en NULL, indicando que el pintor ya no está asociado a ningún país en particular. 4. Redireccionar la referencia: En algunos casos, puedes redirigir la referencia a otro país. Esto requiere que el valor de la FK cambie a un país válido diferente del eliminado. Modificación (UPDATE) Modificar una fila puede afectar diversas restricciones, dependiendo de qué atributo o columna estás modificando. Restricción de Dominio: Si se cambia el valor de un campo, este nuevo valor debe seguir cumpliendo con el tipo de datos o el formato definido para ese dominio. Por ejemplo, no puedes poner un valor de texto en una columna que requiere un entero. Restricción de Clave: Si el atributo modificado es parte de una clave primaria, el nuevo valor debe ser único. Si se intenta actualizar un valor de clave primaria para que coincida con otra clave existente, se violará la restricción de clave, ya que no puede haber dos filas con el mismo valor en una clave primaria. Integridad de Entidad: La clave primaria no puede ser NULL, por lo que, al actualizar una clave primaria, debe haber un valor válido y no nulo. Integridad Referencial: Cuando el valor modificado es una clave primaria que otras tablas están referenciando (mediante una clave foránea), esto afecta a la integridad referencial, ya que las filas en otras tablas pueden quedar apuntando a un valor inexistente. Opciones para Manejar la Modificación y Mantener la Integridad 1. Rechazar la modificación: No se permite cambiar la clave primaria si existen referencias dependientes en otra tabla. 2. Modificar en cascada: Cambia el valor de la clave primaria en la tabla principal y actualiza automáticamente todas las referencias en las claves foráneas de las tablas relacionadas para reflejar el cambio. 3. Actualizar clave foránea a NULL: Si la modificación causa una inconsistencia referencial, las referencias en las otras tablas se pueden actualizar a NULL. Inserción (INSERT) La inserción de una nueva fila debe cumplir con todas las restricciones en la base de datos: Restricción de Dominio: Todos los valores de la nueva fila deben ser válidos para el tipo de datos definido en cada columna. Por ejemplo, no puedes insertar un texto en una columna que solo acepta números enteros. Restricción de Clave: Los valores en la clave primaria de la nueva fila deben ser únicos. No puede haber una nueva fila con un valor de clave primaria que ya existe en la tabla. Restricción de Integridad de Entidad: Los valores de la clave primaria no pueden ser NULL, ya que cada entidad debe ser identificable de manera única. Integridad Referencial: Si la nueva fila incluye una clave foránea, esa clave debe hacer referencia a una fila existente en la tabla relacionada. No puedes insertar un valor en una clave foránea que no esté presente como clave primaria en la tabla referenciada. Ejemplo de Integridad Referencial en Inserción Imaginemos que quieres agregar un nuevo pintor en la tabla Pintor con ID País igual a 5. Antes de insertar, la base de datos verifica que ID País = 5 existe en la tabla País. Si no existe, el sistema rechaza la inserción para mantener la integridad referencial. Resumen Eliminar: Puede afectar la integridad referencial si se eliminan filas a las que otras filas están haciendo referencia. Modificar: Puede afectar el dominio, la clave, la entidad, y la integridad referencial, especialmente al modificar claves primarias o valores foráneos. Insertar: Debe cumplir con las restricciones de dominio, clave, entidad, e integridad referencial al añadir una nueva fila en la base de datos. Algebra relacional: Algebra relacional: es una colección de operaciones que sirven para modificar relaciones. Es la base de las consultas SQL Consultas de obtención: son operaciones que sirven para obtener los datos de una tabla en una base de datos, la inserción, modificación y borrado se realizan con otro tipo de cláusulas, no con el algebra relacional. Cada operación del algebra relacional que hacemos es una operación que nos devuelve una nueva relación esa relación puede ser de un grado igual o diferente a la anterior (dif columnas) ej: OP(R)= R’ donde OP(R) es la operación aplicada sobre una relación R y R’ es la obtención de una nueva relación que puede ser de un grado mas chico, grande o igual que la relación original y una cantidad de filas variables. Operación de selección: filtra las tuplas (filas) dentro de una relación, lo que hacemos es hacer una partición del tipo horizontal es decir de determinada relación lo que hacemos es tomar las filas que cumplen con la condición que estamos expresando, en el algebra relacional se lo expresa con la letra sigma ỽ ej: ỽlegajo= 25630(Alumno) siendo legajo= 25630 el criterio de filtro y Alumno es la relación sobre la que se aplica Ej2: ỽaño_ing>= 2015 AND carrera = TUP(Alumno) entonces el resultado siempre será una nueva relación con el mismo formato que la relación alumno pero que se mostraran las filas que cumplan esas 2 condiciones La selección es Unaria porque actúa sobre una sola relación y además es conmutativa porque da igual si anido operaciones de este estilo porque el resultado será el mismo. Restricciones: La selección filtra filas de una relación, permitiendo obtener solo aquellas que cumplen ciertas condiciones. Algunas restricciones para esta operación son: o Condiciones lógicas: Las condiciones dentro de la operación de selección deben expresarse de forma clara y deben evaluarse para cada fila de la relación. Ejemplo: σ₍año_ingreso ≥ 2015 ∧ carrera = 'TUP'₎(Alumno) o Unicidad de tuplas: La selección no duplica tuplas. Si dos tuplas cumplen la misma condición, ambas aparecerán en el resultado, sin duplicarse. o Restricciones de integridad referencial: Aunque la selección no afecta la integridad referencial directamente, puede restringir el resultado en caso de condiciones que filtren filas basadas en valores de claves primarias o foráneas. o Conmutatividad: La selección es conmutativa, lo que significa que el orden en el que se apliquen múltiples condiciones no afecta el resultado final. Operación de proyección: a diferencia de selección realiza una partición vertical, es unaria pero no conmutativa, la proyección se representa con PI π Ej: πlegajo, apellido y nombre (Alumno) en lugar de elegir filas/tuplas lo que se elige son columnas y por ende el resultado contiene todas las filas de la relación original pero solo las columnas elegidas, por lo que es una partición vertical No es conmutativa porque si suponemos que mi relación tiene legajo, nombre, apellido, teléfono si yo quiero filtrar primero teléfono y luego legajo y apellido me va a dar un error porque ya eliminamos todas las columnas menos teléfono en el primer paso, y ahora no podemos recuperar las columnas legajo y apellido. Restricciones: o Restricciones de unicidad: La proyección elimina duplicados. Si seleccionas solo ciertas columnas y eso resulta en valores repetidos, las filas duplicadas serán eliminadas. Ejemplo: πnombre(Alumno) dará un solo valor de nombre para cada nombre único en la tabla Alumno, incluso si varios alumnos tienen el mismo nombre ej varios Juan, solo mostrara una fila con ese nombre. o Orden de columnas (No Conmutatividad): La proyección no es conmutativa, ya que el orden importa cuando decides qué columnas incluir. Si primero seleccionas solo teléfono en πteléfono(Alumno), las otras columnas quedan fuera de la relación resultante. Si intentas luego πlegajo, apellido(πteléfono(Alumno)), se produce un error porque legajo y apellido ya no existen en el resultado. o Preservación de la estructura de columnas: La proyección no puede incluir columnas que no están en la relación original, ya que esto generaría un error. Es decir, solo puedes proyectar columnas que realmente existan en la tabla inicial. Operación de unión: la unión entre 2 relaciones genéricas R y S resulta en una nueva relación que incluye a todas las filas de la relación R y todas las filas de la relación S (va apilando) Es diferente al Join. R U S (en la unión saca los repetidos y solo los muestra una vez). Para aplicar las relaciones deben tener: -La misma cantidad de atributos: ambas relaciones deben tener el mismo número de columnas. -Tipos de datos compatibles: cada columna correspondiente entre R y S debe tener el mismo tipo de dato o pertenecer al mismo dominio (como que ambas tengan números enteros, texto, fechas, etc.). Cuando hago unión apilo los elementos de ambas relaciones y me queda una relación con la misma cantidad de columnas y dependiendo del tipo de elemento pueden quedar mas o menos filas y si tengo elementos repetidos me los saca Operación de intersección: entre R y S resulta en una nueva relación que incluye las tuplas comunes a R y S (las tuplas comunes en las relaciones crean una nueva relación) todos los valores de los campos deben ser iguales R ∩ S (en la intersección saca los que no son repetidos es que toma los que se encuentran en común de las 2 relaciones). Para realizar la intersección, R y S deben cumplir con las mismas dos condiciones que en la unión: deben tener el mismo número de columnas y los mismos tipos de datos Resta: entre R y S resulta en una nueva relación que incluye todas las tuplas que están en S (R-S), Es decir, tomamos todas las filas de R y eliminamos las filas que son comunes con S. Condición de unión: Las operaciones de unión, intersección y resta deben cumplir con la condición de unión, que se refiere a las siguientes restricciones: Compatibilidad: Las relaciones deben ser compatibles en términos de: o Mismo número de atributos: Deben tener la misma cantidad de columnas. Esto significa que, si R tiene 3 columnas, S también debe tener 3 columnas. o Mismos dominios: Cada columna correspondiente en R y S debe tener el mismo tipo de dato. Por ejemplo, si una columna en R es un entero, la columna correspondiente en S también debe ser un entero. o Mismo orden: Las columnas deben estar en el mismo orden en ambas relaciones. Si en R la primera columna es id y la segunda es nombre, en S debe seguir el mismo orden. o Flexibilidad en la compatibilidad: Aunque R y S no sean inicialmente iguales, es posible aplicar operaciones como proyección (representada por π) para ajustar la estructura de una de las relaciones. Por ejemplo, si tienes una relación R con columnas A, B y C, y otra relación S con columnas A y B, puedes usar πA, B(R) para reducir R a las mismas columnas que S para que sean compatibles. Comparación de Operaciones o Unión e intersección: Ambas operaciones actúan sobre filas y devuelven una relación que puede incluir o excluir tuplas basadas en su presencia en ambas relaciones. o Join: A diferencia de la unión y la intersección, el join actúa sobre columnas, combinando filas de diferentes relaciones según una condición específica que conecta columnas de ambas. Producto cartesiano: es la combinatoria de los elementos existentes de un conjunto y en el otro me da una combinatoria entre las relaciones, combina cada tupla de R con cada una de S se expresa como RXS. Es la base de del Join. Esta operación empareja todas las filas de una relación con todas las filas de otra relación. El resultado es una tabla donde cada fila es una combinación de una fila de la primera relación con una fila de la segunda relación. Características importantes: El número de filas en el resultado es el producto del número de filas de las dos relaciones. No requiere que las dos relaciones tengan un atributo en común. El producto cartesiano puede generar muchas combinaciones innecesarias si no se aplica un filtro (como una condición de JOIN) después. Restricciones y consideraciones en el producto cartesiano: o Crecimiento exponencial: El número de filas en el resultado del producto cartesiano es el producto del número de filas en cada tabla. Si una tabla tiene 3 filas y otra tiene 4, el producto cartesiano tendrá 3×4=12 combinaciones. Con más tablas, este número crece rápidamente, lo que puede causar problemas de rendimiento si no se filtran adecuadamente las combinaciones. o No requiere que las tablas tengan columnas en común: El producto cartesiano no necesita que las tablas compartan atributos. Combina cada fila de la primera tabla con cada fila de la segunda, sin importar si tienen algo en común. o Uso eficiente con condiciones de filtrado: El producto cartesiano por sí solo genera muchas combinaciones irrelevantes en la mayoría de los casos. Para que sea útil, se suele aplicar junto con una condición de selección (JOIN) para filtrar las combinaciones que tengan sentido, por ejemplo, aquellas que coincidan en un atributo compartido. Particularidades: si tengo las relaciones R y S siendo R (A1, A2, … An) X S (B1, B2, …Bm) es decir de una cantidad diferente con distintos atributos el resultado del producto cartesiano va a ser una nueva relación que va a tener n+m columnas. Es decir se crea una relación tal que Q

Use Quizgecko on...
Browser
Browser