Introducción
Este punto de control está destinado a ayudarte a evaluar lo que aprendiste de nuestros artículos introductorios sobre Bases de Datos, donde definimos las bases de datos e introdujimos sistemas comunes de gestión de bases de datos. Puedes usar este punto de control para poner a prueba tus conocimientos sobre estos temas, revisar términos clave y comandos, y encontrar recursos para seguir aprendiendo.
A database is any logically modeled collection of information or data. When people refer to a “database” in the context of websites, applications, and the cloud, they often mean a computer program that manages data stored on a computer. These programs, known formally as database management systems (DBMS), can be combined with other programs (like a web server and a front-end framework) to form production-ready applications.
En este punto de control, encontrarás dos secciones que sintetizan las ideas centrales de los artículos introductorios: una breve explicación de qué es una base de datos (incluidas subsecciones sobre bases de datos relacionales y no relacionales) y una sección sobre cómo interactuar con tu sistema de gestión de bases de datos a través de la línea de comandos o interfaces gráficas de usuario. En cada una de estas secciones, hay componentes interactivos para ayudarte a evaluar tus conocimientos. Al final de este punto de control, encontrarás oportunidades para seguir aprendiendo sobre sistemas de gestión de bases de datos, bases de datos totalmente gestionadas y cómo crear tus aplicaciones con bases de datos de backend.
Recursos
- Una Introducción a las Bases de Datos
- Comprendiendo las Restricciones de SQL
- SQLite vs MySQL vs PostgreSQL: Una Comparación de Sistemas de Gestión de Bases de Datos Relacionales
- A Comparison of NoSQL Database Management Systems and Models
- Cómo Instalar y Asegurar Redis en Ubuntu 22.04
- Cómo Realizar Operaciones CRUD en MongoDB
¿Qué es una Base de Datos?
A database is any logically modeled collection of information, and a database management system is what most people think of when they think “I know what a database is!” You use a database management system (DBMS), which is a computer program designed to interact with the information, to access and manipulate the information stored in your database.
Términos a Conocer
Define los siguientes términos y luego utiliza la función de menú desplegable para verificar tu trabajo.
Replication
Replicación se refiere a la práctica de sincronizar datos en múltiples bases de datos separadas. Esta práctica proporciona redundancia, mejora la escalabilidad y reduce las latencias de lectura.
Sharding
Fragmentación de Base de Datos es una práctica arquitectónica que consiste en separar datos en fragmentos llamados fragmentos lógicos que se distribuyen en nodos separados llamados fragmentos físicos. Para obtener más información sobre esta práctica, puedes revisar nuestro artículo sobre Comprendiendo la Fragmentación de Bases de Datos.
Hay tres modelos relacionales comunes utilizados para sistemas de bases de datos:
Relational Model | Relationship |
---|---|
One-to-one | In a one-to-one relationship, rows in one table (sometimes called the parent table) are related to one and only one row in another table (sometimes called the child table). |
One-to-many | In a one-to-many relationship, a row in the initial table (sometimes called the parent table) can relate to multiple rows in another table (sometimes called the child table). |
Many-to-many | In a many-to-many relationship, rows in one table can related to multiple rows in the other table, and vice versa. While these tables may also be referred to as parent and child tables, the multidirectional relationship does not necessitate a hierarchical relationship. |
Estos modelos relacionales estructuran cómo pueden relacionarse las bases de datos entre sí.
Existen dos categorías para la gestión de bases de datos: bases de datos relacionales y no relacionales. En las siguientes subsecciones, aprenderás sobre cada tipo y los SGBD comunes para esos tipos.
Bases de Datos Relacionales
A relational database organizes information through relations, which you might recognize as a table.
Verifica tu conocimiento
What are the elements that make up a relation?
A relation is a set of tuples, or rows in a table, with each tuple sharing a set of attributes, or columns. A tuple is a unique instance of what type of data the table holds, whereas an attribute specifies the data type for what is allowed in the column.
What is the difference between a primary key and a foreign key?
A primary key refers to the column that will uniquely identify each row in a relational table, whereas a foreign key is a copy of the primary key inserted into a second relation in order to create a relationship between two tables.
Cuando la información se almacena en una base de datos y se organiza en la relación, se puede acceder a través de consultas que hacen una solicitud estructurada de información. Muchas bases de datos relacionales utilizan el Lenguaje de Consulta Estructurado, comúnmente conocido como SQL para gestionar las consultas a la base de datos.
Puedes utilizar SQL restricciones al diseñar tu base de datos. Estas restricciones imponen restricciones sobre qué cambios se pueden realizar en los datos de la tabla.
Verifica tu conocimiento
Why might you impose constraints on your database?
- Reglas de Negocio: Las restricciones permiten a los administradores de bases de datos asegurarse de que la base de datos se alinee con las políticas y procedimientos definidos que satisfacen las necesidades y expectativas del negocio.
- Integridad de Datos: La entrada de datos es propensa a errores de entrada, por lo que las restricciones proporcionan parámetros adicionales para garantizar datos correctos.
What are the five constraints that are formally defined by the SQL standard?
PRIMARY KEY
requiere que cada entrada en la columna dada sea única y noNULL
, y te permite usar esa columna para identificar cada fila individual en la tabla.FOREIGN KEY
requiere que cada entrada en la columna dada ya exista en una columna específica de otra tabla.UNIQUE
prohíbe que se agreguen valores duplicados a la columna dada.CHECK
define un requisito para una columna, conocido como predicado, que cada valor ingresado en ella debe cumplir.NOT NULL
prohíbe que se agreguen valoresNULL
a la columna dada.
Algunos sistemas de gestión de bases de datos relacionales de código abierto construidos con SQL incluyen MySQL, MariaDB, PostgreSQL y SQLite. Continúa aprendiendo sobre bases de datos relacionales con Understanding Relational Databases y revisa los sistemas de gestión de bases de datos relacionales comunes con SQLite vs MySQL vs PostgreSQL: A Comparison Of Relational Database Management Systems.
Terminología de Bases de Datos Relacionales Para Conocer
A través de cada uno de los artículos, has desarrollado un vocabulario sobre bases de datos relacionales. Define cada uno de los siguientes términos y luego usa la función desplegable para verificar tu trabajo.
Constraint
A constraint is any rule applied to a column or table that limits what data can be entered into it.
Data Types
A data type dictates what kind of entries are allowed in a column.
Object Database
Un base de datos de objetos utiliza estructuras orientadas a objetos para la información. PostgreSQL es una base de datos relacional que incorpora algunas características de las bases de datos de objetos.
Serverless
A serverless database, like SQLite, allows any process that accesses the database to write and write to the database disk file directly. This behavior is in contrast to the interprocess communication that is implemented by other relational database engines.
Puedes escribir una función sin servidor para practicar la ejecución de una aplicación sin servidor.
Signed and Unsigned Integers
Algunos tipos de datos numéricos son con signo, lo que significa que pueden representar números positivos y negativos, mientras que otros son sin signo y solo pueden representar números positivos.
Ahora que conoces las bases de datos relacionales, puedes comprender su contraparte: las bases de datos no relacionales.
Bases de Datos No Relacionales y NoSQL
Si necesitas almacenar datos de manera no estructurada, una base de datos no relacional proporciona un modelo alternativo. Debido a que una base de datos no relacional no utiliza SQL, a veces se la denomina base de datos NoSQL.
Hay una variedad de opciones disponibles para una base de datos no relacional, como almacenes clave-valor, bases de datos columnares, almacenes de documentos, y bases de datos de grafos. Cada uno de estos modelos aborda posibles problemas con el uso de una base de datos relacional, incluyendo la escalabilidad horizontal, la consistencia eventual entre nodos, y la gestión de datos no estructurados.
Términos de las Bases de Datos No Relacionales a Conocer
Cada uno de los modelos de base de datos no relacionales tiene características específicas que lo hacen único. Define el tipo de modelo, luego utiliza la función de menú desplegable para revisar tu trabajo.
Key-value databases
Las bases de datos clave-valor almacenan y gestionan arreglos asociativos que contienen pares clave-valor donde la clave es un identificador único que recupera su valor asociado.
Columnar databases
Las bases de datos columnares están orientadas a columnas, lo que significa que almacenan datos en columnas. Los datos aparecen en orden de registros donde la primera entrada en una columna está relacionada con la primera entrada en otras columnas.
Document-oriented databases
También conocidas como un almacén de documentos, estas son bases de datos NoSQL que almacenan datos en forma de documentos. Cada documento contiene metadatos para estructurar los datos, y se puede utilizar una API o un lenguaje de consulta para recuperar documentos.
Graph databases
Las bases de datos de grafos son una subcategoría de los almacenes de documentos, y este tipo de base de datos resalta las relaciones entre documentos.
Puedes comprobar tu conocimiento sobre qué populares sistemas de gestión de bases de datos no relacionales se alinean con el tipo de modelo de base de datos con la siguiente función de menú desplegable interactiva.
Compruébalo tú mismo
Corresponde el siguiente sistema de gestión de bases de datos a su modelo operativo de base de datos.
- Redis
- Couchbase
- Cassandra
- OrientDB
- MongoDB
- Neo4j
- MemcacheDB
- Apache HBase
Compare your answers using the dropdown feature.
Operational Database Model | Example DBMSs |
---|---|
Key-value store | Redis, MemcacheDB |
Columnar database | Cassandra, Apache HBase |
Document store | MongoDB, Couchbase |
Graph database | OrientDB, Neo4j |
Ya sea que estés utilizando una base de datos relacional o no relacional, es probable que estés construyendo una aplicación que incluya un sistema de gestión de bases de datos como parte de su conjunto tecnológico.
Construcción de una Pila de Aplicaciones
El sistema de gestión de bases de datos se implementa con mayor frecuencia como un aspecto esencial de una aplicación más grande. Estas aplicaciones a veces se llaman stacks, como el stack LAMP o el stack Elastic.
Verifícalo por ti mismo
Utiliza la función desplegable para obtener las respuestas.
What makes up a LAMP stack?
LAMP es un acrónimo de la tecnología que compone esta pila:
- Linux sistema operativo
- Apache servidor web
- MySQL base de datos
- PHP para procesamiento dinámico de contenido
Hay otras opciones de L*MP, como el stack LEMP donde E representa Nginx o el stack LOMP donde O representa OpenLiteSpeed.
What makes up Elastic stack?
El stack Elastic está construido alrededor de Elasticsearch, que es tanto un motor de búsqueda como una base de datos orientada a documentos.
Si configura un servidor remoto con su stack de aplicación, se recomienda que cifre sus datos para proteger su sistema de interferencias maliciosas. Puede cifrar las comunicaciones utilizando seguridad de capa de transporte (TLS), que convertirá los datos en movimiento en un texto cifrado que solo puede ser descifrado por el cifrado correcto. Los datos estáticos almacenados en su base de datos permanecerán sin cifrar a menos que utilice un DBMS que ofrezca cifrado de datos en reposo.
Para gestionar su base de datos, puede optar por hacerlo directamente desde la interfaz de línea de comandos o a través de una interfaz gráfica de usuario.
Usando la Línea de Comandos con su DBMS
Comenzaste a utilizar la línea de comandos de Linux con nuestros artículos introductorios sobre servidores en la nube y configuraste un servidor web con los artículos introductorios sobre soluciones de servidor web. A través de los artículos sobre bases de datos, has seguido familiarizándote con la línea de comandos utilizando comandos como:
grep
para buscar datos de texto plano con un texto o cadena específica.netstat
para verificar la configuración de red con las opciones-lnp
para mostrar los sockets en escucha (-l
), las direcciones numéricas (-n
) y el PID y nombre del programa para cada socket (-p
).systemctl
para controlar el serviciosystemd
.
También has experimentado con las herramientas de línea de comandos que vienen con diferentes sistemas de gestión de bases de datos para interactuar con la instalación de la base de datos. La herramienta de línea de comandos te permite ejecutar comandos en el servidor de base de datos y trabajar de forma interactiva desde la ventana de tu terminal. La siguiente tabla enumera los sistemas de gestión de bases de datos comunes y su herramienta de línea de comandos asociada:
DBMS | CLI tool |
---|---|
MongoDB | MongoDB shell |
MySQL | mysql |
PostgreSQL | psql |
Redis | redis-cli |
También existen clientes de línea de comandos de terceros para algunos sistemas de gestión de bases de datos, como Redli para Redis.
Cuando utilizas la línea de comandos para trabajar con tu sistema de base de datos, abres un símbolo del servidor específico de la base de datos, normalmente asociado a tu cuenta de usuario para ese sistema de gestión de bases de datos. Por ejemplo, si abres un símbolo del servidor MySQL e inicias sesión con tu usuario de MySQL, verías un símbolo de base de datos de la siguiente manera:
-
Cada cliente de línea de comandos de SGBD tiene su propia sintaxis para los comandos.
Después de aprender acerca de las restricciones de SQL, podrías utilizar esas restricciones con una base de datos de MySQL ejecutando estos comandos:
CREATE DATABASE
para crear una base de datos.USE
para seleccionar una base de datos.CREATE TABLE
para crear una tabla con especificaciones para las columnas y restricciones aplicadas a esas columnas.ALTER TABLE
conADD
para añadir restricciones a una tabla existente y conDROP CONSTRAINT
para eliminar una restricción de una tabla existente.
Puedes seguir desarrollando tus habilidades en bases de datos MySQL con la serie Cómo utilizar SQL.
Con Redis, has instalado y asegurado Redis con los siguientes comandos y has experimentado con la renombración de comandos:
auth
para autenticar clientes para el acceso a la base de datos.exit
yquit
para salir del prompt de Redis-CLI.get
para recuperar el valor de la clave.ping
para probar la conectividad.set
para establecer claves.
Y, en el shell de MongoDB, utilizaste JSON binario (conocido como BSON) para ejecutar operaciones CRUD con los siguientes métodos de filtrado de consultas:
count
método para verificar el recuento de objetos en una colección especificada.deleteOne
para eliminar el primer documento que coincida con las especificaciones.deleteMany
para eliminar múltiples objetos a la vez.find
para recuperar documentos en tu base de datos de MongoDB con la función de impresiónpretty
para hacer que las líneas sean más legibles.insertOne
método para crear documentos individuales.insertMany
método para insertar múltiples documentos en una sola operación o colección.ObjectId
tipo de dato de objeto para almacenar identificadores de objetos.updateOne
para actualizar un único documento con claves especificadas.updateMany
para actualizar cada documento en una colección que coincida con los filtros especificados.
Probablemente utilizarás operaciones CRUD para interactuar con tus datos en muchos sistemas de gestión de bases de datos.
Compruébalo tú mismo
What does CRUD stand for?
CRUD es un acrónimo utilizado para describir las siguientes cuatro operaciones fundamentales de datos:
- Crear
- Recuperar
- Actualizar
- Eliminar
Aunque puedes optar por administrar tu base de datos directamente desde la línea de comandos, también puedes usar una interfaz de usuario gráfica (GUI) para muchos sistemas de gestión de bases de datos comunes.
Usando una Interfaz Gráfica de Usuario
Existen muchas herramientas GUI diferentes para trabajar con tu base de datos si decides no utilizar la herramienta CLI diseñada.
Para administrar MySQL a través de la web, puedes utilizar phpMyAdmin mediante la instalación y seguridad de phpMyAdmin en muchos sistemas operativos diferentes o conectándote de forma remota a una base de datos administrada de MySQL. También puedes utilizar MySQL Workbench para conectarte a un servidor MySQL de forma remota.
Similar a phpMyAdmin, pgAdmin es una interfaz web para administrar PostgreSQL. Puedes instalar y configurar pgAdmin en modo servidor o utilizarlo para programar copias de seguridad automáticas con pgAgent.
Para MongoDB, puedes considerar utilizar MongoDB Compass como la interfaz gráfica para acceder a tu base de datos.
Ya sea que elijas utilizar la línea de comandos o una interfaz gráfica para administrar tu base de datos, ahora tienes las herramientas necesarias para gestionar tu sistema de base de datos.
¿Qué sigue?
Con un mejor entendimiento de las bases de datos y los sistemas populares de gestión de bases de datos, puedes almacenar y administrar tus datos o construir una aplicación que utilice un sistema de bases de datos.
Para obtener más información sobre cómo trabajar con sistemas específicos de gestión de bases de datos, puedes seguir nuestra serie Cómo Usar SQL y Cómo Administrar Datos con MongoDB. Si te encuentras con problemas en MySQL, puedes solucionarlos con Cómo Diagnosticar Problemas en MySQL. Para problemas con MongoDB, evalúa cómo tus problemas están relacionados con Cómo Realizar Operaciones CRUD en MongoDB.
Cuando estés listo para construir tus aplicaciones con bases de datos, intenta seguir estos tutoriales para configuraciones comunes de pilas de aplicaciones:
- Cómo Instalar el Stack LAMP (Linux, Apache, MySQL, PHP) en Ubuntu 22.04
- Cómo Instalar el Stack LEMP (Linux, Nginx, MySQL, PHP) en Ubuntu 22.04
- Cómo instalar Linux, OpenLiteSpeed, MariaDB, PHP (pila LOMP) en Ubuntu 22.04
Si prefieres construir tus aplicaciones con bases de datos totalmente gestionadas, echa un vistazo a las ofertas de DigitalOcean para clústeres de MongoDB gestionados, MySQL o alojamiento de PostgreSQL, y Redis gestionado. También puedes elegir una opción de base de datos popular para una instalación con un solo clic en el Marketplace de DigitalOcean.
Con tu nuevo conocimiento de bases de datos, también puedes continuar tu viaje en la nube con contenedores y seguridad. Si aún no lo has hecho, echa un vistazo a nuestros artículos introductorios sobre servidores en la nube y servidores web.
Source:
https://www.digitalocean.com/community/tutorials/databases-checkpoint