7
FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA PROFESORA: HILDA LICETTE RUEDA RÍOS OBJETIVO: Introducirse en los lenguajes de consulta de Bases de Datos. TIEMPO ESTIMADO: 2 horas. DESARROLLO: Las bases de datos nos ayudan a guardar la información de manera correcta y ordenada en nuestros dispositivos pero ¿de qué nos sirve dicha información si no podemos consultarla? De nada… Por eso es que se crearon lenguajes de consulta de bases de datos. Existen dos tipos de lenguajes de consulta: de tipo procedimental y los de tipo no procedimental. Los lenguajes procedimentales se basan en el álgebra relacional y los lenguajes no procedimentales se basan en el cálculo relacional. Pero… ¿Qué es el álgebra relacional? Bien, pues según la Wikipedia: “El álgebra relacional es un conjunto de operaciones que describen paso a paso como computar una respuesta sobre las relaciones, tal y como éstas son definidas en el modelo relacional. Denominada de tipo procedimental, a diferencia del Cálculo relacional que es de tipo declarativo. Describe el aspecto de la manipulación de datos. Estas operaciones se usan como una representación intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versión más optimizada y eficiente de dicha consulta.” (http://es.wikipedia.org/wiki/%C3%81lgebra_relacional Tarea: Leer el artículo.) ÁLGEBRA RELACIONAL Maneja tres tipos de operaciones: 1. Operaciones unarias: se realizan sobre un esquema o tabla. Las operaciones son: proyección y selección. 2. Operaciones de conjunto: se realizan con dos o más esquemas o tablas. Las operaciones son: unión, diferencia y producto cartesiano. 3. Operaciones adicionales: se realizan con dos o más esquemas o tablas. Las operaciones son: reunión, intersección y división. OPERACIONES UNARIAS: PROYECCIÓN: LA OPERACIÓN DE PROYECCIÓN SOBRE UNA TABLA A, SELECCIONA UN CONJUNTO DE ATRIBUTOS Y ELIMINA LAS TUPLAS DUPLICADAS. Se denota como: A1, A2,… An (A) Y se lee como: Proyección de la tabla A sobre los atributos A1, A2,… An. Ejemplo: Sea la tabla A(NO_PROVEEDOR, NOMBRE, CIUDAD) La proyección de la tabla A sobre el atributo ciudad CIUDAD (A) NO_PROVEEDOR NOMBRE CIUDAD 22222 Pérez Sinaloa 33333 Gómez Monterrey 55555 Sánchez León 88888 Alonso Monterrey CIUDAD Sinaloa Monterrey León

Algebra Relacional y Lenguajes de Consulta

Embed Size (px)

Citation preview

Page 1: Algebra Relacional y Lenguajes de Consulta

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA

PROFESORA: HILDA LICETTE RUEDA RÍOS

OBJETIVO:

Introducirse en los lenguajes de consulta de Bases de Datos.

TIEMPO ESTIMADO:

2 horas.

DESARROLLO:

Las bases de datos nos ayudan a guardar la información de manera correcta y ordenada en nuestros

dispositivos pero ¿de qué nos sirve dicha información si no podemos consultarla? De nada… Por eso es que se

crearon lenguajes de consulta de bases de datos.

Existen dos tipos de lenguajes de consulta: de tipo procedimental y los de tipo no procedimental. Los

lenguajes procedimentales se basan en el álgebra relacional y los lenguajes no procedimentales se basan en

el cálculo relacional.

Pero… ¿Qué es el álgebra relacional? Bien, pues según la Wikipedia:

“El álgebra relacional es un conjunto de operaciones que describen paso a paso como

computar una respuesta sobre las relaciones, tal y como éstas son definidas en el modelo

relacional. Denominada de tipo procedimental, a diferencia del Cálculo relacional que es de

tipo declarativo.

Describe el aspecto de la manipulación de datos. Estas operaciones se usan como una

representación intermedia de una consulta a una base de datos y, debido a sus propiedades

algebraicas, sirven para obtener una versión más optimizada y eficiente de dicha consulta.”

(http://es.wikipedia.org/wiki/%C3%81lgebra_relacional Tarea: Leer el artículo.)

ÁLGEBRA RELACIONAL Maneja tres tipos de operaciones:

1. Operaciones unarias: se realizan sobre un esquema o tabla. Las operaciones son: proyección y

selección.

2. Operaciones de conjunto: se realizan con dos o más esquemas o tablas. Las operaciones son:

unión, diferencia y producto cartesiano.

3. Operaciones adicionales: se realizan con dos o más esquemas o tablas. Las operaciones son:

reunión, intersección y división.

OPERACIONES UNARIAS:

PROYECCIÓN:

LA OPERACIÓN DE PROYECCIÓN SOBRE UNA TABLA A, SELECCIONA UN CONJUNTO DE ATRIBUTOS Y ELIMINA LAS TUPLAS

DUPLICADAS.

Se denota como: A1, A2,… An (A)

Y se lee como: Proyección de la tabla A sobre los atributos A1, A2,… An.

Ejemplo:

Sea la tabla

A(NO_PROVEEDOR, NOMBRE, CIUDAD)

La proyección de la tabla A sobre el atributo

ciudad

CIUDAD (A)

NO_PROVEEDOR NOMBRE CIUDAD

22222 Pérez Sinaloa

33333 Gómez Monterrey

55555 Sánchez León

88888 Alonso Monterrey

CIUDAD

Sinaloa

Monterrey

León

Page 2: Algebra Relacional y Lenguajes de Consulta

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA

PROFESORA: HILDA LICETTE RUEDA RÍOS

SELECCIÓN:

LA OPERACIÓN DE SELECCIÓN SOBRE UNA TABLA A DE ACUERDO A LA CONDICIÓN Q, DA COMO RESULTADO OTRA TABLA

CON EL MISMO ESQUEMA (MISMOS ATRIBUTOS), PERO SÓLO INCLUYE LAS TUPLAS QUE CUMPLEN LA CONDICIÓN Q.

Se denota como: Q(A)

Ejemplo:

Sea la tabla

A(NO_PROVEEDOR, NOMBRE, CIUDAD) CIUDAD = ‘León’ (A)

NO_PROVEEDOR NOMBRE CIUDAD

22222 Pérez Sinaloa

33333 Gómez Monterrey

55555 Sánchez León

88888 Alonso Monterrey

NO_PROVEEDOR NOMBRE CIUDAD

55555 Sánchez León

OPERACIONES DE CONJUNTOS:

UNIÓN:

LA UNIÓN DE DOS TABLAS A Y B CON EL MISMO ESQUEMA (MISMOS ATRIBUTOS EN EL MISMO ORDEN), ES UNA TABLA CON

C FORMADA POR EL CONJUNTO DE TODAS LAS TUPLAS DE AMBAS TABLAS.

Se denota como: C = A B

Ejemplo:

NO_PROVEEDOR NOMBRE CIUDAD

22222 Pérez Sinaloa

33333 Gómez Monterrey

55555 Sánchez León

88888 Alonso Monterrey

NO_PROVEEDOR NOMBRE CIUDAD

11111 Martínez Querétaro

22222 Pérez Sinaloa

33333 Gómez Monterrey

55555 Sánchez León

88888 Alonso Monterrey

DIFERENCIA:

LA DIFERENCIA ENTRE DOS TABLAS A Y B CON EL MISMO ESQUEMA, ES UNA TABLA CON C FORMADA POR LAS TUPLAS QUE

ESTÁN EN A Y NO ESTÁN EN B.

Se denota como: C = A – B

NO_PROVEEDOR NOMBRE CIUDAD

11111 Martínez Querétaro

88888 Alonso Monterrey

Page 3: Algebra Relacional y Lenguajes de Consulta

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA

PROFESORA: HILDA LICETTE RUEDA RÍOS

Ejemplo:

NO_PROVEEDOR NOMBRE CIUDAD

22222 Pérez Sinaloa

33333 Gómez Monterrey

55555 Sánchez León

88888 Alonso Monterrey

NO_PROVEEDOR NOMBRE CIUDAD

22222 Pérez Sinaloa

33333 Gómez Monterrey

55555 Sánchez León

PRODUCTO CARTESIANO:

EL PRODUCTO CARTESIANO DE DOS TABLAS A Y B CON UN ESQUEMA CUALQUIERA, ES UNA TABLA C QUE TIENE COMO

ATRIBUTOS LA CONCATENACIÓN DE LOS ATRIBUTOS DE A Y B, Y COMO TUPLAS TODAS LAS CONCATENACIONES DE CADA

TUPLA DE A CON TODAS LAS DE B.

Se denota como: C = A x B

Ejemplo:

NO_PROVEEDOR NOMBRE CIUDAD

22222 Pérez Sinaloa

33333 Gómez Monterrey

55555 Sánchez León

NO_PRO NOMBRE CIUDAD NUMERO CONCEPTO

22222 Pérez Sinaloa 11 Papel

22222 Pérez Sinaloa 22 Cinta

33333 Gómez Monterrey 11 Papel

33333 Gómez Monterrey 22 Cinta

55555 Sánchez León 11 Papel

55555 Sánchez León 22 Cinta

NO_PROVEEDOR NOMBRE CIUDAD

11111 Martínez Querétaro

88888 Alonso Monterrey

NUMERO CONCEPTO

11 Papel

22 Cinta

Page 4: Algebra Relacional y Lenguajes de Consulta

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA

PROFESORA: HILDA LICETTE RUEDA RÍOS

OPERACIONES ADICIONALES:

REUNIÓN O JOIN:

LA REUNIÓN TOMA DOS TABLAS A Y B QUE TENGAN UNO O MÁS ATRIBUTOS COMUNES Y GENERA UNA TABLA C

CONCATENANDO LAS TUPLAS QUE TENGAN EL MISMO VALOR PARA UN ATRIBUTO DETERMINADO.

Se denota como: JOIN (A, B / CONDICIÓN ) o A |x| B

La reunión es igual a un producto cartesiano pero especificando una condición de unión:

condición (AxB)

Presenta dos casos de interés particular: Equireunión Cuando el operador de condición toma el valor =.

Producto Natural Igual que una equireunión, pero además se suprime una de las columnas

iguales.

Ejemplo:

NO_PRO NOMBRE CIUDAD

22222 Pérez Sinaloa

33333 Gómez Monterrey

55555 Sánchez León

77777 Alonso Morelia

NO_PRO NOMBRE CIUDAD NUMERO NO_PROV CONCEPTO

22222 Pérez Sinaloa 22 22222 Cinta

77777 Alonso Morelia 33 77777 DVD

INTERSECCIÓN:

LA INTERSECCIÓN ENTRE DOS TABLAS A Y B CON EL MISMO ESQUEMA, ES UNA TABLA C DE IGUAL ESQUEMA, PERO QUE

CONTIENE SÓLO LAS TUPLAS QUE PERTENECEN A A Y B A LA VEZ.

Se denota como: C = A B

Ejemplo:

NO_PRO NOMBRE CIUDAD

22222 Pérez Sinaloa

33333 Gómez Monterrey

55555 Sánchez León

77777 Alonso Morelia

NO_PRO NOMBRE CIUDAD

77777 Alonso Morelia

NUMERO NO_PROV CONCEPTO

11 11111 Papel

22 22222 Cinta

33 77777 DVD

NO_PRO NOMBRE CIUDAD

11111 Martínez Querétaro

77777 Alonso Morelia

Page 5: Algebra Relacional y Lenguajes de Consulta

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA

PROFESORA: HILDA LICETTE RUEDA RÍOS

INTERSECCIÓN:

SEAN:

A UNA TABLA CON M + N COLUMNAS

B UNA TABLA CON N COLUMNAS

LA DIVISIÓN ENTRE A Y B ES EL CONJUNTO DE TODAS LAS TUPLAS DE A, TALES QUE AL CONCATENARLAS CON TODAS LAS

TUPLAS DE B PRODUZCAN TUPLAS CONTENIDAS EN A.

LA DIVISIÓN SELECCIONA LAS TUPLAS DE LA TABLA A, BASÁNDOSE EN EL RANGO DE VALORES ESPECIFICADOS EN B.

Se denota como: C = A / B

Ejemplo:

NO_PRO NOMBRE CIUDAD

22222 Pérez Sinaloa

33333 Gómez Monterrey

55555 Sánchez León

77777 Alonso Morelia

CIUDAD

León

Morelia

CÁLCULO RELACIONAL Es un lenguaje de consulta que describe la respuesta deseada sobre una Base de Datos sin especificar

cómo obtenerla. A diferencia del álgebra relacional que es de tipo procedimental, el cálculo relacional es de

tipo declarativo (no procedimental); pero siempre ambos métodos logran los mismos resultados.

Se clasifica en:

Cálculo relacional de tuplas.

Cálculo relacional de dominios.

Cálculo Relacional de Tuplas:

Es un lenguaje de consulta formal que permite expresar las consultas a partir de fórmulas bien

formadas, donde las variables son interpretadas como variantes sobre las tuplas de las tablas. Fue

presentado por Codd en 1972 y se deduce del Cálculo de Predicados.

El Lenguaje QUEL está basado en el cálculo de tuplas y es el lenguaje del SMBD Ingres.

Átomos:

Las variables están asociadas a las tuplas de las tablas y se denota como relación(variable).

Ejemplo: Modelo(M).

Los valores constantes están asociados a los valores de los dominios de los atributos y las funciones

generadoras de los mismos se denotan como variable.atributo. Ejemplo: M.marca

Los predicados utilizados se construyen con los operadores de comparación {<, ≤ , >, ≥ , =, ≠} y

constantes. Ejemplo: M.marca ≠ „fiat‟.

Una fórmula bien formada (fbf) se define como:

Todo átomo es una fórmula bien formada F

Si F1 y F2 son fbf, entonces F1 and F2, F1 or F2, not F1 o not F2 son fbf

NO_PRO NOMBRE

55555 Sánchez

77777 Alonso

Page 6: Algebra Relacional y Lenguajes de Consulta

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA

PROFESORA: HILDA LICETTE RUEDA RÍOS

∃ F1 es una fbf

∀ F1 es una fbf

Ejemplo:

Sean las siguientes tablas:

Producto(nroPro, nombrePro, cantidad, color)

Venta(nroVen, fechaVen, nombreCliente, nroProVen, cantidadVen)

Compra(nroCom, fechaCom, nombreProveedor, nroProCom, cantidadComp)

¿Cuál es el nombre y el color de cada producto en almacén?

{ P.nombrePro, P.color / Producto( P ) }

¿Cuál es el nombre y la cantidad de cada producto de color rojo en el almacén?

{ P.nombrePro, P.cantidad / Producto( P ) ∧ P.color = „rojo‟ }

¿Cuál es el nombre del proveedor de cada producto en el almacén?

{ C.nombreProveedor, P.nombrePro / Producto( P ) ∧ Compra( C ) ∧ P.nroPro = C.nroProCom }

¿Cuáles son los clientes que han comprado al menos un producto de color verde?

{ V.nombreCliente, P.nombrePro / ∃P Venta( V ) ∧ Producto( P ) ∧ V.nroProVen = P.nroPro ∧ P.color =

„verde‟ }

¿Cuáles son los nombres de los productos comprados a todos los proveedores y vendidos a por lo

menos un cliente?

{ P.nombrePro, C.nombreProveedor / ∀B ∃A ∃V Venta( V ) ∧ Producto(P ) ∧ Compra( A ) ∧ Compra( C ) ∧ P.nroPro = V.nroProVen ∧ P.nroPro = A.nroProCom ∧ A. nombreProveedor = C.nombreProveedor }

LENGUAJES DE CONSULTA COMERCIALES

Los lenguajes de consulta más comerciales son:

QUEL: Lenguaje basado en el cálculo relacional de tuplas.

QBE: Lenguaje basado en el álgebra relacional y presenta construcciones del cálculo relacional.

SQL: Lenguaje basado en el álgebra relacional y el cálculo relacional de tuplas. Éste es el lenguaje de

consultas más popular y en que están basados la mayoría de los sistemas manejadores de bases de

datos es el SQL.

SQL SQL son las siglas en inglés para Lenguaje de Consulta Estructurado (Structured Query Language).

Antes se llamaba SEQUEL (Structured English Query Language) porque todas las cláusulas están escritas en

inglés (por lo cual, si medio sabes inglés es muy fácil entenderlo). De este anterior nombre es que mucha

gente aún pronuncia SQL como “sicuel”.

El SQL es derivado de un proyecto de investigación de IBM, en el San José Research Laboratory de

California, sobre una base de datos relacional llamada SYSTEM R.

El SQL se conforma por tres lenguajes:

Data Definition Language (DDL)

Data Manipulation Language (DML)

Data Control Language (DCL)

Page 7: Algebra Relacional y Lenguajes de Consulta

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA

PROFESORA: HILDA LICETTE RUEDA RÍOS

Data Definition Language (DDL):

Lenguaje de definición de datos. Proporciona las instrucciones para definir (crear), modificar y eliminar

objetos de la base de datos.

Ejemplos de instrucciones:

CREATE TABLE… Crea una tabla

CREATE INDEX… Crea un index

ALTER TABLE… Modifica la estructura de una tabla

DROP TABLE… Elimina una tabla (estructura y contenido)

Data Manipulation Language (DML):

Lenguaje de manipulación de datos. Lenguaje de consultas basado en Álgebra Relacional y Cálculo

Relacional de Tuplas. Incluye instrucciones para insertar, suprimir y modificar tuplas de la base de datos.

Adicionalmente tiene instrucciones para el control de transacciones.

Ejemplos de instrucciones:

INSERT INTO… Inserta tuplas en una tabla

UPDATE… Modifica el contenido de atributos

DELETE… Elimina tuplas

SELECT… Selecciona tuplas

Data Control Language (DCM):

Lenguaje de control de datos. Instrucciones para identificar los derechos de acceso a tablas,

relaciones, vistas, etc.

Ejemplos de instrucciones:

GRANT… Asigna permisos

REVOKE… Revoca permisos asignados

Tareas sobre las cuales se puede asignar permisos:

CONNECT

SELECT

INSERT

UPDATE

DELETE

La estructura básica de una consulta en SQL consta de tres claúsulas: - SELECT Corresponde a la operación de Proyección del álgebra relacional.

- FROM Corresponde a la operación Producto Cartesiano del álgebra relacional.

- WHERE Corresponde a la operación de selección del álgebra relacional.

Una consulta en SQL tiene la forma:

SELECT A1, A2, A3, … An

FROM T1, T2, T3, … Tn

[WHERE condición]

Esta consulta es equivalente a la expresión del álgebra relacional:

A1, A2, A3, ... An ( condición ( T1 x T2 x T3 x .... Tm))