Modelado logico relacional de bases de datos


Dado el ejercicio anterior normalizado en 1FN, vamos a continuar con la normalización hasta la 2FN.

Tabla normalizada en 1FN del ejercicio anterior:

Resultado de la normalización en 1FN:

ID_CompraClienteTeléfonoProductoPrecioCantidadFecha_Compra
1Ana Pérez777-777-777Manzanas1.522024-11-20
1Ana Pérez777-777-777Naranjas2.032024-11-20
2Pedro López888-888-888Plátanos1.042024-11-21
2Pedro López888-888-888Peras1.222024-11-21
2Pedro López888-888-888Melón3.512024-11-21
3Marta Sánchez999-999-999Uvas2.512024-11-22
forma normal 1

Paso 1: Identificar dependencias funcionales

  1. Claves candidatas:

    • (ID_Compra, Producto) identifica unívocamente cada fila.
  2. Dependencias funcionales:

    • (ID_Compra, Producto)Cantidad.
    • ID_CompraCliente, Teléfono, Fecha_Compra.
    • ProductoPrecio.

Paso 2: Detectar problemas de la 2FN

Para cumplir la 2FN, eliminamos dependencias parciales, es decir, cuando un atributo no clave depende solo de parte de una clave compuesta.

Problemas:

  • Cliente , Telefono y Fecha_Compra dependen solo de ID_Compra, no de (ID_Compra, Producto).
  • Precio depende solo de Producto, no de (ID_Compra, Producto).

Paso 3: Dividir en tablas para cumplir la 2FN

  1. Separar datos de compras generales:

    • Crear una tabla independiente para las compras con los datos que dependen únicamente de ID_Compra.
  2. Separar datos de productos:

    • Crear una tabla para los productos con los datos que dependen únicamente de Producto.
  3. Mantener la relación entre compras y productos:

    • Crear una tabla intermedia que relacione compras y productos con sus cantidades.

Tablas resultantes (Cumplen 2FN):

Tabla Compras

ID_CompraClienteTeléfonoFecha_Compra
1Ana Pérez777-777-7772024-11-20
2Pedro López888-888-8882024-11-21
3Marta Sánchez999-999-9992024-11-22

Tabla Productos

ProductoPrecio
Manzanas1.5
Naranjas2.0
Plátanos1.0
Peras1.2
Melón3.5
Uvas2.5

Tabla Detalle_Compra

ID_CompraProductoCantidad
1Manzanas2
1Naranjas3
2Plátanos4
2Peras2
2Melón1
3Uvas1

forma normal 2

Explicación:

  1. Tabla Compras:

    • Contiene datos relacionados exclusivamente con la compra (Cliente y Fecha_Compra) que dependen solo de ID_Compra.
  2. Tabla Productos:

    • Contiene datos relacionados exclusivamente con los productos (Precio) que dependen solo de Producto.
  3. Tabla Detalle_Compra:

    • Relaciona las compras con los productos y sus cantidades.

Paso 4: Esquema relacional final

  1. Relaciones:

    • Tabla Detalle_Compra.ID_Compra → FK de Tabla Compras.ID_Compra.
    • Tabla Detalle_Compra.Producto → FK de Tabla Productos.Producto.
  2. Claves primarias:

    • Tabla Compras: ID_Compra.
    • Tabla Productos: Producto.
    • Tabla Detalle_Compra: (ID_Compra, Producto).

Ventajas de la 2FN:

  1. Reducción de redundancia:

    • Precio no se repite en cada compra, solo se almacena una vez en la tabla Productos.
    • Datos del cliente y fecha no se repiten por cada producto comprado.
  2. Facilidad de actualización:

    • Cambiar el precio de un producto o la fecha de una compra requiere actualizar solo una tabla.
  3. Consistencia:

    • La relación entre compras y productos es clara y libre de inconsistencias.
  • Planteamiento del problema

    La siguiente tabla almacena información sobre cursos y estudiantes. No cumple con la Segunda Forma Normal (2FN) porque tiene dependencias parciales en una clave compuesta.

    Curso_IDCurso_NombreEstudiante_IDNombre_EstudianteCalificación
    1Matemáticas101Juan90
    1Matemáticas102María85
    2Historia101Juan88
    2Historia103Luis75
    Loading...

    Problemas en el diseño

    1. La clave primaria es compuesta: (Curso_ID, Estudiante_ID).
    2. Curso_Nombre depende solo de Curso_ID (dependencia parcial).
    3. Nombre_Estudiante depende solo de Estudiante_ID (dependencia parcial).

    Esto viola 2FN, ya que no todos los atributos no clave dependen completamente de la clave primaria compuesta.


    Instrucciones

    1. Analiza las dependencias parciales en la tabla original.
    2. Descompón la tabla en dos o más tablas que cumplan con los requisitos de 2FN.
    3. Usa claves primarias y foráneas para relacionar las tablas.
    4. Representa las tablas resultantes con un diagrama relacional.
    Loading...