Está en la página 1de 18

EL MODELO RELACIONAL 3

EL MODELO RELACIONAL

1. INTRODUCCIÓN_____________________________________________________ 56
2. ESTRUCTURA DEL MODELO RELACIONAL____________________________ 57
Dominio y Atributo______________________________________________________
58
Relación______________________________________________________________ 59
Claves________________________________________________________________ 59
Restricciones__________________________________________________________ 60
3. El MODELO RELACIONAL Y LA ARQUITECTURA ANSI__________________ 62
4. LOS VALORES NULOS EN EL MODELO RELACIONAL___________________ 62
5. DINAMICA DEL MODELO RELACIONAL_______________________________ 63
6. ALGEBRA RELACIONAL______________________________________________ 63
OPERADORES PRIMITIVOS____________________________________________ 64
OPERADORES DERIVADOS_____________________________________________ 68
7. CALCULO RELACIONAL______________________________________________ 70
Cálculo Relacional orientado a la
tupla______________________________________ 70
Cálculo relacional orientado a
dominios._____________________________________ 72
8. SQL (STRUCTURED QUERY LANGUAGE)_______________________________ 73

1. INTRODUCCIÓN
La introducción por Codd, muy a finales de los sesenta, de la teoría de
las relaciones en el campo de las bases de datos supuso un importante paso
en la investigación de los SGBD, suministrando un sólido fundamento
teórico para el desarrollo, dentro de este enfoque relacional, de nuevos
productos. El documento de Codd propone un modelo de datos basado en la
teoría de las relaciones, en donde los datos se estructuran lógicamente en
forma de relaciones ‑tablas‑, siendo un objetivo fundamental d
el modelo
mantener la independencia de esta estructura lógica respecto al modo de
almacenamiento y a otras características de tipo físico.
El trabajo publicado por Codd (1970), presentaba un nuevo modelo de datos
que perseguía una serie de objetivos, que se pueden resumir en los
siguientes.

q Independencia física: es decir, el modo en el que se almacenan los


datos no influya en su manipulación lógica y, por tanto, los usuarios que
acceden a esos datos no tienen que modificar sus programas por cambios en
el almacenamiento físico.
q Independencia lógica: esto es, que el añadir, eliminar o modificar
objetos de la base de datos no repercuta en los programas y/o usuarios que
están accediendo a subconjuntos parciales de los mismos (vistas).
q Flexibilidad: en el sentido de poder presentar a cada usuario los
datos de la forma en que éste prefiera.
q Uniformidad: las estructuras lógicas de los datos presentan un
aspecto uniforme, lo que facilita la concepción y manipulación de la base
de datos por parte de los usuarios.
q Sencillez: las características anteriores, así como unos lenguajes
de usuario muy sencillos, producen como resultado que el modelo de datos
relacional sea fácil de comprender y de utilizar por parte del usuario
final.
Para conseguir los objetivos citados, Codd introduce el concepto de
"relación" (tabla) como una estructura básica del modelo. Todos los datos
de la BD se representan en forma de relaciones cuyo contenido varía en el
tiempo.

Con respecto a la parte dinámica del modelo, se proponen un conjunto de


operadores que se aplican a las relaciones. Todos ellos conforman el
Álgebra Relacional.

2. ESTRUCTURA DEL MODELO RELACIONAL


La relación es el elemento básico en el modelo relacional y se puede
representar como una tabla:
Nombre
Atributo 1Atributo 2.....................Atributo n
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTupla 1
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTupla 2
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXTupla n

En ella podemos distinguir un conjunto de columnas, denominadas atributos,


que representan propiedades de la misma y que están caracterizadas por un
nombre; y un conjunto de filas llamadas tuplas que son las ocurrencias de
la relación. Existen también unos dominios donde los atributos toman sus
valores.
El número de filas de una relación se denomina cardinalidad de la relación
y el número de columnas es el grado de la relación.
Ejemplo: AUTOR
NombreNacionalidadInstitucion
PepeEspañaO.N.U.
JohnEE.UU.O.M.S.
PierreFranciaN.A.S.A.

Una relación se puede representar en forma de tabla, pero va a tener una


serie de elementos característicos:
· No puede haber filas duplicadas, es decir, todas las tuplas
tienen que ser distintas.
· El orden de las filas es irrelevante.
· La tabla es plana, es decir, en el cruce de una fila y una
columna sólo puede haber un valor (no se admiten atributos multivaluados).

Dominio y Atributo
Un dominio D es un conjunto finito de valores homogéneos y atómicos
caracterizados por un nombre; decimos homogéneos porque son todos del
mismo tipo y atómicos porque son indivisibles.
Todo dominio ha de tener un nombre por el cual nos podamos referir a él y
un tipo de datos; así el tipo de datos del dominio "nacionalidades" es una
tira de caracteres de longitud 10.
El dominio "nacionalidades" tiene valores : España, Francia,... Si
descompusiéramos España en E,s,p,... perdería la semántica.
Ejemplos de dominios serían:
· Colores: Es el conjunto de los colores D={rojo, verde, azul,}
· Números de DNI: Es conjunto de números del DNI válidos, formados
por ocho dígitos.
· Edad: Edades posibles de los empleados entre 18 y 80 años.
Un atributo es el papel que tiene un determinado dominio en una relación.
Es muy usual dar el mismo nombre al atributo y al dominio. En el caso de
que sean varios los atributos de una misma tabla definidos sobre el mismo
dominio, habrá que darles nombres distintos, ya que una tabla no puede
tener dos atributos con el mismo nombre.
Por ejemplo los atributos edad_física y edad_mental pueden estar definidos
sobre el mismo dominio edad; o loa atributos precio_compra y precio_venta
pueden estar definidos sobre el mismo dominio de enteros de longitud 5.
Además de los dominios y atributos simples que acabamos de definir, en los
últimos trabajos de algunos autores [Codd (1990), Date (1990)] se
introduce el concepto de dominio compuesto.
Un dominio compuesto se puede definir como una combinación de
dominios simples que tiene un nombre y a la que se pueden aplicar ciertas
restricciones de integridad. Por ejemplo, un usuario puede necesitar
manejar, además de los tres dominios Día, Mes y Año, un dominio compuesto
denominado Fecha que sería la combinación de los tres primeros, y al que
podríamos aplicar las adecuadas restricciones de integridad a fin de que
no aparecieran valores no válidos para la fecha; algo análogo ocurre Con
el nombre y los apellidos, que, según las aplicaciones, puede ser
conveniente tratarlos en conjunto o por separado.
De la misma forma, es posible definir un atributo compuesto Fecha que
tomaría sus valores del dominio compuesto de igual nombre.
Relación
Matemáticamente, una relación se puede definir como un subconjunto del
producto cartesiano de una lista de dominios, donde cada elemento de la
relación, tupla, es una serie de n valores ordenados.
En esta definición matemática de relación, que es la que
aparece en los primeros trabajos de Codd, no se alude a los atributos, es
decir, al papel que tienen los dominios en la relación y, además, en ella
el orden de los valores dentro o de una tupla es significativo. A fin de
evitar estos inconvenientes, se puede dar otra definición de relación más
adecuada al punto de vista de las bases de datos, para lo cual es preciso
distinguir, dos conceptos en la noción de relación :
q Intensión o Esquema de relación, denotado R (Al:D1, A2:D2, ...,
An:Dn) es un conjunto de n pares atributo‑dominio subyacente (Ai:Di)
. La
intensión es la parte definitoria y estática de la relación, que se
corresponde con la cabecera cuando la relación se percibe como una tabla.

q Extensión u ocurrencia (instancia) de relación (llamada a veces


simplemente relación), denotada por r(R) es un conjunto de m tuplas {t1,
t2, ... tm} donde cada tupla es un conjunto de n pares atributo‑valo
r.
Ejemplo:
Intensión de una relación:
AUTOR (NOMBRE:Nombres, NACIONALIDAD:Nacionalidades, INSTITUCION:
Instituciones)
Extensión de una relación:
AUTOR
NombreNacionalidadInstitucion
PepeEspañaO.N.U.
JohnEE.UU.O.M.S.
PierreFranciaN.A.S.A.

Claves

Una clave candidata de una relación es un conjunto no vacío de atributos


que identifican unívoca y mínimamente cada tupla. Por la propia definición
de relación, siempre hay al menos una clave candidata, ya que al ser la
relación un conjunto no existen tuplas repetidas y por tanto, el conjunto
de todos los atributos identificará unívocamente a las tuplas. Una
relación puede tener más de una clave candidata, entre las cuales se debe
distinguir:
q Clave primaria: es aquella clave candidata que el usuario
escogerá, por consideraciones ajenas al modelo relacional, para
identificar a las tuplas de una relación.
q Clave alternativa: son aquellas claves candidatas que no han sido
elegidas.
Se denomina clave ajena de una relación R2 a un conjunto no vacío de
atributos cuyos valores han de coincidir con los valores de la clave
primaria de otra relación R1. La clave ajena y la correspondiente clave
primaria han de estar definidas sobre los mismos dominios.

Restricciones
En el modelo relacional, existen restricciones, es decir, estructuras u
ocurrencias no permitidas, siendo preciso distinguir entre restricciones
inherentes y restricciones de usuario.

Restricciones inherentes
Además de las derivadas de la definición matemática de "relación" como
eran que:
· No hay dos tuplas iguales.
· El orden de las tuplas no es significativo.
· El orden de los atributos (columnas) no es significativo.
· Cada atributo sólo puede tomar un único valor del dominio, no
admitiéndose por tanto los grupos repetitivos.
Tenemos que la regla de integridad de entidad establece que "Ningún
atributo que forme parte de la clave primaria de una relación puede tomar
un valor nulo"; esto es, un valor desconocido o inexistente. Esta
restricción debería aplicarse también a las claves alternativas, pero el
modelo no lo exige.

Restricciones de usuario
Podemos considerar la restricción de usuario, dentro del contexto
relacional, como un predicado definido sobre un conjunto de atributos, de
tuplas o de dominios, que debe ser verificado por los correspondientes
objetos para que éstos constituyan una ocurrencia válida del esquema.
Dentro de las restricciones de usuario destaca la restricción de
integridad referencial que dice que los valores de clave ajena deben
coincidir con los de clave primaria asociada a ella o ser nulos.
La integridad referencial es una restricción de comportamiento ya que
viene impuesta por el mundo real y es el usuario quien la define al
describir el esquema relacional; es también de tipo implícito, ya que se
define en el esquema y el modelo la reconoce (o así algunos productos) sin
necesidad de que se programe ni de que se tenga que escribir ningún
procedimiento para obligar a que se cumpla.
EDITORIAL (NOMBRE_E, DIRECCION, CIUDAD, PAIS)
LIBRO (CODIGO, TITULO, IDIOMA, ..., NOMBRE_E)
z
que referencia a EDITORIAL, de modo que debe concordar con la clave
primaria de la relación EDITORIAL o bien ser nulo, porque los libros de
nuestra base de datos deberán pertenecer a una editorial existente, o si
se desconoce la editorial, no se tendrá ningún valor para este atributo.
AUTOR (NOMBRE, NACIONALIDAD, INSTITUCION, ..)
LIBRO (CODIGO, TITULO, IDIOMA, EDITORIAL, ...)
ESCRIBE (NOMBRE, COD LIBRO)
En este ejemplo la relación ESCRIBE posee dos claves ajenas: nombre, que
referencia a la relación AUTOR, y cod_libro, que referencia a la relación
LIBRO; en este caso ninguna de las dos claves ajenas puede tomar valores
nulos, ya que forman parte de la clave primaria de la relación ESCRIBE.
Además de definir las claves ajenas, hay que determinar las consecuencias
que pueden tener ciertas operaciones (borrado y modificación) realizadas
sobre tuplas de la relación referenciada; pudiéndose distinguir, en
principio, las siguientes opciones:
q Operación restringida: esto es, el borrado o la modificación de
tuplas de la relación que contiene la clave primaria referenciada; sólo se
permite si no existen tuplas con dicha clave en la relación que contiene
la clave ajena. Esto nos llevaría, por ejemplo, a que para poder borrar
una editorial de nuestra base de datos no tendría que haber ningún libro
que estuviese publicado por dicha editorial, en caso contrario el sistema
impediría el borrado.
q Operación con transmisión en cascada: esto es, el borrado o la
modificación de tuplas de la relación que contiene la clave primaria
referenciada lleva consigo el borrado o modificación en cascada de las
tuplas de la relación que contienen la clave ajena. En nuestro ejemplo,
equivaldría a decir que al modificar el nombre de una editorial en la
relación EDITORIAL, se tendría que modificar también dicho nombre en todos
los libros de nuestra base de datos publicados por dicha editorial.
q Operación con puesta a nulos: esto es, el borrado o la
modificación de tuplas de la relación que contiene la clave primaria
referenciada lleva consigo poner a nulos los valores de las claves ajenas
de la relación que referencia. Esto nos llevaría a que cuando se borra una
editorial, a los libros que ha publicado dicha editorial y que se
encuentran en la relación LIBROS se les coloque el atributo nombre_e a
nulos. Esta opción, obviamente, sólo es posible cuando el atributo que es
clave ajena admite el valor nulo.
q Operación con puesta a valor por defecto: esto es, el borrado o la
modificación de tuplas de la relación que contiene la clave primaria
referenciada lleva consigo poner el valor por defecto a la clave ajena de
la relación que referencia.
q Operación que desencadena un procedimiento de usuario: en este
caso, el borrado o la modificación de tuplas de la tabla referenciada pone
en marcha un procedimiento definido por el usuario.

3. El MODELO RELACIONAL Y LA ARQUITECTURA ANSI


El modelo relacional puede examinarse en el marco de la arquitectura ANSI
a tres niveles. Todos los objetos que hemos visto hasta el momento, esto
es, los dominios, relaciones, claves y restricciones constituyen el
esquema conceptual de la arquitectura ANSI. Las relaciones se denominan
tablas base o reales, ya que tienen una representación directa en el
almacenamiento interno.
Existe otro tipo de tablas, denominadas tablas virtuales o vistas, que se
definen sobre una o más tablas base. Las vistas son ventanas sobre tablas
reales, de las que sólo se almacena su definición, y no tienen, por tanto,
representación directa en el almacenamiento; equivalen al esquema externo
de la arquitectura ANSI.
Por lo que respecta al esquema interno, el modelo relacional no especifica
absolutamente nada puesto que se trata de un modelo lógico. Vemos, por
tanto, que, el modelo relacional teórico se adapta bastante bien a la
arquitectura ANSI.

4. LOS VALORES NULOS EN EL MODELO RELACIONAL


Se puede definir el valor nulo como una marca utilizada para representar
información desconocida. La necesidad de valores nulos es evidente por
diversas razones:
q Existencia de tuplas con ciertos atributos desconocidos en ese
momento.
q Necesidad de añadir un nuevo atributo a una tabla ya existente;
atributo que en el momento de introducirse no tendrá ningún valor para las
tuplas de la relación.
q Posibilidad de atributos inaplicables a ciertas tuplas, como la
editorial para un artículo.

5. DINAMICA DEL MODELO RELACIONAL


La dinámica del modelo relacional se expresa mediante lenguajes de
manipulación relacionales que asocian una sintaxis concreta a las
operaciones. Los lenguajes relacionases operan sobre conjuntos de tuplas,
y se dividen en dos tipos:
q Algebraicos: Se caracterizan porque los cambios de estado se
especifican mediante operaciones cuyos operandos son relaciones y cuyo
resultado es otra relación. Genéricamente se conocen como álgebra
relacional.
q Predicativos: donde los cambios de estado se especifican mediante
predicados que definen el estado objetivo sin indicar las operaciones que
hay que realizar para llegar al mismo; se seleccionan, así, conjuntos de
tuplas. Genéricamente se conocen como cálculo relacional y se dividen en
dos tipos: orientados a la tupla y orientados al dominio.

6. ALGEBRA RELACIONAL
El aspecto dinámico del modelo relacional en lo que al álgebra se refiere,
lo constituye una colección de operadores que, aplicados a las relaciones,
dan como resultado nuevas relaciones (propiedad de cierre).
Los operandos del álgebra son las relaciones y los operadores se aplican a
las relaciones a fin de formular consultas a la BD.
Son cinco los operadores que podríamos llamar primitivos: los
tradicionales de teoría de conjuntos unión, diferencia y producto
cartesiano, y los especialmente introducidos por Codd de restricción y
proyección; además, existen otros operadores que se pueden considerar
derivados, ya que se pueden deducir de los primitivos.
OPERADORES PRIMITIVOS
A) Unarios
Los operadores unarios tienen como operando una única relación; para su
definición utilizaremos la siguiente notación:

q Restricción o selección
La restricción, también llamada selección, de una relación
mediante una expresión lógica da como resultado una relación formada por
el subconjunto de tuplas que satisface dicha expresión lógica. Se denota
mediante la letra s.
s condicion_de_seleccion (nombre_de_relacion)

Ejemplo: Dada la tabla AUTOR:


AUTOR
NombreNacionalidadInstitucion
PepeEspañaO.N.U.
JohnEE.UU.O.M.S.
PerezEspañaI.N.I.
SuárezEspañaI.N.E.
PierreFranciaN.A.S.A.

Selección de nacionalidad española (AUTOR):


s Nacionalidad= España (AUTOR)
NombreNacionalidadInstitucion
PepeEspañaO.N.U.
PerezEspañaI.N.I.
SuárezEspañaI.N.E.

q Proyección

La proyección de una relación sobre un subconjunto de sus atributos es una


relación definida sobre ellos, eliminando las tuplas duplicadas que
hubieran podido resultar. Se denota mediante la letra P.

P lista_de_atributos (nombre_de_relacion)

Ejemplo: Para la tabla AUTOR, la proyección de nacionalidad e institución.


P Nacionalidad, Institucion (AUTOR)
NacionalidadInstitucion
EspañaO.N.U.
EE.UU.O.M.S.
EspañaI.N.I.
EspañaI.N.E.
FranciaN.A.S.A.

En general, es posible que deseemos aplicar varias operaciones de álgebra


relacional una tras otra. Para ello podemos escribir las operaciones en
una sola expresión del álgebra relacional, anidándolas, o bien, podemos
aplicar las operaciones una a una y crear relaciones intermedias. En el
segundo caso tendremos que nombrar las relaciones que contienen los
resultados intermedios.

Ejemplo. Si se quiere obtener el nombre e institución de los autores


españoles podemos escribir:
P Nombre, Institucion ( s Nacionalidad= España (AUTOR) )
O bien mostrar explícitamente la secuencia de operaciones dando un nombre
a cada una de ellas.
AUTOR_ESP ¬ s Nacionalidad= España (AUTOR)
RESULTADO ¬ P Nombre, Institucion (AUTOR_ESP)

B) Binarios
Los operadores binarios se aplican a dos relaciones, y algunos de ellos
(unión, diferencia e intersección) exigen que las dos relaciones
involucradas sean compatibles en sus esquemas. Es decir deben estar
definidas sobre el mismo dominios, lo que no quiere decir que los nombres
de los atributos sean los mismos

q Unión
La unión de dos relaciones compatibles en su esquema es otra relación
definida sobre el mismo esquema de relación cuya extensión estará
constituida por las tuplas que pertenezcan a una de las dos relaciones o a
ambas (se eliminarán las tuplas duplicadas puesto que se trata de una
relación). Se denota mediante el símbolo U.
Relacion1 U Relacion2
Ejemplo de unión de dos relaciones.

AUTOR
NombreNacionalidadInstitucion
JohnEEUUI1
JuanEspañaI2
PedroEspañaI3
LuigiItaliaI4
EDITOR
NombreNacionalidadInstitucion
JuanEspañaI2
ChenEEUUI5
SmithEEUUI6
PedroEspañaI3

AUTOR U EDITOR
NombreNacionalidadInstitucion
JohnEEUUI1
JuanEspañaI2
PedroEspañaI3
LuigiItaliaI4
ChenEEUUI5
SmithEEUUI6

Nota: Si la correspondencia de los nombres de los atributos de las


relaciones R y R' no fuese 1: 1 sería preciso aplicar la operación de
renombrado de atributo en la relación resultante.

q Diferencia
La diferencia de dos relaciones compatibles en su esquema es otra relación
definida sobre el mismo esquema de relación, cuya extensión estará
constituida por el conjunto de tuplas que pertenezcan a la primera
relación, pero no a la segunda. Se denota mediante el símbolo -
Relacion1 - Relacion2

Ejemplo de diferencia de dos relaciones.

AUTOR
NombreNacionalidadInstitucion
JohnEEUUI1
JuanEspañaI2
PedroEspañaI3
LuigiItaliaI4

EDITOR
NombreNacionalidadInstitucion
JuanEspañaI2
ChenEEUUI5
SmithEEUUI6
PedroEspañaI3

AUTOR - EDITOR


NombreNacionalidadInstitucion
JohnEEUUI1
LuigiItaliaI4

q Producto cartesiano
Producto cartesiano de dos relaciones de cardinalidades m y n es una
relación cuyo esquema estará definido sobre la unión de los atributos de
ambas relaciones, y cuya extensión estará constituida por las m x n tuplas
formadas concatenando cada tupla de la primera relación con cada una de
las tuplas de la segunda. Se denota por la letra x.
Relacion1 x Relacion2
Ejemplo:

SOCIO
CodigoNombreDireccion
1ElenaMadrid
2ManuelBilbao

LIBRO
LibroAutorEditorial
BDGardarinMcGraw
INFORMIXZeroualRa-Ma

SOCIO x LIBRO
CodigoNombreDireccionLibroAutorEditorial
1ElenaMadridBDGardarinMcGraw
1ElenaMadridINFORMIXZeroualRa-Ma
2ManuelBilbaoBDGardarinMcGraw
2ManuelBilbaoINFORMIXZeroualRa-Ma
OPERADORES DERIVADOS
Los operadores derivados son aquellos que se pueden expresar siempre en
función de operadores primitivos, pero su introducción tiene por fin la
simplificación de las consultas.

q Combinación o join
La combinación de dos relaciones respecto de sus columnas d y k es otra
relación constituida por todos los pares de tuplas concatenadas, tales
que, en cada par, las columnas d y k de las correspondientes tuplas
satisfacen la condición especificada. Si la condición es de igualdad se
denomina combinación por igualdad (también se denomina equijoin o join).
La llamada combinación natural (o join natual) es una combinación por
igualdad donde se ha eliminado en la relación resultante uno de los
atributos idénticos. Es el caso más utilizado de combinación para
relaciones que tienen un atributo común (se suele hablar de join para
referirse a esta posibilidad por ser el caso más usual). Se denota
mediante el símbolo

Relacion1 Relacion2
Ejemplo:

AUTOR
NombreNacionalidadInstitucion
A1N1I1
A2N2I2
A3N3I3
A4N4I4

LIBRO

LibroAutorEditorial
L1A1E1
L2A4E2
L3A1E1
L4A2E3

Õ Nombre, Nacionalidad, Institucion, Libro, Editorial


(sAUTOR.Nombre=LIBRO.Autor (AUTOR x LIBRO))
NombreNacionalidadInstitucionLibroEditorial
A1N1I1L1E1
A1N1I1L3E1
A2N2I2L4E3
A4N4I4L2E2

La combinación es un producto cartesiano seguido de restricción, y la


combinación natural es un producto cartesiano seguido de una restricción
por igualdad y de proyección.

q Intersección
La intersección de dos relaciones compatibles en sus esquema es otra
relación definida sobre el mismo esquema de relación, cuya extensión
estará constituida por las tuplas que pertenezcan a ambas relaciones. Se
denota por la letra I.
Relacion1 I Relacion2 = Relacion1 (Relacion1 Relacion2)

Ejemplo de intersección de dos relaciones.

AUTOR
NombreNacionalidadInstitucion
A1N1I1
A2N2I2
A3N3I3
A4N4I4

EDITOR
NombreNacionalidadInstitucion
A2N2I2
A5N1I5
A6N1I6
A3N2I3

AUTOR I EDITOR


NombreNacionalidadInstitucion
A2N2I2
A3N2I3
q División

La división de dos relaciones otra relación cuya extensión estará formada


por las tuplas que al completarse con las tuplas de la segunda relación
permiten obtener la primera. Se denota por el símbolo :
Relacion1 : Relacion2 = PA(Relacion1) - PA[(PA(Relacion1) x Relacion2) -
Relacion1]
A = { Atributos Relacion1 Atributos Relacion 2}

Ejemplo de división de dos relaciones.

VINO
TipoCosechaCalidad
Albariño1977Bueno
Ulla1978Malo
Condado1977Bueno
Condado1978Bueno
Amandi1978Bueno

CALIDAD_BUENA
CosechaCalidad
1977Bueno
1978Bueno

Vinos con calidad buena en todas las cosechas:


AUTOR : CALIDAD_BUENA
Tipo
Condado

Es un operador muy útil para simplificar consultas como en el ejemplo


donde se desea obtener los vinos con buena calidad en todas las cosechas.

7. CALCULO RELACIONAL
El cálculo relacional fue propuesto por Codd como alternativa al álgebra.
La diferencia fundamental entre un lenguaje algebraico y un lenguaje
predicativo (denominado así porque utiliza el cálculo de predicados para
la formulación de consultas), es que en el primero hay que especificar que
operadores se tienen que aplicar a las relaciones para obtener un
resultado, mientras que en el segundo sólo es preciso indicar el resultado
que se quiere obtener.
Los lenguajes del cálculo relacional pueden ser de dos tipos: orientados a
la tupla y orientados al dominio.

Cálculo Relacional orientado a la tupla


Tiene las siguientes consideraciones:
· Las variables se asocian a tuplas.
· Las constantes se asocian a variables de dominio.
· Los operadores son los de comparación, los lógicos NOT, AND, OR,
así como el existencial ($) y el universal (").
Una consulta en el cálculo relacional orientado a tuplas obedece al
siguiente esquema:

[definición de las variables de fila]


operador objetivo predicado
La sentencia de definición de las variables de fila (o de tupla) declara
una variable como moviéndose sobre las tuplas de una relación y, en un
determinado momento, representa indistintamente una cualquiera de las
tuplas (filas) de la relación especificada.
El operador determinará la acción que hay que realizar con los datos
seleccionados (en cálculo relacional puro se suele omitir siempre por ser
una consulta).
El objetivo especifica qué atributos y de qué relaciones se
desea recuperar, es la estructura lógica a recuperar.
El predicado especifica la condición que deben verificar las tuplas a fin
de ser seleccionadas.
Un ejemplo de cálculo relacional orientado a tuplas es el lenguaje ALPHA
que, si bien nunca fue instrumentado, ha tenido gran influencia en
desarrollo de otros lenguajes como el QUEL de INGRES.

Ejemplo en lenguaje ALPHA. Obtener, a partir de las tablas AUTOR y LIBROS,


el nombre de los autores junto con las editoriales en que han publicado.
GET RESULTADO (AUTOR.nombre, LIBROS.editorial):
AUTOR.nombre=LIBROS.autor
Ñ
Ñ
Ñ
Operador Objetivo
Predicado
Otro lenguaje relacional orientado a tuplas es el lenguaje QUEL de INGRES.
La sintaxis de la sentencia de recuperación es la siguiente:
RANGE OF <variable> IS <relación>
......
RETRIEVE <lista atributos>
[WHERE <condición>]
Ejemplo. Obtener el nombre de las editoriales en las que hayan publicado
autores de nacionalidad "N1 .
RANGE OF A IS AUTORES
RANGE OF L IS LIBROS
RETRIEVE (L.editorial)
WHERE A.nacionalidad ="N1" AND A.nombre = L.autor
El QUEL no incluye operaciones del álgebra relacional como la
intersección, unión o diferencia y no permite subconsultas anidadas.

Cálculo relacional orientado a dominios.


En el cálculo relacional orientado a dominios existen variables de
dominios en lugar de variables de tupla, las variables de dominio se
definen sobre un dominio, tomando en cada momento un valor de éste.
El ejemplo más característico del cálculo relacional orientado a dominios
es el lenguaje QBE (Query by Example). Está concebido para su utilización
desde un terminal, y por medio de una tecla de éste el usuario puede
invocar esqueletos de tablas, las cuales tienen cuatro zonas:

Zona para el nombre de la tabla Zona para el


nombre de columnas

Zona para el operador de cada fila Zona Para datos


También el usuario puede obtener el esqueleto de una relación sin más que
escribir el nombre de la misma.
Ejemplo:
Entrada del usuario: AUTOR
Respuesta QBE:
AUTOR Nombre Nacionalidad Editorial

Entrada del usuario:


AUTOR Nombre Nacionalidad Editorial
P.
Respuesta QBE:
AUTOR Nombre Nacionalidad Editorial
John EEUU
E1
Juan España
E1
Pedro España
E3
Juan España
E2

8. SQL (STRUCTURED QUERY LANGUAGE)


El lenguaje SQL (Structured Query Language, "Lenguaje de Consulta
Estructurado") es una evolución del lenguaje SEQUEL (structured english
query language) desarrollado en IBM.
El SQL se encuentra normalizado por el Instituto Americano de
Normalización (ANSI) y fue construido en principio como un lenguaje
algebraico, enriqueciéndose más tarde con funciones predicativas como la
cláusula existencial,...

Estructura y características del lenguaje


El lenguaje SQL contiene un limitado número de verbos o palabras clave,
distribuidos en tres grandes grupos funcionales: DDL (lenguaje de
descripción de datos), DML (lenguaje de manipulación de datos) y DCL
(lenguaje de control de datos).
DDLDMLDCL
CREATE
DROP
ALTERSELECT
INSERT
DELETE
UPDATEGRANT
REVOKE
COMMIT
ROLLBACK

· DDL: Permite la descripción de la estructura de la BD (tablas,


vistas, índices,...)
· DML: Permite el manejo de las tablas y las vistas mediante sus
cuatro verbos, correspondientes a las cuatro operaciones fundamentales
sobre los datos.
· DCL: Contiene los operadores para la gestión de transacciones
(COMMIT y ROLLBACK) y prioridades de acceso a los datos (GRANT y REVOKE)

Características:
· El SQL es manejable bajo dos modalidades distintas: como módulo
interactivo que proporciona un potente lenguaje de consultas interpretadas
y como lenguaje huésped de un lenguaje anfitrión.
· Respeta la independencia entre el nivel conceptual y las
aplicaciones (nivel externo), ya que permite la creación de esquemas
externos personalizados.
· Garantiza una seguridad total de acceso a los datos, gracias a
una distribución selectiva de prioridades de acceso.
· Garantiza la independencia entre el nivel conceptual y el nivel
interno. El usuario no nota la presencia de un índice, es asunto del
administrador el conseguir la optimización de las ejecuciones.
· Permite la gestión multiusuario de los datos. Cada fila a la que
se accede para su modificación queda automáticamente bloqueada por el
sistema. En particular, el SQL contiene el concepto de transacción, que
permite restaurar el estado anterior de la BD en caso de anomalías.
· Independencia de los vendedores. El SQL es ofertado por los
principales vendedores. Los programas que lo utilizan pueden transferirse
de un sistema de gestión de BD a otro con mínimo esfuerzo de conversión.

También podría gustarte