Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Ejercicios-Modelado/ej1.puml
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
186 lines (152 sloc)
4.26 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
' Ejercicio 1: | |
'-------------------------------------- | |
@startuml | |
title Ejercicio 1 - Hobbies - Apartado a) \n Modelo Conceptual | |
!include estilos/draft.iuml | |
'enumerados-------------------------------- | |
enum Sexo <<Enumerado>>{ | |
Hombre | |
Mujer | |
Otro | |
} | |
enum Hobbies <<Enumerado>>{ | |
Literatura | |
Cine | |
Deporte | |
Gastronomía | |
} | |
'Entidades--------------------------------- | |
class Persona{ | |
nif | |
nombre | |
sexo | |
} | |
class Afición{ | |
hobby | |
} | |
'Asociaciones ----------------------------- | |
Persona *-- "*" Afición : leGusta | |
@enduml | |
@startuml | |
title Ejercicio 1 - Hobbies - Apartado a) \nDiagrama de Objetos | |
!include estilos/draft.iuml | |
'Diagrama de objetos ---------------------- | |
object "ana: Persona" as ana{ | |
nif = "256548741D" | |
nombre "Ana López" | |
sexo = Sexo.Mujer | |
} | |
object "pedro: Persona" as pedro{ | |
nif = "47852369S" | |
nombre "Pedro Sánchez" | |
sexo = Sexo.Hombre | |
} | |
object "juan: Persona" as juan{ | |
nif = "96258741Z" | |
nombre "Juan Miedo" | |
sexo = Sexo.Hombre | |
} | |
object "cine: Afición" as cine{ | |
hobby = Hobbies.Cine | |
} | |
object "literatura: Afición" as literatura{ | |
hobby = Hobbies.Literatura | |
} | |
object "deporte: Afición" as deporte{ | |
hobby = Hobbies.Deporte | |
} | |
object "gastronomia: Afición" as gastronomia{ | |
hobby = Hobbies.Gastronomia | |
} | |
ana *-- cine : __leGusta__ | |
ana *-- gastronomia : __leGusta__ | |
pedro *-- gastronomia : __leGusta__ | |
juan *-- deporte : __leGusta__ | |
@enduml | |
@startuml | |
!include estilos/tables.iuml | |
title Hobbies V1 - Extensión Relacional\nLista predefinida\n\nPersonas(personaId,nif,nombre,sexo) PK(personaId) AK(nombre) \nAficiones(aficionId,hobby,personaId) PK(personaId) FK(personaId)/Personas | |
table( Personas ) { | |
primary_key( personaId ): INTEGER AUTO_INCREMENT <<PK>> | |
column( nif ): VARCHAR UNIQUE <<AK>> | |
column( sexo ): ENUM ( 'Hombre', 'Mujer', 'Otros') | |
column( nombre ): VARCHAR | |
} | |
table( Aficiones ) { | |
primary_key( aficionId ): INTEGER AUTO_INCREMENT <<PK>> | |
column( hobby ): ENUM ( 'Literatura','Cine','Deporte', 'Gastronomía') | |
foreign_key(personaId):INTEGER NN <<FK>> | |
} | |
Personas <-- Aficiones : <<FK(personaId)>>\nON DELETE RESTRICT | |
@enduml | |
@startuml | |
title Ejercicio 1- Hobbies - Apartado b)\n Modelo Conceptual y Diagrama de Objetos | |
!include estilos/draft.iuml | |
'enumerados ------------------------------- | |
enum Sexo <<Enumerado>>{ | |
Hombre | |
Mujer | |
Otro | |
} | |
'Entidades--------------------------------- | |
class Persona{ | |
nif | |
nombre | |
sexo | |
} | |
class Hobby{ | |
nombre | |
} | |
'Asociaciones | |
Persona "*" -- "*" Hobby : leGusta | |
'Diagrama de objetos | |
object "ana: Persona" as ana{ | |
nif = "256548741D" | |
nombre "Ana López" | |
sexo = Sexo.Mujer | |
} | |
object "pedro: Persona" as pedro{ | |
nif = "47852369S" | |
nombre "Pdro Sánchez" | |
sexo = Sexo.Hombre | |
} | |
object "juan: Persona" as juan{ | |
nif = "96258741Z" | |
nombre "Juan Miedo" | |
sexo = Sexo.Hombre | |
} | |
object "cine: Hobby" as cine{ | |
nombre = "Cine" | |
} | |
object "gastronomia: Hobby" as gastronomia{ | |
nombre = "Gastronomia" | |
} | |
object "deporte: Hobby" as deporte{ | |
nombre = "Hacer deporte" | |
} | |
ana -- cine : __leGusta__ | |
ana -- gastronomia : __leGusta__ | |
pedro -- gastronomia : __leGusta__ | |
juan -- deporte : __leGusta__ | |
@enduml | |
@startuml | |
!include estilos/tables.iuml | |
title Hobbies V2 - Extensión Relacional\nLista Dinámica\n\nPersonas(personaId,nif,nombre,sexo) PK(personaId) AK(nombre) \nHobbies(hobbyId,hobby) PK(hobbyId) \nleGustan(legustanId,personaId,hobbyId) PK(leGustanId) AK(personaId,hobbyId) FK1(hobbyId)/Hobbies FK2(personaId)/Personas | |
table( Personas ) { | |
primary_key( personaId ): INTEGER AUTO_INCREMENT <<PK>> | |
column( nif ): VARCHAR UNIQUE <<AK>> | |
column( sexo ): ENUM ( 'Hombre', 'Mujer', 'Otros') | |
column( nombre ): VARCHAR | |
} | |
table( Hobbies ) { | |
primary_key( hobbyId ): INTEGER AUTO_INCREMENT <<PK>> | |
column( hobby ): VARCHAR UNIQUE <<AK>> | |
} | |
table( leGustan ) { | |
primary_key( leGustanId ): INTEGER AUTO_INCREMENT <<PK>> | |
foreign_key( hobbyId ): INTEGER NN <<AK>> <<FK1>> | |
foreign_key(personaId):INTEGER NN <<AK>> <<FK2>> | |
} | |
Personas <-- leGustan : <<FK2(personaId)>>\nON DELETE RESTRICT | |
Hobbies <-- leGustan : <<FK1(hobbyId)>>\nON DELETE RESTRICT | |
@enduml |