CC3201-1 BASES DE DATOS PRIMAVERA 2016 Clase 3: Modelo Relacional
88 Slides5.69 MB
CC3201-1 BASES DE DATOS PRIMAVERA 2016 Clase 3: Modelo Relacional (II) Aidan Hogan [email protected]
RESUMEN DE LOS CONTENIDOS ANTERIORES
Modelo Relacional: Instancia, esquema, dominio Una instancia de un esquema es un conjunto de tuplas para cada relación de ese esquema
Modelo Relacional: Restricciones (Llaves) Una súper llave identifica cada fila: Una llave candidatura es una súper llave mínima: Se escogerá una de las llaves candidaturas como llave primaria:
Modelo Relacional: Restricciones (Dependencias funcionales) Los atributos de la derecha pueden tener solo un valor para los atributos de la izquierda en todas las filas
(revisaremos en breve) DISEÑO CONCEPTUAL: EL DIAGRAMA ENTIDAD–RELACIÓN Capítulo 2, Database Management Systems, Ramakrishnan / Gehrke (Third Edition)
Una pregunta más general: Conceptualmente: ¿qué estamos describiendo? Entidades: Atributos de entidades: Relaciones entre entidades:
Diagramas Entidad–Relación (DER)
DER: Llaves (son obligatorios para cada entidad)
DER: Relaciones Binarias Dos entidades relacionadas Actualizado.
DER: Relaciones Binarias Dos entidades relacionadas Actualizado.
Actualizado. DER: Relaciones Binarias Atributos de Relaciones Relaciones tienen atributos descriptivos (no se puede usarlos como parte de una llave)
Un cambio menor La semana pasada usé n a 0 o 1: Pero el libro de Ramakrishnan / Gehrke usa na0o1: Para evitar confusión, usaremos la segunda convención (disculpa actualizaré las diapositivas de la clase 2)
De hecho, hay muchas convenciones Según Wikipedia:
Actualizado. Utilizaremos esta convención: n (o “varios”) significa 0 o más n a 0 o 1: Un Producto se fabrica por una Compañía Una Compañía puede fabricar varios Productos No significa que hay solo 0 o 1 Compañía. Significa que un Producto se fabrica por 0 o 1 Compañía.
DER: Relaciones Binarias: Multiplicidad de relaciones Actualizado. n a n: n significa 0 o más n a 0 o 1: 0 o 1 a n: 0 o 1 a 0 o 1: ¿Cuál es correcta? ¡Depende a la aplicación!
DER: Relaciones Binarias (Dos entidades relacionadas) ¿Multiplicidad de atributos? Actualizado. Siempre a 1 1 a 1 (e.g., rut) n a 1 (e.g., categoría)
DIAGRAMA ENTIDAD–RELACIÓN: RELACIONES MÚLTIPLES Capítulo 2, Database Management Systems, Ramakrishnan / Gehrke (Third Edition)
DER: Relaciones ¿Cómo se puede modelar un arriendo que involucre a Personas, Películas y Locales de Videos?
DER: Relaciones Múltiples ¿Cómo se puede modelar un arriendo que involucre a Personas, Películas y Locales de Videos?
DER: Relaciones Múltiples ¿Por qué no un atributo? Relaciones tienen atributos descriptivos (no se puede usarlos como parte de una llave) Si Película no es un “valor simple” (tiene varios atributos) y/o si se necesita Película en la llave de la relación
DER: Relaciones Múltiples ¿Las multiplicidades?
DER: Relaciones Múltiples
DER: Relaciones Múltiples ¿Qué significa ésta (exactamente)? Persona es una llave de la relación Una Persona puede tener una sola Película y un solo Local de videos. Puede ser que hay varias Locales de videos con varias Películas.
DER: Relaciones Múltiples ¿Si quisiéramos decir que una Persona puede arrendar varias Películas de varios Locales de videos?
DER: Relaciones Múltiples ¿Si quisiéramos decir que una Persona puede arrendar varias Películas pero de un solo Local de videos? Regresaremos.
DER: Relaciones Múltiples ¿Es un DER? Formalmente no. No tenemos llaves de entidades. (Pero a menudo, se omiten los atributos para ser conciso)
DER: Relaciones Múltiples ¿Se puede hacerlo usando relaciones binarias?
DER: Relaciones Múltiples
DER: Relaciones Múltiples ¿Cuál es preferible? Más flexible (p.ej., restricciones) Mucho más conciso
DER: Relaciones Múltiples ¿Si quisiéramos decir que una Persona puede arrendar varias Películas pero de un solo Local de videos?
DER: Relaciones Múltiples: Arcos Etiquetados (Papeles)
DIAGRAMA ENTIDAD–RELACIÓN: RESTRICCIONES AVANZADAS Capítulo 2, Database Management Systems, Ramakrishnan / Gehrke (Third Edition)
DER: Restricciones (Hemos visto) Valor único O?
DER: Restricciones (Hemos visto) Valor único
DER: Restricciones Participación cada profesor trabaja en al menos una universidad
DER: Restricciones Participación Valor Único cada profesor trabaja en una (sola) universidad
DER: Restricciones Participación Valor Único cada profesor trabaja en 0 o 1 universidad cada profesor trabaja en 1 o más universidades cada profesor trabaja en 1 (sola) universidad
DER: Restricciones Referenciales cada profesor trabaja en 0 o 1 universidad cada profesor trabaja en 0 o 1 universidad (y la universidad existe en la base de datos)
DER: Restricciones Numéricas cada universidad tiene entre 0 y 100 profesores equivalentemente
DIAGRAMA ENTIDAD–RELACIÓN: JERARQUÍAS DE CLASES Capítulo 2, Database Management Systems, Ramakrishnan / Gehrke (Third Edition)
DER: Jerarquías de clases IsA: esUn(a) en ingles los atributos origen, nombre y tipo se heredan por Vino y Cerveza
DER: Jerarquías de clases Superclases y subclases Bebida es una superclase Vino y Cerveza son subclases
Vino y Cerveza especializan Bebida Bebida generaliza Vino y Cerveza DER: Jerarquías de clases Generalización y especialización
DER: Jerarquías de clases Restricciones: Solapamiento Solapamiento (Overlap): ¿se permite que dos subclases contengan la misma entidad? ¿Hay Solapamiento aquí? No (con suerte).
DER: Jerarquías de clases Restricciones: Solapamiento Actualizado. Solapamiento (dicho de otra manera) – ¿Se puede tener una entidad en A y B o B y C o A y C? ¿Sí? entonces se permite Solapamiento [por defecto] ¿No? entonces no se permite Solapamiento
DER: Jerarquías de clases Restricciones: Solapamiento Actualizado. No Solapamiento. No Solapamiento (dicho de manera más matemática) significa que:
DER: Jerarquías de clases Restricciones: Cobertura Actualizado. Cobertura (Covering): ¿todas las subclases cobran la superclase? ¿Hay Cobertura aquí? No (con suerte).
DER: Jerarquías de clases Restricciones: Cobertura Actualizado. Cobertura (dicho de otra manera): – ¿Se puede tener una entidad en Z que no está en ni A, B ni C? ¿Sí? entonces no se puede afirmar cobertura [por defecto] ¿No? entonces se puede afirmar cobertura
DER: Jerarquías de clases Restricciones: Cobertura Actualizado. Cobertura (dicho de manera más matemática) significa que:
Actualizado. DER: Jerarquías de clases Restricciones: Cobertura y Solapamiento Solapamiento no permitido [por defecto] Cobertura Cobertura no afirmada Cobertura Cobertura afirmada afirmada Solapamiento permitido
DER: Jerarquías de clases Restricciones ¿Hay Solapamiento aquí? No (normalmente) ¿Hay Cobertura aquí? Sí (de alumnos universitarios)
DER: Jerarquías de clases Restricciones ¿Hay Solapamiento aquí? Sí (p.ej., auxiliar) ¿Hay Cobertura aquí? Depende (ex alumnos?)
DIAGRAMA ENTIDAD–RELACIÓN: ENTIDADES DEBILES Capítulo 2, Database Management Systems, Ramakrishnan / Gehrke (Third Edition)
DER: Entidades débiles ¡No se puede compartir llaves así!
DER: Entidades débiles entidades cuyas llaves dependan de llaves de otras entidades relacionadas
DER: Entidades débiles ¿Cuándo se usan? Tres características (2) Varias (débiles) a una (3) Participación total (1) Dependencia de llave entidades cuyas llaves dependan de llaves de otras entidades relacionadas
DIAGRAMA ENTIDAD–RELACIÓN: AGREGACIÓN Capítulo 2, Database Management Systems, Ramakrishnan / Gehrke (Third Edition)
DER: Agregación ¿Cuándo se necesita agregación? ¿Cómo se puede conectar Auxiliar y Curso?
DER: Agregación ¿Cuándo se necesita agregación? ¿Cómo se puede conectar Profesor y Curso?
DER: Agregación ¿Cuándo se necesita agregación? ¿Cómo se puede conectar Auxiliar y Curso? Están conectados implícitamente por Curso.
DER: Agregación ¿Cuándo se necesita agregación? ¿Si hay varios Profesores en cada Curso con sus propios Auxiliares?
DER: Agregación ¿Cuándo se necesita agregación? ¿Si queremos decir cuántas horas el Auxiliar da al Curso?
DER: Agregación ¿Cuándo se necesita agregación? ¿Si queremos decir cuántas horas el Auxiliar da al Curso en total y con respecto a cada Profesor?
DER: Agregación ¿Cuándo se necesita agregación? se puede tener relaciones entre relaciones? No directamente, pero
DER: Agregación: crear una entidad virtual encapsulando una relación
DER: Agregación: ¿Cuándo se usa? Un caso típico (1) Varios a varios (1) Dependencia de llave (2) Atributos diferentes
DER: Agregación: Otro ejemplo La relación no está entre relaciones (hay un hueco). La relación conecta Persona y una entidad virtual.
DER: Relaciones: Binaria vs. Agregación vs. Ternaria Más flexible Más conciso ¡Es importante intentar ser tan conciso como sea posible (pero no más conciso)!
¿PARA QUÉ NECESITAMOS DERS?
¿Para qué necesitamos DERs? Modelar los requerimientos de un aplicación – En una forma menos técnica que usar tablas Evitar redundancia / lograr un modelo conciso Documentar restricciones conceptuales Evitar problemas (p.ej. con llaves)
EJEMPLO: VINO, CERVEZA
Modelando vinos y cervezas Vendemos vinos y cervezas. Cada vino tiene año, tipo, grados y ciudad-origen. Cada cerveza tiene año, tipo, grados. Vinos y cervezas tienen un precio unitario y una cantidad “en stock”.
Modelando vinos y cervezas Vendemos vinos y cervezas. Cada vino tiene año, tipo, grados y ciudad-origen. Cada cerveza tiene año, tipo, grados. Vinos y cervezas tienen un precio unitario y una cantidad “en stock”. No tenemos llaves
Modelando vinos y cervezas (con llaves) Vendemos vinos y cervezas. Cada vino tiene año, tipo, grados y ciudad-origen. Cada cerveza tiene año, tipo, grados. Vinos y cervezas tienen un precio unitario y una cantidad “en stock”. ¿Repeticiones de atributos?
Modelando vinos y cervezas (con jerarquía de clases) Vendemos vinos y cervezas. Cada vino tiene año, tipo, grados y ciudad-origen. Cada cerveza tiene año, tipo, grados. Vinos y cervezas tienen un precio unitario y una cantidad “en stock”. ¿Llaves del Stock?
Modelando vinos y cervezas (con entidades débiles) Vendemos vinos y cervezas. Cada vino tiene año, tipo, grados y ciudad-origen. Cada cerveza tiene año, tipo, grados. Vinos y cervezas tienen un precio unitario y una cantidad “en stock”. ¿Multiplicidades y otros restricciones?
Modelando vinos y cervezas (con restricciones) Vendemos vinos y cervezas. Cada vino tiene año, tipo, grados y ciudad-origen. Cada cerveza tiene año, tipo, grados. Vinos y cervezas tienen un precio unitario y una cantidad “en stock”. ¿Si cada Bebida tiene que tener un valor de Stock?
Modelando vinos y cervezas (con restricciones) Vendemos vinos y cervezas. Cada vino tiene año, tipo, grados y ciudad-origen. Cada cerveza tiene año, tipo, grados. Vinos y cervezas tienen un precio unitario y una cantidad “en stock”. ¿Hay una simplificación?
Modelando vinos y cervezas (ser más conciso) Vendemos vinos y cervezas. Cada vino tiene año, tipo, grados y ciudad-origen. Cada cerveza tiene año, tipo, grados. Vinos y cervezas tienen un precio unitario y una cantidad “en stock”.
LA PROXIMA VEZ, CONTINUAREMOS CON: DEL MODELO ENTIDAD–RELACIÓN: AL MODELO RELACIONAL Capítulo 3.5, Database Management Systems, Ramakrishnan / Gehrke (Third Edition)
El horario: Tendremos clases: – El jueves (22 de septiembre) Una práctica: DER – El lunes (26 de septiembre) Una clase corta: DER Tablas Una práctica: DER Tablas – El martes (27 de septiembre) Una clase: Algebra Relacional
El jueves: Laboratorio Trabajaremos sobre papel Pero si uno quiere utilizar software para dibujar el diagrama, no tengo problema – p.ej., https://www.draw.io/? splash 0&libs er;general;advanced;uml;basic;flow chart;arrows
Controles Dos controles: 1. 24 de octubre (lunes) 2. 1 de diciembre (jueves) [actualizada] Se puede eximir el examen con una nota 5,5 en los controles
Evaluación del curso 50% tareas: – 40% ejercicios/laboratorios – 10% proyecto 50% exámenes: – 2 controles, 1 examen final
Preguntas?