Comparte en Facebook Twitter Google+

Banner bases de datos

Cuando te enfrentas al desarrollo de un proyecto muchas veces encuentras que el mismo tiene como requisito que domines bases de datos.

En este artículo te ayudaremos a comprender qué es y qué no es una base de datos, además de los problemas a que te enfrentas cuando trabajas con directorios compartidos como si fueran bases de datos. Después, definiremos brevemente los sistemas de bases de datos y su composición, los sistemas manejadores de bases de datos, haremos una introducción del modelo relacional de base de datos y explicaremos de forma resumida el origen de los sub-lenguajes para manejo de bases de datos.

Qué es y qué no es una base de datos

Una base de datos es una colección de objetos guardados en forma permanente que se usan para representar, almacenar y tener acceso a los datos por medio de peticiones a un software.

El término permanente se usa para diferenciar de los datos temporales o efímeros que se cargan en la memoria de tu computadora y que desaparecen cuando terminas la ejecución de un programa.  En cambio, el almacenamiento permanente normalmente se lleva a cabo en el disco duro de un equipo especial llamado servidor. Hoy en día también está muy de moda el uso de servidores en la nube o Internet.

El software que maneja todas las peticiones a la base de datos se conoce como Sistema Manejador de Base de Datos o por sus siglas en inglés DBMS. También existen sinónimos como servidor y gestor de base de datos.

Ahora bien, una colección de archivos electrónicos que administras a través del sistema de archivos de tu sistema operativo no puede considerarse una base de datos.

Por ejemplo, podrías crear y compartir un directorio de red para guardar un conjunto de hojas de cálculo, imágenes, documentos, videos, etc. Pero aunque también puedes representar, almacenar y tener acceso a tus datos directamente, no lo haces a través de un DBMS y esto trae consigo problemas con la información que no podrás controlar en la medida que crecen tus necesidades de automatizar el trabajo.

Aprende más sobre bases de datos y SQL con nuestro nuevo libro disponible en Leanpub con 40% de descuento por prelanzamiento.

Leer más

Problemas de considerar el trabajo con directorios compartidos como si fueran bases de datos

  • El administrador de archivos del sistema solamente sabe de operaciones para copiar, mover, y eliminar archivos, pero tienen muy poca o nula capacidad para hacer tareas que normalmente hacen los usuarios con los datos que contienen estos archivos.
  • Aunque puedes restringir el acceso a tus archivos mediante contraseñas con permisos sobre archivos completos tales como: visualizar, editar, imprimir, etc., esto no es suficiente para controlar escenarios donde requieres un nivel de acceso más específico. Por ejemplo, podrías estar viendo o editando datos directamente  dentro de un archivo que le pertenece a otra persona sin la autorización adecuada, simplemente porque compartes el acceso a este archivo.
  • La información se puede desactualizar muy fácilmente. Por ejemplo, puedes tener la dirección de una empresa escrita de forma distinta en dos archivos diferentes sin estar consciente de ello: Piensa en los problemas que esto causaría en una empresa de transporte.
  • En la medida que aumenta el volumen de información, también aumentan las complicaciones para procesar los datos y como consecuencia el tiempo que inviertes en hacer casi cualquier tarea.
  • Afectan el crecimiento de la organización ya que en la medida que aumenta el número de usuarios, también aumenta la necesidad de realizar tareas simultáneas, se requerirá una mayor sincronización en la ejecución de las tareas. Este tipo de escenario casi siempre causa enormes cuellos de botella y pérdidas de tiempo hasta que se vuelve inmanejable.

Por estas razones, se puede concluir que una colección de archivos compartidos en un directorio no es equivalente a una base de datos.

Sistemas de bases de datos

Un sistema de base de datos es un sistema computarizado para llevar registros en una base de datos. Está compuesto por: los usuarios, el hardware necesario, las aplicaciones, el software del DBMS, y la base de datos.

Los usuarios del sistema pueden realizar tareas como:

  • Agregar archivos a la base de datos.
  • Insertar registros de datos en estos archivos.
  • Consultar datos en los archivos existentes.
  • Modificar datos en los archivos existentes.
  • Eliminar datos en los archivos existentes.
  • Eliminar archivos.

Diferencia entre base de datos, DBMS y sistema de base de datos.

Sucede que muchas veces estas definiciones son usadas como sinónimos y tienden a confundirse, pero debes evitar usarlos en forma intercambiable porque como has visto hasta aquí corresponden a elementos bien diferenciados dentro de un todo que es el sistema de base de datos en sí.

Por ejemplo cuando escuchas frases como:

  • ¿En qué está hecha la base de datos?,  se usa casi siempre para preguntar por el nombre del DBMS: MySQL, MariaDB, SQLServer, etc.
  • ¿De qué es la base de datos?, usualmente para preguntar por la información que se almacena, por ejemplo: guarda información sobre tratamiento de mascotas, de administración de panaderías, de materiales de ferretería, etc.
  • ¿Con qué servidor trabaja la base de datos?, para referirse a las características del hardware donde se está ejecutando el programa o software del DBMS, por ejemplo: Un equipo HP Proliant G6 de una serie de servidores de la compañía fabricante HP.
  • ¿Qué hace la base de datos?, para conocer sobre el funcionamiento y operaciones que ejecuta el sistema que se está utilizando. Por ejemplo en un sistema para clínicas de mascotas: el sistema podría permitir abrir las historias, llevar un control de las visitas, llevar un control del equipo de veterinarios, etc.

Como puedes observar su significado dependerá del contexto en que los uses, pero pudieras ser más específico para despejar dudas. Por ejemplo:

  • ¿Cuál es el DBMS que se está usando?
  • ¿De qué trata la información que se almacena en la base de datos?
  • ¿Cómo es el hardware del servidor?
  • ¿Cuáles son las funciones del sistema de base de datos?

El modelo de datos relacional

Los orígenes de las bases de datos relacionales y del SQL se remontan al período 1960-1970, cuando el científico matemático e informático inglés Edgar F. “Ted” Codd inventó el modelo relacional para la administración de bases de datos, cuando trabajaba para IBM.

El término relacional se deriva del término relación perteneciente a la teoría de conjuntos de las matemáticas ya que este modelo está ampliamente fundamentado en la lógica y en las matemáticas y, por lo tanto, es la referencia obligada para el aprendizaje de los principios de las bases de datos.

El modelo relacional se ocupa de tres aspectos de la información como son: la estructura, la manipulación y la integridad de los datos.

Los sistemas de bases de datos relacionales están basados en las ideas expresadas en el modelo relacional.

Sub-lenguajes para el manejo de bases de datos

El modelo relacional introdujo la necesidad de contar con un sub-lenguaje para la definición de la estructura de estos datos y para manipulación de los mismos.

IBM tomó estas ideas para definir el lenguaje SEQUEL (Lenguaje de consulta estructurado en inglés) en el sistema de gestión de base de datos System R en sus laboratorios. Sin embargo, fue Oracle que lanzó la primera versión comercial de este lenguaje en 1978.

SEQUEL terminó siendo el predecesor de SQL, que es una versión evolucionada del primero. Luego, SQL se convirtió en el lenguaje estándar de las bases de datos “relacionales” y prácticamente todos los productos DBMS del mercado lo manejan en la actualidad: Microsoft SQL Server, Oracle, Sybase, MySQL, PostgreSQL, Informix, DB2, y todos los productos derivados de MySQL entre ellos MariaDB y PerconaDB, etc.

Esperamos que te haya gustado este material, para aprender más dale un vistazo a nuestro libro Aprende SQL con MySQL y MariaDB.

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Aprende desarrollo web con Laravel, Vue.js y mucho más a partir de 9 USD al mes: ver planes.