Bases de Datos: fundamentos del modelo relacional Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile fguidi@ucv.cl Ejemplo de una Relación Código Franco Guidi Polanco Canción Intérprete 1 Help The Beatles 2 The eye in the sky Alan Parsons Project 3 Goodbye Stranger Supertramp 4 Imagine John Lennon 2 El Modelo Relacional: relaciones y tablas v Fundamentos: § Producto cartesiano de dos conjuntos D1 y D2: D1 x D2 = { (v1,v2) / v1 ∈ D1 ∧ v2 ∈ D2 } § Ejemplo: A = { 10, 20, 25 } B = { a, b } A x B = { (10,a), (10,b),(20,a),(20,b),(25,a),(25,b)} v Se define: § “Relación” sobre los “dominios” D1 y D2 al conjunto R: R ⊆ D1 x D2 § Ejemplo: R = { (10,b),(20,a),(25,a)} Franco Guidi Polanco 3 El Modelo Relacional: relaciones y tablas (cont.) v Las relaciones pueden ser representadas en formato tabular: 10 a 10 b 10 b 20 a 20 a 25 a 20 b 25 a 25 b R AxB Franco Guidi Polanco 4 El Modelo Relacional: relaciones y tablas (cont.) v Generalización respecto del número de conjuntos (o dominios): § n > 0 conjuntos no necesariamente distintos D1, D2, ..., Dn § El producto cartesiano será el conjunto: D1x D2 x ...x Dn = { (v1,v2,...,vn) / vi ∈ Di , 1 ≤ i ≤ n } R ⊆ D1 x D2 ... x Dn Donde: • n: “grado” del producto cartesiano (y de la relación). • |R |: cardinalidad de la relación (número de elementos). Franco Guidi Polanco 5 El Modelo Relacional: relaciones y tablas (cont.) v Ejemplo: relación de grado 3, sobre los dominios A={ Fiat, Mazda}, B={ rojo, blanco, azul } y C={ 10, 20 } Fiat rojo 10 Fiat rojo 20 Fiat rojo 20 Fiat blanco 20 Fiat blanco 10 Fiat azul 20 Fiat blanco 20 Mazda rojo 20 Fiat azul 10 Mazda azul 20 Fiat azul 20 Mazda rojo 10 Mazda rojo 20 Mazda blanco 10 Mazda blanco 20 Mazda azul 10 Mazda azul 20 Franco Guidi Polanco Relación de cardinalidad igual a 5 AxBxC 6 Características de las Relaciones v Desde la perspectiva de las bases de datos, cada tupla contiene datos en algún modo vinculados. Help Beatles 125 Libertango Piazzola 175 Tema v No se define ordenamiento alguno entre las tuplas. El orden que aparece en la representación tabular es casual. Dos tablas con las mismas tuplas en distinto orden, representan la misma relación (*). v Las tuplas de una relación deben ser distintas entre ellas, es decir, una relación no debe contener tuplas repetidas (*). Intérprete Duración (sec) a 20 b 30 c 70 = a 20 c 70 b 30 a 20 b 30 a 20 (*) Propiedades de los conjuntos. Franco Guidi Polanco 7 Relaciones y atributos v Se asocia a cada ocurrencia de un dominio en una relación un nombre denominado “atributo”. Atributos Equipo_Local Equipo_Visita Goles_Local Goles_Visita Colo-Colo Est. de Quilpué 1 4 San Luis U. Católica 5 2 U. de Chile Curicó Unido 0 2 Franco Guidi Polanco 8 Una Base de Datos Relacional ESTUDIANTES NOTAS Rol Apellido Nombre Fecha nacimiento 551014-1 Cervantes Miguel 14/07/1981 552017-6 Da Vinci Leonardo 03/12/1982 563382-3 Ryan Meg 22/11/1981 567601-5 Armani Jorge 10/02/1981 Código Descripción Profesor CURSOS Rol Código Nota 551014-1 EII140 6,5 EII140 Intr. a la Ingeniería Castillo 551014-1 EII147 5,3 EII147 Intr. a las T.I. Cubillos 563382-3 EII140 4,4 EII248 Estructuras de Datos Silva 567601-5 EII248 6,2 EII350 Estadística Gatica Franco Guidi Polanco 9 Definiciones en el Ambito de BD v Esquemas de relaciones: nombres de las relaciones más conjunto de nombres de atributos. Ejemplo: § ESTUDIANTES ( Rol, Apellido, Nombre, Fecha nacimiento) § NOTAS ( Rol, Código, Nota ) § CURSOS ( Código, Descripción, Profesor ) v Esquema de la base de datos (R): conjunto de esquemas de relaciones (con nombres distintos). Ejemplo: R = { ESTUDIANTES ( Rol, Apellido, Nombre, Fecha nacimiento), NOTAS ( Rol, Código, Nota ), CURSOS ( Código, Descripción, Profesor ) } v Instancia de una relación: es el conjunto de tuplas de la relación. v Instancia de la BD: es el conjunto de instancias de todas las relaciones que componen el esquema de la BD. Franco Guidi Polanco 10 Información incompleta y valores nulos v Cuando el valor de un atributo no está disponible para una tupla, no es correcto (o no es siempre posible) representar su ausencia por medio de un valor propio del dominio del atributo. v El problema se resuelve extendiendo el modelo relacional para permitir que una tupla pueda asumir para cada atributo, ya sea: § Un valor del dominio § Un valor nulo, representado por NULL NOTAS Franco Guidi Polanco Estudiante Curso Nota 551014-1 EII140 6,5 551014-1 EII147 NULL 563382-3 EII140 4,4 11 Restricciones de integridad v Son propiedades que deben ser satisfechas por las instancias correctas de la BD. v Cada restricción puede ser expresada como un predicado. v Una instancia correcta es aquella que satisface todos los predicados. Franco Guidi Polanco 12 Restricciones de integridad (cont.) v Restricciones intrarrelacionales: deben ser cumplidas por cada relación de la base de datos § Ej: (Nota >= 1) AND (Nota <=7) para la relación Notas v Restricciones interrelacionales: involucran más de una relación § Ej. El valor del atributo Código en la relación Notas debe existir también en la relación Curso NOTAS CURSOS Rol Código Nota Código Descripción Profesor 551014-1 EII140 6,5 EII140 Intr. a la Ingeniería Castillo 551014-1 EII147 3,8 EII147 Intr. a las T.I. Cubillos 563382-3 EII140 4,4 EII248 Estructuras de Datos Silva EII350 Estadística Gatica Franco Guidi Polanco 13 Claves v Una clave es un conjunto de atributos utilizado para identificar unívocamente las tuplas de una relación ESTUDIANTES NOTAS Rol Apellido Nombre Fecha nacimiento Rol Código Nota 551014-1 Cervantes Miguel 14/07/1981 551014-1 EII140 6,5 552017-6 Da Vinci Leonardo 03/12/1982 551014-1 EII147 5,3 563382-3 Ryan Meg 22/11/1981 563382-3 EII140 4,4 567601-5 Armani Jorge 10/02/1981 567601-5 EII248 6,2 Clave: Rol Franco Guidi Polanco Clave: Rol + Código 14 Operaciones de interrogación a BD relacional v Álgebra relacional v Cálculo relacional Franco Guidi Polanco 15