Relaciones mínimas que satisfacen la Primera Forma Normal (1NF) – Part 1

Prerrequisito – Formas Normales
El diseño de la base de datos procede de la siguiente manera:

  1. Hable con el actor para el que estamos diseñando la base de datos. Obtenga todos los requisitos, qué atributos deben almacenarse y establezca dependencias funcionales sobre el conjunto de atributos dado.
  2. Dibuje un diagrama de entidad-relación sobre la base del análisis de requisitos.
  3. Convierta el diagrama ER en un modelo relacional y finalmente cree estas relaciones en nuestra base de datos con las restricciones apropiadas.

Prácticamente sabemos cómo dibujar un diagrama ER. Pero, cuando hacemos preguntas como cuántas relaciones mínimas se requerirían para satisfacer la primera forma normal (1NF), a veces es un poco confuso. Establecemos ciertas reglas simples que se forman después de un análisis profundo de cada caso y, por lo tanto, podrían usarse directamente.

Nota: no se recomienda acaparar las reglas, sino que comprender la lógica detrás de cada caso lo ayudaría a recordarlas fácilmente y durante mucho tiempo.

Notas –

  1. Si hay participación total de ambos lados;
    Combine las dos entidades involucradas y la relación en 1 tabla.
  2. De lo contrario, un lado es participación total y un lado es parcial;
    • M:N Combinar la relación en el lado de la participación total.
    • 1:N Combina la relación en el lado de la participación total.
    • 1:1 Combinar las dos entidades involucradas y la relación en 1 tabla.
  3. si no, ambas partes son participación parcial;
    • M:N Tabla separada para cada entidad y relación. Por lo tanto, 3 tablas.
    • 1:N Combina la relación en el lado N usando una clave externa que hace referencia al lado 1.
    • 1:1 Combinar la relación y una entidad en 1 tabla usando una clave externa y 1 tabla para otra entidad.

Ahora, definitivamente tendría una pregunta en mente, ¿cómo formamos tales reglas? Esto es muy fácil y lógico. Comprendamos la lógica detrás de esto para un caso y también puede establecer los resultados para otros casos.

Se nos ha dado un escenario de relación 1:N con dos entidades E1(ABC) y E2(DEF), donde A y D son claves primarias, respectivamente. E1 tiene una participación parcial mientras que E2 tiene una participación total en la relación R.

Con base en el escenario anterior, creamos ciertas tuplas en E1:

A B C
a1 b1 c1
a2 b2 c2
a3 b3 c3

Del mismo modo, cree ciertas tuplas para E2:

D mi F
d1 e1 f1
d2 e2 f2
d3 e3 f3

Ahora, cree una relación R que satisfaga las condiciones anteriores, es decir, E1 es una participación parcial y E2 es una participación total y E1 a E2 es una relación 1:N.

A D
a1 d1
a1 d2
a2 d3

Piense en las posibilidades, ¿cómo podemos fusionarnos?

  • Way-1: Combinar las dos entidades y la relación en una sola tabla. Esto no es correcto ya que (AD) se convertirá en la clave principal para esta tabla, pero la clave principal nunca puede tener un valor NULL.
    A B C D mi F
    a1 b1 c1 d1 e1 f1
    a1 b1 c1 d2 e2 f2
    a2 b2 c2 d3 e3 f3
    a3 b3 c3 NULO NULO NULO
  • Way-2: relación de fusión en 1 lado. Esto no es correcto ya que (AD) se convertirá en la clave principal para esta tabla, pero la clave principal nunca puede tener un valor NULL.
    A B C D
    a1 b1 c1 d1
    a1 b1 c1 d2
    a2 b2 c2 d3
    a3 b3 c3 NULO
  • Vía-3: relación de fusión en el lado N. Esto es correcto.
    D mi F A
    d1 e1 f1 a1
    d2 e2 f2 a1
    d3 e3 f3 a2

    Del mismo modo, ¿podría pensar por qué permitimos fusionar las dos entidades y la relación en 1 tabla, cuando se trata de una relación 1:1? Simplemente, no tendríamos una clave principal compuesta allí, por lo que definitivamente tendremos una clave principal sin valores NULL presentes en ella. Recalque un poco más, ¿por qué permitimos la fusión de las entidades y la relación con la participación total de ambos lados? La razón es que incluso si tenemos una clave principal compuesta para dicha tabla fusionada, estamos seguros de que nunca tendrá valores NULL para la clave principal.

    Nota: puede seguir el mismo procedimiento que se indicó anteriormente para establecer todos los resultados.

Publicación traducida automáticamente

Artículo escrito por antOnTheWall y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *