HERRAMIENTAS CASE PARA MODELAMIENTO DE DATOS. Mejorar el modelo físico de datos Es necesario...

Post on 06-Feb-2015

17 views 1 download

Transcript of HERRAMIENTAS CASE PARA MODELAMIENTO DE DATOS. Mejorar el modelo físico de datos Es necesario...

HERRAMIENTAS CASE PARA MODELAMIENTO DE DATOS

Mejorar el modelo físico de datos

• Es necesario modificar el PDM por:– Integridad de datos – adicionar restricciones a las columnas– Consistencia de datos – utilizar integridad referencial

declarativa– Usabilidad/Seguridad – crear vistas– Rendimiento – adicionar otras llaves e índices

• Se hacen a nivel físico porque dependen de las capacidades del DBMS que se esté utilizando

Reglas del negocio y la mejora del PDM

• PowerDesigner:– Transfiere las reglas del negocio del CDM al PDM– Aplica las reglas del negocio al PDM cuando éste es

generado a partir del CDM• El usuario aplica reglas a objetos del PDM que no

corresponden a objetos del CDM– Ejemplo, una vista

Integridad y consistencia de datos

• Tipos de restricciones:– A nivel de tabla – A nivel de columna– Integridad referencial

Restricciones a nivel de tabla y columna

• Para forzar requerimientos de datos y para aplicar restricciones

• PowerDesigner usa restricciones a las que les coloca un nombre para definir restricciones a nivel de tabla y columna– Los parámetros de chequeo definen rangos de valores y

reglas de validación

Parámetros de chequeo

• Parámetros estándar– Controles para datos

comunes– Definidos a nivel

conceptual

• Chequeos adicionales– Escritos como sentencias

SQL– %MINMAX%, %LISTVAL

% y %RULES%

Propiedades para chequeo estándar

• Mínimo• Máximo• Default• Lista de valores• Rótulo• Unidad• Formato • Minúsculas• Mayúsculas• Inmodificable

Chequeos adicionales

• %MINMAX% – Valores mínimo y máximo definidos en una caja de grupo (group box)

• %LISTVAL% – Lista de valores en una caja de grupo

• %RULES% – Validación de expresiones de reglas del negocio definidas en la página de expresiones del servidor

Reglas del negocio

• Las reglas de validación del lado del servidor se generan como reglas de chequeo a nivel de columna, tabla o dominio– %RULES% variable

• Las expresiones del lado cliente, no se generan ni en el CDM ni en el PDM

Expresión de reglas

• En PowerBuilder una regla se escribe como una expresión que combina variables y literales que luego se llevan a SQL y se evalúan para ver si están correctas a nivel del PDM

– Generalmente para las reglas a nivel de tabla se debe escribir el código

– Para reglas a nivel de columna se puede utilizar la variable %COLNCODE%

Integridad referencial

• Conjunto de reglas que determinan el comportamiento de las referencias entre entidades

• Indican qué pasa cuando:– En una tabla padre se actualizan o borran valores de una

columna que está referenciada– En una tabla padre se borra una fila que tiene una columna

que está referenciada• Una relación obligatoria termina en una restricción de

no nulo en la columna de la tabla padre

Propiedades generales de la integridad referencial

• Nombre y código de la referencia

• Comentario• Tabla padre• Tabla hija• Indicador de generación

Propiedades de Join

• Para especificar los join entre tablas encadenadas por referencias– Reutilizar columnas– Migrar columnas– Cancelar migración– Auto Ajuste del orden de

encadenamiento• Opciones del modelo

– Encadenamiento default al momento de creación

– Auto migración de columnas

Propiedades para integridad

• Nombre de la restricción• Método de implementación

– Declarativa– Por triggers

• Cardinalidad• Restricción para actualización• Restricción para borrado• Padre obligatorio• Chequeo al hacer commit• Permitir cambios en el padre

Métodos de implementación

• Declarativo

Continua …Continua …

Métodos de implementación• Por trigger

Restricciones para actualización y borrado

• Ninguna• Restrictivo• En cascada• Colocando nulo• Colocando el default

Integridad referencial y las reglas del negocio

• Las restricciones de la integridad referencial deben basarse en una o más reglas del negocio

• Una regla define indirectamente una restricción

Definir vistas

• Para mejorar la usabilidad y seguridad de los datos• Forma alterna de ver los datos de una o más tablas• Subconjunto de filas y columnas• Con la consulta SQL a una o más tablas se genera una

tabla lógica (virtual)

Crear vistas

• Dos formas para crear vistas:– Crear la vista a partir de tablas seleccionadas en el PDM– Crear una vista vacía, y luego seleccionar las tablas de una

lista de tablas

Propiedades de la vista

• Propietario• Uso• Generar• Usuario predefinido• Columnas

Modificar la consulta SQL

• Editor externo• Propiedades• Editor SQL• Adicionar una consulta

Propiedades de la consulta

• Pestañas para cada sección de la consulta

• Especificar columnas y alias de cada una

Editor SQL

• Tipos de objetos• Objetos disponibles• Caja de texto para el script de

la consulta– Herramienta para Funciones– Herramienta para operadores

Llaves

• Identificadores en el CDM generan llaves en el PDM• Identificadores primarios generan llaves primarias y

foráneas• Identificadores diferentes del identificador primario

generan llaves alternas

Tipo de llave generada

• Independiente uno-a-muchos– Identificador primario da

• Llave primaria en el lado de uno• Llave foránea en el lado de

muchos• Relación dependiente

– Identificador primario• Identifica llave foránea en la tabla

dependiente• Columnas migradas se integran en

la llave primaria si ella ya existe

• Independiente muchos-a-muchos– El identificador primario de ambas

entidades migran a la tabla encadenada como llaves primaria/foránea

• Independiente uno-a-uno– El identificador primario de la entidad

dominante migra a la otra tabla como llave foránea

El tipo de llave generada depende de la cardinalidad y tipo de dependencia

Tipo de llave generada

Llave alterna

• Una o más columnas tales que cada uno de sus valores corresponde a una y solo una fila en la tabla

• Mejora la usabilidad: La alternativa debe ser sobre un dato muy familiar para el usuario– Ejemplo: Cédula en cambio de código del empleado

• Mejora la seguridad: Oculta los valores de llave primaria a los usuarios finales

• La llave alterna puede ser una llave alterna pero no una llave primaria

Propiedades de las llaves

• Nombre y código• Comentario• Tabla asociada de la llave• Nombre de la restricción

dada a la llave• Indicador de llave primaria• Columnas que conforman

la llave

Índices• Estructura de datos asociados a una tabla donde sus valores

llaves están lógicamente ordenados• Cada llave genera un índice único o una restricción de unicidad• Mejora el rendimiento de las bases de datos en las operaciones

de lectura• Puede desmejorar el rendimiento de operaciones que requieran

modificar los índices, por ejemplo en sentencias de inserciones, actualizaciones y borrados

• Crear índices en columnas que se accesen de forma regular y donde el tiempo de respuesta es importante

• Efectivo cuando se usa en columnas que contienen valores únicos

Continua …Continua …

Índices

• Crea un índice definido por el usuario asociado a una o más columnas, o

• Crea un índice encadenado a una llave primaria, llave alterna o llave foránea

Tipos de índices

• Llave primaria• Llave foránea• Único• Cluster• Definido por el usuario• Llave alterna

Propiedades de los índices

• Nombre, código, Comentario• Tipo de índice• Tabla• Columnas• Reglas• Dependencias• Vista previa• Opciones específicas a cada

DBMS

Chequeo de un PDM

• Reglas – Cada nombre de objeto debe ser único– Cada tabla debe tener por lo menos una columna– Cada índice debe tener por lo menos una columna– Cada referencia debe tener por lo menos un par de

columnas– Las restricciones del modelo deben ser compatibles

con las restricciones que acepte la base de datos utilizada

Tipos de chequeo

• Tabla– La longitud del nombre y del código no pueden exceder la

longitud máxima especificada en el DBMS– Los nombres de las restricciones no pueden estar en

conflicto con los nombres de los índices• Columna

– Las columnas incluidas en una llave o índice único deben ser obligatorias, en la mayoría de los DBMS

• Índice– Un índice no debe incluir otro

• Llave• Referencia

Nivel de severidad

• Error – es un problema grave que impide la generación de la base de datos

• Warning – Indica un problema leve o una recomendación

• Algunos errores se pueden auto-corregir

Fijar opciones para el chequeo del PDM

Seleccionar los objetos a chequear

Corrección de errores

Generar la base de datos o el script de creación de la base de datos

Editor para definir el DBMS

• Archivo tipo XDB– Archivo de definición del DBMS en XML– Especificaciones para un DBMS en particular– Sintaxis para generar bases de datos, triggers,

procedimientos almacenados– Editar un DBMS, actualmente editando el archivo XDB

Definir el DBMS

• Copiar un DBMS existente

• Comparar dos DBMS• Seleccionar dos DBMS

para intercalar• Importar un DBMS

Propiedades DBMS

• Dos categorías:– General– Script

• Una categoría puede contener subcategorías, campos y valores de campo

Modificar la definición del DBMS

• Los cambios se aplican de manera diferente de acuerdo a la forma como el DBMS esté asociado con el modelo– Share – las modificaciones hechas a un DBMS son

compartidas por todos los PDM que usan ese DBMS– Copy – Las modificaciones hechas a un DBMS no afectan al

PDM

Añadir atributos extendidos

• Usados como variables durante la generación

• Los tipos de atributos extendidos definen los tipos de datos y los valores autorizados de los atributos extendidos

• Una vez se ha añadido, se presenta la facilidad para ingresar otro

Generación de la base de datos

• Ejecutar un script directamente utilizando ODBC• Generar un script para ejecutarlo posteriormente en el

DBMS• En ambos casos, los comandos de generación se

guardan en un archivo donde está el script

Parámetros para generación

Parámetros para llaves e índices

Parámetros para la base de datos

Opciones para generación

• Texto– Conjunto de caracteres– Tipo de caracteres

(minúsculas/mayúsculas)

• Uso– El dueño como prefijo– Título– Generar nombre en un

comentario

• Chequear el modelo• Grabación automática

Página de selección

Generación usando ODBC

• En Windows, ODBC es una interfaz estándar para conectar bases de datos

• Provee un API estándar, abierto y portable

Modelamiento de un Data Warehouse

• Una Data Warehouse es una base de datos típicamente utilizada para almacenar información consolidada de sistemas heterogéneos

• Las herramientas OLAP utilizan formatos multi-dimensionales para examinar los datos

Facilidades de PowerDesigner para Warehouse

• Definición de las fuentes de datos• Mapeo relacional a relacional• Scripts para extracción• Identificación automática de tablas de hechos y

dimensiones– La tabla de hechos almacena valores numéricos de variables

relacionadas con aspectos del negocio– La tabla de dimensiones almacena datos relativos a los

conceptos que se trabajan en los ejes de cada dimensión

Diagramas multidimensionales

• El software OLAP usa cubos para representar una colección de medidas correspondientes a valores almacenados en cada una de sus celdas– Los datos se extraen de una data warehouse o una base de

datos operacional para llenar los cubos de la máquina OLAP• La opción de reconstruir un cubo en PowerDesigner,

automáticamente crea un mapeo relacional a multidimensional entre las tablas de la data warehouse, de hechos multidimensionales y de dimensiones para crear un diagrama multidimensional

Diagrama multidimensional

Triggers

• Código dirigido a eventos que se ejecuta automáticamente cuando se hace inserción, borrado o actualización de datos en una columna o una tabla específica

• Contiene sentencias SQL específicas para los diferentes y se pueden definir en el PDM

• Asociados específicamente con:– Una tabla de una base de datos– Un evento de la base de datos

Procedimientos almacenados y funciones

• Se ejecutan por llamado explícito• Usados para implementar lógica del negocio, transacciones

y algoritmos• Las funciones son un tipo de procedimientos almacenados

Ventajas

• Estandarización• Eficiencia y Rendimiento• Seguridad• Mejora la productividad de los desarrolladores• Uso eficiente de la experiencia• Simplifica el mantenimiento de aplicaciones• Flexibiliza grandes aplicaciones• Consistencia de los algoritmos• Transparencia de datos

Desventajas

• Pobre balanceo de carga• Incrementa los requerimientos de administración• Para productos específicos

Uso de triggers

• Para forzar reglas de integridad referencial que son demasiado complejas para definirlas en forma declarativa

• Para forzar reglas del negocio acerca de relaciones lógicas entre los datos

• Para capturar información y registros para auditoria

Tipos de triggers

• Trigger para inserción• Trigger para borrado• Trigger para actualización• Triggers de PowerDesigner

– Basados en plantillas de triggers– Se pueden adaptar para conseguir los requerimientos

solicitados (triggers adaptados)– Si no se adaptan, entonces se denominan triggers default

Tipos de triggers por default

Term DescriptionTrigger template Modelo genérico para generar scriptsTemplate item Bloque reutilizable de un script que

implementa integridad referencialTrigger Procedimiento asociado a una tabla y

posiblemente ajustado a esa tablaTrigger script Código SQL que contiene el manejo

ajustado para una determinada tabla

Terminología para triggers

Plantilla para un trigger

Template Item

Trigger

Trigger Script

Variables• Contenedores para referencias a características de objetos y

formatos del modelo

Tipos de variables

• %TABLE% Para generar el nombre de la tabla• %ISMAND% Verdadero si el dominio o la columna

es obligatoria• %COLNNO% Posición de la columna en la lista

de columnas de la tabla• %RULECEXPR% Expresión para una regla cliente• %CHILD% Código generado para tablas hijas

Variables para formato

Ejemplo: %.L:TABLE%

Caracter para formateo

Resultados

.L Caracteres en minúsculas

.U Caracteres en mayúsculas

.T Quitar caracteres en blanco

.n Longitud máxima

n Justifica a una longitud fija

-n Justifica a la derecha en para fijar longitud

Macros

• Script encapsulado y reutilizable para ejecutar tareas típicas• Simplifica el proceso de modificación de plantillas• Aumenta la calidad del script porque se puede probar su código

Modificar plantillas para triggers

• Modificar una plantilla para acomodarlos a las necesidades del negocio es más eficiente que ajustar todos los triggers de forma individual

• Las plantillas Default para trigger se almacenan en archivos tipo XDB

• Se puede copiar la plantilla default y modificarla o crear una nueva

Modificar plantilla para Default

Modificar plantilla de items

Crear triggers automáticamente

• Implementación de integridad referencial– Triggers– Declarativa

• Reconstrucción de triggers– Crear nuevos triggers para referencias que tienen

implementación en triggers– Conservar y/o reconstruir triggers basados en plantillas de

items definidas por el usuario

Reconstruir triggers

Generar un script para triggers

• Generación de parámetros y opciones

Generar triggers y procedimientos almacenados directamente con ODBC

Usar plantillas para definir procedimientos almacenados y funciones

• Las plantillas son un punto de inicio en la definición de procedimientos almacenados o funciones

• Añadir detalles en transacciones, operaciones o algoritmos particulares

Definir un procedimiento almacenado o función

Definir plantillas especiales para procedimientos almacenados

• Se pueden ajustar las plantillas para incluir scripts adicionales

• Se pueden aplicar a todos los PDMs o a uno en particular

Ingeniería reversa o reingeniería

Usar reingeniería cuando …

• Existe una base de datos que fue diseñada e implementada sin un modelo de datos

• El modelo de datos existente no refleja el estado actual de la base de datos implementada

• El modelo de datos por alguna razón se ha perdido• La base de datos existente se necesita llevar a un

DBMS diferente y se quiere tener un nuevo PDM

Reingeniería desde un script

Reingeniería desde un script

• Seleccionar el archivo

• Opciones• Modelos deseados

Reingeniería desde un catálogo

Continúa …Continúa …

Reingeniería desde un catálogo

• Identificar la base de datos como una fuente de datos ODBC– Definir una fuente de datos– Configurar fuente de datos

• Generar el PDM

Nota: No existe un encadenamientos entre el CDM y el PDM

Reingeniería desde un PDM para producir un CDM

• Objeto CDM– Entidad– Dato elemental, atributo – Identificador– Relación uno-a-muchos– Relación muchos-a-muchos

• Objeto PDM– Tabla– Columna de tabla– Llave primaria o foránea– Referencia– Tabla asociada (join)

Resultados al generar un CDM desde un PDM

• El CDM tiene referencias no válidas al PDM• Algunos objetos del PDM no tienen un objeto

correspondiente en el CDM• Regenerar un PDM desde un CDM requiere la

ejecución de una serie de pasos para conseguir un PDM con referencias válidas en el CDM sin que se pierdan objetos PDM

Comparar modelos

• Comparar modelos ayuda a analizar el contenido de dos modelos del mismo tipo

• Se comparan modelos para:– Seguir la evolución de modelos manejados por diferentes

grupos de desarrollo– Evaluar las diferencias que existen entre los modelos antes

de intercalarlos

Seleccionar los modelos a comparar

Opciones

Ventanas para comparación

• Sección para comparar objetos– Fuente 1– Fuente 2

• Sección de propiedades de la comparación– Propiedades– Fuente 1– Fuente 2

Convenciones para las diferencias

Creación

No existe el objeto

Modificación

Movido

Movido y modificado

Vista previa de los resultados de la comparación

Intercalar modelos

• Intercalar un modelo en otro• Intercalar modelos para:

– Crear un modelo combinado, de modelos manipulados por diferentes equipos de desarrollo

– Actualizar un PDM existente con cambios hechos a su correspondiente CDM o viceversa

– Intercalar un PDM mejorado con un PDM existente para re-establecer el encadenamiento entre un CDM producto de reingeniería y un PDM

– Sincronizar una base de datos con un PDM

Intercalar un modelo

• Primero seleccionar y comparar los modelos• Seleccionar los objetos a intercalar en el modelo

resultante intercalado

Ventana para intercalar

Nomenclatura para intercalar

• Rojo = Modificación• Amarillo = Indicación• Verde = Movido• Púrpura = Borrado y marca de reemplazo• Azul = Adición

• Indicación – triángulo• Acción – circulo con caja de chequeo

Ejemplo de acción de intercalamiento

Ejemplo de acción de intercalamiento

Vista previa de los resultados de intercalar

Mover un objeto de un paquete a otro en el intercalamiento

Sincronización manual de objetos

• PowerDesigner chequea objetos de dos modelos para ver si ellos están relacionados

– Usa OID o el nombre del objeto si no tiene OID (Object IDentification)• Sin enlace

– El objeto ha sido modificado y se le ha cambiado el nombre fuera de la interfaz de PowerDesigner

– Grupos separados han trabajado sobre archivos separados del modelo para el mismo proyecto

• Si no hay enlace, la interfaz de comparación no puede determinar si dos objetos corresponden

• La sincronización manual permite re-establecer la equivalencia de objetos desconectados

Sincronización del modelo físico de datos

Sincronización de datos

• Usuarios trabajan con ambos, el modelo de datos y la base de datos– Ambos pueden cambiar uno independiente del otro

• Volver a sincronizar el modelo con la base de datos es lo que se denomina sincronización

• Un DBA necesita directivas muy claras para implementar cambios incrementales a una base de datos existente

Tipos de sincronización

• De la base de datos al modelo• Del modelo a la base de datos

Sincronizar cuando . . .

• El modelo y la base de datos tienen diferencias– Sincronizar la base de datos desde el modelo– Sincronizar el modelo desde la base de datos

Sincronizar la base de datos desde el modelo

• Usar la función Modify Database• La línea base de base de la definición de la base de datos puede

ser (baseline):– Una fuente de datos ODBC– Un archivo con un script– Un modelo almacenado

• PowerDesigner compara el PDM actual con la línea base y solamente genera el código que se necesita para cambiar la línea base al modelo establecido– El código puede contener sentencias que conserven datos ya existentes

Sincronizar la base de datos desde un PDM

Ventana de sincronización de la base de datos

Sincronizar un modelo desde la base de datos

• Usar reingeniería– En un modelo existente

• Comparar e intercalar selectivamente el PDM que produce el proceso de reingeniería con el PDM pre-existente

Sincronizar un PDM desde la base de datos

Ventana para intercalar modelos

Modelos almacenados

• Un APM (Archived Physical Model) es un PDM almacenado en un formato especial que facilita la sincronización del modelo

• Se puede crear en cualquier momento cambiando el modo de almacenamiento cuando se esta grabando en “File Save As”

• Opciones de generación de PDM a un archivo almacenado

¿Preguntas?