Si desea obtener información sobre este curso en términos generales, lea el mensaje de bienvenida e introducción antes de empezar.
Base de datos:
Las bases de datos existen desde que el ser humano empezó a almacenar datos en algún soporte. Si por datos entendemos dibujos, que lo son, entonces las primeras bases de datos fueron las paredes de las cuevas donde nuestros ancestros dibujaron las pinturas rupestres.
Posteriormente los egipcios crearon grandes estructuras arquitectónicas que usaron, entre otras cosas, como soporte para almacenar datos y narrar la historia del antiguo Egipto en sus paredes. El tiempo transcurrió hasta el punto de que el significado de todos esos símbolos se perdió, sin embargo la base de datos perduró lo suficiente para que alguien consiguiera descifrar los jeroglíficos a tiempo, de modo que todos esos datos, esa faraónica base de datos, cobró de nuevo todo su sentido. De hecho el valor de toda esa información es mayor que todos los tesoros que pudiesen esconder tumbas y templos. Los arqueólogos esperan encontrar en los nuevos hallazgos, antes que objetos y tesoros, nuevos jeroglíficos que les permitan conocer algún episodio olvidado de la historia de esta fascinante civilización. En ocasiones es esa misma información la que proporciona las pistas para descubrir nuevos hallazgos.
En la actualidad las bases de datos informáticas han quitado todo el protagonismo a sus antecesoras, los archivos de papel, que aun se siguen usando en algunos ámbitos concretos. De bases de datos informáticas han habido de varios tipos, pero las que más han proliferando son las que se tratarán en este curso, las bases de datos relacionales. Mencionar que antes de estas últimas se usaron las bases de datos jerárquicas y posteriormente las bases de datos en red, actualmente sistemas en desuso.
Para encauzar el aprendizaje del lenguaje de consulta SQL empezaremos por conocer la estructura de almacenamiento que usa una base de datos relacional. En este caso no son paredes, ni montones de papel lo que se usa para almacenar la información, sino que se almacena en soportes informáticos bajo una estructura lógica de almacenamiento, como la tiene un archivo de papel, por ejemplo: edificio, planta, pasillo, ubicación, ficha. De este modo es posible recuperar la información que interesa de un modo ágil, gracias a los incides y la estructura organizada del archivo. A continuación se verá como estructura la información una base de datos relacional, pero antes, establezcamos una pocas definiciones.
Base de datos relacional:
Una base de datos (BD), o mejor dicho, un sistema gestor de bases de datos (SGBD), es un software que gestiona una o más bases de datos y nos permite explotar los datos almacenados en ellas de forma relativamente simple mediante SQL.
Esta es una definición muy simplificada, pero para que el aprendizaje sea distendido lo supondremos así, de ese modo podemos centrarnos en aprender como y con que propósito accedemos a los datos, dejando para el final como creamos, alimentamos o modificamos la BD.
Algunos ejemplos de SGBD son: Oracle, MySQL, MS SQL Server…
En este curso se empleará un SGBD MySQL, de modo que los ejemplos y ejercicios están diseñados para MySQL, y el banco de pruebas accede a una base de datos MySQL. No se debe confundir con un curso para MySQL, no lo es, aplicar lo aprendido a uno u otro SGBD será cuestión únicamente de conocer la sintaxis de cada sistema y sus funcionalidades para interactuar con sus bases de datos.
Por ejemplo, si usted realiza un curso para escritores en castellano, donde aprende técnicas y trucos para escribir un thriller, es de esperar que no tenga que realizar el mismo curso en francés porque desea escribir su thriller en francés, para ello bastará con que sepa usted francés. Afortunadamente el estándar SQL empleado por los distintos SGBD es muy similar y en muchas cosas idéntico, no comparable a las diferencias que encontramos entre dos idiomas como puedan ser el castellano y el francés.
Estructura mínima de almacenamiento:
Tabla:
Objeto de almacenamiento perteneciente a una BD. Es una estructura en forma de cuadrante donde se almacenan registros o filas de datos. Cada tabla tiene un nombre único en la BD.
Registro:
Cada una de las filas de una tabla, esta compuesto por campos o atributos.
Campo:
Cada uno de los “cajoncitos” de un registro donde se guardan los datos. Cada campo tiene un nombre único para la tabla de la cual forma parte, además es de un tipo (naturaleza) determinado, por tanto no podemos guardar limones en el cajón de las naranjas, en términos informáticos y a modo de ejemplo, no encontraremos un dato alfanumérico (letras y números) en un campo diseñado para guardar datos numéricos. Dedicaremos una lección a los tipos de datos más adelante.
Por el momento estas son las definiciones que necesitamos, veamos ahora un ejemplo concreto de tabla.
Ejemplo de tabla:
Tabla EMPLEADOS
Cada registro o fila de datos contiene información de un empleado. En el ejemplo observamos que la tabla tiene un diseño de siete campos y que almacena cuatro registros. El nombre de cada campo viene dado por la fila de encabezado. El dato que contiene el campo ID_EMPLEADO identifica cada registro, pero por ahora no le demos importancia a esto.
Los registros o miembros de una tabla tienen en común sus atributos, no el dato en sí, que lo más probable es que difiera de un registro a otro, pero sí el hecho de que todos ellos poseen esos atributos. En el ejemplo los miembros de la tabla EMPLEADOS tiene en común que todos ellos son personas empleadas en una empresa, que tienen un nombre y un salario, una fecha de nacimiento, etc... Por lo tanto las tablas de una BD guardan información de individuos o unidades de una misma naturaleza con una serie de atributos en común.
Una BD contendrá tablas que a su vez contendrán registros y en estos se encontrarán los datos distribuidos en una serie de campos. Cada registro de la tabla guarda la información particular de una unidad o miembro de un mismo grupo. El SGBD cumple la función de interface entre el usuario y la BD, permitiéndonos interactuar con ella mediante SQL.
Si este fuese un manual de SQL, o alguno de los muchos cursos SQL que se pueden encontrar por la web, ahora tocaría abordar la instalación de un SGBD para posteriormente crear una BD con algunas tablas de ejemplo con las que empezar a trabajar. Pero este curso pretende ser diferente. Si ahora se expusiera lo antes mencionado, corremos el riesgo de que usted pierda el interés por la materia, además, el SQL no incluye la instalación del SGBD ni la creación de tablas. Si usted, por ejemplo, desea aprender electricidad, ¿a caso ha de fabricar bombillas, cables y el generador eléctrico con el que poder trabajar? Obviamente no.
En este curso la BD y las tablas con las que trabajar las tiene accesibles mediante el banco de pruebas, así que empezaremos directamente por lo que será la tónica de este curso: las consultas SQL, que es digamos donde está la miga, y no será hasta el final del curso que se verá la creación de tablas y como modificar la información. A fin de cuentas no tiene demasiado sentido aprender a crear tablas cuando aun no sabe que hacer con ellas.
Consultas SQL
Abordemos las consultas SQL con un caso práctico. Sobre la tabla EMPLEADOS se plantea la siguiente cuestión:
¿Qué empleados tienen un salario mayor a 1350?

La respuesta es simple: José y Carlos tiene un salario mayor a 1350, pero si tuviésemos 500 empleados nos llevaría más tiempo responder, y al final tampoco tendríamos la certeza de no habernos equivocado. El SQL nos permite responder estas preguntas de forma rápida y fiable, salvo error al construir la consulta o errores en los propios datos.
Vamos pues a construir la consulta que nos permita responder a esta cuestión.
Preguntas de Construcción
Para construir una consulta SQL debemos hacernos como mínimo tres preguntas:
Primero hemos de preguntarnos: ¿qué datos nos están pidiendo?
En este caso, el nombre y los apellidos de los empleados.
Lo siguiente que nos preguntamos es: ¿dónde están esos datos?
Obviamente están en la tabla empleados.
Y por último: ¿qué requisitos deben cumplir los registros?
En este caso, que el sueldo del empleado sea superior a 1350.
Vamos a suponer por un momento que el SGBD, que es quien intermedia entre el usuario y la BD, fuese una persona; la BD un archivo de papel, y el jefe pide lo siguiente: "Necesito saber ¿qué empleados cobran más de 1350 euros? Usted, que conoce bien el archivo(tablas) y que datos contiene la ficha de un empleado (campos de la tabla EMPLEADOS), mentalmente se hace las preguntas de construcción y le dice a su ayudante que siempre espera ordenes concretas:
Seleccióname el NOMBRE y los APELLIDOS
del archivo EMPLEADOS
cuyo SALARIO sea mayor a 1350
El ayudante sirve la petición y se la entrega para que finalmente usted se la facilite a su jefe. ¿Que papel ocuparían hoy en una empresa moderna? El jefe sigue siendo el jefe, eso está claro, pero usted ha pasado a ser el informático, y su ayudante el SGBD.
Sintaxis SQL
En SQL la forma de operar es parecida, esta información se obtiene mediante la siguiente consulta:
- CÓDIGO: SELECCIONAR TODO
select NOMBRE , APELLIDOS
from EMPLEADOS
where SALARIO > 1350
Obsérvese que en la consulta los nombres de los objectos de base de datos (tabla y campos) los escribimos en mayúsculas, mientras que para las palabras reservadas de la consulta SQL (select, from, where) lo hacemos en minúsculas; esto tiene únicamente un propósito estético, con intención de hacer el código más ordenado y legible. Puede no ser así siempre, dependiendo del SGBD y/o del sistema operativo(windows, linux, ...) donde trabaje el SGBD, este puede ser sensible a mayúsculas y minúsculas.
Y el resultado que nos devuelve el SGBD es:
Parecido a lo que nos entregaría nuestro ayudante en el archivo, una lista con la respuesta o solución a la cuestión planteada. Como ve, tanto el modo de solicitar la información al SGBD, sea clásico o informatizado, como el modo en que este nos muestra la información, son muy similares, al menos en este caso. No podemos afirmar lo mismo del tiempo en que uno y otro tardan en facilitarnos la información solicitada.
Forma general
En general una consulta SQL simple tendrá la siguiente forma:
- CÓDIGO: SELECCIONAR TODO
select CAMPOS(separados por comas) from TABLA
where CONDICION
El SQL permite al usuario desentenderse de como el SGBD ejecuta la consulta, al igual que usted se desentiende de como su ayudante en el archivo de papel se las ingenia para facilitarle la información. Usted esperará pacientemente tras el mostrador a que su ayudante prepare su pedido y le entregue los datos. Dicho de otro modo, basta con saber como pedir la información y no como proceder a reunirla.
Resumen
Hemos visto como construir una consulta SQL simple y concreta, que nos da la solución a una cuestión concreta.
Se ha definido la forma general de una consulta SQL simple:
- CÓDIGO: SELECCIONAR TODO
select CAMPOS(separados por comas) from TABLA
where CONDICION
Destacar también la utilidad de las preguntas de construcción para ayudarnos a construir la consulta.
¿Qué datos nos piden?
¿Dónde están los datos?
¿Qué requisitos debe cumplir los registros?
En una empresa moderna un informático cumple la función de encargado del archivo, y sus ayudantes son hoy los sistemas informatizados.
Sugerencia: si envía el código SQL que sigue a este párrafo desde el banco de pruebas al SGBD, este le reportará la lista de campos de la tabla EMPLEADOS bajo una columna titulada Fied(termino en inglés que significa campo). Esto le puede venir bien para tener presente los nombres de los campos de la tabla EMPLEADOS mientras desarrolla el ejercicio.
- CÓDIGO: SELECCIONAR TODO
describe EMPLEADOS
La siguiente sentencia más simplificada es equivalente:
- CÓDIGO: SELECCIONAR TODO
desc EMPLEADOS

No hay comentarios.:
Publicar un comentario