Está en la página 1de 7

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA

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 informacin de manera correcta y ordenada en nuestros dispositivos pero de qu nos sirve dicha informacin 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 clculo relacional. Pero Qu es el lgebra relacional? Bien, pues segn 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 Clculo relacional que es de tipo declarativo. Describe el aspecto de la manipulacin de datos. Estas operaciones se usan como una representacin intermedia de una consulta a una base de datos y, debido a sus propiedades algebraicas, sirven para obtener una versin ms optimizada y eficiente de dicha consulta. (http://es.wikipedia.org/wiki/%C3%81lgebra_relacional Tarea: Leer el artculo.)

LGEBRA RELACIONAL
Maneja tres tipos de operaciones: 1. Operaciones unarias: se realizan sobre un esquema o tabla. Las operaciones son: proyeccin y seleccin. 2. Operaciones de conjunto: se realizan con dos o ms esquemas o tablas. Las operaciones son: unin, diferencia y producto cartesiano. 3. Operaciones adicionales: se realizan con dos o ms esquemas o tablas. Las operaciones son: reunin, interseccin y divisin. OPERACIONES UNARIAS: PROYECCIN: LA OPERACIN DE PROYECCIN 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: Proyeccin de la tabla A sobre los atributos A1, A2, An. Ejemplo: Sea la tabla A(NO_PROVEEDOR, NOMBRE, CIUDAD) La proyeccin de la tabla A sobre el atributo ciudad CIUDAD (A) CIUDAD Sinaloa Monterrey Len

NO_PROVEEDOR 22222 33333 55555 88888

NOMBRE Prez Gmez Snchez Alonso

CIUDAD Sinaloa Monterrey Len Monterrey

PROFESORA: HILDA LICETTE RUEDA ROS

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA


SELECCIN: LA OPERACIN DE SELECCIN SOBRE UNA TABLA A DE ACUERDO A LA CONDICIN Q, DA COMO RESULTADO OTRA TABLA CON EL MISMO ESQUEMA (MISMOS ATRIBUTOS), PERO SLO INCLUYE LAS TUPLAS QUE CUMPLEN LA CONDICIN Q. Se denota como: Q(A) Ejemplo: Sea la tabla A(NO_PROVEEDOR, NOMBRE, CIUDAD) NO_PROVEEDOR 22222 33333 55555 88888 NOMBRE Prez Gmez Snchez Alonso CIUDAD Sinaloa Monterrey Len Monterrey

CIUDAD = Len (A)


NO_PROVEEDOR 55555 NOMBRE Snchez CIUDAD Len

OPERACIONES DE CONJUNTOS: UNIN: LA UNIN 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 22222 33333 55555 88888

NOMBRE Prez Gmez Snchez Alonso

CIUDAD Sinaloa Monterrey Len Monterrey

NO_PROVEEDOR 11111 88888

NOMBRE Martnez Alonso

CIUDAD Quertaro Monterrey

NO_PROVEEDOR 11111 22222 33333 55555 88888

NOMBRE Martnez Prez Gmez Snchez Alonso

CIUDAD Quertaro Sinaloa Monterrey Len Monterrey

DIFERENCIA: LA DIFERENCIA ENTRE DOS TABLAS A Y B CON EL MISMO ESQUEMA, ES UNA TABLA CON C FORMADA POR LAS TUPLAS QUE ESTN EN A Y NO ESTN EN B. Se denota como: C = A B

PROFESORA: HILDA LICETTE RUEDA ROS

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA

Ejemplo:

NO_PROVEEDOR 22222 33333 55555 88888

NOMBRE Prez Gmez Snchez Alonso

CIUDAD Sinaloa Monterrey Len Monterrey

NO_PROVEEDOR 11111 88888

NOMBRE Martnez Alonso

CIUDAD Quertaro Monterrey

NO_PROVEEDOR 22222 33333 55555

NOMBRE Prez Gmez Snchez

CIUDAD Sinaloa Monterrey Len

PRODUCTO CARTESIANO: EL PRODUCTO CARTESIANO DE DOS TABLAS A Y B CON UN ESQUEMA CUALQUIERA, ES UNA TABLA C QUE TIENE COMO ATRIBUTOS LA CONCATENACIN 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: NUMERO 11 22 CONCEPTO Papel Cinta

NO_PROVEEDOR 22222 33333 55555

NOMBRE Prez Gmez Snchez

CIUDAD Sinaloa Monterrey Len

NO_PRO 22222 22222 33333 33333 55555 55555

NOMBRE Prez Prez Gmez Gmez Snchez Snchez

CIUDAD Sinaloa Sinaloa Monterrey Monterrey Len Len

NUMERO 11 22 11 22 11 22

CONCEPTO Papel Cinta Papel Cinta Papel Cinta

PROFESORA: HILDA LICETTE RUEDA ROS

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA


OPERACIONES ADICIONALES: REUNIN O JOIN: LA REUNIN TOMA DOS TABLAS A Y B QUE TENGAN UNO O MS 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 / CONDICIN ) o A |x| B La reunin es igual a un producto cartesiano pero especificando una condicin de unin: condicin (AxB) Presenta dos casos de inters particular: Equireunin Cuando el operador de condicin toma el valor =. Producto Natural Igual que una equireunin, pero adems se suprime una de las columnas iguales. Ejemplo:

NO_PRO 22222 33333 55555 77777

NOMBRE Prez Gmez Snchez Alonso

CIUDAD Sinaloa Monterrey Len Morelia

NUMERO 11 22 33

NO_PROV 11111 22222 77777

CONCEPTO Papel Cinta DVD

NO_PRO 22222 77777

NOMBRE Prez Alonso

CIUDAD Sinaloa Morelia

NUMERO 22 33

NO_PROV 22222 77777

CONCEPTO Cinta DVD

INTERSECCIN: LA INTERSECCIN ENTRE DOS TABLAS A Y B CON EL MISMO ESQUEMA, ES UNA TABLA C DE IGUAL ESQUEMA, PERO QUE CONTIENE SLO LAS TUPLAS QUE PERTENECEN A A Y B A LA VEZ. Se denota como: C = A B Ejemplo:

NO_PRO 22222 33333 55555 77777

NOMBRE Prez Gmez Snchez Alonso

CIUDAD Sinaloa Monterrey Len Morelia

NO_PRO 11111 77777

NOMBRE Martnez Alonso

CIUDAD Quertaro Morelia

NO_PRO 77777

NOMBRE Alonso

CIUDAD Morelia

PROFESORA: HILDA LICETTE RUEDA ROS

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA


INTERSECCIN: SEAN: A UNA TABLA CON M + N COLUMNAS B UNA TABLA CON N COLUMNAS LA DIVISIN 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 DIVISIN SELECCIONA LAS TUPLAS DE LA TABLA A, BASNDOSE EN EL RANGO DE VALORES ESPECIFICADOS EN B. Se denota como: C = A / B Ejemplo:

NO_PRO 22222 33333 55555 77777

NOMBRE Prez Gmez Snchez Alonso

CIUDAD Sinaloa Monterrey Len Morelia

NO_PRO 55555 77777

NOMBRE Snchez Alonso

CIUDAD Len Morelia

CLCULO RELACIONAL
Es un lenguaje de consulta que describe la respuesta deseada sobre una Base de Datos sin especificar cmo obtenerla. A diferencia del lgebra relacional que es de tipo procedimental, el clculo relacional es de tipo declarativo (no procedimental); pero siempre ambos mtodos logran los mismos resultados. Se clasifica en: Clculo relacional de tuplas. Clculo relacional de dominios. Clculo Relacional de Tuplas: Es un lenguaje de consulta formal que permite expresar las consultas a partir de frmulas 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 Clculo de Predicados. El Lenguaje QUEL est basado en el clculo de tuplas y es el lenguaje del SMBD Ingres. tomos: Las variables estn asociadas a las tuplas de las tablas y se denota como relacin(variable). Ejemplo: Modelo(M). Los valores constantes estn 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 comparacin {<, , >, , =, } y constantes. Ejemplo: M.marca fiat. Una frmula bien formada (fbf) se define como: Todo tomo es una frmula bien formada F Si F1 y F2 son fbf, entonces F1 and F2, F1 or F2, not F1 o not F2 son fbf

PROFESORA: HILDA LICETTE RUEDA ROS

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA


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) Cul es el nombre y el color de cada producto en almacn? { P.nombrePro, P.color / Producto( P ) } Cul es el nombre y la cantidad de cada producto de color rojo en el almacn? { P.nombrePro, P.cantidad / Producto( P ) P.color = rojo } Cul es el nombre del proveedor de cada producto en el almacn? { C.nombreProveedor, P.nombrePro / Producto( P ) Compra( C ) P.nroPro = C.nroProCom } Cules 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 } Cules 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 ms comerciales son: QUEL: Lenguaje basado en el clculo relacional de tuplas. QBE: Lenguaje basado en el lgebra relacional y presenta construcciones del clculo relacional. SQL: Lenguaje basado en el lgebra relacional y el clculo relacional de tuplas. ste es el lenguaje de consultas ms popular y en que estn basados la mayora de los sistemas manejadores de bases de datos es el SQL.

SQL
SQL son las siglas en ingls para Lenguaje de Consulta Estructurado (Structured Query Language). Antes se llamaba SEQUEL (Structured English Query Language) porque todas las clusulas estn escritas en ingls (por lo cual, si medio sabes ingls es muy fcil entenderlo). De este anterior nombre es que mucha gente an pronuncia SQL como sicuel. El SQL es derivado de un proyecto de investigacin 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)

PROFESORA: HILDA LICETTE RUEDA ROS

FUNDAMENTOS DE BASE DE DATOS LENGUAJES DE CONSULTA


Data Definition Language (DDL): Lenguaje de definicin 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 manipulacin de datos. Lenguaje de consultas basado en lgebra Relacional y Clculo 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 SELECT FROM WHERE bsica de una consulta en SQL consta de tres clasulas: Corresponde a la operacin de Proyeccin del lgebra relacional. Corresponde a la operacin Producto Cartesiano del lgebra relacional. Corresponde a la operacin de seleccin del lgebra relacional.

Una consulta en SQL tiene la forma: SELECT A1, A2, A3, An FROM T1, T2, T3, Tn [WHERE condicin] Esta consulta es equivalente a la expresin del lgebra relacional: A1, A2, A3, ... An ( condicin ( T1 x T2 x T3 x .... Tm))

PROFESORA: HILDA LICETTE RUEDA ROS