Está en la página 1de 28

Bases de datos

Capítulo 2: introducción al modelo relacional


Modelo relacional

• Principal modelo de datos para aplicaciones comerciales de procesamiento de datos


debido a su simplicidad, lo que facilita el trabajo del programador en comparación
con modelos anteriores, como el de red o el jerárquico
• Existe una amplia base teórica y matemática para las bases de datos relacionales.
– En el Capítulo 6 se estudia la parte de esa base teórica referida a las consultas: Algebra
relacional, Cálculo relacional de tuplas y Cálculo relacionas de dominios
– En los Capítulos 7 y 8 se examinarán aspectos de la teoría de las bases de datos
relacionales que ayudan en el diseño de esquemas de bases de datos relacionales
– Capítulos 12 y 13 (3er curso) se estudian aspectos de la teoría que se refieren al
procesamiento eficiente de consultas

71902083 Bases de datos 2


Tema 2 – Introducción al modelo relacional

CONTENIDO
1. Estructura de las bases de datos relacionales
2. Esquema de la base de datos
3. Claves
4. Diagramas de esquema
5. Lenguajes de consulta relacional
6. Operaciones relacionales

71902083 Bases de datos 3


2.1 Estructura de bases de datos relacionales (1/3)

• Una base de datos relacional consiste en un conjunto de tablas


• En el modelo relacional:
– Relación → Tabla (tiene un nombre)
– Tupla → Fila
– Atributo → Columna (tiene un nombre)
Atributos o columnas

Tuplas o
filas

Relación Profesor
71902083 Bases de datos 4
2.1 Estructura de bases de datos relacionales (2/3)

• Ejemplar de una relación: una instancia específica de una relación, es decir, qué
contiene la relación en un determinado conjunto de filas en un momento
determinado
• El orden de las tuplas es irrelevante
– Ejemplo: El ejemplar de la relación Profesor muestra una instancia de 12 tuplas,
correspondientes a 12 profesores

Relación Profesor
71902083 Bases de datos 5
2.1 Estructura de bases de datos relacionales (3/3)

• Sobre los atributos de una relación


– Dominio de un atributo: conjunto de valores permitidos para un atributo.
– Se requiere (normalmente) que los atributos sean atómicos, es decir, valor único e
indivisible. Del capítulo 3 al 6 se considerarán atributos atómicos
– El valor null (nulo) es un valor especial que significa que el valor es desconocido o no
existe.
• El valor null genera distintas dificultades cuando se accede o actualiza la base de datos
y, por tanto, si es posible se debe evitar

71902083 Bases de datos 6


Tema 2 – Introducción al modelo relacional

CONTENIDO
1. Estructura de las bases de datos relacionales
2. Esquema de la base de datos
3. Claves
4. Diagramas de esquema
5. Lenguajes de consulta relacional
6. Operaciones relacionales

71902083 Bases de datos 7


2.2 Esquema de una base de datos (1/4)

• Esquema de una BD:


– Diseño lógico de la BD
– Esquema de una relación consiste en un lista de los atributos y de sus dominios
correspondientes
– Normalmente no cambia
• Ejemplar o instancia de una BD:
– Instantánea de los datos almacenados en la BD en un momento dato

• A pesar de ser importante conocer la diferencia entre un esquema de relación y un


ejemplar de relación, normalmente se utiliza el mismo nombre (cuando sea
necesario se indicará si es esquema o ejemplar).

71902083 Bases de datos 8


2.2 Esquema de una base de datos (2/4)

• Ejemplo
– Esquema:
sección (asignatura_id, secc_id, semestre, año, edificio, aula, franja_horaria)

– Ejemplar o instancia

71902083 Bases de datos 9


2.2 Esquema de una base de datos (3/4)

Notación empleada:
r (A1, A2, …, An ) es un esquema de una relación o tabla de nombre r
– r es el nombre de la relación o tabla
– A1, A2, …, An son los nombres de los atributos
– D1, D2, …. Dn Son los dominios de los atributos. Ai ⊆ Di
– t de r es una tupla, representada por una fila en una relación o tabla
• Una relación o tabla es un conjunto de tuplas t (a1, a2, …, an) donde cada ai Î Di
• Formalmente, dados los conjuntos de dominios D1, D2, …. Dn una relación r es un
subconjunto de D1 x D2 x … x Dn
– Los valores actuales (ejemplar) de una relación, están especificados mediante una tabla

71902083 Bases de datos 10


2.2 Esquema de una base de datos (4/4)

• Una base de datos relacional consiste en múltiples relaciones o tablas


• La información es organizada en tablas o relaciones: profesor, estudiante, tutor
• No existe una forma única de organizar la información en tablas o relaciónes
– Buenos diseños y malos diseños
• Ejemplo de mal diseño
Tutores (profesor_id, nombre_Prof, nombre_dept, salario, estudiante_id, …)
– Repetición de información: si dos estudiantes tienen el mismo profesor, aparecen dos tuplas
en la relación con la misma información del profesor
– Necesidad de valores nulos (un estudiante sin tutor)
• La teoría de normalización trata el problema del cómo proponer “buenos” esquemas
para una base de datos relacional (tema 8)
• Ejemplo de mejor diseño.
– Como profesor_id -> (nombre_Prof, nombre_dept, salario) descomponer Tutores en
• Profesor (profesor_id, nombre_Prof, nombre_dept, salario)
• Tutoria((profesor_id, estudiante_id)
71902083 Bases de datos 11
Tema 2 – Introducción al modelo relacional

CONTENIDO
1. Estructura de las bases de datos relacionales
2. Esquema de la base de datos
3. Claves
4. Diagramas de esquema
5. Lenguajes de consulta relacional
6. Operaciones relacionales

71902083 Bases de datos 12


2.3 Claves (1/4)

• Las relaciones o tablas y los atributos tienen nombre, las tuplas no


• Las tuplas de una relación tienes que ser distinguibles
– Dos tuplas de una relación no pueden tener los mismos valores en todos sus atributos
• Superclave:
– Conjunto de uno o varios atributos que permiten identificar de manera unívoca una tupla
de la relación.

Ejemplo superclaves:
• ID
• ID y nombre

Si K es superclave también lo es
Cualquier superconjunto de K

Relación Profesor

71902083 Bases de datos 13


2.3 Claves (2/4)

• Clave candidata:
– Superclave para la que no hay subconjunto de atributos que también sea superclave
– No es única. Es posible que varios conjuntos de atributos puedan ser claves candidatas.

Ejemplo claves candidatas:


• [ID]
• [Nombre, nombre_dept]

Relación Profesor

71902083 Bases de datos 14


2.3 Claves (3/4)

• Clave primaria
– De entre todas las claves candidata, clave primaria es la clave candidata elegida por el
diseñador de la base de datos como medio principal para la identificación de las tuplas
de una relación
– La clave primaria debe escogerse de manera que los valores de sus atributos no se
modifiquen nunca, o muy rara vez.
– Notación:
• Los atributos de clave primaria de un esquema de relación se indican antes que el resto
de los atributos y subrayados.
• Ejemplos:
departamento(nombre_dept, edificio, presupuesto)
asignatura(asignatura_id, nombre_asig, nombre_dept, créditos)
profesor(ID, nombre, nombre_dept, sueldo)
seccion(asignatura_id, secc_id, semestre, año, edificio, número_aula, franja_horaria_id)

71902083 Bases de datos 15


2.3 Claves (4/4)

• Clave externa
– El esquema de una relación puede incluir entre sus atributos la clave primaria de otra relación

• Ejemplo: Relación referenciada


departamento(nombre_dept, edificio, presupuesto)
profesor(ID, nombre, nombre_dept, sueldo)
• El atributo nombre_dept
– Clave primaria en la relación departamento
Relación referenciante
– Clave externa en la relación profesor
• Integridad referencial:
– Requiere que los valores que aparecen en determinados atributos de una tupla en la relación
referenciante también aparezcan en otros atributos de al menos una tupla de la relación
referenciada.
• Si en una tupla de profesor se menciona un nombre_dept, se requiere que exista una tupla en
departamento con ese nombre_dept
71902083 Bases de datos 16
Tema 2 – Introducción al modelo relacional

CONTENIDO
1. Estructura de las bases de datos relacionales
2. Esquema de la base de datos
3. Claves
4. Diagramas de esquema
5. Lenguajes de consulta relacional
6. Operaciones relacionales

71902083 Bases de datos 17


2.4 Diagrama de esquema (1/3)

• El esquema de la base de datos, junto con las dependencias de claves primaria y


externa, se puede mostrar gráficamente mediante diagramas de esquema.
– Cada relación aparece como un cuadro con el nombre de la relación en la parte superior
y los atributos en el interior
– Los atributos que son clave primaria se muestran subrayados.
– Las dependencias de clave externa aparecen como flechas desde los atributos de clave
externa de la relación referenciante a la clave primaria de la relación referenciada
– Las restricciones distintas de las restricciones de clave externa, no se muestran
explícitamente en los diagramas de esquema.
– Otros diagramas como el de entidad- relación (capitulo 7) permiten representar distintos
tipos de restricciones

71902083 Bases de datos 18


2.4 Diagrama de esquema (2/3)

Diagrama de esquema para la base de datos de la Universidad

71902083 Bases de datos 19


2.4 Diagrama de esquema (3/3)

• Esquema de la base de datos de la universidad.

71902083 Bases de datos 20


Base de datos Automóviles
• Diagrama de esquema para la base de datos Automóviles
empleada habitualmente en los exámenes (hasta ahora)
marcas marco coches distribución
cifm cifm codcoche cifc
nombre codcoche nombre codcoche
ciudad modelo cantidad

ventas concesionario
clientes
cifc cifc s
dni dni nombre
nombre codcoche ciudad
apellidos color
ciudad

71902083 Bases de datos 21


Tema 2 – Introducción al modelo relacional

CONTENIDO
1. Estructura de las bases de datos relacionales
2. Esquema de la base de datos
3. Claves
4. Diagramas de esquema
5. Lenguajes de consulta relacional
6. Operaciones relacionales

71902083 Bases de datos 22


2.5 Lenguajes de consulta relacional

• Un lenguaje de consulta es un lenguaje en el que los usuarios solicitan información de la


base de datos, con un nivel superior al de los lenguajes de programación habituales.
• Lenguajes de consultas:
– Procedimentales: el usuario indica al sistema que lleve a cabo una serie de operaciones en la base
de datos para calcular el resultado deseado
• Ej: Algebra relacional: consta de un conjunto de operaciones que toma una o dos relaciones
como entrada y genera una nueva relación como resultado.
– No procedimentales: el usuario describe la información deseada sin establecer un procedimiento
concreto para obtener esa información
• Ej: Cálculo relacional de tuplas y Cálculo relacional de dominios. El cálculo relacional usa la
lógica de predicados para definir el resultado deseado sin proporcionar ningún procedimiento
concreto para obtener dicho resultado.
– La mayor parte de los sistemas comerciales de bases de datos relacionales ofrecen un lenguaje de
consultas que incluye elementos de los enfoques procedimental y no procedimental.

71902083 Bases de datos 23


Tema 2 – Introducción al modelo relacional

CONTENIDO
1. Estructura de las bases de datos relacionales
2. Esquema de la base de datos
3. Claves
4. Diagramas de esquema
5. Lenguajes de consulta relacional
6. Operaciones relacionales

71902083 Bases de datos 24


2.6 Operaciones relacionales (1/4)

• Todos los lenguajes procedimentales de consulta relacional proporcionan un


conjunto de operaciones:
– Se aplican a una única relación o a un par de relaciones
– El resultado es una única relación
• Permite combinar varias operaciones de forma modular
• Las operaciones relacionales concretas se expresan de forma diferente
dependiendo del lenguaje.
• Operación selección de tuplas el resultado es una relación con las tuplas que
satisfacen algún criterio en alguno de sus atributos
– Ej: tuplas de relación profesor con atributo sueldo>85.000€
• Operación proyección consiste en seleccionar ciertos atributos de una relación,
dando como resultado una nueva relación que solo contiene los atributos
seleccionados
– Ej: lista de ID de la relación profesor

71902083 Bases de datos 25


2.6 Operaciones relacionales (2/4)

• Operación join (reunión) permite combinar dos relaciones mezclando pares de


tuplas, una de cada relación, en una única tupla
– Reunión natural: hace casar las tuplas cuyos valores coinciden para los atributos que son
comunes a ambas relaciones
– Producto cartesiano: combina todos los pares de tuplas de las dos relaciones.

Reunión natural
Producto cartesiano 26
71902083 Bases de datos
2.6 Operaciones relacionales (3/4)

• Como las relaciones son conjuntos también se usan las aperaciones:

Operación Unión Operación Intersección Operación Diferencia

• Tuplas duplicadas: El resultado de una consulta puede contener tuplas duplicadas (desde
el punto de vista matemático deberían eliminarse). Existen lenguajes que las eliminan y
otros que no (para no sobrecargar el procesamiento con la eliminación).

71902083 Bases de datos 27


2.6 Operaciones relacionales (4/4)

• Algebra relacional: se ve en detalle en capítulo 6, pero estas son algunas de sus


operaciones:

71902083 Bases de datos 28

También podría gustarte