SlideShare uma empresa Scribd logo
1 de 73
Bases de Datos
 Relacionales
  Universidad Autonóma de Tlaxcala
      Dr. Alberto Portilla Flores
Modelo relacional



            Notas by
 Dr. José Luis Zechinelli Martini
Introducción
     El almacenamiento y la manipulación de datos
      ha sido una aplicación de importancia mayor
      desde los primeros días de las computadoras


     Las aplicaciones que requieren de almacenar
      y recuperar datos, continúan evolucionando
       Presumiblemente, las tecnologías de Gestión de
         Datos continuarán siendo el objeto de esfuerzos
         de desarrollo e innovación



3
Características
     Basado en la teoría de relaciones:
       Álgebra relacional,
       Calculo de predicados  SQL.


     Modelo de datos simple y formal.


     Alto grado de independencia física.


     Lenguaje declarativo (SQL) de manipulación de datos.

4
Conceptos (1)
     Un dominio es un conjunto de valores atómicos
      caracterizados por un nombre:

        enteros, nombres, edades, ciudades, colores_primarios, etc.



     Puede ser definido en intención o en extensión:
          enteros = lN+.
          enteros = {0, 1, 2, 3, …, ∞ }.



5
Ejemplo
     colores_primarios =
        {rojo, verde, azul}.
     nombres =
        {cadenas de 20 caracteres} ó
        {juan, pedro, pablo}.
     enteros =
          N+
          {0,1,2,3, . . ., ∞}
          {numeros <= 10}
          {1,4,6,7}

     Notas
        Por cada dominio es necesario precisar su nombre y el tipo de datos.
        Desde el punto de vista de la implementación se tienen dominios predefinidos.
           (Enteros, booleanos, etc.)



6
Conceptos (2)
     Una relación n-aria es un subconjunto de un producto
      cartesiano de n dominios.


         Sean {D1, D2, ... , Dn} un conjunto de dominios y R una relación,
         R D1 D2 ... Dn.



     Cada elemento (v1, v2, ... , vn)      R es una tupla y n es el
      grado de R.


7
Relación n-aria (1/2)
     Intención de una relación (esquema de relación):

       Dominios: D1, D2, ..., Dn.
       Constituyentes: A1, A2, ..., An donde dom(Ai) = Di con i = 1, 2, ..., n.
       Nombre de relación: R
            regla o predicado que indica si una tupla (v1, v2, ..., vn) pertenece o no al
            producto cartesiano de dominios que definen la relación.

     Extensión de una relación:

         { (v1, v2, ..., vn)   D1x D2 x ... Dn    R(v1, v2, ..., vn) = verdadero }.



8
Relación n-aria (2/2)
     Un esquema de relación de grado n se denota por R(A1, A2, ..., An).

     Un constituyente dentro de una relación indica el rol de un dominio en una
       relación.

     Una asignación de un D de valores a cada atributo o constituyente:

             Di = dom( Ai ).

             Ai : Di.

     Una tupla en R se denota por (v1, v2, ..., vn) donde vi es el valor
       correspondiente al constituyente A.

     Un predicado de pertenencia de tuplas a la relación:

             R(v1, v2, ... , vn) = verdadero.


9
Ejemplo
        D1 = Nombre
        D2 = Ciudad
        D3 = Ciudad
        Nombre = {juan, pedro, pablo}
        Ciudad = {puebla, cholula, mexico}
        Calcule D=NombrexCiudadxCiudad
        La tupla (n,v1,v2) E R tiene el significado:
          La persona de nombre n nació en la ciudad v1 y vive
           en la ciudad v2.

10
Relación n-aria: Resumen
      Intención: esquema de relación R(A1, A2, ..., An) que es invariante
        en el tiempo.

      Extensión: representa los datos presentes a un instante dado en
        la BD  estado de la BD.

      Un valor de atributo es atómico (eventualmente nulo).

      La n-tupla es una secuencia ordenada de valores de atributos.

      Una relación es un conjunto de n-tuplas donde no existe noción de
        orden.



11
Ejemplo
     R( ESCUELA, DIA, HORA, SALON, PROFESOR )

     Intención:
         El PROFESOR p da clases en la ESCUELA e el DIA d, a la HORA h,
           en la SALON s.
         El dominio del constituyente HORA está definido por el conjunto de
           enteros comprendido entre 7 y 20.
         Un profesor a una hora dada en el mismo día sólo puede estar en un
           salón.
         Los atributos DIA, HORA y PROFESOR no pueden ser nulos.



12
Esquema de relación (2)
      Se define como una pareja R = < X,         > donde X = { A1,
         A2, ..., An } un conjunto de constituyentes y
         representa parte de la semántica de la relación.

          es un conjunto de restricciones de integridad.




13
Restricciones de integridad
      Una restricción de integridad es una propiedad que no
       varía en el tiempo.

      Son un medio para asegurar que los cambios que se
       hacen en la base de datos por usuarios autorizados no
       resultan en una perdida de la coherencia de los datos.




14
Tipos de restricciones
      Restricciones de dominio: forma más elemental de restricción
        de integridad permiten probar valores insertados en la base.

      Valores nulos: la inserción de tuplas incompletas puede introducir
        valores nulos en la base. Para ciertos atributos los valores nulos
        son inapropiados.

      Llaves: por definición las tuplas de una relación son distintas
        entre si. El sistema debe asegurar esta unicidad.




15
Tipos de restricciones
      Estructurales: describe la manera en que los atributos se
       relacionan entre si.

      Restricciones referenciales: describen la manera en que se
       relacionan las tablas. Aseguran que un valor que aparece en una
       relación para un conjunto de atributos aparece para un cierto
       conjunto de atributos en otra relación.




16
Restricción referencial
                  (ejemplo)

     ESTUDIANTE           HORARIO

      CURSO     NOMBRE    CURSO    MATERIA
       IS-341     Pedro   IS-341     BD
       IS-417     Juan    IS-417     SD




17
Super-llave de una relación
      Existe un subconjunto de atributos de una relación que
       permite diferenciar a las tuplas entre si. Esto quiere decir
       que dos tuplas no tienen la misma combinación de
       valores para esos atributos.

      Todo conjunto de atributos que verifica esta propiedad
       es una super-llave del esquema.

      Existes al menos una super-llave ...



18
Llave de una relación
      Una llave es un conjunto de atributos mínimo que
       permite identificar de manera única a una tupla.
      La llave es una super-llave tal que si le quitamos un
       atributo entonces ya no es super-llave.
      Ejemplo:

       R( ID, NOMBRE, APELLIDOS, FECHA )



19
Llave extranjera: dependencias
                  inter-relaciones
        Sean R1 y R2 dos relaciones:

         Una llave extranjera impone que el valor de un grupo de atributos de R1 aparece como
         valor de llave en R2 (dependencias inter-relaciones).



         VIAJE( NUM_VIAJE, DESTINACION, SALIDA, LLEGADA, PRECIO )



         CLIENTE( NUM_CLIENTE, NOMBRE, APELLIDOS, DIRECION )



         RESERVACION(        NUM_RESERVACION,

                             NUM_VIAJE, FECHA_R, NUM_CLIENTE, OFERTA )



20
Restricciones de integridad
                   referencial

      Expresada entre dos relaciones


      Consiste en verificar que la información utilizada en
       una tupla para designar otra es válida, en particular
       si la tupla designada existe.


       Orden de creación o destrucción de las relaciones
       (tablas).

21
Esquema relacional de bases de
                      datos

      Conjunto de esquemas de relación:
           S = ( R1, R2, ..., Rn )
        conjunto de restricciones de integridad:
           (S, )
      ( R1, R2, ..., Rn ) realización de un esquema relacional.




22
ESTUDIANTE
  CURSO          NOMBRE         CIUDAD         FECHAN            DEPORTE
   IS-341          Pedro        Cholula        11/10/80          Football
   IS-341          María        Puebla         04/04/80          Natación
   IS-341          Julia        Puebla         15/03/81          Esgrima
   IS-580          Juan         Cholula        20/07/79          Football

HORARIO
CURSO DIAS         HORA       MATERIA PROFESOR        SALON        LIBRO
 IS-341     MJ 13:00-13:50      BD        José Luis       2102    Navathe
 IS-580     LMV 05:00-05:50    SBD        José Luis       2245    Navathe

RESULTADO
  NOMBRE          MATERIA     CALIFICACION
    Pedro            BD             8.0
    María            BD            10.0
    Julia            BD             9.0
                                                                       23
Ejemplo
     Dado tres esquemas de relación:

     ESTUDIANTE = <{ CURSO, NOMBRE, CIUDAD,
                     FECHAN, DEPORTE }, 1>
      a) “El estudiante de NOMBRE n toma el CURSO c, habita en la
         CIUDAD ci, tiene por FECHA de nacimiento f y práctica el
         DEPORTE d”.
      b) CIUDAD no puede ser NULO.
      c) La llave primaria de la relación ESTUDIANTE es (NOMBRE).

      1 = { a, b, c }
24
Ejemplo
     HORARIO = <{ CURSO, DIAS, HORA, MATERIA,
                           PROFESOR, SALON, LIBRO }, 2>
      d)      “El PROFESOR p enseña la MATERIA s con el LIBRO l en el
              CURSO c los DIAS d a la HORA h en el SALON s”.

      e)      “El número de horas de clase para cada curso es inferior a 30”.

      f)      “Un profesor a una hora determinada sólo puede estar en un salón
              e impartiendo un solo curso”.


           = { d, e, f }

25
Ejemplo
     RESULTADO = <{ NOMBRE, MATERIA,
                          CALIFICACION },       >


      g)   “El estudiante de NOMBRE n obtuvo la CALIFICACION c en la
           MATERIA m”.

      h)   La llave primaria de la relación RESULTADO es (NOMBRE,
           MATERIA).


       = { g, h }


26
Ejemplo
     Esquema relacional: (S, )


      i)   “El CURSO de la relación ESTUDIANTE debe existir como
           valor en la relación HORARIO”.

      j)   “La MATERIA de la relación RESULTADO debe existir como
           valor en la relación HORARIO”.

      k)   “Los NOMBREs de la relación RESULTADO están contenidos
           en el conjunto de nombres de la relación ESTUDIANTE”.


     ( S = {ESTUDIANTE, HORARIO, RESULTADO},         = { i, j, k } )
27
Ejercicio
     a)   Supongamos que se quiere agregar la siguiente tupla a la relación HORARIO:


          (IS-417, LMV, 08:00-08:50, Pablo, 7110, Mullender )


          ¿Es está una relación del esquema HORARIO?


     b)   ¿Es posible agregar en ESTUDIANTE la siguiente tupla?


          (IS-580, Alicia, México, 08/12/78, Esgrima )



28
Modelo de
                                datos
                          (modelo lógico)




     Representación de datos               Lenguaje de manipulación
           (esquema)                       (necesidades del usuario)




29
Álgebra relacional



Notas by Dr. José Luis Zechinelli Martini
¿Cómo manipular las relaciones?
 Álgebra relacional: colección de operadores que
  permiten:
   La selección de tuplas en una relación;
   La combinación de tuplas de relaciones diferentes.

 Principio:
   La aplicación de uno o más operadores sobre una relación da
    siempre como resultado una relación (cerradura).
   La información a recuperar se expresa bajo la forma de una
    relación obtenida por aplicación sucesiva de operadores
    binarios o únarios cuyos operandos son las relaciones de la
    BD.
Agencia de viajes: RUTA DEL SOL
CLIENTE         VIAJE

 NOMBRE    DIRECCION             DESTINACION          SALIDA      PRECIO
Juan      Cain Murray            Acapulco         01/06/04      2000.00
Rosario   Cain Murray            Veracruz         15/08/04      1000.00
Pedro     Ignacio Bernal
Amalia    José Gaos
                                HOTEL                   APARTAMENTOS
Celia     Coley Taylor

                                  NOMBRE       TIPO      NOMBRE           TIPO
                                 FIESTA INN       4      CITADINES           3
                                 CAMINO REAL      5      HOME LUX            5
                                 MIRADOR          3      FIESTA INN          4
RESERVACION

 NUMERO       NOMBRE       DESTINACION
001        Juan            Veracruz
002        Juan            Acapulco
003        Celia           Acapulco
004        Amalia          Acapulco
Selección
Clientes de ruta del sol que viven en el colegio Cain Murray:



CLIENTE                                   R

 NOMBRE         DIRECCION                   NOMBRE        DIRECCION
 Juan         Cain Murray                   Juan         Cain Murray
 Rosario      Cain Murray                   Rosario      Cain Murray
 Pedro        Ignacio Bernal
 Amalia       José Gaos
 Celia        Coley Taylor
Proyección
Nombre de los clientes que tienen una reservación:


                                                     R
RESERVACION

  NUMERO        NOMBRE       DESTINACION                 NOMBRE
 001           Juan          Veracruz                Juan
 002           Celia         Acapulco                Celia
 003           Amalia        Acapulco                Amalia
Producto cartesiano
Hoteles ofrecidos por ruta del sol en sus viajes

HOTEL                            VIAJE

    NOMBRE        TIPO            DESTINACION       SALIDA     PRECIO
 FIESTA INN              4        Acapulco         01/06/03   2000.00
 CAMINO REAL             5        Veracruz         15/08/03   1000.00
 MIRADOR                 3

R

    NOMBRE          TIPO          DESTINACION       SALIDA     PRECIO
 FIESTA INN                  4    Acapulco         01/06/03   2000.00
 FIESTA INN                  4    Veracruz         15/08/03   1000.00
 CAMINO REAL                 5    Acapulco         01/06/03   2000.00
 CAMINO REAL                 5    Veracruz         15/08/03   1000.00
 MIRADOR                     3    Acapulco         01/06/03   2000.00
 MIRADOR                     3    Veracruz         15/08/03   1000.00
Unión
Alojamiento con el que trabaja ruta del sol en sus destinos:

HOTEL                                  APARTAMENTOS

    NOMBRE              TIPO                 NOMBRE            TIPO
 FIESTA INN                    4        CITADINES                     3
 CAMINO REAL                   5        HOME LUX                      5
 MIRADOR                       3        FIESTA INN                    4

R

                NOMBRE                                 TIPO
 FIESTA INN                                                           4
 CAMINO REAL                                                          5
 MIRADOR                                                              3
 CITADINES                                                            3
 HOME LUX                                                             5
Diferencia
Cadenas que trabajan con ruta del sol y que sólo ofrecen hoteles:


HOTEL                                    APARTAMENTOS

      NOMBRE              TIPO                 NOMBRE               TIPO
 FIESTA INN                       4       CITADINES                        3
 CAMINO REAL                      5       HOME LUX                         5
 MIRADOR                          3       FIESTA INN                       4


                                         R

                                               NOMBRE               TIPO
                                          CAMINO REAL                      5
                                          MIRADOR                          3
Notación (1)
 Sean R(X), S(Y), T(Z) tres relaciones con:


  X = {X1, X2, ..., Xn}
  Y = {Y1, Y2, ..., Yp}
  Z = {Z1, Z2, ..., Zq}




 Las tuplas son expresadas r є R, s є S, t є T.
Notación (2)
f es una expresión de selección tal que:



 Xi θ constante con θ    { =, >, <, =, <=, >= } es una expresión
   de selección.



 Xi θ Xj son expresiones de selección.


 Si f1 y f2 son expresiones de selección, entonces f1 ^ f2, f1
   v f2, ¬ f1 son expresiones de selección.
Operaciones de base
   Operación        Notación                    Resultado
Selección       R:f            { r(X)   r   R ^ f(r) = verdadero }
                σ f (R)
Proyección      R : (A)        { r(A) r     R}
                π A (R)        A X
Producto        R×S            { t = (r, s) r     R ^ s     S}
cartesiano                     Z=X Y
Unión           R    S         {t t R v t S}
                               ( n = p ^ dom(Xi) = dom(Yi) )
Diferencia      R–S            {t t R ^ t S}
                               ( n = p ^ dom(Xi) = dom(Yi) )
Ejemplos (1)
 Selección:
  CLIENTE : DIRECCION = “Cain Murray”
  σ DIRECCION = “Cain Murray” (CLIENTE)


 Proyección:
  RESERVACION : (NOMBRE )
  π NOMBRE (RESERVACION)
  π NOMBRE (σ DIRECCION = “Cain Murray” (CLIENTE))
Ejemplos (2)
 Producto cartesiano:
   π NOMBRE, DESTINACION (HOTEL VIAJE)
   σ PRECIO < 1500 (π NOMBRE, DESTINACION (HOTEL   VIAJE))



 Unión: HOTEL        APARTAMENTOS



 Diferencia:
   HOTEL – APARTAMENTOS
   (HOTEL APARTAMENTOS) –
     (σ ¬ TIPO = 3 (HOTEL   APARTAMENTOS))
SQL



Notas by Dr. Luciano García-Bañuelos
Estructura básica de una consulta

SELECT [DISTINCT]
                          Lista-de-atributos
FROM       Lista-de-relaciones
WHERE     Predicado-de-selección



                    A(   (R1 R2 ... Rn))


                                © L. García-Bañuelos
                                                       44
Algunos comentarios
 La parte SELECT indica la lista de atributos a proyectar en el
   resultado
    La clausula opcional DISTINCT elimina tuplas duplicadas en el
      resultado
      Este es el comportamiento normal en teoría de conjuntos
    El caracter * puede substituir a la lista de atributos, e indica que
      todos serán proyectados


 La parte FROM especifica una lista de relaciones sobre las cuales se
   calculará un producto cartesiano



 La parte WHERE especifica la condición de selección
   Nótese que esta parte es opcional

                                                      © L. García-Bañuelos
                                                                             45
Nuestra primera consulta
 ¿Cuál es el nombre de los empleados que ganan más de
  34000?
                                                                 EMP
                                             NOMBRE( sal>34000(EMP))
                                                      sal>34000
   EMP
   NE    NOMBRE         PUESTO       SAL

    1     J. Pérez      Gerente     40000   select NOMBRE
    2    M. López       Analista    34000   from EMP
    3     A. Lira       Analista    34000   where sal>34000
    4     J. Mirón     Consultor    40000

    5    B. Cortina    Ingeniero    34000          NOMBRE
    6     L. Cosio    Programador   24000           J. Pérez
    7    R. Barco     Programador   24000           J. Mirón
    8     J. Aspe       Gerente     40000           J. Aspe




                                                  © L. García-Bañuelos
                                                                         46
Álgebra relacional y SQL

 (R)              select *
                  from R
                  where



                         select A
       A(R)
                         from R



                              select *
          R   S               from R, S



                                     © L. García-Bañuelos
                                                            47
Ejemplos (1/3)
                 EMP                                                  PROY
 NE   NOMBRE         PUESTO       SAL            NP        NOMBRE        PRESUPUESTO     NG

 1    J. Pérez       Gerente     40000           1         Textil IS       2000000       1

 8    J. Aspe        Gerente     40000           2         e-Portal        2500000       1



select *                                   EMP              EMP.NE=PROY.NG     PROY
from EMP, PROY
where EMP.NE = PROY.NG

        NE       NOMBRE        PUESTO    SAL          NP     NOMBRE        PRESUPUESTO       NG

         1        J. Pérez     Gerente   40000        1      Textil IS       2000000          1

         1        J. Pérez     Gerente   40000        2      e-Portal        2500000          1




                                                                  © L. García-Bañuelos
                                                                                              48
Ejemplos (2/3)
                  EMP                                       PROY
  NE   NOMBRE       PUESTO     SAL       NP      NOMBRE      PRESUPUESTO       NG

  1    J. Pérez     Gerente   40000      1       Textil IS       2000000       1

  8    J. Aspe      Gerente   40000      2       e-Portal        2500000       1



select E.NOMBRE
from EMP E, PROY P                    select DISTINCT EMP.NOMBRE
where E.NE = P.NG                     from EMP, PROY
                                      where EMP.NE = PROY.NG
       NOMBRE
                                                      NOMBRE
        J. Pérez
                                                      J. Pérez
        J. Pérez
                              Podemos asignar
                              nombres cortos a
                                cada relación
                                                        © L. García-Bañuelos
                                                                                    49
Ejemplos (3/3)
 SQL provee un operador especial para buscar cadenas con
  expresiones regulares
   EMP
   NE    NOMBRE         PUESTO       SAL

    1     J. Pérez      Gerente     40000

    2    M. López       Analista    34000
                                            select NOMBRE
                                            from EMP
    3     A. Lira       Analista    34000
                                            where NOMBRE like „%ez‟
    4     J. Mirón     Consultor    40000

    5    B. Cortina    Ingeniero    34000              NOMBRE
    6     L. Cosio    Programador   24000               J. Pérez
    7    R. Barco     Programador   24000              M. López
    8     J. Aspe       Gerente     40000




                                                      © L. García-Bañuelos
                                                                             50
Unión
 Busquemos los nombres de los gerentes de los
  proyectos
                                                                     EMP2
                 EMP1
                                                        NE   NOMBRE           PUESTO           SAL
 NE   NOMBRE       PUESTO           SAL
                                                        2    M. López         Analista     34000
 1    J. Pérez     Gerente         40000
                                                        3     A. Lira         Analista     34000
 4    J. Mirón     Consultor       40000
                                                        4     J. Mirón        Consultor    40000
 8    J. Aspe      Gerente         40000
                                                        5    B. Cortina       Ingeniero    34000


                                                     PROY
                               NP     NOMBRE          PRESUPUESTO        NG

                               1      Textil IS         2000000           1

                               2          e-Portal      2500000           3



                                                                        © L. García-Bañuelos
                                                                                                     51
Versión en SQL
 La siguiente consulta es una respuesta válida:


          select EMP1.NOMBRE
          from EMP1, PROY
          where EMP1.NE = PROY.NG

          UNION

          select EMP2.NOMBRE
          from EMP2, PROY
          where EMP2.NE = PROY.NG



                                     © L. García-Bañuelos
                                                            52
Intersección
 Busquemos ahora los nombres de los empleados que
  aparecen en ambas relaciones
                 EMP1                               EMP2

 NE   NOMBRE       PUESTO       SAL    NE   NOMBRE          PUESTO         SAL

 1    J. Pérez     Gerente     40000   2    M. López        Analista     34000

 4    J. Mirón     Consultor   40000   3     A. Lira        Analista     34000

 8    J. Aspe      Gerente     40000   4     J. Mirón      Consultor     40000

                                       5    B. Cortina     Ingeniero     34000


        select NOMBRE
        from EMP1
        INTERSECT
        select NOMBRE
        from EMP2

                                                         © L. García-Bañuelos
                                                                                 53
Diferencia
 Busquemos ahora los nombres de los empleados que están en
  EMP1 pero no en EMP2
                   EMP1                                  EMP2

   NE   NOMBRE       PUESTO       SAL       NE   NOMBRE           PUESTO           SAL

   1    J. Pérez     Gerente     40000      2    M. López         Analista     34000

   4    J. Mirón     Consultor   40000      3     A. Lira         Analista     34000

   8    J. Aspe      Gerente     40000      4     J. Mirón       Consultor     40000

                                            5    B. Cortina      Ingeniero     34000

          select NOMBRE
          from EMP1                      EXCEPT es el nombre para la
          EXCEPT                          diferencia. Algunos SGBDs
          select NOMBRE                          usan MINUS
          from EMP2

                                                            © L. García-Bañuelos
                                                                                         54
Consultas anidadas (operador IN)
 ¿Qué hace la siguiente consulta?
                                                 EMP2
     select *                          NE   NOMBRE        PUESTO         SAL
     from EMP1                         2    M. López      Analista      34000
     where NE in                       3     A. Lira      Analista      34000
           (select EMP2.NE
                                       4     J. Mirón    Consultor      40000
         from EMP2)
                                       5    B. Cortina   Ingeniero      34000

                                                 EMP1
NE     NOMBRE      PUESTO       SAL
                                       NE    NOMBRE        PUESTO        SAL
4       J. Mirón   Consultor   40000
                                        1     J. Pérez     Gerente      40000

                                        4     J. Mirón    Consultor     40000
     ¡Calcula la intersección
                                        8     J. Aspe      Gerente      40000
     de las dos relaciones!

                                                 © L. García-Bañuelos
                                                                               55
Operador IN (2/3)
   También nos sirve para calcular la semireunión



                 select *
                 from EMP
                 where NE in
                       (select NG
                     from PROY)




   En la consulta anidada, buscamos en PROY el conjunto de valores de NG
    (número de empleado del gerente de proyecto) y posteriormente seleccionamos
    todas las tuplas de EMP que tengan un NE en el resultado




                                                         © L. García-Bañuelos
                                                                                  56
Operador IN (3/3)
 Con el mismo principio, calculemos la diferencia



           select *
           from EMP1
           where NE NOT IN
                 (select EMP2.NE
               from EMP2)




                                     © L. García-Bañuelos
                                                            57
Otros operadores
 EXISTS
  Regresa un valor verdadero si una subconsulta
  resulta en una relación no nula


 Operadores de comparación con conjuntos
   Permiten comparar (cf. =, <, >, <=, >=, <>) un valor con
    las tuplas en el resultado de una consulta:

     ANY    Verdadero si alguno de ellos
                   cumplen la comparación
     ALL          Verdadero si todos cumplen la
                   comparación

                                            © L. García-Bañuelos
                                                                   58
Consultas correlacionadas
 En los ejemplos anteriores, la subconsulta es independiente de la
   externa

 Sin embargo, es posible hacer referencia a resultados en la
   consulta externa

                                  select *
                                  from EMP
                                  where EXISTS
                                        (select *
                                      from PROY
                                      where PROY.NG = EMP.NE)

  Esta consulta calcula:

      EMP      PROY.NG = EMP.NE   PROY

                                                  © L. García-Bañuelos
                                                                         59
Operadores de agregación
 Se trata de operaciones aritméticas que se aplican
  sobre los resultados en una columna
   COUNT ([DISTINCT] A)
    Número de valores (distintos) en la columna A
   SUM ([DISTINCT] A)
    Suma de todos los valores (distintos) en la columna A
   AVG ([DISTINCT] A)
    Promedio de los valores (distintos) en la columna A
   MAX(A)
    Valor máximo de la columna A
   MIN(A)
    Valor mínimo de la columna A



                                               © L. García-Bañuelos
                                                                      60
Ejemplos
 ¿Cuantos empleados están registrados en la
  relación EMP?
   EMP
   NE    NOMBRE         PUESTO      SAL
                                            select COUNT(NOMBRE)
   1      J. Pérez      Gerente     40000
                                            from EMP
   2     M. López       Analista    34000

   3      A. Lira       Analista    34000

   4      J. Mirón     Consultor    40000

   5     B. Cortina    Ingeniero    34000
                                            select COUNT(*)
   6      L. Cosio    Programador   24000   from EMP
   7     R. Barco     Programador   24000

   8      J. Aspe       Gerente     40000



                                                  © L. García-Bañuelos
                                                                         61
Ejemplos
 ¿Cuales son los nombres de los empleados con
  mayor salario?
                 select NOMBRE
                 from EMP
                 where salario =
                       (select MAX(salario)
                     from EMP)

  select NOMBRE
  from EMP
                                     ¡Una segunda alternativa
  where salario >= ALL
                                     usando operaciones de
        (select salario
                                     agregación!
      from EMP)


                                               © L. García-Bañuelos
                                                                      62
Fórmulas GROUP BY y
            HAVING
 Permiten agrupar subconjuntos de tuplas, y aplicar
  operadores de agregación


  SELECT [DISTINCT]       Lista-de-atributos
  FROM             Lista-de-relaciones
  WHERE            Predicado-de-selección
  GROUP BY         Lista-de-grupos
  HAVING           Calificación-sobre-el-grupo

                                         © L. García-Bañuelos
                                                                63
Ejemplos                                     (1/2)
 ¿Cuantos empleados hay en los diferentes puestos?

 EMP
                                          select PUESTO, COUNT(*)
  NE   NOMBRE         PUESTO       SAL
                                          from EMP
  1     J. Pérez      Gerente     40000   group by PUESTO
  2    M. López       Analista    34000

  3     A. Lira       Analista    34000          PUESTO        COUNT(*)
  4     J. Mirón     Consultor    40000          Gerente           2
  5    B. Cortina    Ingeniero    34000          Analista          2
  6     L. Cosio    Programador   24000         Consultor          1
  7    R. Barco     Programador   24000         Ingeniero          1
  8     J. Aspe       Gerente     40000        Programador         2



                                                     © L. García-Bañuelos
                                                                            64
Ejemplos                                     (2/2)
 ¿Cuantos empleados hay en los diferentes
  puestos, con salario mayor a 30000?
 EMP
                                          select PUESTO, COUNT(*)
  NE   NOMBRE         PUESTO       SAL
                                          from EMP
  1     J. Pérez      Gerente     40000   group by PUESTO
  2    M. López       Analista    34000   having SAL > 30000
  3     A. Lira       Analista    34000

  4     J. Mirón     Consultor    40000          PUESTO        COUNT(*)
  5    B. Cortina    Ingeniero    34000          Gerente           2
  6     L. Cosio    Programador   24000          Analista          2
  7    R. Barco     Programador   24000         Consultor          1
  8     J. Aspe       Gerente     40000         Ingeniero          1



                                                     © L. García-Bañuelos
                                                                            65
Concepción de bases de
        datos




     Notas by Dr. José Luis Zechinelli Martini
Objetivos del modelado
 Permitir una mejor comprensión:
    Sistemas reales demasiado complejos.
    Abstracción de los aspectos cruciales del problema.
    Omisión de detalles.


 Permitir una concepción progresiva:
      Abstracción y refinamiento sucesivos.
      Posibilidad de implementar rápidamente.
      Organización en módulos o vistas.
      Generación de las estructuras de datos y de sus tratamientos.


 Facilitar la visualización del sistema:
    Diagramas con notaciones simples y precisas.
    Comprensión visual y no solamente intelectual.
Pasos de la concepción
Cinco etapas:
 Percepción del mundo real.
 Elaboración del esquema conceptual.
 Concepción del esquema lógico.
 Afinación del esquema lógico.
 Elaboración del esquema físico.
1.- Percepción del mundo real
Esta etapa consiste en:

 Estudiar los problemas de los usuarios y comprender sus necesidades.

 Realizar entrevistas.

 Analizar la información y los procesos propios de una aplicación.

 Estudiar los casos parciales (en caso de tener problemas al entender el
   problema completo).

 Resultado: esquemas externos.

 Se requiere utilizar procesos de tipo negocios, reingeniería y de modelado de
   problemas (ingeniería de software, economía, psicología).
2.- Elaboración del esquema
                 conceptual


 Integración de los esquemas externos de la etapa precedente en un
   esquema conceptual:
    global,
    no redundante,
    Coherente.

 Ida y regreso con la etapa anterior.

 Resultado: un esquema conceptual (ER, UML).
3.- Concepción del esquema
              lógico
 Transformación del esquema conceptual en
  estructuras de datos soportados por el SGBD elegido:
   Relaciones (sistemas relacionales).
   Relaciones + tipos (sistemas objeto relacional).
   Clases y asociaciones (sistemas orientado a objetos).


 Resultado: un esquema lógico (etapa automatizable).
4.- Refinamiento del esquema
                lógico


 El esquema lógico es un buen esquema:
   Sin olvidos.
   Ni redundancia de información.

 Resultado: un esquema lógico en buena forma.
5.- Elaboración del esquema físico

Obtener un buen desempeño:

 Transacciones (identificar los patrones de acceso y de
  modificaciones frecuentes).

 Indexación.
 Reagrupar, dividir, replicar.

Mais conteúdo relacionado

Destaque

Spyl50649 pablo zuloaga y gloria roncancio-el trabajo de tu vida
Spyl50649 pablo zuloaga y gloria roncancio-el trabajo de tu vidaSpyl50649 pablo zuloaga y gloria roncancio-el trabajo de tu vida
Spyl50649 pablo zuloaga y gloria roncancio-el trabajo de tu vida
SLIDE DEPOT
 
Diagrama de barras
Diagrama de barrasDiagrama de barras
Diagrama de barras
nicolas5556
 
El computador y sus componentes
El computador y sus componentesEl computador y sus componentes
El computador y sus componentes
kamiiGomitas
 
SKIN Estética Profesional
SKIN Estética ProfesionalSKIN Estética Profesional
SKIN Estética Profesional
jaropitro
 
2012 uesjls-1 a-lalangui peña julen german
2012 uesjls-1 a-lalangui peña julen german2012 uesjls-1 a-lalangui peña julen german
2012 uesjls-1 a-lalangui peña julen german
Julen Lalangui
 
Spyl 50663 oscar mejia y jaime lopez-proyecto por no
Spyl 50663 oscar mejia y jaime lopez-proyecto por noSpyl 50663 oscar mejia y jaime lopez-proyecto por no
Spyl 50663 oscar mejia y jaime lopez-proyecto por no
SLIDE DEPOT
 
Spyl50564 diana mariño y nicolas malpica-mi voz transforma
Spyl50564 diana mariño y nicolas malpica-mi voz transformaSpyl50564 diana mariño y nicolas malpica-mi voz transforma
Spyl50564 diana mariño y nicolas malpica-mi voz transforma
SLIDE DEPOT
 
¿que significan los sueños
¿que significan los sueños¿que significan los sueños
¿que significan los sueños
anton1398
 
Instrumentos musicales
Instrumentos musicalesInstrumentos musicales
Instrumentos musicales
Danibarron
 

Destaque (20)

Spyl50649 pablo zuloaga y gloria roncancio-el trabajo de tu vida
Spyl50649 pablo zuloaga y gloria roncancio-el trabajo de tu vidaSpyl50649 pablo zuloaga y gloria roncancio-el trabajo de tu vida
Spyl50649 pablo zuloaga y gloria roncancio-el trabajo de tu vida
 
Futbol deporte rey_mundial-2590
Futbol deporte rey_mundial-2590Futbol deporte rey_mundial-2590
Futbol deporte rey_mundial-2590
 
Diagrama de barras
Diagrama de barrasDiagrama de barras
Diagrama de barras
 
Seguridad en internet
Seguridad en internetSeguridad en internet
Seguridad en internet
 
El computador y sus componentes
El computador y sus componentesEl computador y sus componentes
El computador y sus componentes
 
Presentación3
Presentación3Presentación3
Presentación3
 
SKIN Estética Profesional
SKIN Estética ProfesionalSKIN Estética Profesional
SKIN Estética Profesional
 
Trabajo lab
Trabajo labTrabajo lab
Trabajo lab
 
2012 uesjls-1 a-lalangui peña julen german
2012 uesjls-1 a-lalangui peña julen german2012 uesjls-1 a-lalangui peña julen german
2012 uesjls-1 a-lalangui peña julen german
 
Fique de guacamayas
Fique de guacamayasFique de guacamayas
Fique de guacamayas
 
Spyl 50663 oscar mejia y jaime lopez-proyecto por no
Spyl 50663 oscar mejia y jaime lopez-proyecto por noSpyl 50663 oscar mejia y jaime lopez-proyecto por no
Spyl 50663 oscar mejia y jaime lopez-proyecto por no
 
Julen lalangui peña
Julen lalangui peñaJulen lalangui peña
Julen lalangui peña
 
Empresa abc deber
Empresa abc deberEmpresa abc deber
Empresa abc deber
 
Spyl50564 diana mariño y nicolas malpica-mi voz transforma
Spyl50564 diana mariño y nicolas malpica-mi voz transformaSpyl50564 diana mariño y nicolas malpica-mi voz transforma
Spyl50564 diana mariño y nicolas malpica-mi voz transforma
 
Unidad 2 emp
Unidad 2 empUnidad 2 emp
Unidad 2 emp
 
¿Qué son los juegos?
¿Qué son los juegos?¿Qué son los juegos?
¿Qué son los juegos?
 
¿que significan los sueños
¿que significan los sueños¿que significan los sueños
¿que significan los sueños
 
Material nuevo cra 2012
Material nuevo cra 2012Material nuevo cra 2012
Material nuevo cra 2012
 
Folleto de apli inf conta tercero
Folleto de apli inf conta terceroFolleto de apli inf conta tercero
Folleto de apli inf conta tercero
 
Instrumentos musicales
Instrumentos musicalesInstrumentos musicales
Instrumentos musicales
 

Semelhante a Bases de Datos Relacionales

Unidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióNUnidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióN
Sergio Sanchez
 
fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...
fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...
fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...
ssuser869fd0
 
El modelo relacional
El modelo relacionalEl modelo relacional
El modelo relacional
Luis Jherry
 
Taller calculo conjuntos
Taller calculo conjuntosTaller calculo conjuntos
Taller calculo conjuntos
Liceo Matovelle
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
Martin Diaz
 
Tm10 modelo relacional
Tm10 modelo relacionalTm10 modelo relacional
Tm10 modelo relacional
Julio Pari
 
Relaciones Generales
Relaciones GeneralesRelaciones Generales
Relaciones Generales
nerdito
 
Logica...
Logica...Logica...
Logica...
nerdito
 

Semelhante a Bases de Datos Relacionales (20)

Calculo relacional diapositivas
Calculo relacional diapositivasCalculo relacional diapositivas
Calculo relacional diapositivas
 
Unidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióNUnidad 4 Modelo De Datos Para La ImplementacióN
Unidad 4 Modelo De Datos Para La ImplementacióN
 
03 Modelo Relacional
03 Modelo Relacional03 Modelo Relacional
03 Modelo Relacional
 
Relaciones y Grafos
Relaciones y GrafosRelaciones y Grafos
Relaciones y Grafos
 
fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...
fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...
fdocuments.es_el-modelo-relacional-john-freddy-duitama-munoz-facultad-de-inge...
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
2pdf relacoinal.pdf
2pdf relacoinal.pdf2pdf relacoinal.pdf
2pdf relacoinal.pdf
 
El modelo relacional
El modelo relacionalEl modelo relacional
El modelo relacional
 
Guia segundo periodo once
Guia segundo periodo onceGuia segundo periodo once
Guia segundo periodo once
 
Modelo Relacional
Modelo RelacionalModelo Relacional
Modelo Relacional
 
Taller calculo conjuntos
Taller calculo conjuntosTaller calculo conjuntos
Taller calculo conjuntos
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
clase 3-MODELO RELACIONAL.ppt
clase 3-MODELO RELACIONAL.pptclase 3-MODELO RELACIONAL.ppt
clase 3-MODELO RELACIONAL.ppt
 
Tm10 modelo relacional
Tm10 modelo relacionalTm10 modelo relacional
Tm10 modelo relacional
 
cc302modulo3
cc302modulo3cc302modulo3
cc302modulo3
 
Guía de Estudio sobre Relaciones y Funciones
Guía de Estudio sobre Relaciones y FuncionesGuía de Estudio sobre Relaciones y Funciones
Guía de Estudio sobre Relaciones y Funciones
 
MODELOS RELACIONAL.pdf
MODELOS RELACIONAL.pdfMODELOS RELACIONAL.pdf
MODELOS RELACIONAL.pdf
 
Relaciones Generales
Relaciones GeneralesRelaciones Generales
Relaciones Generales
 
Funciones9
Funciones9Funciones9
Funciones9
 
Logica...
Logica...Logica...
Logica...
 

Bases de Datos Relacionales

  • 1. Bases de Datos Relacionales Universidad Autonóma de Tlaxcala Dr. Alberto Portilla Flores
  • 2. Modelo relacional Notas by Dr. José Luis Zechinelli Martini
  • 3. Introducción  El almacenamiento y la manipulación de datos ha sido una aplicación de importancia mayor desde los primeros días de las computadoras  Las aplicaciones que requieren de almacenar y recuperar datos, continúan evolucionando  Presumiblemente, las tecnologías de Gestión de Datos continuarán siendo el objeto de esfuerzos de desarrollo e innovación 3
  • 4. Características  Basado en la teoría de relaciones:  Álgebra relacional,  Calculo de predicados  SQL.  Modelo de datos simple y formal.  Alto grado de independencia física.  Lenguaje declarativo (SQL) de manipulación de datos. 4
  • 5. Conceptos (1)  Un dominio es un conjunto de valores atómicos caracterizados por un nombre: enteros, nombres, edades, ciudades, colores_primarios, etc.  Puede ser definido en intención o en extensión: enteros = lN+. enteros = {0, 1, 2, 3, …, ∞ }. 5
  • 6. Ejemplo  colores_primarios =  {rojo, verde, azul}.  nombres =  {cadenas de 20 caracteres} ó  {juan, pedro, pablo}.  enteros =  N+  {0,1,2,3, . . ., ∞}  {numeros <= 10}  {1,4,6,7}  Notas  Por cada dominio es necesario precisar su nombre y el tipo de datos.  Desde el punto de vista de la implementación se tienen dominios predefinidos. (Enteros, booleanos, etc.) 6
  • 7. Conceptos (2)  Una relación n-aria es un subconjunto de un producto cartesiano de n dominios. Sean {D1, D2, ... , Dn} un conjunto de dominios y R una relación, R D1 D2 ... Dn.  Cada elemento (v1, v2, ... , vn) R es una tupla y n es el grado de R. 7
  • 8. Relación n-aria (1/2)  Intención de una relación (esquema de relación):  Dominios: D1, D2, ..., Dn.  Constituyentes: A1, A2, ..., An donde dom(Ai) = Di con i = 1, 2, ..., n.  Nombre de relación: R regla o predicado que indica si una tupla (v1, v2, ..., vn) pertenece o no al producto cartesiano de dominios que definen la relación.  Extensión de una relación: { (v1, v2, ..., vn) D1x D2 x ... Dn R(v1, v2, ..., vn) = verdadero }. 8
  • 9. Relación n-aria (2/2)  Un esquema de relación de grado n se denota por R(A1, A2, ..., An).  Un constituyente dentro de una relación indica el rol de un dominio en una relación.  Una asignación de un D de valores a cada atributo o constituyente: Di = dom( Ai ). Ai : Di.  Una tupla en R se denota por (v1, v2, ..., vn) donde vi es el valor correspondiente al constituyente A.  Un predicado de pertenencia de tuplas a la relación: R(v1, v2, ... , vn) = verdadero. 9
  • 10. Ejemplo  D1 = Nombre  D2 = Ciudad  D3 = Ciudad  Nombre = {juan, pedro, pablo}  Ciudad = {puebla, cholula, mexico}  Calcule D=NombrexCiudadxCiudad  La tupla (n,v1,v2) E R tiene el significado:  La persona de nombre n nació en la ciudad v1 y vive en la ciudad v2. 10
  • 11. Relación n-aria: Resumen  Intención: esquema de relación R(A1, A2, ..., An) que es invariante en el tiempo.  Extensión: representa los datos presentes a un instante dado en la BD  estado de la BD.  Un valor de atributo es atómico (eventualmente nulo).  La n-tupla es una secuencia ordenada de valores de atributos.  Una relación es un conjunto de n-tuplas donde no existe noción de orden. 11
  • 12. Ejemplo R( ESCUELA, DIA, HORA, SALON, PROFESOR ) Intención:  El PROFESOR p da clases en la ESCUELA e el DIA d, a la HORA h, en la SALON s.  El dominio del constituyente HORA está definido por el conjunto de enteros comprendido entre 7 y 20.  Un profesor a una hora dada en el mismo día sólo puede estar en un salón.  Los atributos DIA, HORA y PROFESOR no pueden ser nulos. 12
  • 13. Esquema de relación (2)  Se define como una pareja R = < X, > donde X = { A1, A2, ..., An } un conjunto de constituyentes y representa parte de la semántica de la relación.  es un conjunto de restricciones de integridad. 13
  • 14. Restricciones de integridad  Una restricción de integridad es una propiedad que no varía en el tiempo.  Son un medio para asegurar que los cambios que se hacen en la base de datos por usuarios autorizados no resultan en una perdida de la coherencia de los datos. 14
  • 15. Tipos de restricciones  Restricciones de dominio: forma más elemental de restricción de integridad permiten probar valores insertados en la base.  Valores nulos: la inserción de tuplas incompletas puede introducir valores nulos en la base. Para ciertos atributos los valores nulos son inapropiados.  Llaves: por definición las tuplas de una relación son distintas entre si. El sistema debe asegurar esta unicidad. 15
  • 16. Tipos de restricciones  Estructurales: describe la manera en que los atributos se relacionan entre si.  Restricciones referenciales: describen la manera en que se relacionan las tablas. Aseguran que un valor que aparece en una relación para un conjunto de atributos aparece para un cierto conjunto de atributos en otra relación. 16
  • 17. Restricción referencial (ejemplo) ESTUDIANTE HORARIO CURSO NOMBRE CURSO MATERIA IS-341 Pedro IS-341 BD IS-417 Juan IS-417 SD 17
  • 18. Super-llave de una relación  Existe un subconjunto de atributos de una relación que permite diferenciar a las tuplas entre si. Esto quiere decir que dos tuplas no tienen la misma combinación de valores para esos atributos.  Todo conjunto de atributos que verifica esta propiedad es una super-llave del esquema.  Existes al menos una super-llave ... 18
  • 19. Llave de una relación  Una llave es un conjunto de atributos mínimo que permite identificar de manera única a una tupla.  La llave es una super-llave tal que si le quitamos un atributo entonces ya no es super-llave.  Ejemplo: R( ID, NOMBRE, APELLIDOS, FECHA ) 19
  • 20. Llave extranjera: dependencias inter-relaciones  Sean R1 y R2 dos relaciones: Una llave extranjera impone que el valor de un grupo de atributos de R1 aparece como valor de llave en R2 (dependencias inter-relaciones). VIAJE( NUM_VIAJE, DESTINACION, SALIDA, LLEGADA, PRECIO ) CLIENTE( NUM_CLIENTE, NOMBRE, APELLIDOS, DIRECION ) RESERVACION( NUM_RESERVACION, NUM_VIAJE, FECHA_R, NUM_CLIENTE, OFERTA ) 20
  • 21. Restricciones de integridad referencial  Expresada entre dos relaciones  Consiste en verificar que la información utilizada en una tupla para designar otra es válida, en particular si la tupla designada existe. Orden de creación o destrucción de las relaciones (tablas). 21
  • 22. Esquema relacional de bases de datos  Conjunto de esquemas de relación: S = ( R1, R2, ..., Rn )  conjunto de restricciones de integridad: (S, )  ( R1, R2, ..., Rn ) realización de un esquema relacional. 22
  • 23. ESTUDIANTE CURSO NOMBRE CIUDAD FECHAN DEPORTE IS-341 Pedro Cholula 11/10/80 Football IS-341 María Puebla 04/04/80 Natación IS-341 Julia Puebla 15/03/81 Esgrima IS-580 Juan Cholula 20/07/79 Football HORARIO CURSO DIAS HORA MATERIA PROFESOR SALON LIBRO IS-341 MJ 13:00-13:50 BD José Luis 2102 Navathe IS-580 LMV 05:00-05:50 SBD José Luis 2245 Navathe RESULTADO NOMBRE MATERIA CALIFICACION Pedro BD 8.0 María BD 10.0 Julia BD 9.0 23
  • 24. Ejemplo Dado tres esquemas de relación: ESTUDIANTE = <{ CURSO, NOMBRE, CIUDAD, FECHAN, DEPORTE }, 1> a) “El estudiante de NOMBRE n toma el CURSO c, habita en la CIUDAD ci, tiene por FECHA de nacimiento f y práctica el DEPORTE d”. b) CIUDAD no puede ser NULO. c) La llave primaria de la relación ESTUDIANTE es (NOMBRE). 1 = { a, b, c } 24
  • 25. Ejemplo HORARIO = <{ CURSO, DIAS, HORA, MATERIA, PROFESOR, SALON, LIBRO }, 2> d) “El PROFESOR p enseña la MATERIA s con el LIBRO l en el CURSO c los DIAS d a la HORA h en el SALON s”. e) “El número de horas de clase para cada curso es inferior a 30”. f) “Un profesor a una hora determinada sólo puede estar en un salón e impartiendo un solo curso”. = { d, e, f } 25
  • 26. Ejemplo RESULTADO = <{ NOMBRE, MATERIA, CALIFICACION }, > g) “El estudiante de NOMBRE n obtuvo la CALIFICACION c en la MATERIA m”. h) La llave primaria de la relación RESULTADO es (NOMBRE, MATERIA). = { g, h } 26
  • 27. Ejemplo Esquema relacional: (S, ) i) “El CURSO de la relación ESTUDIANTE debe existir como valor en la relación HORARIO”. j) “La MATERIA de la relación RESULTADO debe existir como valor en la relación HORARIO”. k) “Los NOMBREs de la relación RESULTADO están contenidos en el conjunto de nombres de la relación ESTUDIANTE”. ( S = {ESTUDIANTE, HORARIO, RESULTADO}, = { i, j, k } ) 27
  • 28. Ejercicio a) Supongamos que se quiere agregar la siguiente tupla a la relación HORARIO: (IS-417, LMV, 08:00-08:50, Pablo, 7110, Mullender ) ¿Es está una relación del esquema HORARIO? b) ¿Es posible agregar en ESTUDIANTE la siguiente tupla? (IS-580, Alicia, México, 08/12/78, Esgrima ) 28
  • 29. Modelo de datos (modelo lógico) Representación de datos Lenguaje de manipulación (esquema) (necesidades del usuario) 29
  • 30. Álgebra relacional Notas by Dr. José Luis Zechinelli Martini
  • 31. ¿Cómo manipular las relaciones?  Álgebra relacional: colección de operadores que permiten:  La selección de tuplas en una relación;  La combinación de tuplas de relaciones diferentes.  Principio:  La aplicación de uno o más operadores sobre una relación da siempre como resultado una relación (cerradura).  La información a recuperar se expresa bajo la forma de una relación obtenida por aplicación sucesiva de operadores binarios o únarios cuyos operandos son las relaciones de la BD.
  • 32. Agencia de viajes: RUTA DEL SOL CLIENTE VIAJE NOMBRE DIRECCION DESTINACION SALIDA PRECIO Juan Cain Murray Acapulco 01/06/04 2000.00 Rosario Cain Murray Veracruz 15/08/04 1000.00 Pedro Ignacio Bernal Amalia José Gaos HOTEL APARTAMENTOS Celia Coley Taylor NOMBRE TIPO NOMBRE TIPO FIESTA INN 4 CITADINES 3 CAMINO REAL 5 HOME LUX 5 MIRADOR 3 FIESTA INN 4 RESERVACION NUMERO NOMBRE DESTINACION 001 Juan Veracruz 002 Juan Acapulco 003 Celia Acapulco 004 Amalia Acapulco
  • 33. Selección Clientes de ruta del sol que viven en el colegio Cain Murray: CLIENTE R NOMBRE DIRECCION NOMBRE DIRECCION Juan Cain Murray Juan Cain Murray Rosario Cain Murray Rosario Cain Murray Pedro Ignacio Bernal Amalia José Gaos Celia Coley Taylor
  • 34. Proyección Nombre de los clientes que tienen una reservación: R RESERVACION NUMERO NOMBRE DESTINACION NOMBRE 001 Juan Veracruz Juan 002 Celia Acapulco Celia 003 Amalia Acapulco Amalia
  • 35. Producto cartesiano Hoteles ofrecidos por ruta del sol en sus viajes HOTEL VIAJE NOMBRE TIPO DESTINACION SALIDA PRECIO FIESTA INN 4 Acapulco 01/06/03 2000.00 CAMINO REAL 5 Veracruz 15/08/03 1000.00 MIRADOR 3 R NOMBRE TIPO DESTINACION SALIDA PRECIO FIESTA INN 4 Acapulco 01/06/03 2000.00 FIESTA INN 4 Veracruz 15/08/03 1000.00 CAMINO REAL 5 Acapulco 01/06/03 2000.00 CAMINO REAL 5 Veracruz 15/08/03 1000.00 MIRADOR 3 Acapulco 01/06/03 2000.00 MIRADOR 3 Veracruz 15/08/03 1000.00
  • 36. Unión Alojamiento con el que trabaja ruta del sol en sus destinos: HOTEL APARTAMENTOS NOMBRE TIPO NOMBRE TIPO FIESTA INN 4 CITADINES 3 CAMINO REAL 5 HOME LUX 5 MIRADOR 3 FIESTA INN 4 R NOMBRE TIPO FIESTA INN 4 CAMINO REAL 5 MIRADOR 3 CITADINES 3 HOME LUX 5
  • 37. Diferencia Cadenas que trabajan con ruta del sol y que sólo ofrecen hoteles: HOTEL APARTAMENTOS NOMBRE TIPO NOMBRE TIPO FIESTA INN 4 CITADINES 3 CAMINO REAL 5 HOME LUX 5 MIRADOR 3 FIESTA INN 4 R NOMBRE TIPO CAMINO REAL 5 MIRADOR 3
  • 38. Notación (1)  Sean R(X), S(Y), T(Z) tres relaciones con: X = {X1, X2, ..., Xn} Y = {Y1, Y2, ..., Yp} Z = {Z1, Z2, ..., Zq}  Las tuplas son expresadas r є R, s є S, t є T.
  • 39. Notación (2) f es una expresión de selección tal que:  Xi θ constante con θ { =, >, <, =, <=, >= } es una expresión de selección.  Xi θ Xj son expresiones de selección.  Si f1 y f2 son expresiones de selección, entonces f1 ^ f2, f1 v f2, ¬ f1 son expresiones de selección.
  • 40. Operaciones de base Operación Notación Resultado Selección R:f { r(X) r R ^ f(r) = verdadero } σ f (R) Proyección R : (A) { r(A) r R} π A (R) A X Producto R×S { t = (r, s) r R ^ s S} cartesiano Z=X Y Unión R S {t t R v t S} ( n = p ^ dom(Xi) = dom(Yi) ) Diferencia R–S {t t R ^ t S} ( n = p ^ dom(Xi) = dom(Yi) )
  • 41. Ejemplos (1)  Selección:  CLIENTE : DIRECCION = “Cain Murray”  σ DIRECCION = “Cain Murray” (CLIENTE)  Proyección:  RESERVACION : (NOMBRE )  π NOMBRE (RESERVACION)  π NOMBRE (σ DIRECCION = “Cain Murray” (CLIENTE))
  • 42. Ejemplos (2)  Producto cartesiano:  π NOMBRE, DESTINACION (HOTEL VIAJE)  σ PRECIO < 1500 (π NOMBRE, DESTINACION (HOTEL VIAJE))  Unión: HOTEL APARTAMENTOS  Diferencia:  HOTEL – APARTAMENTOS  (HOTEL APARTAMENTOS) – (σ ¬ TIPO = 3 (HOTEL APARTAMENTOS))
  • 43. SQL Notas by Dr. Luciano García-Bañuelos
  • 44. Estructura básica de una consulta SELECT [DISTINCT] Lista-de-atributos FROM Lista-de-relaciones WHERE Predicado-de-selección A( (R1 R2 ... Rn)) © L. García-Bañuelos 44
  • 45. Algunos comentarios  La parte SELECT indica la lista de atributos a proyectar en el resultado  La clausula opcional DISTINCT elimina tuplas duplicadas en el resultado Este es el comportamiento normal en teoría de conjuntos  El caracter * puede substituir a la lista de atributos, e indica que todos serán proyectados  La parte FROM especifica una lista de relaciones sobre las cuales se calculará un producto cartesiano  La parte WHERE especifica la condición de selección  Nótese que esta parte es opcional © L. García-Bañuelos 45
  • 46. Nuestra primera consulta  ¿Cuál es el nombre de los empleados que ganan más de 34000? EMP NOMBRE( sal>34000(EMP)) sal>34000 EMP NE NOMBRE PUESTO SAL 1 J. Pérez Gerente 40000 select NOMBRE 2 M. López Analista 34000 from EMP 3 A. Lira Analista 34000 where sal>34000 4 J. Mirón Consultor 40000 5 B. Cortina Ingeniero 34000 NOMBRE 6 L. Cosio Programador 24000 J. Pérez 7 R. Barco Programador 24000 J. Mirón 8 J. Aspe Gerente 40000 J. Aspe © L. García-Bañuelos 46
  • 47. Álgebra relacional y SQL (R) select * from R where select A A(R) from R select * R S from R, S © L. García-Bañuelos 47
  • 48. Ejemplos (1/3) EMP PROY NE NOMBRE PUESTO SAL NP NOMBRE PRESUPUESTO NG 1 J. Pérez Gerente 40000 1 Textil IS 2000000 1 8 J. Aspe Gerente 40000 2 e-Portal 2500000 1 select * EMP EMP.NE=PROY.NG PROY from EMP, PROY where EMP.NE = PROY.NG NE NOMBRE PUESTO SAL NP NOMBRE PRESUPUESTO NG 1 J. Pérez Gerente 40000 1 Textil IS 2000000 1 1 J. Pérez Gerente 40000 2 e-Portal 2500000 1 © L. García-Bañuelos 48
  • 49. Ejemplos (2/3) EMP PROY NE NOMBRE PUESTO SAL NP NOMBRE PRESUPUESTO NG 1 J. Pérez Gerente 40000 1 Textil IS 2000000 1 8 J. Aspe Gerente 40000 2 e-Portal 2500000 1 select E.NOMBRE from EMP E, PROY P select DISTINCT EMP.NOMBRE where E.NE = P.NG from EMP, PROY where EMP.NE = PROY.NG NOMBRE NOMBRE J. Pérez J. Pérez J. Pérez Podemos asignar nombres cortos a cada relación © L. García-Bañuelos 49
  • 50. Ejemplos (3/3)  SQL provee un operador especial para buscar cadenas con expresiones regulares EMP NE NOMBRE PUESTO SAL 1 J. Pérez Gerente 40000 2 M. López Analista 34000 select NOMBRE from EMP 3 A. Lira Analista 34000 where NOMBRE like „%ez‟ 4 J. Mirón Consultor 40000 5 B. Cortina Ingeniero 34000 NOMBRE 6 L. Cosio Programador 24000 J. Pérez 7 R. Barco Programador 24000 M. López 8 J. Aspe Gerente 40000 © L. García-Bañuelos 50
  • 51. Unión  Busquemos los nombres de los gerentes de los proyectos EMP2 EMP1 NE NOMBRE PUESTO SAL NE NOMBRE PUESTO SAL 2 M. López Analista 34000 1 J. Pérez Gerente 40000 3 A. Lira Analista 34000 4 J. Mirón Consultor 40000 4 J. Mirón Consultor 40000 8 J. Aspe Gerente 40000 5 B. Cortina Ingeniero 34000 PROY NP NOMBRE PRESUPUESTO NG 1 Textil IS 2000000 1 2 e-Portal 2500000 3 © L. García-Bañuelos 51
  • 52. Versión en SQL  La siguiente consulta es una respuesta válida: select EMP1.NOMBRE from EMP1, PROY where EMP1.NE = PROY.NG UNION select EMP2.NOMBRE from EMP2, PROY where EMP2.NE = PROY.NG © L. García-Bañuelos 52
  • 53. Intersección  Busquemos ahora los nombres de los empleados que aparecen en ambas relaciones EMP1 EMP2 NE NOMBRE PUESTO SAL NE NOMBRE PUESTO SAL 1 J. Pérez Gerente 40000 2 M. López Analista 34000 4 J. Mirón Consultor 40000 3 A. Lira Analista 34000 8 J. Aspe Gerente 40000 4 J. Mirón Consultor 40000 5 B. Cortina Ingeniero 34000 select NOMBRE from EMP1 INTERSECT select NOMBRE from EMP2 © L. García-Bañuelos 53
  • 54. Diferencia  Busquemos ahora los nombres de los empleados que están en EMP1 pero no en EMP2 EMP1 EMP2 NE NOMBRE PUESTO SAL NE NOMBRE PUESTO SAL 1 J. Pérez Gerente 40000 2 M. López Analista 34000 4 J. Mirón Consultor 40000 3 A. Lira Analista 34000 8 J. Aspe Gerente 40000 4 J. Mirón Consultor 40000 5 B. Cortina Ingeniero 34000 select NOMBRE from EMP1 EXCEPT es el nombre para la EXCEPT diferencia. Algunos SGBDs select NOMBRE usan MINUS from EMP2 © L. García-Bañuelos 54
  • 55. Consultas anidadas (operador IN)  ¿Qué hace la siguiente consulta? EMP2 select * NE NOMBRE PUESTO SAL from EMP1 2 M. López Analista 34000 where NE in 3 A. Lira Analista 34000 (select EMP2.NE 4 J. Mirón Consultor 40000 from EMP2) 5 B. Cortina Ingeniero 34000 EMP1 NE NOMBRE PUESTO SAL NE NOMBRE PUESTO SAL 4 J. Mirón Consultor 40000 1 J. Pérez Gerente 40000 4 J. Mirón Consultor 40000 ¡Calcula la intersección 8 J. Aspe Gerente 40000 de las dos relaciones! © L. García-Bañuelos 55
  • 56. Operador IN (2/3)  También nos sirve para calcular la semireunión select * from EMP where NE in (select NG from PROY)  En la consulta anidada, buscamos en PROY el conjunto de valores de NG (número de empleado del gerente de proyecto) y posteriormente seleccionamos todas las tuplas de EMP que tengan un NE en el resultado © L. García-Bañuelos 56
  • 57. Operador IN (3/3)  Con el mismo principio, calculemos la diferencia select * from EMP1 where NE NOT IN (select EMP2.NE from EMP2) © L. García-Bañuelos 57
  • 58. Otros operadores  EXISTS Regresa un valor verdadero si una subconsulta resulta en una relación no nula  Operadores de comparación con conjuntos  Permiten comparar (cf. =, <, >, <=, >=, <>) un valor con las tuplas en el resultado de una consulta:  ANY Verdadero si alguno de ellos cumplen la comparación  ALL Verdadero si todos cumplen la comparación © L. García-Bañuelos 58
  • 59. Consultas correlacionadas  En los ejemplos anteriores, la subconsulta es independiente de la externa  Sin embargo, es posible hacer referencia a resultados en la consulta externa select * from EMP where EXISTS (select * from PROY where PROY.NG = EMP.NE) Esta consulta calcula: EMP PROY.NG = EMP.NE PROY © L. García-Bañuelos 59
  • 60. Operadores de agregación  Se trata de operaciones aritméticas que se aplican sobre los resultados en una columna  COUNT ([DISTINCT] A) Número de valores (distintos) en la columna A  SUM ([DISTINCT] A) Suma de todos los valores (distintos) en la columna A  AVG ([DISTINCT] A) Promedio de los valores (distintos) en la columna A  MAX(A) Valor máximo de la columna A  MIN(A) Valor mínimo de la columna A © L. García-Bañuelos 60
  • 61. Ejemplos  ¿Cuantos empleados están registrados en la relación EMP? EMP NE NOMBRE PUESTO SAL select COUNT(NOMBRE) 1 J. Pérez Gerente 40000 from EMP 2 M. López Analista 34000 3 A. Lira Analista 34000 4 J. Mirón Consultor 40000 5 B. Cortina Ingeniero 34000 select COUNT(*) 6 L. Cosio Programador 24000 from EMP 7 R. Barco Programador 24000 8 J. Aspe Gerente 40000 © L. García-Bañuelos 61
  • 62. Ejemplos  ¿Cuales son los nombres de los empleados con mayor salario? select NOMBRE from EMP where salario = (select MAX(salario) from EMP) select NOMBRE from EMP ¡Una segunda alternativa where salario >= ALL usando operaciones de (select salario agregación! from EMP) © L. García-Bañuelos 62
  • 63. Fórmulas GROUP BY y HAVING  Permiten agrupar subconjuntos de tuplas, y aplicar operadores de agregación SELECT [DISTINCT] Lista-de-atributos FROM Lista-de-relaciones WHERE Predicado-de-selección GROUP BY Lista-de-grupos HAVING Calificación-sobre-el-grupo © L. García-Bañuelos 63
  • 64. Ejemplos (1/2)  ¿Cuantos empleados hay en los diferentes puestos? EMP select PUESTO, COUNT(*) NE NOMBRE PUESTO SAL from EMP 1 J. Pérez Gerente 40000 group by PUESTO 2 M. López Analista 34000 3 A. Lira Analista 34000 PUESTO COUNT(*) 4 J. Mirón Consultor 40000 Gerente 2 5 B. Cortina Ingeniero 34000 Analista 2 6 L. Cosio Programador 24000 Consultor 1 7 R. Barco Programador 24000 Ingeniero 1 8 J. Aspe Gerente 40000 Programador 2 © L. García-Bañuelos 64
  • 65. Ejemplos (2/2)  ¿Cuantos empleados hay en los diferentes puestos, con salario mayor a 30000? EMP select PUESTO, COUNT(*) NE NOMBRE PUESTO SAL from EMP 1 J. Pérez Gerente 40000 group by PUESTO 2 M. López Analista 34000 having SAL > 30000 3 A. Lira Analista 34000 4 J. Mirón Consultor 40000 PUESTO COUNT(*) 5 B. Cortina Ingeniero 34000 Gerente 2 6 L. Cosio Programador 24000 Analista 2 7 R. Barco Programador 24000 Consultor 1 8 J. Aspe Gerente 40000 Ingeniero 1 © L. García-Bañuelos 65
  • 66. Concepción de bases de datos Notas by Dr. José Luis Zechinelli Martini
  • 67. Objetivos del modelado  Permitir una mejor comprensión:  Sistemas reales demasiado complejos.  Abstracción de los aspectos cruciales del problema.  Omisión de detalles.  Permitir una concepción progresiva:  Abstracción y refinamiento sucesivos.  Posibilidad de implementar rápidamente.  Organización en módulos o vistas.  Generación de las estructuras de datos y de sus tratamientos.  Facilitar la visualización del sistema:  Diagramas con notaciones simples y precisas.  Comprensión visual y no solamente intelectual.
  • 68. Pasos de la concepción Cinco etapas:  Percepción del mundo real.  Elaboración del esquema conceptual.  Concepción del esquema lógico.  Afinación del esquema lógico.  Elaboración del esquema físico.
  • 69. 1.- Percepción del mundo real Esta etapa consiste en:  Estudiar los problemas de los usuarios y comprender sus necesidades.  Realizar entrevistas.  Analizar la información y los procesos propios de una aplicación.  Estudiar los casos parciales (en caso de tener problemas al entender el problema completo).  Resultado: esquemas externos.  Se requiere utilizar procesos de tipo negocios, reingeniería y de modelado de problemas (ingeniería de software, economía, psicología).
  • 70. 2.- Elaboración del esquema conceptual  Integración de los esquemas externos de la etapa precedente en un esquema conceptual:  global,  no redundante,  Coherente.  Ida y regreso con la etapa anterior.  Resultado: un esquema conceptual (ER, UML).
  • 71. 3.- Concepción del esquema lógico  Transformación del esquema conceptual en estructuras de datos soportados por el SGBD elegido:  Relaciones (sistemas relacionales).  Relaciones + tipos (sistemas objeto relacional).  Clases y asociaciones (sistemas orientado a objetos).  Resultado: un esquema lógico (etapa automatizable).
  • 72. 4.- Refinamiento del esquema lógico  El esquema lógico es un buen esquema:  Sin olvidos.  Ni redundancia de información.  Resultado: un esquema lógico en buena forma.
  • 73. 5.- Elaboración del esquema físico Obtener un buen desempeño:  Transacciones (identificar los patrones de acceso y de modificaciones frecuentes).  Indexación.  Reagrupar, dividir, replicar.