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

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

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