• No se han encontrado resultados

Modelo de Datos Relacional. Tecnólogo en Informática, sede Paysandú Bases de Datos 1

N/A
N/A
Protected

Academic year: 2021

Share "Modelo de Datos Relacional. Tecnólogo en Informática, sede Paysandú Bases de Datos 1"

Copied!
58
0
0

Texto completo

(1)

Modelo de Datos

Relacional

Tecnólogo en Informática, sede Paysandú Bases de Datos 1

(2)

Modelo Relacional

Temario

C

o

n

c

e

pt

o

s

d

e

l

m

o

d

e

l

o

r

e

l

a

c

i

o

n

a

l

Restricciones del modelo relacional y esquemas de base de datos

Operaciones de creación y modificación de relaciones

Referencias:

(3)

Tecnólogo en Informática - Bases de Datos 1 3

Modelo Relacional

Introducción

Modelo Relacional

Las primeras implementaciones comerciales estuvieron disponibles a principios de

los 1980s

Ejemplos de Motores de base de datos relacionales:

DB2, Informix

Oracle

SQL Server

MySQL

(4)

Modelo Relacional:

Conceptos generales

(5)

Tecnólogo en Informática - Bases de Datos 1 5

Modelo Relacional

Conceptos generales

Propuesto por Edgar Frank Codd en 1970

Los datos se representan como una colección de relaciones – Cada relación se asemeja a una tabla de valores

Tabla de valoresFilas

● Representa una colección de datos relacionada.

● Corresponde a una entidad o relación del mundo real. ● Tupla

Nombre de las tablas y nombre de las columnas

(6)

Modelo Relacional

Conceptos generales

Cada tupla aparece como una fila y cada atributo como un encabezamiento de columna que indica la interpretación que habrá que dar a cada uno de los valores de la misma

(7)

Tecnólogo en Informática - Bases de Datos 1 7

Modelo Relacional

Conceptos generales

Dom

i

n

io

(

D

)

– Conjunto de valores atómicos

Atómico

● Cada valor del dominio es indivisible

Especificar un dominio

– Se definen tipos de datos (data types) desde el que se dibujan los valores del mismo

(8)

Modelo Relacional

Conceptos generales

Dominio (

D

)

– Resulta útil darle un nombre que ayude en la interpretación de sus valores. – Ejemplos de dominios:

NumerosTelefonosFijos. El conjunto de los 9 dígitos que componen los números de teléfono en España.

DocumentoNacionalldentidad. El conjunto de documentos nacionales de

identidad válidos en España.

Nombres. El conjunto de caracteres que representan el nombre de una persona.

(9)

Tecnólogo en Informática - Bases de Datos 1 9

Modelo Relacional

Conceptos generales

Dominio (

D

)

– Para cada uno de ellos se especifica también un tipo de dato o formato. – Por ejemplo: el tipo de datos del dominio NumerosTelefonosFijos puede

declararse como una cadena de caracteres de la forma ddddddddd, donde cada d es un dígito numérico (decimal) y los tres primeros especifican la característica de la provincia.

ESTUDIANTE: dom(TlfParticular) = NumerosTelefonosFijos

– También puede facilitarse información adicional para la interpretación de sus valores; por ejemplo, un dominio numérico como PesoPersona debería contar con las unidades de medida, como kilogramos o libras.

(10)

Modelo Relacional

Conceptos generales

Esquema de relación

R

– Se utiliza para describir una relación, se dice que R es el nombre de la misma – Denotado por R(A1, A2, ...,An)

R es el nombre de la relación y

A1, A2, ..., An lista de atributos con dominios D1, D2 ,…, Dn – El grado de una relación es el número de atributos n de la misma

(11)

Tecnólogo en Informática - Bases de Datos 1 11

Modelo Relacional

Conceptos generales

Relación

r(R)

– Relación r del esquema R(A1, A2, ...,An) = r(R) – Conjunto de n-tuplas r = {t1, t2, ..., tm}

– Cada tupla t

● Lista ordenada de n valores t =<v1, v2, ..., vn> ● Donde cada valor vi, 1 ≤ i ≤ n

– es un elemento de dom(Ai) – o un valor especial NULL

(12)

Modelo Relacional

Conceptos generales

Cada tupla aparece como una fila y cada atributo como un encabezamiento de columna que indica la interpretación que habrá que dar a cada uno de los valores de la misma

(13)

Tecnólogo en Informática - Bases de Datos 1 13

Modelo Relacional

Conceptos generales

Relación

r(R)

– La anterior definición de relación puede ser enunciada más formalmente del siguiente modo

– Una relación (o estado de relación) r(R) es una relación matemática de grado n en los dominios dom(A1), dom(A2), ... , dom(An) que es un subconjunto del

producto cartesiano de los dominios que definen R: ● r(R) (dom(A1) ✕ dom(A2) ✕ ... ✕ dom(An))

– En general, a medida que varía el estado del mundo real lo hace también la relación, convirtiéndose en otro estado de relación diferente

(14)

Cardinalidad

Número total de valores en un dominio

Estado actual de una relación r(R)

Estado de la relación en un momento dado. Refleja sólo las tuplas válidas que

representan un estado particular del mundo real

Nombre de los atributos o columnas

Identifican diferentes roles, o interpretaciones para el dominio

Por ejemplo el mismo dominio teléfonos puede tener distintos roles: teléfono del

hogar y teléfono del trabajo.

Modelo Relacional

(15)

Tecnólogo en Informática - Bases de Datos 1 15

Modelo Relacional:

(16)

Orden de las tuplas en una relación

– La relación está definida como un conjunto de tuplas

● Matemáticamente, los elementos de un conjunto no guardan un orden entre ellos

– El orden de los atributos y valores no es tan importante siempre que se mantenga la correspondencia entre atributos y valores

– Se intenta representar hechos a nivel lógico o abstracto

Modelo Relacional

(17)

Tecnólogo en Informática - Bases de Datos 1 17

Modelo Relacional

(18)

Valores y NULLs en las tuplas

– Cada valor en una tupla es atómico – Modelo relacional plano

● No son permitidos los atributos compuestos o multivaluados ● Se asume primera forma normal

● Atributos multivaluados pueden ser representados por relaciones separadas ● Atributos compuestos representados por atributos simples

Modelo Relacional

(19)

Tecnólogo en Informática - Bases de Datos 1 19

Valores Nulos

Representan valores de atributos que

pue

den ser:

desconocidos

conocido y no está disponible

o no aplique a la tupla

Restricciones (

Constraints

)

Restricciones sobre los valores actuales en un estado de la base de datos

Derivados de reglas en el “minimundo” que la base de datos representa

Modelo Relacional

(20)

Un esquema de

relaci

ón

R

de grado n se designa: R(A

1

, A

2

, …, A

n

)

Las letras Q, R, S especifican nombres de relación

Las letras q, r, s especifican estados de relación

Las letras t, u, v indican tuplas

ESTUDIANTE → estado actual de la relación

ESTUDIANTE(Nombre, Dni, …) → esquema de la relación

R.A

1

, ESTUDIANTE.Nombre → cualificación de atributos

t[A

i

], t.A

i

, ESTUDIANTE[Nombre]

→valor i del atributo A en la tupla t

Modelo Relacional

(21)

Tecnólogo en Informática - Bases de Datos 1 21

Modelo Relacional:

Restricciones

(22)

Tres categorías de Restricciones:

Inherentes al modelo

Restricciones basadas en el esquema

Basadas en la aplicación

Modelo Relacional

(23)

Tecnólogo en Informática - Bases de Datos 1 23

Inherentes al modelo (

im

p

lícitas

)

– Ej.: una relación no puede tener tuplas duplicadas – Características vistas previamente

Restricciones basadas en el esquema (

explícitas

)

– Expresadas por DDL

– (a desarrollar)

Basadas en la aplicación (

restricciones de semántica

o

reglas de negocio

)

– No pueden ser expresadas directamente en el modelo

– Expresadas y cumplidas por la aplicación

Modelo Relacional

(24)

Restricciones basadas en el esquema (

explícitas

)

De dominio

De clave

De integridad

De entidades

Referencial

Claves externas

Modelo Relacional

Restricciones

(25)

Tecnólogo en Informática - Bases de Datos 1 25

Especifican que dentro de cada tupla, el valor de un atributo

A

debe ser un valor

atómico del dominio

dom(A)

Típicamente incluye:

Data types numéricos para números enteros y reales – Caracteres

– Booleanos

– Cadena de strings de largo fijo o variable – Date, time, timestamp

Money, currency – Otros

Modelo Relacional

(26)

Modelo Relacional

(27)

Tecnólogo en Informática - Bases de Datos 1 27

Una relación está definida como un conjunto de tuplas.

Por definición, todos los elementos de un conjunto son distintos; por tanto, todas las

tuplas en una relación también deben serlo.

Esto significa que dos tuplas no pueden tener la misma combinación de valores para todos sus atributos.

Modelo Relacional

(28)

Super Clave

– Dado R(A1,...,An), se dice que X ⊆ en {A1, … , An} es superclave en un

esquema R, si no puede existir ninguna r(R) tal que tenga dos tuplas con valores iguales de X (t[X] = t’[X]).

– Especifica una restricción de exclusividad

– Cada relación tiene, al menos, una superclave predeterminada: ● el conjunto de todos sus atributos

t1[SK] ≠ t2[SK]

Modelo Relacional

(29)

Tecnólogo en Informática - Bases de Datos 1 29

Clave

– Una clave es una superclave que no contiene propiamente una superclaveSatisface dos restricciones:

1. Dos tuplas diferentes en cualquier estado de la relación no pueden tener valores idénticos para todos los atributos de la clave

2. Es una superclave mínima: es una superclave de la cual no podemos eliminar ningún atributo tal que siga cumpliendo 1)

Modelo Relacional

(30)

Modelo Relacional

Restricciones de clave (4)

Ejemplo:

Clave → {Dni}

(31)

Tecnólogo en Informática - Bases de Datos 1 31

Clave candidata

– En general, un esquema de relación puede contar con más de una clave

– En este caso, cada una de ellas recibe el nombre de clave candidata

– Es común designar una de ellas como la clave principal de la relación, y será la que se utilice para identificar las tuplas en la relación.

– Por ejemplo, la relación COCHE de la Figura 5.4 tiene dos claves candidatas: ● NumeroPermisoConducir y NumeroBastidor

Modelo Relacional

(32)

Modelo Relacional

(33)

Tecnólogo en Informática - Bases de Datos 1 33

Otra restricción en los atributos especifica si se permiten o no los valores NULL.

Por ejemplo:

– Si cada tupla ESTUDIANTE debe contar con un valor válido y no nulo para el atributo Nombre,

– entonces el Nombre de ESTUDIANTE esta obligado a ser NOT NULL.

Modelo Relacional

(34)

Las definiciones y restricciones que hemos visto hasta ahora se aplican a las relaciones individuales y a sus atributos

Una base de datos relacional suele contener muchas relaciones, con tuplas que están relacionadas de diversas formas

Un esquema de base de datos relacional S es un conjunto de esquemas de relación S = {Rl, R2, ..., Rm} y de restricciones de integridad RI

Un estado de base de datos relacional DB de S es un conjunto de estado de relación DB = {r1, r2, ..., rm} en el que cada ri es un estado de Ri y satisface las restricciones de integridad especificadas en RI

Modelo Relacional

(35)

Tecnólogo en Informática - Bases de Datos 1 35

Cuando nos referimos a una base de datos relacional, incluimos implícitamente tanto su esquema como su estado actual

Un estado de base de datos que no cumple todas sus restricciones de integridad se dice que está en un estado incorrecto

Aquél que sí las cumple está en un estado correcto

Modelo Relacional

(36)

Modelo Relacional

(37)

Tecnólogo en Informática - Bases de Datos 1 37

Modelo Relacional

(38)

Modelo Relacional

(39)

Tecnólogo en Informática - Bases de Datos 1 39

Restricciones de integridad de entidad

Ningún valor de una clave primaria (clave principal) puede ser nulo.

– Esto se debe a que dicha clave se emplea para identificar tuplas individuales en una relación.

– Si se permitiera ese valor, no sería posible diferenciarlas → no se podrían identificar ciertas tuplas.

Modelo Relacional

(40)

Restricciones de integridad referencial

– Las restricciones de clave y las de integridad de entidad se especifican en relaciones individuales

– Especificada entre dos relaciones.

– Mantiene consistencia entre tuplas de dos relaciones. – Informalmente:

● una tupla de una relación que hace referencia a otra relación debe hacer referencia a una tupla existente de esa relación (ver FK)

Modelo Relacional

(41)

Tecnólogo en Informática - Bases de Datos 1 41

FK, clave externa, clave foránea

– Especifican una condición de integridad referencial entre dos esquemas de relación R1 y R2

– Un conjunto de atributos FK en R1 es una foreign key de R1 que referencia a R2 si cumple:

● Los atributos en FK tienen el mismo dominio, o dominios, que los atributos de clave principal PK de R2

● Un valor de FK en una tupla t1 de R1 aparece como valor de PK en alguna tupla t2 de R2. t1[FK] = t2[PK]

– En este caso: R1 → relación de referencia, R2 → relación referenciada

– Todas las restricciones de integridad deben ser especificadas en el esquema relacional

Modelo Relacional

(42)

Modelo Relacional

(43)

Tecnólogo en Informática - Bases de Datos 1 43

Restricciones de integridad semántica

Son especificadas y cumplidas sobre la base de datos relacional

Usar triggers y assertions

También pueden implementarse como control del programa o aplicación

que actualiza la BD

Ejemplos:

El salario de un empleado no debe exceder el de su supervisor

El número máximo de horas que un empleado puede trabajar a la semana es de 40

Modelo Relacional

(44)

Modelo Relacional:

(45)

Tecnólogo en Informática - Bases de Datos 1 45

Modelo Relacional

Operaciones

Las operaciones del modelo relacional pueden clasificarse en:

Recuperaciones y

Actualizaciones

Ahora vamos a concentrarnos en las operaciones de modificación o

actualización de una base de datos

(46)

Modelo Relacional

Operaciones

Existen tres tipos de operaciones de actualización básicas: inserción, borrado

y modificación

Insert →

se utiliza para insertar una nueva tupla o tuplas en una relación

Delete

→ se encarga de borrarlas

Update

→ cambia los valores de algunos atributos de las tuplas que ya

existen

Siempre que se aplique cualquiera de estas operaciones, deberán respetarse

las restricciones de integridad especificadas en el esquema de la base de

datos

(47)

Tecnólogo en Informática - Bases de Datos 1 47

Modelo Relacional

Insert

Insert proporciona una lista de los valores de atributo para una nueva tupla

t que será insertada en una relación R

Sea R(A,B,C) y r(R):

insert <a,b,c> into R

(48)

Modelo Relacional

Insert

Esta operación puede violar cualquiera de las cuatro restricciones estudiadas en la

sección anterior:

las de dominio, si el valor dado a un atributo no aparece en el dominio

correspondiente;

las de clave, si el valor de dicha clave en la nueva tupla t ya existe en otra tupla en

la relación r(R);

las de integridad de entidad, si la clave principal de la nueva tupla t es NULL;

y las de integridad referencial, si el valor de cualquier foreign key en t se refiere a

una tupla que no exista en la relación referenciada

(49)

Tecnólogo en Informática - Bases de Datos 1 49

Modelo Relacional

Insert

Operación:

Insert <'Cecilia', 'Santos', 'García', NULL, '04-05-1960', 'Misericordia, 23', M, 28000, NULL, 4> into EMPLEADO

Resultado:

– Esta inserción viola la restricción de integridad de entidad (NULL para la clave principal Dni), por lo que es rechazada.

Operación:

Insert <'Alicia', 'Jiménez', 'Celaya', '999887777', '05-04-1960', 'Cercado, 38', M, 28000, '987654321', 4> into EMPLEADO

Resultado:

– Esta inserción viola la restricción de clave porque ya existe otra tupla en la relación EMPLEADO con el mismo valor de Dní, por lo que es rechazada.

(50)

Modelo Relacional

Insert

Operación:

Insert <'Cecilia', 'Santos', 'García', '677678989', '04-05-1960', 'Misericordia, 23', M, 28000, '987654321', 7> into EMPLEADO

Resultado:

– Esta inserción viola la restricción de integridad referencial especificada, en Dno en EMPLEADO porque no existe ningún DEPARTAMENTO cuyo NumeroDpto = 7.

Operación:

Insert <'Cecilia', 'Santos', 'García', '677678989', '04-05-1960', 'Misericordia, 23', M, 28000, NULL, 4> into EMPLEADO

Resultado:

(51)

Tecnólogo en Informática - Bases de Datos 1 51

Modelo Relacional

Insert

Si un

a

i

nserción viola una o más

restricciones, la opción predeterminada es

rechazarl

a

En este caso, resultaría útil que el DBMS explicara el motivo de dicho

rechazo

(52)

Modelo Relacional

Delete

Delete sólo puede violar la integridad referencial en caso de que la tupla a

eliminar esté referenciada por las foreign keys de otras tuplas de la base de

datos

Para especificar un borrado, una condición en los atributos de la relación es

la que selecciona la tupla (o tuplas) a eliminar

Sea R(A,B,C) y r(R),

D

e

l

ete from

R where A=''a''

(53)

Tecnólogo en Informática - Bases de Datos 1 53

Modelo Relacional

Delete

Operación:

– Borrar la tupla EMPLEADO cuyo Dni = '999887777' – Delete from EMPLEADO where Dni = '999887777' Resultado:

– Este borrado no se acepta porque existen tuplas en TRABAJA_EN que hacen referencia a ella. Por tanto, si se elimina la tupla en EMPLEADO, se producirán violaciones de la integridad referencial

Operación:

– Borrar la tupla EMPLEADO cuyo Dni = '333445555' – Delete from EMPLEADO where Dni = '333445555' Resultado:

– Este borrado provocará incluso más violaciones de integridad referencial, ya que la tupla implicada está referenciada desde las relaciones EMPLEADO, DEPARTAMENTO, TRABAJA_EN Y

(54)

Modelo Relacional

Delete

Operación:

– Borrar la tupla TRABAJA_EN cuyo DniEmpleado = '999887777' y NumProy = 10 – Delete from TRABAJA_EN where DniEmpleado = '999887777' and NumProy = 10 Resultado:

– Este borrado se acepta, eliminándose sólo una tupla

Son varios los caminos que pueden tomarse si un borrado provoca una violación – El primero → rechazar el borrado

– El segundo → intentar propagar el borrado eliminando las tuplas que hacen referencia a la que estamos intentado borrar.

(55)

Tecnólogo en Informática - Bases de Datos 1 55

Modelo Relacional

Update

Update se emplea para cambiar los valores de uno o más atributos de una tupla (o

tuplas ) de una relación R

Para seleccionar la información a modificar es necesario indicar una condición en los

atributos de la relación

Sea R(A,B,C) y r(R),

Update R set B=''b'' where A=''a''

Modifica las tuplas de r cuyo valor para A es ''a'', estableciendo para el atributo B el

valor ''b''.

(56)

Modelo Relacional

Update

Operación:

– Actualizar el Salario de la tupla EMPLEADO cuyo Dni = 999887777 a 28000 – Update EMPLEADO set Salario=28000 where Dni=999887777

Resultado: Aceptable

Operación:

– Actualizar el Dno de la tupla EMPLEADO con Dni = 999887777 a l – Update EMPLEADO set Dno=1 where Dni=999887777

(57)

Tecnólogo en Informática - Bases de Datos 1 57

Modelo Relacional

Update

Operación:

– Actualizar el Dno de la tupla EMPLEADO con Dni = 999887777 a 7 – Update EMPLEADO set Dno=7 where Dni=999887777

Resultado: Inaceptable porque viola la integridad referencial.

Operación:

– Actualizar el Dni de la tupla EMPLEADO cuyo Dni = 999887777 a 987654321 – Update EMPLEADO set Dni=987654321 where Dni=999887777

Resultado: Inaceptable porque viola la restricción de clave principal repitiendo un valor que ya existe en otra tupla; viola las restricciones de integridad referencial ya que existen otras relaciones que hacen referencia a un Dni que ya existe.

(58)

Modelo Relacional

Transacciones

Una aplicación que hace uso de una base de datos suele ejecutar una serie de transacciones

Este proceso implica tanto la lectura desde una base de datos como efectuar inserciones, borrados y actualizaciones en los valores de la misma

Es necesario dejar la base de datos en un estado coherente (cumplir todas las restricciones comentadas)

Sistemas OLTP (Procesamiento de transacciones en línea)

Referencias

Documento similar