SQL SERVER 2000: Diseño, implementación, conexión, consulta y actualización de datos de una base de datos

MODULO I 

Ejercicio 2: Desarrolle un Modelo Lógico de Datos

En este ejercicio, usted se entrenará en los pasos necesarios para crear un modelo lógico de datos. Este ejercicio involucra dibujar las tablas, entidades, y relaciones entre entidades que constituyen la base de datos. Aunque usted puede usar un programa del dibujo como Visio para crear estos objetos; papel y un lápiz es todo que usted realmente necesita. Si lo desea, usted puede transferir luego su modelo a un programa del dibujo. Además, usted necesitará papel y un lápiz para escribir las restricciones a los datos. También puede escribirlos directamente en un documento de un procesador de palabras. Cualquiera que sea el método que usted escoja, deberá guardar el resultado para los ejercicios subsecuentes. Para realizar este ejercicio, usted usará el caso de la tienda de libros de Ejercicio 1 del Tema 4 de este módulo.

Para identificar qué tablas agregar a una base de datos
1. Refiérase a los requisitos de diseño que usted desarrolló para el caso de la tienda de libros y apunte las categorías de datos.
Cada categoría representa uno de los objetos tabla primarios en su diseño de la base de datos.

2. Dibuje una tabla para cada categoría de datos. Las tablas deben ser lo suficientemente grandes para que usted pueda agregar los nombres de las columnas. Ponga las tablas en un modo que le permita dibujar las relaciones entre las tablas. Usted agregará los nombres de la columna y definirá las relaciones mas adelante en este ejercicio. Su dibujo debería incluir cinco tablas.

3. Etiquete cada tabla con el nombre de cada una de las categorías. Para consistencia, use las etiquetas siguientes para los nombres de las tablas: Libros, Autores, Empleados, Clientes, y Ordenes.

Su próximo paso será identificar cualquier tabla relacionada. A estas alturas, diseñar una base de datos se pone un poco más complicado. Una buena fuente para determinar las relaciones entre tablas es la lista de reglas comerciales que usted identificó cuando usted recogió los requisitos de diseño. Esencialmente, usted está buscando subcategorías de información o reglas de negocio que lo llevan a creer que son necesarias tablas adicionales. Recuerde, usted puede modificar el diseño de la base de datos cuando usted identifica relaciones entre tablas y restricciones sobre los datos.

4. Refiérase a las reglas comerciales en los requisitos de diseño. Fíjese que hay cuatro subcategorías de información: la condición de un libro, la posición del empleado, la forma de pago, y el estado de la orden.

5. Dibuje las cuatro tablas relacionadas para soportar las tablas primarias.
Para consistencia, use los nombres siguientes para sus nuevas tablas: EstadoOrden, FormaDePago, Posiciones, y CondicionLibro.

6. Refiérase a las reglas comerciales en los requisitos de diseño. Fíjese que una orden puede contener más de un libro.

7. Agregue una tabla más (OrdenLibros) para rastrear los libros pedidos y las órdenes tomadas a los clientes.

Usted ahora debería tener 10 tablas.

Para identificar qué columnas agregar a las tablas
1. Refiérase a los requisitos de diseño que usted desarrolló para el caso de la tienda de libro.
Para cada categoría de datos, usted definió qué información debe ser incluida en cada categoría. Esta información constituye sus columnas.

2. Agregue nombres a las columnas de cada tabla. También recuerde que cada fila en una tabla debe ser singularmente identificable, por lo que algunas tablas podrían necesitar un identificador.

Además, en donde los nombres de las columnas se refirieran a información en una tabla relacionada, usted normalmente sólo necesitará la columna del identificador de la tabla relacionada. Por ejemplo, la tabla Ordenes incluiría una columna de EstadoID que la referencia a la tabla de EstadoOrden.

Para consistencia, use las etiquetas siguientes para los nombres de las columnas:

Tabla Columnas
Libros LibroID, Titulo, AutorID, Editor, FechaEd, Costo, CondicioID, Vendido
LibrosEstado CondicionID, NombreCond, Descripcion
Autores AutorID, Apellido, Nombre, AñoNac, AñoMuerte, Descripcion
Empleados EmpleadosID, Nombre, Apellido, Dir1, Dir2, Ciudad, Estado, CP, FechaIng, PosicionID
Posiciones PosicionID, Cargo, Descripcion
Clientes ClienteID, Nombre, Apellido, Telefono, Dir1, Dir2, Ciudad, Estado, CP
Ordenes OrdenID, ClienteID, EmpleadoID, Monto, FechaOrden, FechaEnvio, PagoID, EstadoID
EstadoOrden EstadoID, EstadoDescrip
FormaDePago PagoID, PagoDescrip
LibrosOrdenes OrdenID, LibroID


Fíjese que la tabla Clientes no incluye una columna para los libros comprados y fecha de compra. Dado que cada cliente puede comprar más de un libro, usted no incluirá esta información aquí. Usted podría crear una tabla para guardar esta información, pero sería innecesario porque reproduciría información que ya existe en la base de datos (información que puede derivarse a través de vistas o consultas).

Para identificar relaciones entre las entidades

1. Determine qué relaciones existen entre la tabla Libros y otras tablas en la base de datos. Si necesita, refiérase al caso de la tienda de libro y a los requisitos de diseño que lo ayudarán a determinar qué relaciones existen entre los objetos.

Usted está buscando relaciones directas. Por ejemplo, la tabla Libros tiene una relación directa con la tabla LibrosEstado. Los datos de LibrosEstado aplica directamente a los datos de Libros. Además, los datos de Autores se relacionan directamente con los datos de Libros (los autores escriben libros). Hay también una relación directa entre los datos de Libros y los datos LibrosOrdenes (los órdenes incluyen los libros que se venden).

Fíjese, que no hay ninguna relación directa entre las tablas Libros y la tabla Ordenes. La relación entre las dos tablas es indirecta y se expresa a través de la tabla de LibrosOrdenes.

2. Para cada tabla, trace una línea desde esa tabla a cualquier otra tabla con la que exista una relación. Usted podría encontrar que necesita mover algunas de sus tablas para mostrar esas relaciones más claramente.

Su diseño de la base de datos debe parecer similar al esquema en Figura 5.6.

 

Figura 5.6 Identificar las relaciones entre las tablas en el modelo de lógico datos.

3. Determine si cada relación es uno-a-uno, uno-a-muchos, o muchos-a-muchos. Escriba el número 1 en el extremo "uno" de la relación, y escriba el símbolo infinito (8) en el extremo "muchos" de la relación.

Para determinar el tipo de relación, piense en los términos de los datos asociados con cada objeto. Por ejemplo, existe una relación entre los empleados y los órdenes que ellos generan. Un empleado puede crear muchos órdenes, pero una orden es creada por sólo un empleado. Por consiguiente, una relación uno-a-muchos existe entre la tabla Ordenes y la tabla Empleados (un empleado puede crear muchas órdenes). La tabla Empleados está en el lado "uno" de la relación, y la tabla Ordenes en el lado "muchos".

Su base de datos debe parecer similar ahora al esquema en Figura 5.7.

 

Figura 5.7 Identificar los tipos de relaciones entre las tablas en el modelo de los datos lógico.

4. Identifique las relaciones muchos-a-muchas en el diseño de la base de datos.
¿Qué relaciones son muchos-a-muchos?

5. Cree que una tabla de la unión llamada LibrosAutores. La tabla debe incluir la columna de AutorID y la columna de LibroID.

6. Anule la relación entre la tabla Libros y la tabla Autores, entonces anule la columna de AutorID en la tabla Libros.

Usted está anulando la relación entre las dos tablas porque una relación directa ya no existe. En cambio, una relación indirecta se crea a través de la tabla de LibrosAutores. Además, la columna AutorID no es mas un requisito en la tabla Libros porque la relación libro/autor se expresa en la tabla LibrosAutores.

7. Dibuje la relación entre los Autores y tablas LibrosAutores y la relación entre los Libros y tablas LibrosAutores.

8. Determine los tipos de relaciones que existen con la tabla LibrosAutores.

Su diseño de la base de datos debe parecer similar ahora al esquema en Figura 5.8.

 

Figura 5.8 Agregar la tabla de LibrosAutores al modelo de datos lógico.

Para identificar restricciones en los datos

1. En una hoja de papel, apunte los nombres de cada tabla en su diseño de base de datos. Deje espacio suficiente entre cada nombre de la tabla para escribir las restricciones de los datos.

2. Repase la regla comercial que declara que información del libro se debe incluir: título, autor, costo, precio sugerido, evaluación, y ID único.

3. Identifique el objeto al que esta regla de negocio se aplica.

¿A qué objecto/s aplica esta regla de negocio?

4. Bajo los nombre de la tabla Libros y de la tabla LibrosAutores, escriba las restricciones a los datos que se pueden derivar de la regla comercial.

¿Cuáles son las restricciones a los datos?

5. Para cada regla comercial, defina las restricción a los datos. Donde sea aplicable, escriba las restricciones bajo el nombre de la tabla. Si una restricción no es aplicable específicamente a una tabla, escríbalo en otro espacio en su papel.

¿Cuáles son las restricciones a los datos para su diseño de la base de datos?

6. Repase las restricciones a los datos que usted creó para asegurarse que cada tabla y cada columna dentro de esas tablas tienen alguna clase de regla asociada con él.

< Programa              < Tema 5