JavaRush /Blog Java /Random-ES /Analizamos bases de datos y el lenguaje SQL - "Proyecto J...

Analizamos bases de datos y el lenguaje SQL - "Proyecto Java de la A a la Z"

Publicado en el grupo Random-ES
Un artículo de una serie sobre la creación de un proyecto Java. Su objetivo es analizar tecnologías clave y el resultado es escribir un bot de Telegram. La parte introductoria está aquí . Hola, ingenieros de software. Hoy hablamos de bases de datos y el lenguaje SQL. “Proyecto Java de la A a la Z”: análisis de bases de datos y lenguaje SQL - 1¿A quién va dirigido este artículo? Sí a todos los que estén interesados. Algunos podrán comenzar su viaje con este artículo, otros podrán refrescar su memoria con datos interesantes. Esta parte será puramente teórica. Antes de decirle qué son las bases de datos y la sintaxis SQL, debemos comprender y determinar por qué las estudiaremos. En esta etapa, hablaremos SÓLO sobre bases de datos SQL: no consideraremos NoSQL en esta serie de artículos.

Base de datos: que es

“Proyecto Java de la A a la Z”: análisis de bases de datos y lenguaje SQL - 2Una base de datos (en adelante DB) es un lugar donde se almacenan datos estructurados , que pueden obtenerse mediante un lenguaje de consulta. Las bases de datos no sólo pueden almacenar, sino también procesar y cambiar información en grandes volúmenes. Como nota: intente cambiar rápidamente un conjunto de valores en Excel según algunos criterios. En principio, nada complicado. No como en nuestro mundo real no digitalizado. Por ejemplo, cambiar el nombre de carriles, calles, ciudades. Si todo fuera virtual y se ingresara en la base de datos, se normalizaría, serían un par de bagatelas. Tal como están las cosas, muchos medios de almacenamiento sufren porque no pueden cambiar automáticamente. En este contexto, SQL para bases de datos es un lenguaje que la base de datos comprende y responde en consecuencia. Digamos que cambiar el nombre de la ciudad no sería difícil; cambiar el nombre de Dnepropetrovsk a Dnipro sería algo como esto:
UPDATE city SET name = “Днипро” WHERE id = 1231;
Todas las solicitudes posteriores al sistema ya producirán el nombre que necesitamos.

¿Por qué se necesitan las bases de datos?

Como ya dije, usando bases de datos puedes almacenar datos. ¿Pero cuáles son estos datos? Para entenderlo usando un ejemplo de la vida real, podemos hablar de alguna aplicación. Por ejemplo, sobre el mismo robot de Telegram. Queremos saber cuántas personas están usando el bot. ¿Cómo se puede implementar esto? En una aplicación Java normal, puede crear muchos elementos únicos: un conjunto, que almacenará el apodo del usuario o la identificación del chat. esto funcionara? Voluntad. Exactamente hasta que se detenga la aplicación Java, y tan pronto como se inicie nuevamente, el conjunto de elementos únicos estará vacío. Es decir, los datos que estaban almacenados en la aplicación en ejecución simplemente desaparecieron. ¿Qué puedes hacer al respecto? Puede mover el almacenamiento del estado del sistema (datos) desde una aplicación Java a otro lugar. Puede almacenarlo en formato CSV en un archivo normal en su computadora. Puedes hacerlo en una línea en un archivo separado. Puede hacer esto y luego sobrescribir estos datos antes de que se detenga la aplicación Java. Aunque la garantía de que la grabación será exitosa está lejos de ser cercana al 100%, porque simplemente desconecta el cable de alimentación del servidor y la grabación no se realizará. Este enfoque tiene un inconveniente importante: no existe ninguna funcionalidad para obtener, agregar y buscar información a nivel de archivo. Sí, por supuesto, puedes leer un archivo y crear objetos para él, pero tendrás que inyectar todos los datos en la aplicación CADA vez. Y puede haber muchos, por ejemplo, un par de gigabytes. Esto se puede evitar almacenando datos en una base de datos. ¿Cómo? A través de tablas y relaciones entre ellas. En esto se basan todas las bases de datos relacionales.

SQL: un lenguaje que entienden las bases de datos

Existen Sistemas de Gestión de Bases de Datos (en adelante DBMS) y el lenguaje que entienden es SQL. SQL es un lenguaje de programación para manipular y administrar bases de datos. Para entender cómo funciona esto, veamos la figura: “Proyecto Java de la A a la Z”: análisis de bases de datos y lenguaje SQL - 3el usuario envía consultas SQL al DBMS, el DBMS entiende lo que hay que hacer, lo hace y, si la solicitud era para obtener datos, los devuelve. Por lo tanto, como desarrolladores, debemos dominar el lenguaje de consulta SQL. Podrías pensar: “Oh, otro idioma. Con la ayuda de Dios, aquí apenas entiendo Java e inmediatamente me ofrecen otro idioma”. Esto no es cierto: SQL se inventó como lenguaje de especificación de un DBMS para que los contables que están muy alejados de las bases de datos y de la programación en general pudieran escribir en este lenguaje. Esto significa que aprenderlo no será tan difícil. Lo principal es PRÁCTICA-PRÁCTICA-PRÁCTICA. Hoy habrá teoría, pero el próximo artículo será sobre práctica. Dado que una base de datos relacional es un conjunto de tablas de matrices bidimensionales y relaciones entre ellas, el trabajo trabajará en torno a ellas. Si hablamos de un ejemplo, podemos mostrar dos tablas: "Países" y "Ciudades" y cómo están conectadas. “Proyecto Java de la A a la Z”: análisis de bases de datos y lenguaje SQL - 4En esta etapa, es importante que comprendamos que los registros de la tabla son datos sobre algún objeto del mundo Java. Por ejemplo, estas dos tablas se pueden describir en Java así:
public class Country {
   private Long id;
   private String name;
}

public class City {

   private Long id;
   private String name;
   private Country country;
   private Integer population;
}
Bueno, ¿no es hermoso, eh? La base de datos puede almacenar cualquier número de tablas. En nuestro caso son dos.

Estructura de la mesa

Creo que todo el mundo se ha topado con tablas de Excel de una forma u otra y comprende los términos fila y columna . En el contexto de las bases de datos, hablamos más de registros y campos: “Proyecto Java de la A a la Z”: análisis de bases de datos y lenguaje SQL - 5así, resulta que cada objeto de la clase Ciudad es un registro en una tabla de la base de datos.

Clave primaria

“Proyecto Java de la A a la Z”: análisis de bases de datos y lenguaje SQL - 6A menudo sucede que los campos de las bases de datos tienen los mismos valores. Por ejemplo, las redes sociales, donde se puede encontrar a más de una persona por nombre, apellido e incluso patronímico. Y las bases de datos relacionales requieren un campo único que pueda usarse para acceder a un registro. Esto se llama primera clave o clave primaria. Normalmente, el campo ID(id) se utiliza como clave; es la abreviatura de identificador. Es por eso que necesita agregar un campo de ID a cada tabla .“Proyecto Java de la A a la Z”: análisis de bases de datos y lenguaje SQL - 7

clave externa

En nuestro ejemplo, dicho campo se encuentra en la tabla Ciudad, que utiliza la clave de País. Y funciona así: cada ciudad conoce un identificador de información único para su país, y si lo tomamos y creamos una consulta en la base de datos, recibiremos información completa sobre el país. Como puede ver en la imagen, existe una relación entre dos tablas: “Proyecto Java de la A a la Z”: análisis de bases de datos y lenguaje SQL - 8aquí se muestra el principio de una clave externa.

¿Qué secciones hay en SQL?

Por cierto, durante las entrevistas a menudo les preguntan qué operaciones hay en SQL:
  • DDL (lenguaje de definición de datos) es un grupo de operadores que cambian/crean tablas, su estructura y más. Es decir, crear una tabla, eliminarla, crear/eliminar campos en las tablas; crear una nueva clave primaria y así sucesivamente;
  • DML (Lenguaje de manipulación de datos) es un grupo de operadores que gestionan la modificación de datos. Todas estas son operaciones que cambian datos en la base de datos: agregar, obtener, cambiar y eliminar;
  • DCL (lenguaje de control de datos) es un medio para confirmar los derechos del usuario para realizar acciones. Operaciones para otorgar acceso y derechos a un usuario específico para que pueda realizar operaciones DDL/DML.

¿Qué tipos de datos hay en SQL?

Las tablas pueden almacenar y procesar ciertos tipos de datos. Todo aquí será similar a lo que usamos en Java. Hablemos de los principales. Solo hay tres, agregaremos otros según sea necesario y/o desee: “Proyecto Java de la A a la Z”: análisis de bases de datos y lenguaje SQL - 9Como se puede ver en la imagen, estos son:
  • INT : valores enteros. Se utiliza para un identificador único y para un número entero simple;
  • VARCHAR es nuestra Cadena ;
  • La FECHA es nuestra fecha local.
Hasta aquí todo es sencillo, ¿verdad? Los tipos de campos se especifican al crear la tabla. Está claro que no será posible escribir un valor de otro tipo en el campo.

¿Qué son los operadores SQL?

Un operador es un comando separado que realiza alguna acción. Los operadores se componen de oraciones, que a su vez se componen de palabras clave que se utilizan en las consultas. Veamos un ejemplo: “Proyecto Java de la A a la Z”: análisis de bases de datos y lenguaje SQL - 10aquí es más interesante, aquí ya se ha creado una consulta. ¿Que están haciendo alli? Es simple, dice: "Tome tres campos (Nombre, Edad y Fecha de creación) de la tabla Clientes, seleccione solo aquellos registros donde el nombre sea igual a Romano".

Conclusión

En este artículo comenzamos a estudiar las bases de datos. Entendimos qué es y por qué lo necesitamos. A continuación, repasamos los primeros signos de SQL, de los que hablaremos con más detalle en el próximo artículo. Como siempre, sugiero registrarse en GitHub y seguir mi cuenta para seguir esta serie y mis otros proyectos en los que trabajo allí.

Tarea

Para agregar interés a esta serie de artículos sobre JRTB, de vez en cuando habrá tareas para casa. Por ejemplo, sin la tarea de hoy, el próximo artículo será mucho más difícil de entender, porque habrá mucha práctica allí. Por lo tanto, la tarea es instalar el DBMS MySQL en su computadora e iniciar sesión en la base de datos ya sea a través de la consola o mediante otras soluciones. Gracias a todos por leer, ¡hasta pronto!

Al principio de este artículo encontrará una lista de todos los materiales de la serie.

Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION