Fundamentos de las Bases de Datos

Lógica Proposicional. Algebra Relacional. Calculo Relacional. Dependencias Funcionales. Esquema Lógico

  • Enviado por: Rogelio Moreno
  • Idioma: castellano
  • País: España España
  • 3 páginas
publicidad

SOLUCIONES

Esquema Lógico ALGO

TITULO(

NTIT: domCod

NOMBRE: domNom

EDITORIAL: domCadena

PRECIO: domMoneda

CP (NTIT) )

PROPIO (

NTIT: domCod

CP (NTIT)

CAj (NTIT) ! TITULO )

AJENO (

NTIT: domCod

CP (NTIT)

CAj (NTIT) ! TITULO )

TOMO (

NTIT: domCod

NUM: domEntero

PAGINAS: domEntero

CP (NTIT, NUM)

CAj (NTIT) ! PROPIO )

ARTÍCULO (

NTIT: domCod

NUM: domEntero

NUMA: domEntero

TEMA: domCadena

PROG: domLetra

CP (NTIT, NUM, NUMA)

CAj (NTIT, NUM) ! TOMO

CAj (PROG) ! PROGRAMA

VNN (PROG) )

PROGRAMA (

PROG: domLetra

DESCRIPCIÓN: domCadena

CP (PROG) )

Todas las preguntas están referidas al esquema de BD relacional anterior.

  • (1 punto)

  • Card(PROPIO, esUn1)= (1,1) Card(TÍTULO, esUn1)= (0,1)

  • Card(AJENO, esUn2)= (1,1) Card(TÍTULO, esUn2)= (0,1)

  • Card(PROPIO, tiene)= (0,n) Card(TOMO, tiene)= (1,1)

  • Card(ARTÍCULO, estaEn)= (1,1) Card(TOMO, estaEn)= (0,n)

  • Card(PROGRAMA, contiene)= (0,n) Card(ARTÍCULO, contiene)= (1,1)

  • (1.25 puntos)

  • Marca con un círculo la respuesta correcta y justifica esa respuesta.

  • Todos los artículos están en al menos un tomo

  • VERDADERO. La clave ajena a TOMO está dentro de la clave primaria

  • Puede haber programas sin artículos

  • VERDADERO. No existe en la tabla PROGRAMA clave ajena que la relacione con ARTÍCULO (que es quien, en realidad, tiene la clave ajena hacia PROGRAMA).

  • Todos los artículos pertenecen obligatoriamente a uno y sólo a un título

  • VERDADERO. si lo interpretamos como que cada artículo sólo pertenece a un único título (y siempre pertenece al menos a uno); la clave ajena de ARTÍCULO hacia TOMO (que siempre tiene valor por formar parte de la clave primaria), de este último hacia PROPIO y de éste hacia TÍTULO (que por la misma razón siempre tienen valor) así lo refleja.

    FALSO, si la interpretación del enunciado es que “todos los ARTÍCULOS pertenecen al mismo artículo”.

  • Sólo los propios pueden tener artículos

  • VERDADERO, puesto que la relación es de ARTÍCULO a TOMO y de TOMO a PROPIO y no a AJENO.

    (Se admite también FALSO, si se tiene en cuenta la tabla PROGRAMA)

  • Puedo tener programas sin descripción

  • VERDADERO, descripción es un atributo que admite nulos.

  • Sólo hay, como máximo, un tomo por cada propio

  • FALSO, puesto que la clave ajena de TOMO hacia PROPIO admite duplicados al ser sólo parte de la clave primaria.

  • (0.5 o 1 punto: dos respuestas correctas al menos)

  • Especifica en las casillas al lado de cada fórmula los conceptos que se están cubriendo con ella

    (se suponen todas las variables declaradas adecuadamente)

  • "P( programa(P) ! "A(artículo(A) " A.prog = P.prog ))

  • "A(artículo(A) ! "P(programa(P) " A.prog = P.prog ))

  • "PP( propio(PP) ! "T(título(T) " T.ntit = PP.ntit )) " "AJ( ajeno(AJ) ! "T(título(T) " T.ntit = AJ.ntit )) " "T(título(T) ! "AJ( ajeno(AJ) " T.ntit = AJ.ntit ) " "PP( propio(PP) " T.ntit = PP.ntit ))

  • a) 2, 3

    b) 1, 2

    c) 1, 2, 3, 5

  • Integridad Referencial

  • Restricción de Existencia

  • Integridad de Clave

  • Restricción de dependencia de identificador

  • Generalización

  • (0.25 + 0.5) puntos

  • Resuelve los siguientes enunciados en Álgebra Relacional

  • Tema de los artículos que aparecen en el título de nombre “Título primero”

  • articulo[ntit, tema] " (titulo donde nombre = “Título primero”) [tema]

  • Programas que no contienen artículos o contienen todos los artículos.

  • programa[prog] - (articulo[prog])

    "

    articulo[prog, ntit, num, numa] ÷ articulo[ntit, num, numa]

  • (de 0 a 0.5 punto)

  • T: TOMO; A: ARTÍCULO

    { T.páginas | tomo(T) ! "A(artículo(A) " A.num = T.num " A.ntit = T.ntit ) }

    donde G = tomo(T) ! "A(artículo(A) " A.num = T.num " A.ntit = T.ntit )

    Supongamos un valor de T " dom(G):

  • ¿cuál es el valor de la evaluación de G?

  • Verdadero

    ¿cómo has llegado a ese resultado?

    Si x " dom(G) entonces tomo(T) es FALSO, y una implicación con FALSO como antecedente siempre se evalúa a VERDADERO.

  • A la vista de la respuesta anterior, ¿la fórmula es segura?

  • NO

    ¿por qué?

    Hemos visto que un valor de la variable libre T es capaz de hacer la fórmula cierta sin pertenecer al dominio

  • (de 0 a 0.75 puntos)

  • Si no disponemos de más información que el propio esquema lógico, ¿qué estrategias para mantener la integridad referencial se pueden aplicar y dónde?

  • En el esquema lógico ALGO todas las claves ajenas se pueden aplicar las estrategias de RECHAZAR o PROPAGAR. ANULAR no se puede utilizar puesto que ninguna clave ajena admite nulos.

  • Supongamos que la estrategia ante borrados de todas las claves ajenas es propagar: si borramos una tupla de título, ¿qué otras tablas examinaría el Sistema de Gestión de Bases de Datos?

  • PROPIO Y AJENO, TOMO por el borrado en PROPIO, y ARTÍCULO por el borrado en TOMO.

  • (de 0 a 0.75 puntos)

  • C1

    C2

    C3

    C4

    C5

    1

    A

    Xx

    300

    12

    1

    B

    Yy

    250

    5

    3

    A

    Xx

    12

    4

    A

    Xx

    120

    12

    4

    B

    Yy

    115

    5

    4

    C

    5

    Si aseguramos que para cada valor de C2 le corresponde siempre el valor de C3 tal como aparece en la tabla, ¿qué podemos decir sobre su forma normal?

    La clave primaria sólo puede ser (c1, c2) o (c1, c2, c5), bien por la existencia de duplicados, bien de nulos en las columnas o combinaciones de las mismas. En ambos casos, la tabla está en primera y no en segunda forma normal, puesto que c3 depende funcionalmente de forma no completa de la clave primaria.

    ¿qué anomalía se puede producir al insertar una nueva tupla?

    Podríamos crear una inconsistencia puesto que nada nos impide poner distintos valores de c3 para el mismo valor de c2.

    C1

    C2

    C3

    C4

    C5

    1

    A

    Xx

    300

    12

    1

    B

    Yy

    250

    5

    3

    A

    Xx

    12

    4

    A

    Xx

    120

    12

    4

    B

    Yy

    115

    5

    4

    C

    5

    5

    A

    Zz

    15

    O nos obligaría (si no normalizamos) a revisar los valores anteriores de c3 para evitar la inconsistencia.

    ¿y al borrar?

    Podríamos perder información relevante. Si suponemos que c4 y c5 dependen funcionalmente de forma completa de c1, entonces la eliminación de una ocurrencia del objeto representado por c1 nos obliga a borrar los datos correspondientes a (c2, c3): si estos valores no aparecen en ninguna otra tupla de la relación perderemos las características de ese objeto representado por ese valor de c2. Si borráramos las filas con valor de c1=1 y c1=4, perderíamos la información de los objetos c2=C y c2=B.

    ¿y al modificar?

    Sería posible llevar a la BD a un estado inconsistente puesto que, al igual que en la inserción, podríamos tener distintos valores de c3 para el mismo valor de c2, bien por la actualización de c2 o por la de c3. Nuevamente, la solución pasaría por un proceso externo que velara por la integridad de los datos.

    3