Desarrollar un plan de base de datos
El primer paso al crear una base de datos consiste en elaborar un plan que sirva de guía para la implementación de la base de datos y, al mismo tiempo, como especificación funcional después de su implementación. La complejidad y los detalles de diseño de una base de datos dependen de la complejidad y el tamaño de la aplicación de bases de datos, así como de los usuarios.
La naturaleza y complejidad de una aplicación de bases de datos, así como el proceso de diseño, pueden variar significativamente. Una base de datos puede ser relativamente sencilla y estar diseñada para que la utilice una sola persona, o bien ser grande y compleja, y estar diseñada para procesar, por ejemplo, las transacciones bancarias de miles de clientes. En el primer caso, el diseño de la base de datos puede consistir en poco más que unas anotaciones en un papel. En el segundo caso, el diseño puede ser un documento formal de cientos de páginas que contenga todos y cada uno de los posibles detalles relacionados con la base de datos.
Al diseñar la base de datos, independientemente de su tamaño y complejidad, lleve a cabo los siguientes pasos básicos:
Recopile la información.
Identifique los objetos.
Cree modelos de los objetos.
Identifique los tipos de información para cada objeto.
Identifique las relaciones entre los objetos.
Recopilar la información
Antes de crear una base de datos, debe conocer con detalle el cometido previsto de la base de datos. Si la base de datos va a reemplazar a un sistema de información manual o en papel, dicho sistema le proporcionará la mayor parte de la información que necesita. Debería consultar a todas las personas involucradas en el sistema para determinar lo que hacen y qué necesitan de la base de datos. También es importante identificar qué es lo que desean que haga el nuevo sistema, así como los problemas, las limitaciones y los cuellos de botella del sistema existente. Recopile copias de las instrucciones del cliente, listas de inventarios, informes de administración y, en general, de todos aquellos documentos que formen parte del sistema existente, porque le servirán para diseñar la base de datos y las interfaces.
Identificar los objetos
Durante el proceso de recopilación de información, deberá identificar los objetos o las entidades más importantes que vayan a ser administrados por la base de datos. El objeto puede ser tangible (una persona o un producto, por ejemplo) o bien intangible (como una transacción empresarial, un departamento de una compañía o un período de liquidación de nóminas). Normalmente hay unos cuantos objetos principales; una vez identificados, se evidencian los elementos relacionados. Cada elemento diferenciado de la base de datos debe tener su tabla correspondiente.
El objeto principal de la base de datos de ejemplo AdventureWorks2008R2 que se incluye con SQL Server es una bicicleta. Los objetos relacionados con la bicicleta en las operaciones empresariales de esta compañía son los empleados que fabrican la bicicleta, los proveedores que venden los componentes utilizados para fabricar la bicicleta, los clientes que los compran y las transacciones comerciales realizadas con los clientes. Cada uno de estos objetos es una tabla de la base de datos.
Crear un modelo de los objetos
Cuando se identifican los objetos del sistema, debería registrarlos de una manera que represente visualmente el sistema. Puede utilizar su modelo de base de datos como referencia durante la implementación de la misma.
Con este propósito, los programadores de bases de datos utilizan herramientas que varían en complejidad técnica: desde papel y bolígrafo hasta procesadores de texto y hojas de cálculo e, incluso, programas de software creados específicamente para la elaboración de modelos de datos destinados al diseño de bases de datos. Sea cual sea la herramienta que decida utilizar, es importante que la mantenga actualizada.
Identificar los tipos de información para cada objeto
Una vez identificados los objetos principales de la base de datos como candidatos para las tablas, el siguiente paso es identificar los tipos de información que deben almacenarse para cada objeto. Estos tipos son las columnas de la tabla del objeto. Las columnas de una tabla de base de datos contienen algunos tipos de información comunes:
Columnas de datos sin procesar
Estas columnas almacenan información tangible, como por ejemplo nombres, determinada por un origen externo a la base de datos.
Columnas de categorías
Estas columnas clasifican o agrupan los datos y almacenan una selección limitada de datos, tales como verdadero o falso; casado o soltero; presidente, director o responsable de equipo; etc.
Columnas de identificadores
Estas columnas proporcionan un mecanismo para identificar cada elemento almacenado en la tabla. Estas columnas suelen incluir un Id. o un número en el nombre (por ejemplo, IdDeEmpleado, númeroDeFactura y IdDeEditor. La columna del identificador es el componente principal para los usuarios y las funciones internas de proceso de la base de datos para el acceso a una fila de datos de la tabla. Algunas veces el objeto tiene una forma tangible de Id. utilizada en la tabla (por ejemplo, un número de la seguridad social), aunque en la mayoría de los casos se puede definir la tabla para poder crear un Id. confiable y artificial para la fila.
Columnas relacionales o diferenciales
Estas columnas establecen un vínculo entre la información de una tabla y la información relacionada que se encuentra en otra tabla. Por ejemplo, una tabla que realiza el seguimiento de transacciones comerciales puede tener un vínculo con una tabla clientes, de modo que pueda asociarse toda la información del cliente a la transacción comercial.
Identificar la relación entre objetos
Uno de los puntos fuertes de una base de datos relacional es la posibilidad de relacionar o asociar información acerca de varios elementos de la base de datos. Pueden almacenarse por separado tipos aislados de información, pero el motor de base de datos puede combinar los datos cuando sea necesario. Para identificar la relación entre los objetos durante el proceso de diseño se necesita llevar a cabo un examen de las tablas con el fin de determinar sus relaciones lógicas y agregar columnas relacionales que establezcan un vínculo entre las tablas.
Por ejemplo, el diseñador de la base de datos AdventureWorks2008R2 ha creado tablas para los productos y modelos de producto de la base de datos. La tabla Production.Product contiene información de cada producto que incluye una columna de identificador denominada ProductID, así como columnas de datos para el nombre, el precio, el color, el tamaño y el peso del producto. La tabla contiene columnas de categorías, como Class o Style, que permiten agrupar los productos por estos tipos. Cada producto tiene también un modelo del producto, pero esa información se almacena en otra tabla. Por lo tanto, la tabla Production.Product tiene la columna ProductModelID solo para almacenar el Id. del modelo del producto. Cuando se agrega una fila de datos para un producto, el valor de ProductModelID debe existir en la tabla Production.ProductModel.