Subido por Croc Hungría

Etapa3[1].1

Anuncio
METODOLOGIA MODELAMIENTO DE DATOS
ANALISIS
ORGANIZACIONAL
BASES DE DATOS
FISICAS
chequeos cruzados
MODELO DATOS
CORPORATIVO
BASES DE DATOS
PROPUESTAS
MODELO DATOS
CONCEPTUAL
VISTAS
USUARIOS
Planificación BD
Top-down
Diseño de BD
Bottom-up
Planificación y Diseño de Bases de Datos
Diseño de Bases de Datos
1
HOSPITAL
mantiene
realiza
tiene
LABORATORIO
TURNOS
es_asign
ado a
MEDICOS
realiza
diagnostica
trata
es_asign
ado
EXAMENES
PACIENTE
STAFF
se_toma
usa
ITEMS
FARMACIA
ITEMS
PROVEEDOR
provee
dado_por
PROVEEDOR
Modelo Corporativo Ejemplo Hospital
Diseño de Bases de Datos
2
Requerimientos de
Procesamiento
Requerimientos de Información
ETAPA 1
Formulación y Análisis
de Requerimientos
Características del
DBMS
Especificación de
Requerimientos
ETAPA 2
Diseño Conceptual
Modelo de Datos
Corporativo
Modelo de Datos
Conceptual
ETAPA 3
Diseño de la
Implementación
Modelo de Datos Interno y
Especificaciones de Programas de Aplicación
Etapas en el Diseño de Bases de Datos
Diseño de Bases de Datos
3
Especificación de Requerimientos
PASO1
Normalización
PASO 2
Integración de Vistas
Pasos en la Etapa
de Diseño
Conceptual
PASO 3
Generación del MDC
PASO 4
Revisión del Diseño
PASO 5
Mapeo de Acceso Lógico
Diseño de Bases de Datos
Modelo de Datos
Conceptual
4
Modelo de Datos
Conceptual
Características DBMS
PASO 1
Distribución de Datos
PASO 2
Organización de Archivos
PASO 3
Indexación
PASO 4
Restricciones de
Integridad
Modelo de Datos
Interno
PASO 5
Mapeo a Modelo
Interno
PASO 6
Diseño de Programas
Especificaciones
de Programas de
Aplicación
Etapa Diseño de la Implementación
Diseño de Bases de Datos
5
• Paso 1: Distribución de Datos
•
•
•
•
•
•
Centralizada
Particionada
Replicada
Híbrida
Paso 2: Organización de Archivos
•
Investigar cuáles son las organizaciones de archivos y sus
características más importantes.
Paso 3: Indexación
Ejemplo: Se tiene una BD relacional y se desea crear un índice
para la tabla PACIENTE con su atributo clave primaria
#PACIENTE, el comando SQL necesario sería:
CREATE UNIQUE INDEX PACINDEX ON PACIENTE
(#PACIENTE)
En cambio si se desea recuperar filas de una tabla a través de
atributos que no son claves primarias, la palabra UNIQUE no
debe ir. Ejemplo:
CREATE INDEX ISAINDEX ON PACIENTE (ISAPRE)
En el caso En el caso de atributos no clave primaria, también es
posible definir un índice de tipo clustering, el cual agrupa las filas
de una tabla que tienen un valor común para un cierto atributo en
un cluster para recuperación rápida. Esto se usa generalmente
cuando se desea obtener las filas en orden alfabético (o
ascendente) del valor del atributo no clave, es decir, en un orden
físico diferente al original.
Ejemplo, si se desea obtener un reporte de los pacientes
ordenados alfabéticamente por la ISAPRE en que están, es
necesario el siguiente comando:
CREATE INDEX
CLUSTER
Diseño de Bases de Datos
CLUINDEX ON PACIENTE (ISAPRE)
6
Sugerencias para el uso de índices:
) Especificar un índice único (UNIQUE) para el atributo clave primaria de
cada tabla.
) Especificar un índice para claves foráneas que son utilizadas como
enlaces entre tablas.
) Especificar un índice para atributos no claves que son referenciados en
comandos para calificar o condicionar una búsqueda, ordenar y agrupar
(en SQL, éstos son las cláusulas WHERE, ORDER BY y GROUP BY
respectivamente).
•
Paso 4: Restricciones de Integridad
En este paso se deben definir las denominadas reglas del negocio,
o especificaciones que preservan la integridad de la base de datos.
Existen cuatro tipos de reglas del negocio:
ƒ integridad de entidades
ƒ integridad referencial
ƒ dominios y triggers.
Estas deben ser incorporadas en el diccionario de datos. Se
explicarán suponiendo una BD relacional.
Integridad referencial
PRODUCTO
#Producto
Nom-Prod
100
Silla
200
Mesa
300
Sillón
400
Escritorio
#Bodega
10
40
30
10
BODEGA
#Bodega
Dirección-Bod
10
Santiago
20
Rancagua
30
Valparaíso
40
Viña del Mar
Fono-Bod
3344557
225643
665053
971155
Tablas con Integridad Referencial
Regla de inserción
PRODUCTO
#Producto Nom-Prod
100
Silla
200
Mesa
300
Sillón
400
Escritorio
500
Estante
#Bodega
10
40
30
10
null
Clave Foránea con Valor Nulo
Regla de eliminación
ƒ Restrictiva: restrictiva: no permite que se realice la eliminación.
Diseño de Bases de Datos
7
ƒ Con valor nulo: pone en nulo el valor del #Bodega en todas las filas de
la tabla PRODUCTO que hagan referencia a él y luego borra la fila de la
Bodega #10 desde la tabla BODEGA.
PRODUCTO
#Producto
Nom-Prod
100
Silla
200
Mesa
300
Sillón
400
Escritorio
#Bodega
null
40
30
null
BODEGA
#Bodega
20
30
40
Dirección-Bod Fono-Bod
Rancagua
225643
Valparaíso
665053
Viña del Mar
971155
Tablas con Integridad Referencial por Eliminación con Valor Nulo
ƒ En cascada: borra todas las filas de la tabla PRODUCTO que tengan el
valor 10 para el #Bodega, y luego borra la Bodega #10 desde tabla
BODEGA.
PRODUCTO
#Producto
Nom-Prod
200
Mesa
300
Sillón
#Bodega
40
30
BODEGA
#Bodega
20
30
40
Dirección-Bod Fono-Bod
Rancagua
225643
Valparaíso
665053
Viña del Mar
971155
Tablas con Integridad Referencial por Eliminación en Cascada
Las restricciones de integridad referencial debieran ser posibles de declarar en un
RDBMS cuando se definen las tablas, y posteriormente el mismo RDBMS debiera
controlar su cumplimiento. De no ser así, cada programa de aplicación debiera
contener la lógica necesaria para realizar este control de integridad.
Dominio: es el conjunto de tipos de datos y rangos de valores que los diferentes
atributos pueden asumir. Típicas definiciones de dominio especifican
características de los atributos como: tipo de dato, largo, formato, rango, valores
permitidos, significado, unicidad y si puede o no contener valor nulo. El uso de
dominios permite verificar que los valores para un atributo son válidos en
operaciones de inserción o actualización, asegurar que ciertas operaciones de
manipulación de datos (como joins o uniones en RDBMS) son válidas y reducir el
esfuerzo en la descripción de las características de los atributos al poder ser esta
definición usada para diferentes atributos.
Triggers: una operación triggering es una regla que controla la validez de las
operaciones de manipulación de datos como insert, delete y update. El alcance de
un trigger puede ser para atributos dentro de una entidad o extenderse a atributos
en dos o más entidades. Reglas del negocio complejas pueden ser a menudo
Diseño de Bases de Datos
8
establecidas a través de operaciones de triggering. Una operación de este tipo
normalmente incluye las siguientes componentes:
) Regla del Usuario: sentencia que requiere ser cumplida (por ejemplo,
Cantidad-Girada no puede exceder al Saldo de una cuenta corriente).
) Evento: operación de manipulación de datos (insert, delete o update) que
tiene que ocurrir para que se active el trigger (por ejemplo, insert GIRO).
) Nombre de la Entidad: nombre de la entidad que está siendo accesada
y/o modificada (en el ejemplo, sería la entidad GIRO).
) Condición: condición que causa que la operación sea controlada por el
trigger (por ejemplo, Cantidad-Girada < Saldo).
) Acción: acción tomada cuando la operación ejecuta el trigger (por
ejemplo, se rechaza el insert).
Finalmente, se puede concluir que el hecho de remover las reglas del
negocio de los programas de aplicación e incorporarlas al diccionario de datos
tiene varias ventajas importantes:
) Menos tiempo de desarrollo de las aplicaciones y menos errores.
) Reduce esfuerzo en mantención.
) Facilita la adaptación a cambios en el negocio.
) Facilita la relación con el usuario final en el desarrollo de nuevos
sistemas y en la manipulación de los datos.
) Reduce tiempo y esfuerzo para capacitar a los programadores de
aplicaciones.
) Promueve mayor facilidad para usar una base de datos.
PASO 5 Mapeo a Modelo Interno
Consiste en transformar el modelo de datos conceptual a un modelo
procesable en el DBMS (o modelo interno, modelo lógico o schema de la
BD). La transformación es hacia un modelo jerárquico, red o relacional,
dependiendo del DBMS disponible
PACIENTE (#Paciente,Nom-Pac,Direc-Pac,Fono-Pac, #Cama, ISAPRE)
Diseño de Bases de Datos
9
CAMA (#Cama,Citófono, Tipo-Cama, #Pieza, #Paciente)
MEDICO (#Médico,Nom-Med,Direc-Méd,Fono-Méd, Especialidad)
TRATAMIENTO (#Paciente,#Médico,Diagnóstico)
ITEMS (#Item,Nom-Item,Stock,Valor-Unitario)
GASTOS (#Paciente,#Item,Valor-Gastado)
Diseño de Bases de Datos
10
CAMA
CALC
#Cama, Citófono, #Pieza,
Tipo-Cama
ASIGNADA
MEDICO
CALC
#Médico, Nom-Med,
Direc-Méd, Fono-Méd,
Especialidad
REALIZA
PACIENTE
#Paciente, Nom-Pac,
Direc-Pac, Fono-Pac,
ISAPRE
RECIBE
TRATAMIENTO VIA
REALIZA
#Paciente, #Médico,
Diagnóstico
ITEMS
CALC
CALC
#Item, Nom-Item, Stock,
Valor-Unitario
INCURRE
GASTOS
PROVEE
VIA
INCURRE
#Paciente, #Item,
Valor_Gastado
Modelo de Datos de Red para Ejemplo del Hospital
Diseño de Bases de Datos
11
CAMA
MEDICO
#Médico, Nom-Med,
Direc-Méd, Fono-Méd,
#Cama, Citófono,
#Pieza,Tipo-Cama
Especialidad
PACIENTE
#Paciente, Nom-Pac,
Direc-Pac, Fono-Pac,
ISAPRE, #Cama
ITEMS
PACIENTE
#Paciente, Nom-Pac,
Direc-Pac, Fono-Pac,
ISAPRE, #Cama
#Item, Nom-Item,
Stock,
Valor-Unitario
TRATAMIENTO
TRATAMIENTO
GASTOS
GASTOS
#Paciente, #Médico,
Diagnóstico
#Paciente, #Médico,
Diagnóstico
#Paciente, #Item,
Valor_Gastado
#Paciente, #Item,
Valor_Gastado
Figura.a. Modelo de Datos Jerárquico para Ejemplo del Hospital
Diseño de Bases de Datos
12
MEDICO
#Médico, Nom-Med,
Direc-Méd, Fono-Méd,
Especialidad
TRATAMIENTO
#Paciente,
Diagnóstico
ITEMS
PACIENTE
#Paciente, Nom-Pac,
Direc-Pac, Fono-Pac,
ISAPRE, #Cama
PUNTERO
TRATAMIENTO
GASTOS
#Item, Nom-Item,
Stock,
l
PUNTERO
GASTOS
#Paciente,
Valor_Gastado
Figura.b. Modelo de Datos Jerárquico en IMS para Ejemplo del Hospital
Paso 6: Diseño de Programas
Para diseñar las aplicaciones o programas de aplicación que permitan
manipular la base de datos, es posible utilizar una técnica estructurada de
documentación. Esta técnica consiste en los DAD (Data Base Action
Diagrams), los cuales son diagramas de acción que muestran la secuencia
de acciones a ser realizadas sobre la base de datos. Los DAD son una
extensión de los LAM, ya que detallan el proceso que puede haber detrás
de la navegación que se exhibe en el LAM.
Diseño de Bases de Datos
13
Descargar