Bases de Datos: fundamentos del modelo relacional Franco Guidi Polanco Escuela de Ingeniería Industrial Pontificia Universidad Católica de Valparaíso, Chile
[email protected]
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