Esquema Lógico Viajes LÍNEA(letra: domLetra, destino: domDestino) CP: letra AUTOBÚS(letra: domLetra, número: domNum, matrícula: domMat, capacidad: entero) CP: (letra, número) CAlt: matrícula CAj: letra ! LÍNEA CLIENTE(dni: domDni, nombre: domNombre, teléfono: domTlf) CP: (dni) RESERVA(letra: domLetra, número: domNum, dni: domDni, asiento: entero) CP: (letra, número, dni, asiento) CAj: (letra, número) ! AUTOBÚS CAj: (dni) ! CLIENTE P1 0.5 puntos Dado el esquema lógico VIAJES especifique las siguientes restricciones de correspondencia entre clases de objetos: Card(AUTOBÚS, LÍNEA)= Card(CLIENTE, RESERVA)= Card(AUTOBÚS, RESERVA)= P2 1 punto (ó 0.75 puntos si se da una única respuesta no correcta) Basándose en el esquema lógico VIAJES responda verdadero o falso y por qué (con la máxima BREVEDAD) a las siguientes afirmaciones: a) Una línea puede tener varios destinos o paradas. b) Un cliente sólo puede tener un único número de teléfono. c) Todos los clientes tienen un teléfono de contacto. d) Un cliente puede reservar varios asientos en un mismo autobús. e) Un autobús puede cubrir varias líneas. f) Un autobús siempre tiene asignada al menos una línea. g) A un destino sólo puede llegar una única línea de autobuses. P3 (0.5+0.25+0.75) = 1.5 punto A partir del mismo esquema lógico, obtenga las expresiones en álgebra relacional que resuelven los siguientes requerimientos 1 a) Destinos que necesitan más de un autobús b) Nombre y teléfono de contacto de todos aquellos clientes que reservaron billete para el autobús número 2 de la línea Z. c) Si el SGBD que mantiene el esquema lógico de Viajes únicamente permite definir la clave primaria de cada tabla, expresa el resto de restricciones reflejadas en la tabla autobús en Cálculo relacional orientado a tuplas. P4 (0.25 + 0.75) = 1 punto a) Defina todas las restricciones de cardinalidad de las relaciones del esquema EER adyacente. b) Responda a las siguientes preguntas con verdadero, falso (cada respuesta no correcta resta 0.25 puntos): − Una persona puede ser otorgante en varias escrituras. − Una entidad es necesariamente una persona o una empresa, pero no ambos a la vez. − Una empresa puede ser primer y segundo otorgante en la misma escritura. − Una empresa sólo puede ser representada por una única persona en cada escritura. − Una escritura la firma un único notario: cierto − Ser otorgante significa, obligatoriamente, ser persona o empresa. P5 1 punto Dado el siguiente diagrama de dependencias funcionales comente qué entendemos por anomalías de actualización que justifican la necesidad del proceso de normalización. 2 P6 (0.25 + 0.75) = 1 punto a) Demuestre que la siguiente fórmula es no segura: "y( COMPRA(y, x) ! CLIENTE(x) ) b) Explique, basándose en la fórmula anterior, por qué no se deben utilizar las fórmulas no seguras para interrogar a una base de datos relacional. CUESTIONARIO 10 de febrero de 1998 fundamentos de las bases de datos Dpto. Lenguajes y Sistemas Informáticos Escuela Politécnica Superior de Alicante http://www.dlsi.ua.es/asignaturas/fbd/fbd.htm Si estamos hablando de que al cambiar el tipo de datos del DNI en el esquema lógico de nuestra BD los aplicativos de stockaje no necesitan recompilarse, estamos hablando de: • integridad de datos • independencia de datos • seguridad de datos Si al introducir un DNI en mi base de datos me equivoco y la aplicación me permite introducir como tal la cadena "Pepe López", estamos controlando mal la: • independencia de los datos • integridad de los datos • ninguna de las dos anteriores Una de las ventajas de la arquitectura cliente−servidor es que: • el servidor sólo satisface peticiones de datos, y el cliente de procesar estos datos • se le pueden "colgar" tantos terminales como el sistema operativo o el hardware permita, pudiendo varios usuarios trabajar al mismo tiempo. • centralizar grandes bases de datos en una sola máquina servidor, eliminando toda redundancia posible. Si todo valor de clave ajena ha de aparecer en la tabla a la que referencia, nos estamos refiriendo a: • integridad referencial. • restricciones de cardinalidad mínima uno. • a las dos anteriores al mismo tiempo. El diccionario de datos es una herramienta • que se usa para asignar a cada dato almacenado en nuestra base de datos su significado en el sistema de información real que se pretende representar • que guarda toda la información necesaria para el SGBD sobre los datos almacenados en sus bases de datos • utilizada únicamente en los SGBD basados en modelos de datos primitivos. Una restricción de correspondencia entre clases de objetos de cardinalidad mínima 3 • indica la existencia de tres claves ajenas. • no es real, nunca se puede dar en ningún sistema de información. • nos dice que la ocurrencia del objeto estará presente en la agregación al menos tres veces. 3 El concepto de fórmula segura • es propio del cálculo de predicados de primer orden. • siempre se evalúa a cierto si trabaja con variables libres o ligadas con un cuantificador existencial y a falso si se evalúan variables ligadas por un cuantificador universal • alude al hecho de que existen datos pertenecientes al universo de discurso que no están almacenados en nuestra BD. Para mejorar la independencia de datos en un SGBD • se define su estructuración en esquemas • se eliminan las redundancias innecesarias de datos • se programan aplicaciones en vez de utilizar directamente el interfaz de usuario del SGBD. El modelo Entidad−Relación Extendido: • es un modelo de datos semántico que permite reflejar fielmente todas las restricciones estáticas de un sistema de información pero sin embargo no puede reflejar las dinámicas. • es un modelo de datos en el que se recoge fielmente la restricción de dependencia de identificador pero no las propiedades de cobertura de una generalización. • es un modelo de datos en el que las agregaciones se representan bien como rectángulos o bien como polígonos de n lados donde n es el número de entidades que se agregan (a excepción de cuando son 2 que se representa con un rombo). La definición de claves ajenas en las tablas se realiza: • para mejorar la granularidad. • para velar por la seguridad de los datos. • ninguna de las anteriores. Los esquemas externos se pueden ver como: • descripciones de subconjuntos de datos y relaciones entre ellos, de interés para una o varias aplicaciones dadas. • subconjuntos del esquema interno que describe toda la base de datos. • el nivel de la arquitectura de un SGBD que permite evitar el gran abismo entre esquema conceptual y esquema interno. La arquitectura a varios niveles de un SGBD: • está muy relacionada con el objetivo de independencia de datos que debe lograr un SGBD. • es el mecanismo que permite definir distintos niveles de acceso a los datos y, por tanto, velar por la seguridad de los mismos. • permite mantener los datos a distintos niveles y, por lo tanto, vela por la integridad y seguridad de los mismos. Al hablar de lenguajes: • el Cálculo Relacional de Tuplas y el Cálculo Relacional de Dominios son dos lenguajes completos relacionalmente. • sólo el Álgebra Relacional es un lenguaje completo relacionalmente. • cualquier lenguaje de manipulación de datos (LMD) que trabaje sobre una base de datos relacional se dice que es completo relacionalmente. Al hablar de claves en el Modelo Relacional: • una clave candidata de una relación siempre debe ser también clave ajena. • una clave ajena de una relación R debe coincidir en el número de columnas con el de la clave primaria de R. • una clave ajena de una relación R puede ser también la clave primaria de R. 4 Sea R una relación R(a:dom_a, b:dom_b, c:dom_c , d:dom_d) • R puede tener 3 claves candidatas (a,b), c y d. • R no puede tener más de 4 claves candidatas. • ninguna de las anteriores. Si R es una relación y A es una clave ajena de R que referencia a R2: • si A está definida como columna de Valor No Nulo, no tiene sentido que A tenga una política de anular ante actualizaciones en R2, pero sí puede tenerla ante borrados en R2. • no hay nunca que definir una política en A ante inserciones en R2, con independencia de otras características que pueda tener la columna A (Valor No Nulo, Clave Alternativa, Clave primaria,...) • A no podrá contener valores repetidos ya que referencia a la Clave primaria de R2. Al hablar de mecanismos de abstracción: • si estamos ante una generalización disjunta, una ocurrencia del objeto general se corresponde siempre con una y sólo una ocurrencia de uno de los subtipos. • si pudiésemos expresar en términos de cardinalidad la relación entre las ocurrencias de un objeto general A y las de uno de sus subtipos A1, independientemente del tipo de cobertura tendríamos card(A1, A)=(1,1). • si estamos ante una generalización total, el número total de ocurrencias del objeto general es la suma del número de ocurrencias de los distintos subtipos. Al normalizar pasamos de una forma normal a su superior: • para quedarnos con relaciones entre cuyos atributos sólo existan dependencias funcionales completas. • para conseguir trabajar con relaciones que sólo tengan una clave candidata. • ninguna de las anteriores. Hablando de fórmulas: • si tenemos una fórmula cerrada que comienza por un ð esta fórmula es segura. • si tenemos una fórmula abierta que comienza por un ð esta fórmula es segura. • el hecho de que una fórmula sea segura es independiente de la interpretación contra la que se evalúe. En Álgebra Relacional: • si A(a1,a2,...,an) y B(b1, b2,..., bn) son dos relaciones compatibles, dará el mismo resultado hacer A ð B que hacer (AxB) donde a1=b1 y a2=b2 y .... y an=bn. • si R y S son dos relaciones entre las que se puede realizar R dividido S y S es una relación de cardinalidad mayor que 1, la cardinalidad de la relación resultado será siempre menor que la cardinalidad de R. • si A y B son dos relaciones entre la que se puede realizar una concatenación, y la realizamos AconcatenadoB, la cardinalidad de la relación resultado será al menos igual a la cardinalidad de A. Al hablar de interpretaciones: • la interpretación asociada a una base de datos relacional puede variar del estado E1 de la base de datos al estado E2. • la interpretación asociada a una base de datos relacional sería conveniente que fuese modelo de todas las fórmulas que expresan las preguntas las que interrogar a esa base de datos. • si la aplicación E le asigna el conjunto vacío a todos los predicados entonces esa interpretación seguro que es modelo para el conjunto de fórmulas del lenguaje para el que se define. Al hablar de la arquitectura de un sistema de gestión de bases de datos: • el esquema externo es una visión desde el punto de vista puramente organizativo, independiente del SGBD a utilizar, de un subconjunto de la información global. 5 • la independencia física se refiere a que cambios en el esquema interno no deben afectar al esquema lógico. • la arquitectura a cuatro niveles surgió por la necesidad de introducir un nivel basado en Cálculo de Predicados de Primer Orden, esquema lógico, donde se pudiesen evaluar las fórmulas con las que interrogar una base de datos. Sea R(a: dom_a, B: dom_b, c: dom_c, d:dom_d) Clave primaria: a, y en ninguna de sus tuplas hay valores nulos. • la cardinalidad de R[ a,b] es menor que la cardinalidad de R. • la cardinalidad de R[ a,b] es igual a la cardinalidad de R. • la cardinalidad de R[ a,b] es mayor que la cardinalidad de R. Un modelo de datos: • es una representación de la realidad objeto de estudio que nos permite estructurar los datos de forma que se capte la semántica de los mismos. • debe tener como una de sus cualidades la de minimalidad, no se debe expresar un concepto en función de otros. • de los que se suele emplear como el Modelo Relacional o el Modelo Entidad−Relación Extendido, es capaz de captar las restricciones estáticas y dinámicas de un sistema de información. Al hablar de independencia de datos: • El grado de detalle con el que se definen los esquemas externos en función del esquema interno, lo que se llama granularidad, es mejor que sea a nivel de campo que a nivel de registro. • Es mejor que el momento en el que se transforman los esquemas externos usados por las aplicaciones en términos del esquema interno, se dé cuanto más tarde. • las técnicas que se suelen emplear para lograr esta independencia se clasifican en dos grandes grupo: preventivas y curativas. Si A y B son dos entidades agregadas a través de R, y A tiene una restricción de dependencia de identificador respecto a R: • card(A, R) = (0, 1) • card(A, R) = (1, 1) • card(A, R) = (1, n) Si una relación R está en 3ª Forma Normal y sólo tiene una clave candidata: • R puede tener determinantes que no sean claves candidatas. • R está también en Forma Normal de Boyce−Codd. • La clave candidata de R no puede tener más de una columna. La columna que actúa como clave ajena de una tabla puede contener valores nulos: • cuando esa tabla representa a un subtipo de una generalización y la clave ajena referencia al objeto general. • cuando esa tabla representa una relación de conectividad M:M y la clave ajena a uno de los objetos que se agregan. • ninguna de las anteriores. Al definir una interpretación para una base de datos relacional, a todos nos sale la misma porque: • en las bases de datos relacionales no hay símbolos de función y por tanto H no se define. • porque por convenio definimos tantos símbolos de constante como elementos hay en el dominio de la base de datos. • ninguna de las anteriores. 6 Sea R una relación que representa un subtipo de una generalización, si A es la única clave ajena en esta tabla que referencia a la tabla donde se recoge el objeto general: • no tiene sentido que A tenga como política ante borrados la de propagar. • no tiene sentido que A tenga como política ante actualizaciones la de propagar. • no tiene sentido que A tenga como política ante borrados la de anular. Esquema Lógico Viajes LÍNEA(letra: domLetra, destino: domDestino) CP: letra AUTOBÚS(letra: domLetra, número: domNum, matrícula: domMat, capacidad: entero) CP: (letra, número) CAlt: matrícula CAj: letra ! LÍNEA CLIENTE(dni: domDni, nombre: domNombre, teléfono: domTlf) CP: (dni) RESERVA(letra: domLetra, número: domNum, dni: domDni, asiento: entero) CP: (letra, número, dni, asiento) CAj: (letra, número) ! AUTOBÚS CAj: (dni) ! CLIENTE P1 0.5 puntos Dado el esquema lógico VIAJES especifique las siguientes restricciones de correspondencia entre clases de objetos: Card(AUTOBÚS, LÍNEA)= (1,1) Card(CLIENTE, RESERVA)= (0, n) Card(AUTOBÚS, RESERVA)= (0, n) P2 1 punto (ó 0.75 puntos si se da una única respuesta no correcta) Basándose en el esquema lógico VIAJES responda verdadero o falso y por qué (con la máxima BREVEDAD) a las siguientes afirmaciones: a) Una línea puede tener varios destinos o paradas: Falso; una línea es una fila de la tabla del mismo nombre y el valor de destino es único para cada fila. b) Un cliente sólo puede tener un único número de teléfono: Cierto; igual que antes, es un atributo que no forma parte de la clave primaria. c) Todos los clientes tienen un teléfono de contacto: Falso; el atributo admite valores nulos. d) Un cliente puede reservar varios asientos en un mismo autobús: Cierto; asiento forma parte de la clave primaria junto con las claves ajenas a autobús y cliente. e) Un autobús puede cubrir varias líneas: Falso; un autobús es o se identifica por una letra de línea y un número de autobús por lo que es evidente que la línea a la que pertenece es única (véase el ejercicio P1). 7 f) Un autobús siempre tiene asignada al menos una línea: Cierto; igual que la anterior, la clave ajena a línea forma parte de la clave primaria y no admite nulos. g) A un destino sólo puede llegar una única línea de autobuses: Falso; el atributo destino permite valores duplicados en su columna. P3 (0.5+0.25+0.75) = 1.5 punto A partir del mismo esquema lógico, obtenga las expresiones en álgebra relacional que resuelven los siguientes requerimientos a) Destinos que necesitan más de un autobús Define alias L para LÍNEA Define alias A para AUTOBÚS ( Línea ð autobús ) ð ( L ð A ) donde ( línea.destino = L.destino y (autobús.letra <> A.letra o autobús.número <> a.número) ) [ destino ] b) Nombre y teléfono de contacto de todos aquellos clientes que reservaron billete para el autobús número 2 de la línea Z. (( Cliente ð reserva ) donde reserva.número='2' y reserva.línea='Z' ) [ nombre, teléfono ] c) Si el SGBD que mantiene el esquema lógico de Viajes únicamente permite definir la clave primaria de cada tabla, expresa el resto de restricciones reflejadas en la tabla autobús en Cálculo relacional orientado a tuplas. x, y: autobús; t:línea ð x ( autobús(x) ( ð y ( autobús(y) ð x.matrícula = y.matrícula) ð ð ð z ( autobús(z) ð x.matrícula = z.matrícula ð ( (x.letra <> z.letra) ð (x.número <> z.número) ) ) ð ð t (línea(t) ð t.letra = x.letra)) La variable y se utiliza para la propiedad de valor no nulo de la clave alternativa, la variable z para la de identificación única (haciendo uso de la definición de clave primaria) y la variable t para la integridad referencial de la clave ajena. P4 (0.25 + 0.75) = 1 punto a) Defina todas las restricciones de cardinalidad de las relaciones del esquema EER adyacente. Card(escritura, participa) = (0, n) Card(otorgante, participa) = (1,1) Card(otorgante, actúaComo) = (0,1) 8 Card(otorgante, casadoCon) = (0,1) Card(otorgante, representa) = (0,n) Card(persona, casadoCon) = (0,n) Card(persona, representa) = (0,n) Card(entidad, actúaComo) = (0,n) b) Responda a las siguientes preguntas con verdadero, falso (cada respuesta no correcta resta 0.25 puntos): − Una persona puede ser otorgante en varias escrituras: cierto − Una entidad es necesariamente una persona o una empresa, pero no ambos a la vez: cierto − Una empresa puede ser primer y segundo otorgante en la misma escritura: cierto − Una empresa sólo puede ser representada por una única persona en cada escritura: falso − Una escritura la firma un único notario: cierto − Ser otorgante significa, obligatoriamente, ser persona o empresa: falso P5 1 punto Dado el siguiente diagrama de dependencias funcionales comente qué entendemos por anomalías de actualización que justifican la necesidad del proceso de normalización. Las anomalías de actualización es un fenómeno producido por la redundancia de datos que hace referencia a diversos problemas relacionados con la inserción, borrado y modificación de datos. Supongamos una ocurrencia de una tabla con los atributos y dependencias funcionales expresados en el gráfico anterior: R(a:domA, b:domB, d:domD, e:domE, h:domH) Clave Primaria: (a, b) A 1 1 2 B 1 2 1 D aa aa bb E zz zz yy H ff gg gg Las dependencias funcionales no completas de los atributos d y e con respecto al atributo a provocan que, a la hora de: Insertar nuevos datos: si quisiéramos insertar una tupla con valor de clave primaria (a = 1, b = 3) nada nos impide introducir datos distintos para los otros atributos. A 1 1 2 B 1 2 1 D aa aa bb E zz zz yy H ff gg gg 9 1 3 cc cc hh Nótese que en las dos primeras filas los valores de D y E para A=1 no són los mismos que para la nueva tupla. Si A fuera un DNI y D y E los apellidos, estaríamos almacenando en la base de datos una persona con apellidos distintos; ¿cuáles son los verdaderos entonces? Borrar tuplas: si eliminamos la tupla <2,1,bb,yy,gg> eliminamos permanentemente la información sobre el objeto identificado por la columna A. Supóngase que la tabla representa una relación de cliente con factura: al eliminar la tupla que representa al cliente 2 como pagador de la factura 1 (B=1) ya no disponemos de los datos de tal cliente, puesto que sólo aparece una vez en nuestra tabla. Modificar datos: si el valor del atributo D asociado a las tuplas con valor de A=1 debe cambiar de aa a dd, para conservar la integridad de datos deberíamos extender el proceso a todas las tuplas donde A valga 1. Nuevamente, piénsese en el ejemplo concreto de la información de un cliente al que se le debe modificar el primer apellido por un error en la introducción original de datos. El proceso de normalización tiene por objeto resolver este tipo de anomalías de actualización mediante la generación de nuevas relaciones (tablas), debidamente asociadas por claves ajenas, a partir de una primera forma normal eliminando la redundancia innecesaria. En este caso, necesitamos dos tablas, una para los datos dependientes funcionalmente del atributo A y otra con los atributos A, B y H. P6 (0.25 + 0.75) = 1 punto a) Demuestre que la siguiente fórmula es no segura: "y( COMPRA(y, x) ! CLIENTE(x) ) Veamos la variable x. Es una variable libre por lo que debemos examinar la fórmula entera. Para que sea segura, la fórmula debe evaluarse a falso con valores no pertenecientes a su dominio. Si x no pertenece al dominio de la fórmula COMPRA(y,x) y CLIENTE(x) se evalúan a falso, y falso ! falso se evalúa a cierto. Los valores que no pertenecen al dominio de la fórmula la hacen cierta: la fórmula no es segura. b) Explique, basándose en la fórmula anterior, por qué no se deben utilizar las fórmulas no seguras para interrogar a una base de datos relacional. La fórmula anterior, como fórmula abierta, obtendrá todos aquellos valores de x que la hacen cierta. Hemos demostrado en el apartado anterior que los valores no almacenados en las tablas de nuestra base de datos (en concreto, COMPRA y CLIENTE) entran en ese conjunto. La conclusión es que, independientemente de la evaluación de aquellos clientes que aparecen en la tabla COMPRA, la relación resultado nos mostrará información de clientes que no están almacenados en CLIENTE: ¿cómo puedo decir algo sobre alguien al que no conozco? Es evidente que, trabajando con dominios infinitos, la cardinalidad de la relación resultado es infinita. Incluso circunscribiéndonos al caso de un tipo de datos (por ejemplo, enteros) en una SGBD real, aparte de obtener información absolutamente falsa e inútil, la tabla resultado sería inmanejable por su tamaño. CUESTIONARIO fundamentos de las bases de datos 10 10 de febrero de 1997 Dpto. Lenguajes y Sistemas Informáticos Escuela Politécnica Superior de Alicante http://www.dlsi.ua.es/asignaturas/fbd/fbd.htm • Si estamos hablando de que al cambiar el tipo de datos del DNI en el esquema lógico de nuestra BD los aplicativos de stockaje no necesitan recompilarse, estamos hablando de: • integridad de datos • independencia de datos • seguridad de datos • Si al introducir un DNI en mi base de datos me equivoco y la aplicación me permite introducir como tal la cadena Pepe López, estamos controlando mal la: • independencia de los datos • integridad de los datos • ninguna de las dos anteriores • Una de las ventajas de la arquitectura cliente−servidor es que: • el servidor sólo satisface peticiones de datos, y el cliente de procesar estos datos • se le pueden colgar tantos terminales como el sistema operativo o el hardware permita, pudiendo varios usuarios trabajar al mismo tiempo. • centralizar grandes bases de datos en una sola máquina servidor, eliminando toda redundancia posible. • Si todo valor de clave ajena ha de aparecer en la tabla a la que referencia, nos estamos refiriendo a: • integridad referencial. • restricciones de cardinalidad mínima uno. • a las dos anteriores al mismo tiempo. • El diccionario de datos es una herramienta • que se usa para asignar a cada dato almacenado en nuestra base de datos su significado en el sistema de información real que se pretende representar • que guarda toda la información necesaria para el SGBD sobre los datos almacenados en sus bases de datos • utilizada únicamente en los SGBD basados en modelos de datos primitivos. • Una restricción de correspondencia entre clases de objetos de cardinalidad mínima 3 • indica la existencia de tres claves ajenas. • no es real, nunca se puede dar en ningún sistema de información. • nos dice que la ocurrencia del objeto estará presente en la agregación al menos tres veces. • El concepto de fórmula segura • es propio del cálculo de predicados de primer orden. • siempre se evalúa a cierto si trabaja con variables libres o ligadas con un cuantificador existencial y a falso si se evalúan variables ligadas por un cuantificador universal • alude al hecho de que existen datos pertenecientes al universo de discurso que no están almacenados en nuestra BD. • Para mejorar la independencia de datos en un SGBD • se define su estructuración en esquemas • se eliminan las redundancias innecesarias de datos • se programan aplicaciones en vez de utilizar directamente el interfaz de usuario del SGBD. • El modelo Entidad−Relación Extendido: • es un modelo de datos semántico que permite reflejar fielmente todas las restricciones estáticas de un sistema de información pero sin embargo no puede reflejar las dinámicas. • es un modelo de datos en el que se recoge fielmente la restricción de dependencia de identificador pero no las propiedades de cobertura de una generalización. • es un modelo de datos en el que las agregaciones se representan bien como rectángulos o bien como polígonos de n lados donde n es el número de entidades que se agregan (a excepción de cuando son 2 11 que se representa con un rombo). • La definición de claves ajenas en las tablas se realiza: • para mejorar la granularidad. • para velar por la seguridad de los datos. • ninguna de las anteriores. • Los esquemas externos se pueden ver como: • descripciones de subconjuntos de datos y relaciones entre ellos, de interés para una o varias aplicaciones dadas. • subconjuntos del esquema interno que describe toda la base de datos. • el nivel de la arquitectura de un SGBD que permite evitar el gran abismo entre esquema conceptual y esquema interno. • La arquitectura a varios niveles de un SGBD: • está muy relacionada con el objetivo de independencia de datos que debe lograr un SGBD. • es el mecanismo que permite definir distintos niveles de acceso a los datos y, por tanto, velar por la seguridad de los mismos. • permite mantener los datos a distintos niveles y, por lo tanto, vela por la integridad y seguridad de los mismos. • Al hablar de lenguajes: • el Cálculo Relacional de Tuplas y el Cálculo Relacional de Dominios son dos lenguajes completos relacionalmente. • sólo el Álgebra Relacional es un lenguaje completo relacionalmente. • cualquier lenguaje de manipulación de datos (LMD) que trabaje sobre una base de datos relacional se dice que es completo relacionalmente. • Al hablar de claves en el Modelo Relacional: • una clave candidata de una relación siempre debe ser también clave ajena. • una clave ajena de una relación R debe coincidir en el número de columnas con el de la clave primaria de R. • una clave ajena de una relación R puede ser también la clave primaria de R. • Sea R una relación R(a:dom_a, b:dom_b, c:dom_c , d:dom_d) • R puede tener 3 claves candidatas (a,b), c y d. • R no puede tener más de 4 claves candidatas. • ninguna de las anteriores. • Si R es una relación y A es una clave ajena de R que referencia a R2: • si A está definida como columna de Valor No Nulo, no tiene sentido que A tenga una política de anular ante actualizaciones en R2, pero sí puede tenerla ante borrados en R2. • no hay nunca que definir una política en A ante inserciones en R2, con independencia de otras características que pueda tener la columna A (Valor No Nulo, Clave Alternativa, Clave primaria,) • A no podrá contener valores repetidos ya que referencia a la Clave primaria de R2. • Al hablar de mecanismos de abstracción: • si estamos ante una generalización disjunta, una ocurrencia del objeto general se corresponde siempre con una y sólo una ocurrencia de uno de los subtipos. • si pudiésemos expresar en términos de cardinalidad la relación entre las ocurrencias de un objeto general A y las de uno de sus subtipos A1, independientemente del tipo de cobertura tendríamos card(A1, A)=(1,1). • si estamos ante una generalización total, el número total de ocurrencias del objeto general es la suma del número de ocurrencias de los distintos subtipos. • Al normalizar pasamos de una forma normal a su superior: • para quedarnos con relaciones entre cuyos atributos sólo existan dependencias funcionales completas. • para conseguir trabajar con relaciones que sólo tengan una clave candidata. • ninguna de las anteriores. • Hablando de fórmulas: • si tenemos una fórmula cerrada que comienza por un " esta fórmula es segura. 12 • si tenemos una fórmula abierta que comienza por un " esta fórmula es segura. • el hecho de que una fórmula sea segura es independiente de la interpretación contra la que se evalúe. • En Álgebra Relacional: • si A(a1,a2,,an) y B(b1, b2,, bn) son dos relaciones compatibles, dará el mismo resultado hacer A"B que hacer (AxB) donde a1=b1 y a2=b2 y . y an=bn. • si R y S son dos relaciones entre las que se puede realizar R dividido S y S es una relación de cardinalidad mayor que 1, la cardinalidad de la relación resultado será siempre menor que la cardinalidad de R. • si A y B son dos relaciones entre la que se puede realizar una concatenación, y la realizamos AconcatenadoB, la cardinalidad de la relación resultado será al menos igual a la cardinalidad de A. • Al hablar de interpretaciones: • la interpretación asociada a una base de datos relacional puede variar del estado E1 de la base de datos al estado E2. • la interpretación asociada a una base de datos relacional sería conveniente que fuese modelo de todas las fórmulas que expresan las preguntas las que interrogar a esa base de datos. • si la aplicación E le asigna el conjunto vacío a todos los predicados entonces esa interpretación seguro que es modelo para el conjunto de fórmulas del lenguaje para el que se define. • Al hablar de la arquitectura de un sistema de gestión de bases de datos: • el esquema externo es una visión desde el punto de vista puramente organizativo, • debe tener como una de sus cualidades la de minimalidad, no se debe expresar un concepto en función de otros. • de los que se suele emplear como el Modelo Relacional o el Modelo Entidad−Relación Extendido, es capaz de captar las restricciones estáticas y dinámicas de un sistema de información. • Al hablar de independencia de datos: • El grado de detalle con el que se definen los esquemas externos en función del esquema interno, lo que se llama granularidad, es mejor que sea a nivel de campo que a nivel de registro. • Es mejor que el momento en el que se transforman los esquemas externos usados por las aplicaciones en términos del esquema interno, se dé cuanto más tarde. • las técnicas que se suelen emplear para lograr esta independencia se clasifican en dos grandes grupo: preventivas y curativas. independiente del SGBD a utilizar, de un subconjunto de la información global. • la independencia física se refiere a que cambios en el esquema interno no deben afectar al esquema lógico. • la arquitectura a cuatro niveles surgió por la necesidad de introducir un nivel basado en Cálculo de Predicados de Primer Orden, esquema lógico, donde se pudiesen evaluar las fórmulas con las que interrogar una base de datos. • Sea R(a: dom_a, B: dom_b, c: dom_c, d:dom_d) Clave primaria: a, y en ninguna de sus tuplas hay valores nulos. • la cardinalidad de R[a,b] es menor que la cardinalidad de R. • la cardinalidad de R[a,b] es igual a la cardinalidad de R. • la cardinalidad de R[a,b] es mayor que la cardinalidad de R. • Un modelo de datos: • es una representación de la realidad objeto de estudio que nos permite estructurar los datos de forma que se capte la semántica de los mismos. • Si A y B son dos entidades agregadas a través de R, y A tiene una restricción de dependencia de identificador respecto a R: • card(A, R) = (0, 1) • card(A, R) = (1, 1) • card(A, R) = (1, n) • Si una relación R está en 3ª Forma Normal y sólo tiene una clave candidata: • R puede tener determinantes que no sean claves candidatas. • R está también en Forma Normal de Boyce−Codd. • La clave candidata de R no puede tener más de una columna. 13 • La columna que actúa como clave ajena de una tabla puede contener valores nulos: • cuando esa tabla representa a un subtipo de una generalización y la clave ajena referencia al objeto general. • cuando esa tabla representa una relación de conectividad M:M y la clave ajena a uno de los objetos que se agregan. • ninguna de las anteriores. • Al definir una interpretación para una base de datos relacional, a todos nos sale la misma porque: • en las bases de datos relacionales no hay símbolos de función y por tanto H no se define. • porque por convenio definimos tantos símbolos de constante como elementos hay en el dominio de la base de datos. • ninguna de las anteriores. • Sea R una relación que representa un subtipo de una generalización, si A es la única clave ajena en esta tabla que referencia a la tabla donde se recoge el objeto general: • no tiene sentido que A tenga como política ante borrados la de propagar. • no tiene sentido que A tenga como política ante actualizaciones la de propagar. • no tiene sentido que A tenga como política ante borrados la de anular. 14