2563987 data modeler uml
TRANSCRIPT
Modelando Base de Datos con Rational RoseIng. Yamil Ramos Garca
Agenda Los tres Modelos del Modelador deDatos de Rational Rose. Construir un Modelo de Datos a partir de un Modelo de Anlisis. Construir un Modelo de Almacenamiento. Generar una base de datos a partir de un Modelo de Datos.
UPC - Anlisis y Diseo Orientado a Objetos
2
24/01/2012
Conociendo el Modelador de Datos Para modelar los datos de un Sistema con laherramienta Rational Rose se utiliza Data Modeler (Modelador de datos)
Es una herramienta adicional (add-in). Permite construir el Modelo de Datos. Permite construir el Modelo de Almacenamiento. Utiliza UML como estndar de modelado.UPC - Anlisis y Diseo Orientado a Objetos 3 24/01/2012
Modelos del Modelador de Datos El Modelador de Datos se basa en tres Modelos.Modelo de Anlisis. Modelo de Datos. Modelo de Almacenamiento.
Modelo de Anlisis
Modelo de Datos
Modelo de Almacenamiento
UPC - Anlisis y Diseo Orientado a Objetos
4
24/01/2012
Modelo de Anlisis
Representa la vista lgica de las clases. Presenta los conceptos o clases fundamentales y larelacin entre ellos. Es independiente del tipo de Base de Datos. Est compuesto por:Clases. Atributos. Operaciones. Asociaciones. Diagrama de clases.
UPC - Anlisis y Diseo Orientado a Objetos 5 24/01/2012
Modelo de Anlisis
Modelo de Anlisisescribe 1..n Autor codAutor : Long nombre : String apellidos : String sexo : Boolean fec haNacim iento : Date 1..n Libro codLibro : Long titulo : String fechaEdicion : Date
Modelo de Anlisis
Aut or-Libro principal : Boolean tema : String
UPC - Anlisis y Diseo Orientado a Objetos
6
24/01/2012
Modelo de Datos Representacin de la vista fsica deModelo de Datos
los datos. Es dependiente del tipo de Base de Datos. Est compuesto por:Tablas. Columnas o campos. Llaves primarias y forneas. Restricciones. ndices. Relaciones. Diagrama del Modelo de Datos.
UPC - Anlisis y Diseo Orientado a Objetos 7 24/01/2012
Modelo de DatosModelo de DatosTAutor codAutor : INTEGER nombre : VARCHAR(255) apellidos : VARCHAR(255) sexo : SMALLINT fechaNacimiento : DATE TAutor_ID : INTEGER TPais_ID : INTEGER PK_TAutor0() FK_TAutor5() TC_TAutor8() TLibro codLibro : INTEGER titulo : VARCHAR(255) fechaEdicion : DATE TLibro_ID : INTEGER PK_TLibro1() 1 1 0..* TAutor-Libro principal : SMALLINT tema : VARCHAR(255) TLibro_ID : INTEGER TAutor_ID : INTEGER PK_TAutor-Libro2() FK_TAutor-Libro0() FK_TAutor-Libro1() TC_TAutor-Libro0() TC_TAutor-Libro1() 0..*
UPC - Anlisis y Diseo Orientado a Objetos
8
24/01/2012
Modelo de Almacenamiento Representacin de la vista fsica de laModelo de Almacenamiento
Arquitectura de Almacenamiento de los datos. Elementos de Almacenamiento de Base de Datos. Es dependiente de la Base de Datos. Est compuesto por:Componente de Base de Datos. Tablespace. Script de la Base de Datos fsica. Diagrama de Componentes.
UPC - Anlisis y Diseo Orientado a Objetos 9 24/01/2012
Modelo de AlmacenamientoModelo de Almacenamiento
SIN DBA
TSP_BIBLIOTECA
TST_BIBLIOTECA
UPC - Anlisis y Diseo Orientado a Objetos
10
24/01/2012
Modelador de Datos (Data Modeler) Qu puede hacerse con el Modelador de Datos(Data Modeler)?
Construir el Modelo de Datos. Desde cero. Transformando el Modelo de Anlisis automticamente.
Construir el Modelo de Almacenamiento. Transformar el Modelo de Datos en la Base de Datos fsica. Transformar el Modelo de Datos en el Script de la Base de Datos fsica.
Aplicar ingeniera inversa: Transformar el Modelo de Datos en el Modelo de Anlisis . Transformar la Base de Datos del Modelo de Almacenamiento en el Modelo de Datos.UPC - Anlisis y Diseo Orientado a Objetos 11 24/01/2012
Modelador de Datos El Modelador de Datos soporta los formatos debase de datos siguientes:Estndar ANSI SQL 92. Base de Datos IBM DB2. Base de Datos Oracle. Base de Datos Microsoft SQL Server. Base de Datos Sybase.
UPC - Anlisis y Diseo Orientado a Objetos
12
24/01/2012
Transformar el Modelo de Anlisis en el Modelo de DatosUPC - Anlisis y Diseo Orientado a Objetos 13 24/01/2012
Transformacin Modelo Anlisis - Modelo Datos1. Definir las clases persistentes que sern las que participarn en la transformacin. 2. Indicar los atributos que se sugieren como parte de la identidad del objetos (llaves primarias). 3. Agrupar las clases persistentes en un paquete. La transformacin ocurre solo a nivel de paquete. 4. Crear un componente de Base de Datos en la Vista de Componentes. 5. Transformar el Modelo Anlisis-Modelo Datos. 6. Construir el Diagrama del Modelo de Datos.UPC - Anlisis y Diseo Orientado a Objetos 14 24/01/2012
Transformacin Modelo Anlisis - Modelo Datos1. Definir las clases persistentes que van a participar en la transformacin.1. 2. 3. 4.
Seleccionar la clase. Hacer doble clic y se muestra el formulario de especificaciones de la clase. Seleccionar la pestaa Detail. Marcar la clase como persistente en el control correspondiente.
UPC - Anlisis y Diseo Orientado a Objetos
15
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos
UPC - Anlisis y Diseo Orientado a Objetos
16
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos2. Indicar los atributos que se sugieren como parte de la identidad del objetos (llaves primarias). Seleccionar la clase.1. 2. 3. 4.
Seleccionar la clase en el explorador del proyecto. Expandir la clase. Seleccionar el atributo. Hacer clic derecho y seleccionar Data Modeler/Part of Object Identity
UPC - Anlisis y Diseo Orientado a Objetos
17
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos
UPC - Anlisis y Diseo Orientado a Objetos
18
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos3. Agrupar todas las clases persistentes en un paquete. La transformacin ocurre solo a nivel de paquete.1. 2.
Para ello se crea un paquete dentro de la Vista Lgica y se mueven hacia dentro las clases persistentes. Se sugiere realizar este paso desde el inicio de la construccin del Modelo de Anlisis.
UPC - Anlisis y Diseo Orientado a Objetos
19
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos4. Crear un componente de Base de Datos en la Vista de Componentes.1. 2.
Seleccionar la Vista de Componentes. Hacer clic derecho, seleccionar Data Modeler / New / Database. Como resultado se crea un paquete con el nombre DB_n y un componente de Base de Datos de igual nombre en su interior.
UPC - Anlisis y Diseo Orientado a Objetos
20
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos
UPC - Anlisis y Diseo Orientado a Objetos
21
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos4. Crear un componente de Base de Datos en la Vista de Componentes.3.
El componente creado representa la Base de Datos fsica sobre la cual se va a generar el esquema, por tanto el nuevo paquete y el nuevo componente de Base de Datos creados deben ser renombrados con el nombre que identifica a la Base de Datos.
UPC - Anlisis y Diseo Orientado a Objetos
22
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos4. Crear un componente de Base de Datos en la Vista de Componentes.4.
Especificar el tipo de la Base de Datos haciendo doble clic sobre el componente de Base de Datos creado.
UPC - Anlisis y Diseo Orientado a Objetos
23
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos4. Crear un componente de Base de Datos en la Vista de Componentes.5. 6.
Se debe crear un Tablespace en la Base de Datos y para ello se selecciona el componente. Hacer clic derecho sobre el componente y seleccionar Data Modeler/New/Tablespace
UPC - Anlisis y Diseo Orientado a Objetos
24
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos4. Crear un componente de Base de Datos en la Vista de Componentes.7.
Hacer doble clic sobre el Tablespace creado para especificar todas sus propiedades. Esto depende del tipo de la Base de Datos.
UPC - Anlisis y Diseo Orientado a Objetos
25
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos4. Crear un componente de Base de Datos en la Vista de Componentes.7.
Oracle
DB2
UPC - Anlisis y Diseo Orientado a Objetos
26
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos5. Transformar el Modelo Anlisis -Modelo Datos.1. 2.
Seleccionar el paquete que contiene al Modelo de Anlisis. Hacer clic derecho y seleccionar Data Modeler / Transform to Data Model.
UPC - Anlisis y Diseo Orientado a Objetos
27
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos5. Transformar el Modelo Anlisis -Modelo Datos.3.
Especificar los parmetros de la transformacin.1. 2. 3. 4. Nombre del esquema (Modelo de Datos) destino. Componente de la base de datos. Prefijo para el nombre de las tablas. Si se desea o no ndice para las llaves forneas.
4.
Hacer click en el botn Ok para comenzar la transformacin.
UPC - Anlisis y Diseo Orientado a Objetos
28
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos
UPC - Anlisis y Diseo Orientado a Objetos
29
24/01/2012
Mapa de TransformacinModelo de Anlisis Clase Atributo Modelo de Datos Tabla Columna Resultado Las clases persistentes son transformadas en tablas 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 Asociacin
No transformada Relacin Las asociaciones se transforman de acuerdo a su tipo.30 24/01/2012
UPC - Anlisis y Diseo Orientado a Objetos
Transformacin de los atributos
Modelo de Anlisis
Modelo de DatosT_Clase X
Clase X(from NewPackage)
atributoCadena : String atributoLogico : Boolean atributoNumerico : Long atributoReal : Double
atributoCadena : VARCHAR(255) atributoLogico : SMALLINT atributoNumerico : INTEGER atributoReal : DOUBLE PRECISION
PK_T_Clase X1()
UPC - Anlisis y Diseo Orientado a Objetos
31
24/01/2012
Mapa de transformacin para OracleTipos de Datos Modelo de Anlisis STRING INTEGER DOUBLE DATE BOOLEAN BYTE SINGLE LONG CURRENCYUPC - Anlisis y Diseo Orientado a Objetos
Tipos de Datos Modelo de Datos VARCHAR2(255) NUMBER (10,0) FLOAT DATE NUMBER (5,0) NUMBER (3,0) FLOAT NUMBER (20,0) FLOAT32 24/01/2012
Mapa de transformacin para DB2Tipos de Datos Modelo de Anlisis STRING INTEGER DOUBLE DATE BOOLEAN BYTE SINGLE LONG CURRENCYUPC - Anlisis y Diseo Orientado a Objetos
Tipos de Datos Modelo de Datos VARGRAPHIC(255) INTEGER DOUBLE TIMESTAMP SMALLINT SMALLINT REAL BIGINT DOUBLE33 24/01/2012
Mapa de transformacin para SQLTipos de Datos Modelo de Anlisis STRING INTEGER DOUBLE DATE BOOLEAN BYTE SINGLE LONG CURRENCYUPC - Anlisis y Diseo Orientado a Objetos
Tipos de Datos Modelo de Datos VARCHAR(255) INT FLOAT DATETIME BIT SMALLINT FLOAT INT MONEY34 24/01/2012
Qu sucede con las llaves? Por cada atributo parte de la identidad del objeto elModelador de Datos crea una columna.
Se mantiene el nombre del atributo.
Si no se especifica lo anterior el Modelador deDatos crea una columna.
Nombre: NombreDeLaTabla + _ID Tipo de dato: ENTERO.
En ambos casos se crea la restriccin de llaveprimaria PK.UPC - Anlisis y Diseo Orientado a Objetos 35 24/01/2012
Atributo parte de la identidad del objeto
Modelo de Anlisis
Modelo de DatosT_Clase K atributoIdentidad : VARCHAR(255) atributo : VARCHAR(255) PK_T_Clase K3()
Clase K(from NewPackage)
atributoIdentidad : String atributo : String
UPC - Anlisis y Diseo Orientado a Objetos
36
24/01/2012
Atributo sin identificar
Modelo de Objetos
Modelo de Datos
Clase Z(from NewPackage)
T_Clase Z at ributo : SMALLINT T_Clase Z_ID : INTEGER PK_T_Clas e Z4()
atributo
UPC - Anlisis y Diseo Orientado a Objetos
37
24/01/2012
Qu sucede con las relaciones? Cuando una tabla A tiene una relacin con unatabla B . Relacin es IDENTIFICANTE. Si
la llave de A es parte de la llave primaria de B. La relacin de A con B identifica o contribuye a identificar a un objeto de B.
Relacin es NO IDENTIFICANTE. Si
la llave de A no es parte de la llave primaria de B. La relacin de A con B no identifica o contribuye a identificar a un objeto de B.
UPC - Anlisis y Diseo Orientado a Objetos
38
24/01/2012
Relacin IDENTIFICANTET_Clase A llave de A : NUMBER(5, 0) PK_T_Clase A5() T_Clase B llave de B : NUMBER(5, 0) PK_T_Clase B6()
T_Clase A llave de A : NUMBER(5, 0) PK_T_Clase A5()
0..* 0..1
T_Clase B llave de B : NUMBER(5, 0) llave de A : NUMBER(5, 0) PK_T_Clase B6() FK_T_Clase B2()
UPC - Anlisis y Diseo Orientado a Objetos
39
24/01/2012
Relacin IDENTIFICANTET_Clase A llave de A : NUMBER(5, 0) PK_T_Clase A5() T_Clase B llave de B : NUMBER(5, 0) PK_T_Clase B6()
T_Clase A llave de A : NUMBER(5, 0) PK_T_Clase A5()
0..* 0..1
T_Clase B llave de B : NUMBER(5, 0) llave de A : NUMBER(5, 0) PK_T_Clase B6() FK_T_Clase B2()
UPC - Anlisis y Diseo Orientado a Objetos
40
24/01/2012
Convirtiendo asociacin en relacinElemento del Elementos del Modelo de Anlisis Modelo de Datos Asociacin simple Relacin no identificante Resultado Cada asociacin simple se transforma en una relacin no identificante entre las tablas (en el sentido contrario a la navegabilidad)
UPC - Anlisis y Diseo Orientado a Objetos
41
24/01/2012
Convirtiendo asociacin en relacinClase A llave de A1 *
Clase B llave de B
T_Clase A llave de A : NUMBER(5, 0) PK_T_Clase A5() 0..1 0..*
T_Clase B llave de B : NUMBER(5, 0) llave de A : NUMBER(5, 0) PK_T_Clase B6() FK_T_Clase B2() TC_T_Clase B7()
UPC - Anlisis y Diseo Orientado a Objetos
42
24/01/2012
Convirtiendo asociacin en relacinElemento del Modelo de Anlisis Asociacin mltiple (Clase asociacin) Elementos del Modelo de Datos Tablas separadas Resultado Cada asociacin mltiple (clase asociacin) se transforma en una tabla de separada.
UPC - Anlisis y Diseo Orientado a Objetos
43
24/01/2012
Convirtiendo asociacin en relacinclase AA llav e de AA 1..n 1..n clase BB llav e de BB
Clase As oc iac ion atributo de la asociacionT_clase AA llave de AA : NUMBER(5, 0) PK_T_clase AA23() 1 0..* 0..* T_clase BB llave de BB : NUMBER(5, 0) PK_T_clase BB24() 1
T_Clase Asociacion atributo de la asociacion : NUMBER(5, 0) llave de BB : NUMBER(5, 0) llave de AA : NUMBER(5, 0) PK_T_Clase Asociacion25() FK_T_Clase Asociacion11() FK_T_Clase Asociacion10() TC_T_Clase Asociacion32() TC_T_Clase Asociacion31()
UPC - Anlisis y Diseo Orientado a Objetos
44
24/01/2012
Convirtiendo asociacin en relacinElemento del Modelo de Anlisis Asociacin composicin Asociacin agregacin Elementos del Modelo de Datos Relacin identificante Resultado Cada composicin se transforma en una relacin identificante entre las tablas correspondientes. La clase que representa a la parte absorbe la llave de la clase compuesta45 24/01/2012
UPC - Anlisis y Diseo Orientado a Objetos
Convirtiendo asociacin en relacinTodo llave de Todo 1T_Todo llave de Todo : NUMBER(5, 0) PK_T_Todo19() 1
+partes
1..n
1..*
Parte llave de ParteT_Parte llave de Parte : NUMBER(5, 0) llave de Todo : NUMBER(5, 0) PK_T_Parte20() FK_T_Parte8() TC_T_Parte27()
UPC - Anlisis y Diseo Orientado a Objetos
46
24/01/2012
Convirtiendo asociacin en relacinElemento del Modelo de Anlisis Asociacin generalizacin Elementos del Modelo de Datos Tablas separadas Resultado 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
UPC - Anlisis y Diseo Orientado a Objetos
47
24/01/2012
Convirtiendo asociacin en relacinT_Superclase llave su perclase : N UMBER(5, 0) PK_T_Sup erclase21() 1 0..* Subclase llave subclase
Superclase llave superclase
T_Subclase llave su bclase : NUMBER(5, 0) llave su perclase : N UMBER(5, 0) PK_T_Sub clase 22() FK_T_Subclase9()
UPC - Anlisis y Diseo Orientado a Objetos
48
24/01/2012
El resultado de la transformacin? Se crea el Modelo deDatos. Se agrega el paquete Schema dentro de la Vista Lgica. Se agrega un paquete con el nombre definido.
UPC - Anlisis y Diseo Orientado a Objetos
49
24/01/2012
Ejemploescribe 1..n Autor codAutor : Long nombre : String apellidos : String sexo : Boolean fechaNacimiento : Date 0..n 1..n Libro codLibro : Long titulo : String fechaEdicion : Date 1 contiene 1..n Ejemplar codEjemplar : Integer 1..n solicita 1..n Prestamo fechaPrest amo : Date fechaDevolucion : Date Aut or-Libro naci principal : Boolean tema : String 1 codUsuario : Integer nombre : String apellidos : String sexo : Boolean Usuario
Pais codPais : Integer descripcion : String Est udiante carrera : String Profesor departamento : String
UPC - Anlisis y Diseo Orientado a Objetos
50
24/01/2012
Resultado en SQLTAutor codAutor : INTEGER nombre : VARCHAR(255) apellidos : VARCHAR(255) sexo : SMALLINT fechaNacimiento : DATE TAutor_ID : INTEGER TPais_ID : INTEGER PK_TAutor0() FK_TAutor5() TC_TAutor8() 0..* 1 TLibro codLibro : INTEGER t itulo : VARCHAR(255) fechaEdici on : DATE TLibro_ID : INTEGER PK_TLibro1() 1 1 0..* TAutor-Libro principal : SMALLINT tema : VARCHAR(255) TLibro_ID : INTEGER TAutor_ID : INTEGER PK_TAutor-Libro2() FK_TAutor-Libro0() FK_TAutor-Libro1() TC_TAutor-Libro0() TC_TAutor-Libro1() 0.. * TPrestamo fechaPrestamo : DATE fechaDevolucion : DATE TUsuario_ID : INTEGER TLibro_ID : INTEGER 0..* PK_TPrestamo5() FK_TPrestamo4() FK_TPrestamo3() TC_TPrestamo3() TC_TPrestamo4() 1 1..* PK_TEjemplar3() FK_TEjemplar2() TC_TEj emplar9() 1 0..* TEjemplar codEjempl ar : INTEGER TLibro_ID : INTEGER
TUsuario
TPais codPais : INTEGER descripcion : VARCHAR(255) TPais_ID : INTEGER PK_TPais8()
codUsuario : INTEGER nombre : VARCHAR(255) apellidos : VARCHAR(255) 1 sexo : SMALLINT TUsuario_ID : INTEGER PK_TUsuario4() 1 1 0..1
0.. 1
TEstudiante carrera : VARCHAR(255) TUsuario_ID : INTEGER PK_TEstudiant e9() FK_TEstudiante6() TC_TEst udiante10()
TProfesor departam ento : VARCHAR(255) TUsuario_ID : INTEGER PK_TProfesor10() FK_TProfes or7() TC_TProfesor11()
UPC - Anlisis y Diseo Orientado a Objetos
51
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos6. Construir el Diagrama del Modelo de Datos.
Una vista grfica del Modelo de Datos se puede consultar creando un Diagrama del 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.
UPC - Anlisis y Diseo Orientado a Objetos
52
24/01/2012
Transformacin Modelo Anlisis - Modelo Datos6. Construir el Diagrama del Modelo de Datos.1. 2. 3.
Seleccionar el esquema dentro del cual estar el Diagrama del Modelo de Datos. Hacer click derecho y seleccionar Data Modeler / New / Data Model Diagram. Indicar el nombre el Diagrama del Modelo de Datos.
UPC - Anlisis y Diseo Orientado a Objetos
53
24/01/2012
Generando la Base de Datos Fsica y/o ScriptUPC - Anlisis y Diseo Orientado a Objetos 54 24/01/2012
Generando la Base de Datos y/o Script1. Seleccionar el esquema que contiene el Modelo deDatos. 2. Hacer clic derecho y seleccionar Data Modeler / Forward Engineer. 3. En el formulario de generacin especificar si desea generar el modelo de datos hacia un archivo DDL o hacia un motor de base de datos. 4. Hacer efectiva la generacin. 5. Consultar la ventana de Logs, para conocer si hubo errores.UPC - Anlisis y Diseo Orientado a Objetos 55 24/01/2012
Generando la Base de Datos y/o Script
UPC - Anlisis y Diseo Orientado a Objetos
56
24/01/2012
Generando la Base de Datos y/o Script
UPC - Anlisis y Diseo Orientado a Objetos
57
24/01/2012
Conclusiones El Modelador de Datos de Rational Rose permiteobtener:El Modelo de Datos. El Modelo de Almacenamiento. La Base de Datos fsica. El script de la Base de Datos.
UPC - Anlisis y Diseo Orientado a Objetos
58
24/01/2012