Tecnología

Inicio

Los efectos de Referencias mismo en DBMS

Los efectos de Referencias mismo en DBMS


Algunas aplicaciones de gestión de base de datos se ocupan de la información jerárquica, tales como estados componen de condados que a su vez contienen las ciudades. Usted puede verse tentado a organizar esta información en tablas separadas en su DBMS - una para cada nivel de la jerarquía - pero una solución más elegante y utiliza una tabla de referencia a sí misma, lo que es más fácil de manejar y se adapta a una variedad más amplia de datos.

Tabla de autorreferencia

Para crear una tabla de autorreferencia, empezará con dos campos, un número de identificación y un número de identificación de los padres. Para estos campos, se pueden añadir cualesquiera otros adecuados para la aplicación, como el nombre, descripción, ubicación o población. Para mayor comodidad, se puede establecer el número de identificación de un tipo de campo de la numeración automática por lo que la base de datos de números automáticamente nuevos registros en orden ascendente. El ID de matriz hace referencia al número de identificación del registro principal en la jerarquía; si el registro no tiene padre, se puede establecer este campo a cero. Por ejemplo, el récord de California tiene un diámetro interior de uno y una identificación con los padres de cero. El récord de Condado de San Francisco tiene un ID de dos y un ID padre de uno. Cada registro hijo en los registros de referencias de tabla de padres en la misma mesa; la mesa es la auto-referencia.

Consolidación

Uno de los efectos de las tablas de autorreferencia es una consolidación de múltiples tablas en una sola tabla. Tener menos mesas simplifica la base de datos y facilita su mantenimiento. Los sistemas de bases de datos modernos se adaptan fácilmente a millones de registros por tabla, por lo que mantener todos los elementos de datos de una jerarquía en una sola tabla no es un problema. Al establecer el campo ID a una clave principal y el ID de matriz a un índice, puede localizar fácilmente todos los registros a lo largo de cualquier rama de la jerarquía.

Flexibilidad

Una base de datos que tiene una tabla para cada nivel en una jerarquía funciona bien hasta que aparezca un nuevo nivel, a medida que se debe agregar una nueva tabla para adaptarse al cambio y modificar todos los programas de aplicación que utilizan la base de datos. Por el contrario, una mesa de autorreferencia se adapta a cualquier número de niveles jerárquicos. El campo ID padres siempre apunta al siguiente nivel en la jerarquía, por lo que los registros forman una cadena constante. El número de niveles en la jerarquía puede ser el mismo para todos los registros padre o puede variar; la tabla de referencia a sí misma se encarga de uno u otro caso.

eliminación en cascada

Cuando una tabla hace referencia a sí contiene muchos registros de datos, usted puede preguntarse qué hacer cuando se elimina un registro padre. A menos que también se suprimen todos los registros secundarios, corre el riesgo de crear "huérfanos", o los registros con los ID de los padres no válidos. Afortunadamente, existe un mecanismo para manejar esta situación de forma automática. Cuando se crea el campo ID de los padres, puede especificar que tiene un campo de clave externa, y utilice el campo ID como clave principal de la tabla. Una vez hecho esto, se puede añadir la restricción, "ON DELETE CASCADE" para el campo. Con la restricción y la configuración de clave externa en su lugar, la base de datos, se eliminarán todos los registros correspondientes para niños siempre que se elimina un registro padre.