-
En este video, vamos a aprender sobre consultas a BDD relacionales.
-
No nos enfocaremos en las consultas de un lenguaje en especifico, lo veremos después.
-
Sólo vamos a hablar sobre consultas SQL en general.
-
Iniciamos hablando sobre
-
los pasos básicos de creación
-
y uso de BDD relacionales.
-
Por si acaso, debo
-
mencionar que los que trabajan con BDD
-
tienen el habito de dibujar las BDD
-
y los sistemas de BDD como discos
-
gigantes. Yo tengo el mismo hábito
-
Ahora, el primer paso es
-
diseñar el esquema de la
-
BDD y vamos a crear
-
el esquema usando un "lenguaje de definicion de datos" (DDL)
-
Así como comentamos en videos
-
anteriores en una BDD relacional
-
el esquema consiste en
-
la estructura de
-
la relaciones y los atributos de esas relaciones.
-
Así pusimos todo lo anterior en este gran disco.
-
Una vez listo, el siguiente
-
paso es cargar la BDD con los datos iniciales.
-
Es bastante común para las
-
BDD que se carguen inicialmente
-
con datos que provengan de fuentes externas
-
Tal vez los datos sólo se almacene
-
en archivos de algún tipo, y
-
a continuación los datos se pueden cargar a la BDD.
-
Una vez que los datos están cargados, entonces
-
tenemos un montón de tuplas en
-
nuestras relaciones. Ahora estamos
-
listos para la parte divertida de consultas y modificación de datos.
-
Y sucede continuamente con el tiempo
-
siempre y cuando la BDD siga existiendo.
-
Por ahora vamos a decir
-
que tenemos usuarios humanos
-
realizando consultas a la BDD.
-
En realidad, solo ocurre a travez
-
de una aplicación o sitio web.
-
Asi, un usuario llega y
-
nos realiza una consulta de la BDD y obtenemos una respuesta
-
Podría venir nuevamente y
-
realizar otra consulta "Q2! y podriamos recibir otra respuesta.
-
La misma persona y otra
-
podría realizar una modificación de la BDD
-
Asi, ellos podrán querer
-
insertar nuevos datos o
-
actualizar algunos de los datos
-
y la BDD le regresará un mensaje
-
"Ok, ya hice ese cambio para ti".
-
Este es el paradigma básico
-
de consultas y actualización de BDD relacionales.
-
Las BDD relacionales soportan
-
consultas "ad hoc" y lenguajes de alto nivel.
-
por "ad hoc", me refiero a que
-
puedes plantear consultas que no planeaste con antelación
-
No es necesario escribir programas grandes para consultas específicas
-
mas bien el lenguaje puede
-
usarse para representar una consulta
-
cuando piensas sobre que realizarla
-
y cuando mencioné en videos anteriores que
-
los lenguajes soportados por los sistemas
-
relacionales son de alto nivel, significaba
-
que puedes escribir de manera compacta
-
consultas complicadas
-
y sin tener que escribir el
-
algoritmo que devuelvan los datos de la BDD.
-
Veamos un ejemplo de
-
algunas consultas. Vamos nuevamente sobre
-
nuestra BDD de estudiantes que se esta aplicando a Universidades.
-
Aquí vemos 3 ejemplos del tipo de cosas
-
que le podemos pedir a la BDD relacional.
-
Podrías pedir todos
-
los estudiantes cuyo GPA es mayor
-
que 3.7 que sean solamente
-
de Stanford y MIT.
-
Podrías pedir todos
-
departamentos de ingeniería en California
-
con menos de 500 candidatos o
-
podrías pedir la
-
universidad con la media mas alta de
-
tasa de aceptación de los últimos 5 años.
-
Ahora, estas podrían parecer
-
consultas complicadas
-
pero todas ellas pueden
-
escribirse en pocas lineas
-
en digamos: lenguaje SQL ó
-
una simple expresion en álgebra relacional
-
Ahora, algunas consultas son
-
mas fáciles de representar que otras, es cierto.
-
Aunque las 3 consultas que
-
vez aquí son fáciles de plantear.
-
Ahora algunas consultas son más fáciles
-
de ejecutar eficientemente que otras para el sistema de BDD.
-
Y curiosamente no necesariamente
-
estas 2 cosas se relacionan.
-
Hay algunas consultas que son fáciles
-
de generar pero difíciles de ejecutar
-
eficientemente y algunas al contrario.
-
Ahora, un poco de terminología.
-
Frecuentemente, las personas hablan sobre los
-
lenguajes de consulta de los sistemas de BDD
-
Ellos utilizan ordenes
-
de sinónimos con el DML
-
o Lenguaje de Manipulación de Datos, que
-
suelen incluir no sólo consultas sino también manipulación de datos.
-
En todas las consultas de lenguajes relacionales, puedes
-
realizar consultas sobre un
-
conjunto de tablas (relaciones), obteniendo una tabla (relación) como resultado.
-
Ejecutaremos una consulta
-
sobre estas 3
-
tablas (relaciones) mostradas y que
-
nos devolverá otra tabla (relación).
-
Cuando retorne
-
el mismo tipo de objeto que
-
tu consulta, esto se conoce como el fin del lenguaje
-
Y es una gran caracteristica.
-
Por ejemplo, cuando quiero
-
ejecutar otra consulta, que sea Q2,
-
esa consulta podría sobreponerse sobre
-
la respuesta de mi primera consulta
-
y podría incluso mezclarse la respuesta
-
con alguna tabla (relación) existente en la BDD.
-
Esto se conoce como composicionalidad,
-
la habilidad de ejecutar una consulta
-
sobre el resultado de una consulta previa.
-
Ahora, hablemos brevemente sobre 2 lenguajes de consulta.
-
Aprenderemos estos lenguajes en
-
detalle después, pero sólo
-
vamos a dar los puntos básicos de los lenguajes, aquí
-
El álgebra relacional es un lenguaje formal.
-
Bueno, es un álgebra como lo dice su nombre.
-
Está teóricamente bien fundamentada.
-
SQL por el contrario es
-
lo que llamo un lenguaje actual o un lenguaje implementado.
-
Es lo que vas a ejecutar en una verdadera aplicación de BDD.
-
Pero el lenguaje SQL tiene como
-
su base el álgebra relacional.
-
Es como se define la semántica del lenguaje SQL.
-
Ahora, le daré unos puntos
-
de esos 2 lenguajes y
-
vamos a escribir una consulta en los 2 lenguajes
-
Bien, déjenme borrar esta pequeña linea de aquí.
-
Iniciamos con el álgebra relacional
-
Vamos a buscar para los
-
ID's de estudiante cuyo GPA
-
es mayor que 3.7 y sean de Stanford.
-
En álgebra relacional, el lenguaje
-
básico de operaciones son símbolos griegos.
-
Nuevamente, aprenderemos de detalles después,
-
pero esta expresión particular será
-
escrito por un Phi seguido de un Sigma.
-
El Phi indica que vamos a
-
obtener el ID, el Sigma
-
que queremos los estudiantes cuyos
-
GPA son mayores a 3.7
-
y la universidad de donde vienen
-
los estudiantes es Stanford.
-
Y luego se opera
-
en lo que se llama
-
la unión natural de la
-
relación de estudiantes con la relación aplicada.
-
Nuevamente, veremos en mas detalle eso en los próximos videos.
-
Ahora, la misma consulta en SQL.
-
Y esto es lo que realmente se ejecuta
-
en un sistema de BDD implementada,
-
y la consulta SQL
-
es, de hecho, una consulta
-
de álgebra relacional
-
Ahora pedagógicamente, se lo
-
recomiendo altamente que aprendas
-
álgebra relacional observando
-
videos de álgebra relacional, antes
-
de pasar a los videos de SQL,
-
pero no es totalmente requerido.
-
Si tienes bastante prisa
-
por aprender SQL, puedes
-
adelantarte hacia los videos de SQL
-
Si te interesan los fundamentos
-
Not Synced
formales y comprensión mas profunda
-
Not Synced
te recomiendo ver el siguiente video de álgebra relacional