Sei sulla pagina 1di 50

ANLISIS DE SISTEMAS MODELO DE DATOS

Conceptos Generales
Memoria esencial Cuando construimos el Modelo Ambiental del Sistema, nos concentramos en las interfaces entre ste y el ambiente que lo rodea, tratando de establecer adems los lmites o alcances del sistema. En otras palabras, nos concentramos en qu entra al sistema (qu eventos ocurren en el ambiente que lo afectan) y qu sale (las respuestas externas que produce mi sistema, como consecuencia de los eventos). En forma paralela y junto con el Modelo Ambiental, establecemos con qu el sistema va a producir las respuestas. Como estamos trabajando con Sistemas de Informacin, es obvio que el sistema necesitar datos para responder a cada evento. El sistema posee dos fuentes de informacin: - el ambiente: que mediante los flujos de entrada (de entidades y/o almacenes externos) provee al sistema parte de lo necesario para producir sus respuestas y que es la que descubrimos en el Modelo Ambiental. - la propia memoria del sistema (mantenida por actividades custodiales), la cual tambin es alcanzada por el trmino de tecnologa perfecta. Esto significa que el sistema podr acceder a su memoria de cualquier forma y adems, ser ilimitada (tener presente que lo planteamos desde el punto de vista esencial). Pero, porqu un sistema necesitar recordar datos?. Porque el medio ambiente no es perfecto (no siempre se acuerda de todo), y/o no es confiable. Es decir: el concepto de tecnologa perfecta no se extiende al ambiente que rodea el sistema. Por ejemplo: - en un sistema de Ventas no podemos pretender que cada vez que el sistema deba generar una factura, el ambiente tenga que informarle todos los datos del cliente y todos los datos del producto y todos los datos de los impuestos a aplicar para que el sistema se limite a actuar como una simple calculadora. No siempre el sistema podr recordar esa informacin. - en un sistema de Sueldos y Jornales no podemos pretender que cada vez que se tengan que liquidar los sueldos de los empleados sea necesario ingresar la antigedad y la categora. Alguien podra falsear estos datos para cobrar un poco ms. En este caso, el ambiente no sera tan confiable. Por lo tanto, podemos concluir que: La memoria esencial de un sistema son todos los datos que el sistema debe almacenar o guardar (recordar) para poder producir las respuestas a todos los eventos que lo afectan.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 1

ANLISIS DE SISTEMAS MODELO DE DATOS Modelo de datos La memoria esencial de un sistema no es una bolsa que contiene informacin sin ningn tipo de organizacin. Al contrario, la memoria esencial est organizada de alguna forma y esa organizacin se hace explcita cuando construimos el Modelo de Datos. Entonces:

El Modelo de Datos de un sistema es la explicitacin de la forma en que la memoria esencial del sistema est estructurada y de la relacin existentes entre sus componentes, teniendo siempre presente la realidad sobre la cual el sistema opera.

Es adems importante destacar que el Modelo de Datos se construye sin ninguna preocupacin por la representacin fsica (cmo se archiva, cmo se accede, cun complejo es un clculo, ...), es decir: aplicando el concepto de tecnologa perfecta. Ahora bien, como todo sistema forma parte de un sistema mayor, podemos preguntarnos qu datos se incluyen y qu datos se excluyen del Modelo. Es el Modelo Ambiental el que nos guiar en su construccin. Tenemos que ser conscientes de que ambos modelos deberan construirse juntos y por lo tanto la retroalimentacin debe hacerse durante dicha construccin. Lo importante es poder realizarla en esta etapa temprana del proceso de anlisis. Esto no hace ms que destacar la importancia de ambos modelos (Modelo Ambiental y Modelo de Datos) y de su adecuada construccin. El costo de no construir bien estos modelo es muy alto si se lo detecta tardamente. Es ms, si se detecta durante el uso del sistema, puede llegar a ser imposible reconstruir la informacin que no se record oportunamente. Adems, es importante la forma en que se construye el Modelo de Datos, ya que sta puede afectar, en el futuro el diseo de la estructura fsica definitiva. Por lo tanto, podemos concluir que: El Modelo de Datos debe construirse con profundidad, teniendo como objetivo modelar la estructura de los datos de manera tal que garantice el funcionamiento del sistema y facilite la tarea posterior de diseo de la estructura.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 2

ANLISIS DE SISTEMAS MODELO DE DATOS Objetivos a los que apunta todo modelo de datos Es deseable que todo modelo de datos cumpla los siguientes objetivos: 1. Estructura mnima: que va mucho ms all del potencial ahorro de espacio de almacenamiento, sino que est ntimamente ligado al concepto de no redundancia y, en consecuencia, de integridad. 2. Que asegure la no prdida de informacin: es decir, que le permita al sistema responder a todos los eventos que lo afectan, respetando las visiones de contexto. 3. Que facilite los procesos de mantenimiento (ABM): el mantenimiento en tiempo y forma de los datos es importantsimo y ABMs simplificados se traducen en software simplificado, y ello en calidad del sistema. 4. Mxima supervivencia: con la mxima capacidad para soportar cambios ambientales y nuevos requerimientos. Qu relacin existe entre estos objetivos? El concepto de no redundancia hace que se faciliten los procesos de mantenimiento o ABMs, ya que de no cumplirse esto, se podra llegar a tener un mismo conjunto de datos distribuidos en distintos lugares del Modelo ; lo que obligara, al hacer el mantenimiento de los mismos, a recordar que es necesario actualizarlos en dos o ms lugares diferentes. El concepto de integridad implica la completitud del Modelo en lo referente a la relacin de los datos. Se deber buscar una estructura mnima ptima que a su vez asegure la no prdida de informacin, validando que el sistema pueda seguir produciendo las respuestas, respetando las visiones de contexto, y en un todo con los objetivos planteados. Insercin dentro del ciclo de desarrollo Problemas, requerimientos y objetivos Modelo Ambiental Punto de control
Modelo de Comportamiento

Modelo de Datos

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 3

ANLISIS DE SISTEMAS MODELO DE DATOS

Construccin del Modelo de Datos


Etapas No existe una receta, sino herramientas y mtodos para construirlo y formas de validarlo. Podemos encarar la construccin del mismo, dividindolo en etapas: 1. Obtener el Mapa de informacin preliminar, en el cual explicitamos los componentes y las relaciones entre ellos. 2. Optimizar el Mapa anterior, en la cual tratamos de satisfacer las objetivos a cumplir; afianzamos los componentes ; construimos un Mapa de informacin cannico o normalizado y lo validamos.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 4

ANLISIS DE SISTEMAS MODELO DE DATOS

Obtener el Mapa de informacin preliminar


Para obtener el Mapa de Informacin preliminar, es necesario realizar una serie de pasos : a) Construir y refinar el Diagrama de Entidad Relacin (DER) b) Mapear el DER para lograr el Mapa de Informacin preliminar Diagrama de Entidad - Relacin (DER) Un Diagrama de Entidad Relacin es una herramienta para identificar los objetos o cosas que le interesan al sistema, que componen la memoria esencial del mismo y cmo se relacionan. Es una herramienta de modelado semntica que ayuda a clarificar conceptos. Tambin puede emplearse como una herramienta para descubrir reglas y eventos, en concordancia con lo dicho anteriormente sobre la retroalimentacin que existe en la construccin del Modelo Ambiental y el Modelo de Datos. Un DER muestra un conjunto de objetos del mundo real que son significativos para el sistema y sobre los cuales ste necesita almacenar informacin. Son aspectos de la realidad para los cuales no se asume ningn tipo de implementacin posible. El Modelo de Datos usa el DER para mostrar las entidades y relaciones de las cuales el sistema es responsable (ya sea de recolectar informacin o de usar informacin).

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 5

ANLISIS DE SISTEMAS MODELO DE DATOS Ejemplo


DER: Programacin de Cursos

AULA

CURSO

CURSO PROGRAMADO *

DIA

abarca

TEMA disponibilidad

puede ensear CURSO INTERNO CURSO PUBLICO

INSTRUCTOR

ensea

CURSO PROGRAMADO *

Entidad Una entidad es una clase de objeto del mundo real cuyo rol o funcin dentro del sistema est bien definido. Puede corresponder a un objeto tangible, intangible o a conceptos abstractos. El sistema usar informacin de una entidad, interactuando con ocurrencias de la misma. Toda entidad tiene un nombre nico que debera reflejar el rol que posee dentro del sistema.

INSTRUCTOR

Una entidad representa en su totalidad a un conjunto de posibles ocurrencias. Por ejemplo, la entidad Curso podra tener muchas ocurrencias. Tres de estas ocurrencias podra ser "Introduccin al Clculo Numrico", "Virus Informticos - cmo combatirlos" y "Musicoterapia - nuevos avances". El sistema identificar ocurrencias individuales de una entidad y la informacin almacenada sobre ella. Esta informacin puede referirse a las relaciones en las que participa la entidad o a los atributos que posee. Cada ocurrencia de una entidad debe ser distinta de las dems, pero debe cumplir el mismo rol que las dems ocurrencias de la entidad.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 6

ANLISIS DE SISTEMAS MODELO DE DATOS Supongamos que existe una entidad en nuestro DER llamada Instructor; sobre la cual podemos decir que: "...Existe una clase de personas del mundo real que poseen ciertas propiedades en comn. Instructor es el nombre genrico con el cual se llama a cualquiera de ellas. Existen muchas ocurrencias de Instructor, cada una unvocamente identificada. Ciertos aspectos de Instructor (tales como sus atributos o su participacin en relaciones) son de importancia para el sistema...". Algunas entidades representarn objetos tangibles fsicos que juegan roles particulares en su interaccin con el sistema. En trminos generales son fciles de identificar y presentan poca dificultad. Por ejemplo: para una empresa que dicta cursos para empresas, las entidades Instructor y Aula son importantes. Otras entidades tienen una naturaleza ms abstracta. Ejemplos incluyen entidades que representan perodos de tiempo como Da y conceptos abstractos como Curso. Como dijimos anteriormente, si una entidad Instructor forma parte de nuestro DER, entonces, existe un conjunto de cosas del mundo real, cada una de las cuales es una ocurrencia de Instructor. Cada una de estas ocurrencias debera poder referenciarse (por ejemplo, sealndola) y afirmar: Esto es un Instructor. Esta afirmacin debe ser verificable; es decir: debe poder determinarse si es verdadera o falsa. Si bien no es posible "apuntar" a entidades abstractas como Curso, debera ser posible referenciar ocurrencias individuales y declarar que son ocurrencias de esta entidad. Si una potencial entidad no satisface este criterio, entonces no es una entidad. Por ejemplo: para un negocio que se dedica a la venta de artculos de ferretera, podramos haber modelado lo siguiente (fragmento del DER del subsistema de ventas)
RUBRO posee

se divide en

SUBRUBRO

posee

tiene

MARGEN DE GANANCIA

PRODUCTO est compuesto por ARTICULO

posee

posee

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 7

ANLISIS DE SISTEMAS MODELO DE DATOS Sin embargo, un revisin ms detallada de este fragmento del DER nos permite concluir que Margen de Ganancia no posee ocurrencias a las cuales podamos referenciar

o apuntar, o bien describirlas con atributos. La entidad deber transformarse en atributo de Rubro, Subrubro, Producto y Artculo, y el DER quedara :
RUBRO

se divide en

SUBRUBRO

tiene

PRODUCTO est compuesto por ARTICULO

Conclusiones: Una entidad es un objeto componente de la memoria esencial sobre la cual el sistema necesite recordar o almacenar informacin. Y se caracteriza porque: - se describe por uno o ms atributos o elementos de datos - posee una o ms ocurrencias - cada ocurrencia posee uno o ms atributos que la identifica de forma nica

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 8

ANLISIS DE SISTEMAS MODELO DE DATOS Relacin Una relacin representa una posible asociacin que puede darse entre ocurrencia de entidades. Cada ocurrencia de una relacin corresponde a ocurrencias especficas de aquellas entidades que estn relacionadas.

abarca

Una relacin puede considerarse como un patrn al cual se le puede adicionar referencias a entidades especficas para obtener hechos especficos acerca del mundo real. Por ejemplo:
CURSO abarca TEMA

acta como un template o patrn en el cual ocurrencias de Curso y Tema pueden ingresarse para obtener hechos especficos: Introduccin al Ruso Master en navegacin Astronoma esfrica abarca abarca abarca el alfabeto Cirlico medicin angular medicin angular

Cada ocurrencia de una relacin corresponde a una asociacin de cero o ms ocurrencias de cada una de las entidades que participan en la relacin. Cada ocurrencia de una relacin muestra que un evento ocurri y que ste involucr a las ocurrencias especficas de las entidades que participan en la relacin. Algunas relaciones slo recuerdan la ocurrencia de un evento (Ej.: Persona se cas con Persona); se dice que son relaciones tipo trace, ya que registran el evento. Otras, en cambio reflejan una relacin de continuidad entre entidades (Ej.: Persona est casada con Persona); se dice que son asociaciones continuas. La heurstica dice que las relaciones tipo trace tienen una alta probabilidad de tener atributos y transformarse entonces, en entidades asociativas. Relaciones de orden superior: Una relacin que involucre a ms de dos ocurrencias de entidades se dice que es de orden superior. Una relacin de 3 orden aparece en el DER con tres lneas que salen del diamante. Por ejemplo:
PERSONA

HOMBRE

es hijo de

MUJER

(*) puede indicarse: Persona es hijo de Hombre y Mujer

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 9

ANLISIS DE SISTEMAS MODELO DE DATOS Relaciones recursivas: Muchas veces una relacin involucra ocurrencias de una misma entidad, por ejemplo:
subordinado

se reporta a

jefe

EMPLEADO

Cuando una entidad se repite en una relacin, se dice que la relacin es recursiva. Para indicar en el ejemplo cul de los empleados se reporta a quin, indicamos: Empleado(subordinado) se reporta a Empleado(jefe) esto permite a cada ocurrencia de la relacin formar parte de un par de empleados, uno en el rol de jefe y otro en el rol de subordinado. En este tipo de relaciones, la misma ocurrencia de una entidad puede desempear el mismo rol, pero no en el mismo momento.

Relaciones simtricas: Para la mayora de las relaciones recursivas, la distincin entre los distintos roles que una entidad puede desempear en la relacin debe ser clara a efectos de que la relacin est definida correctamente. Para algunas relaciones recursivas, la posicin de la entidad en la relacin no es significativa. Estas relaciones se conocen como simtricas. La relacin es amigo de, es un ejemplo de una relacin simtrica.
es amigo de

PERSONA

Para este tipo de relaciones no es necesario distinguir el rol que juegan las entidades. Para el ejemplo anterior, podramos indicar: Persona es amiga de Persona Relaciones recursivas de orden superior La relacin de 3 orden que se indic anteriormente (ver (*)), podra haberse modelado de la siguiente manera:

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 10

ANLISIS DE SISTEMAS MODELO DE DATOS


es hijo de

PERSONA

indicando: Persona es hija de Persona(madre) y Persona(padre) Conclusiones: Una relacin es una posible asociacin entre ocurrencias de diferentes entidades. Puede considerarse como un patrn. Muestran que un evento ocurre.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 11

ANLISIS DE SISTEMAS MODELO DE DATOS Entidad asociativa


CURSO PROGRAMADO

Una entidad asociativa acta al mismo tiempo como una relacin y como una

entidad. Como relacin, indica que existe una asociacin entre entidades, y tal como sucede con todas las relaciones, una ocurrencia de una entidad asociativa no puede existir sin que previamente existan las ocurrencias de las otras entidades. Una relacin debera transformarse en una entidad asociativa si la relacin posee atributos o bien la relacin acta como entidad en otras relaciones. La entidad asociativa como una relacin con atributos: Los atributos de una entidad asociativa no describen a las entidades que participan de la relacin, sino ms bien a la asociacin entre ellas. Por ejemplo, dada la siguiente relacin:

Hombre

est casado con

Mujer

podramos decir que es necesario recordar la fecha en la cual se casaron por Civil . Este atributo (fecha del Civil) no es un atributo ni de la entidad Hombre, ni de la entidad Mujer, sino que describe cundo se estableci la ocurrencia de la relacin. Para modelar esta situacin, reemplazamos la relacin est casado con por la entidad asociativa Casamiento, con fecha del Civil como atributo.
Casamiento

Hombre

Mujer

La entidad asociativa mantiene la propiedad de ser una relacin (cada ocurrencia de Casamiento recuerda el hecho de que un determinado Hombre se cas con una determinada Mujer en una determinada fecha) La entidad asociativa como entidad en otras relaciones: Una entidad asociativa puede participar en relaciones con otras entidades. La entidad asociativa acta como relacin en el sentido de que recuerda la asociacin original y tambin como una entidad involucrada como participante en relaciones posteriores. Por ejemplo, la entidad asociativa Curso programado acta como una
Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R. Pgina 12

ANLISIS DE SISTEMAS MODELO DE DATOS relacin entre las entidades Curso, Aula y Da, y tambin como una entidad en la relacin reserva lugar en:
AULA

CURSO

CURSO PROGRAMADO *

DIA

reserva lugar en

DELEGADO

Para que una ocurrencia de una entidad asociativa pueda participar en otra relacin por s misma, primero debe crearse. No tiene sentido pensar en un Delegado de una empresa reservando lugar en un Curso programado antes de que ste haya sido creado definiendo una asociacin entre Curso, Aula y Da. Muchas veces, una entidad asociativa es inicialmente identificada y modelada como una entidad. Una vez detectado su doble comportamiento, basta con transformarla a una entidad asociativa. Una buena pista para ver si una entidad es asociativa es verificar si la entidad sospechosa no puede existir independientemente de las otras entidades con las cuales participa en una relacin. Conclusiones: Una entidad asociativa es una entidad que acta como relacin y como entidad. Surge de una relacin acerca de la cual se desea guardar informacin. Una ocurrencia de una entidad asociativa no existe si no existen las ocurrencias de las entidades que intervienen en la relacin de la cual surge. La inversa no se cumple.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 13

ANLISIS DE SISTEMAS MODELO DE DATOS Subtipo El subtipo de una entidad est formado por un grupo bien definido de ocurrencias de una entidad, que pueden considerarse como una entidad por derecho propio. Como ejemplo podemos considerar a la entidad Mamfero. Ocurrencias individuales de esta entidad podran ser: Arqumedes, Juan Mara Traverso, Tom y Jerry.

disponibilidad

CURSO INTERNO

CURSO PUBLICO

Un grupo bien definido es la entidad Humano, que contiene varias ocurrencias (dos de las cuales se mencionaron en el prrafo anterior). Decimos que esta entidad es un subtipo de la entidad Mamfero. Otros subtipos de la misma son Gato y Ratn.
MAMIFERO

SUPERTIPO

SUBTIPIFICACION

GATO

RATON

HUMANO

SUBTIPO

Esta subtipificacin tambin podra visualizarse con un diagrama de Venn, que muestra a cada entidad como un subconjunto conteniendo ocurrencias de la misma:
MAMIFERO GATO

HUMANO

Tom

RATON

Una ocurrencia del subtipo es siempre una ocurrencia del supertipo (Ej.: una ocurrencia de Gato es automticamente una ocurrencia de Mamfero). Como consecuencia, cualquier propiedad que posea el supertipo es automticamente una propiedad del subtipo. Podemos decir que el subtipo hereda las propiedades del supertipo.
Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R. Pgina 14

ANLISIS DE SISTEMAS MODELO DE DATOS Adems de las propiedades heredadas, un subtipo puede tener uno o ambos (pero nunca ninguno) de lo siguiente: 1. Atributos especficos: algn subtipo puede tener atributos que no son relevantes para otros subtipos. Esto se contrasta con los atributos comunes, que se declaran en el supertipo. 2. Relaciones especficas: algunas relaciones pueden afectar solamente a cierto subtipo de una entidad. Por ejemplo, un Delegado de una empresa slo puede reservar lugar en un Curso pblico:
CURSO PROGRAMADO DELEGADO

disponibilidad reserva lugar en

CURSO INTERNO

CURSO PUBLICO

Mltiples supertipos: Una entidad puede ser un subtipo de subtipificaciones de varias entidades diferentes. En este caso, hereda cualquier relacin y atributos comunes a ambos supertipos. Por ejemplo:
ITEM DE INVENTARIO ITEM DE MANUFACTURA

origen

propsito

PARTE COMPRADA

ITEM TERMINADO

ITEM SEMIELABORADO

un tem terminado es un tipo de tem de manufactura y tambin un tipo de tem de inventario. Esto tambin puede mostrarse como un diagrama de Venn:

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 15

ANLISIS DE SISTEMAS MODELO DE DATOS


tem de Inventario tem terminado

Parte comprada

tem semielaborado

tem de manufactura

Como consecuencia, cualquier ocurrencia de tem terminado es tambin de tem de manufactura e tem de inventario, y por lo tanto, tiene atributos heredados de ambos. Conclusiones: Un subtipo consiste en un subconjunto de ocurrencias de una entidad que puede considerarse como una entidad por derecho propio. Lo importante: explicitar subtipos slo si semnticamente es necesario.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 16

ANLISIS DE SISTEMAS MODELO DE DATOS Subtipificacin Una subtipificacin indica que a la entidad involucrada se la considera como compuesta por grupos distintos y bien identificables, cada uno disponibilidad de los cuales se lo considera un subtipo. Su importancia radica en la semntica, ya que permite que el modelador piense en conceptos CURSO INTERNO CURSO PUBLICO generales, de alto nivel (relaciones, atributos) como relevantes para el supertipo y pueda detallar aquellos relacionados con cada uno de los subtipos, sin llegar a verse desbordado por la complejidad. Como un simple ejemplo, consideremos la subtipificacin de la entidad Mamfero en Gato, Ratn, ... . Esta subtipificacin hace una distincin entre diferentes especies, a las que cada ocurrencia de un Mamfero pertenece, por lo tanto, podemos llamarla especie. En este ejemplo, la subtipificacin especie tiene 3 subtipos. En trminos generales, una subtipificacin puede tener varios subtipos. La subtipificacin genera subtipos mutuamente excluyentes: Dentro de una subtipificacin, no existe ocurrencia del supertipo que sea simultneamente una ocurrencia de ms de un subtipo de ella. Alcance de una subtipificacin: Decimos que una subtipificacin est completa si cualquier ocurrencia del supertipo es una ocurrencia de exactamente uno de sus subtipos. Algunas subtipificaciones poseen ocurrencias del supertipo que no caen en ninguna de las ocurrencias de los subtipos. Estos casos se los conoce como subtipificaciones parciales. Ejemplo de esto es la subtipificacin especie que presentamos en prrafos anteriores. Mltiples subtipificaciones: Existen diferentes maneras para subtipificar una determinada entidad, de manera tal que cada subtipificacin se identifica con un nombre nico. Por ejemplo: la entidad Persona podra subtipificarse por gnero en Femenino y Masculino; y por antigedad en Nio, Adolescente, Adulto y Anciano:
PERSONA

gnero

antigedad

FEMENINO

MASCULINO

NIO

ADOLESC.

ADULTO

ANCIANO

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 17

ANLISIS DE SISTEMAS MODELO DE DATOS Este DER debera leerse: Cada Persona puede ser Femenino o Masculino. La misma persona puede ser un Nio, o un Adolescente, o un Adulto, o un Anciano Ambas subtipificaciones del ejemplo son completas. Como consecuencia de ello podemos decir que: Cada Persona es, o bien Femenino o bien Masculino. La misma persona puede ser, o bien un Nio, o bien un Adolescente, o bien un Adulto, o bien un Anciano Subtipificaciones sin nombre: El nombre de una subtipificacin sirve para distinguirla, si es que existen ms de una para una entidad. Una subtipificacin de una entidad puede no tener nombre, sobre todo si el mismo nada aporta al porqu fue necesario distinguir a los subtipos. Subtipificaciones de una entidad asociativa: Si se define que una entidad asociativa va a tener subtipos, entonces, cada ocurrencia de uno de ellos debe ser una ocurrencia del supertipo. Cada ocurrencia del subtipo es, por lo tanto, una entidad asociativa, que hace referencia a las mismas entidades a las que hace referencia el supertipo. Ejemplo:
AULA

CURSO

CURSO PROGRAMADO *

DIA

disponibilidad

CURSO INTERNO

CURSO PUBLICO

Al momento de volcar cada una de estas entidades y relaciones al Diccionario de Datos tendramos definiciones de: * Curso programado como entidad asociativa; * disponibilidad como una subtipificacin; * Curso pblico como entidad asociativa, y Curso interno como entidad asociativa

Conclusiones: La subtipificacin divide a una entidad en grupos bien definidos e identificables, cada uno de los cuales puede considerarse como una entidad. Cada uno de esos grupos es mutuamente excluyente. La subtipificacin slo debe aplicarse si semnticamente es necesario.
Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R. Pgina 18

ANLISIS DE SISTEMAS MODELO DE DATOS Supertipo


CURSO PROGRAM.

Podemos considerar a un supertipo como un agrupamiento general de varias entidades. Este agrupamiento es considerado como una entidad por derecho propio. Las entidades que son agrupadas dentro de esta entidad ms general se conocen como subtipos.

disponibilid.

Cuando una entidad posee subtipos, existen ciertas propiedades generales que son comunes con todos los subtipos: 1. Participar en relaciones: si una relacin puede ocurrir para cualquiera de los subtipos de una entidad, entonces ocurre para el supertipo y se la dibuja en el DER vinculada con l. 2. Tener atributos comunes: los atributos comunes son aquellos atributos que siempre se encuentran en todos los subtipos de una entidad. Podemos decir que estos atributos residen en el supertipo cuando se lo especifica en el Diccionario de Datos. Conclusiones: Un supertipo es un agrupamiento general de entidades, al que puede considerarse como una entidad. Contiene los atributos comunes a todos los subtipos que se desprenden de l.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 19

ANLISIS DE SISTEMAS MODELO DE DATOS Cmo detectar objetos y relaciones Los objetos y relaciones pueden detectarse de varias maneras: Partiendo de las conclusiones del relevamiento de la situacin actual o bien de la narrativa del nuevo sistema, para lo cual es necesario: - detectar todas las posibles entidades que intervienen en el sistema, tratando de no considerar entidades globales o supertipos. Podemos tratar de realizar una lista de sustantivos preliminar y luego ver si cada uno de ellos puede ser una entidad, es decir, si podemos caracterizarla con atributos, detectar al menos una ocurrencia y un identificador y sobre todo, si es significativa para el sistema. - detectar todas las posibles relaciones que vinculan las entidades, teniendo siempre presente que las relaciones se crean cuando ocurren eventos. Una lista de verbos que acompaan a los sustantivos podra llegar a ser til. Como resultado de las dos detecciones se pueden construir fragmentos del DER por separado o bien un solo DER. - refinar el DER. Es importante aclarar que debe incluirse en la lista de sustantivos a todas las entidades que forman los almacenes externos. Partiendo de la lista de eventos construida en el Modelo Ambiental, lo cual implica que es muy importante la forma en que estn redactados los eventos, y es posible que llegado a este punto sea necesario reescribirlos. Por ejemplo: supongamos que en la lista de eventos de nuestro sistema de Ventas aparece uno redactado de la siguiente manera Se realiza una venta y ya tenemos la sospecha de que nuestro sistema va a necesitar la informacin de los productos que se venden. Entonces podramos cambiar la redaccin por la siguiente Se venden productos. Pero como ya sospechamos que para las ventas en cuenta corriente ser necesario recordar ciertos datos del cliente, podramos cambiar la redaccin a A un cliente se le venden productos. Es decir, tratemos de aplicar la siguiente regla para la redaccin de un evento: sujeto + verbo + predicado (u objeto), siempre que el sujeto sea de inters para el sistema. Para construir un DER partiendo de la lista de eventos, ser necesario: - dibujar un DER por cada evento de la lista, estableciendo que el sujeto es una entidad, el verbo es la relacin y el predicado es una entidad. Puede suceder que de un evento surjan ms de dos entidades y una relacin. - caracterizar cada entidad con atributos o elementos de datos. - eliminar las entidades que no son tal (no se pueden caracterizar). Como resultado se tendrn fragmentos del DER. - refinar el DER. Puede darse el caso de que haya entidades que no se relacionan con ningn evento: son aquellas que forman almacenes externos. Partiendo de los requerimientos del sistema, para lo cual veremos un ejemplo : Objetivo: Realizar un DER a partir de los requerimientos (especficamente de los flujos de salida) paso a paso tratando de aplicar un anlisis deductivo.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 20

ANLISIS DE SISTEMAS MODELO DE DATOS Supongamos que nuestro sistema en estudio se encarga de manejar la informacin de docentes, grupos, alumnos y trabajos prcticos de la materia Anlisis de Sistemas. Flujo de Salida: Listado Docentes = 1{Apellido + Nombre + TE + Domicilio}n Supongamos adems que los Apellidos de los docentes no se repiten. Imaginemos adems que esto es lo nico que necesitamos del sistema. El Listado de Docentes contiene entonces el apellido y nombre del docente, su direccin y su telfono. Si tuviramos que pensar que describen estos atributos contestaramos al docente. Adems el sistema necesita conservar estos datos para poder responder con el requerimiento. Podramos decir entonces que estamos en presencia de un tipo de objeto: DOCENTE. Nuestro DER sera:

Docente

Docente = Apellido + Nombre + TE + Domicilio Agreguemos un nuevo requerimiento en el que deseamos conocer cuales son las comisiones en que se dicta nuestra materia y los docentes asignados a las mismas: Flujo de Salida: Listado De Comisiones = 1{NroComisin + Aula + 1{Apellido + Nombre}n}n Estudiando este flujo de salida podramos sugerir la idea de estar trabajando con docentes y con comisiones. Y tambin con la idea que el objetivo de este listado es mostrar quienes dictan clases en las comisiones.

Docente

dicta

Comisin

Nuestro DER tomara la siguiente forma: Comisin = Comisin + Aula; el dato Comisin podra confundirse con el nombre del objeto, entonces lo cambiamos a NroComision, lo mismo se debe hacer para con el flujo de datos de salida. Supongamos que ahora tenemos un nuevo requerimiento, este nos dice que adems de conocer quienes son los docentes que dictan clase en las comisiones, tambin se desea saber que funcin cumplen, es decir, si ese docente en esa comisin es de prctica, de teora o de practica/teora. El flujo de datos anterior toma la siguiente forma: Listado De Comisiones = 1{NroComisin + Aula + 1{Apellido + Nombre + Funcin}n}n Cuando evaluamos este atributo Funcin nos damos cuenta que necesitamos ms informacin.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 21

ANLISIS DE SISTEMAS MODELO DE DATOS Por ejemplo: 1) Si cada docente solo desempean una nica funcin 2) o por el contrario, pueden desempear cualquier funcin. Si contemplramos la primer alternativa veramos que la funcin sera una caracterstica exclusiva del docente, mientras que si observamos la segunda concluiramos que esto de la funcin no es del docente, ni de la comisin solamente, sino que lo es de la relacin entre el docente y la comisin. Este atributo debe ser agregado a la relacin y por lo tanto toma la forma de Entidad o Tipo de objeto asociativo:

Docente

Comisin

Dictado
Algunas de las cosas que sufren cambios son: el nombre de la relacin que se traslada de lugar y quizs toma un nombre mas significativo, tambin aparece en el diccionario de datos. Dictado = Apellido + NroComisin + Funcin Supongamos que el entrevistado nos dice que: ..los nmeros de comisin son nicos durante el ao en vigencia; pero no as de un ao al otro. Por ejemplo: En el ao 1996, la comisin 3-03 estuvo en el aula 210, la comisin 2-05, en el aula 205, la comisin 2-08, en el aula 208. En el ao 1997, la comisin 3-03 estuvo en el aula 211, la comisin 2-05 en el aula 205, la comisin 2-08 en el aula 208. Es decir, vuelve a aparecer el mismo nmero de comisin en un aula diferente (o podra haber sido la misma). No se puede reconocer entonces cual es la comisin de un ao en particular. Nos esta faltando un atributo: Ao. Quizs lo nombrado en los prrafos superiores quede expresado de la siguiente manera: Alternativas. a) Un comisin queda identificada en forma nica por el ao y el numero de comisin. b) Los nmeros de las comisiones se repiten de un ao a otro; pero no el mismo ao o perodo. Agregar este atributo basado en cualquiera de las visiones anteriores implicara cambios en el diccionario de datos ya analizado y en el de las entidades o tipos de objetos.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 22

ANLISIS DE SISTEMAS MODELO DE DATOS Comisin = Ao + Nro Comisin + Aula Dictado = Ao + Nro Comisin + Apellido + Funcin El flujo de salida: Listado De Comisiones=Ao + 1{NroComisin + Aula + 1{Apellido + Nombre}n}n, estamos por lo tanto manifestando que estamos obteniendo un listado de donde dictan clases los docentes de la ctedra durante un ao determinado. Salvo que nuestra intencin sea que el listado nos muestre donde los dictan clases los docentes para todos los aos; agregaramos llaves alrededor de todo el flujo. Tener presente que los flujos de entrada tambin cambian (Ao por flujo vaco). Con todos los cambios producidos por el atributo Ao podemos concluir que los tipos de objetos asociativos arrastran en su definicin de datos los atributos que identifican a cada una de las entidades que participan de la relacin. Evidentemente podramos continuar suponiendo distintos casos agregando otros requerimientos y ajustarlos a visiones de contexto en algunos casos; pero en sntesis la ctedra pretende reconocer mtodos alternativos de construccin y comprensin de los datos. Cualquier combinacin posible de las formas antes mencionadas.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 23

ANLISIS DE SISTEMAS MODELO DE DATOS Cmo refinar el DER Para poder refinar el DER, pueden seguirse los siguientes pasos: 1. Identificar relaciones de las cuales surjan tipos de objetos asociativos. 2. Identificar entidades que pueden llegar a ser asociativas. 3. Encontrar supertipos y subtipos. 4. Unir los DER individuales en un solo DER. 5. Eliminar relaciones redundantes. 6. Identificar entidades poco significativas (que aparecen un una solo relacin, unidos a entidades asociativas). 7. Detectar entidades asociativas seguidas y ver si se pueden unir. 8. Realizar el Diccionario de datos de cada entidad. Cmo realizar el Diccionario de datos que completa el DER As como en el Modelo Ambiental tengo el Diccionario de Datos de Flujos, estructuras, Elementos de datos discretos y Almacenes externos, el DER necesita que los atributos que caracterizan cada una de las entidades sean explicitados en esta herramienta. Las entidades se describen de la misma manera que los almacenes externos ; es decir : se indica el nombre de la entidad, seguida de los atributos que la describen, empleando la notacin formal del Diccionario de Datos. Para los supertipos sera conveniente listar slo los valores comunes a los subtipos (ya que los valores propios de cada subtipo tambin son parte del supertipo). Para los subtipos sera conveniente slo los valores propios del subtipo (ya que los valores comunes que estn en el supertipo y tambin son parte del subtipo).

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 24

ANLISIS DE SISTEMAS MODELO DE DATOS Ejemplo: Supongamos un sistema de Gestin de Stock de una empresa que manufactura los productos que vende. DER (fragmento)
ITEM DE STOCK

MATERIA PRIMA

SEMIELABORADO

TERMINADO

ORDEN DE COMPRA

PROVEEDOR

Diccionario de datos Entidades PROVEEDOR = cdigo proveedor + domicilio + 0{telfono}n ORDEN DE COMPRA = nmero de orden + fecha + cdigo proveedor + 1{cdigo tem + cantidad pedida}n TEM DE STOCK = cdigo tem + descripcin + unidad de medida + stock MATERIA PRIMA = presentacin + lote de compra + stock mnimo + punto de pedido + precio de costo + ubicacin en depsito + 1{cdigo proveedor + precio proveedor}n SEMIELABORADO = proceso actual TERMINADO = precio de costo + margen de ganancia + precio de venta + presentacin + ubicacin en depsito Es importante aclarar que ser necesario completar el Diccionario de Datos de elementos, si es que aparecen nuevos elementos de datos al construir el DER.
Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R. Pgina 25

ANLISIS DE SISTEMAS MODELO DE DATOS Cmo mapear el DER al grfico que forma parte de un Mapa de Informacin preliminar : Como dijimos anteriormente, el DER muestra los objetos que componen la memoria esencial y las relaciones existentes entre ellos. Vimos tambin que una relacin establece una asociacin entre una o varias ocurrencias de una entidad y una o varias ocurrencias de otra u otras entidades. El una o varias se llama cardinalidad. Ahora bien, como tecnolgicamente todava no existen bases de datos orientadas a objetos nos vemos forzado a hacer una mapeo del DER a otra representacin a partir de la cual la podamos optimizar, teniendo presente los objetivos a cumplir por todo Modelo de Datos y que adems se pueda implementar luego en una arquitectura de bases de datos relacional. Una Mapa de Informacin preliminar est compuesto por : un grfico que muestra las entidades y las vinculaciones entre ellas, explicitando la cardinalidad. el Diccionario de Datos de Entidades, que se construy con el DER. En el grfico, las entidades se muestran de la misma forma que el DER, es decir : con rectngulos identificados con el nombre de la entidad. Las vinculaciones entre ellas pueden explicitarse de diferentes maneras, en este apunte se ver la notacin empleada por Martin, a saber : Vinculacin 1 a 1 :
A B

En todo instante, a cada ocurrencia de A le corresponde una y slo una ocurrencia de B. Y a cada ocurrencia de B le corresponde una y slo una ocurrencia de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponde una o ninguna ocurrencia de B. Y a cada ocurrencia de B le corresponde una y slo una ocurrencia de A.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 26

ANLISIS DE SISTEMAS MODELO DE DATOS O bien :


A B

En todo instante, a cada ocurrencia de A le corresponde una y slo una ocurrencia de B. Y a cada ocurrencia de B le corresponde una o ninguna ocurrencia de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponde una o ninguna ocurrencia de B. Y a cada ocurrencia de B le corresponde una o ninguna ocurrencia de A.

Vinculacin 1 a N (muchos) :
A B

En todo instante, a cada ocurrencia de A le corresponden muchas ocurrencias de B. Y a cada ocurrencia de B le corresponde una y slo una ocurrencia de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponde muchas o ninguna ocurrencia de B. Y a cada ocurrencia de B le corresponde una y slo una ocurrencia de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponde una o muchas ocurrencias de B. Y a cada ocurrencia de B le corresponde una y slo una ocurrencia de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponden muchas ocurrencias de B. Y a cada ocurrencia de B le corresponde una o ninguna ocurrencia de A.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 27

ANLISIS DE SISTEMAS MODELO DE DATOS O bien :


A B

En todo instante, a cada ocurrencia de A le corresponde ninguna o muchas ocurrencias de B. Y a cada ocurrencia de B le corresponde una o ninguna ocurrencia de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponde una o muchas ocurrencias de B. Y a cada ocurrencia de B le corresponde una o ninguna ocurrencia de A.

Vinculacin N (muchos) a 1: En todo instante, a cada ocurrencia de A le corresponde una y slo una ocurrencia de B. Y a cada ocurrencia de B le corresponden muchas ocurrencias de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponde una o ninguna ocurrencia de B. Y a cada ocurrencia de B le corresponden muchas ocurrencias de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponde una y slo una ocurrencia de B. Y a cada ocurrencia de B le corresponden muchas o ninguna ocurrencia de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponden una o ninguna ocurrencia de B. Y a cada ocurrencia de B le corresponden muchas o ninguna ocurrencia de A.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 28

ANLISIS DE SISTEMAS MODELO DE DATOS O bien :


A B

En todo instante, a cada ocurrencia de A le corresponde una y slo una ocurrencia de B. Y a cada ocurrencia de B le corresponde una o muchas ocurrencias de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponde una o ninguna ocurrencia de A. Y a cada ocurrencia de B le corresponde una o muchas ocurrencias de A.

Vinculacin N a M (muchos a muchos) : En todo instante, a cada ocurrencia de A le corresponden muchas ocurrencias de B. A B Y a cada ocurrencia de B le corresponden muchas ocurrencias de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponde muchas o ninguna ocurrencia de B. Y a cada ocurrencia de B le corresponden muchas ocurrencias de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponde una o muchas ocurrencias de B. Y a cada ocurrencia de B le corresponden muchas ocurrencias de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponden muchas ocurrencias de B. Y a cada ocurrencia de B le corresponden muchas o ninguna ocurrencia de A.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 29

ANLISIS DE SISTEMAS MODELO DE DATOS O bien :


A B

En todo instante, a cada ocurrencia de A le corresponden muchas o ninguna ocurrencia de B. Y a cada ocurrencia de B le corresponden muchas o ninguna ocurrencia de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponde una o muchas ocurrencias de B. Y a cada ocurrencia de B le corresponden muchas o ninguna ocurrencia de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponden muchas ocurrencias de B. Y a cada ocurrencia de B le corresponde una o muchas ocurrencias de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponden muchas o ninguna ocurrencia de B. Y a cada ocurrencia de B le corresponde una o muchas ocurrencias de A.

O bien :
A B

En todo instante, a cada ocurrencia de A le corresponde una o muchas ocurrencias de B. Y a cada ocurrencia de B le corresponde una o muchas ocurrencias de A.

Veamos cmo queda el grfico del Mapa de Informacin Preliminar de nuestro fragmento de DER del ejemplo del sistema de Gestin de Stock presentado cuando tratamos la construccin del Diccionario de Datos :

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 30

ANLISIS DE SISTEMAS MODELO DE DATOS


ITEM DE STOCK

SEMIELABORADO

TERMINADO

MATERIA PRIMA

ORDEN DE COMPRA

PROVEEDOR

Veamos qu nos estn diciendo las vinculaciones : Dada una orden de compra, sta puede ser para una materia prima o para varias. Una materia prima puede haber sido pedida en ms de una orden de compra o todava en ninguna. Una orden de compra es para un nico proveedor. Un proveedor puede tener varias rdenes de compra o bien ninguna. Materia prima, Semielaborado y Terminado son subtipos de Items de stock. Podemos observar adems, que las relaciones de subtipo se corresponden uno a uno con las vinculaciones de nuestro grfico. Pero, porqu la relacin de la cual surge la entidad Orden de Compra se mapea en dos vinculaciones ?. Porque Orden de Compra es una entidad asociativa que involucra a dos entidades : Materia Prima y Proveedores. No olvidemos que una entidad asociativa muestra que un evento ocurre, relacionando a dos o ms entidades y adems el sistema deber recordar datos de esa relacin. La entidad asociativa contendr datos comunes con todas las entidades que participan de la relacin de la cual surgen. El Mapa de Informacin preliminar de nuestro ejemplo ser :

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 31

ANLISIS DE SISTEMAS MODELO DE DATOS


ITEM DE STOCK

SEMIELABORADO

TERMINADO

MATERIA PRIMA

ORDEN DE COMPRA

PROVEEDOR

Diccionario de datos Entidades PROVEEDOR = cdigo proveedor + domicilio + 0{telfono}n ORDEN DE COMPRA = nmero de orden + fecha + cdigo proveedor + 1{cdigo tem + cantidad pedida}n TEM DE STOCK = cdigo tem + descripcin + unidad de medida + stock MATERIA PRIMA = presentacin + lote de compra + stock mnimo + punto de pedido + precio de costo + ubicacin en depsito + 1{cdigo proveedor + precio proveedor}n SEMIELABORADO = proceso actual TERMINADO = precio de costo + margen de ganancia + precio de venta + presentacin + ubicacin en depsito

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 32

ANLISIS DE SISTEMAS MODELO DE DATOS

Optimizacin del Mapa preliminar


Algunos conceptos previos Como vimos anteriormente, con el Grfico de vinculaciones ms el Diccionario de Datos obtenemos un Mapa de Informacin preliminar, donde explicitamos las vinculaciones entre las entidades : es decir inter-entidad. El prximo paso es optimizarlo para que pueda cumplir los objetivos de todo Modelo de datos. Antes de comenzar a describir cmo optimizar, ser necesario volcar algunos conceptos o definiciones que intervienen en este proceso. Clave candidata Es posible que existan ms de un atributo o conjunto de atributos que puedan identificar unvocamente a una ocurrencia de una entidad. A stos se los llama claves candidatas. Dicho de otra manera, son todas las posibles claves de una entidad. Ejemplo: nmero legajo al igual que tipo documento + nmero documento podran ser pensadas, bajo ciertas condiciones, como claves candidatas de la entidad Alumnos. Clave primaria En el caso de que haya varias claves candidatas, se elige una como identificador principal y a sa se la llama clave primaria. Para indicarla en el Diccionario de datos, se la subraya. Ejemplo: Se puede elegir a nmero legajo como clave primaria de la entidad Alumnos. Clave alternativa El resto de las claves candidatas que no hayan sido elegidas como primaria, se denominan claves alternativas. Ejemplo: tipo documento + nmero documento podra constituir una clave alternativa de la entidad Alumnos.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 33

ANLISIS DE SISTEMAS MODELO DE DATOS

Dependencia funcional Para optimizar el Mapa de Informacin preliminar, ser necesario analizar en profundidad, para cada una de las entidades del mismo, las vinculaciones que existen entre los atributos o elementos de datos que componen a cada una, llamadas vinculaciones intra-entidad.. Adems, para el estudio de esas vinculaciones, aplicaremos el concepto de dependencia funcional. Sea una entidad E y sus atributo X e Y (E = X + Y), decimos que X determina funcionalmente a Y si y slo si, para cada valor de X existe un nico valor de Y en todo instante. En otras palabras, dado el valor de X, queda determinado unvocamente el valor de Y. Se indica:

X
Ejemplos:

1. Sea la entidad Empleados = nmero legajo + nombre y la siguiente visin de contexto: el sistema asignar un nmero de legajo nico. As, dado un nmero de legajo hay un nico nombre de empleado que se corresponde con l. Esto se indica: nmero legajo -------------> nombre 2. Sea la entidad Libros = cdigo libro + ttulo + editorial + 1{nmero edicin + fecha edicin}n y las siguientes visiones de contexto: el sistema asignar un cdigo de libro nico un libro puede ser editado varias veces un libro es editado por una nica editorial cada edicin de un libro tiene una nica fecha de edicin Por lo tanto:

cdigo libro nmero edicin

ttulo editorial

fecha edicin
Este esquema suele llamarse grafo de dependencias funcionales y representa las relaciones que existen entre los atributos de una entidad.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 34

ANLISIS DE SISTEMAS MODELO DE DATOS Supongamos ahora que modificamos la tercer visin de contexto: un libro puede ser editado por varias editoriales. Tendremos los siguientes cambios: Libro = cdigo libro + ttulo + 1{editorial +1{ nmero edicin + fecha edicin}n}n cdigo libro editorial nmero edicin ttulo

fecha edicin

Importante: Reconocer las dependencias funcionales entre atributos exige una previa explicitacin del significado real de cada atributo. Dependencias completas y no completas: Volvamos al ejemplo

cdigo libro nmero edicin

ttulo editorial

fecha edicin
- ttulo y editorial dependen funcionalmente de cdigo libro. - ttulo y editorial tambin depende funcionalmente del par cdigo libro y nmero edicin, ya que para un valor de cdigo libro + nmero edicin, corresponde un nico valor de titulo y editorial. Por lo tanto: - ttulo y editorial dependen funcionalmente en forma completa de cdigo libro. - ttulo y editorial dependen funcionalmente en forma no completa de cdigo libro y nmero edicin. De ahora en adelante y salvo indicacin expresa, cada vez que hablemos de dependencias funcionales, nos estaremos refiriendo a las que son completas. Carcter unvoco: El concepto de dependencia funcional tiene carcter unvoco y no biunvoco.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 35

ANLISIS DE SISTEMAS MODELO DE DATOS Hay dependencia funcional entre cdigo libro y editorial, porque a un valor de cdigo libro le corresponde un nico valor de editorial. Esto es suficiente para que exista dependencia funcional. Es evidente que aqu no aparece el carcter de biunvoco; es decir, a una editorial le corresponden muchos cdigo libro. Supongamos la entidad Empresa = cdigo empresa + razn social + domicilio + CUIT + situacin tributaria. Como sabemos que el CUIT es nico para cada empresa, as como el cdigo que a cada una le asigna el sistema, podemos graficar las dependencias funcionales entre cdigo empresa y CUIT de la siguientes manera:

cdigo empresa

CUIT

y aqu estamos frente a dos dependencias funcionales diferentes. Transitividad: Sea la entidad E y sus atributos X, Y y Z (E = X + Y + Z); donde X determina funcionalmente a Y, e Y determina funcionalmente a Z. Entonces, X determina funcionalmente en forma transitiva a Z. En smbolos: X Y Z Ejemplo: Supongamos que luego de construir el DER, nos queda una entidad Proveedores = cdigo proveedor + razn social + domicilio + localidad + categora + 1{cdigo producto + cantidad}n y tenemos las siguientes visiones de contexto: - el sistema asignar un cdigo nico al proveedor - un proveedor vende varios productos y cada producto se identifica con un cdigo - un producto puede ser vendido por varios proveedores - una localidad tiene una nica categora El anlisis de dependencias funcionales sera el siguiente: razn social cdigo proveedor domicilio localidad cdigo producto categora

cantidad

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 36

ANLISIS DE SISTEMAS MODELO DE DATOS Normalizacin Hasta ahora nos hemos puesto de acuerdo en ciertas definiciones bsicas y todava no hemos abordado cmo optimizar nuestro modelo de datos, para que pueda satisfacer los objetivos tratados anteriormente y que recordamos simplemente enumerndolos: 1. Estructura mnima 2. Que asegure la no prdida de informacin 3. Que facilite los procesos de mantenimiento (ABM) 4. Mxima supervivencia Es aqu donde aparece la normalizacin como herramienta para optimizar y poder lograr estas objetivos. La normalizacin es una disciplina que, va la aplicacin sistemtica de una sucesin de pasos formales, va transformando entidades originales en otras ms adecuadas (en funcin de las objetivos), basndose en el significado de los datos o tratando de modelar su estructura real. Esta disciplina es una buena ayuda para la optimizacin del modelo de datos pero no es la panacea. Formas normales: Son los estado por los que va pasando una entidad durante esos sucesivos pasos de transformacin. As, se habla de una entidad en: 1ra. forma normal (1NF) 2da. forma normal (2NF) 3ra. forma normal (3NF) Forma normal de Boyce-Codd (BCNF) 4ta. forma normal (4NF) Etc. Se dice que una entidad est en una particular forma normal si las dependencias funcionales entre sus atributos cumplen determinadas condiciones. Cada forma normal representa un avance respecto de su forma normal predecesora.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 37

ANLISIS DE SISTEMAS MODELO DE DATOS

Proceso de normalizacin
Qu haremos? De ahora en ms, a partir de un caso en particular: - definiremos las tres primeras formas normales. - evaluaremos el cumplimiento de los objetivos. - definiremos un criterio para reconocer cules son las buenas descomposiciones Presentacin del caso Sea la entidad Proveedores = cdigo proveedor + razn social + domicilio + localidad + categora + 1{cdigo producto + cantidad}n Y un conjunto de visiones de contexto que determinan las siguientes dependencias funcionales: razn social cdigo proveedor domicilio localidad cdigo producto categora

cantidad Observaciones: - cantidad es la cantidad que el proveedor nos vende de cada producto. - categora depende de la localidad donde se domicilia el proveedor.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 38

ANLISIS DE SISTEMAS MODELO DE DATOS Primera forma normal Una entidad est en primer forma normal o 1NF si no tiene atributos multivalor Esta definicin est ntimamente ligada al concepto de clave candidata., ya que elegir una clave candidata asegura eliminar todos los atributos multivalor. En nuestro caso, la nica clave candidata es cdigo proveedor + cdigo producto. Eligiendo como clave candidata a este par de atributos, desaparecen los atributos multivalor. En cambio, si se hubiera elegido slo cdigo proveedor como clave, cdigo producto + cantidad provista seran grupos repetitivos o atributos multivalor: para un valor de cdigo proveedor, habra varios valores de cdigo producto. Por lo tanto, pasar de una entidad no normalizada a una entidad en 1NF implica elegir una clave que cumpla con la definicin de clave candidata. Observacin: Mostraremos ms resaltada a la clave candidata en el grafo. razn social cdigo proveedor domicilio localidad cdigo producto categora

cantidad

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 39

ANLISIS DE SISTEMAS MODELO DE DATOS Segunda forma normal Una entidad est en segunda forma normal o 2NF si y slo si se est en 1NF y todo atributo no clave depende de la clave en forma funcionalmente completa

Es decir: se agrega la restriccin de que toda dependencia funcional sea completa. Para lograr satisfacer esta restriccin, es preciso descomponer la entidad original en nuevas entidades. En nuestro caso:
razn social cdigo proveedor cdigo proveedor domicilio localidad cdigo producto categora

cantidad

Al descomponer la entidad original en dos entidades, los atributos no clave de cada una de ellas, dependen de la clave y ahora en forma completa. Por lo tanto, estn en 2NF. Vemoslo a nivel de diccionario de datos: Antes de normalizar Proveedores = cdigo proveedor + razn social + domicilio + localidad + categora + 1{cdigo producto + cantidad}n 1NF Proveedores = cdigo proveedor + cdigo producto + cantidad + razn social + domicilio + localidad + categora 2NF Proveedores = cdigo proveedor + razn social + domicilio + localidad + categora Productos por proveedor = cdigo proveedor + cdigo producto + cantidad Podemos concluir que el proceso de normalizacin, al llegar a la 2NF termina rompiendo los grupos repetitivos, los cuales pasan a formar parte de una nueva entidad dentro de la cual ya no son ms grupos repetitivos.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 40

ANLISIS DE SISTEMAS MODELO DE DATOS Tercera forma normal Una entidad est en tercera forma normal o 3NF si y slo si est en 2NF y no existen dependencias funcionales entre atributos no clave.

Para lograr satisfacer esta restriccin, es preciso descomponer nuevamente aquellas entidades que no la cumplan. Veamos nuestro caso:

cdigo proveedor

cumple con la restriccin; es decir: no hay dependencias funcionales entre atributos no clave. Por lo tanto, no slo est en 2NF sino que tambin est en 3NF.

cdigo producto

cantidad

En cambio la otra entidad obtenida: razn social cdigo proveedor domicilio localidad categora

muestra una dependencia funcional entre localidad y categora. Por lo tanto , es preciso descomponerla en dos.

Este es el resultado de esa descomposicin: razn social cdigo proveedor domicilio localidad localidad categora

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 41

ANLISIS DE SISTEMAS MODELO DE DATOS Cmo evolucion la entidad de nuestro caso La entidad original de nuestro caso, evolucion de la siguiente manera:
razn social cdigo proveedor domicilio localidad cdigo producto categora

cantidad

SE ELIGE UNA CLAVE


razn social cdigo proveedor domicilio localidad cdigo producto categora

1NF

cantidad

SE BUSCAN DEPENDENCIAS COMPLETAS (se rompen los grupos repetitivos)


razn social cdigo proveedor cdigo proveedor domicilio localidad cdigo producto categora

2NF

cantidad

SE ELIMINAN DEPENDENCIAS ENTRE ATRIBUTOS NO CLAVE


razn social cdigo proveedor cdigo proveedor domicilio localidad cdigo producto localidad cantidad categora

3NF

La entidad original no normalizada, fue sustituida sin prdida de informacin por tres entidades en 3NF, ms adecuada desde el punto de vista de los objetivos.
Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R. Pgina 42

ANLISIS DE SISTEMAS MODELO DE DATOS

Observacin De lo visto hasta aqu, podemos concluir que: Una entidad est en 3NF si y slo si, en todo momento, est formada por: - un identificador nico o clave. - n atributos funcionalmente dependientes de la clave en forma completa y mutuamente independientes entre s.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 43

ANLISIS DE SISTEMAS MODELO DE DATOS

Porqu conviene normalizar


A medida que abordamos las tres primeras formas normales vimos como la entidad original desnormalizada fue reemplazada sin prdida de informacin, por una estructura ms adecuada teniendo presente los objetivos que debera tener todo Modelo de Datos. Pero, por qu ms adecuada? Veamos con el caso presentado. Para ello, representaremos la entidad en 1NF como una tabla: Proveedor 100 100 100 200 200 200 300 Producto 20 30 40 20 35 40 10 Razn social Juan Prez Juan Prez Juan Prez Pedro Lpez Pedro Lpez Pedro Lpez Jos Peci Cantidad 12 15 20 10 18 28 100 Domicilio Alem 934 Alem 934 Alem 934 Jujuy 720 Jujuy 720 Jujuy 720 Crdoba 340 Localidad Rosario Rosario Rosario San Lorenzo San Lorenzo San Lorenzo Rosario Categora 20 20 20 15 15 15 20

y centraremos nuestra anlisis en el cumplimiento del tercer objetivos: Facilitar los procesos de mantenimiento o ABM. Problemas con la primer forma normal Altas Supongamos que necesita decir que tengo un proveedor nuevo, cdigo 400, razn social Jos Sols, de Crdoba. Hasta tanto no le compre algn producto, no puedo incorporar esta informacin, ya que cdigo producto es parte de la clave. Por lo tanto, tengo informacin en la realidad que no existe en el Modelo de Datos. Bajas Supongamos que el proveedor 300 no provee ms el producto 10. Si elimino esa ocurrencia, pierdo informacin respecto a su razn social y domicilio. Modificaciones Supongamos que el proveedor 200 se muda. Es preciso modificar 3 ocurrencias. Por lo tanto, con la entidad en 1NF no se cumple el objetivo de minimizar la estructura de datos ni de facilitarlos procesos de mantenimiento.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 44

ANLISIS DE SISTEMAS MODELO DE DATOS Vemos qu sucede en 2NF: Proveedor 100 100 100 200 200 200 Proveedor 100 200 300 400 Producto 20 30 40 20 35 40 Cantidad 12 15 20 10 18 28 Domicilio Alem 934 Bolivia 4820 Crdoba 340 Maip 3150 Localidad Rosario San Lorenzo Rosario Crdoba Categora 20 15 20 25

Razn social Juan Prez Pedro Lpez Jos Peci Jos Solis

Los tres problemas anteriores se resolvieron: - Puedo incorporar los datos del proveedor 400, aunque todava no le compre ningn producto. - Si el proveedor 300 deja de proveer el producto 10, no pierdo sus datos. - Si el proveedor 200 se muda, slo debo modificar una ocurrencia. Problemas con la segunda forma normal Altas No puedo informar que la categora de Tucumn es 35 hasta no tener algn proveedor en Tucumn. Bajas Si elimino el proveedor 200, pierdo la informacin de que la categora de San Lorenzo es 15. Modificaciones Supongamos que Rosario cambia de categora. Debo modificar 2 ocurrencias. Esto obliga a continuar buscando una estructura que cumpla mejor con los objetivos

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 45

ANLISIS DE SISTEMAS MODELO DE DATOS Veamos que sucede en 3NF: Proveedor 100 100 100 Proveedor 100 300 400 Localidad Rosario San Lorenzo Crdoba Tucumn Producto 20 30 40 Cantidad 12 15 20 Domicilio Alem 934 Crdoba 340 Maipu 3150 Localidad Rosario Rosario Crdoba

Razn social Juan Prez Jos Peci Jos Solis Categora 20 40 25 35

Los tres problemas anteriores estn resueltos: - Puedo decir que la categora de Tucumn es 35, an sin tener proveedores en esa localidad. - Puedo eliminar al proveedor 200, junto con todos los productos que me vende, sin perder informacin sobre la categora de San Lorenzo. - Si Rosario cambia de categora, puedo informarlo modificando una sola ocurrencia. Conclusiones Por qu, entonces conviene normalizar? Porque obtengo un Modelo de Datos que satisface dos de los principales objetivos : 1. Estructura mnima. 3. Simplificacin de los procesos de mantenimiento. Respetando, adems, el hecho de que no hubo prdida de informacin de la estructura original en la estructura normalizada. El cuarto objetivos: mxima supervivencia, quizs est ms asociado a una inteligente explicitacin de las visiones. No obstante, es prcticamente imposible explicitar todas las visiones asociadas a un problema real y tanto ms difcil es explicitar las que podran aparecer con el transcurso del tiempo.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 46

ANLISIS DE SISTEMAS MODELO DE DATOS Respecto al segundo, asegurar la no prdida de informacin, ser necesario, para terminar la optimizacin del Modelo de Datos volver al Modelo Ambiental y verificar que: a) tomando evento por evento de salida, conjuntamente con el Diccionario de Datos de flujos, todos los elementos que aparecen en los mismos provengan del medio ambiente y/o de atributos de las entidades ya normalizadas y/o se obtengan por clculo. Y en este ltimo caso, que todos los elementos que intervienen en ese clculo provengan del medio ambiente y/o de atributos de las entidades ya normalizadas. b) tomando evento por evento de entrada, conjuntamente con el Diccionario de Datos de flujos, todos los elementos que aparecen en los mismos se almacenen en entidades ya normalizadas o intervengan en un proceso de clculo. c) para todas las entidades internas (de las cuales el sistema es responsable) que intervengan en la generacin de la respuesta de los eventos que disparan actividades fundamentales, que existan los eventos responsables de disparar actividades de custodia, para que dichas entidades se mantengan. Estas verificaciones son importantes. Recordemos que el sistema no inventa ninguna informacin.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 47

ANLISIS DE SISTEMAS MODELO DE DATOS

Mapa de Informacin cannico o normalizado


Es una herramienta grfica que consiste en representar a cada entidad normalizada con un rectngulo, explicitando el nombre y los atributos que la componen, resaltando la clave; y a cada vinculacin entre las entidades, del mismo formato a las empleadas en el Mapa de Informacin preliminar. Veamos cmo queda el mapa cannico de nuestro caso:
Proveedor cdigo proveedor razn social domicilio localidad

cdigo proveedor cdigo producto cantidad Producto por proveedor localidad categora Localidad

Las vinculaciones que generalmente aparecern en nuestro mapa cannico luego de haber normalizado el DER sern del tipo 1a N. En caso de que llegaran a quedar entidades vinculadas 1 a 1, entonces debera unirlas en una sola entidad.

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 48

ANLISIS DE SISTEMAS MODELO DE DATOS

Buenas descomposiciones
En el proceso de normalizacin, vimos que una vez obtenida la 1NF (establecida la clave), ocurren una serie de descomposiciones. El problema es cmo reconocer cules son buenas descomposiciones posibles. Ante la situacin anteriormente vista:

razn social cdigo proveedor domicilio localidad


al no estar en 3NF, la descompusimos de la siguiente manera (1):
razn social cdigo proveedor domicilio localidad localidad categora

Pero, por qu de esta forma y no de esta (2):?


razn social cdigo proveedor domicilio localidad cdigo proveedor categora

o esta (3):?
razn social cdigo proveedor domicilio categora localidad categora

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 49

ANLISIS DE SISTEMAS MODELO DE DATOS Para poder responder a estas preguntas veamos antes las siguientes definiciones:

En toda descomposicin de una entidad en varias entidades, debe lograrse que las nuevas entidades sean independientes. Un conjunto de entidades es independiente si y slo si cada una de ellas puede ser actualizada sin afectar necesariamente a las otras

Cmo reconocer cundo dos entidades son independientes? Teorema Dos entidades E1 y E2, producto de la descomposicin de una entidad E son independientes si y slo si se cumplen las dos siguientes condiciones: a) Toda dependencia funcional en E puede ser lgicamente deducida de las dependencias funcionales en E1 y E2 ms la vinculacin entre E1 y E2. b) Los atributos comunes a E1 y E2 deben ser claves candidatas al menos de una de ellas.

Por lo tanto: Descomposicin Condicin A (1) Se cumple (2) No se cumple: la dependencia funcional entre localidad y categora no se arrastra (3) No se cumple: la dependencia funcional entre cdigo proveedor y localidad no se arrastra Condicin B Se cumple Se cumple Conclusin Buena descomposicin Mala descomposicin

No se cumple: el atributo comn categora no es clave de ninguna entidad

Mala descomposicin

Modelo de Datos - Anlisis de Sistemas - 1997 - U.T.N. - F.R.R.

Pgina 50

Potrebbero piacerti anche