Cómo utilizar las llaves para acceder a la información de forma rápida en una base de datos SQL
Una buena regla para el diseño de bases de datos SQL es asegurarse de que cada fila de una tabla de base de datos se distingue de todos los demás de fila cada fila debe ser único. A veces es posible que desee extraer datos de su base de datos para un propósito específico (como un análisis estadístico), y al hacerlo, terminar la creación de tablas en el que las filas no son necesariamente única.
Para tal propósito limitado, este tipo de duplicación no importa. Las tablas que se pueden utilizar en más de una manera, sin embargo, no deben contener filas duplicadas.
LA llave es un atributo (o combinación de atributos) que identifica una fila de una tabla. Para acceder a un registro en una base de datos, debe tener alguna forma de distinguir esa fila de todas las otras filas. Dado que las claves deben ser únicos, proporcionan un mecanismo de ese acceso.
Además, una clave no debe contener un valor nulo. Si utiliza las teclas nulos, puede no ser capaz de distinguir entre dos filas que contienen un campo clave nulo.
Considere un ejemplo de un veterinario-laboratorio: se puede designar columnas correspondientes como claves. En la tabla CLIENTE, Nombre de Cliente es una buena clave. Esta tecla puede distinguir cada cliente individual de todos los demás clientes. Por lo tanto, introduciendo un valor en esta columna se convierte en obligatoria para cada fila de la tabla.
TestName y Nombre de empleado tomar buenas claves para las pruebas y las mesas de los empleados. Número de orden y ResultNumber tomar buenas claves para las órdenes y tablas de resultados. Asegúrese de que introduce un valor único para cada fila.
Usted puede tener dos tipos de teclas: claves primarias y claves externas.
Las claves primarias
LA clave primaria es una columna o combinación de columnas en una tabla con valores que identifican de forma exclusiva las filas de la tabla. Para incorporar la idea de llaves en la base de datos VetLab, puede especificar la clave principal de una tabla como se crea la tabla. En el siguiente ejemplo, una sola columna es suficiente (suponiendo que todos los clientes de VetLab tener nombres únicos):
CREAR CLIENTE MESA (ClientName CHAR (30) PRIMARY KEY, Address1 CHAR (30), Address2 CHAR (30), CityCHAR (25), StateCHAR (2), PostalCode CHAR (10), PhoneCHAR (13), Fax CHAR (13) , Persona de contacto CHAR (30)) -
La restricción PRIMARY KEY sustituye a la restricción NO NULO, dada en la definición anterior de la tabla CLIENTE. los PRIMARY KEY implica la restricción NO NULO restricción, debido a una clave principal no puede tener un valor nulo.
Aunque la mayoría de los DBMS permiten crear una tabla sin una clave principal, todas las tablas de una base de datos deben tener uno. Con esto en mente, sustituir el NO NULO constreñimiento en todas las tablas. En el ejemplo, los ensayos, mesas EMPLEADOS, órdenes, y los resultados deben tener la PRIMARY KEY restricción, como en el siguiente ejemplo:
CREAR LAS PRUEBAS DE MESA (TestName CHAR (30) PRIMARY KEY, StandardCharge CHAR (30)) -
A veces hay una sola columna en una tabla puede garantizar la unicidad. En tales casos, se puede utilizar un clave compuesta - una combinación de columnas que garantizar la unicidad cuando se usan juntos. Imagínese que algunos de los clientes de VetLab son cadenas que tienen oficinas en varias ciudades. Nombre de Cliente no es suficiente para distinguir entre dos sucursales de un mismo cliente. Para hacer frente a esta situación, se puede definir una clave compuesta de la siguiente manera:
CREAR CLIENTE MESA (ClientName CHAR (30) NOT NULL, Address1CHAR (30), Address2CHAR (30), Ciudad de CHAR (25) NOT NULL, StateCHAR (2), PostalCode CHAR (10), PhoneCHAR (13), Fax CHAR (13 ), Persona de contacto CHAR (30), CONSTRAINT BranchPK PRIMARY KEY (ClientName, Ciudad)) -
Como alternativa al uso de una clave compuesta para identificar unívocamente un registro, puede dejar su DBMS asignan un solo de forma automática, como Access hace en lo que sugiere que el primer campo en una nueva tabla se llamará ID y ser del tipo Autonumérico. Una clave así no tiene sentido en sí misma. Su único propósito es ser un identificador único.
Las claves externas
LA clave externa es una columna o grupo de columnas en una tabla que corresponde a, o hace referencia a una clave primaria en otra tabla en la base de datos. Una clave externa no tiene que ser único, pero debe identificar de forma exclusiva la columna (s) en la tabla especial, que las referencias clave.
Si el Nombre de Cliente columna es la clave principal en la tabla CLIENTE (por ejemplo), cada fila de la tabla cliente debe tener un valor único en el Nombre de Cliente columna. Nombre de Cliente es una clave externa en la tabla PEDIDOS. Esta clave externa se corresponde con la clave principal de la tabla CLIENTE, pero la clave no tiene que ser único en la tabla Pedidos.
De hecho, usted espera la clave externa no es singularidad si cada uno de sus clientes le dio sólo un fin y nunca ordenó una vez más, que iría a la quiebra con bastante rapidez. Uno espera que muchas filas de la tabla PEDIDOS corresponden con cada fila de la tabla CLIENTE, lo que indica que casi todos sus clientes son clientes que repiten.
La siguiente definición de la tabla PEDIDOS muestra cómo puede añadir el concepto de claves externas a un CREAR declaración:
CREAR LAS ÓRDENES DE MESA (OrderNumber INTEGER PRIMARY KEY, ClientName CHAR (30), TestOrdered CHAR (30), Vendedor de CHAR (30), FECHA FechaPedido, CONSTRAINT NameFK EXTRANJEROS CLAVE (CLIENTNAME) REFERENCIAS DE CLIENTES (ClientName), CONSTRAINT TestFK FOREIGN KEY (TestOrdered) REFERENCIAS PRUEBAS (TestName), CONSTRAINT SalesFK FOREIGN KEY (Vendedor) REFERENCIAS DEL EMPLEADO (EmployeeName)) -
En este ejemplo, las claves externas en la tabla PEDIDOS vinculan esa mesa a las claves principales de las mesas CLIENTE, las pruebas, y el empleado.