You are on page 1of 64

Modeladodeuna

BasedeDatos
Autor:AlfonsoPalomares

Introduccin a las Bases de datos by Alfonso Palomares is licensed under a Creative


CommonsAtribucinNoComercialSinDerivadas3.0UnportedLicense.

Pag.159

Contenidos
Modeladodeuna
BasedeDatos
2.ElModelado
2.1.Porqudeborealizarunmodelo
2.2.Cmomodelar
2.2.1Ejemplo
2.3.DiagramaEntidadRelacin(DER)
Entidades
Ejemplo
Atributos
AtributosClaveoIdentificadores
AtributosCalculados
AtributosMultivaluados
AtributosCompuestos
Relaciones
CardinalidaddelasRelaciones
Opcionalidad
GradodeunaRelacin
RelacinUnaria
RelacinBinaria
RelacinTernaria
Atributosenlasrelaciones
Entidadesdbiles
JerarquasoHerencias
2.3.1.Ejemplossimples
2.3.2.Ejemplocomplejo
2.4.ModeloRelacional(MR)
ElementosdelModeloRelacional
Relaciones
Atributos
AtributosClaves
AtributosForneos
AtributosClaveyforneos
Reglasdetranformacin.DesdeelDERalMR
DeEntidadessimplesaRelaciones.
DeEntidadesyRelacionesaRelaciones.
2.4.1.Ejemplossimples
2.4.2.Ejemplocomplejo

Pag.259

2.ElModelado
Desde sus comienzos, el ser humano ha intentado hacer representaciones grficas de su
universo conocido, para as poder transmitir su modo de verlascosasaotros.Conformeel
ser evoluciona, tambin lo hacen sus esquemas grficos, llegando a especificar y tipificar
cada representacin. Es por esto, que la mejor manera de pensar, diseary mostrar una
basededatosseamedianteundibujo.
Como en todos los mbitos formales sucede, se cre por decisin del medio y luego de
diversas pulseadas entre diferentes corrientes, un modelo especfico para el planteo de
basesdedatos.Porlocual,setomaronvariasprecauciones.
Primero, se debe minimizarlacantidaddeplantillasusadas,esdecir, sedebecontarconun
reducido conjunto de elementos. Segundo, se debe dar un significado nico a cada
elemento,permitiendoasunanicainterpretacin.

2.1.Porqudeborealizarunmodelo
Debemos construir un puente que nos acerque entre quien tiene una idea y aquel que la
realizar. Si debemos conectar el pensamiento entre ms de una persona, es vital que
generemos un diseo, que sea lo ms universal posible, que sea fcil de comprender,
incluso hasta por aquellos que surgen de otros mbitos acadmicos. Es por ello que
debemos utilizar un modelo estndar,probado yrevisadoduranteaos.Sienlugardehacer
unmodeladosimplementenoscentramosenrealizarunescrito,daramoslugaraerroresde
interpretacinoproblemasdellenguaje,entreotrascosas.

2.2.Cmomodelar
Para las bases de datos, uno de los modelos grficos que aplica, es el Diagrama
EntidadRelacin,tambinconocidocomoDER.
Dentro de esta forma de modelar, se encuentran solamente dos tipos de elementos
diferentes, permitiendo transmitir un mensaje claro y preciso. Dichos elementos, son slo
deltipoEntidadyRelacin.
Las entidades indican las colecciones de objetos de los que necesitamos almacenar o
recopilar informacin. Dado que son colecciones, se las denomina formalmente Conjunto
deEntidades,peroporsimplicidadseoptaporllamarlassimplementeEntidades.
Se las nombra siempre en singular y pueden representar objetos materiales (vehculos,
lugares, etc.), objetos abstractos (llamadas telefnicas, movimiento bancario,etc.), objetos
vivos (empleados, alumnos,etc.) u objetosinanimados(accidentesgeogrficos,puestosde
trabajo, etc.), pero siempre sern tomadas y tratadas como colecciones de objetos. Si

Pag.359

percibimos quedebemos tenerencuentalosboletosdetransporteutilizadosenelmes,nos


surgeunaentidadllamadaBoleto,dondeseguardelacoleccindelosboletos.
Tomando esto ltimo, vemos que de alguna manera, tenemos que definir caractersticas o
atributos que describan a cada elemento de la coleccin. De aqu en ms utilizaremos el
trmino Atributo. Por ejemplo, para la entidad planteada Boleto, deberamos tener en
cuenta los atributos correspondientes al precio, el origen y destino del viaje, etc. Otro
ejemplo, para la entidadLlamada, losatributospuedenser,dayhoradelallamada, nmero
dedestino,nmeroorigen,duracindelallamada,costo,etc.
Por otra parte, las relaciones estarn signadas por la accin o asociacinentreentidades.
Por ejemplo, si tenemoslasentidadesPersonayMascota,unarelacinentreellaspodra
ser es dueo de, donde indicamos que una o ms personas son dueas de una o ms
mascotas.
Otro ejemplo que podemos incorporares,teniendo PersonayBoleto,posiblesrelaciones
entre estas entidades seran, utiliz para sealar que unapersona utiliz un boleto, o es
vendidopor,paraindicarqueunoomsboletossonvendidosporpersonas.
Por ltimo, podemos tener Persona y Auto, donde las relaciones podran ser, es dueo
de, o conduce, o le gusta o es vendido por., etc. Como vemos, normlamente las
relacionesestndefinidasconunverboounafraseverbal.
Qu determinar lasentidades a considerar ysusrelacionesdependerexclusivamentedel
universoodominioqueestemosmodelando.

2.2.1Ejemplo
Nos interesa para este ejemplo pensar en un esquema que nos permita administrar
nuestros DVD de msica y video. De los DVDs queremos contar con la informacinde: el
nombre,lafechadeedicinylacompaaquehizolaedicin.Adems,queremossaberqu
artistasintervienenenlasdiferentesproducciones.
Teniendo esto, podemos empezar a revisar qu elementos sern posibles entidades. Para
detectar colecciones, debemos ver en el prrafo anterior, qu elementossonalmacenables
y posiblemente necesitemos persistir ms de uno. Normalmente vienen denotados por un
sustantivo. Lo primero que salta a la vista, son los DVD. Luego podra ser la compaaque
hace la edicin y por ltimo, los artistas. Estas tres colecciones podramos definirlascomo
entidades.
Una vez que hemos detectado las entidades, debemos proceder a reconocer los atributos
que las describan. Para los DVD, los atributos a considerar, son: el nombre, la fecha de
edicineinclusopodemosdefinirunatributoquenosdistingasielDVDesunapelculaono.
Para las compaas editoras, no nos informa nada, por lo quepodemos presuponer contar
conalmenosunnombre.Lomismoparaelcasodelosartistas.
Finalmente, queda por determinar el conjunto de relaciones, quienes no suelen ser tan
explcitas en los textos como s lo son las entidades, aunque muchas veces pueden
reconocerse con un verbo. Debemos recordar que las relaciones slo ocurren entre
Pag.459

entidades,locualnosindicaquienesparticipanalahoradepensarlarelacin.
Sireleemoselprrafodelproblema,vemosquelacompaaeditorialeditalosDVD,siendo
esta la relacin buscada. Luego, entre los artistas y los DVD, se descubre la relacin
participaoformapartede,determinandolaaccinentreelartistaylaobra.

2.3.DiagramaEntidadRelacin(DER)
Utilizaremos para la representacin grfica de lo anteriormente dicho el Diagrama
EntidadRelacin.

Entidades
En este modelo las colecciones de objetos o entidades sern representadas por un
rectngulo, donde el nombre de dicha coleccin estar encerrado dentro del mismo. Este
nombreestardefinidoensingularynopodrrepetirseentodoeldiagrama.

Ejemplo

Figura1.Sepuedenvercincoentidades:Persona,Trabajador,Transporte,Director,Zapato.

Para estos casos, se debe pensar que estamos diagramando objetosquesoninherentesa


lanecesidadqueestamosrepresentandoeneldiagrama.
Veamos, si tenemos una empersa que realiza diferentes modelos de zapatos, podemos
pensar que consideramos las entidades personas, de forma genrica, luego
particularizamos a las personas en dirigentes y trabajadores. Cada una de estas tres

Pag.559

entidades almacenarn todos los datos de cada una de las personas que tenga nuestra
empresa de zapatos, permitindonos as discriminar entre quienessondirigentesyquienes
son trabajadores. Adems, decidimos incluir la entidad zapato, donde almacenaremos los
distintostiposdezapatosquesefabricanennuestraempresaimaginaria.Porltimo,hemos
incluido el transporte, para pensar en el medio queutilizaremosparadistribuirlosproductos
yaelaboradosalastiendas.

Atributos
Como ya hemos dicho, cada entidad o coleccin de objetos tendr atributos que las
describanyadems,quedistingaacadaunodelosobjetosincluidosendichascolecciones.
Estos atributos serndibujados con valos, conectados con una lnea a la entidad a la que
estn describiendo. Cabedestacar,que una entidadnopuedetenerdos omsatributoscon
el mismo nombre, ya que estaramos almacenando dos veces el mismo dato.Porejemplo,
en la entidad Persona, si tenemos el atributo Nombre y lo definimos dosveces, para cada
objetodedichaentidad,tendramoseldatorepetido.Veamoscomo:
Para el objeto 1, la persona tiene como nombre Jos y para elobjeto 2, el nombre Ana. Si
repetimos el atributo, tambin duplicaramos su contenido, almacenando en este caso
JosJosparaelobjeto1yAnaAna,paraelobjeto2.
Puede el lector pensar, cmo hacer en el caso de que una persona tenga dos nmeros de
telfono a donde poder contactarla. Estoscasoslosresolveremosmsadelanteypodras
descubrircmoplanteardichassituaciones.
Algo que s puede ocurrir es que dos entidades diferentes tengan, en cada una de ellas, un
atributo con el mismo nombre. Por ejemplo, las entidades Persona y Color, ambas pueden
tenerelatributoNombre,perocadaatributoserunacaractersticapropiadecadaentidad.
Otroejemploparaverestopodrser:

Figura2.Vemosenelejemplo,dosentidades,AutoyMoto,cadaunaconsuatributocolor.

AtributosClaveoIdentificadores
Algunos de los atributos tienen la particularidad de ser aquellos que determinan
unvocamentealaentidaddentrodelconjuntodeentidades.
Por ejemplo, si tenemos la entidad Auto,con los atributos ao de fabrica, color,puertas,

Pag.659

marca y modelo, debemos pensar cmo distinguir los siguientes objetos de la coleccin
Auto.
Ao
2009
2010
2010
2009

Color
Negro
Negro
Azuil
Negro

Puertas
5
5
5
5

Marca
Ford
Ford
Ford
Ford

Modelo
Focus
Focus
Focus
Focus

Vemos que si tomamos el atributo ao como atributo identificador del Auto, no logramos
tener un solo valor diferente para cada auto, ya que en el ejemplo, 2009 y 2010 se
encuentranendosobjetos(oautos)respectivamente.
Si tomamos ao y color, tampoco conseguimos distinguir a un objeto de otro, ya que por
ejemplo 2009 + Negro, se encuentra en ms de unobjetoauto.Recordemosqueelobjetivo
esdistinguirunvocamenteacadaobjetodeotro.
Probemos ahora, utilizar el caso extremo, utilizar todos los atributos. Si tomamos 2010 +
Negro +5 + Ford+ Focus descubrimosquetampocopodemosdeterminarunicidad,yaque
2009+Negro+5+Ford+Focusserepiteparadosobjetos.
Para solucionar esto,si bien tenemos determinados a aquellos atributos que describenala
entidad Auto,antenemoslanecesidadde identificarlosunvocamente.Paraelcasodeesta
entidad, pensemos qu hay en la descripcin de un auto que lo defina de forma nica.
Generalmente, estos atributos son los fundacionales del objeto a evaluar. Para el caso de
las personas, lo que lo define nicamente podra ser el Documento de Identidad. Para los
autos, esta simple caracterstica nica podra ser la matricula, ya que es el atributo con el
cualsediferencianlosautos,quedando:
Matricula

Ao

Color

Puertas

Marca

Modelo

AAI001

2009

Negro

Ford

Focus

AAI002

2010

Negro

Ford

Focus

BBF003

2010

Azul

Ford

Focus

CCF004

2009

Negro

Ford

Focus

Si tomamos para cualquier objeto o instancia de la entidad una matrcula en particular,


vemosqueobtenemosunoysolounauto,
A este tipo deatributo,selodenominaIdentificadoroClave.Laformadedistinguirlodelos
otros,amodogrfico,essubrayandoelnombredelatributo.

Pag.759

Figura 3. Tenemos las entidades Auto, con su atributo comn color, y su atributo clave
matrcula. Por otra parte, la entidad Monitor, con su atributo clave Nro. de serie y sus
atributosdescriptivostamaoycolor.

Cabe destacar,quepodemostenermsdeunatributoclaveenunaentidad,porejemplo
la entidad Persona, que puede tener como atributos clave, el tipo y en nmero de
documento.

Figura 4. Encontramos en esta figura la entidadpersonaydosatributosclave, nmeroytipo


dedocumentoylosatributoscomunesfechadenacimientoyaltura.

Tipo
Pasaporte
DNI
DNI

Nro
29111222
29111222
29111223

Nombre
JuanRodriguez
JuanaDolores
JuanRodriguez

Cabe destacar que los atributos forman una nica clave en su conjunto y no pueden
considerarse en forma aislada como tales. Como vemos en este ejemplo, si tomramos
solamente el nmero del documento, obtendramos ms de una personal para el mismo
valor. Lo mismo sucede con el atributo tipo de documento. Surge que, si tomamos eltipoy
elnmerodedocumento(elpar),podemosdistinguirunvocamenteacadapersona.
Grficamente, si tenemos ms deun atributo clave, debemos subrayara ambos atributos,
talcomohacemoscuandoexistesolouno.
Hay casos, dondetenemosmsdeunatributoquedistingueunicamentealoselementosde
la entidad. Por ejemplo, en los autos, tenemos la matricula como dijimos antes, pero
Pag.859

tambin tenemos el nmero del motor. En estos casos debemos elegir, segn lo que
consideremos ms apropiado en el dominio de nuestro problema, qu atributos sern
finalmente los identificadores. En este ejemplo, es esencial entender que debe elegirseuno
sobre el otro y no declararlos a ambos como atributos clave. Marcando a ambos como
identificadores, daramos la pauta que se necesita el par matriculanmero de motor para
determinarunauto.

Figura 5. Vemos dosveceslamismaentidadconlosmismosatributos.LaentidadesAuto y


los atributossoncolor,nmerodemotorymatrcula.Comomatrculaynmerodemotor son
posiblesclaves,debemoselegirunauotraopcin,nuncaambas.

Recordemos que solo tomamos 2 o ms atributos cuando uno solo no es suficiente para
determinarlaunicidaddelaentidad.
Ejemplos

Figura 6. Podemos ver en este grupo tres entidades con sus respectivos atributos,
destacandolosquesonclaveconunsubrayado.

AtributosCalculados
Los atributos calculados son aquellos que demandan un clculo a partir de otros atributos

Pag.959

para determinar su valor. Es decir, dependen del valor de uno a ms atributos y de la


frmulaquesedefinaparaelclculo.
Por ejemplo,elatributocalculadoEdadenlaentidadAlumno,dependedelatributofechade
nacimiento y cuyo clculo queda determinado por la diferencia entre la fecha actualylade
nacimiento (en aos). Otro ejemplo puede ser el atributo calculado clase, en la entidad
Matafuego, dependiendo del tipo de matafuego (A: incendios que implican slidos, B:
incendiosqueimplicanlquidosinflamables,etc).
Estosatributoscalculadossedibujanusandolneaspunteadasenelovalo.

Figura 7. Vemos dos entidades, alumno y matafuego. Con losatributoscalculados edady


clase.

Cabe destacar que no hace falta explicitar la frmula en el modelo o diagrama realizado,
pero si hay que tenerlapresenteparaelfuturo, cuandodeldiagramaobtengamosla basede
datosreal.

AtributosMultivaluados
Un caso particularde los atributos, es que cuenten con ms deun valor paraunainstancia
de la entidad a la cual pertenecen. A modo de ejemplo, la entidad Persona, posee en el
atributo telfono, la posibilidad de tener uno o ms valores. Uno podra optar por definir un
nmero finto de atributos similares (telfono1, telfono2, etc.) o bien definir un atributo
multivaluado.
Estos atributos se dibujan con dos valos concntricos. El nombredelatributodebe seren

Pag.1059

singular, por ms que pueda almacenar ms de un valor. Este tipo de caracterstica nos
permite almacenar una indefinida cantidad de valores diferentes endichoatributopara cada
unodeloselementosdelaentidad.
Por ejemplo, podemos tener para la persona Juan, los telfonos 44444444 y 22225555, y
paralapersonaAna,losnmeros55552222,11112222,66664444.
Como vemos, en un atributo multivaluado, cada objeto de la entidad, puede tener una
cantidaddiferentedevalores.

Figura8.Aquvemostrespersonasconunacantidaddiferentesdenmerosdetelfonos.

Ejemplosdeatributosmultivaluados.

Figura9.Vemoscuatroejemplosdeentidadesconatributos multivaluados.La primera, esla


entidadAlumno,conelatributomultivaluadotelfono.Luegotenemoslaentidad Celular,con
el atributo multivaluado Aplicaciones.Tambin la entidadSilln,con elatributocolordetela,
como multivaluado, para almacenar diferentes colores para cada objeto silln. Por ltimo,
tenemos la entidad Libro, con elatributomultivaluadoescritor,paraindicar que puedetener
cadalibro,unoomsescritores.

AtributosCompuestos
Por ltimo, tenemos los atributos compuestos. Estos atributos nos sirven para agrupar
atributos solamente, colaborando alavisualizacin delaentidadyasumejorentendimiento.
As, podemos tener el atributo direccinquepodr serelatributoagrupadordelosatributos
calle,piso,altura,departamento,etc.
La forma de graficarlo es asociando al atributo agrupador a la entidad conunalnea.Luego,
losagrupados,asociadosconunalneaalatributoagrupadorynoalaentidad.

Pag.1159

Figura10.Enestaimagenvemosdosentidades.PrimeroAlumno, conelatributocompuesto
Direccin. Este atributo est formado por Calle, Altura, piso y departamento. Luego,
tenemos la entidad Libro, con elatributocompuestoFormato. Este atributo estcompuesto
porlosatributosColor,Columna,Tamaodeletraytipografa.

Relaciones
Las relacionesson quienes definen las acciones entreunaentidadyotra.Sedibujan conun
rombo, con al menosdos conectores en las puntas horizontales, que servirn paraasociar
lasentidadesqueintervienenendicharelacin.

Figura 11. Vemos aqu, la forma de graficar una relacin, con sus dos conectores a los
ladoscontrazofirme.

Dentro de un mismo diagrama, los nombres de las relaciones no pueden repetirse.


Tampoco podemos utilizarparanombrar a una relacin, algo diferente auna frase verbal o
unverbo,yaqueeslaformadedefinirlaaccinquerepresentadicharelacin.
Para evaluar una relacin, tomamos uno y solo un objeto de una entidad y aplicamos la
accin sobre otro objetodelaotraentidadasociada.Porejemplo,sitenemosdosentidades,
Perro y Gato, y pensamos en que estn relacionados mediante el verbo perseguir,
podemos definir la relacin persigue a, o es perseguido por, pensando en un perro en
particulardetodalacoleccinPerroyungatoenparticulardetodalacoleccinGato.
VeamoslomismoconalgunosejemplosGrficos.

Pag.1259

Figura 12. Vemos aqu seis ejemplos ms de relaciones. La primerarelacin,Compuesta


por,esta asociada a las entidades Empresa y sucursal. Luego,la relacin Trabajaen,se
conectaconlasentidadesPersonayOrganizacin.Deformasimilarsucedeconlasdems.

Siempre la forma de leer dicha relacin es de izquierda a derecha, y de arriba hacia


abajo.

Figura 13. Tomando algunas de las relaciones delafigura 12,seejemplifica cmose debe
leerlarelacinqueintervieneentrelasentidades.

Entre dos entidades de nuestro modelo, podemos tenerningunaomsrelaciones,segn la


necesidadoelproblemaqueestamosresolviendo.

Pag.1359

Figura 14. Vemos en este ejemplo, dos entidades, Lector y Libro. Entre ellos, hay tres
relaciones que tienen significados diferentes. Las relaciones son Recomienda, Lee y
Comenta.

Esto sucede ya que, entre dos instancias de objetos de las dos entidades, pueden darse
ciertascombinacionesyciertasno,segnloquelarelacinrepresente.
Enelejemploanterior,podemospensarque:

Figura 15. Vemos aqu tres representaciones de elementos de la entidad Lector y de la


entidad Libro. Cada representacin hace referencia a posibles conexiones entre dichos
elementos, para que podamos entender cmo funcionan las relaciones y por qu muchas
vecesdebemosdefinirmsdeunarelacinentredosentidades.

CardinalidaddelasRelaciones

Pag.1459

Una vez que comprendimos que para evaluar las relaciones tenemos que considerar las
instancias de las entidades, debemos determinar cuntas instancias de cada entidad
pueden participar de la relacin. Es lo mismo decir,sitenemosunaaccin,cuntossonlos
quepuedenprovocarlaycuantosrecibendichoefecto.
Siempre la cardinalidad se define para cada unodelasentidadesalasqueest asociadala
relacin. Entonces, si tenemos dos entidades que estn asociadas por una relacin,
tenemosqueevaluarlacardinalidaddelarelacinconrespectoaambasentidades.
Si tenemos las entidades LectoryLibro,podramostenerlarelacinLee,paradecirque
un lector ley algnlibro. Ahora, si evaluamos lacardinalidaddelarelacin,debemostomar
un lector hipottico (no Juan ni Ana) y pensar cuntos libros puede haber ledo, para
comenzar de esta forma a definir la cardinalidad de la relacin. Encontramos rpidamente
que el resultado a dicha pregunta es uno o ms libros. Entonces, dado que UN LECTOR
puede leer UNO O MS LIBROS, decimos que la cardinalidad en la relacin Leees del
tipoMuchos,conrespectodelaentidadLibro.
Evaluemos la relacin ahora, pensando en la entidad Lector. Debemos pensar lo mismo
pero observando la accin o relacin desde el punto de vista del Libro. Repitamos el
proceso entonces, yendo desde Libro a Lector, es decir, considerando la misma relacin
Lee ahora como la accin fue ledo por. Tomemos entonces un libro hipottico, y
tratemos de pensar cuntos lectores puede haber tenido. Rpidamente nos damos cuenta
que un libro pudo haber sido ledo por ms de un lector, como sucede con los best seller,
por ejemplo. Encontramos que es una cardinalidad similar al caso anterior. Entonces,dado
que UN LIBRO puede ser leido por UNO O MS LECTORES, decimos que la cardinalidad
enlarelacinLeeesdeltipoMuchos,conrespectodelaentidadLector.
Estacardinalidad,definidacomoMuchos,serepresentagrficamentecomounaN.

Figura 16.VolvemossobreelmismoejemploanteriorentreLectoryLibro, conlasrelaciones


Recomienda,Leeycomenta.Colocamos,paracadarelacinlacardinalidad.

Como en ambos extremos de la relacin tenemos N (o muchos), podemos decir que la


cardinalidaddelarelacinLeeesdemuchosamuchos,oN:N

Pag.1559

Figura 17. Vemos un ejemplo con objetos de la entidad Lector y la entidad Libro, tomando
solo la relacin Lee.Podemosver,queJuan,leydoslibros,por lotanto lacardinalidad de
lee en Libro va a sermuchos(msdeuno).Luego,vemosque ellibro 100 Aos de soledad
fue leido por dos lectores, Juan y Ana. Entonces, la cardinalidad ser muchos del lado de
lectorparalarelacinLee.

Otro caso de cardinalidadpuededarsedondeunodeloselementostomadosdeunaentidad


se corresponde con un nico objeto de la segunda entidad. Esto es conocido como
cardinalidadUno.
Por ejemplo, si tenemos las entidades Localidad y Provincia, con la relacin entre ellas
Pertenece,podemosdefinirlacardinalidaddelarelacinsiguiendoestospasos:

Tomamos una localidad hipottica y transitamos la relacin hacia provincia.


Descubrimos queesta relacionada con tan solo una provincia, ya que una localidad
est geogrficamente ubicada dentro de una provincia. Decimos entonces que la
cardinalidaddelarelacinPertenece,delladodeProvinciaesUno.

Figura 18. Aqu vemos una relacin entre localidad y provincia, indicando que para cada
localidadslopuedeexistirunaprovincia.

Pag.1659

Figura 19. Aqu vemos un ejemplo de elementos de las entidades Localidad y Provincia.
Como eslgico, una localidad slo puede pertenecer a una provincia, ya queestdentro
deella.

Luego, para determinar la segunda parte de la cardinalidad, evaluemos desde la


entidad Provincia.Dadaunaprovinciahipottica,cuntaslocalidadespertenecena
ella. Nos encontramosquehayunaLocalidadomsdentrodedichaProvincia,porlo
quelacardinalidaddelladodelocalidadesMuchos.

Figura 20. Aqu vemos las entidades Localidad y Provincia, con la relacin pertenece y su
cardinalidadNdelladodelocalidad.

.
Figura21.Seobservaquecadaprovinciacontieneunaomslocalidades.

Finalmente,podemosverlarelacinconlacardinalidadtotalmentedefinida.

Pag.1759

Figura 22. Vemos la relacin Pertenece con la cardinalidad totalmente definida,es decir,en
todossusextremos.

Este tipo de cardinalidad, donde en un extremo de la relacin tenemos definido como


muchos y el otro extremo como uno, se define la cardinalidad como uno a muchos o
muchosauno,o1:N.
Puede existir, adems, el casodonde un elemento de una entidad se relacione con unsolo
objeto de la segunda entidad y viceversa. Por ejemplo, dada a entidad Alumno y la entidad
Persona,sedefinelarelacinentreellasEsuna.

Figura23.GraficamoslaentidadAlumnoylaentidadPersona,conlarelacinEsUna.

Veamos la cardinalidaddeestarelacin.SitomamosunalumnoA,secorrespondeslocon
una persona P, ya que un alumno slo puede ser una misma persona y nunca dos o ms.
Entonces lacardinalidaddelarelacindelladodePersona,esUno.Ahora,sitomamosuna
persona, siempre ser uno y slo un alumno, por lo que la cardinalidad del extremo de
AlumnotambinserUno.

Figura24.VemoslasentidadesAlumnoyPersonaylarelacinEsUnafinalizada.

Opcionalidad
Se habla de opcionalidad en una relacin cuando alguno de los elementos intervinientes
puedeestarrelacionadoconningunooms,oceroomselementosdelasegundaentidad.
Esto se grfica haciendo un crculo sobre la lnea queconectalarelacinconlaentidada la
cualqueremosreferirlaopcionalidad.

Pag.1859

Figura 25. Podemos observar unarelacin,quetiene marcadaen uno desus conectoresun


crculoqueidentificalaopcionalidadenlarelacin.

Algunosejemplosquesepuedenencontrar,son

Figura 26. Tenemos en esta imgen 4 entidades, Oficina, Empleado, Pc y Secretaria.Entre


OficinayEmpleado,larelacinOcupadaporque,alestarmarcadacon opcionalidad,indica
que la oficina puede estar vacia, sinempleadosque laocupen. Mientras que elotro extremo
de la misma relacin, nos indica que todos los empleados estn ocupando una oficina.
Luego, Entre Empleado y Pc, tenemos la relacin Asignado A, que nos indica que una Pc
siempre esta asignada a un empleado, mientras que no todos los empleados tienen
asignadaunapc.
Por ltimo, Entre Secretaria y Empleado, tenemos la relacin Trabaja Para, que tiene
marcadalaopcionalidadenambosextremos.Estonosindicaqueun elementodela entidad
Secretariapuedeestaronoasignadaaunempleadoyviceversa.

GradodeunaRelacin
Las relacionestambinestndefinidassegn lacantidaddeentidadesqueintervienenensu
definicin. Hasta ahora, todos los ejemplos que hemos visto, fueron elaborados en base al
casomscomn,dondeunarelacinestasociadaadosentidades.
Dado que el grado queda determinado segn la cantidad de entidades que la relacin
conecta, las vistas hastaelmomento,dondelarelacinconectadosentidadesdiferentesse
lasconocecomoBinariasogradodos.
Luego tenemos las Unarias o de grado uno, donde la relacin conecta dos veces a la
Pag.1959

misma entidad. Pensemos en la entidad Empleado y la relacin Es jefe de. Esta relacin,
necesariamente tiene que tener ambosextremosconectadosalaentidadEmpleado,yaque
unempleadopuedeserjefedeotrosempleados.
Por ltimo, tenemos las relaciones de grado tres o Ternarias, trmino utilizado para
referirsealasrelacionesqueconectanatresentidades.
Por motivos de simplicidad, este modelo no permite un grado mayor que tres para sus
relaciones. Ya veremos qu hacer en caso de necesitar ungrado mayorparauna relacin
dada.

RelacinUnaria
Como dijimos anteriormente, las relaciones unarias son aquellas que relacionan a una
mismaentidad,pudiendoserdeUnoaUno,UnoaMuchosodeMuchosaMuchos.
Para identificarlas, debemos contemplar en ladefinicindelmodelosiexisteunaaccinque
segenereenunaentidadyseapliquesobrelamisma.Casosejemplosdeestopuedenser:
Dadala entidadPersona,larelacinEspadre de,partedelaentidadpersonapara
aplicaroterminarenlamismaentidad.

Figura 27. Vemos un grupo de elementos de una entidad Persona, y las conexiones entre
losprogenitoresysushijos.

Si tenemos una entidad Auto y una relacin Fabricado a la par de, la cual indica
qu auto fue fabricadoenelmismomomentoqueotros,tambintenemosnecesidad
de utilizar una relacinunaria, ya que debemos conectarobjetos deunaentidadcon
otrosobjetosdelamismaentidad.

Pag.2059

Figura 28. Tenemos varias ocurrencias delaentidadAuto,yvemoscualesfueronrealizadas


almismotiempo.

La forma de graficar estasrelaciones,siguesiendounromboconectandosusextremosala


mismaentidad.

Figura 29. Muestra de una Relacin Unaria. Vemos como los extremosdelromboconectan
lamismaentidad.

RelacinBinaria
Paralasbinariasnodebemosagregarmsde loantesdicho,sedebegraficarconunrombo
yluegoconectarcondoslineashorizontalesadosentidades.

Figura30.Ejemplobsicodeunarelacinbinaria.

RelacinTernaria
Las relaciones ternarias se grafican con un tringulo en lugarde un rombo, y se conecta a
lastresentidadesqueintervienenenlarelacin.

Pag.2159

Figura 31. Podemos ver cmo la forma de la relacin cambia de un rombo a un tringulo y
lastrespuntasseconectanconlasentidades.

Para sabersitenemosnecesidaddeunarelacinternariadebemosplantearnoslosiguiente:
La accin necesita deuno omsobjetosdedos entidadespararealizarlaaccinsobreuna
tercera.
Veamos esto en un ejemplo: supongamos que deseamos saber, para una persona dada,
qu celular posee en cada compaa. Planteando el problema con relaciones binarias
tendramosalgocomoesto:

Figura 32. Tenemos tres entidades, Persona, Celular y Compaa. La primera, relacionada
con CelularatravsdelaRelacinTieneyconCompaaatravsde larelacinContrata.
LuegoCelularyCompaaseconectanconlarelacinOperacon.

Mediante este modelo, podramos responder solamente:culessonloscelularesquetienen


las personas, en qu compaa estn asociadosloscelularesyfinalmentecualespersonas
pagansusfacturasenlascompaasquelesfacturan.
No podramos responder nunca, la pregunta ms importante, las personas pagan un
determinadomontoporlafacturadeuncelularenparticular.
Para resolver esto, tendramos que pensar que necesitamos un elemento de Persona,
llamemoslo P1, un elemento de Celular, llamemos C1, que estn asociados a un elemento
de Compaa E1. Pensemos que esta asociacin, la llamamos Tiene un plan en, para
determinarque,unapersona(P1)conuncelular(C1)tieneunplanXenlacompaaE1.
Deesteanlisissurgelanecesidaddeutilizarunaternaria.

Pag.2259

Figura 33. tenemos aizquierda,ejemplosdeinstanciasparalas entidades Celular,Persona


y Compaa. Luego, a derecha, tres ejemplos que combinan una instancia de celular, con
unainstanciadepersona,paradeterminarenqueempresasetieneelplan.

Figura 34. De esta manera quedara determinada la ternaria, conectando al rectngulo que
laidentifica,conlastresentidades,persona,compaaycelular.

Veamos la cardinalidad. Para definirla correctamente tenemos que siempre tomar dos
elementos de dos entidades y evaluar cuantos le corresponden de la tercera. Ah se puede
definir si es cero, uno o muchosenlatercerentidad.Luegodebemospararnosenotrasdos
de las tres entidades y evaluarla restante. Definir si es cero uno o muchos enlarestantey
repetirelprocesounatercerayltimavez.
Hagamosunejemplopararevisaresto,tomandoelcasoanterior.
Si tomamos una Compaa E1y una Persona P1, podemos decir que la persona P1 en la
compaa E1 puede tener cero , uno o ms Celulares, por lo que la cardinalidad en Celular
esmuchos(N).

Pag.2359

Figura35.VemoslacardinalidaddelarelacinContrataparalaentidadCelular.

Luego, tomamos otro par. de Persona P1, y de Celular C1, y veamos cuantas ocurrencias
pueden tener en Compaa. Para lo cual nos debemos preguntar, la persona P1 con el
celular C1, puede estar asociada aninguna,unaomuchascompaas?Paraestecaso,la
respuestaesqueestaasociadaaningunaoauna.
PorendelacardinalidaddelarelacinenCompaaesuno.

Figura36.SeagreglacardinalidadparaCompaaenlarelacinContrata.

Finalmente, nos queda definir la cardinalidad de la relacinparala entidad Persona. Por lo


cual, tomamos las entidades opuestas y verificamos. Para lo cual, tomamos una instancia
de Compaa E1 msunainstancia deCelularC1ynospreguntamos,paralacompaaE1
y el Celular C1, cuantas personas tienen asociadas? la respuesta para este caso es una,
ya que dos personas no pueden compartir la propiedad de un celular (al menos en nuestro
pas).
Entonces la cardinalidad es uno, ya que para cada par de celular y compaa, tengo una
solapersona.
FinalmentevemosquelacardinalidadesdeMuchosaunoyuno,osintcticamente,N:1:1

Pag.2459

Figura37.Tenemoslacardinalidadcompletamentedefinida.N:1:1

Rpidamenteevaluemoslaopcionalidadenestarelacin.
Comoentodosloscasosesceroouno,oceroomuchos,esopcionalentodosloscasos.
Por lo que nos queda marcado en todos las lneas dela relacinelcrculoquenosindicala
opcionalidad.

Figura38.Tenemosmarcadoadems,laopcionalidadenlarelacin.

Atributosenlasrelaciones
Muchas veces, sucede que de la accin entre dos objetos sedesprenden datos que para
nuestro diseo pueden ser pertinentes. Por talmotivo,deberamospodertenerlosencuenta
de forma visible, es decir, graficarlos. Si estos datos son inherentes a la relacin,deberan
asociarse a ella, ya que existen cuando las instancias de las entidades que intervienen o
participanenlarelacin.
Porejemplo,siestamosconsiderandolasentidadesPerroyGatoylarelacinMordia

Figura39.EntidadPerrorelacionadaconlaentidadGato,mediantelarelacinMordia.

La informacin que nos da, nos indica cuales perros mordieron a que gatos. pero nos
gustara ahora poder almacenar tambin la fecha en que dichos perros mordieron a estos
Pag.2559

gatos.
Esa fecha, no podra estar en la entidad Perro, dado que no podramos distinguir en que
fechalainstanciadeperromordiaquegato.
Tampoco podra estar en la entidad Gato el atributo de la fecha, ya que no podramos
distinguirqueperromordiaesegatoenesafecha.

Figura 40. Si asignamos la fecha en que el perro muerde al gato en la entidad Perro, no
sabramosenquefechamordiacadagato.

Figura 41. Se la fecha estuviera en la entidad Gato, y dos perros, por ejemplo el 1 y el 2
mordieran al mismo gato, no sabramos si la fecha corresponde a la mordidadelperro1o
del2.

Entonces, debemos agregar un atributo en la RelacinMordia,assabemosqueelperro


PmordialgatoGenlafechaindicadayguardadaeneseatributo.

Pag.2659

Figura 42. En este caso, si asignamos fechas a la accin, mordi a podemos determinar
cuandounperromordiaundeterminadogatoycuandomordiaotro.

Para graficar esto, debemos dibujar un atributo con un ovalo de la misma manera que
dibujamos los atributos de las entidades, pero en lugar de conectarlo con una linea recta
firmeaunaentidad,vamosaconectarloalarelacinalaquepertenece.

Figura43.Vemoscomoelovaloseasociaalrombodelarelacinconunalineafirme.

Paraelejemploanterior,engrficoquedaradelasiguientemanera.

Figura 44. Tenemos la entidad Perro ylaentidadGato.LarelacinMordia conunatributo


fecha.LarelacinesN:N

AtributosClaveenlasrelaciones
Existe un casoparticularparalasrelacionesconatributos,yescuandoqueremosqueelpar
de objetos de las dos entidades participantes de larelacinsediferencienporcada vezque
segeneralaaccinqueimplicadicharelacin.
Por ejemplo, pensemos el caso que un alumno rinda unexamen. Deberamos modelar la
entidad Alumno y la entidad Materia, con los atributos claves DNI y COD_MAT
respectivamente. Unidas las entidades a travs de la relacin Rinde. Podemos, a esta
Pag.2759

relacin, agregarle el atributo Nota. Pero que pasa si el alumno rindi ms de una vez el
examen. Bien, agregamos un atributo Fecha. Como los identificadores son DNI y
COD_MAT, entonces no podemostenerparaelmismopar deDNI+COD_MATdosfechas,
yaquelasclavesnosepuedenrepetir.
Para solucionar esto, deberamos tomar un atributo de la relacin Rinde y definirlo como
clave de la relacin. Esto es til para estos casos, donde queremos extender las claves
propuestasporlasentidadesintervinienteshaciendousodeestanuevaclaveparcial.
Si decidiramos tomar el atributo Nota como para agregar a la clave, nosera correcto, ya
que una misma persona, para una misma materia, puede tener lamisma nota dos o ms
veces.
Veamos con el atributo Fecha. Si tomamoscomoclavepara larelacin,DNI+COD_MAT+
FECHA, podemos decir que la persona con DNI 12345678 rindi la materia M1 los das
05/01/2011 y los das 06/03/2011. Ahora si podemos distinguir los momentos en que
ocurrieronlosdosexmenes,guindonosenlapersona,lamateriaylafecha.

Figura 45. Tenemos las Entidades Alumno y Materia. Cadaunacon susatributos. LuegoLa
relacin Rindi. Con sus atributos Fecha y Nota. Para distinguircual esclave, selo subraya
aligualqueenunaentidad.

Entidadesdbiles
Hay veces, que al generar un modelo, nos damos cuenta que ciertas entidades no pueden
definir completamente a sus elementos con su clave y que adems dependen de la
existencia de algunaotraentidadpara poderexistirdentrodeldiseoodiagramaquese esta
realizando.
Es decir, que sin tener la otra entidad a la que est fuertemente ligada, esta entidad no
tendrarazndeser.
Aestasentidades,lasllamaremosentidadesdbiles.
Un ejemplo clsico, es en un diagrama de una biblioteca, la entidad Ejemplar y la entidad
Libro, para almacenar en dicha biblioteca objetos de cada libro que se tiene. Tener
ejemplares y notener libros, sera un despropsito.Alrevs,esdecir, tenerlibrosynotener
ejemplares, seguira sirviendo paranuestromodelo.Porende,enlarelacinesfcildetectar
quelaentidadquedependedelaexistenciadelaotraesEjemplar.
Pensemos adems, que los libros podemos identificarlos con el ISBN (International
Pag.2859

Standard Book Number, en espaol, Nmero Estndar Internacional de Libros) y los


Ejemplares,loscodificamoscomo1,2,3,etc.

Figura 46. Vemos instancias de libro y de Ejemplar. Como vemos,ejemplarno puedetener


alcodigodeejemplarcomoidentificador,porqueserepite.

Entonces tenemos para cada libro, almenosun ejemplar,porloqueelcdigo1deejemplar


serepetiraparacadaunodeloslibrosqueexistanennuestroesquema.
Debemos cara cada ejemplar, distinguir el ejemplar 1 del libro 100 aos de soledad del
ejemplar 1 del libro el pndulo de Foucault tomar el ISBN dedichoslibrosparaterminarde
distinguiralejemplar

Figura 47. Si agrupamos el nmero de ISBN y el codigo de ejemplar, vemos que se forma
entrelosdos,unaclavenica.Pudiendoasdistinguircadaunodelosejemplares.

Como se ve, dentro de la entidad Ejemplar tenemos muchos objetos que comparten el
campo queenprincipioseraclave,esdecirelnmerodeejemplar.Estoescorrecto,yaque
el identificadores el deseado, pero es incompleto, solo se interpreta o se termina dedefinir
sumandounidentificadorforneo.
Comoesteidentificadorformapartedeotraentidad,se debedefiniraEjemplarcomoentidad
dbil,dependientedeLibro.

Pag.2959

La forma de graficar esto, es sobre la entidad dbil hacer un doble rectngulo con lineas
firmes,manteniendoelnombredelaentidaddentrodelosrectngulos.

Figura 48. Entidades Ejemplar y libro. Tenemos doble rectngulo sobre Ejemplar, para
definirlacomodbil.

Veamosotrasgrficasconotrosejemplos.

Figura49.Tenemoscuatroejemplossobreentidadesdebiles. Laprimera,conlas entidades


Tipo deDocumento y Persona. Se define Persona comodbildetipo dedocumento, yaque
para generar el identificador de persona necesitamos el tipo de documento, ya que los
nmerospueden repetirse. Luego, tenemos el caso de lasentidadesFactura eItem,donde
lositemsdecadafacturaexistenporcadafacturagenerada.
El tercer ejemplo, es el de recibo de sueldo. Por ende, tenemos las entidades Recibo de
sueldo y Concepto. Donde los conceptos asociados al recibo solo existirn cuando exista
dichorecibo.
Por ltimo, tenemos el caso de las entidades Provincia y Localidad. En este caso, no es
conveniente marcar a Localidad como dbil, ya que es un listado fijo y sin cambios, que
existesinnecesidaddequeexistanlasprovinciasennuestromodelo.

JerarquasoHerencias
Dentro del modelado de entidad relacin, las herencias seutilizan, por ejemplo, cuando se
tiene ideolgicamente dos o ms entidades con unnivel de cohesin en sus atributos muy

Pag.3059

altoyseobservaquesoloalgunosatributosdifierenentredichasentidades.
Es en ese caso donde se debe pensar en una entidad con los atributos comunes y
entidadeshijasosubentidadesparalosatributosdiferentes.
Por ejemplo, pensemos las entidades Auto y mnibus. Cada una con los siguientes
atributos.ParaAuto,nro_patente,nro_motor,cantidaddepuertas,espacio_en_baulycolor.
Mientras que parael mnibus, nro_patente, nro_motor,cantidaddebutacas,bao,televisor
ycolor.
Como se observa, muchos atributos son comunes aambasentidades,porloquepodemos
idear una entidad, que agrupe a estos atributos. Normalmente, se define un nombre para
esta nueva entidad, comn a ambas. Por ejemplo Medio de transporte. Esta entidad,
contendr todos los atributos comunes que eliminaremos de las otras entidades. Luego, a
las entidades Auto ymnibus, yacon menos atributos, se debern conectar con una lnea
firme sin flechas a la nueva entidad,osupraentidad, acomodandolasupraentidad,sobrelas
subentidades.

Figura50.TenemoslasentidadesAutoyOmnibus.Ambasconsusatributos.

Figura51.Tenemoslosatributoscomunes,ylosdesplazamosalanuevaentidad.

Una vezquetenemosdefinidaslasentidades,tantolasupraentidadcomolassubentidades,
tenemos quepensarsilassubentidadessonsolapablesono.Esdecir,silosobjetosquese
instancianencadasubentidad,puedenexistirenmsdeunasubentidad.
En el caso de los Medios de transporte, esto es imposible, ya que algo o es Auto o es

Pag.3159

Omnibus. Generalmente, cuanto creamos una entidad generica, no vamos a contar con
solapamiento. Enelcasoquetengamos,porejemplo, Empleadocomosupraentidad,ycomo
sub entidad Estudiante y Pasante. Podemos encontrar casos enque un empleado cumpla
con ninguna, una o dos condiciones, es decir, no ser ni estudiante ni pasante, o ser solo
estudianteopasante,oserambas.
Para el caso que no tengamos solapamiento, debemos incluir unatributo discriminante. Si
esteatributonoexistedebemoscrearlo.

Figura 52. Conectamos las subentidades a la entidad que agrupa sus atributos comunes.
Agregamosentrelasupraentidadysushijaselatributodiscriminante.

Este tipo de jerarqua le llamamos total, porque cada elemento de la entidad medio de
transportesolopuedeserautouomnibus,nuncaambos.
Veamos un caso de jerarqua parcial, donde las instanciasdeclaradas en la supra entidad
puedecoexistirenunaomsdelassubentidades.

Pag.3259

Figura 53. Tenemos una jerarqua parcial. No definimos atributo discriminante cuando
puedeestarenunaomssubentidadeslainstanciadelasupraentidad.

2.3.1.Ejemplossimples
1.Realiceundiagramasegnlasiguientedefinicin.
Los profesores de la ctedra de Computacin 1 nos encargaron realizar una
base de datos para administrar los alumnos que cursan la materia en el ao
en curso, parade esa manera poder llevar un control de laasistencia, de los
trabajos prcticos entregados (este ao solo habr trabajos prcticos
individuales)ydelasnotasdelosparciales(yrecuperatorios)decadauno.
Primero, debemos realizar un pequeo anlisis. Lo cual nos lleva a identificarlas posibles
entidades. A simple vista, leyendo el enunciado, debemos buscar aquellas posibles
coleccionesdecosasuobjetosoelementos.PodemostomaralosProfesores,lactedrano
porserunasola,losalumnos,elcontroldelaasistencia,lostrabajosprcticosylasnotas.
Como no nos dice como interactan los profesores, ni con los trabajos prcticos nicon la
correccin,lospodremosdescartar.
Refinando un pocoesteanlisis,detectamosque,paraalmacenarlaasistencia,lasnotasde
los parciales y el estado delostrabajosprcticos,debemos considerarunaentidadAlumno.
Para validar la asistencia, deberamos tener una entidad Clase, ya que Asistir es una
accin del alumno con respecto a la clase. Siguiendo estalinea de pensamiento, podemos
tener una entidad Parcial, donde almacenar el parcial en s y luego mediante una relacin
conectar al alumno conel parcial,paradefinirque lorinde ylanotaquetuvoendichoparcial.
Lomismopodemoshacerparalostrabajosprcticos.
Veamoscomonosquedaraeldiagrama.

Pag.3359

2.Realiceeundiagramasegnlasiguientedefinicin.
Se tiene unequipode ftbol, en cual consta deDirectortcnico,jugadoresde
campo, ayudante de campo, preparadores fsicos, arqueros. Los jugadores,
pueden alternar laposicin de arquero con ladejugadordecampo.Detodos,
queremossaberlosnombres,apellidos,nacionalidadyfechadenacimiento.
Para los jugadores, queremossaber que posicin ocupa en la cancha, y que
nmero de camisetatiene. Paraelcuerpotcnico,esdecir eldirectortcnico,
el ayudante de campo y los preparadores fsicos, se desea almacenar, el
sueldoylafechadeingresoalclub.
Primero, debemos detectar las posibles entidades. Vemos que hay diferentes roles o
puestos dentro del club, que se pueden agrupar en dos grupos. Los jugadores y los
tcnicos. Ambos comparten cierta cantidad deatributosyluego tienenatributosdiferentes.
Adems, presuponemos que un jugador no ser al mismo tiempo tcnico y viceversa.
Podemos, a la hora de hacer nuestro DER, la misma agrupacin, poniendo los datos
comunes en una entidad y los no comunes en otras. Para esto, debemos hacer una
jerarqua. Comounapersonanopuedeserjugadorytcnicoalavez,nosersolapada,sino
TOTAL.

Pag.3459

2.3.2.Ejemplocomplejo
Se desea confeccionar un nuevo sistema para poder almacenarlasllamadasquerecibeel
Call Center de la empresa Compre YA S.A.. Los llamados pueden corresponderse con
compras de productos o bien reclamos que se realicen de los mismos. Cadallamadaser
registrada con una identificacin que corresponder conC R+ NroUnvoco (por ejemplo,
C101 corresponde aunacompra101yR102correspondeconunreclamo102).Adems,la
llamada registra elnmerodetelfonodelcualprovinola llamada,lafechayhoradellamado
y nmero de lnea interna por la ingres el llamado. Otro de los datos a registrar, es la
persona que ha realizado el llamado a la cual llamaremos Contacto. Todo contacto debe
identificarse a travs del tipo y nmero de documento y adems, deberemos registrar su
nombre,apellido,fechadenacimientoydatosdomiciliariosparapoderenviarelpedido.
Tanto las compras como los reclamos se registraran con una codificacin unvoca para
poderidentificarlosanteunsiguientellamado.
Para el caso de los reclamos, se deber registrar cada uno de los comentariosquerealice
el contacto en forma explcita. Si una persona vuelve a llamar para ver el avance de su
reclamo, deber indicarnos el nmero de reclamo y podremos verificar su estado (R:
resuelto, E: en evolucin, S: sin analizar). Si lo desea, el contacto podr adjuntarnos un
nuevo comentario de ese reclamo en cada una delasllamadas.Todallamada,debeindicar
elcomentarioqueharealizadosobreundeterminadoreclamo.
Para el caso de las compras,deber indicar la fecha de realizacin de lacompra,elmedio
de pago y si es necesario, persona autorizada para recibir el pedido. Si la compra se
concreta se generar la factura indicando todoslosproductosquehayacomprado.Sedebe
tener en cuenta quelasfacturasdebenposeerunnmerounvoco,fechadecompraydatos
que identifiquen a lapersonaquelocompr.Notodaslascompraspudieronhabergenerado
lafactura,yaquealderivarsealsectordecompras,analizarnyautorizarnlacompra.
Las llamadas son atendidas por operadores, los cuales poseen una identificacin O + Nro.
de los mismos se poseenlosdatosdefechade ingresoalaempresa,nombre,apellido,tipo
y nmero de documento. Existen operadores Junior y Senior. Cualquier operador podr

Pag.3559

atender una llamada, pero slo a los operadores Senior se le podrn derivar los reclamos
para que luego realicen el seguimiento. De los operadores Junior queremos saber la
antigedad en la empresa. Existen operadores coordinadores, loscuales poseen un grupo
deoperadoresasucargo.

Pag.3659

2.4.ModeloRelacional(MR)
Una vez que tenemos trazado nuestro anlisis, debemos proceder a transformarlo en un
Modelo Relacional, modelo que interpreta un sistema gestor de bases de datos para
implementar el diagramaquerealizamos,generandounabasededatosquerespetenuestro
modeloinicial.
Existen hoy en da muchas herramientas que, adems de permitirnos graficar el Diagrama
Entidad Relacin, nossirvenpara generar de forma automtica elModeloRelacional.Estas
herramientas se llamanHerramientas CASE (por Computer Aided SoftwareEngineering,
oIngenieradeSoftwareAsistidaporComputadora).
Como podemos vislumbrar, si esta conversin la puede realizarunprograma,esporquees
en base aun procedimiento ya establecido y pensado. Por ende,iremosdescubriendoeste
pasaje paso a paso, mostrando como se hace este procedimiento y viendo los elementos
delModelorelacional.

ElementosdelModeloRelacional
El modelo relacionalsloconstadeRelacionesyatributos. Locualhacequetodatraduccin
delDERalMRterminecomounarelacinounatributo.
Estemodelotienecomoparticularidadqueesunmodeloescrito,nogrfico.

Relaciones
Una Relacin es un conjunto de instancias del mismo tipo definido en base a los atributos
que la componen. Por ejemplo, son relaciones del MR Persona, Gato,Empleado, Oficina,
etc.DeformasimilaraloqueocurraconlasentidadesenelmodeloEntidadRelacin.
Sealaremos nuestras relaciones dentro del modelo con el nombre de la relacin, con su
primera letra en mayscula y el resto en minscula. Si el nombre consta de ms de una
palabra, suprimiremos el o los Espacios entre las palabras y los reemplazaremos por
guionesbajos.
Luegodelnombre,encerraremosalosatributosquelacomponenentreparntesis.
Persona(atributos)
Auto(...)
Telefono(...)
Pais(....)
Tiipo_dni(...)

Atributos
Al igual que en las entidades, los atributos son quienesdescribenydiferencialasinstancias
entre las distintasrelaciones.Seescribenaladerechadelarelacin,separadosporcomas.
Normalmente en minsculas. Al igual que los nombres de las relaciones, si tienenmas de
Pag.3759

una palabra, no se pueden utilizar los espacios, por lo que se pueden reemplazar por
guionesbajos.
La forma de distinguir un atributo de otro es su nombre, por lo que no podemos tener dos
atributosconelmismonombre.
Persona(nombre,apellido,color_de_ojos,color_de_pelo)
Auto(color,marca,modelo,cantidad_de_puertas,nro_de_motor)
Telefono(numero,dueo,)
Pais(nombre,continente)

AtributosClaves
Los atributos clave son quienes identifican y diferencian las distintas instancias de la
relacin. Pueden existir ms de un atributo clave por relacin, de la misma manera que
sucedaenlasentidadesdelmodelorelacional.
Cabe aclarar, que tendremosmsdeunatributo clave cuandoparaidentificarunvocamente
unainstanciadelarelacindependemosdedosomsatributos.
Cada valor del atributo clave debe ser nico, sin poder repetirse dentro del conjunto de
instanciasquepertenecenalarelacin.
Es preciso sealar que cuando dos atributos describan univocamente a la instancia de la
relacin,deberelegirseunosobreelotro,segnparaecerdeldiseador.
La forma de diferenciar un atributo clave de uno que no loes,es subrayando con una lnea
firmedebajodelatributoclave.
Empleado(legajo,nombre,apellido,edad,nro_documento)
Departamento(codigo,piso,nombre,lugar)
Projecto(Proj_nro,nombre)
Persona(tipo_doc,nrodoc,nombre,apellido,edad,nacionalidad)
Vemos, queenEmpleado,podrandistinguirsenicamentelasinstanciasdelarelacintanto
por el legajo como por el nmero de documento. Por lo tanto debemos elegir uno sobre el
otro.
Para el caso de persona, se decidi tomar el tipoyelnmerodedocumentoparaidentificar
a una persona de forma nica, ya que con solo el nmero de documento no nos alcanza
paraidentificarla.

Pag.3859

Figura 54. Tenemos un grupo deinstanciasdelaRelacinempleado,e intentamosagregar


instancias nuevas. Vemos que podemos tener valores repetidos en cualquier atributo,
menosenlaclave.Elmodelononospermitiragregarvaloresrepetidosenesosatributos.

Figura 55. Ejemplo de instancias de la entidadpersona, dondevemosunainstancia que no


puedeseragregadaylaexplicacindeporqusisonvalidaslasyaexistentes.

Pag.3959

AtributosForneos
Muchas veces,vamos a querer asociar las relaciones entre s. Para esto, debemoshacer
uso de losatributosforneos.Estoimplicatransportarelatributoclavedeunarelacinaotra
relacin,paraqueestasegundasolotomevaloresqueseencuentrenenlaprimera.
Veamos un ejemplo. Si tenemos la relacin Pas, con el atributonombre.Esteatributoser
claveoidentificadordelarelacin
Pas(nombre)
Luego, tendremos la relacin Televisor, con los atributos nmero de serie (como
identificador),modeloypulgadas.
Televisor(nroSerie,modelo,pulgadas)
Si queremos sealar donde fue armado el televisor, deberamos tener un atributo
armado_en.Dondecolocaramoselpas.
Televisor(nroSerie,modelo,pulgadas,armado_en)

Figura56.VemosejemplosdeobjetosdelasrelacionesTelevisoryPais.

Si queremos que las nicas posibilidades para completar el campo armado en sean
Pag.4059

aquellas que tenemos instanciadas en la relacin Pas,deberamosusarunatributofarneo


que,consoloindicarlo,realizaradicharestriccin.

Figura57.Vemoselementoscorrectosyunoincorrecto.

La forma de discriminar estos atributos forneos de otros, es escribindolos en negrita o


haciendounsubrayadopunteadodebajodelatributo.
Muchas veces, se defineel nombrededichoatributoanteponiendoelnombredela Relacin
de donde proviene y luego el nombre pensado para dicho atributo. Pudiendo as identifica
rpidamenteaquerelacinseestaasociandodichoatributo.
Tomandoloanterior,nosquedara
Pais(nombre)
Televisor(nroSerie,modelo,pulgadas,armado_en)
En caso de que armemos el nombre del atributo farneo en base a la relacin de la que
proviene,podradefinirsedelasiguientemanera
Pais(nombre)
Televisor(nroSerie,modelo,pulgadas,pais_Armado)

AtributosClaveyforneos
Existe la posibilidad de que tengamos en caso que un atributo identificador tambin sea
obtenido de otra relacin y que cumpla con ambas condiciones. Esto pasa cuando no
queremos que nuestras instancias tomen valores repetidos en dicho atributo yqueadems
esevalorexistapreviamenteenotrarelacin.
Porende,estamosdefiniendodosrestriccionesaunsoloatributoogrupodeatributos.
Veamosunejemplodondesecumpleestacondicin,

Pag.4159

Figura 58. Tenemos tres instancias en la relacin Persona. Las dos primerasparticipande
la relacin Alumno y la ltima de la relacin Docente. Vemos que DNI es clave en las tres
entidades,peroenAlumnoyDocenteademsesforneo.

Para visualizarlos a la hora de hacer el MR, hacemos el subrayado habitual para los
atributos claves y podemosocolocarlosademsennegritaotambinagregarunsubrayado
punteado.Lafigura68quedaradelasiguienteformaelMR.
Persona(dni,nombre,apellido,fec_nac)
Docente(dni,cargo,fec_ingr)
Alumno(dni,promedio,sexo)

Reglasdetransformacin.DesdeelDERalMR
Las reglas de transformacin nosguanparamostrarnoscomohacerlaconversinentreun
diagramaERyunmodelorelacional.
Para ver como se realiza esto, veremos todos los elementos del DER y como definirlos
dentrodelmbitorelacional.
Cabe destacar, que al realizar esta transformacin, el contenido no se veralterado en lo
msmnimo,simplementecambiaremoslaformadevisualizarytrabajardichocontenido.

DeEntidadessimplesaRelaciones.
Todas las entidades que tenemos en nuestro modelo ER se transformarn en Relaciones
dentro de nuestro modelo relacional. Tomando el nombre de la entidad como nombre de la
relacin, el atributo clave como clave de la relacin y el resto de atributos de la entidad
tambinsernincluidosdentrodelarelacinresultante.

Pag.4259

Figura 59. Transformamos la Entidad Auto del DER en la relacin Autoen elMR.Tomamos
elnombredelaentidad,suclaveyelrestodeatributos.

DeEntidadesyRelacionesaRelaciones.
Si tenemos por caso dos entidades y entre ellas una relacin y queremos proceder a la
traduccin al modelo relacional, deberemos tener encuentalacardinalidadylaopcionalidad
delarelacinparasabercomoproceder.
VeamoselcasodelasrelacionesBinariasde1:1sinopcionalidad.
Definiremos a ambas Entidades como mandatorias, esdecirqueambasestnenelmismo
niveldeimportanciaylarelacinsepuedeinterpretartomandocualquieradeellas.
Los pasos a tomar para realizar la traduccin son, Tomar los nombres de las Entidades y
crear dos Relaciones con los mismosnombres. Luego crear los atributos clave en ambas
relaciones tomando los atributos clave de las entidades. Por ltimo, debemos crear un
atributo Forneo enunadelasdosRelacionesparasimbolizarlarelacinexistenteentrelas
entidades. Este atributo foraneo, podemos incluirlo en cualquiera de las dos relaciones
resultantes,peronoenambas.Esunauotra.

Pag.4359

Figura 60. Tenemos DosEntidadesyunarelacingua(1:1) enunDER.Podemos traducir a


caso izquierdo, donde colocamos un atributo farneo en Aprendiz,oalcaso derecho,donde
colocamoselatributoForneoenTutor.

En el caso de las relaciones Binarias de 1:1 con opcionalidad en ambos extremos, la


traduccinesequivalentealoantesvisto.

Figura 61. En un DER con una Relacin conambasconexionescomo opcionales,tenemos


lamismasolucinqueenelcasoanterior.

Por ltimo, el caso donde tenemos una relacin Binaria 1:1 con opcionalidad en solo

Pag.4459

unextremo.
Aqu,tenemosunaentidadmandatoriayesaquelladondenosesealalaopcionalidad.
Lo cual hace que tengamos que definir el atributo farneo en la relacin resultante del MR
quetieneasociadalaopcionalidad.

Figura62.Vemoselcasodeunarelacinunariaconopcionalidadenunsoloextremo.

Siguiendo este camino, tomaremos ahora el caso de las relaciones Binarias con
cardinalidad1:N.
Cuando las relaciones son 1:N, no importa si tienen opcionalidad o no. Siempre debemos
tomar el atributo o losatributos clavesde la entidad que estadellado de la cardinalidad1 y
transportarlosalarelacinresultantedelaEntidadquetienelacardinalidadN.

Pag.4559

Figura63.VemosunejemplodedosentidadesyunarelacinN:1ysutransformacinaMR

Figura 64. Tenemos una relacin con opcionalidad a ambos lados.Enviamoslasclavesde


laentidaddelladodeSecretariaaJefe.

AnalizamoselcasodelasrelacionesBinariasconcardinalidadN:N.
Cuando tenemos este tipode relaciones Binarias, debemos crear una nueva relacin en el
MR, con el nombre de la relacin N:N. Esta nueva relacin, contendr como atributos los
atributos claves de las entidades que intervienen en la N:N. Esta nueva relacin, tendr
comoclavelosatributosforneosqueseobtienendelasotrasentidades.

Figura 65. Creado la relacin asignado_a nos permite que un empleado pueda ser

Pag.4659

asignadoaproyectos.

Figura66.Ejemplodeinstanciasdelafigura65.

En el caso en que la Binaria N:N tenga un atributo, ese atributo formar parte de la nueva
relacincreada.

Figura 67. Tenemos una Relacin de un DER con atributo y lo agregamos a la relacin
resultanteenelMR.

Siunodelosatributosdelarelacinfueraclave,tambinserclaveenlanuevarelacin.

Pag.4759

Figura68.VemosalaRelacinExamenenelDERyefectuamoslatraduccinaMR.

Nos enfocaremos ahora en el caso de las relacionesUnarias.Enestecaso,nodebemos


preocuparnos ni por la cardinalidad ni por la opcionalidad. Siempre latraduccin seharde
lamismamanera,salvoenelcasodelasunariasN:N.
La forma de realizar el traspaso de las unarias es generar un nuevo atributo en la relacin
resultante que representela relacin unaria,yquesermarcadocomoforneo,peroque en
realidadreferiralaclavededichaentidad.
Veamos un ejemplo. Si tenemos la entidad Persona con los atributos DNI como clave,
nombre y apellido yla relacin unaria Casado_con. Al traducir al MR, debemos tomarlos
atributos de la entidad Persona, dni, nombre y apellido. Luego, debemos traducir
casado_con. Si mantenemos laideadelasbinarias,es deciragregarunatributoenunade
las relaciones resultantes, aqu deberamos hacer lo mismo. Pero como solo tenemos una
relacin resultante, es ah donde debemos colocar el atributo forneo, que hace referencia,
enlugardeaunaclavedeotrarelacin,alaclavedesumismarelacin.

Figura69.Transformacindeunaentidadconunarelacinunaria.

Lamismatraduccinharemoscuandoseauna1:Ntenganonoopcionalidad.

Pag.4859

NosveremoselcasodelasrelacionesUnariasN:N.
Debemos pensar en base alo que realizamos en lasrelacionesbinarias.Loquehaciamos,
era generar una nuevarelacinenelMR.Luegocompletabamoslosatributosconlasclaves
de las entidades intervinientes. Comosolotenemos una Entidad,tomamoslaclavededicha
entidad, pero recordando que interviene dos veces,porloquedebemostomardosveces
laclavededichaentidad.

Figura70.GeneramoslaRelacinenelMRenbasealarelacindelDER.

Para cuando tenemos atributoscompuestos en nuestra entidad, lostransformamosaMR


comolosatributoscomunes,Eliminandoelconcentrador.

Figura71.DetalledelatransformacindeunatributocompuestoaMR.

Si tenemos un atributo Multivaluado, debemos transformalo primero enunaentidad Debil y


luego transformarlo en MR. Concentremonos en la conversin del atributo multivaluado a
Entidad Dbil. Para lograr esto, debemos crear una entidad dbilcon el nombredelatributo
multivaluado y un solo atributo, que ser clave. Relacionardichaentidaddbilconlaentidad
original.Estanuevarelacinserde1:N.

Pag.4959

Figura72.transformacindeatributomultivaluadoaentidaddbil.

Ahora si,sabiendocomotransformarunatributomultivaluadoenentidaddbil,analicemosel
caso que nos encontremos con una entidad dbil y querramostransformarla almodelo
relacional.
Lo que tenemos que hacer, es partir nuevamente de la base provista por las relaciones
binarias, ya queparaqueexista una entidaddbildebeexistirunarelacinbinaria1:Nquela
relacioneconlaentidadfuerte.
Por lo que tenemos quecrear dos Relaciones en el MR, de la misma forma que hacemos
para una Relacin binaria, y creamos un atributo forneo en la relacin que se genera a
partirdelaentidaddbil.
Hastaahora,todosemantieneigual.
Pero, en unaentidad dbil, dijimos que la clave es incompleta o parcial, ya quedependede
de algo ms para definirse correctamente. Por lo tanto, para que estosecumpla,debemos
definir tambin como clave, al atributo forneo que acabamos deincluir en la relacin que
provienedelaentidaddbil.

Pag.5059

Figura73.TransformandounaentidaddbilaMR

Siguiendo el camino trazado, ya analizamos unariasybinarias.Esahoraelmomentodever


loscasosdeRelacionesTernarias.
Para el caso de las relaciones ternarias, siempre generaremos unarelacinextra,esdecir,
al traducir del DER al MR tendremos como resultado 3 relaciones por las tres entidades y
unarelacinextrapararepresentarlaRelacindelDER.
La cardinalidad de la relacin ternaria ser quien defina como tipificaremos la clave en la
relacinresultante.
Empezemos por la relacin ternaria N:N:N. Tendremos por resultadoparaeste caso,una
relacin extra que tenga losatributos clave de las tres Entidades como forneos. Adems,
para que se cumpla la condicin propuesta por la ternaria, se deben tomar las tres claves
forneascomoclavesprimarias.

Figura74.PasajedeunaternariaN:N:NaMR.

Pag.5159

Figura 75. Como vemos, tomando algunos datos de las relaciones empleado, proyecto y
perfil, armamos las posibles ocurrencias en asignado. donde no se permiten dos filas
identicas,yaquetodoslosatributossonclave.

En el caso de que la ternaria sea 1:N:N, se generar al igual que el caso anterior, una
nueva relacin. Tambin se traern los campos clave de las dems relaciones y se
marcarncomoforneos,yaqueprovienendefuera.
La diferencia est al marcar la clave. Ahora, seleccionaremos para marcar la clave, solo
aquellas claves queprovienen de los extremos N o muchos.Esdecir,queformaremos
laclavecondosdetresatributosforneos.

Figura76.TernariaaMR.Caso1:N:N.

Pag.5259

Figura77.Ejemploconobjetosdelascuatrorelacionesresultantes.

Luego,tenemoselcasodelasternarias1:1:N.
Igual que en los casos anteriores, debemos formar una nueva relacin, con los atributos
clave de las dems relaciones que intervienen en la ternaria. Estos atributos, al igual que
antes,losmarcamoscomoforneosyaquereferencianaatributosdeotrasrelaciones.
Por ltimo, debemos definir la clave. Para lo cual debemos tomar, como en el caso de las
ternarias 1:N:N, dos atributosforneoscomoclavesdenuestranuevarelacin.Estosucede
porqu si tomamos un solo atributo forneo como clave no podremos introducir
correctamentelasinstanciasdeestarelacin.
Para definir cuales dos atributosson los que debemos seleccionar, sedebe proceder dela
forma que sigue. El atributo clave que proviene de la entidad que tiene cardinalidad N debe
ser marcado como clave. Luego, debo seleccionar uno entre los otros dos restantes,
pudiendosercualquieradelosdos.
Unavezelegido,tengolosdosatributosquedebencompletarlaclave.

Figura78.Transformacindeuna1:1:NaMR

Pag.5359

Figura 79. Ejemplo de instancias para las relacionesqueintervienen altraducirunaternaria


1:1:N

El ltimo de los casos es la ternaria 1:1:1. Debemos empezar igual que los casos
anteriores. Crear una relacin por cada entidad. Luego crear una cuarta relacin con los
atributos claves de las dems relaciones. Marcar como forneos dichos atributos y por
ltimo, definir la clave. Vemosqueaqui,notenemosningunaentidadmandatoria.Porloque,
si en las binarias elegamos donde colocar elatributoforneo,aquelegiremoscualessern
clave. Como elmnimodeatributosadefinirparaque secumplalarelacinternariasondos,
debemoselegircualquierpardeatributosparadefinirlaclave.

Figura80.Definimoseltraspasodeunaternaria1:1:1aMR

Pag.5459

Figura 81. Ejemplo con elementos de las relacionesparavisualizarel casopreciso para ver
comoaplicalaclaveenestetipoderelaciones.

Solonosrestaportransformarlasjerarquas.Tantoaquellastotales,comolasparciales.
Veamosprimeroelcasodelasjerarquastotales.
Para traducir este tipo de jerarquas, debemos armar una relacin por cada Entidad. La
relacin que proviene de transformar la supraentidad ser igual a cualquier otra entidad
tranformada anteriormente,perotendragregado,unatributoextraconeldiscriminantedela
jerarqua.
Para las restantes relaciones creadas a partir de las subentidades, se deben definir los
atributos que estn definidos en la subentidad, agregando adems, el atributo clave de la
relacin formadapor la supraentidad. Este nuevo atributo, debe ser marcado comoforneo
ya que proviene de otra relacin, pero tambin como clave, ya que necesitamos que este
valornoserepitadentrodelasinstanciasdelarelacin.

Pag.5559

Figura82.TransformacindeunajerarquatotalaMR

El otro caso dejerarqua, es la parcial, donde los elementos pueden estarsolapadosenlas


diferentessubentidades.
Este caso, el de las jerarquas parciales, se resuelve de manera similarqueel anterior,
solo que, al no existir atributo discriminante, no secolocaenlarelacingeneradaapartirde
lasupraentidad.

Figura83.PasajedeunajerarquaparcialaMR.

Pag.5659

2.4.1.Ejemplossimples
TraduciremoslosejemplossimplesdeDERplanteadosenlasseccionesanteriores(2.3.1).
1.RealizeunModeloRelacionalsegnlasiguientedefinicin.
Los profesores de la ctedra de Computacin 1 nos encargaron realizar una
base de datos para administrar los alumnos que cursan la materia en el ao
en curso, parade esa manera poder llevar un control de laasistencia, de los
trabajos prcticos entregados (este ao solo habr trabajos prcticos
individuales)ydelasnotasdelosparciales(yrecuperatorios)decadauno.

Tp(nro,descrip,fecha_entrega)
Parcial(nro,fecha)
Alumno(legajo,apellido,nombre)
Clase(fecha,contenido)
Entrega(f_entrega,nota,tp_nro,al_legajo)
Rinde(nota,al_legajo,par_nro)
Asiste(al_legajo,cl_fecha)
Pregunta(par_nro,pregnta)

Hastaclase,tenemostraducidaslasentidadesquevemosenelDER.
Entrega,RindeyAsiste,tienencomoforneoslasclavesdelasentidadesalasqueestan
relacionadas,queestanmarcadasconnegrita.
Luego,pregunta,esunarelacinquesecreaapartirdelatributomultivaluado.
2.RealizeunModeloRelacionalsegnlasiguientedefinicin.
Se tiene unequipode futbol, en cual consta deDirectortcnico,jugadoresde
campo, ayudante de campo, preparadores fscios, arqueros. Los jugadores,
pueden alternar laposicin de arquero con ladejugadordecampo.Detodos,
queremossaberlosnombres,apellidos,nacionalidadyfechadenacimiento.
Para los jugadores, queremos saber que posicin ocupa en la cacha,y que
nmero de camisetatiene. Paraelcuerpotcnico,esdecir eldirectortcnico,
el ayudante de campo y los preparadores fsicos, se desea almacenar, el
sueldoylafechadeingresoalclub.

Persona(legajo,nombre,apellido,nacionadliad,f_nacimiento,tipo)
Jugador(legajo,camiseta,posicin)
Tecnico(legajo,sueldo,f_ingreso)

Tenemos en persona, la clave que se enviar a las relaciones generadas a partir de las
subentidades.

Pag.5759

2.4.2.Ejemplocomplejo
TomandoelejemplocomplejodelaseccindeDER,traduciremosdichoresultadoaun
ModeloRelacional.
Contacto(nroDoc,tipoDoc,nomape,calle,nro,cp)
Operador(id,nroDoc,tipoDoc,nomape,f_ingr,
op_coordinador,tipo)
Junior(id)
Senior(id)
Llamada(nro,cont_nroDoc,cont_tipoDoc,operador_id)
Reclamo(nro,estado_cod,senior_id)
Estado(cod,descr)
Comentario(reclamo_nro,item,texto,llamada_nro)
Compra(nro,pers_autorizada,medio_pago,fecha,
llamada_nro,factura_nro)
Factura(nro)
Item_factura(factura_nro,item,cantidad,prod_codigo)
Producto(codigo,descr)

Pag.5859

Pag.5959