Upload
claudia-rosas
View
45
Download
0
Embed Size (px)
Citation preview
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
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
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
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
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
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)
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))