You are on page 1of 17

Tecnolgico de estudios superiores de tianguistenco Asignatura: Fundamentos de base de datos Grupo: 3402 integrantes: Rosalinda Martnez Gonzlez Vanessa

Mendoza Ramrez Marcos Guadalupe Hoyo Mata Profesor: Arturo Daz Martnez

Claves y Lenguajes de consulta

Claves.

Una clave candidata de una relacin es un conjunto no vaco de atributos que identifican univoca cada tupla. Toda relacin siempre tendr una clave candidata.

Tipos de claves.

Clave primaria: es aquella clave candidata que el usuario elegir, por consideraciones ajenas a modelo relacional, para identificar las tuplas de la relacin.

Clave alternativas: Son aquellas claves candidatas que no se han sido escogidas como claves primarias.

Clave fornea o ajena: De una relacin R2 es un conjunto no vaco de atributos cuyos valores han de coincidir con los valores de la clave primaria de una relacin R1

Sper clave: Un atributo o conjunto de atributo, que identifica de forma univoca cada tupla dentro de una relacin. Clave alterna: Un atributo o conjunto de atributos dentro de una relacin que se corresponde con la clave candidata de alguna relacin.

Lenguajes de consulta.
Los podemos dividir en dos tipos: Lenguajes Formales y Lenguajes Comerciales. Los lenguajes formales estn basados en el lgebra relacional o en el clculo relacional. Solamente se han descrito para consulta a Bases de Datos (existen lenguajes comerciales que adems de consulta permiten otras operaciones).

Lenguajes formales.

Algebra relacional.
Operaciones fundamentales: Tiene cinco por medio de las cuales se puede realizar cualquier consulta. Son las siguientes:
1. 2. 3. 4. 5. Seleccin. Proyeccin. Producto cartesiano. Unin de conjuntos. Diferencia de conjuntos

1.- Seleccin (). Es una operacin unaria (acta sobre una relacin nica). Sirve para obtener determinadas tuplas de una relacin, basndose en que dichas tuplas cumplan un predicado determinado P. Su sintaxis es la siguiente: P (r), donde r es la relacin sobre la que se acta y P es el predicado que debe cumplirse.

Si por ejemplo tenemos la relacin: estudiante = (NE, nombre, edad, dccion) y queremos seleccionar al estudiante 2249 tendremos que hacer: NE =2249(estudiante) El predicado de seleccin admite los siguientes operadores relacionales: < , , > , , = . Adems un predicado puede estar compuesto por varias condiciones unidas por los conectivos u .

2.- Proyeccin ():


Es tambin una operacin unaria. Proyecta una nueva relacin con un nuevo esquema en el cual aparezcan solamente los atributos que se especifican en la operacin.
Sintaxis: A1 ,..., An (r). Donde A1 ,...., An es la lista de atributos y "r" la relacin sobre la que se acta. Si, por ejemplo, queremos tener toda la relacin de estudiantes, pero slo con el nombre haramos:nombre (estudiante) Si quisisemos obtener el nombre del estudiante 2249: nombre ( NE = 2249 (estudiante))

3.- Produto Cartesiano (r1 x r2):

Si el nmero de tuplas de r1 es n1, y el nmero de tuplas de r2 es n2, el nmero de tuplas de la relacin obtenida ser n1n2. ejemplo: Supongamos que tenemos las siguientes relaciones:

Cliente
Sucursal

=
=

(nombre_cliente,
(nombre_sucursal,

ciudad,
activo,

calle)
ciudad)

Prstamo = (num_prestamo, nombre_sucursal, nombre_cliente, importe) Deposito = (num_cuenta, nombre_sucursal, nombre_cliente, saldo)

4.- Union de Conjuntos (r1 r2):

Acta sobre dos relaciones unindolas. El resultado es, por tanto, una nueva relacin con el mismo esquema que las relaciones implicadas y con un nmero de tuplas que es la unin de las tuplas de r1 y r2 (los elementos duplicados se desechan).
r1 y r2 deben tener el mismo esquema, es decir, los dominios de los atributos i-simos de cada uno de los esquemas debe coincidir. En el ejemplo que estamos considerando, no podramos hacer la unin de cliente con prstamo, pero s sera posible hacer esto otro por ejemplo (
nombre_cliente

(cliente))

(nombre_cliente

(prestamo))

Con la anterior operacin obtendramos los nombres de los clientes que tienen prstamo o no.

5.- Diferencia de Conjuntos (r1 - r2):

Es una operacin binaria que da como resultado una relacin con los elementos que estn en r1, y no estn en r2. Lgicamente r1 y r2 deben tener el mismo esquema. Esta operacin se podra utilizar, si por ejemplo queremos saber el nombre de los clientes que tienen un prstamo en la sucursal principal, pero que no tienen cuenta en dicha sucursal:

(nombre_cliente (nombre_sucursal = ( (nombre_sucursal nombre_cliente

"Principal" =

(prestamo))) (deposito))) "Principal"

Con las cinco operaciones definidas (operaciones fundamentales) se puede realizar cualquier consulta en lgebra relacional. Aun as, existen otras operaciones (operaciones adicionales), que facilitan algunos tipos de consulta frecuente, y que puede resultar muy tedioso el hacerlas mediante las operaciones fundamentales.

Calculo racional.

Clculo Relacional Orientado a Tuplas En este lenguaje, expresamos variables que representan tuplas. Si por ejemplo existe una tupla t contenida en una relacin r escribiremos t r. Si queremos expresar el valor que toma el atributo A para la tupla t, lo haremos de la siguiente forma: t[A].

el clculo relacional es aprocedimental (no tiene procedimientos), por tanto cuando deseamos obtener un conjunto de tuplas (una relacin) a partir de otras tenemos que expresarlo usando los medios que el clculo relacional nos ofrece, si por ejemplo, queremos obtener una relacin con el conjunto de tuplas que cumplen el predicado P, tendremos que expresarlo de esta manera: {t / P(t)}. Veamos un ejemplo prctico: "Queremos tener una lista completa de todos aquellos clientes que tienen un prstamo cuyo importe sea ms de un milln" (seleccin). {t / t prestamo t[importe] > 1000000}

Clculo Relacional Domnios:

Orientado

Los datos se guardan en variables correspondientes a atributos. Las variables se refieren a atributos, lo que en clculo relacional orientado a tuplas era t[A1] es ahora A1, por tanto si queremos hablar de una tupla tenemos que nombrar todas las variables correspondientes a los atributos de esa tupla. (< x1, x2, ....., xn >).

Por ejemplo, una tupla de prestamo se expresara de la siguiente forma: < p, s, c, i > con: p = num_prestamo; s = nombre_sucursal; c = nombre_cliente; i = importe; En el clculo relacional orientado a dominios, la expresin general tendr la forma: { < x1, x2, ....., xn > / P(< x1, x2, ....., xn >) }

You might also like