Modelo de Datos Relacional...Tecnólogo en Informática - Bases de Datos 1 9 Modelo Relacional...
Transcript of Modelo de Datos Relacional...Tecnólogo en Informática - Bases de Datos 1 9 Modelo Relacional...
-
Modelo de Datos Relacional
Tecnólogo en Informática, sede PaysandúBases de Datos 1
-
Tecnólogo en Informática - Bases de Datos 1 2
Modelo RelacionalTemario
Conceptos del modelo relacional
Restricciones del modelo relacional y esquemas de base de datos
Operaciones de creación y modificación de relaciones
Referencias:– Fundamentals of Database Systems [E-N], 5ta. Edición, Cap. 5
-
Tecnólogo en Informática - Bases de Datos 1 3
Modelo RelacionalIntroducció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– PostgreSQL
-
Tecnólogo en Informática - Bases de Datos 1 4
Modelo Relacional:Conceptos generales
-
Tecnólogo en Informática - Bases de Datos 1 5
Modelo RelacionalConceptos 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 valores– Filas
● 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 ● Se usan para interpretar el significado de los valores en cada registro o tupla
-
Tecnólogo en Informática - Bases de Datos 1 6
Modelo RelacionalConceptos 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 mismaLos valores NULL representan atributos cuyos valores no se conocen, o no existen, para una tupla ESTUDIANTE individual
-
Tecnólogo en Informática - Bases de Datos 1 7
Modelo RelacionalConceptos generales
Dominio (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
– Ejemplo: Edad de una persona: Entero entre 0 y 115 años.
-
Tecnólogo en Informática - Bases de Datos 1 8
Modelo RelacionalConceptos 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.
-
Tecnólogo en Informática - Bases de Datos 1 9
Modelo RelacionalConceptos 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.
-
Tecnólogo en Informática - Bases de Datos 1 10
Modelo RelacionalConceptos 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
-
Tecnólogo en Informática - Bases de Datos 1 11
Modelo RelacionalConceptos 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 =
● Donde cada valor vi, 1 ≤ i ≤ n
– es un elemento de dom(Ai) – o un valor especial NULL
-
Tecnólogo en Informática - Bases de Datos 1 12
Modelo RelacionalConceptos 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 mismaLos valores NULL representan atributos cuyos valores no se conocen, o no existen, para una tupla ESTUDIANTE individual
-
Tecnólogo en Informática - Bases de Datos 1 13
Modelo RelacionalConceptos 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
-
Tecnólogo en Informática - Bases de Datos 1 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 RelacionalConceptos generales
-
Tecnólogo en Informática - Bases de Datos 1 15
Modelo Relacional:Características de las Relaciones
-
Tecnólogo en Informática - Bases de Datos 1 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 RelacionalCaracterísticas de las Relaciones
-
Tecnólogo en Informática - Bases de Datos 1 17
Modelo RelacionalCaracterísticas de las Relaciones
-
Tecnólogo en Informática - Bases de Datos 1 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 RelacionalCaracterísticas de las Relaciones
-
Tecnólogo en Informática - Bases de Datos 1 19
Valores Nulos
– Representan valores de atributos que pueden 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 RelacionalCaracterísticas de las Relaciones
-
Tecnólogo en Informática - Bases de Datos 1 20
Un esquema de relación R de grado n se designa: R(A1, A2, …, An)
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.A1, ESTUDIANTE.Nombre → cualificación de atributos
t[Ai], t.Ai, ESTUDIANTE[Nombre] →valor i del atributo A en la tupla t
Modelo RelacionalNotación
-
Tecnólogo en Informática - Bases de Datos 1 21
Modelo Relacional:Restricciones
-
Tecnólogo en Informática - Bases de Datos 1 22
Tres categorías de Restricciones:
Inherentes al modelo
Restricciones basadas en el esquema
Basadas en la aplicación
Modelo RelacionalRestricciones
-
Tecnólogo en Informática - Bases de Datos 1 23
Inherentes al modelo (implí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 RelacionalRestricciones
-
Tecnólogo en Informática - Bases de Datos 1 24
Restricciones basadas en el esquema (explícitas)
– De dominio– De clave– De integridad– De entidades– Referencial– Claves externas
Modelo RelacionalRestricciones
-
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 RelacionalRestricciones de dominio (1)
-
Tecnólogo en Informática - Bases de Datos 1 26
Modelo RelacionalRestricciones de dominio (2)
-
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 RelacionalRestricciones de clave (1)
-
Tecnólogo en Informática - Bases de Datos 1 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 RelacionalRestricciones de clave (2)
-
Tecnólogo en Informática - Bases de Datos 1 29
Clave
– Una clave es una superclave que no contiene propiamente una superclave
– Satisface 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 RelacionalRestricciones de clave (3)
-
Tecnólogo en Informática - Bases de Datos 1 30
Modelo RelacionalRestricciones de clave (4)
Ejemplo:– Clave → {Dni} – Superclave → {Dni, Nombre, Edad}
-
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 RelacionalRestricciones de clave (5)
-
Tecnólogo en Informática - Bases de Datos 1 32
Modelo RelacionalRestricciones de clave (6)
-
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 RelacionalRestricciones en valores NULL
-
Tecnólogo en Informática - Bases de Datos 1 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 RelacionalBD relacionales y esquemas (1)
-
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 RelacionalBD relacionales y esquemas (2)
-
Tecnólogo en Informática - Bases de Datos 1 36
Modelo RelacionalBD relacionales y esquemas (3)
-
Tecnólogo en Informática - Bases de Datos 1 37
Modelo RelacionalBD relacionales y esquemas (4)
-
Tecnólogo en Informática - Bases de Datos 1 38
Modelo RelacionalBD relacionales y esquemas (5)
-
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 RelacionalIntegridad de entidad
-
Tecnólogo en Informática - Bases de Datos 1 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 RelacionalIntegridad referencial
-
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 RelacionalForeign Key (1)
-
Tecnólogo en Informática - Bases de Datos 1 42
Modelo RelacionalForeign Key (2)
-
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 RelacionalOtros tipos de restricciones
-
Tecnólogo en Informática - Bases de Datos 1 44
Modelo Relacional:Actualizaciones y transacciones
-
Tecnólogo en Informática - Bases de Datos 1 45
Modelo RelacionalOperaciones
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
-
Tecnólogo en Informática - Bases de Datos 1 46
Modelo RelacionalOperaciones
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
-
Tecnólogo en Informática - Bases de Datos 1 47
Modelo RelacionalInsert
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 into R– Incluye la tupla en la relación r.
-
Tecnólogo en Informática - Bases de Datos 1 48
Modelo RelacionalInsert
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
-
Tecnólogo en Informática - Bases de Datos 1 49
Modelo RelacionalInsert
Operación:– Insert
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 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.
-
Tecnólogo en Informática - Bases de Datos 1 50
Modelo RelacionalInsert
Operación:– Insert 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 into EMPLEADO
Resultado:– Esta inserción satisface todas las restricciones, por lo que es aceptada.
-
Tecnólogo en Informática - Bases de Datos 1 51
Modelo RelacionalInsert
Si una inserción viola una o más restricciones, la opción predeterminada es rechazarla
En este caso, resultaría útil que el DBMS explicara el motivo de dicho rechazo
-
Tecnólogo en Informática - Bases de Datos 1 52
Modelo RelacionalDelete
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),
– Delete from R where A=''a''– Borra las tuplas de r cuyo valor para A es ''a''.
-
Tecnólogo en Informática - Bases de Datos 1 53
Modelo RelacionalDelete
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 SUBORDINADO.
-
Tecnólogo en Informática - Bases de Datos 1 54
Modelo RelacionalDelete
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.
-
Tecnólogo en Informática - Bases de Datos 1 55
Modelo RelacionalUpdate
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''.
-
Tecnólogo en Informática - Bases de Datos 1 56
Modelo RelacionalUpdate
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
Resultado: Aceptable
-
Tecnólogo en Informática - Bases de Datos 1 57
Modelo RelacionalUpdate
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.
-
Tecnólogo en Informática - Bases de Datos 1 58
Modelo RelacionalTransacciones
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)
– Pueden manejar varios cientos de transacciones por segundo
Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45Slide 46Slide 47Slide 48Slide 49Slide 50Slide 51Slide 52Slide 53Slide 54Slide 55Slide 56Slide 57Slide 58