Clave extranjera de SQL

Clave extranjera de SQL

“Una clave extranjera son una o más columnas en una tabla infantil que se refiere a una clave principal de una tabla principal. Las claves extranjeras y primarias son los mismos valores, aunque algunos pueden repetirse en la tabla del niño. La tabla principal también se llama tabla de referencia. La clave extranjera en la tabla infantil hace referencia a la clave principal en la tabla referenciada (tabla principal). Es decir, cada valor de clave extranjera en la tabla infantil es el mismo que un valor clave principal en la tabla principal. Puede haber algunas repeticiones de valores de clave extranjera en la tabla de niños. Aún así, cada valor de clave extranjera en la tabla infantil es una clave principal en la tabla referenciada. El enlace entre ambas tablas es la clave extranjera.

Si ambas tablas están bien diseñadas, entonces la relación clave extranjera elimina la dependencia transitiva. Vea la explicación de la dependencia transitiva a continuación. Este artículo explica las claves extranjeras en relación con la dependencia transitiva y la base de datos relacional."

Ilustración

Considere una tabla de ventas en lo que se conoce como el segundo formulario normal. En la mesa, los empleados venden a clientes individuales conocidos (personas). La tabla es la siguiente:

Mesa de ventas


En la primera fila, un cliente con CustomerID 1, para una tienda, en la persona de Peter Smith, con el número de teléfono 444-4444, la dirección "1, Road1, Towna", City Clifton, del estado de Nueva Jersey, Código Postal NJ 10265, entró en la tienda y compró productos (no indicado). Este cliente fue atendido por el empleado (vendedor), Jacob Jones. Esta venta tiene ID 1. La columna Saleid es la clave principal para esta tabla. Esta tabla se encuentra actualmente en lo que se conoce como la segunda forma normal. El resto de las otras filas se explican de manera similar.

Dependencia transitiva

NOTA: Una columna se puede denominar un atributo. En cada fila, el SaleID depende de los atributos: Datesold, CustomerId, Nombre personalizado, teléfono, dirección, ciudad, región, código postal, país y empleado. Eso está bien. El CustomerID depende de los atributos: nombre personalizado, teléfono, dirección, ciudad, región, código postal y país. Estos dependientes del cliente no determinan el salario o la fecha o empleado. Si el cliente de ID 1 viniera a la tienda una semana después, habría conocido a un empleado diferente en una fecha diferente, lo que significaría un Saleid diferente.

Por lo tanto, estos dependientes del cliente deben ser retirados de esta gran mesa, para formar una mesa más pequeña. Una copia del CustomerID permanece en la tabla original ya que el SaleID depende del CustomerID. La nueva mesa de ventas ahora se llama la mesa infantil. Una copia del cliente va con los dependientes ya que depende de los dependientes. Las dos nuevas tablas son:

Mesa de clientes

Mesa de ventas


La tabla de los clientes ahora es un padre o una tabla de referencia. Tiene los nombres de los clientes y sus credenciales. El cliente identifica cada una de sus filas. Es más corto que la tabla de ventas original por 6 filas. La repetición (redundancia) se ha eliminado en la tabla de clientes. La tabla de los clientes ahora está en lo que se conoce como la tercera forma normal. Si no se pudo encontrar un nombre adecuado para la mesa del cliente, entonces algo salió mal con el razonamiento.

La tabla de ventas permanece como era, pero carece de algunas columnas. También está ahora en lo que se llama la tercera forma normal. El saleID todavía identifica las mismas filas pero con algunas celdas eliminadas.

Nota: En la tabla de clientes, CustomerID es la clave principal. En la nueva tabla de ventas, CustomerID es una clave externa. Vincula ambas tablas nuevas. Sin embargo, en la tabla de ventas, no depende del SaleID; el saledid depende de ello.

La dependencia transitiva ocurre cuando un atributo no predominante depende de otro atributo o atributo no predominante. Al dividir la tabla original en dos tablas, se elimina una dependencia transitiva.

La notación de la tabla para la tabla original es:

Ventas (Saleid, Datesold, CustomerId, Nombre personalizado, teléfono, dirección, ciudad, región, código postal, país, empleado)


La notación de la tabla para las dos nuevas tablas es:

Clientes (CustomerId, Nombre personalizado, teléfono, dirección, ciudad, región, código postal, país)


y

Ventas (Saleid, Datesold, CustomerID, Empleado)


Cada clave primaria tiene una sola subrayada. La clave extranjera, CustomerID, en la tabla de ventas tiene un subrayado de tablero.

Conclusión

Una clave extranjera es una o más columnas en una tabla infantil que se refiere a una clave principal de una tabla principal. Las claves extranjeras y primarias son los mismos valores, aunque algunos pueden repetirse en el niño
mesa. La tabla principal también se llama tabla de referencia. La clave extranjera en la tabla infantil hace referencia a la clave principal en la tabla referenciada (tabla principal). Es decir, cada valor de clave extranjera en la tabla infantil es el mismo que un valor clave principal en la tabla principal. Puede haber algunas repeticiones de valores de clave extranjera en la tabla de niños. Aún así, cada valor de la clave extranjera en la tabla infantil ocurre como una clave principal en la tabla referenciada. El enlace entre ambas tablas es la clave extranjera. La tabla infantil también se llama la tabla de referencia.