Download Modelo de datos - Departamento de Ingeniería de Sistemas e

Document related concepts

Trigger (base de datos) wikipedia , lookup

Clave foránea wikipedia , lookup

Lenguaje de definición de datos wikipedia , lookup

SQL wikipedia , lookup

Microsoft SQL Server wikipedia , lookup

Transcript
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 …
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
El tipo de llave generada depende de la cardinalidad y tipo de dependencia
• 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
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 …
Í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 multidimensionales 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
Terminología para triggers
Term
Description
Trigger template Modelo genérico para generar scripts
Template item Bloque reutilizable de un script que
implementa integridad referencial
Trigger
Procedimiento asociado a una tabla y
posiblemente ajustado a esa tabla
Trigger script
Código SQL que contiene el manejo
ajustado para una determinada tabla
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%
• %ISMAND%
Para generar el nombre de la tabla
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
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
Ejemplo: %.L:TABLE%
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 …
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
Reingeniería desde un PDM para
producir un CDM
• Objeto CDM
• Objeto PDM
–
–
–
–
–
Tabla
Columna de tabla
Llave primaria o foránea
Referencia
Tabla asociada (join)
–
–
–
–
–
Entidad
Dato elemental, atributo
Identificador
Relación uno-a-muchos
Relación muchos-a-muchos
Nota: No existe un encadenamientos entre el CDM y el PDM
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 reestablecer 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
Amarillo
Verde
Púrpura
Azul
= Modificación
= Indicación
= Movido
= Borrado y marca de reemplazo
= 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 preexistente
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?