Return to Video

02-02-querying-relational-databases.mp4

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

Traducido por Gerson Purisaca Martinez - Engineer System - Universidad Nacional de Trujillo, Perú

more » « less
Video Language:
English
Duration:
06:21

Spanish subtitles

Revisions

  • Revision 3 Edited (legacy editor)
    Gerson Purisaca Martinez