SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
Bases de datos y sistemas de información                                                         Bases de datos y sistemas de información




2.2.     Modelo relacional                                                                       2.2.2.        Paso del modelo ER al modelo relacional
•   Creado por Codd a Principios de los 70                                                       Al traspasar información de ER al modelo relacional se pierde información (participación). En
•   Modelo lógico de datos de no muy alto nivel, orientado a registro.                           cambio, algunos requisitos que no podían representarse en el modelo ER sí van a poder
•   Sólida base teórica.                                                                         indicarse aquí.
•   Implementado en muchos SGBD.
•   El concepto principal es la relación o tabla .
                                                                                                 2.2.2.1.            Definición de tablas
2.2.1.        Terminología del modelo relacional                                                 Tipos de entidades
                                                                                                 Para cada tipo de entidad que no sea débil se crea una relación con el mismo nombre y conjunto
•   Entidad: Igual que en el esquema ER. También se les llama tuplas o filas de la relación.
                                                                                                 de atributos.
•   Atributo: Igual que en el esquema ER. También se le llaman columnas de la relación.
    El dominio de los atributos tiene que ser simple: no se admiten atributos multivaluados ni
                                                                                                 Ej: En el caso de la BD de secretaría los tipos de entidades dan lugar a las relaciones:
    compuestos.
•   Esquema de una relación: viene dado por el nombre de la relación y una lista de atributos.   Alumnos(DNI, Apellidos y Nombre, Domicilio, teléfono, COU)
    Es el tipo de entidad.                                                                       Asignaturas(Código, título, núm créditos)
•   Conjunto de entidades: Relación o tabla.                                                     Profesores(DNI, Apellidos y nombre, Domicilio, teléfono)
                                                                                                 Aulas(Edificio, núm.Edificio)
Ej: alumnos(DNI, NombreYApellidos, domicilio, teléfono, cou )
                                                                                                 Tipos de relaciones
•   Instancia de una relación: Conjuntos de entidades. Cada entidad se representa como una       Para cada tipo de relación R se crea una relación con atributos:
    tupla. Cada componente de la tupla corresponde con el valor del atributo correspondiente,
                                                                                                 • Por cada tipo de entidad que participa en la relación, los atributos de la clave primaria.
    según el orden enunciado en el esquema de la relación.
                                                                                                 • Los atributos de la propia relación.
Ej: Instancia de la relación alumnos:
                                                                                                 Ej: En el caso de la BD de secretaría los tipos de relación dan lugar a las relaciones:
{ (01234567Z, Manuel Vázquez Prieto, Calle del Jazmín 7 4 Izq, 91-12345678, COU = SI),
....}
                                                                                                 Matrícula(DNI, Código, Nota)
                                                                                                 Supervisa(DNI,DNI)
                                                                                                 Imparte(DNI, Código, Edificio, NumAula)
Representación:
En el modelo relacional no se representan diagramas del esquema de la BD. Se pueden
representar instancias de una relación de la siguiente forma:                                    Tipos de entidades débiles
                                                                                                 - El tipo de entidad débil E se transforma en una relación que incluye los atributos del tipo de
Ej.: Instancia de la relación alumnos                                                            relación más los atributos necesarios para la clave de E.
                                                                                                 - Los tipos de relaciones en los que participa E deben incluir todos los atributos de la clave de E.

DNI             NombreyApellidos           Domicilio                  Teléfono      COU
                                                                                                 Ej: Traspasar el siguiente diagrama entidad-relación a modelo relacional:
01234567Z       Manuel Vázquez Prieto      Calle del Jazmín 7 4 Izq   91-12345678   SI
                                                                                                              compositores                         DNI

                                                                                                                                            NombreyApe
                                                                                                                    Autor


                                                                                                               canciones                          en                                CD’s



                                                                                                   título                    duración                                                                   intérprete
                                                                                                                                                              Núm.serie          títuloCD




                                                  2-16                                                                                          2-17
Bases de datos y sistemas de información                                                        Bases de datos y sistemas de información


                                                                                                b) Una a varias

                                                                                                   E1                           R                         E2
Solución:

compositores(DNI, NombreYApe)                                                                   Superclave: c2
canciones(titulo, duracion,NúmSerie)
autor(DNI, titulo, duración, NúmSerie)                                                          c) Varias a varias
en(titulo, duración, NúmSerie) <- Se debe eliminar
CDs(Num.Serie, títuloCD, intérprete)                                                               E1                          R                          E2

Generalizaciones
Se tratan igual que en el caso de las entidades débiles.                                        Superclave : c1 ∪ c2
La relación IsA no se transforma en relación
                                                                                                Relaciones n-arias
    DNI                    Apellidos y Nombre                 Domicilio          Teléfono       Supongamos que la relación proviene de un tipo de relación R entre tipos de entidad E1, E2, ...,
                                                                                                Ek.
                                                                                                - Si todos participan con cardinalidad varios en R, entonces una superclave es la unión de las
                                           personas                                                 claves de E1, E2, ..., Ek.
                                                                                                - Si algunos tipos de entidad participan con cardinalidad una en R, entonces uno de ellos
                                                                                                    puede ser excluido de la superclave.

                                               is a
                                                                                                Ej: BD secretaría
    COU                                                                                         Alumnos(DNI, Apellidos y Nombre, Domicilio, teléfono, COU)
                                                                                                Asignaturas(Código, título, núm.créditos) Otra clave candidata: { título }
                 alumnos                                          profesores                    Profesores(DNI, Apellidos y nombre, Domicilio, teléfono)
                                                                                                Aulas(Edificio, núm.Edificio)

personas(DNI, ApellidosyNombre, Domicilio, teléfono).                                           Matricula(DNI, Código, Nota)
alumnos(DNI, COU)                                                                               Supervisa(DNISupervisor,DNISupervisado)
profesores(DNI)                                                                                 Imparte(DNI, Codigo, Edificio,NumAula)

2.2.2.2.          Claves                                                                        Ej: BD de canciones:
Hay dos casos:
                                                                                                compositores(DNI, NombreYApe)
1. La relación proviene de un tipo de entidad en el esquema ER. La clave es la clave del tipo
                                                                                                canciones(título, duración, NúmSerie)
    de entidad
                                                                                                autor(DNI, título, duración, NúmSerie)
2. La relación proviene de un tipo de relación en el esquema ER.
                                                                                                CDs(Núm.Serie, títuloCD, intérprete)
Relaciones binarias:
R relación binaria entre E1 y E2. R’ relación construida a partir de R
Clave de E1 : c1
Clave de E2 : c2
Atributos de R’: Atributos de E1 + Atributos de E2 + Atributos de R

a) Una a una

   E1                           R                            E2


Dos superclaves: c1 y c2



                                                      2-18                                                                                   2-19
Bases de datos y sistemas de información                                                                 Bases de datos y sistemas de información



                                                                                                         2.2.3.1.1.               Operaciones entre conjuntos: unión, intersección, diferencia
2.2.2.3.            Cuestiones de diseño                                                                 Son operaciones binarias que requieren:
En ocasiones es posible combinar 2 o más tablas en una sola:                                             - Los dos esquemas deben tener idénticos atributos.
Ej:                                                                                                      - En el momento de efectuar la operación se supone que el orden de las columnas es el
                                                                                                             mismo.
                                                                                                Nombre
                                                                                                         Def.:
   Apell.                                                                                                Dados dos esquemas de relación R(A1,....,An), S(A1,....,An)
                  Personas                    Nacida                     Países

     DNI                                                                                                 La operación unión de R y S , que se denota R U S(A1,....,An),
                                                                                                         produce un esquema cuyas instancias válidas pueden escribirse de la forma (r U s), con r
                                                                                                         instancia válida de R y s instancia válida de S.
Esquema de la BD:
Personas(DNI, Apell.)
Países(Nombre)                                                                                           La operación intersección de R y S , y se denota R ∩ S(A1,....,An),
Nacida(DNI, Nombre)                                                                                      produce un esquema cuyas instancias válidas pueden escribirse de la forma (r ∩ s), con r
                                                                                                         instancia válida de R y s instancia válida de S.
Nuevo Esquema:
Personas(DNI,Apell, PaisNac)                                                                             La operación diferencia de R y S , y se denota R  S(A1,....,An),
Países(Nombre)                                                                                           produce un esquema cuyas instancias válidas pueden escribirse de la forma (r s), con r instancia
                                                                                                         válida de R y s instancia válida de S.
Ej:
Esquema de BD:                                                                                           Ej.:
personas(DNI, ApellidosyNombre, Domicilio, teléfono).                                                    - Deseamos formar un esquema de relación con todos los empleados de la empresa.
alumnos(DNI, COU)                                                                                             Empleados <-- Programadores U Analistas
profesores(DNI)
                                                                                                         -   Queremos conocer a los empleados que son a la vez programadores y analistas.
Esquema modificado:                                                                                          ProgramadoresYAnalistas <-- Programadores ∩ Analistas
personas(DNI, ApellidosyNombre, Domicilio, teléfono,AlumnOProfe, COU).
                                                                                                         -   Empleados que son analistas pero no programadores
                                                                                                             SoloAnalistas <-- Analistas programadores
2.2.3.        Lenguajes formales del modelo relacional
                                                                                                         -   Empleados que son sólo Programadores o SoloAnalistas:
2.2.3.1.            Álgebra relacional                                                                       SoloProgOSoloAnalistas <-- SoloAnalistas U SoloProgramadores
                                                                                                             SoloProgOSoloAnalistas <-- Empleados ProgramadoresYAnalistas
Lenguaje de manipulación de datos DML (Data Management Language) de tipo procedimental
que permite consultar y modificar la BD. Define operaciones sobre una o dos relaciones que
producen otra relación.

Operaciones fundamentales: selección, proyección, unión, diferencia de conjuntos, producto
cartesiano y renombramiento. Agrupadas según:
- Operaciones entre conjuntos: unión, intersección, diferencia,.
- Operaciones que eliminan partes de una relación: proyección (elimina columnas) y
    selección (elimina filas)
- Operación de renombramiento
- Combinación de tuplas de 2 relaciones: productos cartesianos, uniones naturales, productos,
    divisiones
- Extensiones del álgebra relacional.




                                             2-20                                                                                                      2-21
Bases de datos y sistemas de información                                                                Bases de datos y sistemas de información



2.2.3.1.2.             Operaciones que eliminan partes de una relación
Proyección y selección                                                                                  2.2.3.1.3.            Operación de renombramiento
                                                                                                        Def.
Proyección                                                                                              Sea R(A1,...,An) esquema de relación. La operación de renombramiento se denota por
Def:
Sea R(A1,..,An) un esquema de relación y r instancia válida de R. La operación de proyección            ρ   S(B1,...,Bn)(R)
                                                                                                                        y produce un nuevo esquema de relación con:
de R respecto a Ai, Ai+1, ..., Aj lista de atributos de R, se denota πAi,Ai+1,...Aj, (R) y produce un   -    Nombre: S
esquema de relación que tiene                                                                           -    Atributos: (B1,...,Bn), donde cada Bi es un nuevo nombre de atributo con el mismo dominio
- como atributos Ai, Ai+1,...,Aj                                                                             que Ai.
- como instancias válidas los valores en Ai, Ai+1, ... Aj de las instancias válidas de R.               -    Instancias válidas: Las de R

Ej.:                                                                                                    Obs.:
- Determinar los códigos de los proyectos en los que hay algún empleado trabajando.                     - Si sólo se quieren renombrar los atributos se puede omitir S, y si sólo se quiere cambiar el
                                                                                                        nombre de la relación se puede omitir (B1,...,Bn).
ProyectosEnMarcha <--       π   CodigoPr(Distribución)
                                                                                                        - La notación S <-- R también cambia el nombre a un esquema de relación.

Selección                                                                                               Ej.:
Def:                                                                                                    - DNI’s de empleados que no trabajan ni dirigen ningún proyecto:
Sea R(A1,..,An) un esquema de relación y r instancia válida de R. La operación de selección de          DNIEmpleados             π (Programadores U Analistas)
                                                                                                                                  <---   DNI
R respecto a C se denota σC(R) y produce un esquema de relación:
- Atributos: (A1,...,An)                                                                                DNIEmpleadosActivos <--- ρ  (π (Distribución)) U
                                                                                                                                         (DNI)     DNIEmp


                                                                                                        ρ (π (Proyectos))
- Instancias válidas: las de R tras eliminar las tuplas que no cumplan C.
                                                                                                             (DNI)       DNIDir
C es la condición de selección es una fórmula construida de la siguiente forma:                         DNIEmpleadosNoActivos            <--- DNIEmpleados  DNIEmpleadosActivos
C:= <nombre_atributo> <op_comparación> <nombre_atributo>
C:= <nombre_atributo> <op_comparación> <constante>
C:= C <AND> C
C:= C <OR> C
C:= <NOT> C

Donde <op_comparacion> representa operadores booleanos del dominio
(=).

Ejs.:
- Códigos de todos los proyectos en los que trabaja el empleado con DNI 4

ProyectosDNI4 <--    π   CódigoPr(σ(DNIEmp=4)(Distribución))


- DNI de los trabajadores que trabajan entre 10 y 20 horas (ambas cantidades inclusive) en algún
proyecto.

Entre10Y20 <--   π   DNIEmp   (σ(Horas>=10 and Horas<=20)(Distribución))
DNI’s: 1,4,5

- Código y descripción de los proyectos dirigidos por el empleado de DNI 4 o por el empleado
de DNI 6

Proyectos4o6 <---   π                      σ(DNIDIR=4 OR DNIDir=6)(Proyectos))
                        Código, Descripción(


Respuesta: Códigos P1, P2, P5




                                                    2-22                                                                                                2-23
Bases de datos y sistemas de información                                                                Bases de datos y sistemas de información


                                                                                                        Join (combinación)
2.2.3.1.4.                Operaciones de combinación de tuplas                                          Def.:
                                                                                                        Se define la combinación de R1 y R2                      como:
Producto Cartesiano
Def.:                                                                                                   R1          C
                                                                                                                        R2 =   σ (R1 x R2)
                                                                                                                                 C
Dadas dos relaciones R1, R2 esquemas de relación , la operación producto
Cartesiano de R1, se denota por R1 x R2 y se define como:                                               Donde c es una conjunción de operaciones booleanas:
- Atributos: Los de R1 U los de R2. Si tienen algún nombre de atributo A común, este se                 C= C1 AND C2 AND C3 .....
     convierte en R1.A, R2.A
- Instancias: Son de la forma r1xr2, con r1 instancia de R1, r2 instancia de R2.                        Ej.:
Ej.:                                                                                                    Queremos conocer los nombres, direcciones y teléfonos de los empleados que dirigen algún
Queremos conocer los nombres, direcciones y teléfonos de los empleados que dirigen algún                proyecto:
proyecto:
1 Datos de todos los empleados                                                                          1. Datos de todos los empleados
    Empleados ← Programadores U Analistas                                                               Empleados ← Programadores U Analistas
    Empleados(DNI, Nombre,Dirección,Teléfono)                                                           Empleados(DNI, Nombre,Dirección,Teléfono)

2   Hacemos el producto cartesiano con los DNI’s de los directores de proyecto:                         2. Datos de los directores de proyecto
    DNIDirPorEmpleados ←           π   DNIDir(Proyectos)        x Empleados                             DatosDirProyecto ←       π   Nombre, Dirección, Teléfono(   Proyectos   DNIDir=DNI
                                                                                                                                                                                             Empleados)
    DNIDirPorEmpleados (DNIDir, DNI, Nombre,Dirección,Teléfono)
                                                                                                        Ej.:
3   Nos quedamos con los datos de los directores de proyecto                                            Obtener los nombres de todos los empleados que trabajan en algún proyecto más de 10 horas:
    DatosDirProyecto ←       π   Nombre, Dirección, Teléfono(   σ   DNIDir = DNI(DNIDirPorEmpleados))
                                                                                                        Dos formas:
    DatosDirProyecto(Nombre,Dirección,Teléfono)                                                         NombresTrabajanMasde10 ←           π   Nombre(
                                                                                                                                                            C
                                                                                                                                                                 Empleados         DNIEmp=DNI Distribución)
                                                                                                                                                                                   AND Horas>10
                                                                                                        Resultado
                                                                                                        Nombre
                                                                                                        Herminia
                                                                                                        Calixto
                                                                                                        Teodora
                                                                                                        Evaristo




                                                    2-24                                                                                                        2-25
Bases de datos y sistemas de información                                                        Bases de datos y sistemas de información


Equijoin (equicombinación)                                                                      Ej.:
Def.:                                                                                           Datos personales de los directores de proyecto.
Se llaman operación Equijoin a todo join natural cuya condición es una conjunción de
igualdades.                                                                                     DNIDirPro ← (DNI)    ρ          (π
                                                                                                                      DNIDir(Proyectos))

                                                                                                DatosDirProyecto ← DNIDirPro        (Programadores U Analistas)

Ej.:                                                                                            Teorema:
R1(A,B)                                                                                         Sean R1 y R2 dos esquemas de relación con atributos comunes (C1,....,Cj),
A             B                                                                                 atributos de A son (A1,...,An,C1,...,Cj)
1             B1                                                                                Y los de B (B1,....,Bm,C1,....,Cj)
2             B2
2             B3                                                                                Entonces R1              R2 = (salvo el orden de los atributos)

R2(C,D)                                                                                         ρ   A1,A2,...,An,B1,...,Bm,C1,...,Cj   (π   A1,A2,...,An,B1,...,Bm,R1.C1,...,R1.Cj   ( σ   (R1.C1 = R2.C2   AND ,...,AND

C             D                                                                                 R1.Cj=R2.Cj)(R1     x R2) ))
2             D1
                                                                                                Ej.:
2             D2
                                                                                                R1(A,B)
R1 |x|(A=C) R2                                                                                  A                  B
A          B         C         D                                                                1                  B1
2          B2        2         D1                                                               2                  B2
2          B2        2         D2                                                               2                  B3
2          B3        2         D1
2          B3        2         D2                                                               R2(C,D)
                                                                                                A                  C
Join natural                                                                                    2                  C1
Def.:
Sean R1(A1,...,An) y R2(B1,...,Bm) dos esquemas de relación y {C1,C2,...,Cj) la lista de los    2                  C2
atributos comunes a ambas relaciones.
La operación join natural (producto natural) de R1 y R2,                                        R1 x R2
Produce un esquema de relación R1          R2 tal que:                                          R1.A          B            R2.A        C
- Atributos: {A1,....,An} U {B1,...,Bm} (los atributos comunes sólo aparecen una vez).          1             B1           2           C1
- Instancias válidas: Dada r1 instancia válida de R1 y r2 de R2, se obtiene una instancia       1             B1           2           C2
     válida de la unión natural combinando todas las tuplas u de r1 y v de r2 tales que u y v   2             B2           2           D1
     coinciden sobre {C1,C2,...,Cj}.                                                            2             B2           2           D2
                                                                                                2             B3           2           D1
                                                                                                2             B3           2           D2

                                                                                                σ   (R1.A=R2.A)(R1      x R2 )
                                                                                                R1.A          B            R2.A        C
                                                                                                2             B2           2           D1
                                                                                                2             B2           2           D2
                                                                                                2             B3           2           D1
                                                                                                2             B3           2           D2

                                                                                                            π
                                                                                                ρ(A,B,C) ( (R1.A,B,C)        (σ    (R1.A=R2.A)(R1     x R2 ))
                                                                                                A         B         C
                                                                                                2         B2        D1
                                                                                                2         B2        D2
                                                                                                2         B3        D1
                                                                                                2         B3        D2




                                            2-26                                                                                                              2-27
Bases de datos y sistemas de información                                                       Bases de datos y sistemas de información


Ej.:                                                                                           Divisiones
Obtener los datos de todos datos de los empleados que comparten domicilio con otro empleado.   Idea: Se utilizan para obtener consulta de en la que se busca que algún atributo de una relación
                                                                                               tome (al menos) todos los valores de otro atributo en otra relación.
Empleados(dni,nombre,domicilio)
DNI                  Nombre                      Domicilio                                     Def.:
1                    Aniceto                     Jazmín 1
2                    Eulalia                     Rosa 3                                        Sea R(A1,...,An), S(B1,...,Bm) con {B1,....,Bm}⊆{A1,...,An}.
3                    Teodora                     Clavel 2                                      Entonces la operación división R÷S produce un esquema de relación
4                    Macario                     Rosa 3                                        - Atributos: {C1,...,Cj} = {A1,...,An}{B1,...,Bm}
5                    Anacleto                    Jazmín 1                                      - Instancias válidas: Dada r instancia válida de R, s inst. válida de S,
                                                                                               Una tupla u está en R ÷S cuando para todo v de S, la tupla que se obtiene al unir los valores de u
                                                                                               y v está en R.
σE1.DNI<>E2.DNI AND E1.Domicilio=E2.Domicilio(ρE1(Empleados) x ρ E2(Empleados))                Ej.:
                                                                                               R
                                                                                               A        B
Ej.:                                                                                           A1       B1
Analistas |x| Analistas                                                                        A2       B1
DNI                                                                                            A3       B1
4                                                                                              A4       B1
5                                                                                              A1       B2
6
                                                                                               A3       B2
                                                                                               A2       B3
                                                                                               A3       B3
                                                                                               A3       B3
                                                                                               A1       B4
                                                                                               A2       B4
                                                                                               A3       B4
                                                                                               S
                                                                                               A
                                                                                               A1
                                                                                               A2
                                                                                               A3
                                                                                               T
                                                                                               B
                                                                                               B1
                                                                                               B4

                                                                                               Ej.: Determinar los datos personales de los empleados que trabajan en todos los proyectos que
                                                                                               trabaja el empleado Jacinto
                                                                                                                σ
                                                                                               DatosJacinto ← (Nombre = Jacinto)(empleados))

                                                                                               ProyectosJacinto ← π(codigoPr)(( DatosJacincto |x|(DNI=DNIEmp)(Distribución))
                                                                                               DNIProyecto     ← π(codigoPr, DNIEmp) (Distribución)

                                                                                               DNIBuscados ← DNIProyecto ÷ ProyectosJacinto

                                                                                               DatosBuscados ← ρ(DNI)(DNIBuscados) |x| empleados




                                              2-28                                                                                           2-29
Bases de datos y sistemas de información                                                               Bases de datos y sistemas de información



                                                                                                       2.2.3.2.3.                Ejemplos
2.2.3.2.            Cálculo relacional de tuplas
2.2.3.2.1.                 Forma general de una consulta en cálculo relacional de tuplas:              - Deseamos formar un esquema de relación con todos los empleados de la empresa.
{t | P(t) } = el conjunto de todas las tuplas que cumplen la condición P.
P es una fórmula escrita en lógica de primer orden.                                                    {t | (t∈ Programadores) ∨ (t∈ Analistas)}
                                                                                                       t es libre
Ejemplo
Datos personales del empleado con DNI 3:                                                               - Queremos conocer a los empleados que son a la vez programadores
{t | ((t ∈ programadores) ∨ (t ∈ Analistas)) ∧ (t[DNI] = 3]) }                                         y analistas.
2.2.3.2.2.               Fórmulas en el cálculo relacional de tuplas
Pueden ser átomos y fórmulas compuestas.                                                               {t | (t∈ Programadores) ∧ (t∈ Analistas)}
• Átomos.                                                                                              DNI: 4
    Los átomos tienen una de las siguientes formas:
    1.- x ∈ r. Con x una variable de tupla y r un esquema de relación.                                 - Empleados que son analistas no programadores
    Una variable de tupla representa un fila genérica de una instancia válida
    de r.                                                                                              (SoloAnalistas <-- Analistas programadores)
                                                                                                       {t | (t∈ Programadores) ∧    ¬ (t∈ Analistas)}
    2.- t[A] θ s[B], donde t y s son variables de tupla, A es un atributo de la relación en la que
    está definida la variable de tupla t, B es un atributo de la relación en la que está definida la   DNI : 5,6,7
    variable de tupla s, y θ es un operador de comparación (<,>,= ...)
    El dominio de los atributos A y B debe ser compable.                                               - Empleados que son sólo Programadores o SoloAnalistas:
    Con t[A] denotamos el valor de la tupla t en el atributo A.
                                                                                                       {t | ((t∈ Programadores) ∧
                                                                                                                                ¬ (t∈ Analistas))
    3.- t[A] θ c, donde t variable de tupla, A un atributo de la relación en la que está definida la      ∨
    variable de tupla t, c un valor del dominio de A y θ es un operador de comparación (<,>,=             (t∈ Analistas) ∧ ¬ (t∈ Programadores)}
    ...).
•   Fórmulas compuestas
    Para construir una fórmula se usan las siguientes reglas:                                          2.2.3.2.4.                Operaciones
    Las fórmulas básicas son fórmulas.                                                                 Selección
    Si F es una fórmula (F) y ¬F también son fórmulas.                                                 Ej:
    Si F1 y F2 son formulas entonces F1 ∧ F2, F1∨F2 y F1⇒F2 tambiéns on fórmulas.                      - proyectos en los que trabaja el empleado con DNI 4
    Se pueden usar ∀y ∃ para ligar las variables de tupla. Si F(t) es una fórmula en la que            ProyectosDNI4 <-- (σ(DNIEmp=4)(Distribución))
    aparece libre la variable de tupla t, entonces las siguientes también son fórmulas:
    ∀t∈R, P(t)                                                                                         {t | (t∈ Distribución) ∧ (t[DNIEmp] = 4)}
    ∃ t∈R, P(t)
    Una variable de tupla que está cuantificada se dice ligada cuando aparece en una fórmula           - Trabajadores que trabajan entre 10 y 20 horas (ambas cantidades inclusive) en algún proyecto.
    afectada por un cuantificador (∀,∃).
                                                                                                       Entre10Y20 <-- σ(Horas>=10 and Horas<=20)(Distribución)

                                                                                                       DNI’s: 1,4,5

                                                                                                       {t | (t ∈ Distribución) ∧ (t[Horas]>=10) ∧ (t[Horas]<=20)}

                                                                                                       - Proyectos dirigidos por el empleado de DNI 4 o por el empleado de DNI 6
                                                                                                       Proyectos4o6 <--- πCódigo, Descripción(σ(DNIDIR=4 OR DNIDir=6)(Proyectos))

                                                                                                       Respuesta: Códigos P1, P2, P5

                                                                                                       {t | (t ∈ Distribución)
                                                                                                             ∧
                                                                                                           ((t[DNIDir] = 4) ∨ (t[DNIDir]=6))}




                                               2-30                                                                                                   2-31
Bases de datos y sistemas de información                                                       Bases de datos y sistemas de información


                                                                                               División
Proyección
Ej:                                                                                            Empleados que trabajan en los mismos proyectos que Jacinto
- Determinar los códigos de los proyectos en los que hay algún empleado trabajando.            {t | ((t ∈ Programadores) ∨ (t ∈Analistas))
ProyectosEnMarcha <-- πCodigoPr(Distribución)                                                       ∧
                                                                                                    ∃ j ( j ∈ Programadores ∨ j ∈Analistas)
{t | ∃p ∈ Distribucion( t[CodigoPr] = p[CodigoPr])}                                                      (
                                                                                                          j[nombre] = Jacinto ∧
                                                                                                          (∀p∈ Distribucion)
Producto Cartesiano                                                                                       ((p[DNIEmp] = j[DNI] )
Queremos conocer los nombres, direcciones y teléfonos de los empleados que dirigen algún                  ⇒
proyecto:                                                                                                 ∃ u ((u ∈ Distribucion ) ∧ t[DNI] = u[DNIEmp]
                                                                                                                 ∧ u[CodigoPr] = p[CodigoPr]
1.1 Datos de todos los empleados                                                                               )
Empleados ← Programadores U Analistas                                                                     )
Empleados(DNI, Nombre,Dirección,Teléfono)                                                          )
                                                                                               }
1.2 Hacemos el producto cartesiano con los DNI’s de los directores de proyecto:
DNIDirPorEmpleados ← πDNIDir(Proyectos) x Empleados                                            2.2.3.2.5.                Significado de una fórmula. Fórmulas seguras.
DNIDirPorEmpleados (DNIDir, DNI, Nombre,Dirección,Teléfono)
                                                                                               Para que tengan una fórmula {t | P(t)} del calculo relacional de tuplas tenga significado debe
1.3 Nos quedamos con los datos de los directores de proyecto                                   cumplir:
DatosDirProyecto ← πNombre, Dirección, Teléfono( σDNIDir = DNI(DNIDirPorEmpleados))
DatosDirProyecto(Nombre,Dirección,Teléfono)                                                    1. Todas las variables deben estar ligadas, exceptuando t que es libre.
                                                                                               2. Todas las variables que aparezcan en la fórmula-condición deben pertenecer a un esquema
{t | ∃u(                                                                                          de relación, menos quizá, t.
                                                                                               3. La fórmula debe ser segura.
         ((u ∈ Analistas) ∨ (u ∈ Programadores))
       ∧
                                                                                               Fórmulas seguras:
        (t[Nombre] = u[Nombre])
                                                                                               Es posible que el resultado de una expresión sea infinito, por ejemplo:
       ∧
                                                                                               {t | ¬ (t ∈ R)}
      (t[Dirección] = u[Dirección])
                                                                                               Se introduce el concepto de dominio.
       ∧                                                                                       dom(P) es el conjunto de todos los valores a los que P hace referencia
      (t[teléfono] = u[teléfono])                                                              Se dice que una expresión {t | P(t)} es segura si todos los valores que aparecen en el resultado
       ∧                                                                                       son valores de dom(P). La expresión {t | ¬ (t ∈ R)} no es segura:
     (∃v∈Proyectos( v[DNIDir] = u[DNI])                                                        dom(¬ (t ∈ R)) es el conjunto de todos los valores que aparecen en R. Sin embargo, es posible
     )                                                                                         tener una tupla t que no esté en préstamo que contenga valores que no aparezcan en R.
 }

Join natural

r1(A,B) r2(A,C,D)
{t | ∃ u ∈ r1(∃ v ∈ r2 (t[A] = u[A] ∧ t[B] = u[B] ∧ t[C] = v[C] ∧ t[D] = v[D] ∧ u[A] = v[A]}




                                              2-32                                                                                          2-33
Bases de datos y sistemas de información                                                            Bases de datos y sistemas de información



                                                                                                    2.2.3.3.3.             Ejemplos
2.2.3.3.            Cálculo relacional de dominios                                                  - Deseamos formar un esquema de relación con todos los empleados de la empresa.
2.2.3.3.1.                Forma general de una consulta
                                                                                                    {<dni,nom,dir,tel> | < dni,nom,dir,tel> ∈ (Programadores ∨ Analistas)}
{<x1,....,xn> | P(x1, x2, ..., xn)} con xi variables de dominio
                                                                                                    Selección
                                                                                                    - Trabajadores que trabajan entre 10 y 20 horas (ambas cantidades inclusive) en algún proyecto.
Ejemplo
                                                                                                    Entre10Y20 <-- σ(Horas>=10 and Horas<=20)(Distribución)
- códigos de proyectos en los que trabaja el empleado con DNI 4
ProyectosDNI4 <-- (σ(DNIEmp=4)(Distribución))
                                                                                                    DNI’s: 1,4,5
{t | (t∈ Distribución) ∧ (t[DNIEmp] = 4)}

{<cod> | ∃desc, dni((<cod,desc,dni>∈ Distribución) ∧ dni = 4) }                                     {t | (t ∈ Distribución) ∧ (t[Horas]>=10) ∧ (t[Horas]<=20)}

                                                                                                    {<dni> | ∃ c,h(<c,dni,h> ∈ Distribución ∧ h >=10 ∧ h <=20)}
{<cod> | ∃desc (<cod,desc, 4>∈ Distribución) }
                                                                                                    Producto Cartesiano
2.2.3.3.2.                 Fórmulas en el cálculo relacional de dominios                            Queremos conocer los nombres, direcciones y teléfonos de los empleados que dirigen algún
Pueden ser                                                                                          proyecto:
- átomos
- fórmulas compuestas                                                                               1.1 Datos de todos los empleados
- átomos                                                                                            Empleados ← Programadores U Analistas
1.- < x1, ..., xn > ∈ r donde r es una relación con n atributos donde xi son variables de dominio   Empleados(DNI, Nombre,Dirección,Teléfono)
o constantes de dominio.
                                                                                                    1.2 Hacemos el producto cartesiano con los DNI’s de los directores de proyecto:
2.- x θ y, donde x y y son variables de dominio y θ es un operador de comparación (<,>,= ...).      DNIDirPorEmpleados ←           π   DNIDir(Proyectos)        x Empleados
                                                                                                    DNIDirPorEmpleados (DNIDir, DNI, Nombre,Dirección,Teléfono)
3.- x θ c, donde x variable de dominio, c un valor del dominio de x y θ es un operador de
comparación (<,>,= ...).                                                                            1.3 Nos quedamos con los datos de los directores de proyecto
Fórmulas Compuestas                                                                                 DatosDirProyecto ←       π   Nombre, Dirección, Teléfono(   σ   DNIDir = DNI(DNIDirPorEmpleados))
                                                                                                    DatosDirProyecto(Nombre,Dirección,Teléfono)
- Un átomo es una fórmula.
Si F es una fórmula (F) y ¬F también son fórmulas.                                                  {t | ∃u(
Si F1 y F2 son formulas entonces F1 ∧ F2, F1∨F2 y F1⇒F2 también son fórmulas.                                ((u ∈ Analistas) ∨ (u ∈ Programadores))
Se pueden usar ∀y ∃ para ligar las variables de tupla. Si F(t) es una fórmula en la que aparece            ∧
libre la variable de dominio x, entonces las siguientes también son fórmulas:                               (t[Nombre] = u[Nombre])
∀x, P(x)                                                                                                   ∧
∃ x, P(x)                                                                                                 (t[Dirección] = u[Dirección])
                                                                                                           ∧
Una variable de tupla que está cuantificada se dice ligada cuando aparece en una fórmula                  (t[teléfono] = u[teléfono])
afectada por un cuantificador (∀,∃).                                                                       ∧
                                                                                                         (∃v∈Proyectos( v[DNIDir] = u[DNI])
                                                                                                         )
                                                                                                     }

                                                                                                    {<n,dir,t> | ∃dni(
                                                                                                          ((<dni,n,dir,t> ∈ Analistas) ∨ (<dni,n,dir,t> ∈ Programadores))
                                                                                                        ∧
                                                                                                       (∃cod,descr (<cod,descr,dni>∈Proyectos)
                                                                                                     }


                                                2-34                                                                                                     2-35
Bases de datos y sistemas de información




2.2.3.3.4.               Significado de una fórmula. Fórmulas seguras.
Para que tengan una fórmula {<x1,...,xn>| P(<x1,...,xn>)} del calculo relacional de dominios
tenga significado debe cumplir:

1. Todas la variables deben estar ligadas, exceptuando <x1,...,xn> que es libre.
2. La fórmula debe ser segura.

Fórmulas seguras:

Son fórmulas no-seguras las que contienen alguna subfórmula capaz de generar un número
infinito de tuplas.

{ <dni,nom,dir,tel> |  (<dni,nom,dir,tel> ∈ programadores) }

En el cálculo relacional de dominios también hay que tener en cuenta la forma de las fórmulas
dentro de las instrucciones “existe” y “para todo”. Considérese la expresión
{<x> | ∃ y (<x, y ∈ r) ∧ ∃ z (¬ (<x, z> ∈ r) ∧ P(x, z))}

donde P es una fórmula que implica a x y a z. Se puede probar la primera parte de la fórmula, ∃
y (<x, y ∈ r), tomando en consideración sólo los valores de r. Sin embargo, para probar la
segunda parte de la fórmula, ∃ z (¬ (<x, z> ∈ r) ∧ P(x, z)), hay que tomar en consideración
valores de z que no aparecen en r. Dado que todas las relaciones son finitas, no aparece en r un
número infinito de valores. Por tanto, no resulta posible en general probar la segunda parte de la
fórmula ∃ z (¬ (<x, z> ∈ r) ∧ P(x, z)), hay que tomar en consideración valores de z que no
aparecen en r. Dado que todas las relaciones son finitas, no aparece en r un número infinito de
valores. Por tanto, no es posible en general probar la segunda parte de la fórmula sin tomar en
consideración un número infinito de valores de z. En vez de eso, se añaden ligaduras para
prohibir expresiones como la anterior.

Condiciones de seguridad:
Se dice que la expresión
{<x1, x2, ..., xn> | P(x1, x2, ..., xn)}
es segura si se cumplen todas las condiciones siguientes:

1. Todos los valores que aparecen en las tuplas de la expresión son valores de dom(P).
2. Para cada subfórmula “existe” de la forma ∃ x (P1(x)), la subfórmula es cierta si y sólo si
   hay un valor x en dom(P1) tal que P1(x) es verdadero.
3. Para cada subfórmula “para todo” de la forma ∀ x (P1(x)), la subfórmula es verdadera si y
   sólo si P1(x) es verdadero para todos los valores x de dom(P1).

Teorema

Es equivalente el poder expresivo de
- el álgebra relacional
- el cálculo relacional de tuplas para fórmulas seguras
- el cálculo relacional de dominios para fórmulas seguras




                                              2-36

Contenu connexe

Tendances

Tm10 modelo relacional
Tm10 modelo relacionalTm10 modelo relacional
Tm10 modelo relacional
Julio Pari
 
2 el modelo_relacional_y_la_normalizacion
2 el modelo_relacional_y_la_normalizacion2 el modelo_relacional_y_la_normalizacion
2 el modelo_relacional_y_la_normalizacion
M.c. Omar Jasso
 
Tm11 transformación mer a mr
Tm11 transformación mer a mrTm11 transformación mer a mr
Tm11 transformación mer a mr
Julio Pari
 
modelo relacional
modelo relacionalmodelo relacional
modelo relacional
ponxo90
 
Compendio y glosario modelado relacional extendido
Compendio  y  glosario modelado relacional extendidoCompendio  y  glosario modelado relacional extendido
Compendio y glosario modelado relacional extendido
Leo Jm
 
4.guia modelo relacional
4.guia modelo relacional4.guia modelo relacional
4.guia modelo relacional
Zulma Bautista
 
Diapo fundamentos bases de datos
Diapo fundamentos bases de datosDiapo fundamentos bases de datos
Diapo fundamentos bases de datos
LUIS FRANCISCO
 
DiseñO LóGico De Bases De Datos Para El Modelo Relacional
DiseñO LóGico De Bases De Datos Para El Modelo RelacionalDiseñO LóGico De Bases De Datos Para El Modelo Relacional
DiseñO LóGico De Bases De Datos Para El Modelo Relacional
Natalia Ludeña
 
Modelo de entidad de relación
Modelo de entidad de relaciónModelo de entidad de relación
Modelo de entidad de relación
tatytaloor
 

Tendances (19)

02.modelo e r
02.modelo e r02.modelo e r
02.modelo e r
 
modelo entidad_relacion
modelo entidad_relacionmodelo entidad_relacion
modelo entidad_relacion
 
Tm10 modelo relacional
Tm10 modelo relacionalTm10 modelo relacional
Tm10 modelo relacional
 
03 Modelo Relacional
03 Modelo Relacional03 Modelo Relacional
03 Modelo Relacional
 
2 el modelo_relacional_y_la_normalizacion
2 el modelo_relacional_y_la_normalizacion2 el modelo_relacional_y_la_normalizacion
2 el modelo_relacional_y_la_normalizacion
 
Guía del MER al MR Ing. Alfonso Vicente
Guía del MER al MR Ing. Alfonso VicenteGuía del MER al MR Ing. Alfonso Vicente
Guía del MER al MR Ing. Alfonso Vicente
 
Tm11 transformación mer a mr
Tm11 transformación mer a mrTm11 transformación mer a mr
Tm11 transformación mer a mr
 
Modelo de Entidad Relacion
Modelo de Entidad RelacionModelo de Entidad Relacion
Modelo de Entidad Relacion
 
modelo relacional
modelo relacionalmodelo relacional
modelo relacional
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
3a5 victor uquillas-tarea 1
3a5 victor uquillas-tarea 13a5 victor uquillas-tarea 1
3a5 victor uquillas-tarea 1
 
Compendio y glosario modelado relacional extendido
Compendio  y  glosario modelado relacional extendidoCompendio  y  glosario modelado relacional extendido
Compendio y glosario modelado relacional extendido
 
4.guia modelo relacional
4.guia modelo relacional4.guia modelo relacional
4.guia modelo relacional
 
Diapo fundamentos bases de datos
Diapo fundamentos bases de datosDiapo fundamentos bases de datos
Diapo fundamentos bases de datos
 
Modelo entidad relaciã³ny ext
Modelo entidad relaciã³ny extModelo entidad relaciã³ny ext
Modelo entidad relaciã³ny ext
 
DiseñO LóGico De Bases De Datos Para El Modelo Relacional
DiseñO LóGico De Bases De Datos Para El Modelo RelacionalDiseñO LóGico De Bases De Datos Para El Modelo Relacional
DiseñO LóGico De Bases De Datos Para El Modelo Relacional
 
Modelo de entidad de relación
Modelo de entidad de relaciónModelo de entidad de relación
Modelo de entidad de relación
 
Modelo Entidad-Relación
Modelo Entidad-RelaciónModelo Entidad-Relación
Modelo Entidad-Relación
 
Unidad 3 Fundamentos de bases de datos
Unidad 3 Fundamentos de bases de datosUnidad 3 Fundamentos de bases de datos
Unidad 3 Fundamentos de bases de datos
 

En vedette (8)

Accions Departament Orientacio 08 09
Accions Departament Orientacio 08 09Accions Departament Orientacio 08 09
Accions Departament Orientacio 08 09
 
4ESO - Ud 05. control per ordinador
4ESO - Ud 05. control per ordinador4ESO - Ud 05. control per ordinador
4ESO - Ud 05. control per ordinador
 
4ESO - Ud 02. electrònica digital
4ESO - Ud 02. electrònica digital4ESO - Ud 02. electrònica digital
4ESO - Ud 02. electrònica digital
 
4ESO - Ud 01. electrònica
4ESO - Ud 01. electrònica4ESO - Ud 01. electrònica
4ESO - Ud 01. electrònica
 
4ESO - Ud 04. control i robòtica
4ESO - Ud 04. control i robòtica4ESO - Ud 04. control i robòtica
4ESO - Ud 04. control i robòtica
 
Ud 08. sistemes automàtics i de control
Ud 08. sistemes automàtics i de controlUd 08. sistemes automàtics i de control
Ud 08. sistemes automàtics i de control
 
22modelo R
22modelo R22modelo R
22modelo R
 
Ud 07. sistemes digitals
Ud 07. sistemes digitalsUd 07. sistemes digitals
Ud 07. sistemes digitals
 

Similaire à Modelo relacional

Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
danielglot
 
Modelo Entida- Relacion
Modelo Entida- RelacionModelo Entida- Relacion
Modelo Entida- Relacion
ingaarcadia
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
Isabel
 

Similaire à Modelo relacional (20)

Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Modelo E-R "Equipo Porchas"
Modelo E-R "Equipo Porchas"Modelo E-R "Equipo Porchas"
Modelo E-R "Equipo Porchas"
 
BASES DE DATOS CL2 para PPT.pdf
BASES DE DATOS CL2 para PPT.pdfBASES DE DATOS CL2 para PPT.pdf
BASES DE DATOS CL2 para PPT.pdf
 
MODELOS RELACIONAL.pdf
MODELOS RELACIONAL.pdfMODELOS RELACIONAL.pdf
MODELOS RELACIONAL.pdf
 
cc302modulo3
cc302modulo3cc302modulo3
cc302modulo3
 
Tema2 bases dedatosrelacional
Tema2 bases dedatosrelacionalTema2 bases dedatosrelacional
Tema2 bases dedatosrelacional
 
Actividad 2.1 modelo e r
Actividad 2.1 modelo e rActividad 2.1 modelo e r
Actividad 2.1 modelo e r
 
4DOCModelo_Relacional.pptx
4DOCModelo_Relacional.pptx4DOCModelo_Relacional.pptx
4DOCModelo_Relacional.pptx
 
Modelo entidad relacion
Modelo entidad relacionModelo entidad relacion
Modelo entidad relacion
 
Apuntes sgbd7
Apuntes sgbd7Apuntes sgbd7
Apuntes sgbd7
 
Diseño conceptual de bases de Batos
Diseño conceptual de bases de BatosDiseño conceptual de bases de Batos
Diseño conceptual de bases de Batos
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Tema9 bases datos
Tema9 bases datosTema9 bases datos
Tema9 bases datos
 
modelo er
modelo ermodelo er
modelo er
 
02.modelo e r
02.modelo e r02.modelo e r
02.modelo e r
 
Modelo Entida- Relacion
Modelo Entida- RelacionModelo Entida- Relacion
Modelo Entida- Relacion
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Reglas conversión modelo relacional
Reglas conversión modelo relacionalReglas conversión modelo relacional
Reglas conversión modelo relacional
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Sistema de gestion de base de datos ESPAM.pptx
Sistema de gestion de base de datos ESPAM.pptxSistema de gestion de base de datos ESPAM.pptx
Sistema de gestion de base de datos ESPAM.pptx
 

Modelo relacional

  • 1. Bases de datos y sistemas de información Bases de datos y sistemas de información 2.2. Modelo relacional 2.2.2. Paso del modelo ER al modelo relacional • Creado por Codd a Principios de los 70 Al traspasar información de ER al modelo relacional se pierde información (participación). En • Modelo lógico de datos de no muy alto nivel, orientado a registro. cambio, algunos requisitos que no podían representarse en el modelo ER sí van a poder • Sólida base teórica. indicarse aquí. • Implementado en muchos SGBD. • El concepto principal es la relación o tabla . 2.2.2.1. Definición de tablas 2.2.1. Terminología del modelo relacional Tipos de entidades Para cada tipo de entidad que no sea débil se crea una relación con el mismo nombre y conjunto • Entidad: Igual que en el esquema ER. También se les llama tuplas o filas de la relación. de atributos. • Atributo: Igual que en el esquema ER. También se le llaman columnas de la relación. El dominio de los atributos tiene que ser simple: no se admiten atributos multivaluados ni Ej: En el caso de la BD de secretaría los tipos de entidades dan lugar a las relaciones: compuestos. • Esquema de una relación: viene dado por el nombre de la relación y una lista de atributos. Alumnos(DNI, Apellidos y Nombre, Domicilio, teléfono, COU) Es el tipo de entidad. Asignaturas(Código, título, núm créditos) • Conjunto de entidades: Relación o tabla. Profesores(DNI, Apellidos y nombre, Domicilio, teléfono) Aulas(Edificio, núm.Edificio) Ej: alumnos(DNI, NombreYApellidos, domicilio, teléfono, cou ) Tipos de relaciones • Instancia de una relación: Conjuntos de entidades. Cada entidad se representa como una Para cada tipo de relación R se crea una relación con atributos: tupla. Cada componente de la tupla corresponde con el valor del atributo correspondiente, • Por cada tipo de entidad que participa en la relación, los atributos de la clave primaria. según el orden enunciado en el esquema de la relación. • Los atributos de la propia relación. Ej: Instancia de la relación alumnos: Ej: En el caso de la BD de secretaría los tipos de relación dan lugar a las relaciones: { (01234567Z, Manuel Vázquez Prieto, Calle del Jazmín 7 4 Izq, 91-12345678, COU = SI), ....} Matrícula(DNI, Código, Nota) Supervisa(DNI,DNI) Imparte(DNI, Código, Edificio, NumAula) Representación: En el modelo relacional no se representan diagramas del esquema de la BD. Se pueden representar instancias de una relación de la siguiente forma: Tipos de entidades débiles - El tipo de entidad débil E se transforma en una relación que incluye los atributos del tipo de Ej.: Instancia de la relación alumnos relación más los atributos necesarios para la clave de E. - Los tipos de relaciones en los que participa E deben incluir todos los atributos de la clave de E. DNI NombreyApellidos Domicilio Teléfono COU Ej: Traspasar el siguiente diagrama entidad-relación a modelo relacional: 01234567Z Manuel Vázquez Prieto Calle del Jazmín 7 4 Izq 91-12345678 SI compositores DNI NombreyApe Autor canciones en CD’s título duración intérprete Núm.serie títuloCD 2-16 2-17
  • 2. Bases de datos y sistemas de información Bases de datos y sistemas de información b) Una a varias E1 R E2 Solución: compositores(DNI, NombreYApe) Superclave: c2 canciones(titulo, duracion,NúmSerie) autor(DNI, titulo, duración, NúmSerie) c) Varias a varias en(titulo, duración, NúmSerie) <- Se debe eliminar CDs(Num.Serie, títuloCD, intérprete) E1 R E2 Generalizaciones Se tratan igual que en el caso de las entidades débiles. Superclave : c1 ∪ c2 La relación IsA no se transforma en relación Relaciones n-arias DNI Apellidos y Nombre Domicilio Teléfono Supongamos que la relación proviene de un tipo de relación R entre tipos de entidad E1, E2, ..., Ek. - Si todos participan con cardinalidad varios en R, entonces una superclave es la unión de las personas claves de E1, E2, ..., Ek. - Si algunos tipos de entidad participan con cardinalidad una en R, entonces uno de ellos puede ser excluido de la superclave. is a Ej: BD secretaría COU Alumnos(DNI, Apellidos y Nombre, Domicilio, teléfono, COU) Asignaturas(Código, título, núm.créditos) Otra clave candidata: { título } alumnos profesores Profesores(DNI, Apellidos y nombre, Domicilio, teléfono) Aulas(Edificio, núm.Edificio) personas(DNI, ApellidosyNombre, Domicilio, teléfono). Matricula(DNI, Código, Nota) alumnos(DNI, COU) Supervisa(DNISupervisor,DNISupervisado) profesores(DNI) Imparte(DNI, Codigo, Edificio,NumAula) 2.2.2.2. Claves Ej: BD de canciones: Hay dos casos: compositores(DNI, NombreYApe) 1. La relación proviene de un tipo de entidad en el esquema ER. La clave es la clave del tipo canciones(título, duración, NúmSerie) de entidad autor(DNI, título, duración, NúmSerie) 2. La relación proviene de un tipo de relación en el esquema ER. CDs(Núm.Serie, títuloCD, intérprete) Relaciones binarias: R relación binaria entre E1 y E2. R’ relación construida a partir de R Clave de E1 : c1 Clave de E2 : c2 Atributos de R’: Atributos de E1 + Atributos de E2 + Atributos de R a) Una a una E1 R E2 Dos superclaves: c1 y c2 2-18 2-19
  • 3. Bases de datos y sistemas de información Bases de datos y sistemas de información 2.2.3.1.1. Operaciones entre conjuntos: unión, intersección, diferencia 2.2.2.3. Cuestiones de diseño Son operaciones binarias que requieren: En ocasiones es posible combinar 2 o más tablas en una sola: - Los dos esquemas deben tener idénticos atributos. Ej: - En el momento de efectuar la operación se supone que el orden de las columnas es el mismo. Nombre Def.: Apell. Dados dos esquemas de relación R(A1,....,An), S(A1,....,An) Personas Nacida Países DNI La operación unión de R y S , que se denota R U S(A1,....,An), produce un esquema cuyas instancias válidas pueden escribirse de la forma (r U s), con r instancia válida de R y s instancia válida de S. Esquema de la BD: Personas(DNI, Apell.) Países(Nombre) La operación intersección de R y S , y se denota R ∩ S(A1,....,An), Nacida(DNI, Nombre) produce un esquema cuyas instancias válidas pueden escribirse de la forma (r ∩ s), con r instancia válida de R y s instancia válida de S. Nuevo Esquema: Personas(DNI,Apell, PaisNac) La operación diferencia de R y S , y se denota R S(A1,....,An), Países(Nombre) produce un esquema cuyas instancias válidas pueden escribirse de la forma (r s), con r instancia válida de R y s instancia válida de S. Ej: Esquema de BD: Ej.: personas(DNI, ApellidosyNombre, Domicilio, teléfono). - Deseamos formar un esquema de relación con todos los empleados de la empresa. alumnos(DNI, COU) Empleados <-- Programadores U Analistas profesores(DNI) - Queremos conocer a los empleados que son a la vez programadores y analistas. Esquema modificado: ProgramadoresYAnalistas <-- Programadores ∩ Analistas personas(DNI, ApellidosyNombre, Domicilio, teléfono,AlumnOProfe, COU). - Empleados que son analistas pero no programadores SoloAnalistas <-- Analistas programadores 2.2.3. Lenguajes formales del modelo relacional - Empleados que son sólo Programadores o SoloAnalistas: 2.2.3.1. Álgebra relacional SoloProgOSoloAnalistas <-- SoloAnalistas U SoloProgramadores SoloProgOSoloAnalistas <-- Empleados ProgramadoresYAnalistas Lenguaje de manipulación de datos DML (Data Management Language) de tipo procedimental que permite consultar y modificar la BD. Define operaciones sobre una o dos relaciones que producen otra relación. Operaciones fundamentales: selección, proyección, unión, diferencia de conjuntos, producto cartesiano y renombramiento. Agrupadas según: - Operaciones entre conjuntos: unión, intersección, diferencia,. - Operaciones que eliminan partes de una relación: proyección (elimina columnas) y selección (elimina filas) - Operación de renombramiento - Combinación de tuplas de 2 relaciones: productos cartesianos, uniones naturales, productos, divisiones - Extensiones del álgebra relacional. 2-20 2-21
  • 4. Bases de datos y sistemas de información Bases de datos y sistemas de información 2.2.3.1.2. Operaciones que eliminan partes de una relación Proyección y selección 2.2.3.1.3. Operación de renombramiento Def. Proyección Sea R(A1,...,An) esquema de relación. La operación de renombramiento se denota por Def: Sea R(A1,..,An) un esquema de relación y r instancia válida de R. La operación de proyección ρ S(B1,...,Bn)(R) y produce un nuevo esquema de relación con: de R respecto a Ai, Ai+1, ..., Aj lista de atributos de R, se denota πAi,Ai+1,...Aj, (R) y produce un - Nombre: S esquema de relación que tiene - Atributos: (B1,...,Bn), donde cada Bi es un nuevo nombre de atributo con el mismo dominio - como atributos Ai, Ai+1,...,Aj que Ai. - como instancias válidas los valores en Ai, Ai+1, ... Aj de las instancias válidas de R. - Instancias válidas: Las de R Ej.: Obs.: - Determinar los códigos de los proyectos en los que hay algún empleado trabajando. - Si sólo se quieren renombrar los atributos se puede omitir S, y si sólo se quiere cambiar el nombre de la relación se puede omitir (B1,...,Bn). ProyectosEnMarcha <-- π CodigoPr(Distribución) - La notación S <-- R también cambia el nombre a un esquema de relación. Selección Ej.: Def: - DNI’s de empleados que no trabajan ni dirigen ningún proyecto: Sea R(A1,..,An) un esquema de relación y r instancia válida de R. La operación de selección de DNIEmpleados π (Programadores U Analistas) <--- DNI R respecto a C se denota σC(R) y produce un esquema de relación: - Atributos: (A1,...,An) DNIEmpleadosActivos <--- ρ (π (Distribución)) U (DNI) DNIEmp ρ (π (Proyectos)) - Instancias válidas: las de R tras eliminar las tuplas que no cumplan C. (DNI) DNIDir C es la condición de selección es una fórmula construida de la siguiente forma: DNIEmpleadosNoActivos <--- DNIEmpleados DNIEmpleadosActivos C:= <nombre_atributo> <op_comparación> <nombre_atributo> C:= <nombre_atributo> <op_comparación> <constante> C:= C <AND> C C:= C <OR> C C:= <NOT> C Donde <op_comparacion> representa operadores booleanos del dominio (=). Ejs.: - Códigos de todos los proyectos en los que trabaja el empleado con DNI 4 ProyectosDNI4 <-- π CódigoPr(σ(DNIEmp=4)(Distribución)) - DNI de los trabajadores que trabajan entre 10 y 20 horas (ambas cantidades inclusive) en algún proyecto. Entre10Y20 <-- π DNIEmp (σ(Horas>=10 and Horas<=20)(Distribución)) DNI’s: 1,4,5 - Código y descripción de los proyectos dirigidos por el empleado de DNI 4 o por el empleado de DNI 6 Proyectos4o6 <--- π σ(DNIDIR=4 OR DNIDir=6)(Proyectos)) Código, Descripción( Respuesta: Códigos P1, P2, P5 2-22 2-23
  • 5. Bases de datos y sistemas de información Bases de datos y sistemas de información Join (combinación) 2.2.3.1.4. Operaciones de combinación de tuplas Def.: Se define la combinación de R1 y R2 como: Producto Cartesiano Def.: R1 C R2 = σ (R1 x R2) C Dadas dos relaciones R1, R2 esquemas de relación , la operación producto Cartesiano de R1, se denota por R1 x R2 y se define como: Donde c es una conjunción de operaciones booleanas: - Atributos: Los de R1 U los de R2. Si tienen algún nombre de atributo A común, este se C= C1 AND C2 AND C3 ..... convierte en R1.A, R2.A - Instancias: Son de la forma r1xr2, con r1 instancia de R1, r2 instancia de R2. Ej.: Ej.: Queremos conocer los nombres, direcciones y teléfonos de los empleados que dirigen algún Queremos conocer los nombres, direcciones y teléfonos de los empleados que dirigen algún proyecto: proyecto: 1 Datos de todos los empleados 1. Datos de todos los empleados Empleados ← Programadores U Analistas Empleados ← Programadores U Analistas Empleados(DNI, Nombre,Dirección,Teléfono) Empleados(DNI, Nombre,Dirección,Teléfono) 2 Hacemos el producto cartesiano con los DNI’s de los directores de proyecto: 2. Datos de los directores de proyecto DNIDirPorEmpleados ← π DNIDir(Proyectos) x Empleados DatosDirProyecto ← π Nombre, Dirección, Teléfono( Proyectos DNIDir=DNI Empleados) DNIDirPorEmpleados (DNIDir, DNI, Nombre,Dirección,Teléfono) Ej.: 3 Nos quedamos con los datos de los directores de proyecto Obtener los nombres de todos los empleados que trabajan en algún proyecto más de 10 horas: DatosDirProyecto ← π Nombre, Dirección, Teléfono( σ DNIDir = DNI(DNIDirPorEmpleados)) Dos formas: DatosDirProyecto(Nombre,Dirección,Teléfono) NombresTrabajanMasde10 ← π Nombre( C Empleados DNIEmp=DNI Distribución) AND Horas>10 Resultado Nombre Herminia Calixto Teodora Evaristo 2-24 2-25
  • 6. Bases de datos y sistemas de información Bases de datos y sistemas de información Equijoin (equicombinación) Ej.: Def.: Datos personales de los directores de proyecto. Se llaman operación Equijoin a todo join natural cuya condición es una conjunción de igualdades. DNIDirPro ← (DNI) ρ (π DNIDir(Proyectos)) DatosDirProyecto ← DNIDirPro (Programadores U Analistas) Ej.: Teorema: R1(A,B) Sean R1 y R2 dos esquemas de relación con atributos comunes (C1,....,Cj), A B atributos de A son (A1,...,An,C1,...,Cj) 1 B1 Y los de B (B1,....,Bm,C1,....,Cj) 2 B2 2 B3 Entonces R1 R2 = (salvo el orden de los atributos) R2(C,D) ρ A1,A2,...,An,B1,...,Bm,C1,...,Cj (π A1,A2,...,An,B1,...,Bm,R1.C1,...,R1.Cj ( σ (R1.C1 = R2.C2 AND ,...,AND C D R1.Cj=R2.Cj)(R1 x R2) )) 2 D1 Ej.: 2 D2 R1(A,B) R1 |x|(A=C) R2 A B A B C D 1 B1 2 B2 2 D1 2 B2 2 B2 2 D2 2 B3 2 B3 2 D1 2 B3 2 D2 R2(C,D) A C Join natural 2 C1 Def.: Sean R1(A1,...,An) y R2(B1,...,Bm) dos esquemas de relación y {C1,C2,...,Cj) la lista de los 2 C2 atributos comunes a ambas relaciones. La operación join natural (producto natural) de R1 y R2, R1 x R2 Produce un esquema de relación R1 R2 tal que: R1.A B R2.A C - Atributos: {A1,....,An} U {B1,...,Bm} (los atributos comunes sólo aparecen una vez). 1 B1 2 C1 - Instancias válidas: Dada r1 instancia válida de R1 y r2 de R2, se obtiene una instancia 1 B1 2 C2 válida de la unión natural combinando todas las tuplas u de r1 y v de r2 tales que u y v 2 B2 2 D1 coinciden sobre {C1,C2,...,Cj}. 2 B2 2 D2 2 B3 2 D1 2 B3 2 D2 σ (R1.A=R2.A)(R1 x R2 ) R1.A B R2.A C 2 B2 2 D1 2 B2 2 D2 2 B3 2 D1 2 B3 2 D2 π ρ(A,B,C) ( (R1.A,B,C) (σ (R1.A=R2.A)(R1 x R2 )) A B C 2 B2 D1 2 B2 D2 2 B3 D1 2 B3 D2 2-26 2-27
  • 7. Bases de datos y sistemas de información Bases de datos y sistemas de información Ej.: Divisiones Obtener los datos de todos datos de los empleados que comparten domicilio con otro empleado. Idea: Se utilizan para obtener consulta de en la que se busca que algún atributo de una relación tome (al menos) todos los valores de otro atributo en otra relación. Empleados(dni,nombre,domicilio) DNI Nombre Domicilio Def.: 1 Aniceto Jazmín 1 2 Eulalia Rosa 3 Sea R(A1,...,An), S(B1,...,Bm) con {B1,....,Bm}⊆{A1,...,An}. 3 Teodora Clavel 2 Entonces la operación división R÷S produce un esquema de relación 4 Macario Rosa 3 - Atributos: {C1,...,Cj} = {A1,...,An}{B1,...,Bm} 5 Anacleto Jazmín 1 - Instancias válidas: Dada r instancia válida de R, s inst. válida de S, Una tupla u está en R ÷S cuando para todo v de S, la tupla que se obtiene al unir los valores de u y v está en R. σE1.DNI<>E2.DNI AND E1.Domicilio=E2.Domicilio(ρE1(Empleados) x ρ E2(Empleados)) Ej.: R A B Ej.: A1 B1 Analistas |x| Analistas A2 B1 DNI A3 B1 4 A4 B1 5 A1 B2 6 A3 B2 A2 B3 A3 B3 A3 B3 A1 B4 A2 B4 A3 B4 S A A1 A2 A3 T B B1 B4 Ej.: Determinar los datos personales de los empleados que trabajan en todos los proyectos que trabaja el empleado Jacinto σ DatosJacinto ← (Nombre = Jacinto)(empleados)) ProyectosJacinto ← π(codigoPr)(( DatosJacincto |x|(DNI=DNIEmp)(Distribución)) DNIProyecto ← π(codigoPr, DNIEmp) (Distribución) DNIBuscados ← DNIProyecto ÷ ProyectosJacinto DatosBuscados ← ρ(DNI)(DNIBuscados) |x| empleados 2-28 2-29
  • 8. Bases de datos y sistemas de información Bases de datos y sistemas de información 2.2.3.2.3. Ejemplos 2.2.3.2. Cálculo relacional de tuplas 2.2.3.2.1. Forma general de una consulta en cálculo relacional de tuplas: - Deseamos formar un esquema de relación con todos los empleados de la empresa. {t | P(t) } = el conjunto de todas las tuplas que cumplen la condición P. P es una fórmula escrita en lógica de primer orden. {t | (t∈ Programadores) ∨ (t∈ Analistas)} t es libre Ejemplo Datos personales del empleado con DNI 3: - Queremos conocer a los empleados que son a la vez programadores {t | ((t ∈ programadores) ∨ (t ∈ Analistas)) ∧ (t[DNI] = 3]) } y analistas. 2.2.3.2.2. Fórmulas en el cálculo relacional de tuplas Pueden ser átomos y fórmulas compuestas. {t | (t∈ Programadores) ∧ (t∈ Analistas)} • Átomos. DNI: 4 Los átomos tienen una de las siguientes formas: 1.- x ∈ r. Con x una variable de tupla y r un esquema de relación. - Empleados que son analistas no programadores Una variable de tupla representa un fila genérica de una instancia válida de r. (SoloAnalistas <-- Analistas programadores) {t | (t∈ Programadores) ∧ ¬ (t∈ Analistas)} 2.- t[A] θ s[B], donde t y s son variables de tupla, A es un atributo de la relación en la que está definida la variable de tupla t, B es un atributo de la relación en la que está definida la DNI : 5,6,7 variable de tupla s, y θ es un operador de comparación (<,>,= ...) El dominio de los atributos A y B debe ser compable. - Empleados que son sólo Programadores o SoloAnalistas: Con t[A] denotamos el valor de la tupla t en el atributo A. {t | ((t∈ Programadores) ∧ ¬ (t∈ Analistas)) 3.- t[A] θ c, donde t variable de tupla, A un atributo de la relación en la que está definida la ∨ variable de tupla t, c un valor del dominio de A y θ es un operador de comparación (<,>,= (t∈ Analistas) ∧ ¬ (t∈ Programadores)} ...). • Fórmulas compuestas Para construir una fórmula se usan las siguientes reglas: 2.2.3.2.4. Operaciones Las fórmulas básicas son fórmulas. Selección Si F es una fórmula (F) y ¬F también son fórmulas. Ej: Si F1 y F2 son formulas entonces F1 ∧ F2, F1∨F2 y F1⇒F2 tambiéns on fórmulas. - proyectos en los que trabaja el empleado con DNI 4 Se pueden usar ∀y ∃ para ligar las variables de tupla. Si F(t) es una fórmula en la que ProyectosDNI4 <-- (σ(DNIEmp=4)(Distribución)) aparece libre la variable de tupla t, entonces las siguientes también son fórmulas: ∀t∈R, P(t) {t | (t∈ Distribución) ∧ (t[DNIEmp] = 4)} ∃ t∈R, P(t) Una variable de tupla que está cuantificada se dice ligada cuando aparece en una fórmula - Trabajadores que trabajan entre 10 y 20 horas (ambas cantidades inclusive) en algún proyecto. afectada por un cuantificador (∀,∃). Entre10Y20 <-- σ(Horas>=10 and Horas<=20)(Distribución) DNI’s: 1,4,5 {t | (t ∈ Distribución) ∧ (t[Horas]>=10) ∧ (t[Horas]<=20)} - Proyectos dirigidos por el empleado de DNI 4 o por el empleado de DNI 6 Proyectos4o6 <--- πCódigo, Descripción(σ(DNIDIR=4 OR DNIDir=6)(Proyectos)) Respuesta: Códigos P1, P2, P5 {t | (t ∈ Distribución) ∧ ((t[DNIDir] = 4) ∨ (t[DNIDir]=6))} 2-30 2-31
  • 9. Bases de datos y sistemas de información Bases de datos y sistemas de información División Proyección Ej: Empleados que trabajan en los mismos proyectos que Jacinto - Determinar los códigos de los proyectos en los que hay algún empleado trabajando. {t | ((t ∈ Programadores) ∨ (t ∈Analistas)) ProyectosEnMarcha <-- πCodigoPr(Distribución) ∧ ∃ j ( j ∈ Programadores ∨ j ∈Analistas) {t | ∃p ∈ Distribucion( t[CodigoPr] = p[CodigoPr])} ( j[nombre] = Jacinto ∧ (∀p∈ Distribucion) Producto Cartesiano ((p[DNIEmp] = j[DNI] ) Queremos conocer los nombres, direcciones y teléfonos de los empleados que dirigen algún ⇒ proyecto: ∃ u ((u ∈ Distribucion ) ∧ t[DNI] = u[DNIEmp] ∧ u[CodigoPr] = p[CodigoPr] 1.1 Datos de todos los empleados ) Empleados ← Programadores U Analistas ) Empleados(DNI, Nombre,Dirección,Teléfono) ) } 1.2 Hacemos el producto cartesiano con los DNI’s de los directores de proyecto: DNIDirPorEmpleados ← πDNIDir(Proyectos) x Empleados 2.2.3.2.5. Significado de una fórmula. Fórmulas seguras. DNIDirPorEmpleados (DNIDir, DNI, Nombre,Dirección,Teléfono) Para que tengan una fórmula {t | P(t)} del calculo relacional de tuplas tenga significado debe 1.3 Nos quedamos con los datos de los directores de proyecto cumplir: DatosDirProyecto ← πNombre, Dirección, Teléfono( σDNIDir = DNI(DNIDirPorEmpleados)) DatosDirProyecto(Nombre,Dirección,Teléfono) 1. Todas las variables deben estar ligadas, exceptuando t que es libre. 2. Todas las variables que aparezcan en la fórmula-condición deben pertenecer a un esquema {t | ∃u( de relación, menos quizá, t. 3. La fórmula debe ser segura. ((u ∈ Analistas) ∨ (u ∈ Programadores)) ∧ Fórmulas seguras: (t[Nombre] = u[Nombre]) Es posible que el resultado de una expresión sea infinito, por ejemplo: ∧ {t | ¬ (t ∈ R)} (t[Dirección] = u[Dirección]) Se introduce el concepto de dominio. ∧ dom(P) es el conjunto de todos los valores a los que P hace referencia (t[teléfono] = u[teléfono]) Se dice que una expresión {t | P(t)} es segura si todos los valores que aparecen en el resultado ∧ son valores de dom(P). La expresión {t | ¬ (t ∈ R)} no es segura: (∃v∈Proyectos( v[DNIDir] = u[DNI]) dom(¬ (t ∈ R)) es el conjunto de todos los valores que aparecen en R. Sin embargo, es posible ) tener una tupla t que no esté en préstamo que contenga valores que no aparezcan en R. } Join natural r1(A,B) r2(A,C,D) {t | ∃ u ∈ r1(∃ v ∈ r2 (t[A] = u[A] ∧ t[B] = u[B] ∧ t[C] = v[C] ∧ t[D] = v[D] ∧ u[A] = v[A]} 2-32 2-33
  • 10. Bases de datos y sistemas de información Bases de datos y sistemas de información 2.2.3.3.3. Ejemplos 2.2.3.3. Cálculo relacional de dominios - Deseamos formar un esquema de relación con todos los empleados de la empresa. 2.2.3.3.1. Forma general de una consulta {<dni,nom,dir,tel> | < dni,nom,dir,tel> ∈ (Programadores ∨ Analistas)} {<x1,....,xn> | P(x1, x2, ..., xn)} con xi variables de dominio Selección - Trabajadores que trabajan entre 10 y 20 horas (ambas cantidades inclusive) en algún proyecto. Ejemplo Entre10Y20 <-- σ(Horas>=10 and Horas<=20)(Distribución) - códigos de proyectos en los que trabaja el empleado con DNI 4 ProyectosDNI4 <-- (σ(DNIEmp=4)(Distribución)) DNI’s: 1,4,5 {t | (t∈ Distribución) ∧ (t[DNIEmp] = 4)} {<cod> | ∃desc, dni((<cod,desc,dni>∈ Distribución) ∧ dni = 4) } {t | (t ∈ Distribución) ∧ (t[Horas]>=10) ∧ (t[Horas]<=20)} {<dni> | ∃ c,h(<c,dni,h> ∈ Distribución ∧ h >=10 ∧ h <=20)} {<cod> | ∃desc (<cod,desc, 4>∈ Distribución) } Producto Cartesiano 2.2.3.3.2. Fórmulas en el cálculo relacional de dominios Queremos conocer los nombres, direcciones y teléfonos de los empleados que dirigen algún Pueden ser proyecto: - átomos - fórmulas compuestas 1.1 Datos de todos los empleados - átomos Empleados ← Programadores U Analistas 1.- < x1, ..., xn > ∈ r donde r es una relación con n atributos donde xi son variables de dominio Empleados(DNI, Nombre,Dirección,Teléfono) o constantes de dominio. 1.2 Hacemos el producto cartesiano con los DNI’s de los directores de proyecto: 2.- x θ y, donde x y y son variables de dominio y θ es un operador de comparación (<,>,= ...). DNIDirPorEmpleados ← π DNIDir(Proyectos) x Empleados DNIDirPorEmpleados (DNIDir, DNI, Nombre,Dirección,Teléfono) 3.- x θ c, donde x variable de dominio, c un valor del dominio de x y θ es un operador de comparación (<,>,= ...). 1.3 Nos quedamos con los datos de los directores de proyecto Fórmulas Compuestas DatosDirProyecto ← π Nombre, Dirección, Teléfono( σ DNIDir = DNI(DNIDirPorEmpleados)) DatosDirProyecto(Nombre,Dirección,Teléfono) - Un átomo es una fórmula. Si F es una fórmula (F) y ¬F también son fórmulas. {t | ∃u( Si F1 y F2 son formulas entonces F1 ∧ F2, F1∨F2 y F1⇒F2 también son fórmulas. ((u ∈ Analistas) ∨ (u ∈ Programadores)) Se pueden usar ∀y ∃ para ligar las variables de tupla. Si F(t) es una fórmula en la que aparece ∧ libre la variable de dominio x, entonces las siguientes también son fórmulas: (t[Nombre] = u[Nombre]) ∀x, P(x) ∧ ∃ x, P(x) (t[Dirección] = u[Dirección]) ∧ Una variable de tupla que está cuantificada se dice ligada cuando aparece en una fórmula (t[teléfono] = u[teléfono]) afectada por un cuantificador (∀,∃). ∧ (∃v∈Proyectos( v[DNIDir] = u[DNI]) ) } {<n,dir,t> | ∃dni( ((<dni,n,dir,t> ∈ Analistas) ∨ (<dni,n,dir,t> ∈ Programadores)) ∧ (∃cod,descr (<cod,descr,dni>∈Proyectos) } 2-34 2-35
  • 11. Bases de datos y sistemas de información 2.2.3.3.4. Significado de una fórmula. Fórmulas seguras. Para que tengan una fórmula {<x1,...,xn>| P(<x1,...,xn>)} del calculo relacional de dominios tenga significado debe cumplir: 1. Todas la variables deben estar ligadas, exceptuando <x1,...,xn> que es libre. 2. La fórmula debe ser segura. Fórmulas seguras: Son fórmulas no-seguras las que contienen alguna subfórmula capaz de generar un número infinito de tuplas. { <dni,nom,dir,tel> |  (<dni,nom,dir,tel> ∈ programadores) } En el cálculo relacional de dominios también hay que tener en cuenta la forma de las fórmulas dentro de las instrucciones “existe” y “para todo”. Considérese la expresión {<x> | ∃ y (<x, y ∈ r) ∧ ∃ z (¬ (<x, z> ∈ r) ∧ P(x, z))} donde P es una fórmula que implica a x y a z. Se puede probar la primera parte de la fórmula, ∃ y (<x, y ∈ r), tomando en consideración sólo los valores de r. Sin embargo, para probar la segunda parte de la fórmula, ∃ z (¬ (<x, z> ∈ r) ∧ P(x, z)), hay que tomar en consideración valores de z que no aparecen en r. Dado que todas las relaciones son finitas, no aparece en r un número infinito de valores. Por tanto, no resulta posible en general probar la segunda parte de la fórmula ∃ z (¬ (<x, z> ∈ r) ∧ P(x, z)), hay que tomar en consideración valores de z que no aparecen en r. Dado que todas las relaciones son finitas, no aparece en r un número infinito de valores. Por tanto, no es posible en general probar la segunda parte de la fórmula sin tomar en consideración un número infinito de valores de z. En vez de eso, se añaden ligaduras para prohibir expresiones como la anterior. Condiciones de seguridad: Se dice que la expresión {<x1, x2, ..., xn> | P(x1, x2, ..., xn)} es segura si se cumplen todas las condiciones siguientes: 1. Todos los valores que aparecen en las tuplas de la expresión son valores de dom(P). 2. Para cada subfórmula “existe” de la forma ∃ x (P1(x)), la subfórmula es cierta si y sólo si hay un valor x en dom(P1) tal que P1(x) es verdadero. 3. Para cada subfórmula “para todo” de la forma ∀ x (P1(x)), la subfórmula es verdadera si y sólo si P1(x) es verdadero para todos los valores x de dom(P1). Teorema Es equivalente el poder expresivo de - el álgebra relacional - el cálculo relacional de tuplas para fórmulas seguras - el cálculo relacional de dominios para fórmulas seguras 2-36