Introducción a los conceptos básicos de bases de datos: diseño de sistemas 08

diseño-de-sistemas-Diseño de sistemas 08-Introducción a los fundamentos de bases de datos-introducción-a-los-fundamentos-de-bases de datos-hogantech-hoganblab

¿Que es una base de datos?

Como sugiere el nombre, una base de datos es un lugar donde se almacenan datos. Entonces, ¿hay alguna forma de desarrollar un sistema de software sin utilizar una base de datos? Si se trata de una página web estática inicial con solo un pequeño texto estático, no hay problema sin una base de datos. Sin embargo, a medida que los sistemas modernos se vuelven cada vez más complejos y las aplicaciones se vuelven más abundantes, debemos utilizar bases de datos para almacenar datos. Por ejemplo: Youtube requiere una base de datos grande y compleja para almacenar diferentes tipos y tamaños de datos.

Por supuesto, las bases de datos también tienen definiciones más precisas. La siguiente es la definición extraída de Oracle:

Una base de datos es una colección organizada de información o datos estructurados, generalmente almacenados electrónicamente en un sistema informático. Las bases de datos suelen estar controladas por un sistema de gestión de bases de datos (DBMS). Los datos y el DBMS junto con sus aplicaciones asociadas se denominan sistema de base de datos, a menudo denominado simplemente base de datos.

Los datos de los tipos más comunes de bases de datos que se ejecutan hoy en día suelen modelarse como filas y columnas en una serie de tablas para aumentar la eficiencia del procesamiento y la consulta de los datos. Luego se puede acceder, gestionar, modificar, actualizar, controlar y organizar fácilmente los datos. La mayoría de las bases de datos utilizan lenguaje de consulta estructurado (SQL) para escribir y consultar datos.

Básicamente, existen dos tipos de bases de datos, a saber: SQL (base de datos relacional) y NoSQL (base de datos no relacional). Creo que muchos lectores han escuchado los nombres de estas bases de datos. Entre ellas, las bases de datos relacionales tienen datos estructurados y bases de datos construidas. sobre un modelo relacional, mostrando datos en tablas de datos de forma directa e intuitiva. Las bases de datos no relacionales son datos no estructurados que son relativamente discretos y están construidos para un modelo de datos específico, y almacenan los datos en una estructura flexible que las aplicaciones modernas pueden ampliar fácilmente. Las bases de datos NoSQL son reconocidas por su facilidad de desarrollo, funcionalidad y rendimiento a escala.

Ventajas de la base de datos

Las bases de datos son muy importantes para todas las empresas y organizaciones, porque almacenan toda la información, como la información de los empleados de una empresa, la información de los clientes, los registros de transacciones, etc.

Básicamente la base de datos tiene las siguientes ventajas:

Gestione Big Data: el uso de repositorios facilita el manejo de grandes cantidades de datos que no es posible con otras herramientas.

Coherencia de los datos: Podemos recuperar los datos correctos en cualquier momento.

Seguridad de los datos: la base de datos garantiza la seguridad de los datos y solo permite que los usuarios autorizados accedan a ellos.

Integridad de los datos: la base de datos garantiza la integridad de los datos mediante el uso de diferentes restricciones sobre los datos.

Disponibilidad del sistema: La base de datos se puede replicar en diferentes servidores (Replicación) y se puede actualizar simultáneamente.

Escalabilidad: La base de datos está particionada (Partition) para gestionar la carga en un solo nodo, mejorando la escalabilidad del sistema.

ÁCIDO

ACID se compone de cuatro palabras, a saber: Atomicidad, Consistencia, Aislamiento y Durabilidad. Estas cuatro características también están escritas por el sistema de gestión de bases de datos (RDBMS) Funciones que son necesarias para garantizar que el proceso sea correcto al importar o actualizar datos.

En el sistema de base de datos, una transacción (Transacción) se refiere a: una lógica completa compuesta por operaciones de la base de datos, por ejemplo: transferencia bancaria, debitar dinero de la cuenta original y agregar dinero a la cuenta de la otra parte. Estos dos La operación de la base de datos. constituye una lógica completa y es inseparable. Dicho proceso también contiene las características de ACID. ¡A continuación, expliquemos brevemente ACID!

Atomicidad

Las transacciones atómicas garantizadas se tratan como unidades indivisibles, lo que significa que todas las operaciones de la transacción deben tener éxito o ninguna de ellas podrá tener éxito. Esto es importante para evitar que se produzcan inconsistencias en los datos.

Consistencia

La coherencia garantiza que todas las actualizaciones de la base de datos sean coherentes, lo que significa que la base de datos debe permanecer en un estado válido, incluso si varias transacciones acceden a los datos al mismo tiempo.

Aislamiento

El aislamiento garantiza que las transacciones se ejecuten de forma independiente entre sí, lo que significa que la operación de una transacción no puede interferir con la operación de otra transacción. Esta característica es muy importante para evitar la corrupción de datos.

Durabilidad

La durabilidad garantiza que una vez enviada una transacción, sus efectos sean permanentes, lo que significa que los cambios realizados por la transacción en la base de datos no se perderán, incluso si hay un corte de energía u otra falla del sistema.

Base de datos relacional

Después de hablar sobre las características de ACID, volvamos a explicar la base de datos. La popularidad y el dominio de las bases de datos relacionales se deben a muchas razones, incluida la simplicidad, la solidez, la flexibilidad, el rendimiento, la escalabilidad y la relativa facilidad para administrar datos comunes.

Una base de datos relacional esencialmente proporciona las propiedades de atomicidad, consistencia, aislamiento y durabilidad (ACID), por lo que es esencialmente una buena propiedad de base de datos. todavía nos recuerdas Aplicación de la abstracción en el diseño de sistemas – Diseño de sistemas 02 Se menciona el concepto de abstracción, y ACID también es un concepto abstracto que simplifica la complejidad de las operaciones de interacción de datos. Por supuesto, las razones por las que las bases de datos relacionales se generalizarán también incluyen: simplicidad, estabilidad, flexibilidad, rendimiento, escalabilidad y compatibilidad.

Algunos DBMS populares son los siguientes:

MySQL, Base de datos Oracle, Microsoft SQL Server, IBM DB2, Postgres, SQLite.

Ejemplo de base de datos relacional

Primero, una base de datos relacional (RDB) construye información en tablas, columnas y columnas. RDB puede establecer asociaciones o relaciones entre información agregando tablas de datos, lo que facilita la comprensión de la relación entre puntos de datos y la obtención de análisis en profundidad.

Las bases de datos relacionadas, desarrolladas originalmente por EF Codd de IBM en la década de 1970, permiten relacionar cualquier tabla de datos con otras tablas de datos utilizando atributos comunes. Puede pensar en una base de datos relacionada como una colección de Excel que puede ayudar a las empresas a establecer asociaciones de datos. Al igual que Excel, cada hoja de cálculo es una tabla de datos que almacena información y está representada por columnas de datos (propiedades) y columnas de datos (registros).

Ejemplo de nube de Google

diseño-de-sistemas-Diseño de sistemas 08-Introducción a los fundamentos de bases de datos-introducción-a-fundamentos-de-bases de datos-hogantech-hoganblab-01

La tabla de datos "Cliente" contiene información relacionada con el cliente:

ID de cliente (clave principal), nombre del cliente, dirección de facturación, dirección de envío

En la tabla de datos "Cliente", el ID del cliente es un conjunto de claves primarias utilizadas específicamente para identificar a los clientes en la base de datos relacionada. El ID de cliente es diferente para todos los clientes.

La tabla de datos "Pedido" contiene información de la transacción relacionada con el pedido:

ID del pedido (clave principal), ID del cliente (clave principal), fecha del pedido, fecha de envío, estado del pedido

Supongamos que una pequeña empresa utiliza dos tablas de datos para procesar pedidos de productos. Los primeros datos representan la tabla de información del cliente, que registra el número de cliente, el nombre del cliente, la dirección, la dirección de envío, la dirección de facturación, el número de teléfono y otra información de contacto. La clave principal en este momento se puede configurar en el número de cliente, porque estos datos son únicos y no se repetirán.

La segunda tabla representa la tabla de datos del pedido del cliente, que registra la información del pedido del producto, que incluye: número de cliente, número de pedido, productos solicitados, cantidad, tamaño y color. La clave principal en este momento se puede configurar en el número de pedido y no se repetirá. Luego use el número de cliente, que es la clave de índice común, para asociar las dos tablas de datos. Finalmente, cuando la aplicación de procesamiento de pedidos de la empresa envía el pedido a la base de datos, la base de datos puede acceder a la tabla de pedidos del cliente, extraer la información correcta del pedido del producto y utilizar el número de cliente de la tabla para consultar la información de facturación y envío del cliente en el cliente. tabla de información.

¿Por qué elegir una base de datos relacional (SQL)?

Por lo general, si no se especifica el formato de la base de datos, utilizaremos de forma predeterminada una base de datos relacional durante el desarrollo. Entre sus ventajas se encuentra su abstracción de transacciones ACID y programación relacionada. Un concepto tan abstracto también hará que sea muy conveniente para los ingenieros de software utilizar la base de datos. ¡Hablemos de sus ventajas por separado!

Ventajas de las bases de datos relacionales

Flexibilidad: en el contexto de SQL, el nombre completo de Lenguaje de definición de datos (DDL) es (Lenguaje de definición de datos) nos brinda la flexibilidad de modificar la base de datos, incluidas tablas, columnas, cambiar el nombre de las tablas y otros cambios.

Reducir la redundancia: la redundancia de datos se refiere a que los mismos datos o información aparecen varias veces en la base de datos. En un sistema de archivos general, debido a que no hay conexión entre archivos, a veces aparecerá una información en varios archivos. Una de las mayores ventajas de las bases de datos relacionales es la reducción de la redundancia. El propósito de eliminar la redundancia de datos es evitar posibles problemas durante las actualizaciones para mantener la coherencia de los datos.

Concurrencia: la concurrencia es una característica muy importante en situaciones de alta concurrencia, muchos usuarios leerán y escribirán datos en la base de datos al mismo tiempo. Por lo tanto, debemos coordinar estas operaciones para evitar la inconsistencia de los datos. Por ejemplo, si varias personas reservan un boleto de avión al mismo tiempo, se debe evitar la escritura simultánea. La concurrencia en bases de datos relacionales se maneja mediante el acceso transaccional a los datos.

Copia de seguridad y recuperación: la base de datos relacional garantiza que el estado de los datos sea coherente en todo momento. La mayoría de las bases de datos relacionales basadas en la nube realizan una duplicación continua para evitar la pérdida de datos y hacer que el proceso de recuperación sea más fácil y rápido.

Desventajas de las bases de datos relacionales

Desajuste de impedancia

Aquí primero debemos explicar cuidadosamente qué es la discrepancia de impedancia. La falta de coincidencia de impedancia de la base de datos se refiere a un problema común en el desarrollo de software cuando hay una falta de coherencia entre las estructuras de datos y los modelos utilizados por diferentes componentes o sistemas de software.

En las bases de datos, la falta de coincidencia de impedancia se refiere a la diferencia entre el modelo de programación orientada a objetos (OOP) y el modelo relacional utilizado por los sistemas de gestión de bases de datos relacionales (DBMS).

También encontré una imagen aquí para explicar brevemente el significado de la llamada falta de coincidencia. La parte superior de la imagen es la estructura de datos de la memoria, que puede ser un árbol, una matriz, una lista vinculada, un hash, etc. La parte inferior derecha es la leyenda de la base de datos asociativa. Cuando los dos métodos de almacenamiento de datos son inconsistentes, ocurrirán problemas al operar la base de datos. La falta de coincidencia de impedancia (Impedance Mismatch) también es una deficiencia importante de las bases de datos asociativas.

diseño-de-sistemas-Diseño de sistemas 08-Introducción a los fundamentos de bases de datos-introducción-a-fundamentos-de-bases de datos-hogantech-hoganblab-02

Base de datos no relacional

¿Qué es NOSQL?

No SQL medio No sólo SQL, es una base de datos no relacional, lo que significa que no utiliza el modelo de base de datos relacional tradicional para almacenar datos. Las bases de datos NoSQL suelen utilizar modelos de datos más flexibles y extensibles, como pares clave-valor, archivos, gráficos o tablas amplias.

Tipos de bases de datos NoSQL

Base de datos de valores clave

Las bases de datos clave-valor utilizan métodos clave-valor, como tablas hash, para almacenar datos en forma de pares clave-valor. La clave actúa como clave principal y el valor puede ser cualquier cosa, desde un simple valor escalar hasta un objeto complejo. Las bases de datos de valores clave comunes incluyen: Amazon DynamoDB, Redis y Memcached DB.

Escenarios de uso:

  1. Almacenamiento en caché: las bases de datos de valores clave se utilizan a menudo como cachés para proporcionar acceso rápido a los datos utilizados con frecuencia. Por ejemplo, una aplicación web puede utilizar una base de datos de valores clave para almacenar en caché el contenido de la página.
  2. Datos de sesión: se puede utilizar una base de datos de valores clave para almacenar datos de sesión, como información de inicio de sesión del usuario y contenido del carrito de compras.
  3. Datos de configuración: las bases de datos de valores clave se pueden utilizar para almacenar datos de configuración, como la configuración de la aplicación y los parámetros del sistema.
  4. Contadores: las bases de datos de valores clave se pueden utilizar para almacenar contadores, como estadísticas de tráfico del sitio web.

Base de datos de documentos

Los documentos en XML, JSON, BSON y otros formatos son formas de almacenamiento en bases de datos de archivos. Estos archivos están compuestos de estructuras de datos especiales, que pueden incluir mapas y colecciones. Las bases de datos de archivos comunes incluyen: MongoDB y Firestore.

Escenarios de uso:

  1. Sistema de gestión de contenido (CMS): un CMS utiliza una base de datos de documentos para almacenar contenido como artículos, páginas y archivos multimedia.
  2. Sitios web de comercio electrónico: los sitios web de comercio electrónico utilizan bases de datos de archivos para almacenar información de productos, información de clientes e información de pedidos.
  3. Aplicaciones de redes sociales: las aplicaciones de redes sociales utilizan bases de datos de documentos para almacenar datos, publicaciones y comentarios de los usuarios.
  4. Registros de aplicaciones: los registros de aplicaciones utilizan una base de datos de archivos para almacenar datos de registro de aplicaciones.
  5. Dispositivos de Internet de las cosas (IoT): los dispositivos de Internet de las cosas (IoT) utilizan bases de datos de archivos para almacenar datos de sensores y el estado del dispositivo.

Base de datos de gráficos

Las bases de datos de gráficos utilizan gráficos para almacenar datos. Los gráficos se componen de nodos y bordes. Los nodos representan entidades y los bordes representan relaciones entre entidades. Las bases de datos de gráficos comunes incluyen: OrientDB e InfiniteGraph.

Escenarios de uso:

  1. Análisis de redes sociales: el análisis de redes sociales utiliza bibliotecas de gráficos para analizar las relaciones en las redes sociales, como aquellas entre amigos, familiares y colegas.
  2. Sistemas de recomendación: los sistemas de recomendación utilizan bases de datos gráficas para recomendar productos o servicios a los usuarios en función de sus intereses y relaciones con otros usuarios.
  3. Detección de fraude: la detección de fraude utiliza bases de datos gráficas para detectar comportamientos fraudulentos, como la identificación de transacciones asociadas con estafadores conocidos.
  4. Gráfico de conocimiento: el gráfico de conocimiento utiliza una base de datos de gráficos para almacenar y consultar conocimientos sobre el mundo real, como entidades, conceptos y las relaciones entre ellos.
  5. Gestión de la cadena de suministro: la gestión de la cadena de suministro utiliza bibliotecas de gráficos para gestionar las relaciones en una cadena de suministro, como aquellas entre proveedores, fabricantes y minoristas.

Base de datos en columnas

Base de datos en columnas Es una base de datos que almacena datos en columnas en lugar de filas. A diferencia de las bases de datos relacionales tradicionales, que almacenan datos en filas, las bases de datos en columnas pueden comprimir datos de manera efectiva porque pueden almacenar grandes cantidades de valores idénticos. Las bases de datos en columnas comunes incluyen: HBase, Hypertable y Amazon Redshift.

Escenarios de uso:

  1. Computación científica: La computación científica utiliza bases de datos en columnas para analizar datos científicos.
  2. Análisis financiero: el análisis financiero utiliza bases de datos en columnas para analizar datos financieros.
  3. Advertising Analytics: Advertising Analytics utiliza una base de datos en columnas para analizar el rendimiento de las campañas publicitarias.

Ventajas de la base de datos NoSQL

Diseño simple: a diferencia de las bases de datos relacionales, NoSQL no necesita lidiar con desajustes de impedancia, como almacenar todos los datos de los empleados en un solo archivo en lugar de varias tablas que requieren operaciones de unión. Esta estrategia hace que escribir menos código, depurar y mantener sea más simple y fácil.

Escalado horizontal: en primer lugar, se prefiere NoSQL debido a su capacidad para ejecutar bases de datos en clústeres grandes. Las bases de datos NoSQL normalmente distribuyen datos entre varios nodos y equilibran automáticamente los datos y las consultas entre los nodos.

Disponibilidad: para mejorar la disponibilidad de los datos, el reemplazo de nodos se puede realizar sin ningún tiempo de inactividad para la aplicación. La mayoría de las variantes de bases de datos no relacionales admiten la replicación de datos para garantizar una alta disponibilidad y recuperación ante desastres.

Bajo costo: La licencia de muchos RDBMS es muy costosa, mientras que muchas bases de datos NoSQL son de código abierto y están disponibles de forma gratuita. Del mismo modo, algunos RDBMS dependen de costosos sistemas de almacenamiento y hardware propietarios, mientras que las bases de datos NoSQL a menudo utilizan grupos de servidores básicos de bajo costo.

Desventajas de la base de datos NoSQL

Falta de estandarización: NoSQL no se adhiere a ningún estándar específico. Por ejemplo, es difícil convertir aplicaciones de un tipo de base de datos NoSQL a otro.

Consistencia: cuando falla una base de datos NoSQL, se deben considerar la coherencia y la disponibilidad, y las bases de datos no relacionales no tendrán una buena integridad de los datos y los datos no serán muy consistentes.

Complejidad:El modelo y la interfaz de las bases de datos NoSQL pueden ser más complejos que los de las bases de datos relacionales. Existen varios tipos de bases de datos no relacionales, pero las interfaces de las bases de datos relacionales no son muy diferentes.

¿Cómo elegir entre bases de datos relacionales y no relacionales?

Muchos factores influirán en la elección y la siguiente tabla compara las bases de datos relacionales y no relacionales:

base de datos relacionalbase de datos no relacional
Estructurado: los datos se almacenan en tablas, y cada tabla consta de filas y columnas. Las filas representan registros de datos y las columnas representan atributos de datos. Los datos deben ajustarse a un formato predefinido.Flexible: puede almacenar datos en varios formatos, incluidos JSON, BSON y gráficos. La estructura de datos puede ser estructurada, semiestructurada o no estructurada.
Adecuado para OLTP (procesamiento de transacciones en línea): bueno para manejar operaciones frecuentes de lectura y escritura, como pedidos, transacciones e inicios de sesión.Adecuado para OLAP (procesamiento analítico en línea): bueno para manejar consultas y análisis complejos, como tendencias de ventas, comportamiento del cliente y análisis de mercado.
Más difícil de escalar: a medida que aumenta el volumen de datos, el rendimiento puede degradarse. Es necesario agregar más servidores para manejar más datos.Fácil de escalar: se pueden procesar más datos agregando más nodos sin cuellos de botella en el rendimiento.
ACID garantiza: atomicidad, consistencia, aislamiento y durabilidad. Los datos siempre son consistentes, incluso cuando varios usuarios acceden a ellos simultáneamente.Es posible que no haya garantías ACID: los datos pueden ser inconsistentes en ciertas situaciones, como cuando los datos se replican entre múltiples nodos.
Los modelos e interfaces pueden ser más complejos: se requiere conocimiento de lenguajes de consulta como SQL.Los modelos y las interfaces son generalmente más simples: fáciles de usar y comprender.
Tecnología madura: existe desde hace décadas y cuenta con amplio soporte y herramientas.Tecnología más nueva: aún en desarrollo y es posible que carezca de herramientas y soporte maduros.

Artículos relacionados

Explicación del equilibrador de carga: diseño del sistema 07

¿Qué es DNS? Introducción al sistema de nombres de dominio – Diseño del sistema 06

Introducción al bloque de construcción de componentes de diseño de sistemas: diseño de sistemas 05

Cálculo del reverso del sobre: diseño del sistema 04

Características no funcionales del diseño de software – Diseño de sistemas 03

Aplicación de la abstracción en el diseño de sistemas – Diseño de sistemas 02

Introducción al diseño de sistemas modernos – Diseño de sistemas 01

Cita

¿Qué es una base de datos relacional?

Discrepancia de impedancia al mapear desde una base de datos relacional

es_ESEspañol