Pregunta

Sige R tiene los siguientes atributos: {A, B, C, D, E} y tiene las siguientes dependencias funcionales:

A -> BC
CD -> E
B -> D
E -> A

y hay una descomposición que consiste en R1 (A, B, C) y R2 (A, D, E).¿Cómo puedo calcular las dependencias funcionales de R1 y R2?

La pregunta real en la tarea me pregunta si R1 / R2 está en BCNF / 3nf / tampoco, pero ya sé cómo hacer esa parte (ver si el lado izquierdo de los FD está contenido en las claves del candidato).

¿Fue útil?

Solución

El truco es pensar en los FD como las claves definitorias, no en su esquema dado, sino en las proyecciones de ello.

Por ejemplo, en su esquema de inicio {ABCDE}, el FD A -> BC dice que A ({A}, en realidad) constituye una clave en esta tabla, proyectada a {ABC}. Es decir, la unión de LHS y RHS de la FD, define qué proyección, y la LHS define la clave en esa proyección.

Ahora recurre a la versión descompuesta, en la que tiene dos tablas distintas (esquemas) {ABC} y {ADE}.

Su primer y último FD sigue siendo expresable en esos esquemas. El primer FD en el primer esquema / mesa y último en este último.

Pero los dos restantes se han vuelto inexpresables (inexpresables como un FD , es decir) debido a la descomposición. Lo que esto significa, para el diseño general de la base de datos, es que tendrá que declarar / definir / implementar una restricción de base de datos que dice y hace exactamente lo mismo que el FD original. (La receta general para hacer esto es la siguiente: reconstituir la tabla original al unir nuevamente las descomposiciones, el proyecto que se unen en los atributos mencionados, y haga cumplir la clave sobre esa proyección. Lograr esto no será exactamente trivial para los casos como estos ejercicios de curso.)

Decidir si R1 / R2 están en XNF, ahora debe hacerse considerando solo a los de los FD originales que aún son expresables (A-> BC).

Supongo que debe llegar a la conclusión de que R1 está en 3 / BC NF, y R2 aún no.

Ejemplos como estos (y la mayoría de los ejercicios de cursos son de esta naturaleza) En realidad, ilustra lo ridículamente sobresaliendo el concepto de normalización está en el campo del diseño de la base de datos. Lo que importa es la imagen general que incluye todas las restricciones que se aplican a la base de datos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top