Computación e Informática Taller de Modelamiento de Software
Migración a SQL Server 200x ~ 1 ~ Ing. Fabián Silva Alvarado
DEL DIAGRAMA DE CLASES AL MODELO DE DATOS Y A LA
BASE DE DATOS EN SQL SERVER 2008
El Rational Rose es una herramienta que puede ser utilizado para elaborar el modelado de
un sistema informático en todas las fases del proyecto, con ella podemos construir todos
los flujos de trabajos (workflow) que establece la metodología RUP.
El Diagrama de clases del análisis nos permite identificar las clases que utiliza el sistemas y
sus relaciones, nos permite identificar también los atributos y sus métodos, estas clases
normalmente se convierten en las tablas de la Base de Datos, por eso este diagrama
es muy consultado en la fase de implementación, donde el desarrollador tendrá que
construir las tablas con sus campos basados en este.
El Rational Rose permite la migración de este diagrama hacia el motor de base de
datos que el desarrollador ha seleccionado, (DB2, Oracle, SQL Server, entre otros), sin
tener que duplicar el trabajo.
En este manual desarrollaremos paso a paso la creación del modelo de datos y la base
de datos en SQL Server 2008, a partir del diagrama de clases, utilizaremos el Rational
Rose 7 para ello.
A continuación tenemos el siguiente caso:
“Soy el administrador de una compañía de capacitación que provee cursos de
informática, impartidos por nuestros docentes. Enseñamos muchos cursos,
cada uno tiene un código, un nombre y un costo.
Taller de Modelamiento de Software y Programación con Visual Basic son dos
de nuestros cursos más populares. Los cursos varían en duración desde un mes
hasta 3 meses. Un Docente puede enseñar varios cursos. Pedro Rodríguez y
María Gonzáles son dos de nuestros mejores docentes. De los Docentes
registramos sus apellidos, nombres, su dirección de correo electrónico, su
profesión, su grado (Lic, Ing, Mag, Dr… etc), así como un número telefónico fijo
y un móvil. Cada curso es enseñado por solo un docente pero a través del
tiempo puede ser enseñado por otro docente. Se designa el curso y en base a
ello asignamos al docente. Los estudiantes pueden tomar varios cursos a través
del tiempo. Javier Díaz de Innova TI tomo cada curso de los que ofrecemos.
También registramos de los estudiantes sus apellidos, nombres, fecha de
nacimiento, sexo, dirección, su colegio de procedencia (estatal o particular) y
su grado de instrucción (Secundaria, Técnica o Superior) y su distrito de
procedencia. Identificamos a los distritos mediante un código único y la
provincia a la que pertenece. Por ejemplo la mayoría de nuestros estudiantes
provienen de Supe Pueblo. Varios de nuestros docentes no nos dan su número
telefónico.
Computación e Informática Taller de Modelamiento de Software
Migración a SQL Server 200x ~ 2 ~ Ing. Fabián Silva Alvarado
Paso 1: Modelo de Objetos (Modelo Conceptual de Datos):
Figura 1: Diagrama de Clases en Rational Rose
Paso 2. Cambiar todas las clases del análisis como Persistentes.
1. Abrir el diagrama de clases.
2. Doble clic en la primera clase, se mostrará el
cuadro de dialogo de open Specification, en
ella seleccionar la pestaña Detail, y
seleccionar la opción Persistent, tal como se
observa en la figura 2.
3. Hacer lo mismo con las demás clases.
Figura 2: Cuadro de Diálogo Open Specification
Computación e Informática Taller de Modelamiento de Software
Migración a SQL Server 200x ~ 3 ~ Ing. Fabián Silva Alvarado
Paso 3. Crear La Base de Datos en Rational (Database) ver figura3
1. Clic derecho en el Paquete Component View, seleccionar la opción Data
Modeler / New / Database
2. Ponerle un nombre adecuado que tenga relación con el sistema.
3. Especificar el Motor de la Base de Datos a migrar, doble clic en la base de datos
creado en el punto anterior, nos mostrara el cuadro de dialogo de las
especificaciones de la base de datos, ubicar el campo Target seleccionar de la
lista el motor de base de datos en nuestro caso Microsoft SQL Server 2000.x
Seleccionando el motor de la
Figura 3: Database creado, seleccionando el motor de la base de datos
Paso 4 . Creación del Schema que almacenara las
tablas de la Base de Datos y servirá para la
elaboración el diagrama Modelo de Datos
1. Ingresar al paquete Logical View, Data
Modeler -> New-> Schema, clic derecho
sobre Schema,
2. Ponerle un nombre
Figura 4: Creando el Schema
BASE DE DATOS
SELECCIONANDO EL MOTOR DE BASE DE DATOS
Computación e Informática Taller de Modelamiento de Software
Migración a SQL Server 200x ~ 4 ~ Ing. Fabián Silva Alvarado
Paso 5. Transformar el diagrama de clases al Modelo de Datos, definiendo la base de
datos y el Schema donde pondrá las tablas generadas. Ver figura 4
1. Ingresar al paquete donde este el diagrama de clases de la figura 1, en nuestro
caso Logical View / Analisisl.
2. Clic derecho
sobre el paquete
ingresado Analisis ,
Data Modeler /
Transform to Data
Model
Figura 5: Transformar el diagrama de clases al Modelo de Datos
3. En el cuadro de dialogo seleccionar los campos Destination Schema elegir
el schema creado en el paso 4, Target Database elegir la base de datos
creado en el paso 3. Finalmente ingresar un prefijo que se pondrán a
las tablas
4. Pulse OK para finalizar.
Figura 6: Transformación del diagrama de clases al Modelo de Datos
Computación e Informática Taller de Modelamiento de Software
Migración a SQL Server 200x ~ 5 ~ Ing. Fabián Silva Alvarado
Paso 6. Creación del Modelo de Datos
1. Ubicarse en el Schema donde se encuentran las tablas generadas, clic derecho,
Data Modeler / New / Data Model Diagram.
Figura 7: Creando el Diagrama del Modelo de Datos
2. Cambiarlo de nombre con la
opción Rename, a un nombre
tenga relación con el proyecto
Figura 8: Renombrando el nombre del Diagrama
3. Pulsar doble clic sobre el modelo de datos creado y empezar a arrastrar cada
una de las tablas hacia el diagrama
Observación, el Rational Rose genera automáticamente los campos claves
primarias (PK) de las tablas sin importar si ya teníamos definido uno, esto debe
ser arreglado manualmente de igual manera para los campos claves foráneas
(FK).
Computación e Informática Taller de Modelamiento de Software
Migración a SQL Server 200x ~ 6 ~ Ing. Fabián Silva Alvarado
Figura 9: Modelo de Datos sin corregir
Paso 7. Arreglar los campos de las tablas y definir las PK y FK ver figura 10
1. Seleccionar la tabla a corregir desde el Schema
2. Seleccionar el campo
Tabla_ID generado por el
Rational y eliminarlo con clic
derecho / Delete.
3. Seleccionar el campo a definir
como PK y pulsar doble click
sobre ella, nos mostrara la
ventana de las
especificaciones del campo,
Computación e Informática Taller de Modelamiento de Software
Migración a SQL Server 200x ~ 7 ~ Ing. Fabián Silva Alvarado
4. Abrir las especificaciones de los
campos para definir el tamaño de
los campos pestaña Type y
activar el check Primary Key.
5. Repetir los mismos pasos para todos los campos de las tablas, hasta que el
diagrama.
Computación e Informática Taller de Modelamiento de Software
Migracion a SQL Server 200x ~ 8 ~ Ing. Fabián Silva Alvarado
Modelo de Datos:
Computación e Informática Taller de Modelamiento de Software
Migración a SQL Server 200x ~ 9 ~ Ing. Fabián Silva Alvarado
Paso 8. Convertir a la Base de Datos física
1. Seleccionar la base de datos creado en el paso 2
2. Clic derecho, Data Model / Forward Engineer mostrara un asistente que le guiara
durante el proceso
3. En el cuadro de dialogo pulsar Next / luego mostrará las opciones a generar
pulsar Next, luego ingresar el nombre del archivo script a generar, también
puede seleccionar la base de datos del motor, debe estar instalado el SQL
server y funcionando para que esta opción funcione. Pulsar Next, y luego
finalizar.
Computación e Informática Taller de Modelamiento de Software
Migración a SQL Server 200x ~ 10 ~ Ing. Fabián Silva Alvarado
4. Ubicar el Script generado y ejecutarlo desde el Analizador de Consultas del SQL
Server 2008. No olvidar de crear una Base de Datos: DB_CAPACITACIONES donde
alojar las tablas de este script:
5. Finalizamos la creación de la Base de Datos, ya puede utilizarlo
Computación e Informática Taller de Modelamiento de Software
Migración a SQL Server 200x ~ 11 ~ Ing. Fabián Silva Alvarado
MODELO FISICO DE LA BASE DE DATOS:
Computación e Informática Taller de Modelamiento de Software
Migración a SQL Server 200x ~ 12 ~ Ing. Fabián Silva Alvarado
Caso 1: RECURSOS HUMANOS
“Yo manejo el departamento de Recursos Humanos de una compañía grande. Necesitamos tener la información de cada uno de los empleados
de nuestra compañía. Necesitamos tener seguimiento de los nombres, apellidos, trabajo o puesto, fecha de contratación y salario de cada empleado. A cada empleado se le asigna un número único. Nuestra compañía está dividida en departamentos. Cada empleado está asignado a un departamento (contabilidad, ventas o desarrollo). En el tiempo un empleado puede ser asignado a más de un departamento. Necesitamos conocer el departamento responsable de cada empleado y la localización del departamento. Cada departamento tiene un número único, por ejemplo contabilidad es 10 y ventas tiene el número 40.
Caso 2: Cadena Boticas
Somos una cadena de boticas en expansión en la localidad que necesita organizar sus productos en existencia mediante un sistema: Los productos se encuentran organizados según su acción farmacológica como por ejemplo: Analgésico, Antiinflamatorio, Histamínico, Antibiótico, Corticoide, Antipirético, etc. Existen casos en que un producto es a la vez Analgésico y Antipirético como es el caso de los productos que pertenecen a los Genéricos del PARACETAMOL, así como también los productos que pertenecen al genérico IBUPROFENO que es similar al PARACETAMOL y a su vez puede ser Antiinflamatorio. Interesa registrar una descripción según la acción farmacológica así como la descripción del producto genérico. Contamos además con productos que pertenecen a un genérico específico como por ejemplo IBUPROFENO, DICLOFENACO o AMOXICILINA, etc. También para nosotros es importante conocer la clasificación general de los productos, es decir, si son vía oral, inhaladas, tópicos, parenterales, etc. Por ejemplo dentro de los productos de vía oral de se subdividen en: pastillas, capsulas, jarabe, suspensiones, etc. Dentro de las inhaladas tenemos: Aerosoles, Inhaladores, etc. Vendemos productos de distintos laboratorios como por ejemplo: ELIFARMA, MEDIFARMA, ROCHE, GENOMA LAB, etc. Cuando registramos un producto tenemos en cuenta su nombre comercial, su precio de compra, su precio de venta, la cantidad actual, su nombre genérico, el laboratorio al que pertenece.
Caso 3: Tienda Videos
“Soy el propietario de una pequeña tienda de películas. Tenemos más de 3000 videos de las que necesitamos llevar registro. Cada uno de nuestros discos tiene un número asignado. Para cada película, necesitamos conocer su título y su categoría (ej. Comedia, suspenso, drama, acción, guerra o ciencia ficción). Tenemos muchas copias de la mayoría de nuestras películas. Le damos a cada película un identificador específico, y así podemos saber en que disco está que película. Un disco de video puede ser tanto de
Computación e Informática Taller de Modelamiento de Software
Migración a SQL Server 200x ~ 13 ~ Ing. Fabián Silva Alvarado
formato CD como DVD. Siempre tenemos por lo menos un disco de cada película que registramos. Frecuentemente nos preguntan por los protagonistas de determinada película. Leonardo DiCaprio y Catherine Zeta-Jones son siempre populares. Así que nos gustaría llevar el registro de los actores que aparecen en cada película. No todas nuestras películas tienen actores. A los clientes les gustaría conocer el nombre real del actor y su fecha de nacimiento. Nosotros solamente llevamos el registro de actores que aparecen en películas de nuestro inventario. Tenemos muchos clientes. Nosotros solamente rentamos videos a la gente que sea socia del video club. Por cada socio del club, nos gustaría registrar sus datos personales y por supuesto cada miembro del club tiene un número de membresía. Necesitamos llevar el registro de que cd de video ha rentado en este momento. Un cliente puede alquilar varias películas en un mismo punto en el tiempo.