














Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
bases de datos relacionales, esto es, el modelo relacional. Analizaremos con profundidad el modelo relacional, exponiendo su estructura,.
Tipo: Monografías, Ensayos
1 / 22
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!















En este tema expondremos sucintamente el concepto general de modelo de datos, incidiendo en los conceptos de estática y dinámica de un modelo de datos. Posteriormente analizaremos de forma detallada el modelo de datos que emplean las bases de datos relacionales, esto es, el modelo relacional. Analizaremos con profundidad el modelo relacional, exponiendo su estructura, el concepto de valor nulo en el modelo relacional y la lógica trivaluada y cuatrivaluada del modelo relacional, concluyendo con la exposición del álgebra relacional y los operadores que formalizan el modelo de consultas en una base de datos relacional. 2.1 Concepto de modelo de datos. Podemos decir, como primera aproximación, que un modelo de datos es un conjunto de conceptos que permiten describir, a distintos niveles de abstracción, la estructura de una base de datos, a la cual denominamos esquema. Según el nivel de abstracción en el que se encuentre la estructura descrita, el modelo que permite su descripción será un modelo externo (visión que tiene de la base de datos cada usuario en particular), modelo global (enfoque del conjunto de la empresa) o modelo interno (forma en que se organizan los datos en el almacenamiento físico). Los modelos externos nos permiten representar los datos que necesita cada usuario en particular con las estructuras propias del lenguaje de programación que va a emplear. Los modelos globales ayudan a describir los datos para el conjunto de usuarios, podríamos decir que es la información a nivel de empresa; y, por último, los modelos internos están orientados a la máquina, siendo sus elementos de descripción punteros, índices, agrupamientos, etc. Los modelos que tienen un mayor interés son los modelos globales, ya que los externos utilizan los mismos conceptos y los internos no están estandarizados ni existen en realidad como tales modelos, sino que son propios de cada uno de los productos comerciales. Los modelos globales se clasifican, a su vez, en conceptuales y convencionales.
varía mientras no varíe el mundo real que éste describe; en tanto que una ocurrencia del esquema, es decir, los datos contenidos en él, son distintos en el transcurso del tiempo. Una vez llegados a este punto, podemos definir de forma más precisa, un modelo de datos como un conjunto de conceptos, reglas y convenciones que nos permiten describir y manipular (consultar y actualizar) los datos de un cierto mundo real que deseamos almacenar en la base de datos. Las propiedades del modelo de datos son de dos tipos: estáticas , o relativamente invariantes con el tiempo, que responden a lo que se suele entender como estructura; y dinámicas , que son las operaciones que se aplican a los datos o valores almacenados en las estructuras, los cuales varían en el transcurso del tiempo al aplicárseles dichas operaciones. 2.1.1 Estática de un modelo de datos. La estática de un modelo de datos está compuesta por elementos permitidos y elementos no permitidos o restricciones. Los elementos permitidos difieren según el modelo de datos, pero en general son:
toma el código, nombre, apellidos, etc.); el grado (número de atributos) y la cardinalidad (número de tuplas). Conviene aclarar en este punto el concepto de dominio expuesto en el párrafo anterior. Un dominio es un conjunto finito de valores homogéneos y atómicos caracterizado por un nombre. Los valores son homogéneos porque son todos del mismo tipo y atómicos porque son indivisibles en el modelo, pues si se descomponen pierden la semántica asociada a los mismos. Así, si hablamos del dominio de nacionalidades, la nacionalidad “española” es atómica, pues si se descompone en sus letras pierde el sentido semántico, ya que las letras aisladas pierden el significado de una nacionalidad. Además, conviene resaltar que aunque una relación se represente en forma de tabla, tiene una serie de elementos que la distinguen de una tabla, ya que no se admiten filas duplicadas, las filas y columnas no están ordenadas y es plana, es decir, en el cruce de una fila y de una columna sólo puede haber un valor. La representación en forma de tabla ha conducido a que los usuarios utilicen el nombre de tabla para denominar las relaciones y, como consecuencia de ello, se llame filas a las tuplas y columnas a los atributos. En la figura 2.2.1.3 se tiene una comparación de la terminología de relación, tabla y fichero. RELACIÓN CARDINALIDAD GRADO ATRIBUTO TUPLA TABLA Nº DE FILAS Nº DE COLUMNAS COLUMNA FILA FICHERO Nº DE REGISTROS Nº DE CAMPOS CAMPO REGISTRO Figura 2.2.1.3: Comparación de la terminología de relación, tabla y fichero. 2.2.2 Concepto de valor nulo en el modelo relacional. Si bien los valores nulos no son un concepto exclusivo del modelo relacional, ha sido en el contexto de este modelo donde se ha abordado su estudio de manera más sistemática y donde se están realizando más investigaciones a fin de formalizar su tratamiento. Se puede definir el valor nulo (también denominado valor ausente) como una señal utilizada para representar información desconocida, inaplicable, inexistente, no válida, no proporcionada, indefinida, etc. Su necesidad en las bases de datos es evidente por diversas razones:
nuestra lógica habitual, que haber recuperado todos los libros de la base de datos; pero esto puede no ser así, ya que no habría recuperado los libros cuyo año de edición se desconoce, es decir, cuyo año de edición es nulo. Por ello, expresiones como X = X, siendo X una variable o p OR NOT(p), siendo p una expresión condicional, que son siempre ciertas en el mundo real, no se cumplen en la L3V (pues X puede ser quizás y la tautología p OR NOT(p) no cubre el caso quizás), lo que afecta a las equivalencias algebraicas que se utilizan en las leyes de transformación en la optimización de consultas. El propio Codd afirma que esta parte del modelo relacional no presenta un fundamento teórico tan sólido como las otras, por lo que propone añadir a L3V capacidades de inferencia que permitan detectar tautologías, como por ejemplo p OR NOT(p) OR quizás. Los problemas de la L3V se agravan aún más si cabe en la práctica, ya que los productos relacionales no siempre implementan los valores nulos de una manera consistente. Por estos motivos algunos expertos propugnan evitar los valores nulos mediante la utilización de valores por defecto. Este enfoque presenta los siguientes problemas:
2.2.2.2 Lógica cuatrivaluada. La lógica cuatrivaluada surge de la necesidad de diferenciar dos tipos importantes de valores nulos: inaplicables , esto es, que no tienen sentido, de desconocidos aplicables , es decir, que momentáneamente son desconocidos pero deberían existir y puede que, en un determinado momento, lleguen a conocerse. Esta diferencia, que puede parecer académica en exceso, es de hecho muy importante para reflejar con más precisión la semántica del universo del discurso a tratar y para responder de manera más inteligente a las consultas que se realicen sobre la base de datos. En la lógica cuatrivaluada se distingue, por tanto, entre un valor nulo o marca que representa información desconocida pero aplicable, que denominaremos “a”, de otro que representa información inaplicable, que denominaremos “i”. En este caso las operaciones aritméticas quedan modificadas como sigue, siendo & un operador aritmético (suma, resta, multiplicación o división) y “x” un valor no nulo de la base de datos: x & a = a & x = a x & i = i & x = i a & i = i & a = i a & a = a i & i = i En la figura siguiente (figura 2.2.2.2.1) se muestran las tablas de verdad para la lógica cuatrivaluada, con los valores C (cierto), A (aplicable), F (falso) e I (inaplicable). AND C A F C C A A A A F F F F F F I I I I I F I F I OR C A F C C C A C A F C A C A F I I C A C F A F I NOT C A F F A C I I Figura 2.2.2.2.1: Tablas de verdad de la lógica cuatrivaluada. Sin embargo, la lógica soportada por los SGBD es la lógica trivaluada, quedando la lógica cuatrivaluada como un formalismo. 2.3 Álgebra relacional. La dinámica del modelo relacional, en lo que al álgebra se refiere, constituye una colección de operadores de alto nivel que, aplicados a las relaciones, dan como resultado nuevas relaciones. Sean R y R’ dos relaciones y O un operador cualquiera del álgebra relacional. Una operación del álgebra relacional consiste en aplicar O a la relación R, obteniéndose R’. Al ser el resultado de la operación otra relación, se cumple la propiedad de cierre , es decir, si O 1 … On representan operadores, se cumple: On(…(O 1 (R)) = R’
O(R) es el resultado de una o más operaciones algebraicas; aunque también podría aplicarse este operador para almacenar una relación en otra nueva relación con nombre distinto, es decir: R’ ← R La operación de renombrado consiste en asignar nuevos nombres a los atributos de una relación (la cual puede ser el resultado de una operación algebraica); el renombrado es una operación necesaria, como veremos más adelante, en ciertos casos en los que intervienen operadores binarios, y a veces es preciso cambiar previamente en todo, o en parte, los nombres de los atributos de alguna de las relaciones que actúan como operandos. La forma de llevar a cabo el renombrado de los atributos es realizando una operación de asignación en la cual se especifican los nombres de los atributos de la relación que se encuentra a la izquierda del símbolo de asignación: RELACION_NUEVA(A 1 ,A 2 ,…,An) ← O(R) También en este caso, en lugar de O(R) se puede escribir el nombre de una relación. 2.3.2 Operador primitivo unario restricción (). Antes de comentar este operador, es necesario señalar que los operadores unarios tienen como operando una única relación; para su definición, utilizaremos la siguiente notación: Sea R(A) un esquema de relación cuyo contexto es el conjunto de atributos A definidos sobre el conjunto de dominios D: R(A) = R( A 1 : D 1 , A 2 : D 2 ,… An : Dn) La relación r(R), definida sobre el esquema R, de grado n y cardinalidad m estará constituida por un conjunto de m tuplas:
m r R = ti i = donde ti = < vi1, vi2,…, vin> / vij ∈ Dj La restricción, también llamada selección, de una relación mediante una expresión lógica (predicado de selección), da como resultado una relación formada por el subconjunto de tuplas que satisface dicha expresión. La relación resultante constituye un subconjunto horizontal de r(R). Formalmente, sea un operador de comparación (<, >, =, ⇔, ≥ , ≤ , ≠ ) y p un predicado de selección, formado por una expresión lógica integrada por cláusulas de la forma: Ai Aj o Ai constante, unidas por los operadores booleanos AND, OR, NOT. El operador selección (aplicado a la relación R con el predicado p) se denota p(R) y produce una relación, cuyo esquema será el mismo (es decir, R) y cuya extensión r’ será: r’(R) = { ti ∈ r(R) / p(ti) = “cierto”}
El grado de la relación resultante será por tanto n, es decir, el mismo que el de la relación R y su cardinalidad m’ ⇔ m. La aplicación consecutiva del operador de selección a una relación, pn(pn-1... ( 1 (R))),es igual a una única operación de restricción con todos los predicados p 1 , p 2 ,…, pn, unidos por el operador booleano AND: p1 y p2 … y pn. En la figura 2.3.2.1 puede verse un ejemplo de aplicación del operador restricción. σPROFESOR CODIGO NOMBRE APELLIDOS H H H H H Antonio Amparo Isabel José Carlos García García Pérez Pérez Fernández Fernández Hernández Hernández Martínez Martínez CATEGORIA Catedrático Ayudante Titular Ayudante Titular CODIGO NOMBRE APELLIDOS CATEGORIA H H Amparo José Pérez Pérez Hernández Hernández Ayudante Ayudante σcategoria=ayudante(PROFESOR) Figura 2.3.2.1: Ejemplo de aplicación del operador restricción. 2.3.3 Operador primitivo unario proyección (). La proyección de una relación sobre un subconjunto de sus atributos es una relación definida sobre ellos, eliminando las tuplas duplicadas que hubieran podido resultar; es, por tanto, un subconjunto vertical de la relación a la que se aplica el operador. Formalmente, sea X un subconjunto estricto y no vacío de A: X ⊂ A y X ≠ , la aplicación del operador de proyección a R en el contexto de X, que se denota por x(R) será una relación r’ cuyo esquema es R’(X) y cuya extensión es el conjunto de tuplas de la relación original definidas sobre los atributos X, eliminando las que resultan duplicadas, es decir: r’(R’) = {ti(X) / X ⊂ A} El grado n’ y la cardinalidad m’ de la relación resultante cumplen n’<n y m’≤ m, siendo n y m el grado y la cardialidad de la relación original, respectivamente. En la figura 2.3.3.1 puede verse un ejemplo de aplicación del operador proyección.
σPROFESOR CODIGO NOMBRE APELLIDOS H H H Antonio Amparo Isabel García García Pérez Pérez Fernández Fernández CATEGORIA Catedrático Ayudante Titular PDI CODIGO NOMBRE APELLIDOS H H H Isabel José Carlos Fernández Fernández Hernández Hernández Martínez Martínez TRABAJO Titular Ayudante Titular Figura 2.3.4.1: Ejemplo de dos relaciones compatibles en sus esquemas en las que los nombres de los atributos no coinciden. La unión de dos relaciones r 1 y r 2 con esquemas compatibles R1 y R2 es otra relación definida sobre el mismo esquema de relación y cuya extensión estará constituida por el conjunto de tuplas que pertenezcan a r 1 o a r 2 (se eliminarán las tuplas duplicadas puesto que se trata de un conjunto). Formalmente, sean dos relaciones r 1 y r 2 con esquemas R1 y R2 compatibles, la unión de ambas, denotada por: R1∪R2 será una relación con esquema R (R es igual a R1 o a R2 ya que ambos son equivalentes) y con extensión r: r(R) = {ti / ti ∈ r 1 ∨ti ∈ r 2 } En la figura 2.3.4.2 puede verse un ejemplo de aplicación de la operación unión. σPROFESOR CODIGO NOMBRE APELLIDOS H H H Antonio Amparo Isabel García García Pérez Pérez Fernández Fernández CATEGORIA Catedrático Ayudante Titular PDI CODIGO NOMBRE APELLIDOS H H H Isabel José Carlos Fernández Fernández Hernández Hernández Martínez Martínez CATEGORIA Titular Ayudante Titular CODIGO NOMBRE APELLIDOS H H H H H Antonio Amparo Isabel José Carlos García García Pérez Pérez Fernández Fernández Hernández Hernández Martínez Martínez CATEGORIA Catedrático Ayudante Titular Ayudante Titular PROFESOR ∪PDI Figura 2.3.4.2: Ejemplo de aplicación de la operación unión. 2.3.5 El operador primitivo binario diferencia (-). La diferencia de dos relaciones r 1 y r 2 con esquemas compatibles R1 y R2 es otra relación definida sobre el mismo esquema de relación y cuya extensión estará constituida por el conjunto de tuplas que pertenezcan a r 1 pero no a r 2. Formalmente, sean dos relaciones compatibles, con esquemas R1 y R2, la diferencia de ambas denotada por R1-R2 será una relación con esquema R (R es igual a R1 o a R2 ya que ambos son equivalentes) y con extensión r: r(R) = {ti / ti ∈ r 1 ∧ti ∉ r 2 }
En la figura 2.3.5.1 puede verse un ejemplo de aplicación de la operación diferencia. σPROFESOR CODIGO NOMBRE APELLIDOS H H H Antonio Amparo Isabel García García Pérez Pérez Fernández Fernández CATEGORIA Catedrático Ayudante Titular PDI CODIGO NOMBRE APELLIDOS H H H Isabel José Carlos Fernández Fernández Hernández Hernández Martínez Martínez CATEGORIA Titular Ayudante Titular CODIGO NOMBRE APELLIDOS H H Antonio Amparo García García Pérez Pérez CATEGORIA Catedrático Ayudante PROFESOR - PDI Figura 2.3.5.1: Ejemplo de aplicación de la operación diferencia. 2.3.6 El operador primitivo binario producto cartesiano generalizado (x). El producto cartesiano generalizado de dos relaciones de cardinalidades m 1 y m 2 es una relación definida sobre la unión de los atributos de ambas relaciones y cuya extensión estará constituida por las m 1 x m 2 tuplas formadas concatenando cada tupla de la primera relación con cada una de las tuplas de la segunda (obsérvese que aquí no se exige que las dos relaciones sean compatibles en sus esquemas). Formalmente, sean las relaciones r 1 y r 2 con esquemas R1 y R2 el producto de ambas , denotado R1 x R2, será una relación de grado n 1 +n 2 cuyo esquema R estará formado por los n 1 +n 2 atributos A1∪A2, es decir: (A1i : D1i ,…, A1n1 : D1n1, A2i’ : D2i’ ,…, A2n2 : D2n2) Y cuya extensión, de cardinalidad m x m’ sera: {<V1i1,…,V1in1,V2j1,…,V2jn2> / ∀i ∀j (<V1i1,…,V1in1> ∈ r 1 ∧< V2j1,…,V2jn2> ∈ r 2 )} En la figura 2.3.6.1 puede verse un ejemplo de aplicación del operador producto cartesiano generalizado. PROFESOR ASIGNATURA NUMERO DESCRIPCION 10000 10001 10002 Tratamiento de datos Análisis estadístico Cálculo numérico CODIGO NOMBRE APELLIDOS H H Antonio Amparo García García Pérez Pérez CATEGORIA Catedrático Ayudante CODIGO NOMBRE APELLIDOS H H H H H H Antonio Antonio Antonio Amparo Amparo Amparo García García García García García García Pérez Pérez Pérez Pérez Pérez Pérez CATEGORIA Catedrático Catedrático Catedrático Ayudante Ayudante Ayudante NUMERO NOMBRE 10000 10001 10002 10000 10001 10002 Tratamiento de datos Análisis estadístico Cálculo numérico Tratamiento de datos Análisis estadístico Cálculo numérico PROFESOR X ASIGNATURA Figura 2.3.6.1: Ejemplo de aplicación de la operación producto cartesiano generalizado. 2.3.7 El operador derivado binario combinación (|X|).
Como puede observarse, la combinación es un producto cartesiano seguido de restricción, y la combinación natural es un producto cartesiano seguido de una restricción por igualdad y de proyección. 2.3.8 El operador derivado binario intersección (∩). La intersección de dos relaciones R1 y R2 compatibles en su esquema es otra relación definida sobre el mismo esquema de relación y cuya extensión estará constituida por las tuplas que pertenezcan a ambas relaciones. Formalmente, sean dos relaciones compatibles con esquemas R1 y R2, la intersección de ambas, denotada por será una relación r con esquema R (igual a R1 o a R2 ya que ambos son equivalentes y con extensión: r(R) = {ti / ti ∈ r 1 ∧ti ∈ r 2 } En la figura 2.3.8.1 puede verse un ejemplo de aplicación del operador intersección. σPROFESOR CODIGO NOMBRE APELLIDOS H H H Antonio Amparo Isabel García García Pérez Pérez Fernández Fernández CATEGORIA Catedrático Ayudante Titular PDI CODIGO NOMBRE APELLIDOS H H H Isabel José Carlos Fernández Fernández Hernández Hernández Martínez Martínez CATEGORIA Titular Ayudante Titular CODIGO NOMBRE APELLIDOS H0003 Isabel Fernández Fernández CATEGORIA Titular PROFESOR n^ PDI Figura 2.3.8.1: Ejemplo de aplicación del operador intersección. La intersección se puede definir en función de la diferencia como R1 ∩ R2 = R
PROFESOR_ASIGNATURA ASIGNATURA CODIGO NOMBRE APELLIDOS H H H H H H H H000 4 H H Antonio Antonio Amparo Amparo Amparo Isabel José José Carlos Carlos García García García García Pérez Pérez Pérez Pérez Pérez Pérez Fernández Fernández Hernández Hernández Hernández Hernández Martínez Martínez Martínez Martínez CATEGORIA Catedrático Catedrático Ayudante Ayudante Ayudante Titular Ayudante Ayudante Titular Titular ASIGNATURA 10000 10002 ASIGNATURA 10000 10001 10000 10001 10002 10003 10002 10003 10000 10002 CODIGO NOMBRE APELLIDOS CATEGORIA H H Amparo Carlos Pérez Pérez Martínez Martínez Ayudante Titular
Figura 2.3.9.1: Ejemplo de aplicación del operador división. La división se puede expresar en función de la proyección, del producto cartesiano y de la diferencia de la siguiente forma: R1 : R2 = C(R1) – C (R2 X C (R1) – R1) Siendo C el conjunto de atributos de A menos B. 2.3.10 Operadores adicionales de consulta. A fin de mejorar el poder expresivo del álgebra relacional se han introducido ciertos operadores adicionales que no pueden considerarse como derivados dado que no es posible expresarlos en función de los operadores primitivos. Tales operadores son la agrupación (“group by”) y el cierre transitivo. 2.3.10.1 Agrupación. Para aplicar funciones de agregación (frecuencia, suma, media, etc.), podemos agrupar tuplas en subconjuntos que posean valores comunes de ciertos atributos, como puede verse en la figura 2.3.10.1.1. PROFESOR CODIGO NOMBRE APELLIDOS H H H H H Antonio Amparo Isabel José Carlos García García Pérez Pérez Fernández Fernández Hernández Hernández Martínez Martínez CATEGORIA Catedrático Ayudante Titular Ayudante Titular SALARIO 3500 1500 2400 1600 2600 CATEGORIA MEDIA(SALARIO) Catedrático Ayudante Titular 3500 1550 2500 PROFESOR AGRUPACION_POR CATEGORIA,MEDIA(SALARIO)
José, Hernández Hernández, Ayudante> y <H0005, Carlos, Martínez Martínez, Titular> no aparecen en la relación resultante al no combinarse con ninguna tupla de la relación ASIGNATURA, es decir, se pierde esta información. Para evitar que las tuplas de una relación que no casan con ninguna tupla de la otra desaparezcan en el resultado, podemos aplicar el operador de combinación externa que concatena esas tuplas con tuplas cuyos atributos tienen valores nulos, obteniéndose así, para el ejemplo anterior, el resultado que aparece en la figura 2.3.11.1.1. PROFESOR_ASIGNATURA PROFESOR ASIGNATURA CODIGO NOMBRE APELLIDOS H H H H H Antonio Amparo Isabel José Carlos García García Pérez Pérez Fernández Fernández Hernández Hernández Martínez Martínez CATEGORIA Catedrático Ayudante Titular Ayudante Titular NUMERO DATOS 10000 10001 10002 Tratamiento de datos Análisis estadístico Cálculo numérico PROFESOR H H H CODIGO NOMBRE APELLIDOS CATEGORIA NUMERO DATOS 10000 10001 10002 NULL NULL NULL Tratamiento de datos Análisis estadístico Cálculo numérico NULL NULL NULL H H H H H H Antonio Antonio Amparo Isabel José Carlos García García García García Pérez Pérez Fernández Fernández Hernández Hernández Martínez Martínez Catedrático Catedrático Ayudante Titular Ayudante Titular
(PROFESOR.CODIGO=ASIGNATURA.PROFESOR) Figura 2.3.11.1.1: Ejemplo de aplicación del operador de combinación externa. En este caso basta con aplicar el operador de combinación externa izquierda (representado por /*), ya que se desean guardar todas las tuplas de la tabla que está a la izquierda, siendo en la segunda relación donde hay que crear tuplas nulas. Para el caso simétrico, esto es, cuando se desea que no se pierda ninguna tupla de la tabla que está a la derecha, será necesario crear tuplas en la primera tabla, utilizándose el operador de combinación externa derecha (representado por /). Puede en algún caso ser necesario crear tuplas nulas en ambas relaciones, denominándose en este caso el operador combinación externa simétrica (representado por //). 2.3.11.2 Operadores “posible” (maybe). Otro tipo de operadores que tienen en cuenta los valores nulos son los denominados “posibles” (maybe), los cuales utilizan la lógica trivaluada y admiten como tuplas resultantes no sólo las que cumplen el valor cierto en una comparación, sino también las que cumplen puede ser cierto. Por ejemplo, en la figura 2.3.11.2.1 se presenta el caso de una combinación por igualdad de las relaciones R1 y R2, resultando la relación R3. Ahora bien, aplicando la combinación “posible”, el número de tuplas resultante es considerablemente superior, ya que la primera tupla de la relación A<1,5> no sólo se combina con la tupla <5,3> de la relación R2, sino que también se combina con la <”nulo, 6> y <”nulo, 7>.
b=c R1 R b=c MAYBE R1 R R a 1 1 2 Nulo 3 b 5 Nulo 4 2 Nulo R c 5 2 Nulo Nulo d 3 4 6 7 a b c d 1 Nulo 5 2 5 2 3 4 a b c d 1 1 1 1 1 1 1 2 2 Nulo Nulo Nulo 3 3 3 3 5 5 5 Nulo Nulo Nulo Nulo 4 4 2 2 2 Nulo Nulo Nulo Nulo 5 Nulo Nulo 5 2 Nulo Nulo Nulo Nulo 2 Nulo Nulo 5 2 Nulo Nulo 3 6 7 3 4 6 7 6 7 4 6 7 3 4 6 7 Figura 2.3.11.2.1: Ejemplo de combinación posible simétrica. El operador “maybe” se puede aplicar con cualquier otro operador donde pueda producirse una comparación en la que intervengan valores nulos; por ejemplo con la restricción. Así en la figura 2.3.11.2.2 se representa el resultado de aplicar el operador “maybe” al resultado de la operación de combinación externa de la figura 2.3.11.2.2.
PROFESOR_ASIGNATURA CODIGO NOMBRE APELLIDOS CATEGORIA NUMERO DATOS 10000 10001 10002 Nulo Nulo Nulo Tratamiento de datos Análisis estadístico Cálculo numérico Nulo Nulo Nulo H H H H H H Antonio Antonio Amparo Isabel José Carlos García García García García Pérez Pérez Fernández Fernández Hernández Hernández Martínez Martínez Catedrático Catedrático Ayudante Titular Ayudante Titular CODIGO NOMBRE APELLIDOS CATEGORIA NUMERO DATOS H0002 Amparo Pérez Pérez Ayudante 10002 Cálculo numérico CODIGO NOMBRE APELLIDOS CATEGORIA NUMERO DATOS 10002 Nulo Nulo Nulo Cálculo numérico Nulo Nulo Nulo H H H H Amparo Isabel José Carlos Pérez Pérez Fernández Fernández Hernández Hernández Martínez Martínez Ayudante Titular Ayudante Titular
Figura 2.3.11.2.2: Ejemplo de aplicación del operador “maybe” sobre la operación restricción. 2.4 Ejercicios de álgebra relacional. Dadas las relaciones mostradas a continuación: