Logo Studenta

Álgebra Relacional y Teoría de Conjuntos

¡Este material tiene más páginas!

Vista previa del material en texto

Tarea 1: 
Fundamentación
Juan Esteban Méndez Díaz
10/02/2023
Código:
202016896_52
Pitalito (Huila)
Docente:
DANIEL FELIPE PALOMO
Universidad Nacional abierta y a distancia-UNAD
ECBTI
Ingeniería de Sistemas 
BASE DE DATOS
ALGEBRA RELACIONAL
Es un lenguaje de procedimiento de alto nivel que permite, mediante el uso de ciertos operadores, derivar las tablas deseadas desde las tablas base del modelo relacional.
Consta de un conjunto de operadores que toman como entrada una o dos relaciones y producen como resultado una nueva relación.
Indica paso a paso como realizar las consultas en una base de datos, es conocido como, modelo matemático, que sirve de base para entender y construir herramientas mas pragmáticas como el SQL (Lenguaje Estructurado De Consulta) 
Operaciones fundamentales del álgebra relacional
Selección
Proyección
Unión
Diferencia de conjuntos
Producto cartesiano
Renombramiento
Términos de las operaciones fundamentales 
Intersección de conjuntos
Reunión natural (Natural Join)
Theta Join
Join Externo
Join externo por la izquierda
Join externo por la derecha
Join externo completo (izquierda y derecha)
División
Asignación
Fundamentos de la teoría de conjuntos
La teoría de conjuntos, establece una serie de operaciones con el fin de ayudar a comprender y explicar matemáticamente como es que dos objetos, entidades o dominios a los cuales se les denomina conjuntos presentan una relación.
Tomando como ejemplo dos conjuntos A y B, para dar a conocer las diferentes teorías de conjuntos:
Unión (U)
La unión se representa por el símbolo ∪
Entonces el conjunto A ∪ B es el resultado de la unión de los conjuntos A y B
El conjunto A ∪ B contiene todos los elementos que están por lo menos en uno de los conjuntos A o B
Intersección (∩)
La intersección se representa con el símbolo ∩
Entonces el conjunto A ∩ B es el resultado de la intersección A y B
El conjunto A ∩ B contiene todos los elementos comunes entre A y B
Diferencia (\)
La intersección se representa con el símbolo ∩
Entonces el conjunto A ∩ B es el resultado de la intersección A y B
El conjunto A ∩ B contiene todos los elementos comunes entre A y B
Complemento (∁)
El complemento se representa por el símbolo ∁
Entonces el conjunto A∁ es el complemento de A
A∁ contiene todos los elementos que no pertenecen a A, para comprender esto, piensa que tienes un conjunto B que funciona como un conjunto de referencia o universal y deseamos saber que elementos le hacen falta a A para ser igual al conjunto B.
Diferencia simétrica (Δ)
La diferencia simétrica se representa por el símbolo Δ
Entonces el conjunto A Δ B es la diferencia simétrica de A y B
A Δ B contiene todos los elementos que pertenecen ya sea a A o B pero que no existe en ambos
Producto Cartesiano (x)
El producto cartesiano se representa por el símbolo ×.
Entonces A × B es el producto de A y B.
A × B contiene todos los pares ordenados (a, b) donde a pertenece a A y b pertenece a B.
Relaciones: ejemplo cines
1. definir las relaciones que se ocuparan como referencia a la problemática planteada
Así concluye este ejemplo.
Operación de selección
Permite obtener los datos pertinentes de una relación, siempre y cuando se cumpla una condicional de ciertas condiciones, a esto se le conoce como predicados.
La selección puede ser representada por la letra sigma “σ”.
Y el predicado lo representamos como un subíndice de la letra σ.
La relación la debemos escribir entre paréntesis delante de σ.
Por ejemplo, de nuestra tabla de cines queremos obtener los cines que pertenecen a la zona centro
σZona = Centro (cines)
Se permiten las comparaciones: =, ≠, <, ≤, > o ≥
σZona ≠ Centro (cines)
Podemos combinar varios predicados a través de las conectivas “Y (∧)” y “O (∨)” que en escancia son operadores “AND” y “OR” en temas de lógica.
σZona ≠ Centro ∧ Clave-cine = 2  (cines)
En el predicado podemos comparar dos atributos (Columnas). Quizá en mi ejemplo no tiene sentido pero es posible:
σZona ≠ Dirección  (cines)
Ahora, respecto a los valores nulos, toda comparación que implique un valor nulo se evalúa como falso.
Operación de proyección
Es considerada como unaria, que esta, solo se puede aplicar a una sola relación y retornando únicamente los atributos especificados:
La proyección puede ser representada mediante la letra griega pi “Π”
Los atributos a retornas se establecen como un subíndice.
La relación la debemos escribir entre paréntesis delante de Π.
Por ejemplo, de nuestra tabla de cines se tiene la siguiente proyección:
ΠClave-cine, Nombre (cines)
Composición de operaciones relacionales 
Al igual que la teoría de conjuntos, mediante el uso del algebra relacional, podemos crear operaciones complejas a través de la composición de operadores, un ejemplo seria:
ΠClave-cine (σClave-cine = 1 (salas))
De la cual podemos observar que: 
La proyección en su argumento no tiene una relación como lo vimos anteriormente, si no que tiene una expresión que a su vez es una relación.
Reglas de la Operación Unión
Tiene como función la recuperación de los datos de dos relacione que presenten en ambas o solo en una de ellas:
La unión la podemos representar mediante “∪”
Debes tomar en cuenta que la unión solo se puede dar con relaciones compatibles
Operación Unión
Se deben cumplir ciertos criterios: 
La relación A y B deben ser de la misma aridad, que en otras palabras, se requieren el mismo número de atributos.
Ahora, los dominios (valores de cada atributo) de los atributos i- ésimos de A y de B deben ser iguales para todo i.
Ejemplo
Se quiere saber que cines ya tienen salas o películas asignadas. Para cumplir este objetivo, se debe analizar lo siguiente:
Si solo tomáramos la relación “cines”, no podemos hacer esto, ya que no cuenta con un atributo que nos indique esto, además no cumplimos con el principio de aridad.
No podemos solo tomar “salas”, por que no sabríamos que cines ya tienen películas asignadas.
Por lo contrario, si solo tomamos “películas”, sabríamos los cines que ya tienen películas, pero excluiríamos aquellos cines que únicamente tienen salas disponibles, pero aun no le han asignado películas.
Example
You want to know which theaters already have theaters or movies assigned. To meet this objective, the following must be analysed: If we only took the relation "cinemas", we cannot do this, since it does not have an attribute that indicates this, and we also do not comply with the principle of arity. We can't just take “theatres”, because we wouldn't know which theaters already have movies assigned. Conversely, if we only take “movies”, we would know the theaters that already have movies, but we would exclude those theaters that only have rooms available, but have not yet assigned movies to them.
Mediante el uso de la Unión, podemos obtener lo que pide el cliente, mediante el conjunto de tablas actuales, dicha operación quedaría de la siguiente manera:
Da como resultado la siguiente relación:
Operación Diferencia
Supongamos que se tiene una relación A y otra B y queremos obtener la diferencia A-B:
En primer lugar la operación de diferencia la podemos representar mediante “-”.
Y nos da como resultado una relación con las tuplas que están en A pero no están en B.
Otro punto importante, es que la diferencia se da únicamente entre relaciones compatibles (la compatibilidad la vimos en el operador unión).
Por último, las tuplas duplicadas son eliminadas.
Utilizando la selección, vamos a obtener aquellos cines que tienen un ingreso mayor o igual a 500000.
σIngreso ≥ 500000 (Cines)
Operación Producto cartesiano
Permite obtener la combinación de cada tupla de una relación A con cada una de la tupla de otra relación B, y cada atributo corresponde a A seguido de los de B.
El producto cartesiano tiene como regla que cada relación de su argumento tenga nombres diferentes, esto solventa varios problemas, pero también causa otros, por ejemplo: si queremos hacer el producto sobre la misma relación, para este caso se debe utilizar la operación renombramientoque veremos mas adelante.
No obstante, puede darse el caso de que ambas relaciones tengan el mismo nombre, si esto sucede no podríamos distinguir el origen de cada tupla, por lo tanto, a cada atributo se le adjunta el nombre de la relación:
(nombre-relación.atributo1
 nombre-relación.atributo2)
Si un atributo solo aparece un una sola de las relaciones, se puede omitir el nombre de la relación.
La operación producto cartesiano la podemos representar a través de “x”
Por ejemplo: realicemos el siguiente producto cartesiano:
cines x salas
Nota: cabe resaltar que no ocupare todos los datos pertinentes de la tabla “Cines”, ya que son bastantes, así que usare las dos primeras tuplas.
Ay que recordar que, debemos realizar las combinaciones posibles
Poner primero los atributos de “Cine”, seguido de las tuplas de “Salas”.
Si se presentan atributos que presentan similitud acerca del nombramiento que posean, se debe adjuntar de la relación de la siguiente manera:
¿Que podemos notar de raro frente a esta tabla resultante?
Un cine ahora tiene dos "clave-cine", la que se encuentra en su propia tabla y la que esta en la tabla “salas”.
Cine 1 aparece en el resultado a pesar que no hay registros referentes a su clave en salas.
Esto ocurre ya que se encarga de realizar la combinación, mientras se den las condiciones que establecen sus reglas denotara un resultado.
Que sucede si se realiza una composición de operadores y limitamos la selección:
σcines.Clave-cine = salas.Clave-cine (cines x salas)
Al aplicar la condicional mediante el operador de selección, podemos recuperar el cine que tiene las salas ocupadas
Operación renombramiento
Permite:
Ya sea asignarle un nombre a una relación que no tiene nombre.
O cambiarle el nombre a una relación que ya tiene un nombre asignado.
Esto aplica también en los atributos.
Al operador de renombramiento lo podemos representar por la letra rho minúscula “ρ”.
La sintaxis sería escribir ρ seguido del nuevo nombre y entre paréntesis el nombre de la relación a renombrar, por ejemplo:
ρ nuevo_nombre(nombre_relacion)
Por ejemplo: si se desea hacer el producto cartesiano sobre la misma tabla “Cines”, se debe realizar lo siguiente:
Vistas
Es un tipo consulta, el cual, se presenta a margen de una tabla (Virtual) a partir de un conjunto de tablas en una base de datos relacional.
Las vistas, tienen la misma estructura que una tabla, ya que esta presenta similitudes como, filas y columnas
La única diferencia es que solo se almacenan de ellas la definición, no los datos.
Subconsulta
Es una sentencia SELECT que aparece dentro de otra sentencia SELECT, a la cual se le llama consulta principal.
Se puede encontrar en la lista de selección, en la clausula WHERE o en la clausula HAVING de la consulta principal.
Consultas anidadas
Primero se resuelve la subconsulta o consulta anidada dando los nombres de los equipos que tiene dos titulo y luego este dato se compara con la tabla de jugadores resolviendo así la otra consulta.
Aunque es mas recomendado usar consultas multi tabla que hacen la consulta directamente en mas de una tabla a la vez 
Funciones y Procedimientos
Son subprogramas que realizan una o mas tareas relacionadas entre si y que han de ser ejecutadas por el programa principal.
Cuando el programa principal ejecuta una función o un procedimiento, se interrumpe el flujo normal del programa.
Operación división
Permite obtener todas las tuplas de una relación A que se corresponden con todas las tuplas de unas relación B, es decir, podemos aplicar división don se incluya la expresión “para todos”.
La operación de división la podemos representar mediante “÷” o “/”.
Operación de ordenamiento 
El operador de ordenamiento lo representamos a través de la letra tao "τ"
τatributo1[asc | desc], atributo2 [asc | desc],… (A)
Nos permite regresar una relación, pero ordenada según el predicado.
Podemos ordenar dicha relación resultante por más de un atributo, comenzando con el primer atributo en la condición y así sucesivamente.
Ejemplo de ordenamiento:
Utilicemos el ordenamiento para saber que zona tiene mas ingreso, es decir, ordenamos por zona y después por ingresos de mayor a menor:
τZona, Ingresos [desc] (A)
Nota: el Join Externo, nos permite buscar esa información faltante, ya sea de lado izquierdo o lado derecho.
Operación agrupación
La operación de agrupación se representa por gama “γ” y hace referencia a los valores calculados.
γ atributo-a-agrupar;función-de-agreación → alias (A)
Esta operación nos permite agrupar un conjunto de valores en función de un atributo.
La función de agregación nos permite realizar una combinación de tuplas para producir un valor denominado como “agregado” o bien un resumen, dentro de las funciones de agregación podemos encontrar
sum
avg
count
min
max
Etc.
Ejemplo: 
Trigger
También conocido como disparador, es un script que se usa en lenguaje de programación SQL, en especial en bases de datos como MySQL o PostgreSQL.
Es una serie de reglas predefinidas que se asocian a una tabla, es decir, determinar las operaciones de la tabla, ya sea, añadir, actualizar o eliminar registros.
Desencadena determinadas acciones de forma automática en las tablas de las base de datos cuando se insertan, modifican y se añaden nuevos datos.
Estos disparadores se llevan usando en MySQL desde la versión 5.0.2., mientras que PostgreSQL ya los incluyo en el año 1997.
Trigger
Also known as a trigger, it is a script that is used in the SQL programming language, especially in databases such as MySQL or PostgreSQL. It is a series of predefined rules that are associated with a table, that is, determine the operations of the table, be it adding, updating or deleting records. Triggers certain actions automatically on database tables when new data is inserted, modified, and added. These triggers have been used in MySQL since version 5.0.2., while PostgreSQL already included them in 1997.
Transacción
En un sistema de gestión de bases de datos, es un conjunto de ordenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atómica.
Un SGBD se dice transaccional si es capaz de mantener la integridad de datos, haciendo que estas transacciones no puedan finalizar en un estado intermedio.
SQL
Lenguaje de Consulta Estructurada (Structured Query Language), es un lenguaje de programación diseñado para actualizar, obtener y calcular información en base de datos relacionales
DDL
Lenguaje de definición de datos, permite crear y modificar la estructurada de una base datos.
Las bases de datos son la clave de tener tantas aplicaciones robustas que puedan (en parte) abastecer nuestras necesidades, por ejemplo, en el caso de Facebook o Google.
El DDL es un subconjunto de SQL.
Es un lenguaje para describir los datos y sus relaciones en una base de datos .
DDL es el nombre corto del lenguaje de definición de datos, que se ocupa de los esquemas y descripciones de la base de datos, de cómo deben residir los datos en la base de datos.
CREAR: para crear una base de datos y sus objetos como (tabla, índice, vistas, procedimiento de almacenamiento, función y desencadenantes)
ALTER - altera la estructura de la base de datos existente
DROP: elimina objetos de la base de datos
TRUNCATE: elimina todos los registros de una tabla, incluidos todos los espacios asignados para los registros.
COMENTARIO: agregue comentarios al diccionario de datos
RENAME - renombrar un objeto
DML
DML es el nombre corto del lenguaje de manipulación de datos que se ocupa de la manipulación de datos e incluye las instrucciones SQL más comunes como SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR, etc., y se utiliza para almacenar, modificar, recuperar, eliminar y actualizar datos en la base de datos.
SELECCIONAR - recuperar datos de una base de datos
INSERT - inserta datos en una tabla
ACTUALIZACIÓN: actualiza los datos existentes dentro de una tabla
BORRAR - Eliminar todos los registros de una tabla de base de datos
MERGE - Operación UPSERT(insertar o actualizar)
LLAMADA - llame a un subprograma PL / SQL o Java
EXPLICAR PLAN - interpretación de la ruta de acceso a datos
TABLA DE BLOQUEO - Control de concurrencia
Lenguaje de manipulación de datos, es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado.
Modificación de tuplas
Las tuplas son con estructuras de datos inmutables. Una vez que las creamos con un valor, no podemos modificarlas
Conclusiones
Las bases de datos son, como puertas que conducen Asia un futuro prometedor, a su diseño y creación en armonía
Gracias a la implementación de diversos enfoques frente a los avances tecnológicos se nos es posible conocer que, una BD contiene una gran cantidad de información
Referencias bibliográficas
▷ ÁLGEBRA RELACIONAL | Fundamentos y Operaciones. 2023 (ewebik.com)
Tuplas - Aprende Python
¿Qué son DDL y DML? (qastack.mx)
¿Qué es un trigger en una base de datos? | Ayuda Ley Protección Datos (ayudaleyprotecciondatos.es)
base de datos - English translation – Linguee
ECBTI
INGENIERIA DE SISTEMAS
JUAN ESTEBAN MENDEZ DIAZ
2023
UNAD
Créditos

Otros materiales