CodeGym/Cursos Java/Módulo 4. Working with databases/Conocimiento avanzado de bases de datos.

Conocimiento avanzado de bases de datos.

Disponible

1.1 Principio de construcción de conferencias

Usted y yo empezamos a familiarizarnos con las bases de datos desde abajo . Esta es una característica de mi enfoque personal para enseñar a la gente. Cuando hablo de nuevos temas, siempre te digo primero cómo usar ciertas herramientas en la práctica. Y ya cuando sé que una persona sabe cómo usarlos, empiezo a contar cómo funciona todo.

Hay varias razones para este enfoque, pero la principal es que el recurso más valioso y más perdido en el proceso de aprendizaje es la motivación del estudiante .

Este enfoque es ligeramente diferente al que estamos acostumbrados, que se utiliza en escuelas y universidades. Pero todo está claro: cuando estudias en la escuela o la universidad, tienes las prioridades correctas: estudiar es lo más importante en la vida en este momento.

Si se dedica a la autoeducación en la edad adulta, a menudo ya tiene que combinar sus estudios con el trabajo, las tareas domésticas, el cuidado de niños o padres ancianos. Y aquí a menudo el estudio no será la primera prioridad.

Se trata de prioridades. Incluso existe tal concepto en el mundo de las empresas emergentes: fallar rápido, fallar lo más rápido posible . Suena extraño, pero en realidad tiene mucho sentido: la tarea de una startup es verificar rápidamente si su hipótesis es correcta. Y si no es cierto, entonces no necesita gastar años de su vida en ello, es mejor comprender lo antes posible que no hay demanda para un determinado servicio o producto.

Cuando enseño Java y SQL, uso el mismo enfoque: le doy la oportunidad de comprender lo antes posible si está apurado por programar o no . Si le gusta la programación y usted mismo pudo descubrir cómo trabajar con bucles y matrices, entonces, con la ayuda de mentores y un programa bien diseñado, tiene todas las posibilidades de completar sus estudios y encontrar un trabajo.

Pero otro dato no menos importante: en un par de días de descanso, puedes entender que la programación no es para ti. Es posible que simplemente no te interese, y eso está bien . Por lo tanto, no necesita gastar meses de su vida en ello.

Solo el 40% de los egresados ​​trabajan en la especialidad que recibieron en la universidad. Piénselo, las personas estudiaron durante 5-6 años y el 60% de ellos decidió no trabajar en su especialidad. Sí, algunos de los conocimientos adquiridos todavía se utilizan, pero aproximadamente la mitad no.

Este es el valor del concepto Fail Fast: comprender lo antes posible que cierta profesión, cierta persona o cierto pasatiempo no es adecuado para usted. Y no pierda su tiempo y energía en ellos. A la larga, esta es una muy buena estrategia.

1.2 SQL y todo, todo, todo

Hemos terminado con la introducción filosófica, volvamos a aprender SQL.

El lenguaje SQL y DBMS son cosas ligeramente diferentes. El lenguaje SQL en sí mismo es una especie de estándar que describe lo que se puede escribir en las consultas SQL a la base de datos. Los DBMS ya son implementaciones de este estándar. Algunos DBMS implementan algunas funciones del estándar, el segundo, otros, etc.

Cuanto más caro es el DBMS, más funciones tiene el estándar que implementa. Además, muchos DBMS a menudo implementan sus propias características únicas fuera de los estándares SQL. A veces, esto genera problemas de portabilidad: las consultas SQL escritas para un DBMS pueden no funcionar bien para otro.

Java también tiene una situación similar. Si un programa Java está escrito en Windows, entonces no funcionará normalmente en Linux. Para resolver este problema, Java introduce clases especiales que tienen diferentes implementaciones para diferentes sistemas operativos. Ejemplo: clase de ruta que tiene implementaciones de WindowsPath, LinuxPath, etc.

La segunda parte del problema se resuelve con la ayuda del control de versiones. Todas las innovaciones exitosas de diferentes lenguajes o DBMS se agregan al nuevo estándar JDK o SQL. Ya sabes que existen diferentes versiones del JDK, y cuanto más nueva es la versión, más funciones tiene. Es lo mismo con SQL.

En el lenguaje SQL existen varias versiones de su estándar, las cuales se nombran por año:

  • SQL:1999
  • SQL:2003
  • SQL:2006
  • SQL:2011
  • SQL:2016
  • SQL:2019

Buenas noticias : no estudiaremos estos estándares. En primer lugar, llevará años estudiar y dominar todo esto. Y en segundo lugar, estos estándares son como versiones de Android: solo entre 5 y 10 años después del lanzamiento, el estándar se generaliza masivamente.

En bases de datos con grandes cantidades de datos, las personas necesitan confiabilidad y estabilidad. “Funciona, no lo toques” es el lema de todos los que trabajan con bases de datos. Y la transición a una nueva versión de las bases de datos se realiza cada 5 años, cuando ya son evidentes todas las ventajas de una solución de este tipo.

1.3 Más allá de los corchetes

Como dije anteriormente, se necesitan años para convertirse en un profesional de bases de datos. Un profesional sabe muchas cosas que nosotros no estudiaremos. Pero hablaré un poco sobre qué más hay en las bases de datos.

Casi todas las bases de datos modernas admiten:

1 lenguaje procedimental (PL)

RDBMS admite la capacidad de escribir procedimientos y funciones que se ejecutan en SQL Server y puede hacer muchas cosas con los datos durante las consultas. Por ejemplo, una vez escribí consultas PL SQL al servidor de Oracle, que en respuesta a la consulta generó... una página HTML con datos. Sí tu puedes.

2 eventos (disparadores)

Todos los DBMS modernos admiten el mecanismo de eventos, que se denominan disparadores en el lenguaje SQL. Un desencadenante se produce como respuesta a alguna acción. Por ejemplo, puede interceptar todos los intentos de escribir en la base de datos y agregar la hora exacta de su cambio en nuevas líneas.

3 Registro

Las bases de datos modernas intentan ser súper rápidas, por lo que a menudo todos los cambios (filas nuevas, filas eliminadas, filas modificadas) se escriben primero en un archivo especial llamado registro. Y solo después de un tiempo, el servidor SQL fusionará estos registros con la base de datos principal.

De alguna manera, esto es similar al comportamiento del Recolector de basura en Java: también simplemente marca los objetos como eliminados al principio y realiza la limpieza y optimización de la memoria durante los tiempos de inactividad.

4 complementos

Para DBMS, así como para muchos programas, puede escribir sus propios complementos. Dichos complementos le permiten agregar tipos de datos únicos, funciones para trabajar con ellos o cambiar el comportamiento estándar del DBMS. Esto es especialmente útil cuando trabaja con una base de datos de código abierto y hay algunos errores.

5 Trabajo distribuido (clusters)

Un escenario típico para un servidor SQL moderno es un grupo de varios servidores. La opción más simple es cuando los datos se escriben en un servidor y se leen de un grupo de servidores. En este caso, puede configurar varios escenarios para la sincronización de bases de datos entre servidores SQL.

6 fragmentación

Cuando hay muchos datos, comienzan a dividirse en diferentes bases de datos. Hasta el hecho de que una tabla se puede almacenar en partes en diferentes bases de datos.

La fragmentación puede ser vertical y horizontal. La fragmentación vertical significa que la tabla está, por así decirlo, cortada por líneas verticales, mientras que la fragmentación horizontal se corta en líneas horizontales.

Por ejemplo, decidimos dividir todos los datos de la tabla por años: para 2019, una tabla, para los datos de 2020, la segunda, y así sucesivamente. Esto será fragmentación horizontal.

7 empujar el no empujar

En una cierta etapa en el desarrollo de las bases de datos, se les comenzó a agregar más y más lógica comercial. Todo comenzó con procedimientos, funciones, generación de páginas web por servidores y terminó con la adición de soporte para casi todos los lenguajes populares al DBMS: Python, JavaScript e incluso Java y C ++.

Suena genial hasta que entre en detalles: ¿realmente desea escribir la lógica comercial de su aplicación web en Java, que se ejecutará dentro de un servidor SQL, donde no hay JDK, bibliotecas Java, marcos, poca memoria y mucho? otras restricciones?

Comentarios
  • Populares
  • Nuevas
  • Antiguas
Debes iniciar sesión para dejar un comentario
Esta página aún no tiene comentarios