SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Sistemas de Información II
Tema 4. El modelo
entidad-relación
(continuación)
Bibliografía:
Elmasri y Navathe: “Fundamentos de Sistemas de Bases de
  Datos”
      3ª edición, 2002 (Capítulo 4).
Garcia-Molina, Ullman y Widom: “Database systems: the
  complete book”. Prentice-Hall (Capítulo 2).

                       Carlos Castillo
                         UPF – 2007

                                                          1
Subclases




            2
¿Cómo surgen?
Ejemplo 1:
 Avión (superficie alar, peso, envergadura)
 Avión_de_carga ( ... + carga máxima)
 Avión_de_pasajeros ( ... + número
 pasajeros)
Ejemplo 2:
 Persona (dni, nombre, apellido)
 Propietario ( ... + relación con sus
 propiedades)
 Arrendatario ( ... + relación con lo que
 arrienda)                                    3
Se usan subclases cuando detectamos
   una entidad que tiene un grupo de
 instancias con ciertas particularidades




                                           4
Notación
                                 Usaremos esta
                                 notación simple
          Superclase             en esta asignatura,
                                 más una letra
                                 para el tipo de
                                 sub-clase.

                                 Esta notación
                                 simplificada no es
                                 estándar, es para
                                 fines pedagógicos.

Clase 1                Clase 2   En la siguiente
                                 asignatura aprenderán
                                 UML.

                                                  5
Especialización
= proceso para definir subclases

                  Clase base




Subclase 1   Subclase 2   Subclase 3   Subclase 4


                                                    6
Especialización:
1. atributos específicos

           Clase base




  Subclase 1       Subclase 2


                                7
Especialización:
2. relaciones específicas

            Clase base




   Subclase 1       Subclase 2



                                 8
No especializar demasiado
Está bien que ciertos atributos sean
nulos
  No toda ausencia/presencia de atributo es
  relevante
Mantener la complejidad del problema
baja
Menos entidades es mejor




                                              9
Generalización
= proceso encontrar superclase

                  Clase base




Subclase 1   Subclase 2   Subclase 3   Subclase 4


                                                    10
¿Cómo generalizar?
Encontrar atributos en común
Encontrar relaciones en común
Siempre intentar generalizar




                                11
NPas

          VMax    Superclase
Coche    IdVeh
                   Vehículo
         NumMat

         Precio
                              IdVeh

         NumEje           NumMat

          Tons                Precio

Camión   IdVeh

         NumMat

         Precio
                                       12
Restricciones de 
especialización




                    13
Tipos de subclase
Definidos por un valor de atributo
  Ej.: “TipoDeTrabajo=Secretaria”, entonces
  la entidad es Secretaria (sub-clase-de)
  Empleado
  Se denominan: definidas por predicado
No dependen de un valor de atributo
  No hay una regla automática -- visible para
  el sistema
  Se denominan: definidas por el usuario


                                                14
Restricción de disyunción
¿Puede pertenecer a dos subclases?
 No: disjuntas [d]
 Sí: solapadas (overlapped) [o]

              Obra_Teatro


                     o



     Drama                  En_Cartelera
                                           15
Restricción de completitud
Especialización total
  Todos deben ser miembros de subclase
  Equivalente a cuando en OO, una
  superclase es abstracta
Especialización parcial
  Pueden ser miembros de la superclase




                                         16
Reglas derivadas de lo que 
           hemos visto
1. Eliminar de una superclase significa
  eliminar de todas las subclases
2. Insertar en una superclase implica
  insertar en las subclases definidas por
  predicado
3. Insertar en una superclase cuando hay
  especialización total (una superclase
  abstracta) implica insertar en al menos
  una subclase

                                            17
Herencia múltiple
              Persona


                 o



Profesor                     Alumno




           Alumno_Ayudante

                                      18
Herencia múltiple
                     Persona


                        o


          Profesor                 Alumno


Imparte

                                            Alum_Asignat
Curso            Alumno_Ayudante

                                                     19
Tipos unión
Hasta el momento siempre hay una
superclase
Podría no ser el caso
Ejemplo:
  Un banco da créditos para compra de
  vehículos
  Los créditos los da tanto a personas como
  a empresas



                                              20
Ejemplo tipo unión

     Persona                    Empresa




                     u



                Propietario

La subclase unión no tiene atributos propios
Tampoco hereda todos los atributos de las superclases,
 sino sólo los de una de ellas a la vez
                                                   21
Ejemplo completo ...
Universidad
Se guardan todos los datos usuales de
persona, incluyendo nombre y
dirección como atributo compuesto
Personas pueden ser profesores o
alumnos. De profesores se guarda
número de despacho, de alumnos año
de ingreso.
Profesores pertenecen a uno o varios
departamentos, cada uno de los cuales
tiene un director que es un profesor    22
... ejemplo completo ...
Alumnos están inscritos en un
departamento o varios y en uno o
varios cursos
Alumnos obtienen calificaciones en
varias Pruebas, que pueden ser
Práctica, Control o Exámen, con
diferentes ponderaciones y promedios




                                       23
... ejemplo completo.
Departamentos tienen nombre, y
pertenecen a una facultad que tiene
nombre y decano que es un profesor
Departamentos ofrecen asignaturas
con secciones
Alumnos pueden ser
Alumnos_Licenciados, con un asesor y
varios profesores en su comité
Profesor_Investigador puede ser un
Alumno_Licenciado o un Profesor, dicta
sección de una asignatura                24
Principios diseño
Correctitud: representa adecuadamente el
modelo
Evitar redundancia (ej.: relación
estudio_película + atributo estudio en
película) ¿Por qué?
Buscar simplicidad: entidades que no sean
estrictamente necesarias
Cuando aparece un ciclo, hay redundancia,
sólo si es necesario por eficiencia (ej.1:
alumno-curso-departamento, ej.2: actor-
contrato-película actor-rol-película)
                                         25
Entidades eliminables
Sólo tienen relaciones 1-1 con otra
entidad
  Ej.: direcciones de personas
  Convertir en atributos (al menos durante el
  proceso de modelamiento)
No pensar en las tablas. El modelo E-R
es para conceptualizar
Leer y re-leer el diagrama
  Simular consultas típicas
  Pensar en posibles extensiones
                                                26
  Estar preparado para explicar decisiones
Resumen
Buen diseño
 “Lo más simple posible pero no más
 simple que eso” -- A. Einstein
 Resiste el paso del tiempo
   No es inmutable: es extensible
Mal diseño
 Empeora con el tiempo
 Casos especiales, más y más entidades,
 etc. al final la única solución es deshacerse
 del diseño
   Y del que lo diseñó :-)
                                                 27

Más contenido relacionado

Similar a Bases de Datos - Parte 4/10 Modelo ER continuación

Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosJonathan Macías
 
3. Clases y Objetos.pdf
3. Clases y Objetos.pdf3. Clases y Objetos.pdf
3. Clases y Objetos.pdfRicardoOByrne1
 
Estructuración Del Blog Desarrollo De Habilidades De Pensamiento 3.pdf
Estructuración Del Blog Desarrollo De Habilidades De Pensamiento  3.pdfEstructuración Del Blog Desarrollo De Habilidades De Pensamiento  3.pdf
Estructuración Del Blog Desarrollo De Habilidades De Pensamiento 3.pdfJuanDavidGmezCabrera1
 
Estructuración Del Blog Desarrollo De Habilidades De Pensamiento 3 (1).pdf
Estructuración Del Blog Desarrollo De Habilidades De Pensamiento  3 (1).pdfEstructuración Del Blog Desarrollo De Habilidades De Pensamiento  3 (1).pdf
Estructuración Del Blog Desarrollo De Habilidades De Pensamiento 3 (1).pdfFernandaCollazos3
 
Modelo entidad relacion extendido
Modelo entidad relacion  extendidoModelo entidad relacion  extendido
Modelo entidad relacion extendidoJuanSaldaaRived
 
Análisis y diseño de sistemas de información
Análisis y diseño de sistemas de informaciónAnálisis y diseño de sistemas de información
Análisis y diseño de sistemas de informaciónjovy2905
 
Clase 4 conceptos poo
Clase 4 conceptos pooClase 4 conceptos poo
Clase 4 conceptos poosuperottos
 
Limites de funciones de dos variables
Limites de funciones de dos variablesLimites de funciones de dos variables
Limites de funciones de dos variablesedwinh20
 
Clean code 10-11
Clean code 10-11Clean code 10-11
Clean code 10-11540deg
 

Similar a Bases de Datos - Parte 4/10 Modelo ER continuación (20)

10.herencia en c++
10.herencia en c++10.herencia en c++
10.herencia en c++
 
Programaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetosProgramaciom avanzada orientada a objetos
Programaciom avanzada orientada a objetos
 
3. Clases y Objetos.pdf
3. Clases y Objetos.pdf3. Clases y Objetos.pdf
3. Clases y Objetos.pdf
 
Tema7 herencia
Tema7 herenciaTema7 herencia
Tema7 herencia
 
JAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIAJAVA 00 - TEMA 05 - HERENCIA
JAVA 00 - TEMA 05 - HERENCIA
 
Estructuración Del Blog Desarrollo De Habilidades De Pensamiento 3.pdf
Estructuración Del Blog Desarrollo De Habilidades De Pensamiento  3.pdfEstructuración Del Blog Desarrollo De Habilidades De Pensamiento  3.pdf
Estructuración Del Blog Desarrollo De Habilidades De Pensamiento 3.pdf
 
Estructuración Del Blog Desarrollo De Habilidades De Pensamiento 3 (1).pdf
Estructuración Del Blog Desarrollo De Habilidades De Pensamiento  3 (1).pdfEstructuración Del Blog Desarrollo De Habilidades De Pensamiento  3 (1).pdf
Estructuración Del Blog Desarrollo De Habilidades De Pensamiento 3 (1).pdf
 
Modelo entidad relacion extendido
Modelo entidad relacion  extendidoModelo entidad relacion  extendido
Modelo entidad relacion extendido
 
Alan gabriel juarezcamacho_eje2_actividad2.doc
Alan gabriel juarezcamacho_eje2_actividad2.docAlan gabriel juarezcamacho_eje2_actividad2.doc
Alan gabriel juarezcamacho_eje2_actividad2.doc
 
JAVA ORIENTADO A OBJETOS - HERENCIA
JAVA ORIENTADO A OBJETOS - HERENCIAJAVA ORIENTADO A OBJETOS - HERENCIA
JAVA ORIENTADO A OBJETOS - HERENCIA
 
Análisis y diseño de sistemas de información
Análisis y diseño de sistemas de informaciónAnálisis y diseño de sistemas de información
Análisis y diseño de sistemas de información
 
Herencia y polimorfismo
Herencia y polimorfismoHerencia y polimorfismo
Herencia y polimorfismo
 
Poo
PooPoo
Poo
 
Clase 4 conceptos poo
Clase 4 conceptos pooClase 4 conceptos poo
Clase 4 conceptos poo
 
Clase 1
Clase 1Clase 1
Clase 1
 
Limites de funciones de dos variables
Limites de funciones de dos variablesLimites de funciones de dos variables
Limites de funciones de dos variables
 
Clean code 10-11
Clean code 10-11Clean code 10-11
Clean code 10-11
 
06 patrones
06 patrones06 patrones
06 patrones
 
JAVA ORIENTADO A OBJETOS - INTERFACES
JAVA ORIENTADO A OBJETOS - INTERFACESJAVA ORIENTADO A OBJETOS - INTERFACES
JAVA ORIENTADO A OBJETOS - INTERFACES
 
02 curso poo Clase - Objeto
02 curso poo Clase - Objeto02 curso poo Clase - Objeto
02 curso poo Clase - Objeto
 

Más de Carlos Castillo (ChaTo)

Finding High Quality Content in Social Media
Finding High Quality Content in Social MediaFinding High Quality Content in Social Media
Finding High Quality Content in Social MediaCarlos Castillo (ChaTo)
 
Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017
Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017
Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017Carlos Castillo (ChaTo)
 
Detecting Algorithmic Bias (keynote at DIR 2016)
Detecting Algorithmic Bias (keynote at DIR 2016)Detecting Algorithmic Bias (keynote at DIR 2016)
Detecting Algorithmic Bias (keynote at DIR 2016)Carlos Castillo (ChaTo)
 

Más de Carlos Castillo (ChaTo) (20)

Finding High Quality Content in Social Media
Finding High Quality Content in Social MediaFinding High Quality Content in Social Media
Finding High Quality Content in Social Media
 
When no clicks are good news
When no clicks are good newsWhen no clicks are good news
When no clicks are good news
 
Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017
Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017
Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017
 
Detecting Algorithmic Bias (keynote at DIR 2016)
Detecting Algorithmic Bias (keynote at DIR 2016)Detecting Algorithmic Bias (keynote at DIR 2016)
Detecting Algorithmic Bias (keynote at DIR 2016)
 
Discrimination Discovery
Discrimination DiscoveryDiscrimination Discovery
Discrimination Discovery
 
Fairness-Aware Data Mining
Fairness-Aware Data MiningFairness-Aware Data Mining
Fairness-Aware Data Mining
 
Big Crisis Data for ISPC
Big Crisis Data for ISPCBig Crisis Data for ISPC
Big Crisis Data for ISPC
 
Databeers: Big Crisis Data
Databeers: Big Crisis DataDatabeers: Big Crisis Data
Databeers: Big Crisis Data
 
Observational studies in social media
Observational studies in social mediaObservational studies in social media
Observational studies in social media
 
Natural experiments
Natural experimentsNatural experiments
Natural experiments
 
Content-based link prediction
Content-based link predictionContent-based link prediction
Content-based link prediction
 
Link prediction
Link predictionLink prediction
Link prediction
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
Graph Partitioning and Spectral Methods
Graph Partitioning and Spectral MethodsGraph Partitioning and Spectral Methods
Graph Partitioning and Spectral Methods
 
Finding Dense Subgraphs
Finding Dense SubgraphsFinding Dense Subgraphs
Finding Dense Subgraphs
 
Graph Evolution Models
Graph Evolution ModelsGraph Evolution Models
Graph Evolution Models
 
Link-Based Ranking
Link-Based RankingLink-Based Ranking
Link-Based Ranking
 
Text Indexing / Inverted Indices
Text Indexing / Inverted IndicesText Indexing / Inverted Indices
Text Indexing / Inverted Indices
 
Indexing
IndexingIndexing
Indexing
 
Text Summarization
Text SummarizationText Summarization
Text Summarization
 

Bases de Datos - Parte 4/10 Modelo ER continuación

  • 1. Sistemas de Información II Tema 4. El modelo entidad-relación (continuación) Bibliografía: Elmasri y Navathe: “Fundamentos de Sistemas de Bases de Datos” 3ª edición, 2002 (Capítulo 4). Garcia-Molina, Ullman y Widom: “Database systems: the complete book”. Prentice-Hall (Capítulo 2). Carlos Castillo UPF – 2007 1
  • 3. ¿Cómo surgen? Ejemplo 1: Avión (superficie alar, peso, envergadura) Avión_de_carga ( ... + carga máxima) Avión_de_pasajeros ( ... + número pasajeros) Ejemplo 2: Persona (dni, nombre, apellido) Propietario ( ... + relación con sus propiedades) Arrendatario ( ... + relación con lo que arrienda) 3
  • 4. Se usan subclases cuando detectamos una entidad que tiene un grupo de instancias con ciertas particularidades 4
  • 5. Notación Usaremos esta notación simple Superclase en esta asignatura, más una letra para el tipo de sub-clase. Esta notación simplificada no es estándar, es para fines pedagógicos. Clase 1 Clase 2 En la siguiente asignatura aprenderán UML. 5
  • 6. Especialización = proceso para definir subclases Clase base Subclase 1 Subclase 2 Subclase 3 Subclase 4 6
  • 7. Especialización: 1. atributos específicos Clase base Subclase 1 Subclase 2 7
  • 8. Especialización: 2. relaciones específicas Clase base Subclase 1 Subclase 2 8
  • 9. No especializar demasiado Está bien que ciertos atributos sean nulos No toda ausencia/presencia de atributo es relevante Mantener la complejidad del problema baja Menos entidades es mejor 9
  • 10. Generalización = proceso encontrar superclase Clase base Subclase 1 Subclase 2 Subclase 3 Subclase 4 10
  • 11. ¿Cómo generalizar? Encontrar atributos en común Encontrar relaciones en común Siempre intentar generalizar 11
  • 12. NPas VMax Superclase Coche IdVeh Vehículo NumMat Precio IdVeh NumEje NumMat Tons Precio Camión IdVeh NumMat Precio 12
  • 14. Tipos de subclase Definidos por un valor de atributo Ej.: “TipoDeTrabajo=Secretaria”, entonces la entidad es Secretaria (sub-clase-de) Empleado Se denominan: definidas por predicado No dependen de un valor de atributo No hay una regla automática -- visible para el sistema Se denominan: definidas por el usuario 14
  • 15. Restricción de disyunción ¿Puede pertenecer a dos subclases? No: disjuntas [d] Sí: solapadas (overlapped) [o] Obra_Teatro o Drama En_Cartelera 15
  • 16. Restricción de completitud Especialización total Todos deben ser miembros de subclase Equivalente a cuando en OO, una superclase es abstracta Especialización parcial Pueden ser miembros de la superclase 16
  • 17. Reglas derivadas de lo que  hemos visto 1. Eliminar de una superclase significa eliminar de todas las subclases 2. Insertar en una superclase implica insertar en las subclases definidas por predicado 3. Insertar en una superclase cuando hay especialización total (una superclase abstracta) implica insertar en al menos una subclase 17
  • 18. Herencia múltiple Persona o Profesor Alumno Alumno_Ayudante 18
  • 19. Herencia múltiple Persona o Profesor Alumno Imparte Alum_Asignat Curso Alumno_Ayudante 19
  • 20. Tipos unión Hasta el momento siempre hay una superclase Podría no ser el caso Ejemplo: Un banco da créditos para compra de vehículos Los créditos los da tanto a personas como a empresas 20
  • 21. Ejemplo tipo unión Persona Empresa u Propietario La subclase unión no tiene atributos propios Tampoco hereda todos los atributos de las superclases, sino sólo los de una de ellas a la vez 21
  • 22. Ejemplo completo ... Universidad Se guardan todos los datos usuales de persona, incluyendo nombre y dirección como atributo compuesto Personas pueden ser profesores o alumnos. De profesores se guarda número de despacho, de alumnos año de ingreso. Profesores pertenecen a uno o varios departamentos, cada uno de los cuales tiene un director que es un profesor 22
  • 23. ... ejemplo completo ... Alumnos están inscritos en un departamento o varios y en uno o varios cursos Alumnos obtienen calificaciones en varias Pruebas, que pueden ser Práctica, Control o Exámen, con diferentes ponderaciones y promedios 23
  • 24. ... ejemplo completo. Departamentos tienen nombre, y pertenecen a una facultad que tiene nombre y decano que es un profesor Departamentos ofrecen asignaturas con secciones Alumnos pueden ser Alumnos_Licenciados, con un asesor y varios profesores en su comité Profesor_Investigador puede ser un Alumno_Licenciado o un Profesor, dicta sección de una asignatura 24
  • 25. Principios diseño Correctitud: representa adecuadamente el modelo Evitar redundancia (ej.: relación estudio_película + atributo estudio en película) ¿Por qué? Buscar simplicidad: entidades que no sean estrictamente necesarias Cuando aparece un ciclo, hay redundancia, sólo si es necesario por eficiencia (ej.1: alumno-curso-departamento, ej.2: actor- contrato-película actor-rol-película) 25
  • 26. Entidades eliminables Sólo tienen relaciones 1-1 con otra entidad Ej.: direcciones de personas Convertir en atributos (al menos durante el proceso de modelamiento) No pensar en las tablas. El modelo E-R es para conceptualizar Leer y re-leer el diagrama Simular consultas típicas Pensar en posibles extensiones 26 Estar preparado para explicar decisiones
  • 27. Resumen Buen diseño “Lo más simple posible pero no más simple que eso” -- A. Einstein Resiste el paso del tiempo No es inmutable: es extensible Mal diseño Empeora con el tiempo Casos especiales, más y más entidades, etc. al final la única solución es deshacerse del diseño Y del que lo diseñó :-) 27