Si alguna vez creaste un sitio web o eres alguien relacionado con ese mundo probablemente hayas escuchado hablar sobre una base de datos, o bases de datos en plural.
Temidas por algunos que desconocen cómo funcionan, las bases de datos sin lugar a dudas son una de las herramientas más poderosas disponibles a la hora de montar un sitio en Internet, y lo cierto es que no son tan complejas cómo nos puede parecer a primera vista.
Si quieres conocer sobre bases de datos y tener una noción muy sólida del tema entonces sigue leyendo porque aquí te contaremos mucho sobre ellas.
Qué es una base de datos
Primero lo primero, porque no podemos hablar en profundidad sobre las bases de datos si no definimos antes que nada qué es una base de datos. Como decíamos en la introducción, las bases de datos no son tan complejas como puede parecer a primera vista, y si no las conocemos es simplemente porque no hemos leído un poco al respecto pues son más fáciles de definir de lo que parece.
¿Qué es una base de datos entonces?
Para entenderlo fácilmente podemos hacer una especie de analogía o comparación. Haz de cuenta que tienes un depósito (un almacén, bodega, etc.) de algún tipo de mercadería.
Lógicamente toda esa mercadería no vas a querer tenerla mal ordenada o mal distribuida, sino que lo adecuado sería colocarla en estanterías o estructurada de alguna forma, de lo contrario encontrar algo sería caótico.
Pues las bases de datos son lo mismo, solo que aplicado al campo de la informática, y en lugar de guardar mercadería lo que se guarda es, bueno, datos.
¿Dónde se guardan las bases de datos?
Al igual que los datos de una web a nivel estático (imágenes, archivos HTML) se almacenan en un disco duro y luego se despachan por el servidor web, en el caso de las bases de datos sucede lo mismo, se almacenan en discos SSD, SATA bajo servidores dedicados o VPS, o bien en la nube informática. Entonces, en definitiva se alojan en los llamados servidores de bases de datos, que no es otra cosa que un servicio de web hosting de datos al fin y al cabo.
En otras palabras, las bases de datos son contenedores de información que se almacena estructurada. También se puede definir como un conjunto de datos que se guardan estructurados. Cualquiera de las dos definiciones es válida así que usa la que más te guste.
Para qué sirve una base de datos
Bueno como ya decíamos las bases de datos básicamente sirven para guardar datos o información en forma estructurada. Si volvemos a la comparación con un almacén o bodega de mercadería, los datos serían las cajas y productos, la base de datos sería el almacén entero y las estanterías donde colocamos los productos serían lo que se conoce como tablas.
En las bases de datos la información es guardada en tablas. Cada tabla contiene un determinado número de datos o registros y cada base de datos puede contener numerosas tablas, cientos de ellas incluso dependiendo del tamaño de nuestra aplicación o sitio web.
Las tablas a su vez se componen por dos elementos más: por un lado están las filas y por otro están columnas. Es en estos elementos donde se encuentran los registros que guarda la base de datos, dicho de otra manera, la información se guarda en las filas y columnas que conforman las tablas, las cuales a su vez son las que conforman la base de datos.
¿Realmente sirve utilizar bases de datos en un sitio?
Por supuesto que sí, porque créeme que si no fuera así no se utilizarían tanto, de hecho hoy en día ver un sitio web sin bases de datos es algo muy fuera de lo común, ya no estamos en la década de los 90’s donde los sitios eran puro HTML y ya.
Gracias al uso de bases de datos en los sitios web es posible tener accesos en paralelo a la información, también se pueden realizar toda clase de consultas, algunas bastante complejas por cierto, y además es una forma segura y organizada de guardar datos y registros importantes.
Para poder insertar datos o registros en una base de datos existen distintos procesos y programas, aunque por lo general se usan dos métodos:
El primero y más usado consiste en utilizar un software de gestión de bases datos, o de administración de bases de datos, como prefieran llamarlo. Básicamente es un programa o aplicación que nos conecta a una base de datos y nos permite ver y alterar su contenido según los privilegios que tenga nuestro usuario.
Ejemplo de un gestor de bases de datos: phpMyAdmin, utilizado para manipular bases de datos MySQL.
El otro método es directamente conectarnos al motor de bases de datos del sitio (el llamado DBMS) y hacer las modificaciones necesarias desde allí, por ejemplo en el caso de MySQL es posible conectarnos mediante una consola de SSH o terminal y editar los registros de forma directa sobre la base de datos sin tener que utilizar un gestor.
Tipos de bases de datos
Existen una buena cantidad de tipos de bases de datos, algunos más populares que otros por supuesto, así que vamos a echarle un vistazo a varios de los más utilizados en el sector. Un detalle importante es que en este caso no nos estamos refiriendo a los modelos de bases de datos, si buscas eso podrás encontrarlo más abajo en este mismo artículo.
- MySQL: se encuentra entre los tipos de bases de datos más usadas del mundo y no hay nadie que le gane en lo que refiere a bases de datos relacionales (más sobre esto en la sección de modelos de bases de datos). Se trata de un tipo de software gratuito que posee una amplia presencia en el mercado y es el favorito de muchos sitios web basados en CMS como WordPress, Joomla, Drupal, etc. Es un sistema adecuado para bases de datos de pequeño y mediano porte pero no se recomienda para bases de datos muy grandes ya que pierde bastante rendimiento.
- MariaDB: fue creados por el mismo equipo detrás del MySQL original luego de que este último fuera vendido a Oracle y ante el temor de que dicha empresa decidiera quitar la versión gratuita del mercado. En cierta forma se puede decir que es el sucesor de MySQL y como cabe esperarse es gratuito. Integra muchas de las características de MySQL y expande otras, al punto de que incluso se puede decir que tiene una mejor performance que su antecesor.
- PostgreSQL: otro peso pesado del sector de las bases de datos, PostgreSQL siempre ha sido visto como el rival principal de MySQL. Al igual es este último también es gratuito y del tipo relacional, aunque está orientado a objetos. Este tipo de bases de datos brillan allá donde MySQL no lo hace, es decir, en la gestión de gran cantidad de registros.
- Microsoft SQL Server: como lo dice el nombre es el motor de bases de datos de Microsoft. Se basa en Transact-SQL y es del tipo relacional, siendo su principal característica su gran capacidad de despachar registros en paralelo a muchos usuarios a la vez. Como cabe esperarse se trata de un software licenciado, así que si planeas darle mucho uso preparate para que te duela el bolsillo, dado que su versión gratuita es sumamente limitada y casi seguro que terminarás necesitando una de pago.
- MongoDB: probablemente se trata del exponente número uno cuando se habla de bases de datos del tipo no relacional. En los últimos años ha ganado mucha fuerza y ha sido adoptado por grandes compañías del mundo de Internet como por ejemplo Google y Facebook. MongoDB es veloz y fácil de integrar, aunque tiene una desventaja frente a otros tipos de bases de datos y es en lo referente a consultas complejas, pues no se lleva nada bien con ellas.
- Oracle: el motor de Oracle siempre ha sido el referente cuando se trata de software de bases de datos licenciado, a pesar de tener la competencia del ya mencionado SQL Server de Microsoft. Es un software de alta performance, muy estable y compatible con muchas plataformas. Su única y verdadera desventaja es el costo, aunque si solo deseas jugar un poco con él hay una versión gratuita que te servirá.
Modelos de base de datos
Dejando un poco de lado a las bases de datos más usadas en el mercado, nos encontramos con un concepto conocido como modelos de base de datos. El modelo de una base de datos definirá la estructura que la misma va a poseer, así como también los métodos de accesos y las relaciones que se dan entre los datos almacenados. Veamos entonces cuáles son:
- Modelo relacional: es quizá el más conocido y como su nombre lo indica se basa en las relaciones entre los registros que componen la base de datos. Este es el modelo que utiliza por ejemplo MySQL.
- Modelo jerárquico: este modelo esta basados en un sistema de jerarquías, similar por ejemplo a la estructura de un árbol visto al revés, es decir, partimos de una base y tenemos diversas ramificaciones que a su vez tienen ramificaciones propias. A partir de este modelo surge otro que es el llamado modelo de red.
- Modelo de red: en este modelo los registros de las bases de datos se conectan entre sí por medio de una red. Cada nodo hijo puede poseer incluso dos nodos padres, contrario por ejemplo al modelo jerárquico donde un hijo tendrá un solo padre.
- Modelo entidad-relación: en este modelo los datos son almacenados en forma de entidades, que básicamente son una “cosa” o un “objeto” real, sea tangible o no. Cada entidad posee ciertos atributos, por ejemplo si la entidad es una casa un atributo podría ser su color. Finalmente, las relaciones es un lazo o unión que se establece entre dos entidades.
- Modelo orientado a objetos: difiere bastante de los ya mencionados ya que en este modelo los registros se guardan en forma de objetos. Se trata de bases de datos que son usadas en conjunto con ciertos lenguajes de programación como Java, C++, C#, entre otros. Son ideales para sistemas que manejan gran cantidad de datos complejos y requieren de un alto rendimiento.
- Modelo documental: como su nombre sugiere este modelo se basa en la administración de datos en documentos. Como “documentos” se pueden definir campos de texto plano o incluso documentos reales en formatos como PDF o basados en programas como Microsoft Word.
Top 5 mejores clientes de bases de datos
Para poder conectarnos a un servidor de base de datos necesitamos hacerlo desde un cliente o gestor de bases de datos.
Éstos son los 5 más populares usados en el mercado hoy en día:
- phpMyAdmin: es probablemente el cliente más popular para bases de datos MySQL, y como su nombre indica está hecho en PHP. Proporciona una interfaz gráfica que hace más sencilla varias de las tareas relacionadas con manipulación de bases de datos MySQL. Por supuesto se trata de un software gratuito y es compatible con múltiples sistemas operativos. También es compatible con MariaDB.
- MySQL Workbench: es uno de los clientes de escritorio más utilizados a la hora de manejas bases de datos MySQL. Su desarrollo lo lleva adelante la empresa Oracle, quien ofrece una versión gratuita y también una versión comercial.
- HeidiSQL: es una herramienta gratuita que nos permite trabajas con bases de datos de MySQL, de PostgreSQL y de Microsoft SQL Server. Integra todas las funciones que se pueden esperar de un cliente de bases de datos gratuito, como por ejemplo manejo de usuarios y privilegios, visualización y edición de tablas, manejo de procedures y triggers, etc.
- DBeaver: es otro cliente de bases de datos que está disponible tanto en licencia gratuita como comercial. Esta última integra diversas funciones y compatibilidades que no posee la versión gratis: se puede usar con bases de datos de MySQL/MariaDB, PostgreSQL, Oracle, Microsoft SQL, SQLite y muchas más.
- phpPgAdmin: es un cliente orientado a la administración de bases de datos de PostgreSQL. Está basado en el proyecto phpMyAdmin, solo que en lugar de enfocarse en MySQL ha sido orientado para PostgreSQL. Como cabe esperarse es una herramienta totalmente gratuita y multiplataforma.
Conclusión
Las bases de datos sin lugar a dudas son un gran mundo, en esta oportunidad hemos visto muchas cosas sobre ellas y en realidad apenas estamos arañando la superficie, pero al menos si buscabas informarte en el tema ya sabes qué es una base de datos y el tipo de uso que se le da, y también conoces a varios de los principales tipos de bases de datos y modelos de bases de datos existentes.
Como ya les decíamos, las bases de datos son un conjunto de datos almacenados en una determinada estructura y que suelen tener una cierta relación entre sí.
Son utilizadas por sitios web y otros tipos de aplicación para guardar información relacionada con el sitio o la aplicación en sí, y existen además varios tipos distintos como MySQL, MariaDB, PostgreSQL, Oracle y MongoDB, y no olvidemos claro que también hay distintos modelos de bases de datos según su estructura y las relaciones entre datos, como puede ser el modelo relacional, el modelo en red, el modelo orientado a objetos o el modelo jerárquico.