Anda di halaman 1dari 15

UML DATA PROFILE M Jos Reig Tarazona Victoria Torres Bosch Facultad de Informtica - Universidad Politcnica de Valencia Resu en

El desarrollo de una aplicacin de base de datos requiere la existencia de una estrecha relacin entre los desarrolladores de software y el equipo de desarrollo de la base de datos. Para que un proyecto tenga xito ste debe estar marcado por una visin compartida y una comunicacin clara de cada uno de los detalles del proyecto. Los desarrolladores de software utilizan herramientas de desarrollo orientada a ob etos y usan el modelo lgico de clases para representar una visin global de la aplicacin! mientras que el equipo de desarrollo de base de datos dise"an! modelan! construyen y optimizan la base de datos. Las #reas de interfaz y superposicin entre estas dos distintas responsabilidades a menudo representan el aspecto m#s desafiante en el desarrollo de una aplicacin de base de datos. Es por ello que surge la necesidad del uso de un lengua e est#ndar! que permita el mapeo de ob etos a base de datos relacionales! y que ayude a resolver todos estos obst#culos con los que el equipo de traba o se va a ir encontrando a lo largo de la vida del proyecto. Para realizar esta tarea se debe entender ambos paradigmas y sus diferencias y entonces hacer un equilibrio inteligente basado en ese conocimiento. Intro!ucci"n $Por qu aparece la necesidad del mapeo de ob etos a base de datos relacionales% Por una razn! la tecnolog&a orientada a ob etos! tal como 'ava! es el entorno m#s com(n de desarrollo aplicado a los nuevos sistemas de software. )ambin! las bases de datos relacionales son todav&a el modelo preferido para almacenar informacin persistente y es probable que esto siga durante bastante tiempo. Una vez demostrada la necesidad de un lenguaje estndar que permita la comunicacin entre los distintos miembros del equipo de pro ecto llega el momento de describir con detalle el perfil de !odelado de "atos para U!# inclu endo ejemplos para cada uno de los conceptos detallados$ Una vez familiarizados con todos estos conceptos %a que establecer una relacin entre el modelo de la 1
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

aplicacin el de los datos de forma que se resuelva este desafiante aspecto que determinar el 'ito o el fracaso de un pro ecto$

Per#i$ !e Mo!e$a!o !e Datos %ara UML (l poder de U!# no est limitado al desarrollo de soft)are orientado a objetos$ !s ms* U!# est siendo aplicado a otras reas del desarrollo de soft)are* tales como el modelado de datos* mejorando la %abilidad de los profesionales para comunicar sus necesidades contribuciones a el resto del equipo$ #os analistas de datos* primero re+nen los datos de la documentacin de los requerimientos$ #as ,ases de "atos tradicionalmente %an sido descritas en una notacin llamada "iagramas (ntidad -elacin$ &in embargo* al realizar el modelo f.sico de datos se debe e'presar una descripcin detallada de la base de datos$ (sto se %ace usando el "ata !odeling Profile del -ational para U!#$ #as bases de datos orientadas a objetos son soportadas por U!# a travs del modelado de clases persistentes$ (l "ata !odeling Profile para U!# no est todav.a aprobado por /!0$ E$ Data Mo!e$ing Pro#i$e !e UML& (ste documento 123 describe en detalle el "ata !odeling Profile para el U!# implementado por el -ational -ose "ata !odeler* inclu endo descriptores ejemplos para cada concepto* inclu endo bases de datos* esquemas* tablas* claves* .ndices* relaciones* columnas* restricciones disparadores$ Base de Datos. #a ,ase de "atos es el sistema para el almacenaje de datos el acceso controlado a los datos almacenados$ 4sto es el elemento ms grande que una base de datos soporta$ #a base de datos relacional es un estndar soportado por el "ata !odeling U!# Profile$ Una base de datos relacional objeto* una e'tensin de las relacional* es tambin soportada por U!# Profile$ (l estereotipo 55"atabase66 usado como un componente U!#* define una base de datos$ 7omo un componente de base de datos debe tener un nombre$ (n la vista del componente* una base de datos es un elemento tarjeta dependiente * desde el que se %ace referencia al tipo de la base de datos$ 2
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

Un icono puede representar el estereotipo como se muestra a continuacin$

#as tres posibles representaciones de un componente ,ase de "atos son8

#a completa descripcin del modelo de la base de datos* para ser usada para recuperar almacenar datos* es almacenada en un esquema dentro de la base de datos$ (l esquema es la unidad ms grande con la que se puede trabajar$ (l estereotipo 55&c%ema66 en un modelo U!# representa un esquema de base de datos$ (n el navegador un esquema se muestra como un paquete

(n un diagrama la representacin es un paquete con el estereotipo &c%ema$

3
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

9otar que puede ser ms que un esquema asociado a la base de datos$

4
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

Tablas. Una tabla es la estructura de modelado bsica de una base da datos relacional$ -epresenta un conjunto de tuplas de la misma estructura* tambin llamadas filas$ 7ada una de estas tuplas contiene datos$ #a informacin acerca de la estructura de una tabla esta almacenada en la base de datos$ Una clase con el estereotipo 55:able66 representa una tabla relacional en un esquema de una base de datos$ (n el navegador una tabla se representa por una s.mbolo ;tabla<$

#a representacin en un diagrama usa el estereotipo :able estereotipo Icon$

el

Insertando la tabla en el paquete esquema se crea la asociacin de una tabla a un esquema$ Claves. #as claves se usan para acceder a las tablas$ #as claves primarias identifican de manera +nica a una fila de una tabla* mientras que las claves ajenas son un acceso a datos en otras tablas relacionadas$ #as claves se representan como una restriccin como un valor marcado sobre una columna$ #a clave primaria usa una marca P= delante de la columna* como se muestra a continuacin8

5
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

(n un diagrama* las marcas P= representan las claves primarias* la operacin estereotipada P= es la restriccin de la clave primaria$

Una clave ajena representa una columna* la cual es una parte de una relacin con otra tabla$ Una marca F= representa la clave ajena$ (sto genera la restriccin de clave ajena* la cual se representa por un estereotipo F= sobre una operacin$ Indices. Un .ndice es una estructura de datos f.sica que acelera el acceso a los datos$ (sto no cambia la calidad o la cantidad de datos recuperados$ Un .ndice puede incluir m+ltiples columnas o solo una$ (l .ndice no e'iste en la vista lgica$ (l estereotipo Inde' sobre una operacin representa una restriccin para un .ndice$

#a representacin en diagrama usa el estereotipo Inde' delante de la operacin$

6
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

#a restriccin del .ndice especifica la columna incluida opcionalmente la +nica del .ndice$ Relaciones. Una dependencia de cualquier clase entre tablas en un modelo de datos se llama relacin$ Una relacin es un resumen de una asociacin estereotipada un conjunto de claves primarias ajenas$ 7ada relacin es entre una tabla padre otra tabla %ijo* donde una tabla padre debe tener una clave primaria definida$ #a tabla %ijo crea una columna que es la clave ajena una restriccin para indicar la tabla padre$ Una asociacin no identificada representa una relacin entre dos tablas independientes$ #a clave ajena de la tabla %ijo no contiene todas las columnas de claves primarias$

Una relacin identificada es una relacin entre dos tablas dependientes* donde la tabla %ijo no puede e'istir sin la tabla padre$ :odas las claves primarias de la tabla padre se transforman en columnas de claves ajenas primarias en la tabla %ijo$ 7
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

Una relacin tiene dos multiplicidades asociadas a definen la multiplicidad de una tabla asociada a otra$ asignar ms de una relacin entre dos tablas usando multiplicidades7ada relacin creada importa las claves de la tabla tabla %ijo$

ella$ 4stas (s posible diferentes padre a la

Columnas. Una tabla contiene columnas las cuales son atributos marcados$ #as columnas pueden contener datos cuando estn instanciadas como una fila$ Una columna debe tener un tipo de datos definido$ Una columna puede ser o persistente o computada$ #as columnas computadas estn definidas por una e'presin$ #as columnas persistente pueden ser marcadas como claves primarias* columnas anulables columnas +nicas$ Pueden contener un valor por defecto$ #as restricciones pueden ser revisadas para cada columna$ Tipo de Datos. >l soportar bases de datos relacionales requiere el soporte de tipos de datos estndar$ (jemplos de tipos de datos son c%ar* date* float* long* number* nvarc%ar?* ra)* varc%ar?$ Restricciones. Una restriccin es una regla aplicada a la estructura de la base de datos$ (sta regla e'tiende la estructura puede ser aplicada a columnas @o tablas$ :odas las restricciones estn definidas como operaciones estereotipadas$ :odas las restricciones descritas abajo estn implementadas aqu. en una clase$

8
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

Clave Primaria. #a restriccin de clave primaria define la clave primaria como una regla en la tabla$ Clave Ajena. #a restriccin de clava ajena define la clave ajena como una regla en la tabla$ Disparadores. Un disparador es una actividad ejecutada por el ",!& como un efecto de una modificacin de una tabla$ (l estereotipo :rigger sobre una operacin representa el disparo sobre una tabla$

(l disparador se muestra como un estereotipo :rigger sobre la operacin

Un ejemplo de un disparador es la longitud de una insercin en otra tabla en el caso donde el balance es menor que A o ma or que BAA$AAA$ Valor Valido. #a restriccin de valor valido revisa el valor de los datos de acuerdo a una e'presin dada$ (l estereotipo 7%ecC sobre una operacin representa la restriccin de la validacin$ 9
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

Un ejemplo de la restriccin es ,>#>97(6A$

10
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

Unicidad. #a restriccin de unicidad asegura que cada fila contiene un valor diferente en una columna$ (s estereotipo Unique representa la restriccin de uncidad$

#a restriccin de unicidad puede ser aplicada sobre columnas compuestas o simples$ Resumen. 7on el "ata !odeling Profile para U!#* soporta completamente las necesidades del modelado de datos$ >dmite el soporte de desarrollo de soft)are modelado de datos con un lenguaje unificado$ Usando el U!# "ata !odeling Profile* -ational -ose "ata !oduler unifica el equipo de desarrollo de soft)are con una simple %erramienta$ '" o a%ear o()etos a una (ase !e !atos re$aciona

(n esta seccin se describen las tcnicas fundamentales requeridas para mapear de forma e'itosa los objetos a bases de datos relacionales$ !apeo de atributos a columnas Implementacin de la %erencia en una base de datos relacional !apeo de asociaciones* agregaciones composiciones Implementacin de relaciones Ma%eo !e atri(utos a co$u nas #os atributos de una clase pueden mapearse en cero o en una serie de columnas en una base de datos relacional$ (s importante tener presente que no todos los atributos son persistentes* por lo tanto no todos sern almacenados en la base de datos$ >dems* algunos atributos %acen referencia a objetos* lo que quiere decir que se trata de una definicin recursiva8 un atributo puede mapearse tanto en cero como en una serie de columnas$ :ambin es posible que varios atributos se mapeen en una +nica columna de una tabla$ DPor ej$ Una clase representando un cdigo postal D7$P$E puede tener tres atributos numricos* representando cada uno de ellos una seccin del 7$P$ completo$ &in embargo* el 7$P$ debe ser almacenado en una columna en la tabla de direcciones$E

11
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

I %$e entaci"n !e $a herencia en una (ase !e !atos re$aciona$ (l concepto de %erencia sigue diferentes caminos cuando se salvan objetos en una base de datos relacional$ #a cuestin se reduce a entender cmo organizar los atributos %eredados en el modelo persistente$ #a forma en que se resuelve este punto puede tener un impacto importante en el diseFo del sistema$ Ga tres soluciones fundamentales para el mapeo de la %erencia en bases de datos relacionales para entenderlas %a que discutir el equilibrio entre el mapeo del diagrama de clases$ Ma%eo !e c$ases a ta($as ('cepto en bases de datos mu simples* nunca %abr clases que se mapeen directamente en una tabla$ > continuacin se describen tres estrategias para la implementacin de estructuras de %erencia en una base de datos relacional8 Usando una entidad para una estructura completa de clases de %erencia$ Usando una entidad para una clase concreta Usando una entidad por clase$ Usan!o una enti!a! %or una estructura co %$eta !e c$ases !e herencia 7on este enfoque* la estructura completa de %erencia se mapea en una tabla* donde todos los atributos de todas las clases en la jerarqu.a son almacenados$ #a ventaja de este enfoque es que es simple* el polimorfismo est soportado cuando una subclase cambia de rol* es posible acceder de forma ad %oc a toda la informacin que se necesita desde una misma tabla$ #as desventajas son que cada vez que se aFade un nuevo atributo en cualquier nivel de la jerarqu.a dic%o atributo %a que aFadirlo a la tabla$ (sto %ace que aumente la dependencia entre las clases de la jerarqu.a* a que si se comete un error al aFadir un atributo* ste podr.a afectar a todas las clases de la jerarqu.a* adems de las subclases de cualquier clase a la que pertenezca dic%o atributo$ (sto* potencialmente desperdicia una gran cantidad de espacio en la base de datos$ :ambin* %a que aFadir una columna para indicar a qu subclase pertenece cada una de las filas de la tabla$ (ste enfoque funciona bien cuando la jerarqu.a de subclases no es mu amplia* a que en caso contrario esta solucin se %ace inviable$ Usan!o una enti!a! %or ca!a c$ase concreta (n esta solucin cada entidad inclu e tanto los atributos propios de la clase como los %eredados$ 12
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

#a gran ventaja en este caso es que todav.a es bastante fcil realizar consultas ad %oc* debido al %ec%o de que toda la informacin que se necesita sobre una clase dada est almacenada en una +nica tabla$ &in embargo* este enfoque cuenta con varias desventajas$ Una de ellas es que cuando se modifica una clase %a que modificar su tabla la tabla de cada una de sus subclases Dmuc%o trabajo si tenemos en cuenta que la estructura puede ser mu grandeE$ /tra es que cuando un objeto cambia de rol %a que copiar toda la informacin referida al objeto en la tabla apropiada asignarle un nuevo identificador Dmuc%o trabajo de nuevoE$ :ercera* es que es dif.cil mantener m+ltiples roles adems mantener integridad de los datos* por ej$ H"nde almacenar.amos el nombre de un estudiante que a la vez es un profesorI Usan!o una enti!a! %or c$ase 7on este enfoque se crea una tabla por cada clase* con los atributos que %acen referencia a la identificacin del objeto los atributos espec.ficos de cada clase$ #a principal ventaja de esta solucin es que es la ms cercana al concepto de orientacin a objetos$ &oporta polimorfismo a que es posible mantener filas en las apropiadas tablas para cada uno de los roles que un objeto puede tener$ >dems es mu fcil modificar superclases aFadir nuevas subclases porque lo +nico que %a que %acer es aFadir o modificar una tabla$ >unque como veremos a%ora* tambin cuenta con varias desventajas$ (n primer lugar %a demasiadas tablas en la base de datos Duna por cada clase* adems de aquellas que nos permitirn mantener las relaciones entre tablasE$ (n segundo lugar* se tarda muc%o en leer escribir informacin usando esta tcnica a que se deber acceder a m+ltiples tablas$ (ste problema se puede rebajar si se organiza la base de datos de forma inteligente* poniendo cada tabla dentro de una jerarqu.a de clases en diferentes soportes f.sicos$ :ercero +ltimo es que la recuperacin de datos ad %oc es dif.cil* a menos que se aFadan vistas que simulen las tablas requeridas$ 'o %araci"n !e estrategias Factores a Una ta($a consi!erar %or )erar*u+a >d %oc &imple Fcil implementacin &imple Fcil acceso a los &imple Una ta($a Una ta($a %or c$ase %or concreta c$a se !edio !edio@"ificil !edio "if.cil &imple !edio@&impl 13
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

datos e "ependencia entre !u alto >lto bajo clases Velocidad de acceso a -pido -pido !edio@-pid los datos o &oporta polimorfismo !edio ,ajo >lto Ma%eo !e asociaciones, agregaciones - co %osiciones 9o solo %a que mapear los objetos en la base de datos* tambin %a que mapear las relaciones el las cuales los objetos estn involucrados$ ('isten cuatro tipos de relaciones en las cuales un objeto puede estar involucrado8 %erencia* asociacin* agregacin composicin$ Para mapear estas relaciones de forma correcta %a que entender las diferencias entre ellas* cmo implementar relaciones de forma general cmo implementar relaciones muc%os a muc%os en particular$ Di#erencias entre asociaci"n, agregaci"n - co %osici"n "esde la perspectiva de las bases de datos* la +nica diferencia entre una asociacin una agregacin o composicin es cmo de fuerte es dic%a relacin entre los objetos$ (n una agregacin una composicin cada cosa que se %aga a la totalidad de la base de datos* casi siempre conlleva a una modificacin de cada una de las partes* sin embargo no ocurre esto en la asociacin$ "esde el punto de vista de la base de datos* una agregacin o composicin una asociacin son diferentes en el %ec%o de que con la agregacin normalmente se quiere leer en la parte cuando se lee en el total* sin embargo* con una asociacin no es siempre tan obvio lo que se necesita %acer$ #o mismo ocurre a la %ora de salvar borrar objetos en la base de datos$ I %$e entaci"n !e re$aciones en (ases !e !atos re$aciona$es #as relaciones en bases de datos relacionales estn mantenidas a travs de claves ajenas$ Una clave ajena es uno o ms atributos que aparecen en una tabla en la cual deben formar parte de ella* o es coincidente con la clave de otra tabla$ #as claves ajenas permiten relacionar una tabla con una fila de otra tabla$ Para implementar relaciones uno a muc%os uno a uno %a que incluir la clave de una de las tablas en la otra tabla$ I %$e entaci"n !e uchos a uchos Para implementar relaciones muc%os a muc%os se necesita el concepto de tabla asociativa* una entidad cu o propsito es mantener la asociacin entre dos o ms tablas en una base relacional$ (n bases de datos relacionales los atributos contenidos en una tabla asociativa son tradicionalmente una combinacin de las claves 14
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

involucradas en la relacin$ (l nombre de una tabla asociativa es normalmente la combinacin de los nombre de las tablas que se estn asociando o el nombre de la asociacin que implementa$ 'onc$usiones #a potencia de U!# no est limitada al desarrollo de soft)are orientado a objetos$ 7ada vez ms* U!# se est aplicando a otras reas de desarrollo de soft)are como el modelado de datos* mejorando la %abilidad de los miembros del equipo de comunicar sus necesidades el poder ser valoradas por el resto del equipo$ Re#erencias 1B3 !apping objects to relational databases 1?3 !apping /bject to "ata !odels )it% t%e U!# 1?3 :o)ards a U!# Profile for a -elational Persistence !odel 123 J%ite Paper8 :%e U!# "ata !odeling Profile$ 1K3 :%e Unified !odeling #anguage$ 7olumn from *agnus Pen+er President of ,stra+an -trategic )raining ,.! -weden

15
#aboratorio de &istemas de Informacin Facultad de Informtica Universidad Politcnica de Valencia

Anda mungkin juga menyukai