Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
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.
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
Pgina 3
Pgina 4
Pgina 5
AULA
CURSO
CURSO PROGRAMADO *
DIA
abarca
TEMA disponibilidad
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.
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
posee
posee
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
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
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
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:
Pgina 10
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.
Pgina 11
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
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.
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
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:
Pgina 15
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.
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
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
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.
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.
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.
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.
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.
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).
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.
Pgina 26
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.
Pgina 27
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.
Pgina 28
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.
Pgina 29
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 :
Pgina 30
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 :
Pgina 31
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
Pgina 32
Pgina 33
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:
ttulo editorial
fecha edicin
Este esquema suele llamarse grafo de dependencias funcionales y representa las relaciones que existen entre los atributos de una entidad.
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
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.
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
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.
Pgina 37
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.
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
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.
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
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
1NF
cantidad
2NF
cantidad
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
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.
Pgina 43
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.
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
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
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.
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.
Pgina 47
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.
Pgina 48
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:
o esta (3):?
razn social cdigo proveedor domicilio categora localidad categora
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
Mala descomposicin
Pgina 50