Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Sistemas de Informacin
ndice
1 Introduccin ........................................................................................................................... 1
2 Diseo Conceptual .................................................................................................................. 1
2.1 El diagrama de clases de UML ........................................................................................... 1
2.1.1 Clase ........................................................................................................................... 1
2.1.2 Atributo ...................................................................................................................... 2
2.1.3 Asociacin binaria....................................................................................................... 4
2.1.4 Asociacin n-arias ....................................................................................................... 7
2.1.5 Clases dbiles ............................................................................................................. 8
2.1.6 Generalizacin/Especializacin ................................................................................... 9
2.2 Obtencin del diagrama de clases .................................................................................. 11
2.2.1 Identificar las clases con sus atributos ...................................................................... 11
2.2.2 Identificar generalizaciones/especializaciones .......................................................... 12
2.2.3 Identificar asociaciones entre clases ......................................................................... 14
2.2.4 Especificar restricciones de integridad ...................................................................... 18
2.3 Ejercicio 1: Restaurante .................................................................................................. 20
2.4 Ejercicio 2: Ciclismo ........................................................................................................ 21
2.5 Ejercico 3: Una compaa de seguros .............................................................................. 22
Departamento de Sistemas Informticos y Computacin
1 INTRODUCCIN
En este documento se presenta el Diseo conceptual de Sistemas de Informacin. Se utiliza el
diagrama de clases de UML para el diseo de la parte esttica (los datos con sus restricciones) de
un SI. Tambin se presentan algunos aspectos metodolgicos que nos ayuden en el proceso de
diseo conceptual.
2 DISEO CONCEPTUAL
El diseo conceptual es la fase del diseo de una base de datos cuyo objetivo es obtener una
representacin de la realidad que capture las propiedades estticas y dinmicas de la misma que
son necesarias para satisfacer los requisitos; esta representacin debe suponer una imagen fiel del
comportamiento del mundo real.
Para realizar esta tarea se necesita una herramienta que permita obtener una representacin
(usualmente grfica) de la informacin que se maneja en el sistema de informacin. La
herramienta que se propone utilizar es el UML (Unified Modeling Language)1. El UML fue
propuesto por Booch, Rumbaugh y Jacobson en la dcada de los 90 y pretende ser una
herramienta para modelar desde sistemas de informacin empresariales hasta aplicaciones
distribuidas basada en web. De entre todos los diagramas que permite generar el UML hay uno, el
diagrama de clases, que resulta muy til en el diseo de una base de datos para la representacin
del esquema conceptual.
2.1.1 Clase
La observacin de la realidad permite detectar el conjunto de objetos (fsicos o
conceptuales) de los que se quiere almacenar informacin para, mediante el uso de la
clasificacin, que es uno de los mecanismos de abstraccin ms primario que existen, descubrir el
conjunto de clases (o tipos de objetos) que son de inters para la organizacin. Este mecanismo
de abstraccin, que es utilizado la mayor parte de las veces de forma inconsciente, permite no
prestar atencin a las ocurrencias concretas sino al conjunto de ocurrencias.
Ejemplo 1
En el siguiente grfico se aprecia el uso de este mecanismo de abstraccin:
1 Una alternativa a esta herramienta es el Modelo Entidad-Relacin propuesto por Peter Pin-Shan Chen en 1976.
Documento UD3.2 1
Departamento de Sistemas Informticos y Computacin
PERSONA
CLASIFICACIN
COCHE
As pues, los componentes bsicos de un sistema de informacin son los objetos de los que se
quiere almacenar informacin; todos los objetos que son de la misma clase se representan con un
una clase.
Con una clase se representar cualquier tipo de persona, concepto, suceso o evento (en
definitiva cualquier cosa) sobre el que se quiera almacenar informacin.
En diagrama de clases del UML, una clase se representa con un rectngulo nominado dividido
en tres secciones como se muestra a continuacin.
Clase1 nombre de la clase
Atributo1 atributos
Mtodo 1
mtodos
2.1.2 Atributo
Un atributo representa una propiedad del elemento que se est modelando y que es
compartida por todos los objetos de la clase.
Grficamente, los atributos se listan en el compartimento que hay justo debajo del nombre de
la clase y para cada uno se puede indicar:
El tipo de datos asociado que determina los valores que puede tomar el atributo. Se
pueden dar dos casos:
El atributo toma valores simples: en este caso hay que indicar el nombre de un
tipo de datos conocido: char (cadena de caracteres), real, int (entero), date
(fecha), o bien una enumeracin de valores posibles entre parntesis.
El atributo est estructurado en un registro.
Documento UD3.2 2
Departamento de Sistemas Informticos y Computacin
Documento UD3.2 3
Departamento de Sistemas Informticos y Computacin
Una asociacin que conecta exactamente dos clases se dice que es binaria. Aunque no es
frecuente, se pueden tener asociaciones que conecten ms de dos clases (asociaciones n-arias).
Ms adelante, en este documento, se presentarn las asociaciones ternarias.
Grficamente, una asociacin se representa con una lnea continua que conecta dos clases no
necesariamente diferentes y puede llevar los siguientes adornos:
Nombre: una asociacin puede tener un nombre que se utiliza para describir la
naturaleza de la relacin. Se incluye en la parte central de la lnea que representa la
asociacin y, aunque no es obligatorio especificarlo, ayuda a la comprensin del
diagrama. Suele ser menos necesario en el caso de que haya roles. Para clarificar la
interpretacin de la asociacin se puede incluir una flecha, , que indique el sentido
del nombre de la asociacin. Por simplicidad, y a no ser que quede ambiguo el sentido
de la asociacin, se omitir. Slo se ha incluido en los ejemplos 6 y 7 para ilustrar su
uso.
Rol: sirve para expresar el papel que juega una clase en una asociacin. En el caso de
que la asociacin de una clase sea consigo misma, es necesario incluir el papel que la
clase tiene cuando participa en la asociacin en cada uno de los dos sentidos posibles,
ya que si no se incluye, no se pueden expresar claramente las restricciones de
cardinalidad. Para asociaciones entre clases distintas, no es obligatorio incluir esta
informacin.
Cardinalidad (o multiplicidad): una asociacin binaria representa el hecho de que
instancias de una clase se conectan, con un determinado significado, con instancias de
la otra clase. Es frecuente que existan limitaciones en cuanto al nmero de conexiones
posibles. Estas limitaciones se representan en la cardinalidad de cada clase en la
asociacin y se definen con un valor mnimo y un valor mximo separados por dos
puntos seguidos. Cuando se indican estos valores en un extremo de una asociacin, se
est especificando cuntos objetos de la clase de ese extremo puede haber para cada
objeto de la clase en el otro extremo.
En el siguiente diagrama se han representado dos clases (de nombres A y B) y una
asociacin entre ellas (de nombreR). Las cardinalidades incluidas especifican lo
siguiente:
A B
R
minB ..maxB minA ..maxA
R(A(minA..maxA), B(minB..maxB))
Documento UD3.2 4
Departamento de Sistemas Informticos y Computacin
Ro Provincia
Pasa_por
cod_r: {id}:char cod_p: {id}:char
0..* 1..*
Documento UD3.2 5
Departamento de Sistemas Informticos y Computacin
Ro Provincia
Pasa_por
cod_r: {id}:char cod_p: {id}:char
0..* 1..*
km: {1..1}:real
Ejemplo 4
Sea el siguiente diagrama que representa la informacin sobre discos y canciones. La
asociacin Contiene representa las canciones que contiene cada disco.
Si adems se quiere mantener informacin de los cantantes, deberemos incluir una nueva
clase con la informacin que se quiera almacenar. Por otra parte, si se quiere poder incluir la
informacin de qu cantante canta una determinada cancin en un disco, se deber incluir una
nueva asociacin (Canta) que relacione una ocurrencia de Contiene (un par cancin/disco) con
una ocurrencia de Cantante. Para representar esta informacin, la asociacin Contiene se debe
considerar como una nueva clase (aunque en este caso no tenga atributos) ya que las asociaciones
slo se pueden establecer entre clases. Este mecanismo lo representaremos como se ve en la
siguiente figura.
Documento UD3.2 6
Departamento de Sistemas Informticos y Computacin
Documento UD3.2 7
Departamento de Sistemas Informticos y Computacin
Ciudad Pas
Est
nom_c: {id}:char nom_p: {id}: char
0..* {id}
La clase Ciudad es dbil ya que en la organizacin (informacin geogrfica mundial) que se est
modelando puede haber varias ciudades con el mismo nombre aunque evidentemente siempre en
distintos pases; entonces cmo se distingue una ciudad de otra? En primer lugar por el pas al
que pertenecen y dentro de un mismo pas por el atributo nom_c necesario en este caso ya que
en un pas puede haber muchas ciudades
2 Esto significa que necesariamente en todos los grupos se imparten todas las asignaturas.
Documento UD3.2 8
Departamento de Sistemas Informticos y Computacin
Ejemplo 7
Un caso menos frecuente se presenta a continuacin.
Una organizacin tiene informatizados los expedientes jurdicos de todos los pleitos en los
que est involucrada; de cada pleito, entre otras informaciones, se conoce el nmero de pleito y el
resultado de la sentencia que puede ser favorable o desfavorable. En caso de ser desfavorable se
puede presentar como mucho un recurso; cada recurso se identifica por el nmero de pleito al
que atae y entre otros atributos interesa saber en qu fecha se realiza. El diagrama asociado a
este problema sera:
Recurso Pleito
Afecta
fecha: {1..1}: date num: {id}: int
0..1 {id}
Dado que un pleito se puede recurrir como mucho una vez, para distinguir un recurso de otro
slo se necesita saber qu pleito se est recurriendo no siendo necesario en este caso un atributo
de la clase recurso que ayude a distinguirlos.
Resumiendo, las clases dbiles son aqullas para las que no existe un identificador como se ha
definido antes, sino que para distinguir entre sus ocurrencias es necesario utilizar una (o ms de
una) de sus asociaciones siendo necesario la existencia de un atributo (o conjunto de atributos)
llamado semiidentificador cuando la cardinalidad mxima de la otra clase sea mayor que 1.
Existe la posibilidad de que la clase se identifique gracias a varias asociaciones con otras clases;
en este caso, las cardinalidades mximas de todas estas clases en esas asociaciones deben ser
mayores que 1.
Ejemplo 8
Supnganse que se quiere almacenar informacin sobre las notas que han obtenido los
alumnos en distintas asignaturas teniendo en cuenta que un alumno se puede presentar varias
veces a una asignatura, pero en fechas distintas, y que los exmenes no tienen identificador.
Una posible forma de identificar cada examen es sabiendo qu alumno lo ha hecho, de qu
asignatura es y en qu fecha se realiz la prueba (para distinguir los exmenes del mismo alumno
en la misma asignatura). El esquema que muestra esta solucin es el siguiente.
2.1.6 Generalizacin/Especializacin
Cuando se detecta que entre distintas clases definidas en el esquema existe una relacin de
inclusin (esto es, que todas las ocurrencias de una clase son a su vez ocurrencia de otra ms
general), este hecho se expresa por medio de la Generalizacin/Especializacin. Esto significa que
la clase ms general se especializa en una o varias clases especializadas o subclases, o dicho a la
inversa, que una o varias clases se generalizan en una clase general o superclase. Este proceso se
Documento UD3.2 9
Departamento de Sistemas Informticos y Computacin
puede repetir a distintos niveles, siendo posible que una clase tenga ms de una superclase,
siempre que la clase ms general del conjunto sea nica. La clase ms general ser adems la
nica que tenga identificador. Todas las subclases de una clase tienen, adems de sus atributos
propios, todos los atributos de sus superclases (en cualquier nivel), aunque no se representan en
el diagrama.
Una clase puede participar en distintas Generalizaciones/Especializaciones que se definen
atendiendo a criterios distintos. El criterio se puede indicar al lado del arco.
La especializacin se representa uniendo todas las clases especializadas segn un criterio con
un arco que se conecta con la clase general mediante una flecha.
Clase G
La especializacin de una clase en varias subclases puede ser, segn el recubrimiento que
hagan las clases especializadas de la clase general en:
Total: en este caso todas las ocurrencias de la clase general deben corresponderse con
al menos una ocurrencia de alguna de las subclases; o
Parcial: cuando puedan existir ocurrencias de la clase general que no se especialice en
ninguna de las subclases.
Por otra parte, segn la posible interseccin entre las clases especializadas, puede ser:
Solapada: cuando una ocurrencia de la clase general pueda corresponderse con ms de
una ocurrencia de las subclases; o
Disjunta: cada ocurrencia de la clase general puede corresponderse como mucho con
una ocurrencia de alguna de las subclases.
Estas propiedades se especifican entre llaves junto al arco que representa la especializacin.
Los valores por defecto son parcial y solapada, es decir, los menos restrictivos.
Ejemplo 9
En el siguiente diagrama de clases se expresa que los empleados de una empresa pueden
especializarse de acuerdo a tres criterios:
Segn el cuerpo al que pertenece.
Segn que el empleado sea o no gerente.
Segn el tipo de contrato que tiene.
Documento UD3.2 10
Departamento de Sistemas Informticos y Computacin
No hay que pensar en que antes de avanzar en el diseo hay que definir un conjunto de clases
que sea fijo, sino que ste puede cambiar a medida que se tomen ciertas decisiones de diseo. Por
ejemplo es posible que algunos atributos inicialmente considerados desaparezcan luego y se
conviertan en clases.
Cliente
Empresa
DNI: {id}: char
nombre: {1..1}: char 0..* Pertenece 0..1 CIF: {id}: char
gua: {0..1}: char nombre: {1..1}: char
pas: {0..*}: char
Ms tarde se detecta que hay dos clases de clientes: los turistas, a los que siempre se asignar
un gua; y los viajantes de negocios, que siempre pertenecen a una empresa y de los que interesa
conocer los pases que suelen visitar; entonces, una solucin ms adecuada al problema sera la
siguiente:
Cliente
DNI: {id}: char
nombre: {1..1}: char
{Total, Solapada}
Empresa
Turista Viajante
0..* Pertenece 1..1 CIF: {id}: char
gua: {1..1}: char pas: {1..*}: char nombre: {1..1}: char
Documento UD3.2 12
Departamento de Sistemas Informticos y Computacin
Ejemplo 11
En el siguiente diagrama se han definido dos clases independientes con algunos atributos
comunes.
Secretario Tcnico
DNI: {id}: char DNI: {id}: char
nombre: {1..1}: char nombre: {1..1}: char
pulsaciones: {1..1}: int categora: {1..1}: char
idiomas: {0..*}: char
Si adems se observa que ambas clases se refieren a trabajadores de la empresa que para
algunos procesos conviene tener juntos, sera ms correcto considerar una clase general
Empleado:
Empleado
DNI: {id}: char
nombre: {1..1}: char
{Parcial, Disjunta}
Secretario Tcnico
pulsaciones: {1..1}: int categora: {1..1}: char
idiomas: {0..*}: char
Proyectante
ttulo: {1..1}: char
director: {1..1}:char
Documento UD3.2 13
Departamento de Sistemas Informticos y Computacin
Como se puede observar en los ejemplos, en cualquiera de estos casos se ha definido una
generalizacin/especializacin de manera que los atributos identificadores y los descriptores que
son comunes a todas las clases estn en la clase general, quedndose los atributos especficos y las
asociaciones especficas en cada una de las clases especializadas.
Hay que darse cuenta de que la generalizacin/especializacin no debe definirse por los
nombres que puedan tener los atributos sino cuando realmente exista entre los objetos la relacin
de subclase que implica este concepto. Por otra parte, una generalizacin/especializacin en la
que las clases especializadas no tienen propiedades distintivas (atributos o asociaciones) no
resulta muy til pudindose representar la misma informacin y de forma ms sencilla con un
atributo discriminador en la clase general (esta idea se ilustra en el ejemplo siguiente).
Ejemplo 13
Supngase que interesa saber si los libros de una biblioteca estn escritos en espaol o en
otros idiomas. Un diseo como el siguiente:
Libro
ISBN: {id}: char
ttulo: {1..1}: char
{Total, Disjunta}
En_Espaol No_en_Espaol
Documento UD3.2 14
Departamento de Sistemas Informticos y Computacin
1) Ante la duda se recomienda elegir las cardinalidades menos restrictivas (0 para la mnima y *
para la mxima).
2) Las asociaciones redundantes deben eliminarse. Dos o ms asociaciones se consideran
redundantes si representan el mismo concepto; sin embargo, hay que darse cuenta de que entre
las mismas clases se pueden definir ms de una asociacin siempre que tengan significados
diferentes.
Ejemplo 14
En el siguiente diagrama, aunque con nombres diferentes, se han definido dos asociaciones
que representan la misma informacin por lo que una debera eliminarse:
Proveedor Pieza
0..* Vende 0..*
DNI: {id}: char cdigo: {id}: char
nombre: {1..1}:char 0..* Suministra 0..* peso: {id}: real
Sin embargo, pueden existir dos asociaciones definidas sobre las mismas clases pero con
significados completamente distintos:
Vuelo Ciudad
0..* Despega 1..1
num_vuelo: {id}: char nombre: {id}: char
precio: {1..1}: real 0..* Aterriza 1..1 pas: {id}: char
Pertenece
1..* 1..*
Provincia Municipio
cdigo: {id}: char 1..1 Est_en 1..* nombre: {id}: char
nombre: {1..1}: real dir_ayuntamiento: char
Documento UD3.2 15
Departamento de Sistemas Informticos y Computacin
Comunidad
nombre: {id}: char
habitantes: entero
1..1
Pertenece
1..*
Provincia Municipio
cdigo: {id}: char 1..1 Est_en 1..* nombre: {id}: char
nombre: {1..1}: real dir_ayuntamiento: char
Pertenece
0..* 0..*
Profesor Asignatura
DNI: {id}: char 0..1 Responsable 0..1 cdigo: {id}: char
nombre: {1..1}: real nombre. {1..1}: char
Si en este sistema de informacin se debe cumplir que los profesores slo son responsables de
asignaturas de su departamento, entonces el departamento al que pertenece un profesor puede
derivarse a travs del departamento al que est adscrita la asignatura de la que es responsable,
pero como puede darse el caso de que un profesor no sea responsable de ninguna asignatura no
se puede eliminar. La misma reflexin puede hacerse respecto a la asociacin Adscrita. As pues,
dado que pese a existir cierta redundancia no es posible eliminar ninguna asociacin sin perder
por ello informacin, este diagrama necesita una restriccin de integridad que controle la
restriccin: los profesores slo son responsables de asignaturas de su departamento.
Sin embargo, no hay que pensar, que siempre que hay un ciclo entre clases existe una
dependencia transitiva, como se ilustra en siguiente ejemplo.
Documento UD3.2 16
Departamento de Sistemas Informticos y Computacin
Ejemplo 17
Provincia
cdigo: {id}: char
1..1
nombre: char
1..1
Pertenece
1..* 0..*
Ciudad Persona
cdigo: {id}: char 1..1 Trabaja 0..* DNI: {id}:char
nombre: {1..1}: real nombre: char
En este caso, pese a existir un ciclo de las mismas caractersticas que en el ejemplo 13 no existe
redundancia ya que una persona no tiene por qu haber nacido en la misma provincia en la que
est la ciudad en la que trabaja.
4) Especificar el rol que cada clase juega en una asociacin cuando alguna clase participa ms
de una vez en ella. El caso ms sencillo se presenta en las asociaciones binarias en las que las dos
clases relacionadas son la misma. En el siguiente ejemplo se muestran algunas asociaciones de
este tipo especificando el rol o papel.
Ejemplo 18
1) Relacin de prerrequisitos en el conjunto de las asignaturas de una carrera: una asignatura
puede ser prerrequisito de muchas asignaturas y tener tambin a muchas asignaturas como
prerrequisito.
2) Relacin de composicin entre piezas: una pieza se compone de muchas piezas y a su vez
puede formar parte de muchas piezas.
Documento UD3.2 17
Departamento de Sistemas Informticos y Computacin
3) Relacin entre los ros por el hecho de que unos son afluentes de otros: un ro puede ser
afluente de otro pero a su vez muchos ros pueden afluir a l
En general, hay que ser cuidadosos con las asociaciones reflexivas ya que normalmente exigen
que se especifiquen ciertas propiedades que no quedan contempladas en la definicin de la
asociacin. Por ejemplo, las tres asociaciones representadas en el ejemplo anterior son
antisimtricas (una asignatura no puede ser prerrequisito de un prerrequisito suyo) y
antirreflexivas (una asignatura no puede ser prerrequisito de s misma), propiedades que no se
expresan en el diagrama.
Documento UD3.2 18
Departamento de Sistemas Informticos y Computacin
Vuelo Ciudad
La ciudad de despegue 0..* Despega 1..1
debe ser distinta de la num_vuelo: {id}: char nombre: {id}: char
de aterrizaje precio: {1..1}: real 0..* Aterriza 1..1 pas: {id}: char
Para finalizar, en un diagrama de clases correcto hay que tener en cuenta las siguientes reglas:
Todas las clases tienen identificador o bien son dbiles o especializaciones.
Las asociaciones nunca tienen identificador
No puede haber dos nombres iguales entre las clases, las asociaciones ni los roles.
Los nombres de atributos en una clase no se repiten.
Las clases especializadas nunca tienen identificador ni son dbiles ya que heredan la
identificacin de su clase general.
En el diagrama de clases no existen las claves ajenas (concepto propio del modelo
relacional) de forma que nunca se debe incluir un atributo en una clase con la intencin
de que represente una asociacin con otra clase.
Documento UD3.2 19
Departamento de Sistemas Informticos y Computacin
Documento UD3.2 20
Departamento de Sistemas Informticos y Computacin
Documento UD3.2 21
Departamento de Sistemas Informticos y Computacin
Documento UD3.2 22