Cómo crear una base de datos con MySQL

Cómo crear una base de datos con MySQL

Aunque parezca un poco complejo, la base de datos se basa en un concepto muy simple que muchas personas utilizan en gráficos y tablas para organizar información sobre diferentes entidades, ya que la función de una base de datos es ser un lugar para almacenar y controlar información.

Ahora bien, si una base de datos es similar a una hoja de cálculo, ¿cuál es la ventaja de usarla? Lo explico en este artículo.

Beneficios de tener una base de datos en la empresa


La principal ventaja de utilizar una base de datos es la fiabilidad de la información. Con una base de datos podemos controlar el acceso, devolver el historial a versiones anteriores, conectar tablas, entre muchas otras funcionalidades.

Estas funcionalidades aportan varias ventajas a la empresa como aumentar la seguridad de los datos o aumentar la integridad de cualquier información, por ejemplo. De esta manera, la aplicación de esta herramienta en su proyecto genera un alto valor para la aplicación como producto.

Sabiendo esto, antes de comenzar a crear una base de datos, es importante entender el concepto de normalizar una tabla, algo que detallaré a continuación.

Normalización de bases de datos


Hay varios tipos de base de datos. En este ejemplo se creará una base de datos relacional, que consiste en relacionar columnas entre tablas. Cada fila tiene una identificación específica y su columna se puede vincular a una columna en otra tabla, algo que quedará más claro en el siguiente ejemplo:

Ambas tablas tienen una columna común: manager_id. En la tabla de empleados, esta columna representa al gerente responsable de cada empleado, mientras que en la tabla de gerentes, la columna manager_id es una identificación para cada gerente.

Cuando se crea una base de datos, respetamos algunas reglas de creación de tablas. Una tabla que sigue estas reglas se denomina tabla normalizada.

Las tablas anteriores están normalizadas, esto quiere decir que no hay redundancia en los datos. El concepto de normalización tiene varios niveles. Sin embargo, para resumir el artículo, no entraremos en los detalles de cada tipo de normalización. Las reglas más importantes son:

  • Las columnas no pueden tener más de una pieza de información. Por ejemplo, si almacenaras un número de teléfono, estaría en contra de las reglas tener dos números de teléfono en la misma columna.
  • Cada tabla debe representar una entidad y solo debe tener información esencial para esa entidad. En el ejemplo anterior, sería posible poner toda la información en una sola tabla, pero esto sería incorrecto. Ten en cuenta que la tabla de gerentes solo posee información sobre gerentes y empleados, la información esencial para cada empleado.

La palabra entidad utilizada anteriormente se refiere a un conjunto de información sobre un concepto dado. Por ejemplo, podemos tener la entidad de sabores, que contendrá chocolate, vainilla y fresa, o podemos tener la entidad de empleado que tiene un pago, un nombre, una edad y una fecha de contrato.

Teniendo eso en mente y manteniéndonos en usar la idea de la compañía con estas reglas, haremos una base de datos un poco más compleja:

Después de estructurar la idea de la base de datos, es mucho más fácil crear el código. Una base de datos se compone de varias tablas. En el siguiente ejemplo usaremos la tecnología MySQL Workbench para crear la base de datos como en las tablas anteriores.

Si quieres seguir el ejemplo, te recomiendo instalar el software y seguir el paso a paso a continuación.

En el siguiente código, primero se crearán las tablas y luego se insertarán los datos iniciales.

Al ejecutar este código se creará la base de datos. A partir de ese momento se podrá acceder localmente a los datos. Además, podremos utilizar tecnologías como Node.js, PHP y varias más para comunicarnos con la base.

Para una mejor comprensión del código anterior, se explicará por partes:

Estas primeras líneas de código sirven para borrar la base de datos si ya existe y luego crear una nueva desde cero.

En las siguientes líneas tenemos la sintaxis estándar para crear tablas que siguen este ejemplo, donde podemos insertar datos con restricciones:

En la primera tabla creada tenemos la columna manager_id, una “PRIMARY KEY” que será un número entero y se insertará automáticamente, la columna de nombre que tiene un límite de 30 caracteres y no puede ser nulo y finalmente la columna de edad que debe ser un entero y no puede ser nulo.

La mencionada “PRIMARY KEY” sirve para identificar que esa columna es la que tendrá el ID de identificación.

La segunda tabla tiene información que hace referencia a datos de otra tabla y para eso usamos FOREIGN KEY para identificar que el manager_id es de la tabla de administradores.

Después de crear las tablas con sus restricciones correspondientes, insertamos los datos con las siguientes líneas de código:

Como los datos insertados respetan las restricciones, se colocaron correctamente en la tabla y se pueden ver en MySQL Workbench.

Este modelo se puede reproducir para varias bases de datos con diferente información y la mayor ventaja de tener la base de datos es que podemos usar el lenguaje para analizar los datos insertados de formas diferentes a las tablas creadas.

Primeros comandos en MySQL


Con la base de datos creada, podemos realizar varios análisis de datos, siendo posible seleccionar cierta información, como:

En el código anterior contamos el número de recepcionistas en la tabla employee_info. Al ejecutar este comando en MySQL tendremos el retorno de una tabla como ésta:

También podemos hacer comandos más complejos, por ejemplo, tomando los nombres de los cuidadores y uniéndolos con los nombres de los animales de los que son responsables:

En el ejemplo anterior, primero le damos un apodo a la tabla de gerentes CompanieDatabase.managers. De esta manera, podemos seleccionar su columna por apodo, ya que en la primera línea obtuvimos la columna de name por managers.name. En la misma línea seleccionamos el nombre de la oficina, que proviene de otra tabla.

Los comandos JOIN y ON están vinculados, es decir, el JOIN solo unirá los datos de las tablas donde el manager_id de las dos tablas sea el mismo. Por lo tanto, ejecutar el comando anterior en MySQL dará como resultado un retorno donde tendremos el nombre del cuidador y al lado el nombre de la especie de la que es responsable:

Al comprender estos conceptos, podemos expandir nuestra base de datos y comenzar a agregar valor a nuestra información almacenada.

Además de los comandos que se usaron, hay varias otras características que no usamos. Al igual que otros lenguajes, en SQL podemos usar condicionales, estructuras de repetición e incluso funciones. Profundizar en este tema aumentará en gran medida su nivel de control de datos.

Para comprender más acerca de estos comandos, recomiendo leer la documentación.

Conclusión


Toda empresa que trabaje con cualquier tipo de información importante puede beneficiarse de la base de datos. Después de usar y profundizar en los comandos de MySQL, es visible que la tecnología aporta más seguridad a tu aplicación y más confiabilidad a los datos, facilitando el mantenimiento de la información, posibilitando un análisis más profundo de los datos y también permitiendo que diferentes empresas utilicen la datos de múltiples maneras.

Además de todas estas herramientas que trae MySQL, una de las mayores ventajas de la tecnología es que es fácil de escalar, ya que la base de datos se puede poblar y editar con mucha más precisión que en una simple hoja de cálculo en Excel.

Aprender a usar este software para comunicarse con la aplicación es muy importante para un desarrollador backend y, dominar este lenguaje, puede aumentar considerablemente el nivel de su proyecto.

⚠️
Las opiniones y comentarios emitidos en este artículo son propiedad única de su autor y no necesariamente representan el punto de vista de Revelo.

Revelo Content Network da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.