ingeniería en sistemas de informaciónmll/modelos/downloads/teoria/2018-modelos... · m. larrea...
TRANSCRIPT
M. Larrea Modelos de Software
Modelado de Datos
“Modeling means the process of organizing knowledge about a given system”
Bernard Zeigler
3
Modelos de Software
M. Larrea Modelos de Software
Modelado de Datos
El modelado de datos constituye un tipo de modelado estructural, debido a que describe la estructura de algo, cómo algo se forma. Dentro de esta descripción vamos a encontrar información sobre los tipos de datos que tendremos, sus atributos, relaciones y (cuando corresponda) sus funciones.
4
Modelos de Software
M. Larrea Modelos de Software
Modelado de Datos
6
Modelos de Software
https://www.lucidchart.com/pages/es/qu%C3%A9-es-un-diagrama-entidad-relaci%C3%B3n
M. Larrea Modelos de Software
Modelado de DatosPara modelar datos, vamos a utilizar el Modelo Entidad Relación
(ER)
7
Modelos de Software
M. Larrea Modelos de Software
Modelado de DatosPara modelar datos, vamos a utilizar el Modelo Entidad-Relación
(ER)
Un diagrama entidad-relación, también conocido como modelo entidad relación o ERD, es un tipo de diagrama que ilustra cómo
las "entidades", como personas, objetos o conceptos, se relacionan entre sí dentro de un sistema
8
Modelos de Software
M. Larrea Modelos de Software
Modelado de DatosPara modelar datos, vamos a utilizar el Modelo Entidad Relación (ER)
9
Modelos de Software
M. Larrea Modelos de Software
Modelado de DatosPara modelar datos, vamos a utilizar el Modelo Entidad Relación (ER)
10
Modelos de Software
El Modelo ER permite modelar los datos relevantes a un sistema de información. Es muy usado en el ámbito de Bases de Datos
M. Larrea Modelos de Software
Modelado de Datos
En este modelo, una entidad es una cosa u objetoLas entidades tienen atributos, que son sus características
Las entidades se relacionan entre si
12
Modelos de Software
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
13
Modelos de Software
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
Cada entidad se representa con un rectángulo, en cuyo interior se ubica el nombre de la entidad.
14
Modelos de Software
Cliente
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
Cada entidad se representa con un rectángulo, en cuyo interior se ubica el nombre de la entidad.
¡Cuidado con los plurales!
15
Modelos de Software
Cliente
Clientes
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
Los atributos de una entidad se dibujan como óvalos (uno por cada atributo) conectados a su respectiva entidad. El nombre del atributo va dentro del óvalo.
16
Modelos de Software
ClienteNombre
DNI Apellido
Fecha Nacimiento
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
Las relaciones entre dos entidades se dibujan como líneas que conectan a las entidades involucradas, con un rombo en el centro. Dentro del rombo va el nombre de la relación.
17
Modelos de Software
Cliente PedidoRealiza
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
Las relaciones entre dos entidades se dibujan como líneas que conectan a las entidades involucradas, con un rombo en el centro. Dentro del rombo va el nombre de la relación.
¿Cuántos pedidos puede hacer un cliente en un negocio? Muchos? Uno? Ninguno?
18
Modelos de Software
Cliente PedidoRealiza
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
Parte de la información asociada a una relación es su cardinalidad. La cardinalidad de una relación indica ¿cuántas instancias de cada entidad están involucradas o podrían estarlo?
En el modelo ER las posibles cardinalidades son:1:1 (Uno a Uno)1:N (Uno a Varios)N:1 (Varios a Uno)N:M (Varios a Varios)(hay flexibilidad para agregar nuevas)
19
Modelos de Software
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
“En el sistema de registro de personas del estado, cada persona posee un certificado de nacimiento. Una persona no puede tener muchos certificados de nacimiento y un certificado de nacimiento pertenece a una única persona. Toda persona tiene que tener un certificado de nacimiento”
20
Modelos de Software
Persona Certificado NacimientoPosee
1:1
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
“En el sistema de registro de personas del estado, cada persona posee un certificado de nacimiento. Una persona no puede tener muchos certificados de nacimiento y un certificado de nacimiento pertenece a una única persona. Toda persona tiene que tener un certificado de nacimiento”
21
Modelos de Software
Persona Certificado NacimientoPosee
11
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
“En el sistema de registro de personas del estado, cada persona posee un certificado de nacimiento. Una persona no puede tener muchos certificados de nacimiento y un certificado de nacimiento pertenece a una única persona. Toda persona tiene que tener un certificado de nacimiento”
22
Modelos de Software
Persona Certificado NacimientoPosee
11
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
“El jugador en GTAV puede llevar tantas armas como desee. El juego no pone límites al respecto”
23
Modelos de Software
Jugador ArmaLleva
1:N
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
“En un colectivo pueden viajar muchas personas”
24
Modelos de Software
Persona ColectivoViaja
N:1
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
“Una persona puede ser dueña de muchas propiedades, y una propiedad puede tener muchos dueños”
25
Modelos de Software
Persona PropiedadDueño
N:M
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
Dentro de las variantes que podemos encontrar en cuanto a cardinalidad, tenemos:La posibilidad de considerar 0.
26
Modelos de Software
Persona PropiedadesFormado por
N:0..M
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
Dentro de las variantes que podemos encontrar en cuanto a cardinalidad, tenemos:La posibilidad de considerar 0.La posibilidad de considerar cotas específicas.
27
Modelos de Software
Equipo Rally PilotoFormado por
1:2
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
Dentro de las variantes que podemos encontrar en cuanto a cardinalidad, tenemos:La posibilidad de considerar 0.La posibilidad de considerar cotas específicas.
28
Modelos de Software
Equipo Futbol JugadoresFormado por
1:11..30
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
Las relaciones pueden tener atributos. En este caso se representan como óvalos conectados al rombo.
30
Modelos de Software
Equipo Futbol JugadoresFormado por
Fecha de Compra
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
Es posible también tener una relación entre más de dos elementos.
31
Modelos de Software
Consulta PacienteAtiende
Médico
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
Si la relación no tiene atributos, y su nombre no es relevante al modelado se puede omitir el rombo.
32
Modelos de Software
Equipo Jugador1 n
M. Larrea Modelos de Software
Modelado de Datos
Dentro del Modelado de Datos aparece el concepto de Clave. Una clave es un subconjunto del conjunto de atributos de una entidad. La clave permite identificar unívocamente a cada entidad. Los valores de una clave no pueden ser todos iguales para dos o más entidades.
33
Modelos de Software
M. Larrea Modelos de Software
Modelado de Datos
Visualmente, un modelo ER se forma con:
Los atributos que forman la clave de una entidad aparecen subrayados.
34
Modelos de Software
Dueño
Nombre
DNI
Modelos de Software
Base de Datos Relacional
En una base de datos relacional se establecen interconexiones (relaciones) entre los datos. Estos últimos se encuentran guardados en tablas, y a través de dichas conexiones se pueden relacionar los datos de diferentes tablas
Modelos de Software
Base de Datos Relacional
Cantante
Nombre
Lady Gaga
Vicentico
Album
Año Nombre
2011 Born This Way
2004 Los Rayos
2009 The Fame Monster
Modelos de Software
Base de Datos Relacional
Cantante
Clave Nombre
1 Lady Gaga
2 Vicentico
Album
Clave Año Nombre
1 2011 Born This Way
2 2004 Los Rayos
3 2009 The Fame Monster
Modelos de Software
Base de Datos Relacional
Cantante
Clave Nombre
1 Lady Gaga
2 Vicentico
Album
Clave Año Nombre
1 2011 Born This Way
2 2004 Los Rayos
3 2009 The Fame Monster
Composición
Cantante Album
1 1
1 3
2 2
M. Larrea Modelos de Software
Modelado de Datos
La agregación permite formar una nueva entidad sobre la base de una relación
43
Modelos de Software
M. Larrea Modelos de Software
Modelado de Clases
Conceptos del Paradigma OO
ClaseUna clase es un módulo y un tipo de dato
48
M. Larrea Modelos de Software
Modelado de Clases
Conceptos del Paradigma OO
ClaseUna clase es un tipo de dato abstracto posiblemente
equipado con una implementación total o parcial
49
M. Larrea Modelos de Software
Modelado de Clases
Conceptos del Paradigma OO
ClaseUna clase está compuesta de tres elementos básicos. Su
nombre, sus atributos y sus operaciones.
50
M. Larrea Modelos de Software
Modelado de Clases
Conceptos del Paradigma OO
OperacionesUna operación tiene un nombre, parámetros de entrada y
una salida.
51
M. Larrea Modelos de Software
Modelado de Clases
Conceptos del Paradigma OO
ObjetoUn objeto es una instancia de una clase. La interfaz de un
objeto es el conjunto de operaciones que provee.
52
M. Larrea Modelos de Software
Modelado de Clases
Conceptos del Paradigma OO
AtributoUn atributo es un dato perteneciente al objeto, definido en la clase. Un atributo tiene un tipo y cada atributo es único
dentro de la clase (por nombre). Los atributos y las operaciones tienen una visibilidad.
53
M. Larrea Modelos de Software
Modelado de Clases
[Nombre] [Nombre] [Nombre]
[Atributos] [Atributos]
[Operaciones]
54
M. Larrea Modelos de Software
Modelado de Clases
Alumno Alumno Alumno
lu: entero lu: entero
f( ) : entero
55
M. Larrea Modelos de Software
Modelado de Clases
Alumno Alumno
-lu: entero -lu: entero
+f( ) : entero
56
M. Larrea Modelos de Software
Modelado de Clases
Alumno
Alumno
Una clase standard
Una clase abstracta
Alumno *
Alumno <<abstract>>
57
M. Larrea Modelos de Software
Modelado de Clases
Diagrama de ClaseAlumno
nombre : Stringapellido : Stringedad: intlu: longint
59
M. Larrea Modelos de Software
Modelado de Clases
Diagrama de ClaseAlumno
+nombre : String-apellido : String#edad: intlu: longint
+ público, - privado, # protegido
60
M. Larrea Modelos de Software
Modelado de Clases
Diagrama de ClaseAlumno
+nombre : String-apellido : String#edad: intlu: longint
¿Qué pasa en Java si no ponemos visibilidad?
61
M. Larrea Modelos de Software
Modelado de Clases
Diagrama de ClaseAlumno
<<algo>> +nombre : String<<algo>> -apellido : String#edad: intlu: longint
62
M. Larrea Modelos de Software
Modelado de Clases
Diagrama de Clase
Alumno
#edad: int
+Alumno( edad: int )#obtenerEdad( ) : int-clonar( ) : Alumnoigual( alu: Alumno ) : Boolean
63
M. Larrea Modelos de Software
Modelado de Clases
Diagrama de Clase
Alumno
#edad: int+Alumno( edad: int )<<consulta>> #obtenerEdad( ) : int-clonar( ) : Alumnoigual( alu: Alumno ) : Boolean
64
M. Larrea Modelos de Software
Modelado de Clases
Diagrama de Clase
Alumno*
#edad: int+Alumno( edad: int )<<consulta>> #obtenerEdad( ) : int-clonar( ) : Alumno*igual( alu: Alumno ) : Boolean
65
M. Larrea Modelos de Software
Modelado de Clases
Diagrama de Clase
Alumno
#edad: int+Alumno( edad: int )<<consulta>> #obtenerEdad( ) : int-clonar( ) : Alumnoigual( alu: Alumno ) : Boolean
66
M. Larrea Modelos de Software
Modelado de Clases
Diagrama de Clase
Alumno <<abstract>>
#edad: int+Alumno( edad: int )<<consulta>> #obtenerEdad( ) : int-clonar( ) : Alumno <<abstract>>igual( alu: Alumno ) : Boolean
67
M. Larrea Modelos de Software
Modelado de Clases
Diagrama de Clase
Alumno
#edad: int#compañero: Alumno
NO ES UML
68
M. Larrea Modelos de Software
Modelado de Clases
Conceptos del Paradigma OO
AsociaciónUna asociación es una relación entre dos o más clases.Herencia, Generalización, Composición, Agregación y
Asociación
69
M. Larrea Modelos de Software
Modelado de Clases
Conceptos del Paradigma OO
Generalización/EspecializaciónAlgunas clases son similares pero no idénticas. Tienen
atributos en común. Aparece la relación “esUn”.
70
M. Larrea Modelos de Software
Modelado de Clases
Conceptos del Paradigma OO
Composición/AgregaciónTanto la composición como la agregación hacen referencia
a una relación en donde una clase está hecha/formada/compuesta por otras.
73
M. Larrea Modelos de Software
Modelado de Clases
Conceptos del Paradigma OO
Composición/AgregaciónSe establece la relación “esParteDe”.
La composición es una relación más fuerte que agregación. La agregación es una relación más fuerte que
asociación.
74
M. Larrea Modelos de Software
Modelado de Clases
Conceptos del Paradigma OO
ComposiciónLa relación de composición indica una dependencia en la
existencia. Si B compone a A, entonces B y A existen juntos y desaparecen juntos. Un B sólo existe como parte
de un A.
75
M. Larrea Modelos de Software
Modelado de Clases
Conceptos del Paradigma OO
AgregaciónLa relación de agregación indica una dependencia en la
existencia pero más flexible. Si B compone a A, entonces B y A existen juntos, pero pueden existir separados. Un B
puede pertenecer a varios A.
77
M. Larrea Modelos de Software
Modelos de Software
Conceptos del Paradigma OO
AsociaciónLa asociación es el vínculo más débil entre dos clases. No
hay dependencia en la existencia de los objetos involucrados.
Si B está asociado a A, entonces B conoce a A.
79
M. Larrea Modelos de Software
Modelos de Software
Conceptos del Paradigma OO
Multiplicidad en las relacionesLa multiplicidad de una relación específica a cuántas instancias puede relacionarse un objeto a través del
vínculo en cuestión.
81