2563987 data modeler uml

Upload: carlos-canar

Post on 14-Jul-2015

103 views

Category:

Documents


0 download

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