Modelado de BD Con Rational Rose I PDF
Modelado de BD Con Rational Rose I PDF
Modelado de BD Con Rational Rose I PDF
[http://visualsac.blogspot.com] 1
MODELANDO BASE DE DATOS CON RATIONAL ROSE
-----------------------------------------------------------------------------------
1. OBJETIVOS:
1. Explicar los tres Modelos del Modelador de Datos del Rational Rose.
2. Construir un Modelo de Almacenamiento.
3. Construir un Modelo de Datos a partir de un Modelo de Objetos.
4. Generar una base de datos a partir de un Modelo de Datos.
2. EL MODELADOR DE DATOS
- El Modelador de Datos es una herramienta adicional (plug-in).
- Permite modelar una Base de Datos.
- Utiliza UML como estndar de modelado.
- Con la ventaja fundamental de permitir la integracin en un proyecto de
software nico:
- El diseo de la aplicacin.
- El diseo de la Base de Datos.
2.1 Modelos
El Modelador de Datos se basa en tres Modelos:
Modelo de Objetos.
Modelo de Datos.
Modelo de Almacenamiento.
2.1.1. Modelo de Objetos
Representado grficamente con un diagrama de clases en UML.
Representacin de la vista lgica de los datos.
Presenta los conceptos o clases fundamentales y su relacin entre
ellos.
Es independiente del tipo de Base de Datos.
Modelo de
Objetos
Modelo de
Da tos
Modelo de
Almacenamiento
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 2
2.1.2. Modelo de Datos
Representado grficamente con un diagrama del Modelo de Datos.
Representacin de la vista fsica de los datos.
Presenta los elementos del esquema de la Base de Datos.
Es dependiente del tipo de Base de Datos.
2.1.3. Modelo de Almacenamiento
Representado grficamente con un diagrama de Componentes.
Representacin de la vista fsica de la Arquitectura de
Almacenamiento de los datos.
Presenta los distintos elementos de Almacenamiento de la Base de
Datos.
Es dependiente de la Base de Datos.
T_ P ro fe s o r
c o di g o P ro fe s o r : IN TE G E R
T_ U s u a ri o _ ID : IN TE G E R
< < P K > > P K _ T_P ro fes o r4()
< < F K > > F K _ T_ P rofe s o r1 ()
T_ E s t u di a n t e
c o d ig o E s t udi a nte : I NTE G E R
T _ Us u ari o _I D : INTE G E R
< < P K > > P K _ T_E s t u di an te 3 ()
< < F K > > F K_ T _ Es tu d i an t e 0 ()
T_ U s ua ri o
no m bre : V A R C H A R (2 5 5)
ap e l l i d os : V A R C H A R (25 5 )
T_ U s u ari o _ID : IN TE G E R
< < P K > > P K _ T_ U s ua ri o0 ()
1
0. . 1
1
0. . 1
< < Id en t i fy i ng > >
1
0. . 1
1
0. . 1
< < Ide n t i fy i n g > >
Us uari o
nom bre : S t ri ng
apel li dos : S t ri ng
E s t udi ant e
c o digoE s t udi ant e : Long
P rofes or
c odi goP rofes or : Long
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 3
2.2. Con el Modelador de datos se puede:
Aplicar directamente ingeniera inversa al Modelo de Datos de un
esquema, a partir de una Base de Datos existente o de un archivo
DDL.
Transformar el Modelo de Datos en un Modelo de Objetos y un
Modelo de Objetos en un Modelo de Datos.
Generar, a partir del Modelo de datos, un esquema hacia una Base de
Datos o un archivo DDL.
Comparar y sincronizar un esquema en un Modelo de Datos con un
archivo DDL o con una Base de Datos.
Por nuestra cuenta Podemos construir directamente el Modelo de datos y el
Modelo de Almacenamiento:
Crear tablas, columnas, llaves (primarias y nicas)
Relaciones, restricciones e ndices,
Crear disparadores, dominios, procedimientos almacenados y
vistas
Crear tablespaces
Forzar la integridad referencial lo mismo de forma declarativa
(DRI) o a travs de disparadores.
El modelador de datos soporta el estndar ANSI SQL 92 y las siguientes
bases de datos:
IBM DB2
Oracle
Microsoft SQL Server
Sysbase.
SINDBA
TSP_BIBLIOTECA
<<Tablespace>>
TST_BIBLIOTECA
<<Tablespace>>
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 4
3. CONSTRUCCION MODELO DE ALMACENAMIENTO
1. Seleccionar la vista de componentes
2. Clic derecho, seleccionar Data Modeler/New/Database.
3. Como resultado se crea un paquete con nombre DB_n y un
componente en su interior de igual nombre.
4. El componente creado representa a la BD fsica sobre la cual se va a
generar el esquema, por tanto debe ser renombrado (al igual que el
paquete) con el nombre que identifica a la BD).
5. Especificar el tipo de Base de datos haciendo doble clic sobre el
componente de Base de Datos.
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 5
6. Para crear un tablespace en la Base de Datos hay que seleccionar el
componente.
7. Clic derecho al componente y seleccionar Data
Modeler/New/Tablespace.
8. Sobre el Tablespace que se ha creado, hacer doble clic para
especificar todas sus propiedades en dependencia del tipo de base de
datos.
9. Finalmente generar los nuevos tablespaces, haciendo clic derecho
sobre el componente y seleccionando Data Modeler / Forward
Engenieer.
10.
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 6
11. Se puede documentar la relacin entre el componente de base de
datos y los tablespaces con un diagrama de componentes.
4. CONSTRUCCION MODELO DE DATOS A PARTIR DE UN MODELO
DE OBJETOS
El Modelador de datos es capaz de construir automticamente un
Modelo de datos a partir de un Modelo de Objetos.
Pero para ello el Modelo de Objetos debe cumplir con determinados
requisitos:
Tiene que existir un componente de Base de Datos en la vista
de Componentes.
Marcar las clases que participan en la transformacin como
clases persistentes.
Agrupar todas las clases en un paquete (la transformacin
ocurre solo a nivel paquete).
4.1. Mapas de Transformacin
Elementos del
Modelo de Objetos
Elementos del
Modelo de datos
Resultado
S I NDB A
TS P _B IB LIO TE CA
< < Tabl es pac e> >
TS T_B IB LIOTE CA
< < Tabl es pac e> >
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 7
Clase Tabla Las clases persistentes son
transformadas en tablas
Atributo Columna Los atributos de las clases se
transforman en columnas usando el
mismo nombre de los atributos.
Los atributos son transformados
en tipos de datos propios de la
Base de Datos.
Operacin No transformada
!" # $%
4.2. Transformacin de los tipos de atributos
4.2.3. Para SQL Server
Tipo en el Modelo de
Objetos
Tipo en el Modelo de Datos
STRING VARCHAR (255)
INTEGER INT
DOUBLE FLOAT
DATE DATETIME
BOOLEAN BIT
BYTE SMALLINT
SINGLE FLOAT
LONG INT
ClaseX
atributoCadena : String
atributoLogico : Boolean
atributoNumerico : Long
atributoReal : Double
T_ClaseX
atributoCadena : VARCHAR(255)
atributoLogico : SMALLINT
atributoNumerico : INTEGER
atributoReal : DOUBLE PRECISION
T_ClaseX_ID : INTEGER
<<PK>> PK_T_ClaseX5()
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 8
CURRENCY MONEY
4.3. Qu sucede con las llaves?
Para los atributos declarados como parte de la identidad del objeto,
el Modelador de Datos crea una restriccin de la llave primaria.
Con nombre:PK_ + NombreTabla + Correlativo.
Si no se especifica la llave de una clase el Modelador de Datos crea
una llave primaria para la tabla correspondiente:
De tipo ENTERO
Con Nombre: NombreTabla + _ID
Y la restriccin de la llave primaria.
Importante
Si una tabla B tiene una relacin con una tabla A de tipo llave
fornea:
Si la llave A NO es parte de la llave primaria de B.
Se dice que la relacin es NO IDENTIFICANTE.
La relacin de B con A no identifica o contribuye a
identificar a un objeto de B.
Si no
Se dice que la relacin es IDENTIFICANTE.
Cl ase K
atributoLlave: String
atributo
T_Clase K
atributoLlave: String : SMALLINT
atributo : SMALLINT
<<PK>> PK_T_Clase K6()
C l a s e Z
a t r i b u t o
T_Clase Z
atributo : SMALLINT
T_Clase Z_ID : INTEGER
<<PK>> PK_T_Clase Z7()
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 9
La relacin de B con A identifica o contribuye a
identificar a un objeto de B.
4.3.1. Mapas de Transformacin
Elementos del
Modelo de Objetos
Elementos del
Modelo de datos
Resultado
Asociacin o
Agregacin
Relacin no
Identificante
Cada asociacin o agregacin se
transforma en una relacin no
identificante entre las tablas (en
el sentido contrario a la
navegabilidad)
T_ClaseB
llaveB : INTEGER
llaveA : INTEGER
T_ClaseB_ID : INTEGER
T_ClaseA_ID : INTEGER
<<PK>> PK_T_ClaseB3()
<<FK>> FK_T_ClaseB1()
<<Index>> TC_T_ClaseB3()
T_ClaseA
llaveA : INTEGER
T_ClaseA_ID : INTEGER
<<PK>> PK_T_ClaseA2()
0..1 0..* 0..1 0..*
<<Non-Identifying>>
RELACION NO IDENTIFICANTE
PK_B no tiene la llave A como parte de la PK.
ClaseA
llaveA : Integer
ClaseB
llaveB : Integer
llaveA : Integer
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 10
Elementos del
Modelo de Objetos
Elementos del
Modelo de datos
Resultado
Clase Asociacin Tabla de
Interseccin
Cada clase de asociacin se
transforma en una tabla de
interseccin.
C laseA soci aci o n
at ri but oA s oc i ac ion
C laseA A
ll aveA
C laseB B
ll aveB
1. . *
1. . * 1. . *
1. . *
ClaseA
llaveA
ClaseB
llaveB
<<Non-Identifying>>
T_ClaseB
llaveB : SMALLINT
T_ClaseB_ID : INTEGER
T_ClaseA_ID : INTEGER
<<PK>> PK_T_ClaseB5()
<<FK>> FK_T_ClaseB2()
<<Index>> TC_T_ClaseB5()
T_ClaseA
llaveA : SMALLINT
T_ClaseA_ID : INTEGER
<<PK>> PK_T_ClaseA6()
0..1 0..* 0..1 0..*
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 11
Elementos del
Modelo de Objetos
Elementos del
Modelo de datos
Resultado
Composicin Relacin
Identificante
Cada composicin se transforma en
una relacin identificante entre las
tablas correspondientes en el
Modelo de Datos.
La clase que representa a la parte
absorbe la llave de la clase
compuesta.
T_ C la s e A A
l l a ve A : S M A L L INT
T_ Cl a s e A A _ ID : INTE G E R
< < P K > > P K _ T_ Cl a s e A A 8 ()
T_ C la s e As o c i a c i o n
at ri b ut o A s o c i a c i o n : S M A L L INT
T_ Cl a s e B B _ID : INTE G E R
T_ Cl a s e A A _ID : INTE G E R
< < P K > > P K _ T_ Cl as e A s o c i a c i o n 9 ()
< < F K > > F K _ T_ Cl a s e A s o c i a c i o n 4 ()
< < F K > > F K _ T_ Cl a s e A s o c i a c i o n 3 ()
< < In d ex > > TC_ T_C l a s e A s oc i ac i o n6 ( )
< < In d ex > > TC_ T_C l a s e A s oc i ac i o n7 ( )
1
0 . . *
1
0 . . *
< < Id e n t i fy i n g> >
T_ C la s e B B
l l a ve B : S M A L L IN T
T_ Cl a s e B B _ ID : INTE G E R
T_ Cl a s e A A _ ID : INTE G E R
< < P K > > P K _ T_ Cl a s e B B 7 ()
< < F K > > F K _ T_ Cl a s eB B 5 ()
< < In d e x > > TC_ T_ Cl a s e B B 9 ( )
1
0 . . *
1
0 . . *
< < Id e n t i fy i ng> >
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 12
Elementos del
Modelo de Objetos
Elementos del
Modelo de datos
Resultado
Generalizacin Tablas separadas Cada subclase se transforma en
una tabla.
La superclase se transforma en
una tabla padre con una relacin
identificante de 0 a N con cada
subclase.
T o d o
l l a v e T o d o
P a r t e
l l a v e P a r t e
1 . . *
11
1 . . *
T_Parte
lla vePar te : SMALLINT
T_Part e _ID : INTEGER
T_Todo_I D : I NTEGER
< <PK>> PK_T_ Pa rt e13()
< <FK> > FK_ T_P art e11( )
< <Index > > TC_T_Par te25 ()
T_Todo
lla veTodo : SM AL LINT
T_Todo_I D : I NTEGER
<<PK>> PK_T_ Todo12()
1
1. . *
1
1. . *
<< Non-I dent if y in g> >
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 13
4.4. La construccin
1. Marcar las clases que van a participar en la transformacin como
persistentes:
Seleccionar la clase
Doble clic, y se muestra el formulario de especificaciones de la
clase
Seleccionar la pestaa detalle
Marcar la clase como persistente en el control correspondiente.
SuperClase
llaveSuperClase
SubClase
llaveSubClase
T_SubClase
llaveSubClase : SMALLINT
T_SuperClase_ID : INTEGER
<<PK>> PK_T_SubCl ase16()
<<FK>> FK_T_SubClase12()
T_SuperClase
llaveSuperClase : SMALLINT
T_SuperClase_ID : INTEGER
<<PK>> PK_T_SuperClase14()
1
0.. 1
1
0.. 1
<<Identifying>>
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 14
2. Designar los atributos que va a formar parte de la llave primaria:
Seleccionar la clase en el explorador del proyecto
Expandir la clase
Seleccionar el atributo
Clic derecho, seleccionar Data Modeler / Part of Object
Identity.
3. Generar el Modelo de datos a partir de un Modelo de Objetos:
Seleccionar el paquete que contiene al Modelo de Objetos.
Clic derecho y seleccionar Data Modeler / Transform to Data
Model.
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 15
4. Especificar los parmetros de la transformacin:
El nombre del esquema (Modelo de Datos) destino.
El componente de la Base de Datos
El prefijo para el nombre de las tablas
Si se desea o no ndice para las llaves forneas.
5. Y OK para comenzar la transformacin.
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 16
4.5. El Diagrama del Modelo de Datos
Una vista grfica del Modelo de Datos se puede consultar creando un
Diagrama de Modelo de Datos en el interior del esquema
correspondiente.
El Modelador de Datos, crear un diagrama vaco y activar una barra
de herramientas.
Para ver grficamente una tabla basta con arrastrarla hacia el
diagrama y el Modelador de Datos mostrar automticamente las
relaciones de dicha tabla con el resto.
Finalmente el Modelador de datos
crea un Modelo de Datos, en un
paquete con el estereotipo
<<Schema>>, dentro del paquete
Schemas.
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 17
El Diagrama del Modelo de Datos permite:
Adicionar visualmente nuevos elementos al Modelo de datos: Tablas,
relaciones identificantes y no identificantes.
Remover visualmente cualquier elemento.
Modificar cualquier elemento a travs del formulario correspondiente
(solo hay que hacer doble clic sobre el elemento).
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 18
5. GENERAR LA BASE DE DATOS
1. Seleccionar el esquema que se desea generar.
2. Clic derecho, Data Modeler/Forward Engineering
3. En el formulario de generacin especificar si desea generar el Modelo
de Datos hacia un archivo DDL o hacia una base de datos.
4. Finalmente, hacer efectiva la generacin.
5. Consultar la ventana de Logs, para conocer si hubo errores.
5.1. Formulario de Generacin
[october, 2006] [MODELADO CON RATIONAL ROSE]
[http://visualsac.blogspot.com] 19