SlideShare ist ein Scribd-Unternehmen logo
1 von 5
Downloaden Sie, um offline zu lesen
Bases de datos relacionales
                          Roberto Hernando Velasco
                            (http://www.rhernando.net)

                              24 de abril de 2004


1.     Introducci´n
                 o
    A finales de los setenta Codd introdujo la teor´ de las relaciones, proponiendo
                                                    ıa
un modelo de datos basado en relaciones o tablas. El modelo de datos relacional
tuvo un auge espectacular a finales de los setenta, y hoy en d´ es uno de los modelos
                                                             ıa
m´s utilizados por los Sistemas Gestores de Bases de Datos.
  a


2.     Estructura del modelo de relaci´n
                                      o
   El elemento b´sico del modelo relacional es la relaci´n, que se representa me-
                 a                                      o
diante una tabla (v´ase la figura 1).
                   e

               relaci´n
                     o    atributo 1    atributo 2    ...   atributo n
                          xxxx          xxxx          ...   xxxx
                          xxxx          xxxx          ...   xxxx
                          xxxx          xxxx          ...   xxxx

           Figura 1: Representaci´n de una relaci´n en forma de tabla.
                                 o               o


   En ella podemos distinguir un conjunto de columnas, denominadas atributos,
que representan propiedades de la misma, y un conjunto de filas llamadas tuplas,
que son las ocurrencias de la relaci´n. Cada uno de los atributos puede tomar valores
                                    o
dentro de un rango determinado, que se denomina dominio.
   El n´mero de filas de una relaci´n se llama cardinalidad, mientras que el n´mero
       u                             o                                         u
de columnas es el grado.

2.1.    Ejemplo de relaci´n
                         o
   En la figura 2 se tiene un ejemplo de relaci´n. El nombre de la relaci´n es
                                                o                         o
Empleados, y est´ compuesta por un subconjunto de tres elementos formados a
                 a
partir del producto cartesiano de tres conjuntos de atributos (nombre, apellido,
sueldo).

                          Nombre       Apellido      Sueldo
                           Juan        Garc´
                                           ıa         1200
                           Pedro       Guti´rrez
                                           e          1700
                           Mar´
                              ıa       L´pez
                                        o             2100

                           Figura 2: Relaci´n Empleados
                                           o



                                          1
El dominio de los atributos nombre y apellido es el conjunto de todas las cadenas
alfanum´ricas de determinada longitud, y el dominio del atributo sueldo son los
         e
n´meros positivos hasta cierta cantidad.
 u
    La cardinalidad de la relaci´n empleados es tres, correspondiente al n´mero de
                                o                                           u
filas de la tabla, y su grado es cuatro, igual al n´mero de columnas.
                                                  u
    Como queda claro en el ejemplo, en el modelo relacional la nomenclatura ma-
tem´tica (relaci´n, cardinalidad y atributos) y la propia de su representaci´n gr´fica
    a           o                                                           o    a
(tabla, filas y columnas) es intercambiable, por lo que se utilizan ambas indistinta-
mente.


2.2.     Caracter´
                 ısticas de las relaciones
    Dentro de la representaci´n de las relaciones como tablas se pueden hacer las
                             o
siguientes consideraciones:

       No puede haber filas duplicadas. Todas las tuplas tienen que ser distintas.

       El orden las filas es irrelevante.

       El orden de los atributos no es significante.

       No se admiten atributos multivaluados. Es decir, en cada celda de la tabla
       s´lo puede haber un valor.
        o


2.3.     Claves
    Como hemos visto, en una tabla no puede haber dos filas iguales. Por ello, debe
haber uno o varios atributos que se puedan utilizar para distinguir unas tuplas de
otras. Cualquier atributo o conjunto m´  ınimo (1 ) de atributos que sirva para este
prop´sito se denomina clave candidata.
      o
    A la clave candidata que se escoge para identificar las tuplas de una relaci´n se
                                                                               o
la denomina clave primaria. La elecci´n de esta clave no es unica, aunque se suele
                                      o                        ´
utilizar la m´s corta por razones de eficiencia. El resto de claves candidatas que no
             a
han sido elegidas como clave primaria reciben el nombre de claves alternativas.


3.     ´
       Algebra Relacional
   El ´lgebra relacional nos dice c´mo manipular las relaciones, mediante una serie
       a                           o
de operaciones. Matem´ticamente el ´lgebra relacional es un ´lgebra completa, es
                        a            a                         a
decir, por medio de ella se puede hacer cualquier acceso a la base de datos.


3.1.     Operadores b´sicos
                     a
   El ´lgebra relacional presenta cinco operadores b´sicos: uni´n, diferencia, pro-
      a                                                a       o
ducto cartesiano, proyecci´n y selecci´n.
                          o            o
   A partir de estos cinco operadores es posible definir todos los dem´s, como
                                                                          a
pueden ser la intersecci´n, el cociente y la uni´n natural.
                        o                       o

    1 Por conjunto m´
                    ınimo se entiende aquel conjunto de atributos tal que si se elimina uno de ellos
el conjunto resultante deja de ser clave candidata.


                                                 2
3.1.1.   Uni´n, ∪
            o

   La uni´n de dos relaciones R y S (R ∪ S) se define como el conjunto formado
          o
por todas las tuplas de R m´s todas las tuplas de S.
                           a
   Este operador s´lo se puede aplicar a relaciones del mismo grado y con los
                    o
mismos atributos.
   En la figura 3 tenemos un ejemplo de uni´n de dos relaciones.
                                            o

                                                           Relaci´n R ∪ S
                                                                 o
   Relaci´n R
         o                     Relaci´n S
                                     o
                                                           C´digo
                                                            o         Provincia
   C´digo
    o          Provincia       C´digo
                                o           Provincia        01       ´
                                                                      Alava
     01        ´
               Alava             03         Alicante         02       Albacete
     02        Albacete          04         Almer´ıa         03       Alicante
                                                             04       Almer´ıa

                       Figura 3: Ejemplo del operador uni´n
                                                         o




3.2.     Diferencia, −
   La diferencia de dos relaciones R y S (R−S) se define como el conjunto formado
por todas las tuplas de R que no est´n en S.
                                     a
   Este operador s´lo se puede aplicar a relaciones del mismo grado y con los
                    o
mismos atributos.
   V´ase el ejemplo de la figura 4.
     e

   Relaci´n R
         o                     Relaci´n S
                                     o
                                                           Relaci´n R − S
                                                                 o
   C´digo
    o          Provincia       C´digo
                                o           Provincia
               ´                                           C´digo
                                                            o         Provincia
     01        Alava             03         Alicante
                                            ´                02       Albacete
     02        Albacete          01         Alava

                     Figura 4: Ejemplo del operador diferencia




3.3.     Producto cartesiano, ×
   El producto cartesiano de dos relaciones R y S (R × S), de grados m y n
respectivamente, se define como el conjunto formado por todas las posibles tuplas
de m + n elementos en las que los m primeros elementos son de R y los n restantes
pertenecen a S.
   En la figura 5 se ve un ejemplo de producto cartesiano.


3.3.1.   Proyecci´n, π
                 o

    Si X es un subconjunto de atributos de la relaci´n R, se define la proyecci´n de R
                                                    o                         o
sobre X (πX (R)) como la relaci´n formada por las columnas de R correspondientes
                                o
a los atributos de X.
    En la figura 6 se tiene un ejemplo de proyecci´n, siendo X = (provincia).
                                                   o

                                         3
Relaci´n R × S
                                                          o
         Relaci´n R
               o                   Relaci´n S
                                         o
                                                    C´digo
                                                     o        Provincia   Cantidad
         C´digo
          o        Provincia       Cantidad           01      ´
                                                              Alava             45
           01      ´
                   Alava              45              01      ´
                                                              Alava             67
           02      Albacete           67              02      Albacete          45
                                                      02      Albacete          67

                Figura 5: Ejemplo del operador producto cartesiano


          Relaci´n R
                o                               Relaci´n πX (R)
                                                      o

          C´digo
           o          Provincia                   Provincia
            01        ´
                      Alava                         ´
                                                    Alava
            02        Albacete                     Albacete

                       Figura 6: Ejemplo del operador proyecci´n
                                                              o



3.3.2.    Selecci´n, σ
                 o
    Si F es una f´rmula compuesta por operadores l´gicos, aritm´ticos y de compa-
                 o                                    o           e
raci´n, y sus operandos son los valores de los atributos de una relaci´n R, entonces
    o                                                                 o
la selecci´n σF (R) es el conjunto de tuplas de la relaci´n R que hacen verdadera la
          o                                              o
condici´n establecida por la f´rmula F .
        o                      o
    En la figura 7 tenemos un ejemplo, donde F = (c´digo = ’01’) OR (Provincia
                                                         o
> ’Alicante’)

          Relaci´n R
                o
                                                Relaci´n σF (R)
                                                      o
          C´digo
           o          Provincia
            01        ´
                      Alava                     C´digo
                                                 o        Provincia
            02        Albacete                    01      ´
                                                          Alava
            03        Alicante                    04      Almer´ıa
            04        Almer´ıa

                       Figura 7: Ejemplo del operador selecci´n
                                                             o




4.       El lenguaje SQL
    El SQL (Structured Query Language) es el lenguaje de manipulaci´n de datos
                                                                      o
relacionales m´s extendido, habi´ndose convertido en un est´ndar de facto.
              a                 e                          a
    SQL permite realizar consultas utilizando los recursos del ´lgebra relacional
                                                               a
combinados con el c´lculo relacional de tuplas.
                    a

4.1.     Partes del lenguaje SQL
4.1.1.    Lenguaje de Descripci´n de Datos, DDL (Data Description Lan-
                               o
          guage)
    Es el lenguaje utilizado para la creaci´n y mantenimiento de la estructura de
                                           o
la base de datos. Se utiliza para definir y modificar los esquemas de las relaciones,

                                          4
crear o destruir ´
                 ındices y eliminar relaciones. Permite tambi´n la definici´n de vistas
                                                             e            o
y permisos de acceso para los usuarios.
   Es el lenguaje que utiliza el administrador de la base de datos para realizar sus
tareas.

4.1.2.   Lenguaje de Manipulaci´n de Datos, DML (Data Manipulation
                               o
         Language)
    Incluye todas las instrucciones para realizar consultas a las bases de datos, in-
sertar, modificar o eliminar datos.
    Es el que utilizan los usuarios finales en la fase de explotaci´n de la base de
                                                                   o
datos.

4.2.     Definici´n de datos
                o
4.2.1.   Creaci´n de tablas
               o
   Las tablas se crean con el comando CREATE TABLE, de la siguiente forma:

       CREATE TABLE nombreTabla (
               nombreColumna1     tipoColumna1,
               nombreColumna2     tipoColumna2,
               ...
               PRIMARY KEY (columnasClave)
               )

4.2.2.   Actualizaci´n de tablas
                    o
    Despu´s de crear las tablas se puede insertar, modificar o eliminar informaci´n
          e                                                                     o
en las mismas, mediante los siguientes comandos:

       INSERT INTO nombreTabla
                [(listaColumnas)]
                {VALUES (datos) | comandoSelecci´n}
                                                o

       UPDATE nombreTabla
                 SET nombreColumna = expresi´n
                                            o

       DELETE FROM nombreTabla
                 WHERE condici´n
                              o

4.3.     Consultas
4.3.1.   El comando SELECT
    Las consultas en SQL son posibles gracias al comando SELECT, que tiene la
siguiente estructura:

       SELECT atributos
                   FROM relaciones
                   [WHERE condici´n]
                                 o

    En t´rminos de ´lgebra relacional, el comando SELECT es equivalente a la
          e           a
asociaci´n de una selecci´n, una proyecci´n y un producto cartesiano. Los atributos
         o                o               o
de la proyecci´n se especifican en la cl´usula SELECT; la cl´usula FROM especifica
               o                       a                     a
las relaciones de las que se han de tomar esos atributos; y la cl´usula WHERE (que
                                                                 a
es opcional) contiene una condici´n de selecci´n.
                                   o           o


                                          5

Weitere ähnliche Inhalte

Was ist angesagt?

Algebra relacional (operaciones)
Algebra relacional (operaciones)Algebra relacional (operaciones)
Algebra relacional (operaciones)sarai0000
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas samuel mora
 
Algebra Relacional
Algebra RelacionalAlgebra Relacional
Algebra RelacionalBlanca Parra
 
funciones
funciones funciones
funciones scholem
 
Algebra y calculo relacional
Algebra y calculo relacionalAlgebra y calculo relacional
Algebra y calculo relacionalAlbert Sinergy
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacionalclaudyabra
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Byron Vicuña
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Pamelaguibkdoe
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Mario Masqui
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Elizabeth Miño
 
Capitulo 5 de microsoft excel (2011 2012)
Capitulo 5  de microsoft  excel  (2011 2012)Capitulo 5  de microsoft  excel  (2011 2012)
Capitulo 5 de microsoft excel (2011 2012)ALECOXSDB
 
Diseño de base de datos moo
Diseño de base de datos mooDiseño de base de datos moo
Diseño de base de datos moojosevara
 
Base de datos: Algebra relacional
Base de datos: Algebra relacionalBase de datos: Algebra relacional
Base de datos: Algebra relacionalkamui002
 

Was ist angesagt? (17)

Algebra relacional (operaciones)
Algebra relacional (operaciones)Algebra relacional (operaciones)
Algebra relacional (operaciones)
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas
 
Algebra Relacional
Algebra RelacionalAlgebra Relacional
Algebra Relacional
 
funciones
funciones funciones
funciones
 
Algebra y calculo relacional
Algebra y calculo relacionalAlgebra y calculo relacional
Algebra y calculo relacional
 
Algebra 2
Algebra 2Algebra 2
Algebra 2
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas Estructura de datos manipulación de listas y tablas
Estructura de datos manipulación de listas y tablas
 
Capitulo 5 de microsoft excel (2011 2012)
Capitulo 5  de microsoft  excel  (2011 2012)Capitulo 5  de microsoft  excel  (2011 2012)
Capitulo 5 de microsoft excel (2011 2012)
 
Diseño de base de datos moo
Diseño de base de datos mooDiseño de base de datos moo
Diseño de base de datos moo
 
Prontuario2012
Prontuario2012Prontuario2012
Prontuario2012
 
Base de datos: Algebra relacional
Base de datos: Algebra relacionalBase de datos: Algebra relacional
Base de datos: Algebra relacional
 
Recordatorio
RecordatorioRecordatorio
Recordatorio
 

Andere mochten auch

IABCSeattle - Angee Linsey on Creating Key Messages To Tell Your Own Story
IABCSeattle - Angee Linsey on Creating Key Messages To Tell Your Own StoryIABCSeattle - Angee Linsey on Creating Key Messages To Tell Your Own Story
IABCSeattle - Angee Linsey on Creating Key Messages To Tell Your Own StoryIABC Seattle
 
薏苡仁粉
薏苡仁粉薏苡仁粉
薏苡仁粉mikejiang
 
Using The Legislative Process to Further Your Business
Using The Legislative Process to Further Your BusinessUsing The Legislative Process to Further Your Business
Using The Legislative Process to Further Your BusinessParsons Behle & Latimer
 
How to review your grades
How to review your gradesHow to review your grades
How to review your gradesNCVPS
 
Propaganda de pepsi gabriel cornejo 4to b
Propaganda de pepsi gabriel cornejo 4to bPropaganda de pepsi gabriel cornejo 4to b
Propaganda de pepsi gabriel cornejo 4to bgabuxitopcornejo
 
Batalha das fronteiras
Batalha das fronteirasBatalha das fronteiras
Batalha das fronteirastyromello
 
Hipertexto coordinacion
Hipertexto coordinacionHipertexto coordinacion
Hipertexto coordinacionnoemilopez1956
 
(12) Wrapped Monogram Dance Floor
(12) Wrapped Monogram Dance Floor(12) Wrapped Monogram Dance Floor
(12) Wrapped Monogram Dance FloorBlue Sky Events
 
proteinas estructuracion
proteinas estructuracionproteinas estructuracion
proteinas estructuracionrobertoadilson
 
Control committee high level status
Control committee high level statusControl committee high level status
Control committee high level statusDimitry Shlyonsky
 
Sustentacion 102505, Grupo: 433
Sustentacion 102505, Grupo: 433Sustentacion 102505, Grupo: 433
Sustentacion 102505, Grupo: 433UNAD
 
Comunicado 002 modificado
Comunicado 002 modificadoComunicado 002 modificado
Comunicado 002 modificadoAsepcut
 
Eduardo flores trejo. gema aragones icgfm social_controlmechanisms_armenia
Eduardo flores trejo. gema aragones  icgfm social_controlmechanisms_armeniaEduardo flores trejo. gema aragones  icgfm social_controlmechanisms_armenia
Eduardo flores trejo. gema aragones icgfm social_controlmechanisms_armeniaicgfmconference
 
Flavio cattaneo terna verso un ruolo da leader nel futuro hub elettrico europeo
Flavio cattaneo terna verso un ruolo da leader nel futuro hub elettrico europeoFlavio cattaneo terna verso un ruolo da leader nel futuro hub elettrico europeo
Flavio cattaneo terna verso un ruolo da leader nel futuro hub elettrico europeoTheEnergyNews
 
Universidad y Buen Vivir
Universidad y Buen VivirUniversidad y Buen Vivir
Universidad y Buen VivirDenisIcaza
 

Andere mochten auch (20)

IABCSeattle - Angee Linsey on Creating Key Messages To Tell Your Own Story
IABCSeattle - Angee Linsey on Creating Key Messages To Tell Your Own StoryIABCSeattle - Angee Linsey on Creating Key Messages To Tell Your Own Story
IABCSeattle - Angee Linsey on Creating Key Messages To Tell Your Own Story
 
薏苡仁粉
薏苡仁粉薏苡仁粉
薏苡仁粉
 
Using The Legislative Process to Further Your Business
Using The Legislative Process to Further Your BusinessUsing The Legislative Process to Further Your Business
Using The Legislative Process to Further Your Business
 
How to review your grades
How to review your gradesHow to review your grades
How to review your grades
 
IMC IMPRIVA
IMC IMPRIVAIMC IMPRIVA
IMC IMPRIVA
 
Propaganda de pepsi gabriel cornejo 4to b
Propaganda de pepsi gabriel cornejo 4to bPropaganda de pepsi gabriel cornejo 4to b
Propaganda de pepsi gabriel cornejo 4to b
 
Batalha das fronteiras
Batalha das fronteirasBatalha das fronteiras
Batalha das fronteiras
 
Hipertexto coordinacion
Hipertexto coordinacionHipertexto coordinacion
Hipertexto coordinacion
 
Naira
NairaNaira
Naira
 
(12) Wrapped Monogram Dance Floor
(12) Wrapped Monogram Dance Floor(12) Wrapped Monogram Dance Floor
(12) Wrapped Monogram Dance Floor
 
proteinas estructuracion
proteinas estructuracionproteinas estructuracion
proteinas estructuracion
 
Control committee high level status
Control committee high level statusControl committee high level status
Control committee high level status
 
Jornal do mes de maio 2013
Jornal do mes de maio 2013Jornal do mes de maio 2013
Jornal do mes de maio 2013
 
Sustentacion 102505, Grupo: 433
Sustentacion 102505, Grupo: 433Sustentacion 102505, Grupo: 433
Sustentacion 102505, Grupo: 433
 
Comunicado 002 modificado
Comunicado 002 modificadoComunicado 002 modificado
Comunicado 002 modificado
 
Atividade 3.9
Atividade 3.9Atividade 3.9
Atividade 3.9
 
Eduardo flores trejo. gema aragones icgfm social_controlmechanisms_armenia
Eduardo flores trejo. gema aragones  icgfm social_controlmechanisms_armeniaEduardo flores trejo. gema aragones  icgfm social_controlmechanisms_armenia
Eduardo flores trejo. gema aragones icgfm social_controlmechanisms_armenia
 
Flavio cattaneo terna verso un ruolo da leader nel futuro hub elettrico europeo
Flavio cattaneo terna verso un ruolo da leader nel futuro hub elettrico europeoFlavio cattaneo terna verso un ruolo da leader nel futuro hub elettrico europeo
Flavio cattaneo terna verso un ruolo da leader nel futuro hub elettrico europeo
 
Pantheon
PantheonPantheon
Pantheon
 
Universidad y Buen Vivir
Universidad y Buen VivirUniversidad y Buen Vivir
Universidad y Buen Vivir
 

Ähnlich wie Bdr

Ähnlich wie Bdr (20)

03 Modelo Relacional
03 Modelo Relacional03 Modelo Relacional
03 Modelo Relacional
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
Raices
RaicesRaices
Raices
 
Formas normales
Formas normalesFormas normales
Formas normales
 
El modelo relacional
El modelo relacionalEl modelo relacional
El modelo relacional
 
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...
 
Relaciones y Grafos
Relaciones y GrafosRelaciones y Grafos
Relaciones y Grafos
 
Ud2 el modelo relacional
Ud2  el modelo relacionalUd2  el modelo relacional
Ud2 el modelo relacional
 
Modelo de Entidad Relacion
Modelo de Entidad RelacionModelo de Entidad Relacion
Modelo de Entidad Relacion
 
Tema2 bases dedatosrelacional
Tema2 bases dedatosrelacionalTema2 bases dedatosrelacional
Tema2 bases dedatosrelacional
 
Números reales
Números realesNúmeros reales
Números reales
 
La Evolución de la Matemática Hasta la Actualidad
La Evolución de la Matemática Hasta la ActualidadLa Evolución de la Matemática Hasta la Actualidad
La Evolución de la Matemática Hasta la Actualidad
 
El modelo relacional
El modelo relacionalEl modelo relacional
El modelo relacional
 
2.3.1. el modelorelacional
2.3.1. el modelorelacional2.3.1. el modelorelacional
2.3.1. el modelorelacional
 
Modelo relacional
Modelo relacionalModelo relacional
Modelo relacional
 
PresentacióN Tema 8
PresentacióN Tema 8PresentacióN Tema 8
PresentacióN Tema 8
 
Tm10 modelo relacional
Tm10 modelo relacionalTm10 modelo relacional
Tm10 modelo relacional
 
Calculo relacional1
Calculo relacional1Calculo relacional1
Calculo relacional1
 
presentacion
presentacionpresentacion
presentacion
 
D clase
D claseD clase
D clase
 

Bdr

  • 1. Bases de datos relacionales Roberto Hernando Velasco (http://www.rhernando.net) 24 de abril de 2004 1. Introducci´n o A finales de los setenta Codd introdujo la teor´ de las relaciones, proponiendo ıa un modelo de datos basado en relaciones o tablas. El modelo de datos relacional tuvo un auge espectacular a finales de los setenta, y hoy en d´ es uno de los modelos ıa m´s utilizados por los Sistemas Gestores de Bases de Datos. a 2. Estructura del modelo de relaci´n o El elemento b´sico del modelo relacional es la relaci´n, que se representa me- a o diante una tabla (v´ase la figura 1). e relaci´n o atributo 1 atributo 2 ... atributo n xxxx xxxx ... xxxx xxxx xxxx ... xxxx xxxx xxxx ... xxxx Figura 1: Representaci´n de una relaci´n en forma de tabla. o o En ella podemos distinguir un conjunto de columnas, denominadas atributos, que representan propiedades de la misma, y un conjunto de filas llamadas tuplas, que son las ocurrencias de la relaci´n. Cada uno de los atributos puede tomar valores o dentro de un rango determinado, que se denomina dominio. El n´mero de filas de una relaci´n se llama cardinalidad, mientras que el n´mero u o u de columnas es el grado. 2.1. Ejemplo de relaci´n o En la figura 2 se tiene un ejemplo de relaci´n. El nombre de la relaci´n es o o Empleados, y est´ compuesta por un subconjunto de tres elementos formados a a partir del producto cartesiano de tres conjuntos de atributos (nombre, apellido, sueldo). Nombre Apellido Sueldo Juan Garc´ ıa 1200 Pedro Guti´rrez e 1700 Mar´ ıa L´pez o 2100 Figura 2: Relaci´n Empleados o 1
  • 2. El dominio de los atributos nombre y apellido es el conjunto de todas las cadenas alfanum´ricas de determinada longitud, y el dominio del atributo sueldo son los e n´meros positivos hasta cierta cantidad. u La cardinalidad de la relaci´n empleados es tres, correspondiente al n´mero de o u filas de la tabla, y su grado es cuatro, igual al n´mero de columnas. u Como queda claro en el ejemplo, en el modelo relacional la nomenclatura ma- tem´tica (relaci´n, cardinalidad y atributos) y la propia de su representaci´n gr´fica a o o a (tabla, filas y columnas) es intercambiable, por lo que se utilizan ambas indistinta- mente. 2.2. Caracter´ ısticas de las relaciones Dentro de la representaci´n de las relaciones como tablas se pueden hacer las o siguientes consideraciones: No puede haber filas duplicadas. Todas las tuplas tienen que ser distintas. El orden las filas es irrelevante. El orden de los atributos no es significante. No se admiten atributos multivaluados. Es decir, en cada celda de la tabla s´lo puede haber un valor. o 2.3. Claves Como hemos visto, en una tabla no puede haber dos filas iguales. Por ello, debe haber uno o varios atributos que se puedan utilizar para distinguir unas tuplas de otras. Cualquier atributo o conjunto m´ ınimo (1 ) de atributos que sirva para este prop´sito se denomina clave candidata. o A la clave candidata que se escoge para identificar las tuplas de una relaci´n se o la denomina clave primaria. La elecci´n de esta clave no es unica, aunque se suele o ´ utilizar la m´s corta por razones de eficiencia. El resto de claves candidatas que no a han sido elegidas como clave primaria reciben el nombre de claves alternativas. 3. ´ Algebra Relacional El ´lgebra relacional nos dice c´mo manipular las relaciones, mediante una serie a o de operaciones. Matem´ticamente el ´lgebra relacional es un ´lgebra completa, es a a a decir, por medio de ella se puede hacer cualquier acceso a la base de datos. 3.1. Operadores b´sicos a El ´lgebra relacional presenta cinco operadores b´sicos: uni´n, diferencia, pro- a a o ducto cartesiano, proyecci´n y selecci´n. o o A partir de estos cinco operadores es posible definir todos los dem´s, como a pueden ser la intersecci´n, el cociente y la uni´n natural. o o 1 Por conjunto m´ ınimo se entiende aquel conjunto de atributos tal que si se elimina uno de ellos el conjunto resultante deja de ser clave candidata. 2
  • 3. 3.1.1. Uni´n, ∪ o La uni´n de dos relaciones R y S (R ∪ S) se define como el conjunto formado o por todas las tuplas de R m´s todas las tuplas de S. a Este operador s´lo se puede aplicar a relaciones del mismo grado y con los o mismos atributos. En la figura 3 tenemos un ejemplo de uni´n de dos relaciones. o Relaci´n R ∪ S o Relaci´n R o Relaci´n S o C´digo o Provincia C´digo o Provincia C´digo o Provincia 01 ´ Alava 01 ´ Alava 03 Alicante 02 Albacete 02 Albacete 04 Almer´ıa 03 Alicante 04 Almer´ıa Figura 3: Ejemplo del operador uni´n o 3.2. Diferencia, − La diferencia de dos relaciones R y S (R−S) se define como el conjunto formado por todas las tuplas de R que no est´n en S. a Este operador s´lo se puede aplicar a relaciones del mismo grado y con los o mismos atributos. V´ase el ejemplo de la figura 4. e Relaci´n R o Relaci´n S o Relaci´n R − S o C´digo o Provincia C´digo o Provincia ´ C´digo o Provincia 01 Alava 03 Alicante ´ 02 Albacete 02 Albacete 01 Alava Figura 4: Ejemplo del operador diferencia 3.3. Producto cartesiano, × El producto cartesiano de dos relaciones R y S (R × S), de grados m y n respectivamente, se define como el conjunto formado por todas las posibles tuplas de m + n elementos en las que los m primeros elementos son de R y los n restantes pertenecen a S. En la figura 5 se ve un ejemplo de producto cartesiano. 3.3.1. Proyecci´n, π o Si X es un subconjunto de atributos de la relaci´n R, se define la proyecci´n de R o o sobre X (πX (R)) como la relaci´n formada por las columnas de R correspondientes o a los atributos de X. En la figura 6 se tiene un ejemplo de proyecci´n, siendo X = (provincia). o 3
  • 4. Relaci´n R × S o Relaci´n R o Relaci´n S o C´digo o Provincia Cantidad C´digo o Provincia Cantidad 01 ´ Alava 45 01 ´ Alava 45 01 ´ Alava 67 02 Albacete 67 02 Albacete 45 02 Albacete 67 Figura 5: Ejemplo del operador producto cartesiano Relaci´n R o Relaci´n πX (R) o C´digo o Provincia Provincia 01 ´ Alava ´ Alava 02 Albacete Albacete Figura 6: Ejemplo del operador proyecci´n o 3.3.2. Selecci´n, σ o Si F es una f´rmula compuesta por operadores l´gicos, aritm´ticos y de compa- o o e raci´n, y sus operandos son los valores de los atributos de una relaci´n R, entonces o o la selecci´n σF (R) es el conjunto de tuplas de la relaci´n R que hacen verdadera la o o condici´n establecida por la f´rmula F . o o En la figura 7 tenemos un ejemplo, donde F = (c´digo = ’01’) OR (Provincia o > ’Alicante’) Relaci´n R o Relaci´n σF (R) o C´digo o Provincia 01 ´ Alava C´digo o Provincia 02 Albacete 01 ´ Alava 03 Alicante 04 Almer´ıa 04 Almer´ıa Figura 7: Ejemplo del operador selecci´n o 4. El lenguaje SQL El SQL (Structured Query Language) es el lenguaje de manipulaci´n de datos o relacionales m´s extendido, habi´ndose convertido en un est´ndar de facto. a e a SQL permite realizar consultas utilizando los recursos del ´lgebra relacional a combinados con el c´lculo relacional de tuplas. a 4.1. Partes del lenguaje SQL 4.1.1. Lenguaje de Descripci´n de Datos, DDL (Data Description Lan- o guage) Es el lenguaje utilizado para la creaci´n y mantenimiento de la estructura de o la base de datos. Se utiliza para definir y modificar los esquemas de las relaciones, 4
  • 5. crear o destruir ´ ındices y eliminar relaciones. Permite tambi´n la definici´n de vistas e o y permisos de acceso para los usuarios. Es el lenguaje que utiliza el administrador de la base de datos para realizar sus tareas. 4.1.2. Lenguaje de Manipulaci´n de Datos, DML (Data Manipulation o Language) Incluye todas las instrucciones para realizar consultas a las bases de datos, in- sertar, modificar o eliminar datos. Es el que utilizan los usuarios finales en la fase de explotaci´n de la base de o datos. 4.2. Definici´n de datos o 4.2.1. Creaci´n de tablas o Las tablas se crean con el comando CREATE TABLE, de la siguiente forma: CREATE TABLE nombreTabla ( nombreColumna1 tipoColumna1, nombreColumna2 tipoColumna2, ... PRIMARY KEY (columnasClave) ) 4.2.2. Actualizaci´n de tablas o Despu´s de crear las tablas se puede insertar, modificar o eliminar informaci´n e o en las mismas, mediante los siguientes comandos: INSERT INTO nombreTabla [(listaColumnas)] {VALUES (datos) | comandoSelecci´n} o UPDATE nombreTabla SET nombreColumna = expresi´n o DELETE FROM nombreTabla WHERE condici´n o 4.3. Consultas 4.3.1. El comando SELECT Las consultas en SQL son posibles gracias al comando SELECT, que tiene la siguiente estructura: SELECT atributos FROM relaciones [WHERE condici´n] o En t´rminos de ´lgebra relacional, el comando SELECT es equivalente a la e a asociaci´n de una selecci´n, una proyecci´n y un producto cartesiano. Los atributos o o o de la proyecci´n se especifican en la cl´usula SELECT; la cl´usula FROM especifica o a a las relaciones de las que se han de tomar esos atributos; y la cl´usula WHERE (que a es opcional) contiene una condici´n de selecci´n. o o 5