Cómo elegir una base de datos

Vida MRR - Programacion web
19 Sept 202208:37

Summary

TLDREl video ofrece una visión general de las diferentes opciones de bases de datos disponibles, destacando la importancia de entender las características y necesidades específicas de cada una para tomar la decisión adecuada. Se mencionan las bases de datos relacionales y no relacionales, y se discuten los factores clave como la velocidad, la flexibilidad y el modelo de hosting (on-premise, en la nube o híbrido). Además, se explora el concepto de riesgo al delegar la infraestructura a proveedores de servicios en la nube y se presentan las ventajas e inconvenientes de las bases de datos administradas por completo. Seguidamente, se habla de las bases de datos corporativas y su adecuación para grandes empresas, en contraste con las opciones más generales y su viabilidad para proyectos de menor envergadura. Finalmente, se destaca la importancia de elegir la base de datos que mejor se adapte a las preferencias y experiencia del usuario, y se agradece al público por su apoyo.

Takeaways

  • 🔍 Hay múltiples tipos de bases de datos, y es importante categorizarlas según sus características y necesidades específicas.
  • 📊 Las bases de datos relacionales tienen un esquema fijo y se centran en consultas complejas basadas en relaciones entre tablas.
  • 🚀 Las bases de datos NoSQL (no relacionales) son más dinámicas y adecuadas para consultas simples y la adición de información en tiempo real.
  • 🔗 Las bases de datos están representadas a través de relaciones entre tablas utilizando primary keys y foreign keys.
  • 📈 Existen diferentes tipos de bases de datos como clave-valor, grafos, documentos y basadas en columnas, cada una con sus propias ventajas y desventajas.
  • 🏢 Los modelos de hosting de las bases de datos incluyen on-premise, en la nube, híbrido y administradas completamente por el proveedor.
  • 💰 El presupuesto y las posibilidades de costeo son factores clave al decidir el tipo de base de datos y modelo de hosting.
  • ⚖️ Existe un riesgo en la dependencia de un proveedor de servicios al delegar la infraestructura o la administración de la base de datos.
  • 🛠️ Algunas bases de datos están altamente especializadas y no admiten la migración de información a otras plataformas sin depender de un SDK.
  • 🏦 Las bases de datos corporativas como Oracle, SAP HANA, etc., están diseñadas para grandes empresas y manejar grandes volúmenes de usuarios.
  • 🌐 Para aplicaciones web y móviles, las bases de datos más generales como MySQL, PostgreSQL, MariaDB son adecuadas y flexibles para diferentes proyectos.
  • ⚡ Bases de datos como Redis ofrecen alta velocidad al ser en memoria, ideal para escenarios que requieren cargas de información rápidas o en tiempo real.

Q & A

  • ¿Cuál es la primera pregunta que debemos hacernos al considerar diferentes tipos de bases de datos?

    -La primera pregunta que debemos hacernos es cuántos tipos de bases de datos hay y cuánta es la gama para poder comenzar a decidir cuál es la mejor opción para nuestras necesidades.

  • ¿Qué es un esquema fijo en una base de datos relacional?

    -Un esquema fijo en una base de datos relacional se refiere a que la estructura de las tablas no se puede alterar con frecuencia, lo que significa que no se pueden realizar cambios rápidos en el diseño de la base de datos.

  • ¿Por qué es importante categorizar las bases de datos?

    -Es importante categorizar las bases de datos para entender sus diferencias, ventajas y desventajas, lo que nos ayuda a decidir cuál es la mejor opción en función de las características de diseño que necesitamos.

  • ¿Qué tipos de bases de datos no son relacionales?

    -Las bases de datos no relacionales, a menudo llamadas bases de datos NoSQL, incluyen tipos como clave-valor, grafos, documentos y basados en columnas, que se enfocan en consultas o queries más simples y son más dinámicas en términos de la capacidad de agregar información en tiempo real.

  • ¿Qué factores son clave para decidir qué tipo de base de datos utilizar?

    -Los factores clave para decidir qué tipo de base de datos utilizar incluyen la funcionalidad ofrecida, la rapidez, las opciones de hosting (on-premise, en la nube o híbrido), el nivel de administración y control que se tiene sobre la base de datos, y el costo asociado.

  • ¿Qué es un modelo de base de datos en la nube totalmente administrado?

    -Un modelo de base de datos en la nube totalmente administrado es aquel en el que el proveedor de servicios en la nube se encarga de la gestión y mantenimiento de la base de datos, permitiendo que los usuarios se centren únicamente en la administración de la información y las conexiones.

  • ¿Cuál es el riesgo al utilizar una base de datos que depende completamente de un proveedor de servicios en la nube?

    -El riesgo al utilizar una base de datos que depende completamente de un proveedor de servicios en la nube es la falta de control total sobre la infraestructura y la administración de la base de datos, lo que puede resultar en una mayor dependencia del proveedor y limitar la capacidad de migrar a otras soluciones si es necesario.

  • ¿Por qué las bases de datos corporativas son más adecuadas para empresas grandes?

    -Las bases de datos corporativas, como Oracle o SAP HANA, están diseñadas para manejar grandes volúmenes de datos y ofrecer un alto nivel de servicio a millones de usuarios. Son más adecuadas para empresas grandes debido a su capacidad para manejar la infraestructura requerida y porque los proveedores ofrecen contratos de volumen de licencias, lo que se adapta mejor a las necesidades de estas corporaciones.

  • ¿Qué tipo de bases de datos son consideradas 'buenas, bonitas y baratas' según el script?

    -Las bases de datos más generales, como MySQL, PostgreSQL, MariaDB y SQLite, son consideradas 'buenas, bonitas y baratas' porque cumplen con la mayoría de las necesidades que se buscan en proyectos de diferentes tipos de aplicaciones, sin requerir una infraestructura o escalabilidad de recursos muy grandes.

  • ¿Por qué se recomienda DynamoDB si se está manejando todo el ecosistema de AWS?

    -Se recomienda DynamoDB si se está manejando todo el ecosistema de AWS porque es una de las bases de datos en la nube más utilizadas y es especialmente efectiva cuando se integra con otros servicios de AWS. Además, funciona mejor si se está manejando todo el ecosistema de JavaScript a través de bibliotecas como AWS SDK.

  • ¿Qué ventaja ofrece Redis como base de datos en memoria?

    -Redis, al ser una base de datos en memoria, ofrece la ventaja de proporcionar la mayor rapidez posible en el acceso a la información, ya que no es necesario acceder al nivel del disco duro. Esto la hace ideal para escenarios en los que se requiere cargar información rápidamente o en tiempo real.

  • ¿Qué tipo de base de datos es Cassandra y para qué es útil?

    -Cassandra es una base de datos diseñada para manejar grandes cantidades de información, y es especialmente útil para situaciones en las que se requieren relaciones y dependencias fuertes basadas en grafos.

Outlines

00:00

🤔 Tipos y Características de Bases de Datos

Este párrafo aborda la diversidad de tipos de bases de datos y la importancia de categorizarlas según sus diferencias, ventajas e inconvenientes. Se menciona la existencia de bases de datos con esquema fijo, como las relacionales, y aquellas más dinámicas llamadas NoSQL, que permiten agregar información en tiempo real. Se destaca la necesidad de entender las relaciones entre tablas y las consultas complejas en las bases de datos relacionales. Además, se explora la elección entre diferentes opciones de hosting, desde el alojamiento local hasta los modelos híbridos y la administración total por parte de proveedores de servicios en la nube. Se destaca la importancia de la velocidad en las bases de datos clave-valor y cómo esto puede influir en la decisión de cuál usar en función de los requerimientos de diseño y rendimiento.

05:01

📚 Elección de Bases de Datos según Escenario y Necesidades

El segundo párrafo se enfoca en la elección de la base de datos adecuada según el contexto y las necesidades específicas. Se contrastan las bases de datos corporativas, diseñadas para grandes empresas y que requieren de una infraestructura capaz de manejar un gran volumen de usuarios, con las bases de datos más generales, que son más adecuadas para proyectos de menor escala y aplicaciones móviles o web. Se menciona la importancia de la flexibilidad y la escalabilidad al elegir una base de datos, así como la facilidad de uso y la integración con diferentes lenguajes de programación. Se destaca el uso de bases de datos en la nube como DynamoDB y la ventaja de las bases de datos documentales como MongoDB para entornos que funcionan principalmente con JavaScript. También se habla de Cassandra, adecuada para manejar grandes cantidades de datos, y cómo las bases de datos modernas están diseñadas para aplicaciones web y móviles, aunque con ciertos riesgos en cuanto a la dependencia.

Mindmap

Keywords

💡Bases de datos

Bases de datos son sistemas que permiten almacenar, organizar y recuperar información de manera eficiente. En el video, se discuten diferentes tipos de bases de datos y cómo elegir la adecuada dependiendo de las necesidades del proyecto.

💡Relacionales

Las bases de datos relacionales son un tipo de sistema de gestión de bases de datos que organizan y manipulan la información en forma de tablas, utilizando esquemas fijos. Se mencionan como una opción para aquellas aplicaciones que requieren de consultas complejas basadas en relaciones entre tablas.

💡NoSQL

NoSQL hace referencia a bases de datos que no siguen el modelo relacional tradicional y son conocidas por su capacidad para manejar grandes volúmenes de información sin un esquema fijo. En el video, se presentan como una alternativa a las bases de datos relacionales, adecuadas para consultas más simples y la adición de información en tiempo real.

💡Clave-valor

Las bases de datos de clave-valor son un modelo de NoSQL donde los datos se almacenan y se accede a través de una pareja clave-valor. Se resaltan por su simplicidad y velocidad, especialmente en contextos donde se requiere un rápido acceso a los datos.

💡Documentales

Las bases de datos documentales son un tipo de NoSQL que almacenan información en formato de documentos, como JSON o similar. Son útiles para aplicaciones que manejan estructuras de datos complejas y cambiantes, como se menciona en el video, son ideales para el ecosistema de JavaScript.

💡Grafos

Las bases de datos de grafos son diseñadas para modelar y almacenar relaciones complejas entre entidades, representadas como nodos y aristas en un grafo. Son útiles para aplicaciones que requieren un análisis profundo de relaciones y dependencias, como se destaca en el video.

💡Columnar

Las bases de datos basadas en columnas almacenan los datos de tal manera que todos los valores de una columna se guardan juntos, lo que puede ser más eficiente para ciertos tipos de consultas. Se mencionan como una opción para manejo de grandes cantidades de información.

💡On-premise

On-premise se refiere a la opción de instalar y gestionar una base de datos en un servidor propio o local. En el video, se trata como una de las opciones de hosting para las bases de datos, ofreciendo un mayor control sobre la infraestructura.

💡Nube

Las bases de datos en la nube son aquellas que se alojan y gestionan a través de servicios proporcionados por terceros, usualmente con una suscripción. Se discuten como una alternativa a los servidores on-premise, permitiendo una gestión más flexible y menos responsabilidad en términos de infraestructura.

💡Híbrido

El modelo híbrido de bases de datos combina la gestión local (on-premise) con la en la nube, permitiendo que las bases de datos funcionen tanto en un servidor local como se conecten con servicios en la nube. Se menciona en el video como una opción para aquellos que buscan la flexibilidad de ambas soluciones.

💡Serverless

Serverless se refiere a una arquitectura de computación donde el proveedor gestiona el servidor, lo que permite a los desarrolladores centrarse únicamente en el desarrollo de aplicaciones sin preocuparse por la infraestructura subyacente. En el video, se discute cómo este modelo puede implicar un mayor riesgo de dependencia del proveedor.

Highlights

Inicialmente, es importante identificar cuántos tipos de bases de datos existen para poder decidir cuál es la más adecuada.

Existen dos grandes grupos de bases de datos: las relacionales con esquema fijo y las no relacionales, más dinámicas y flexibles.

Las bases de datos relacionales son mejores para realizar consultas complejas basadas en relaciones entre tablas.

Las bases de datos no relacionales permiten agregar información en tiempo real y se enfocan en consultas más simples.

Las bases de datos se pueden categorizar según su diseño, funcionalidad y velocidad.

Las bases de datos de clave-valor generalmente ofrecen mayor rapidez que las relacionales.

Existen tres formas principales de hosting para bases de datos: on-premise, en la nube y híbrido.

Algunas bases de datos están completamente administradas por un proveedor de servicios en la nube.

La elección de una base de datos depende del balance entre control y riesgo delegando la infraestructura a un proveedor.

Las bases de datos corporativas como Oracle o SAP HANA están diseñadas para grandes empresas y manejar una gran infraestructura.

MySQL, PostgreSQL y MariaDB son opciones más generales y versátiles para diferentes tipos de proyectos.

DynamoDB es una base de datos en la nube muy utilizada, especialmente adecuada para aplicaciones que no requieren mucha infraestructura.

Redis es una base de datos en memoria que ofrece alta velocidad en el acceso a la información.

Cassandra está diseñada para manejar grandes volúmenes de datos.

Neo4j es una base de datos de grafos ideal para crear relaciones y dependencias fuertes.

Las bases de datos modernas como FaunaDB, Firebase y AWS DynamoDB están diseñadas para aplicaciones web y móviles.

Es importante considerar los riesgos y desventajas de las bases de datos que dependen completamente de un proveedor.

La elección final de una base de datos debe basarse en la experiencia y preferencias personales, así como en los requisitos específicos del proyecto.

Transcripts

play00:00

una de las preguntas que nos tenemos que

play00:01

hacer inicialmente es cuántos tipos de

play00:03

bases de datos hay o cuánta es la gama

play00:05

para que nosotros podamos empezar a

play00:08

decidir muy pronto nos vamos a dar

play00:10

cuenta que hay muchísimas opciones y lo

play00:12

interesante es empezar a categorizar las

play00:15

para ver cuáles son sus diferencias o

play00:17

sus ventajas o desventajas

play00:19

lo primero es entender que hay bases de

play00:21

datos siegel y no se cuele las bases de

play00:23

datos y cuáles son las que comúnmente

play00:25

llamamos relacionales que tienen un

play00:27

esquema fijo es decir que no podemos

play00:29

estar alterando la estructura de las

play00:31

tablas de forma tan frecuente solo hay

play00:34

un tipo de base de datos es decir manejo

play00:36

de tablas y relaciones y podemos

play00:38

realizar queries o consultas complejas

play00:41

basadas en las relaciones que hay entre

play00:43

las tablas o la misma información las

play00:45

bases de datos no se cuelan o

play00:47

relacionales no contienen un esquema

play00:49

fijo es muy dinámico podemos agregar

play00:52

información en tiempo real hay

play00:54

diferentes tipos de bases de datos no se

play00:57

cuele y se enfocan un poco más en hacer

play00:59

consultas o queries más simples entonces

play01:02

empezamos a categorizar nuestra lista de

play01:04

base de datos para decidir cuál de

play01:07

pendiendo de las características a nivel

play01:09

de diseño que necesitamos sería una

play01:12

mejor opción recuerda que las bases de

play01:14

datos sí que generalmente están

play01:16

representadas a través de relaciones

play01:17

entre tablas a través de forem key es

play01:19

primary keys y los tipos más comunes de

play01:22

bases de datos nos y que él tiene que

play01:23

ver con bases de datos de clave valor

play01:26

grafos documentos o basados en columnas

play01:29

nosotros podríamos organizar nuestras

play01:31

bases de datos y que los no se cuele

play01:33

dependiendo de dos cosas por ejemplo que

play01:36

tantas funcionalidades nos ofrecen aquí

play01:38

podemos ver en este primer esquema que a

play01:40

lo mejor una base de datos de clave

play01:42

valor nos ofrece menos funcionalidades

play01:44

que a lo mejor una relación al la cual

play01:46

generalmente viene con muchísimas cosas

play01:49

incluidas para poder crear y gestionar

play01:51

nuestras bases de datos pero si lo que

play01:54

nos importa es más la rapidez ahí que

play01:56

cambiamos completamente el escenario las

play01:59

bases de datos enfocadas en clave valor

play02:01

por ejemplo redes que funciona a través

play02:03

de la memoria suelen ofrecer una mayor

play02:05

rapidez al no estar en contacto directo

play02:08

con el disco duro cosa que si pasa con

play02:10

las bases de datos relacionales otro

play02:13

punto muy importante es conocer qué

play02:15

opciones de hosting tenemos para

play02:17

nuestras bases de datos hay tres formas

play02:19

de gestionar una base de datos la

play02:21

primera es on premise o en sitio es

play02:23

decir directamente en un servidor que

play02:25

nosotros manejemos la segunda opción es

play02:27

a través de la nube y hay un tercer tipo

play02:29

que algunos proveedores de nube nos

play02:31

ofrecen que es el esquema híbrido que

play02:33

tanto nuestras bases de datos locales

play02:35

funcionen y se conecten para poder

play02:38

manejarse con bases de datos en la nube

play02:40

así se vería nuestra segunda categoría

play02:43

de aquellas bases de datos que soportan

play02:46

estar un premiso en sitio es decir

play02:48

instaladas localmente aquellas en donde

play02:51

solamente existe un modelo en la nube

play02:53

para poder manejarlas y aquellas que nos

play02:55

ofrecen ese ambiente híbrido sin embargo

play02:58

también tenemos una categoría adicional

play02:59

en donde nuestras bases de datos pueden

play03:01

estar completamente administradas por un

play03:03

proveedor de servicios en la nube para

play03:05

que nosotros solamente nos encargamos de

play03:07

manejar la información y las conexiones

play03:09

aquí tenemos entonces una nueva

play03:11

categoría porque dependiendo del

play03:13

proveedor de servicios de la nube es que

play03:15

puede dar soporte a este tipo de bases

play03:17

de datos en donde no necesitamos nada

play03:20

para poder utilizarlas en este caso

play03:23

depende de tu presupuesto y tus

play03:24

posibilidades para poder costear una

play03:26

opción u otra y finalmente tenemos el

play03:29

tema de riesgos si nosotros pudiéramos

play03:30

dibujar una gráfica en donde el eje de

play03:33

las x es la forma en la que nosotros

play03:35

vamos a ajustar nuestra base de datos es

play03:37

decir en el lado izquierdo tenemos que

play03:39

es el modelo tradicional instalarlo en

play03:42

un servidor que nosotros manejamos o en

play03:44

el lado derecho

play03:45

es totalmente administrado es decir un

play03:47

modelo server less y en el eje y estamos

play03:50

manejando el riesgo de la dependencia

play03:52

hacia ese proveedor o esa forma de

play03:54

nosotros costear nuestra base de datos

play03:56

vamos a ver que existe un cierto riesgo

play03:59

cuando nosotros tratamos de delegar toda

play04:02

la infraestructura o cierta

play04:03

administración a un proveedor de

play04:05

terceros ahí prácticamente no tenemos

play04:08

mucho control sobre lo que pasa con

play04:10

nuestra base de datos contrario a cuando

play04:13

nosotros lo instalamos o manejamos toda

play04:15

la infraestructura tenemos el control

play04:17

absoluto de ello tenemos otra categoría

play04:19

en donde tenemos las bases de datos que

play04:21

podemos manejar en nuestra propia

play04:23

infraestructura podemos delegar cierta

play04:25

infraestructura utilizando máquinas

play04:26

virtuales

play04:27

en la nube y aquellos servicios en donde

play04:30

la administración recae completamente en

play04:32

el proveedor hablando del último aspecto

play04:34

estas son las bases de datos que nos

play04:36

atan completamente a un proveedor si

play04:38

bien son muy fáciles de usar no

play04:40

necesitan mucha configuración para poder

play04:42

echarlas andar y soportan tanto opciones

play04:46

para trabajar en modo web o móvil al ser

play04:49

100% administradas prácticamente no hay

play04:51

forma de que nosotros podamos configurar

play04:54

las a nuestra necesidad tienen un

play04:56

lenguaje de consulta único que no puede

play04:59

ser utilizado en cualquier otra

play05:00

plataforma o servicio tienen un único

play05:03

contexto lo cual significa que están

play05:05

diseñadas para trabajar bajo ciertos

play05:08

escenarios muy específicos cualquier

play05:10

escenario que quisiéramos implementar

play05:11

fuera de ello prácticamente no está

play05:14

soportado dependemos totalmente del sdk

play05:16

para que podamos hacer las consultas o

play05:19

hacer nuestras aplicaciones y por lo

play05:21

tanto no existe una forma de emigrar

play05:23

tanto la información en nuestro código

play05:24

de una base de datos a otra por lo que

play05:27

llegamos a la pregunta final cuál me

play05:29

conviene más utilizar las bases de datos

play05:32

corporativas o empresariales como sí el

play05:34

server oracle sap hana etcétera están

play05:37

más diseñadas en un enfoque corporativo

play05:39

para empresas muy grandes para empresas

play05:41

que manejan bancos seguros tiendas

play05:44

etcétera en donde lo más importante aquí

play05:46

es el poder manejar infraestructura muy

play05:49

grande sobre todo para poder dar

play05:51

servicio a millones de usuarios y sobre

play05:53

todo estas bases de datos se benefician

play05:54

porque las corporaciones o los

play05:56

proveedores que están detrás de ellas

play05:58

ofrecen contratos de volumen de

play06:01

licencias entonces estamos hablando de

play06:03

un marco un poco más corporativo la

play06:05

siguiente categoría son las bases de

play06:06

datos más generales es decir mysql

play06:09

progreso maría debe desde mi punto de

play06:11

vista estas son digamos las que cumplen

play06:14

con la mayoría de las cualidades que

play06:16

buscamos en cualquier tipo de proyecto

play06:18

para alguna aplicación web móvil de

play06:20

escritorio etcétera tanto así que yo

play06:22

podría decir que cumplen con las tres

play06:24

veces tanto son buenas bonitas y baratas

play06:26

si ccoo el ait está más enfocado para

play06:29

crear aplicaciones móviles web pequeñas

play06:31

que no necesiten tanto infraestructura o

play06:33

mucha escala ción de recursos por lo

play06:36

tanto son ideales para guardar

play06:37

información de forma local el dynamo

play06:40

debe es una de las de datos en la nube

play06:42

más utilizadas actualmente por muchos

play06:44

servicios y aplicaciones sin embargo yo

play06:46

te la recomendaría específicamente si

play06:49

estás manejando todo el ecosistema que

play06:51

existe en la w se pongo debes una base

play06:54

de datos documental que a pesar de que

play06:56

puede funcionar y trabajar con todos los

play06:58

lenguajes de programación existentes la

play07:01

realidad es que funciona mucho mejor si

play07:03

estás manejando todo el ecosistema de

play07:05

javascript por ejemplo a través de noble

play07:07

yes o algo nosotros ron times enfocados

play07:10

en javascript ya vimos que redice es una

play07:13

base de datos en memoria que tiene como

play07:15

funcionalidad ofrecer la mayor rapidez

play07:17

posible dado que no tenemos que llegar a

play07:19

nivel de disco duro para acceder a

play07:21

nuestra información es útil en

play07:22

prácticamente todos los escenarios en

play07:24

donde tengas que cargar información lo

play07:26

más rápido posible o incluso en tiempo

play07:29

real

play07:30

cassandra está más enfocado en manejar

play07:32

grandes cantidades de información

play07:34

neuer y es una base de datos de grafos

play07:37

útil si quieres crear relaciones basadas

play07:40

en grafos y dependencias de una forma

play07:42

mucho más fuerte y todas las bases de

play07:45

datos modernas que ya platicamos

play07:47

anteriormente fauna fire veis suba veis

play07:50

hijas ura están diseñadas para poder

play07:53

crear aplicaciones web móviles pero ya

play07:56

vimos que tienen ciertos riesgos o

play07:58

ciertas desventajas con el tema de las

play08:01

dependencias sin embargo el punto más

play08:03

importante es saber cuál es la base de

play08:05

datos que te gusta más cuál es aquella

play08:07

que has utilizado por mucho más tiempo o

play08:10

cuál es aquella que siempre has

play08:11

utilizado en diferentes trabajos o en

play08:14

diferentes lugares en donde tienes que

play08:16

almacenar información y es así como

play08:18

llegamos al final del vídeo de eps

play08:20

muchísimas gracias por siempre apoyar

play08:22

estos vídeos si les gusto los invito a

play08:24

que me regalen un like que se suscriban

play08:26

al canal activa en la campanita de

play08:28

notificaciones ya que todo eso nos ayuda

play08:30

a que más de vuelo pérez descubran estos

play08:32

vídeos muchas gracias por verlo y nos

play08:35

vemos la próxima

Rate This

5.0 / 5 (0 votes)

Related Tags
Bases de DatosRelacionalesNoSQLElecciónDiseñoVelocidadFlexibilidadHostingCloudOn-PremiseHíbridoRiesgoControlCorporativoGeneralAplicacionesWebMóvilEcosistemaJavaScriptReal-TimeConsultasInfraestructuraSDKDependencias
Do you need a summary in English?