Você está na página 1de 67

PROCESO UNIFICADO

DISEO
Objetos Persistentes y Base de
Datos
Objetos Persistentes y Base de Datos
Contenido
1. Objetos persistentes
2. Almacenamiento de los Objetos
3. Seleccin de una Aproximacin a Persistencia
4. Criterios de Evaluacin de un DBMS
5. Capas de Diseo
6. Mapeo de Objetos Persistentes a un Esquema Relacional
7. Modelado de Base de Datos con Rational Rose: Modelador
de Datos
8. Transformacin del Modelo de Anlisis a Modelo de Datos
9. Mapeo en la Transformacin
1. Objetos Persistentes
Un objeto persistente es aquel que lgicamente existe bajo el
mbito del programa que lo cre.
Los lenguajes de programacin OO manejan objetos
residentes en memoria, los cuales son esencialmente
transitorios
Un objeto persistente tiene la habilidad de guardar el valor de
sus atributos en algn tipo de almacenamiento persistente
Un objeto persistente puede tambin crearse en memoria e
inicia con sus valores de atributo desde el almacenamiento
persistente
La estrategia total para proveer persistencia a los objetos en
el sistema, es un mecanismo de control
2. Almacenamiento de los Objetos Persistentes
El almacenamiento persistente puede hacerse empleando un
sistema de archivos simple o algn tipo de sistema de
administracin de base de datos. Hay varios modelos para
DBMSs:
Jerrquicos
Red
Relacional (RDBMS)
Orientado a Objetos (ODBMS)
El Relacional y el ODBMS son los ms comunes
3. Seleccin de una Aproximacin a Persistencia
La estrategia de diseo para retener objetos persistentes
deber considerar:
Tiempos de acceso
Capacidad de almacenamiento
Confiabilidad del sistema de almacenamiento
Acceso a datos existentes
El modelo elegido influir al sistema y al diseo de objetos,
de tal forma que los diseadores debern considerar:
Operaciones adicionales para almacenar y recuperar objetos
persistentes
Adicin de atributos para manejar detalles de almacenamiento
del sistema
Clases adicionales para hacer interfaz con el DBMS
4. Criterios de Evaluacin de un DBMS
Se debe decidir el criterio de evaluacin para elegir un DBMS
Presencia del Vendedor
Mirar el poder financiero, estructura de la organizacin,
procedimientos de soporte al cliente, soporte de entrenamiento
y consultora, alianzas con otras compaas
Desempeo de la Base de Datos
Ninguna marca puede probar que un DBMS es ms rpido para
todas las aplicaciones
El desempeo depende de la aplicacin, los prototipos
especficos de aplicacin son muy importantes
Capacidades de la Base de Datos
Se debe evaluar administracin de transacciones, control de
concurrencia, respaldo y recuperacin, seguridad y soporte de
un lenguaje de consulta (SQL)
4. Criterios de Evaluacin de un DBMS
Arquitectura de la Base de Datos
Evaluar esquemas de control de concurrencia, mecanismos de
seguridad y administradores de almacenamiento
Herramientas de Desarrollo
Ver las herramientas para el diseo de la base de datos,
modificacin del esquema de las base de datos y navegacin, as
como tambin las herramientas de depuracin y afinacin de la
base de datos
Soporte al lenguaje de eleccin
Asegurarse de que hay soporte para el lenguaje de su eleccin
para el desarrollo del sistema
Facilidad de Migracin
Qu tan fcil/difcil es migrar al sistema de la base de datos?
4. Criterios de Evaluacin de un DBMS
Integracin con Sistemas Legados
Qu tan fcil/difcil es integrarse al sistema de administracin de
base de datos existente?
Soporte Multi-usuario
Evaluacin del soporte para desarrollo multiusuario,
administracin de configuracin, control de versiones y
estrategias de seguridad
Nota: Invierta tiempo y esfuerzo para seleccionar el sistema de
administracin de base de datos apropiado para el proyecto
SIEMPRE es ms caro corregir que hacerlo bien desde el principio!!!
5. Capas de Diseo
Window
Na me:
OK Cancel
Interf az
Dominio
v1: Venta
Persist encia
Objetos a
tuplas y
BDR
VENTA
6. Mapeo de Objetos Persistentes a un Esquema
Relacional
Para la traduccin de un modelo de clases a un esquema
relacional, necesitamos:
Un identificador para cada tupla, se suele hacer aadiendo un ID
a cada tabla.
Un atributo por cada atributo original de la clase.
Tpicamente, cada clase mapea a una tabla y cada
instancia mapea a un rengln o fila.
Idcliente
nombre
direccion
*
*
*
Pk
cliente
cliente
nombre
direccion
telefono
6. Mapeo de Objetos Persistentes a un Esquema
Relacional
En cuanto a las asociaciones binarias, depende de la
multiplicidad.
Las asociaciones de uno-a-muchos se implementan agregando
una columna como clave fornea en la tabla que representa a
la clase que tiene la multiplicidad mayor a uno en la relacin,
esta nueva columna tendr como valor la clave primaria de la
tabla que representa a la clase cuya multiplicidad es uno.
cliente
nombre
direccion
telefono
ordenes
fecha
tiempoentrega
urgencia
0..n 1 0..n 1
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
6. Mapeo de Objetos Persistentes a un Esquema
Relacional
Las asociaciones con multiplicidad n-m, se implementan
como una nueva tabla con los atributos ID de las tablas
asociadas a las clases originales
cliente
nombre
direccion
telefono
ordenes
fecha
tiempoentrega
urgencia
0..n 1 0..n 1
productos
descripcion
unidadMedida
precio
1..n 0..n 1..n 0..n
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Idprod
descripcion
unidadMedida
precio
*
*
*
*
Pk
productos
Idorden
Idprod
*
*
Pk,Fk1
Pk,Fk2
items
Fk1 Fk2
Fk
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Fk1
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Idorden
Idprod
*
*
Pk,Fk1
Pk,Fk2
items
Fk1
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Fk2
Idorden
Idprod
*
*
Pk,Fk1
Pk,Fk2
items
Fk1
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Fk2
Idorden
Idprod
*
*
Pk,Fk1
Pk,Fk2
items
Fk1
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Idprod
descripcion
unidadMedida
precio
*
*
*
*
Pk
productos
Fk2
Idorden
Idprod
*
*
Pk,Fk1
Pk,Fk2
items
Fk1
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Fk1
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Fk1
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Fk2 Fk1
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Fk2 Fk1
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Idprod
descripcion
unidadMedida
precio
*
*
*
*
Pk
productos
Fk2 Fk1
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
*
*
*
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
6. Mapeo de Objetos Persistentes a un Esquema
Relacional
Las relaciones de generalizacin tienen tres enfoques o
estrategias posibles:
Conservar una tabla para cada subclase, de modo que el ID sea
el mismo en la clase padre y en las hijas.
Eliminar la tabla correspondiente a la clase padre o superclase,
de modo que se aadan sus atributos a cada tabla
correspondiente a las clases hijas o subclases.
Se crea una sola tabla para la clase padre o superclase con sus
atributos y los atributos de las clases hijas o subclases en forma
opcional. Se le agrega a la tabla un atributo adicional como
bandera para identificar la filas que pertenecen a las clases hijas.
Se buscan la mejor relacin con respecto al desempeo y
espacio de almacenamiento para decidir que mapeo usar
en cada situacin de herencia
6. Mapeo de Objetos Persistentes a un Esquema
Relacional
cliente
nombre
direccion
telefono
ordenes
fecha
tiempoentrega
urgencia
0..n 1 0..n 1
productos
descripcion
unidadMedida
precio
1..n 0..n 1..n 0..n
Ordenstandar
fechaInicio
fechaFin
Ordenespecial
frecuencia
6. Mapeo de Objetos Persistentes a un Esquema
Relacional
Idprod
descripcion
unidadMedida
precio
*
*
*
*
Pk
productos
Fk2
Fk1
Idorden
fecha
Tiempoentrega
Urgencia
fechaInicio
fechaFin
frecuencia
Idcliente
tipoOrden
*
*
*
*
o
o
o
*
*
Pk
Fk
ordenes
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Idorden
Idprod
*
*
Pk,Fk1
Pk,Fk2
items
Fk
Estrategia por Superclase (una sola tabla)
6. Mapeo de Objetos Persistentes a un Esquema
Relacional
*
*
*
Idcliente
nombre
direccion
*
*
*
Pk
cliente
Idorden
fechaInicio
fechaFin
Fk, Pk
ordenstandar
Estrategia por Arco
Idorden
frecuencia
*
*
Fk, Pk
ordenespecial
Fk
*
*
*
*
*
Idorden
fecha
Tiempoentrega
Urgencia
Idcliente
Pk
Fk
ordenes
7. Modelado Base de Datos con Rational Rose:
Contenido
Los tres Modelos del Modelador de
Datos 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.
7. Modelado Base de Datos con Rational Rose:
Modelador de Datos
Para modelar los datos de un Sistema con la
herramienta Rational Rose se utiliza
Es una herramienta adicional (add-in).
Permite construir el Modelo de Datos.
Permite construir el Modelo de Almacenamiento.
Utiliza UML como estndar de modelado.
Data Modeler
(Modelador de datos)
7. Modelado Base de Datos con Rational Rose:
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
Almacenamiento
Modelo de
Datos
7. Modelado Base de Datos con Rational Rose:
Modelo de Anlisis
Representa la vista lgica de las clases.
Presenta los conceptos o clases fundamentales y la
relacin entre ellos.
Es independiente del tipo de Base de Datos.
Est compuesto por:
Clases.
Atributos.
Operaciones.
Asociaciones.
Diagrama de clases.
Modelo de
Anlisis
7. Modelado Base de Datos con Rational Rose:
Modelo de Anlisis
Modelo de
Anlisis
Aut or-Li bro
principal : Boolean
tema : String
Libro
codLibro : Long
titulo : String
fechaEdici on : Date
Autor
codAutor : Long
nombre : String
apelli dos : St ri ng
sexo : Boolean
fechaNacimiento : Date
1..n
1..n
1..n
1..n
escribe
7. Modelado Base de Datos con Rational Rose:
Modelo de Datos
Representacin de la vista fsica de los datos.
Es dependiente del tipo de Base de Datos.
Est compuesto por:
Tablas.
Columnas o campos.
Claves primarias y forneas.
Restricciones.
ndices.
Relaciones.
Diagrama del Modelo de Datos.
Modelo de
Datos
7. Modelado Base de Datos con Rational Rose:
Modelo de Datos
TAutor
codAutor : INTEGER
nombre : VARCHAR(255)
apellidos : VARCHAR(255)
sexo : SMALLINT
fechaNacimiento : DATE
TAutor_ID : INTEGER
TPais_ID : INTEGER
<<PK>> PK_TAutor0()
<<FK>> FK_TAutor5()
<<Index>> TC_TAutor8()
TAutor-Libro
principal : SMALLINT
tema : VARCHAR(255)
TLibro_ID : INTEGER
TAutor_ID : INTEGER
<<PK>> PK_TAutor-Libro2()
<<FK>> FK_TAutor-Libro0()
<<FK>> FK_TAutor-Libro1()
<<Index>> TC_TAutor-Libro0()
<<Index>> TC_TAutor-Libro1()
1
0..*
1
0..*
<<Identifying>>
TLibro
codLibro : INTEGER
titulo : VARCHAR(255)
fechaEdicion : DATE
TLibro_ID : INTEGER
<<PK>> PK_TLibro1()
1
0..*
1
0..*
<<Identifying>>
Modelo de
Datos
7. Modelado Base de Datos con Rational Rose:
Modelo de Almacenamiento
Representacin de la vista fsica de la 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.
Modelo de
Almacenamiento
7. Modelado Base de Datos con Rational Rose:
Modelador de Datos
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.
8. Transformacin del Modelo de Anlisis al Modelo
de Datos: Mapeo
8.1. Definir las clases persistentes que sern las que
participarn en la transformacin.
8.2. Indicar los atributos que se sugieren como parte
de la identidad del objetos (claves primarias).
8.3. Agrupar las clases persistentes en un paquete. La
transformacin ocurre solo a nivel de paquete.
8.4. Crear un componente de Base de Datos en la
Vista de Componentes.
8.5. Transformar el Modelo Anlisis-Modelo Datos.
8.6. Construir el Diagrama del Modelo de Datos.
8.1. Definir las clases persistentes que sern las que
participarn en la transformacin.
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.
8.1. Definir las clases persistentes que sern las que
participarn en la transformacin.
8.2. Indicar los atributos que se sugieren como parte
de la identidad del objetos (clave primaria)
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
8.2. Indicar los atributos que se sugieren como parte
de la identidad del objetos (clave primaria)
8.3. Agrupar las clases persistentes en un paquete. La
transformacin ocurre solo a nivel de paquete.
Para ello se crea un paquete dentro de la Vista
Lgica y se mueven hacia el mismo las clases
persistentes.
Se sugiere realizar este paso desde el inicio de la
construccin del Modelo de Anlisis.
8.4. Crear un componente de Base de Datos en la
Vista de Componentes
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.
8.4. Crear un componente de Base de Datos en la
Vista de Componentes
8.4. Crear un componente de Base de Datos en la
Vista de Componentes
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.
8.4. Crear un componente de Base de Datos en la
Vista de Componentes
Especificar el tipo de la
Base de Datos haciendo
doble clic sobre el
componente de Base
de Datos creado.
8.4. Crear un componente de Base de Datos en la
Vista de Componentes
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
8.4. Crear un componente de Base de Datos en la
Vista de Componentes
Hacer doble clic sobre el Tablespace creado para
especificar todas sus propiedades. Esto depende del
tipo de la Base de Datos.
8.4. Crear un componente de Base de Datos en la
Vista de Componentes
Oracle DB2
8.5. Transformar el Modelo Anlisis-Modelo Datos
Seleccionar el paquete que
contiene al Modelo de
Anlisis.
Hacer clic en el boton
derecho y seleccionar
Data Modeler / Transform
to Data Model.
8.5. Transformar el Modelo Anlisis-Modelo Datos
Especificar los parmetros de la transformacin.
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.
Hacer click en el botn Ok para comenzar la
transformacin.
8.5. Transformar el Modelo Anlisis-Modelo Datos
9. Mapeo en la Transformacin
9.1. Mapa de Transformacin.
9.2. Transformacin de los atributos.
9.3. Transformacin de las relaciones
9.4. Resultado de la Transformacin.
9.5. Construir el Diagrama del Modelo de Datos.
9.6. Generando la Base de Datos Fsica y/o Script
9.1. Mapa de Transformacin
No
transformada
Operacin
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
Columna Atributo
Las clases persistentes son
transformadas en tablas
Tabla Clase
Relacin
Modelo de
Datos
Las asociaciones se transforman
de acuerdo a su tipo.
Asociacin
Resultado Modelo de
Anlisis
9.2. Transformacin de los Atributos
Modelo de Anlisis Modelo de Datos
Clase X
atributoCadena : String
atributoLogico : Boolean
atributoNumerico : Long
atributoReal : Double
(from NewPackage)
T_Clase X
atributoCadena : VARCHAR(255)
atributoLogico : SMALLINT
atributoNumerico : INTEGER
atributoReal : DOUBLE PRECISION
<<PK>> PK_T_Clase X1()
9.2. Transformacin de los Atributos
En Oracle
NUMBER (3,0) BYTE
FLOAT SINGLE
NUMBER (20,0) LONG
NUMBER (10,0) INTEGER
FLOAT DOUBLE
DATE DATE
NUMBER (5,0) BOOLEAN
FLOAT CURRENCY
VARCHAR2(255) STRING
Tipos de Datos
Modelo de Datos
Tipos de Datos
Modelo de Anlisis
9.2. Transformacin de los Atributos
En DB2
DOUBLE CURRENCY
BIGINT LONG
REAL SINGLE
SMALLINT BYTE
SMALLINT BOOLEAN
VARGRAPHIC(255) STRING
INTEGER INTEGER
DOUBLE DOUBLE
TIMESTAMP DATE
Tipos de Datos
Modelo de Datos
Tipos de Datos
Modelo de Anlisis
9.2. Transformacin de los Atributos
En SQL
MONEY CURRENCY
INT LONG
FLOAT SINGLE
SMALLINT BYTE
BIT BOOLEAN
VARCHAR(255) STRING
INT INTEGER
FLOAT DOUBLE
DATETIME DATE
Tipos de Datos
Modelo de Datos
Tipos de Datos
Modelo de Anlisis
9.2. Transformacin de los Atributos
Por cada atributo que forma parte de la clave
primaria ser la identidad del objeto, el Modelador de
Datos crea una columna, manteniendo el nombre del
atributo.
Si no se especifica lo anterior, el Modelador de Datos
crea una columna.
Nombre: NombreDeLaTabla + _ID
Tipo de dato: ENTERO.
En ambos casos se crea la restriccin de llave
primaria PK.
9.2. Transformacin de los Atributos
Modelo de
Anlisis
Modelo de Datos
Clase K
atributoIdentidad : String
atributo : String
(from NewPackage)
T_Clase K
atributoIdentidad : VARCHAR(255)
atributo : VARCHAR(255)
<<PK>> PK_T_Clase K3()
Modelo de Objetos Modelo de Datos
Clase Z
atributo
(from NewPackage)
T_Clase Z
at ri buto : SMALLINT
T_Clase Z_ID : INTEGER
<<PK>> PK_T_Clase Z4()
Atributo como
Parte de la
identidad del
objeto
Atributo sin
identidad
9.3. Transformacin de las Relaciones
Cuando una tabla A tiene una relacin con una tabla 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.
T_Clase B
llave de B : NUMBER(5, 0)
<<PK>> PK_T_Clase B6()
T_Clase A
llave de A : NUMBER(5, 0)
<<PK>> PK_T_Clase A5()
T_Clase B
llave de B : NUMBER(5, 0)
llave de A : NUMBER(5, 0)
<<PK>> PK_T_Clase B6()
<<FK>> FK_T_Clase B2()
T_Clase A
llave de A : NUMBER(5, 0)
<<PK>> PK_T_Clase A5()
0..1
0..*
0..1
0..*
<<Identifying>>
9.3. Transformacin de las Relaciones
Relacin es NO IDENTIFICANTE
Relacin es IDENTIFICANTE
9.3. Transformacin de las Relaciones
Convirtiendo asociacin en relacin
Relacin no
identificante
Elementos del
Modelo de Datos
Cada asociacin
simple se
transforma en una
relacin no
identificante entre
las tablas (en el
sentido contrario a
la navegabilidad)
Asociacin simple
Resultado Elemento del
Modelo de Anlisis
9.3. Transformacin de las Relaciones
Convirtiendo asociacin en relacin
Clase B
llave de B
Clase A
llave de A
1
*
T_Clase B
llave de B : NUMBER(5, 0)
llave de A : NUMBER(5, 0)
<<PK>> PK_T_Clase B6()
<<FK>> FK_T_Clase B2()
<<Index>> TC_T_Clase B7()
T_Clase A
llave de A : NUMBER(5, 0)
<<PK>> PK_T_Clase A5()
0..1
0..*
<<Non-Identifying>>
9.3. Transformacin de las Relaciones
Convirtiendo asociacin en relacin
Tablas separadas
Elementos del
Modelo de Datos
Cada asociacin
mltiple (clase
asociacin) se
transforma en una
tabla de separada.
Asociacin mltiple
(Clase asociacin)
Resultado Elemento del
Modelo de Anlisis
9.3. Transformacin de las Relaciones
Convirtiendo asociacin en relacin
clase AA
llav e de AA
clase BB
llav e de BB
1..n 1..n
Clase As oc iac ion
atributo de la asociacion
1..n 1..n
T_clase BB
llave de BB : NUMBER(5, 0)
<<PK>> PK_T_clase BB24()
T_Clase Asociacion
atributo de la asociacion : NUMBER(5, 0)
llave de BB : NUMBER(5, 0)
llave de AA : NUMBER(5, 0)
<<PK>> PK_T_Clase Asociacion25()
<<FK>> FK_T_Clase Asociacion11()
<<FK>> FK_T_Clase Asociacion10()
<<Index>> TC_T_Clase Asociacion32()
<<Index>> TC_T_Clase Asociacion31()
1
0..*
1
0..*
<<Identifying>>
T_clase AA
llave de AA : NUMBER(5, 0)
<<PK>> PK_T_clase AA23()
1
0..*
1
0..*
<<I dentifying >>
9.3. Transformacin de las Relaciones
Convirtiendo asociacin en relacin
Relacin
identificante
Elementos del
Modelo de Datos
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
compuesta
Asociacin
composicin
Asociacin
agregacin
Resultado Elemento del
Modelo de Anlisis
9.3. Transformacin de las Relaciones
Convirtiendo asociacin en relacin
Todo
l l ave de Todo
Parte
l l ave de Parte
1..n
1
+partes
1..n
1
T_Parte
l l ave de Parte : NUMBER(5, 0)
l l ave de Todo : NUMBER(5, 0)
<<PK>> PK_T_Parte20()
<<FK>> FK_T_Parte8()
<<Index>> TC_T_Parte27()
T_Todo
l l ave de Todo : NUMBER(5, 0)
<<PK>> PK_T_Todo19()
1
1..*
1
1..*
<<Identi f yi ng>>
9.3. Transformacin de las Relaciones
Convirtiendo asociacin en relacin
Tablas separadas
Elementos del
Modelo de Datos
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
Asociacin
generalizacin
Resultado Elemento del
Modelo de Anlisis
9.3. Transformacin de las Relaciones
Convirtiendo asociacin en relacin
Superclase
llave superclase
Subclase
llave subclase
T_Subclase
llave subclase : NUMBER(5, 0)
llave superclase : NUMBER(5, 0)
<<PK>> PK_T_Subclase22()
<<FK>> FK_T_Subclase9()
T_Superclase
llave superclase : NUMBER(5, 0)
<<PK>> PK_T_Superclase21()
1
0..*
1
0..*
<<Identifying>>
9.4. Resultado de la Transformacin
Se crea el Modelo de
Datos.
Se agrega el paquete
Schema dentro de la Vista
Lgica.
Se agrega un paquete con
el nombre definido.
9.4. Resultado de la Transformacin. Ejemplo
Aut or-Li bro
principal : Boolean
tema : String
Usuario
codUsuario : Integer
nombre : String
apellidos : String
sexo : Boolean
Ejemplar
codEjemplar : Integer
1..n
1..n
1..n
1..n
solicita
Prestamo
fechaPrest amo : Date
fechaDevolucion : Date
Est udi ante
carrera : String
Profesor
departamento : String
Libro
codLibro : Long
titulo : String
fechaEdicion : Date
1..n
1
1..n
1
contiene
Pais
codPais : Integer
descripcion : String
Autor
codAutor : Long
nombre : String
apellidos : String
sexo : Boolean
fechaNacimiento : Date
1..n
1..n
1..n
1..n
escribe
1
0..n
1
0..n
naci
9.4. Resultado de la Transformacin. Ejemplo
TAutor-Libro
principal : SMALLINT
tema : VARCHAR(255)
TLibro_ID : INTEGER
TAutor_ID : INTEGER
<<PK>> PK_TAutor-Libro2()
<<FK>> FK_TAutor-Libro0()
<<FK>> FK_TAutor-Libro1()
<<Index>> TC_TAutor-Libro0()
<<Index>> TC_TAutor-Libro1()
TAutor
codAutor : INTEGER
nombre : VARCHAR(255)
apellidos : VARCHAR(255)
sexo : SMALLINT
fechaNacimiento : DATE
TAutor_ID : INTEGER
TPais_ID : INTEGER
<<PK>> PK_TAutor0()
<<FK>> FK_TAutor5()
<<Index>> TC_TAutor8()
1
0..*
1
0..*
<<Ident ifyi ng>>
TPais
codPais : INTEGER
descripcion : VARCHAR(255)
TPais_ID : INTEGER
<<PK>> PK_TPais8()
1
0..*
1
0..*
<<Non-Identifying>>
TLibro
codLibro : INTEGER
t itul o : VARCHAR(255)
fechaEdici on : DATE
TLibro_ID : INTEGER
<<PK>> PK_TLibro1()
1
0.. *
1
0.. *
<<Ident ifyi ng>>
TEjemplar
codEjempl ar : INTEGER
TLibro_ID : INTEGER
<<PK>> PK_TEjempl ar3()
<<FK>> FK_TEjemplar2()
<<Index>> TC_TEj emplar9()
1
1..*
1
1..*
<<Ident ifyi ng>>
TPrestamo
fechaPrestamo : DATE
fechaDevolucion : DATE
TUsuario_ID : INTEGER
TLibro_ID : INTEGER
<<PK>> PK_TPrestamo5()
<<FK>> FK_TPrestamo4()
<<FK>> FK_TPrestamo3()
<<Index>> TC_TPrestamo3()
<<Index>> TC_TPrestamo4()
1
0..*
1
0..*
<<Identifying>>
TEstudiante
carrera : VARCHAR(255)
TUsuari o_ID : INTEGER
<<PK>> PK_TEstudiant e9()
<<FK>> FK_TEstudiante6()
<<Index>> TC_TEst udiante10()
TProfesor
departamento : VARCHAR(255)
TUsuario_ID : INTEGER
<<PK>> PK_TProfesor10()
<<FK>> FK_TProfesor7()
<<Index>> TC_TProfesor11()
TUsuario
codUsuario : INTEGER
nombre : VARCHAR(255)
apelli dos : VARCHAR(255)
sexo : SMALLINT
TUsuario_ID : INTEGER
<<PK>> PK_TUsuario4()
1
0..*
1
0..*
<<Identifying>>
1
0.. 1
1
0.. 1
<<Identifying>>
1
0..1
1
0..1
<<Identifying>>
9.5. 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.
9.5. Construir el Diagrama del Modelo de Datos
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.
9.6. Generando la Base de Datos Fsica y/o Script
Seleccionar el esquema que contiene el Modelo de
Datos.
Hacer clic derecho y seleccionar Data Modeler /
Forward Engineer.
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.
Hacer efectiva la generacin.
Consultar la ventana de Logs, para conocer si hubo
errores.
9.6. Generando la Base de Datos Fsica y/o Script
9.6. Generando la Base de Datos Fsica y/o Script

Você também pode gostar