Base de datos

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

En informática, una base de datos es una colección organizada de datos almacenados y a los que se accede electrónicamente. Las bases de datos pequeñas se pueden almacenar en un sistema de archivos, mientras que las bases de datos grandes se alojan en clústeres de computadoras o almacenamiento en la nube. El diseño de las bases de datos abarca técnicas formales y consideraciones prácticas, incluido el modelado de datos, la representación y el almacenamiento de datos eficientes, los lenguajes de consulta, la seguridad y privacidad de los datos confidenciales y los problemas informáticos distribuidos, incluido el soporte del acceso simultáneo y la tolerancia a fallas.

Un sistema de gestión de base de datos (DBMS) es el software que interactúa con los usuarios finales, las aplicaciones y la propia base de datos para capturar y analizar los datos. El software DBMS también incluye las funciones básicas proporcionadas para administrar la base de datos. La suma total de la base de datos, el DBMS y las aplicaciones asociadas puede denominarse sistema de base de datos. A menudo, el término "base de datos" también se usa libremente para referirse a cualquiera de los DBMS, el sistema de base de datos o una aplicación asociada con la base de datos.

Los informáticos pueden clasificar los sistemas de gestión de bases de datos según los modelos de bases de datos que admiten. Las bases de datos relacionales se hicieron dominantes en la década de 1980. Estos modelan datos como filas y columnas en una serie de tablas, y la gran mayoría usa SQL para escribir y consultar datos. En la década de 2000, las bases de datos no relacionales se hicieron populares, denominadas colectivamente NoSQL porque utilizan diferentes lenguajes de consulta.

Terminología y resumen

Formalmente, una "base de datos" se refiere a un conjunto de datos relacionados y la forma en que está organizado. El acceso a estos datos generalmente lo brinda un "sistema de administración de bases de datos" (DBMS) que consiste en un conjunto integrado de software de computadora que permite a los usuarios interactuar con una o más bases de datos y brinda acceso a todos los datos contenidos en la base de datos (aunque las restricciones pueden existir que limiten el acceso a datos particulares). El DBMS proporciona varias funciones que permiten la entrada, el almacenamiento y la recuperación de grandes cantidades de información y proporciona formas de administrar cómo se organiza esa información.

Debido a la estrecha relación que existe entre ellos, el término "base de datos" suele utilizarse de forma casual para referirse tanto a una base de datos como al SGBD que se utiliza para manipularla.

Fuera del mundo de la tecnología de la información profesional, el término base de datos se usa a menudo para referirse a cualquier colección de datos relacionados (como una hoja de cálculo o un índice de tarjeta) ya que los requisitos de tamaño y uso generalmente requieren el uso de un sistema de administración de base de datos.

Los DBMS existentes brindan varias funciones que permiten la gestión de una base de datos y sus datos, que se pueden clasificar en cuatro grupos funcionales principales:

  • Definición de datos: creación, modificación y eliminación de definiciones que definen la organización de los datos.
  • Actualizar: inserción, modificación y eliminación de los datos reales.
  • Recuperación: proporcionar información en una forma directamente utilizable o para su posterior procesamiento por parte de otras aplicaciones. Los datos recuperados pueden estar disponibles en una forma básicamente igual a como están almacenados en la base de datos o en una nueva forma obtenida alterando o combinando datos existentes de la base de datos.
  • Administración: registrar y monitorear usuarios, hacer cumplir la seguridad de los datos, monitorear el rendimiento, mantener la integridad de los datos, manejar el control de concurrencia y recuperar información que ha sido dañada por algún evento, como una falla inesperada del sistema.

Tanto una base de datos como su DBMS se ajustan a los principios de un modelo de base de datos particular. "Sistema de base de datos" se refiere colectivamente al modelo de base de datos, el sistema de gestión de base de datos y la base de datos.

Físicamente, los servidores de bases de datos son computadoras dedicadas que contienen las bases de datos reales y ejecutan solo el DBMS y el software relacionado. Los servidores de bases de datos suelen ser equipos multiprocesador, con memoria generosa y matrices de discos RAID que se utilizan para un almacenamiento estable. Los aceleradores de bases de datos de hardware, conectados a uno o más servidores a través de un canal de alta velocidad, también se utilizan en entornos de procesamiento de transacciones de gran volumen. Los DBMS se encuentran en el corazón de la mayoría de las aplicaciones de bases de datos. Los DBMS se pueden construir en torno a un kernel multitarea personalizado con soporte de red incorporado, pero los DBMS modernos normalmente se basan en un sistema operativo estándar para proporcionar estas funciones.

Dado que los DBMS comprenden un mercado importante, los proveedores de computadoras y almacenamiento a menudo tienen en cuenta los requisitos de DBMS en sus propios planes de desarrollo.

Las bases de datos y los DBMS se pueden categorizar de acuerdo con los modelos de base de datos que admiten (como relacional o XML), los tipos de computadora en los que se ejecutan (desde un clúster de servidor hasta un teléfono móvil), el lenguaje de consulta (s) utilizados para acceder a la base de datos (como SQL o XQuery) y su ingeniería interna, lo que afecta el rendimiento, la escalabilidad, la resiliencia y la seguridad.

Historia

Los tamaños, las capacidades y el rendimiento de las bases de datos y sus respectivos DBMS han crecido en órdenes de magnitud. Estos aumentos de rendimiento fueron posibles gracias al progreso tecnológico en las áreas de procesadores, memoria informática, almacenamiento informático y redes informáticas. El concepto de una base de datos fue posible gracias a la aparición de medios de almacenamiento de acceso directo, como los discos magnéticos, que estuvieron ampliamente disponibles a mediados de la década de 1960; los sistemas anteriores se basaban en el almacenamiento secuencial de datos en cinta magnética. El desarrollo posterior de la tecnología de bases de datos se puede dividir en tres eras según el modelo o la estructura de datos: de navegación, SQL/relacional y posrelacional.

Los dos primeros modelos principales de datos de navegación fueron el modelo jerárquico y el modelo CODASYL (modelo de red). Estos se caracterizaron por el uso de punteros (a menudo direcciones de disco físico) para seguir las relaciones de un registro a otro.

El modelo relacional, propuesto por primera vez en 1970 por Edgar F. Codd, se apartó de esta tradición al insistir en que las aplicaciones deberían buscar datos por contenido, en lugar de seguir enlaces. El modelo relacional emplea conjuntos de tablas estilo libro mayor, cada una utilizada para un tipo diferente de entidad. Solo a mediados de la década de 1980, el hardware informático se volvió lo suficientemente poderoso como para permitir el amplio despliegue de sistemas relacionales (DBMS más aplicaciones). Sin embargo, a principios de la década de 1990, los sistemas relacionales dominaban en todas las aplicaciones de procesamiento de datos a gran escala y, a partir de 2018, siguen siendo dominantes: IBM Db2, Oracle, MySQL y Microsoft SQL Server son los DBMS más buscados. El lenguaje de base de datos dominante, SQL estandarizado para el modelo relacional, ha influido en los lenguajes de base de datos para otros modelos de datos.

Las bases de datos de objetos se desarrollaron en la década de 1980 para superar el inconveniente del desajuste de la impedancia objeto-relacional, lo que llevó a la acuñación del término "post-relacional" y también al desarrollo de bases de datos híbridas objeto-relacionales.

La próxima generación de bases de datos posrelacionales a fines de la década de 2000 se conoció como bases de datos NoSQL, e introdujo almacenes rápidos de clave-valor y bases de datos orientadas a documentos. Una "próxima generación" competidora conocida como bases de datos NewSQL intentó nuevas implementaciones que conservaban el modelo relacional/SQL mientras buscaba igualar el alto rendimiento de NoSQL en comparación con los DBMS relacionales disponibles comercialmente.

1960, DBMS de navegación

La introducción de la base de datos de términos coincidió con la disponibilidad de almacenamiento de acceso directo (discos y tambores) desde mediados de la década de 1960 en adelante. El término representaba un contraste con los sistemas basados ​​en cinta del pasado, que permitía el uso interactivo compartido en lugar del procesamiento por lotes diario. El Oxford English Dictionary cita un informe de 1962 de System Development Corporation of California como el primero en utilizar el término "base de datos" en un sentido técnico específico.

A medida que las computadoras aumentaron en velocidad y capacidad, surgieron varios sistemas de bases de datos de propósito general; a mediados de la década de 1960, varios de estos sistemas habían entrado en uso comercial. El interés en un estándar comenzó a crecer y Charles Bachman, autor de uno de esos productos, Integrated Data Store (IDS), fundó el Grupo de trabajo de base de datos dentro de CODASYL, el grupo responsable de la creación y estandarización de COBOL. En 1971, el Grupo de trabajo de bases de datos entregó su estándar, que generalmente se conoció como el enfoque CODASYL, y pronto ingresaron al mercado una serie de productos comerciales basados ​​en este enfoque.

El enfoque CODASYL ofreció a las aplicaciones la capacidad de navegar por un conjunto de datos vinculados que se formó en una gran red. Las aplicaciones pueden encontrar registros mediante uno de estos tres métodos:

  1. Uso de una clave principal (conocida como clave CALC, normalmente implementada mediante hashing)
  2. Relaciones de navegación (llamadas conjuntos) de un registro a otro
  3. Escaneo de todos los registros en orden secuencial

Los sistemas posteriores agregaron árboles B para proporcionar rutas de acceso alternativas. Muchas bases de datos CODASYL también agregaron un lenguaje de consulta declarativo para usuarios finales (a diferencia de la API de navegación). Sin embargo, las bases de datos CODASYL eran complejas y requerían una capacitación y un esfuerzo significativos para producir aplicaciones útiles.

IBM también tuvo su propio DBMS en 1966, conocido como Sistema de Gestión de la Información (IMS). IMS fue un desarrollo de software escrito para el programa Apollo en System/360. IMS era generalmente similar en concepto a CODASYL, pero usaba una jerarquía estricta para su modelo de navegación de datos en lugar del modelo de red de CODASYL. Posteriormente, ambos conceptos se conocieron como bases de datos de navegación debido a la forma en que se accedía a los datos: el término se popularizó con la presentación del Premio Turing de Bachman en 1973, El programador como navegador. IBM clasifica IMS como una base de datos jerárquica. Las bases de datos TOTAL de IDMS y Cincom Systems se clasifican como bases de datos de red. IMS permanece en uso a partir de 2014.

Década de 1970, DBMS relacional

Edgar F. Codd trabajaba en IBM en San José, California, en una de sus oficinas secundarias que se dedicaba principalmente al desarrollo de sistemas de disco duro. No estaba contento con el modelo de navegación del enfoque CODASYL, en particular la falta de una función de "búsqueda". En 1970, escribió una serie de artículos que describían un nuevo enfoque para la construcción de bases de datos que finalmente culminó en el innovador Modelo relacional de datos para grandes bancos de datos compartidos.

En este documento, describió un nuevo sistema para almacenar y trabajar con grandes bases de datos. En lugar de que los registros se almacenen en algún tipo de lista enlazada de registros de forma libre como en CODASYL, la idea de Codd era organizar los datos como una serie de "tablas", cada tabla se usaba para un tipo diferente de entidad. Cada tabla contendría un número fijo de columnas que contienen los atributos de la entidad. Una o más columnas de cada tabla se designaron como una clave principal mediante la cual las filas de la tabla podían identificarse de manera única; las referencias cruzadas entre tablas siempre usaban estas claves primarias, en lugar de direcciones de disco, y las consultas unirían tablas basadas en estas relaciones clave, usando un conjunto de operaciones basadas en el sistema matemático de cálculo relacional (del cual el modelo toma su nombre).relaciones) tenía como objetivo garantizar que cada "hecho" solo se almacenara una vez, simplificando así las operaciones de actualización. Las tablas virtuales llamadas vistas podrían presentar los datos de diferentes maneras para diferentes usuarios, pero las vistas no se podrían actualizar directamente.

Codd usó términos matemáticos para definir el modelo: relaciones, tuplas y dominios en lugar de tablas, filas y columnas. La terminología que ahora es familiar proviene de las primeras implementaciones. Codd criticaría más tarde la tendencia de las implementaciones prácticas a apartarse de los fundamentos matemáticos en los que se basaba el modelo.

El uso de claves primarias (identificadores orientados al usuario) para representar relaciones entre tablas, en lugar de direcciones de disco, tenía dos motivaciones principales. Desde una perspectiva de ingeniería, permitió reubicar y cambiar el tamaño de las tablas sin una costosa reorganización de la base de datos. Pero Codd estaba más interesado en la diferencia en la semántica: el uso de identificadores explícitos facilitó la definición de operaciones de actualización con definiciones matemáticas limpias, y también permitió definir operaciones de consulta en términos de la disciplina establecida de cálculo de predicados de primer orden; Debido a que estas operaciones tienen propiedades matemáticas claras, es posible reescribir las consultas de manera demostrablemente correcta, lo cual es la base de la optimización de consultas. No hay pérdida de expresividad en comparación con los modelos jerárquicos o de red,

En los modelos jerárquicos y de red, se permitía que los registros tuvieran una estructura interna compleja. Por ejemplo, el historial de salarios de un empleado puede representarse como un "grupo repetitivo" dentro del registro de empleados. En el modelo relacional, el proceso de normalización condujo a que tales estructuras internas fueran reemplazadas por datos contenidos en múltiples tablas, conectadas solo por claves lógicas.

Por ejemplo, un uso común de un sistema de base de datos es rastrear información sobre usuarios, su nombre, información de inicio de sesión, varias direcciones y números de teléfono. En el enfoque de navegación, todos estos datos se colocarían en un solo registro de longitud variable. En el enfoque relacional, los datos se normalizarían en una tabla de usuarios, una tabla de direcciones y una tabla de números de teléfono (por ejemplo). Los registros se crearían en estas tablas opcionales solo si realmente se proporcionaron la dirección o los números de teléfono.

Además de identificar filas/registros mediante identificadores lógicos en lugar de direcciones de disco, Codd cambió la forma en que las aplicaciones recopilaban datos de múltiples registros. En lugar de requerir que las aplicaciones recopilen datos un registro a la vez navegando por los enlaces, usarían un lenguaje de consulta declarativo que expresaría qué datos se requerían, en lugar de la ruta de acceso por la cual se deben encontrar. Encontrar una ruta de acceso eficiente a los datos pasó a ser responsabilidad del sistema de gestión de la base de datos, en lugar del programador de la aplicación. Este proceso, llamado optimización de consultas, dependía del hecho de que las consultas se expresaran en términos de lógica matemática.

El artículo de Codd fue recogido por dos personas en Berkeley, Eugene Wong y Michael Stonebraker. Comenzaron un proyecto conocido como INGRES utilizando fondos que ya se habían asignado para un proyecto de base de datos geográfica y estudiantes programadores para producir código. A partir de 1973, INGRES entregó sus primeros productos de prueba que, en general, estaban listos para su uso generalizado en 1979. INGRES era similar al Sistema R en varias formas, incluido el uso de un "lenguaje" para el acceso a datos, conocido como QUEL. Con el tiempo, INGRES pasó al estándar SQL emergente.

La propia IBM hizo una implementación de prueba del modelo relacional, PRTV, y una de producción, Business System 12, ambos ahora descontinuados. Honeywell escribió MRDS para Multics y ahora hay dos nuevas implementaciones: Alphora Dataphor y Rel. La mayoría de las otras implementaciones de DBMS generalmente llamadas relacionales son en realidad SQL DBMS.

En 1970, la Universidad de Michigan comenzó a desarrollar el Sistema de gestión de información MICRO basado en el modelo de datos teóricos de conjuntos de DL Childs. El Departamento de Trabajo de EE. UU., la Agencia de Protección Ambiental de EE. UU. e investigadores de la Universidad de Alberta, la Universidad de Michigan y la Universidad Estatal de Wayne utilizaron MICRO para administrar conjuntos de datos muy grandes. Se ejecutó en computadoras centrales de IBM utilizando el Michigan Terminal System. El sistema permaneció en producción hasta 1998.

Enfoque integrado

En las décadas de 1970 y 1980, se hicieron intentos para construir sistemas de bases de datos con hardware y software integrados. La filosofía subyacente era que dicha integración proporcionaría un mayor rendimiento a un menor costo. Los ejemplos fueron IBM System/38, la primera oferta de Teradata y la máquina de base de datos de Britton Lee, Inc.

Otro enfoque del soporte de hardware para la gestión de bases de datos fue el acelerador CAFS de ICL, un controlador de disco de hardware con capacidades de búsqueda programables. A largo plazo, estos esfuerzos generalmente no tuvieron éxito porque las máquinas de bases de datos especializadas no pudieron seguir el ritmo del rápido desarrollo y progreso de las computadoras de propósito general. Por lo tanto, la mayoría de los sistemas de bases de datos en la actualidad son sistemas de software que se ejecutan en hardware de propósito general, que utilizan almacenamiento de datos informáticos de propósito general. Sin embargo, esta idea todavía se persigue en ciertas aplicaciones por parte de algunas empresas como Netezza y Oracle (Exadata).

Finales de la década de 1970, SQL DBMS

IBM comenzó a trabajar en un sistema prototipo basado libremente en los conceptos de Codd como System R a principios de la década de 1970. La primera versión estuvo lista en 1974/5, y luego se comenzó a trabajar en sistemas de tablas múltiples en los que los datos se podían dividir para que todos los datos de un registro (algunos de los cuales son opcionales) no tuvieran que almacenarse en un único "trozo" grande. Las versiones multiusuario posteriores fueron probadas por los clientes en 1978 y 1979, momento en el que se había agregado un lenguaje de consulta estandarizado, SQL. Las ideas de Codd se estaban estableciendo como viables y superiores a CODASYL, lo que impulsó a IBM a desarrollar una verdadera versión de producción de System R, conocida como SQL/DS y, más tarde, Database 2 (IBM Db2).

La base de datos Oracle de Larry Ellison (o más simplemente, Oracle) comenzó a partir de una cadena diferente, basada en los documentos de IBM sobre el Sistema R. Aunque las implementaciones de Oracle V1 se completaron en 1978, no fue hasta la versión 2 de Oracle cuando Ellison venció a IBM en el mercado en 1979..

Stonebraker pasó a aplicar las lecciones de INGRES para desarrollar una nueva base de datos, Postgres, que ahora se conoce como PostgreSQL. PostgreSQL se usa a menudo para aplicaciones globales de misión crítica (los registros de nombres de dominio.org y.info lo usan como su principal almacén de datos, al igual que muchas grandes empresas e instituciones financieras).

En Suecia, también se leyó el artículo de Codd y Mimer SQL se desarrolló a mediados de la década de 1970 en la Universidad de Uppsala. En 1984, este proyecto se consolidó en una empresa independiente.

Otro modelo de datos, el modelo entidad-relación, surgió en 1976 y ganó popularidad para el diseño de bases de datos ya que enfatizaba una descripción más familiar que el modelo relacional anterior. Posteriormente, los constructos de entidad-relación se adaptaron como un constructo de modelado de datos para el modelo relacional, y la diferencia entre los dos se volvió irrelevante.

1980, en el escritorio

La década de 1980 marcó el comienzo de la era de la informática de escritorio. Las nuevas computadoras empoderaron a sus usuarios con hojas de cálculo como Lotus 1-2-3 y software de base de datos como dBASE. El producto dBASE era liviano y fácil de entender para cualquier usuario de computadora. C. Wayne Ratliff, el creador de dBASE, declaró: "dBASE era diferente de programas como BASIC, C, FORTRAN y COBOL en que ya se había hecho mucho del trabajo sucio. La manipulación de datos la realiza dBASE en lugar de el usuario, para que el usuario pueda concentrarse en lo que está haciendo, en lugar de tener que meterse con los detalles sucios de abrir, leer y cerrar archivos y administrar la asignación de espacio". dBASE fue uno de los títulos de software más vendidos en la década de 1980 y principios de la de 1990.

1990, orientado a objetos

La década de 1990, junto con un aumento en la programación orientada a objetos, vio un crecimiento en la forma en que se manejaban los datos en varias bases de datos. Los programadores y diseñadores comenzaron a tratar los datos de sus bases de datos como objetos. Es decir, si los datos de una persona estaban en una base de datos, los atributos de esa persona, como su dirección, número de teléfono y edad, ahora se consideraban pertenecientes a esa persona en lugar de ser datos extraños. Esto permite que las relaciones entre datos se relacionen con objetos y sus atributos y no con campos individuales.El término "desajuste de impedancia relacional de objeto" describió el inconveniente de traducir entre objetos programados y tablas de bases de datos. Las bases de datos de objetos y las bases de datos relacionales de objetos intentan resolver este problema proporcionando un lenguaje orientado a objetos (a veces como extensiones de SQL) que los programadores pueden usar como alternativa al SQL puramente relacional. En el lado de la programación, las bibliotecas conocidas como asignaciones relacionales de objetos (ORM) intentan resolver el mismo problema.

Años 2000, NoSQL y NewSQL

Las bases de datos XML son un tipo de base de datos estructurada orientada a documentos que permite realizar consultas basadas en atributos de documentos XML. Las bases de datos XML se utilizan principalmente en aplicaciones donde los datos se ven convenientemente como una colección de documentos, con una estructura que puede variar de muy flexible a muy rígida: los ejemplos incluyen artículos científicos, patentes, declaraciones de impuestos y registros de personal.

Las bases de datos NoSQL suelen ser muy rápidas, no requieren esquemas de tablas fijos, evitan las operaciones de unión mediante el almacenamiento de datos no normalizados y están diseñadas para escalar horizontalmente.

En los últimos años, ha habido una fuerte demanda de bases de datos distribuidas masivamente con alta tolerancia a la partición, pero según el teorema CAP, es imposible que un sistema distribuido proporcione simultáneamente garantías de consistencia, disponibilidad y tolerancia a la partición. Un sistema distribuido puede satisfacer dos de estas garantías al mismo tiempo, pero no las tres. Por ese motivo, muchas bases de datos NoSQL utilizan lo que se denomina coherencia final para proporcionar garantías de disponibilidad y tolerancia de partición con un nivel reducido de coherencia de datos.

NewSQL es una clase de bases de datos relacionales modernas que tiene como objetivo proporcionar el mismo rendimiento escalable de los sistemas NoSQL para cargas de trabajo de procesamiento de transacciones en línea (lectura-escritura) sin dejar de usar SQL y mantener las garantías ACID de un sistema de base de datos tradicional.

Casos de uso

Las bases de datos se utilizan para respaldar las operaciones internas de las organizaciones y para respaldar las interacciones en línea con clientes y proveedores (consulte Software empresarial).

Las bases de datos se utilizan para almacenar información administrativa y datos más especializados, como datos de ingeniería o modelos económicos. Los ejemplos incluyen sistemas de biblioteca computarizados, sistemas de reserva de vuelos, sistemas de inventario de piezas computarizados y muchos sistemas de administración de contenido que almacenan sitios web como colecciones de páginas web en una base de datos.

Clasificación

Una forma de clasificar las bases de datos involucra el tipo de sus contenidos, por ejemplo: objetos bibliográficos, de texto-documento, estadísticos o multimedia. Otra forma es por su área de aplicación, por ejemplo: contabilidad, composiciones musicales, cine, banca, manufactura o seguros. Una tercera forma es por algún aspecto técnico, como la estructura de la base de datos o el tipo de interfaz. Esta sección enumera algunos de los adjetivos utilizados para caracterizar diferentes tipos de bases de datos.

  • Una base de datos en memoria es una base de datos que reside principalmente en la memoria principal, pero normalmente está respaldada por un almacenamiento de datos de computadora no volátil. Las bases de datos de la memoria principal son más rápidas que las bases de datos del disco y, por lo tanto, a menudo se utilizan cuando el tiempo de respuesta es crítico, como en los equipos de redes de telecomunicaciones.
  • Una base de datos activa incluye una arquitectura impulsada por eventos que puede responder a condiciones tanto dentro como fuera de la base de datos. Los posibles usos incluyen monitoreo de seguridad, alertas, recopilación de estadísticas y autorización. Muchas bases de datos proporcionan funciones de bases de datos activas en forma de disparadores de bases de datos.
  • Una base de datos en la nube se basa en la tecnología de la nube. Tanto la base de datos como la mayor parte de su DBMS residen de forma remota, "en la nube", mientras que sus aplicaciones son desarrolladas por programadores y luego mantenidas y utilizadas por los usuarios finales a través de un navegador web y API abiertas.
  • Los almacenes de datos archivan datos de bases de datos operativas y, a menudo, de fuentes externas, como empresas de investigación de mercado. El almacén se convierte en la fuente central de datos para uso de los gerentes y otros usuarios finales que pueden no tener acceso a los datos operativos. Por ejemplo, los datos de ventas pueden agregarse a totales semanales y convertirse de códigos de productos internos para usar UPC para que puedan compararse con los datos de ACNielsen. Algunos componentes básicos y esenciales del almacenamiento de datos incluyen la extracción, el análisis y la extracción de datos, la transformación, la carga y la gestión de datos para que estén disponibles para su uso posterior.
  • Una base de datos deductiva combina la programación lógica con una base de datos relacional.
  • Una base de datos distribuida es aquella en la que tanto los datos como el DBMS abarcan varias computadoras.
  • Una base de datos orientada a documentos está diseñada para almacenar, recuperar y administrar información orientada a documentos o semiestructurada. Las bases de datos orientadas a documentos son una de las principales categorías de bases de datos NoSQL.
  • Un sistema de base de datos incorporado es un DBMS que está estrechamente integrado con un software de aplicación que requiere acceso a los datos almacenados de tal manera que el DBMS está oculto para los usuarios finales de la aplicación y requiere poco o ningún mantenimiento continuo.
  • Las bases de datos de usuarios finales consisten en datos desarrollados por usuarios finales individuales. Ejemplos de estos son colecciones de documentos, hojas de cálculo, presentaciones, multimedia y otros archivos. Existen varios productos para admitir dichas bases de datos. Algunos de ellos son mucho más simples que los DBMS completos, con una funcionalidad DBMS más elemental.
  • Un sistema de base de datos federado comprende varias bases de datos distintas, cada una con su propio DBMS. Es manejada como una única base de datos por un sistema de gestión de base de datos federado (FDBMS), que integra de forma transparente múltiples DBMS autónomos, posiblemente de diferentes tipos (en cuyo caso también sería un sistema de base de datos heterogéneo), y les proporciona una visión conceptual integrada..
  • A veces, el término base de datos múltiple se usa como sinónimo de base de datos federada, aunque puede referirse a un grupo de bases de datos menos integrado (p. ej., sin un FDBMS y un esquema integrado administrado) que cooperan en una sola aplicación. En este caso, normalmente se utiliza middleware para la distribución, que normalmente incluye un protocolo de compromiso atómico (ACP), por ejemplo, el protocolo de compromiso de dos fases, para permitir transacciones distribuidas (globales) entre las bases de datos participantes.
  • Una base de datos de gráficos es un tipo de base de datos NoSQL que utiliza estructuras de gráficos con nodos, bordes y propiedades para representar y almacenar información. Las bases de datos de gráficos generales que pueden almacenar cualquier gráfico son distintas de las bases de datos de gráficos especializadas, como triplestores y bases de datos de red.
  • Un DBMS de matriz es un tipo de DBMS NoSQL que permite el modelado, el almacenamiento y la recuperación de matrices multidimensionales (generalmente grandes), como imágenes satelitales y resultados de simulación climática.
  • En una base de datos de hipertexto o hipermedios, cualquier palabra o fragmento de texto que represente un objeto, por ejemplo, otro fragmento de texto, un artículo, una imagen o una película, puede tener un hipervínculo a ese objeto. Las bases de datos de hipertexto son particularmente útiles para organizar grandes cantidades de información dispar. Por ejemplo, son útiles para organizar enciclopedias en línea, donde los usuarios pueden moverse cómodamente por el texto. La World Wide Web es, por lo tanto, una gran base de datos de hipertexto distribuida.
  • Una base de conocimientos (abreviada KB, kb o Δ) es un tipo especial de base de datos para la gestión del conocimiento, que proporciona los medios para la recopilación, organización y recuperación informatizadas del conocimiento. También una colección de datos que representan problemas con sus soluciones y experiencias relacionadas.
  • Una base de datos móvil puede llevarse o sincronizarse desde un dispositivo informático móvil.
  • Las bases de datos operativas almacenan datos detallados sobre las operaciones de una organización. Por lo general, procesan volúmenes relativamente altos de actualizaciones mediante transacciones. Los ejemplos incluyen bases de datos de clientes que registran información de contacto, crédito y demográfica sobre los clientes de una empresa, bases de datos de personal que contienen información como salarios, beneficios, datos de habilidades sobre empleados, sistemas de planificación de recursos empresariales que registran detalles sobre componentes de productos, inventario de piezas y datos financieros. bases de datos que realizan un seguimiento del dinero, la contabilidad y las transacciones financieras de la organización.
  • Una base de datos paralela busca mejorar el rendimiento mediante la paralelización de tareas como la carga de datos, la creación de índices y la evaluación de consultas.

Las principales arquitecturas DBMS paralelas que son inducidas por la arquitectura de hardware subyacente son:

  • Arquitectura de memoria compartida, donde múltiples procesadores comparten el espacio de memoria principal, así como otro almacenamiento de datos.
  • Arquitectura de disco compartido, donde cada unidad de procesamiento (típicamente compuesta por múltiples procesadores) tiene su propia memoria principal, pero todas las unidades comparten el otro almacenamiento.
  • Arquitectura de nada compartido, donde cada unidad de procesamiento tiene su propia memoria principal y otro almacenamiento.
  • Las bases de datos probabilísticas emplean lógica difusa para sacar inferencias de datos imprecisos.
  • Las bases de datos en tiempo real procesan las transacciones lo suficientemente rápido como para que el resultado regrese y se actúe de inmediato.
  • Una base de datos espacial puede almacenar los datos con características multidimensionales. Las consultas sobre dichos datos incluyen consultas basadas en la ubicación, como "¿Dónde está el hotel más cercano en mi área?".
  • Una base de datos temporal tiene aspectos de tiempo incorporados, por ejemplo, un modelo de datos temporales y una versión temporal de SQL. Más específicamente, los aspectos temporales suelen incluir el tiempo de validez y el tiempo de transacción.
  • Una base de datos orientada a la terminología se basa en una base de datos orientada a objetos, a menudo personalizada para un campo específico.
  • Una base de datos no estructurada tiene como finalidad almacenar de forma manejable y protegida diversos objetos que no encajan de manera natural y conveniente en las bases de datos comunes. Puede incluir mensajes de correo electrónico, documentos, diarios, objetos multimedia, etc. El nombre puede inducir a error, ya que algunos objetos pueden estar muy estructurados. Sin embargo, toda la colección de objetos posibles no encaja en un marco estructurado predefinido. La mayoría de los DBMS establecidos ahora admiten datos no estructurados de varias maneras, y están surgiendo nuevos DBMS dedicados.

Sistema de administración de base de datos

Connolly y Begg definen el sistema de gestión de bases de datos (DBMS) como un "sistema de software que permite a los usuarios definir, crear, mantener y controlar el acceso a la base de datos". Los ejemplos de DBMS incluyen MySQL, PostgreSQL, Microsoft SQL Server, Oracle Database y Microsoft Access.

El acrónimo DBMS a veces se amplía para indicar el modelo de base de datos subyacente, con RDBMS para el modelo relacional, OODBMS para el objeto (orientado) y ORDBMS para el modelo objeto-relacional. Otras extensiones pueden indicar algunas otras características, como DDBMS para sistemas de administración de bases de datos distribuidas.

La funcionalidad proporcionada por un DBMS puede variar enormemente. La funcionalidad principal es el almacenamiento, recuperación y actualización de datos. Codd propuso las siguientes funciones y servicios que debe proporcionar un DBMS de propósito general completo:

  • Almacenamiento, recuperación y actualización de datos.
  • Catálogo accesible para el usuario o diccionario de datos que describe los metadatos
  • Soporte para transacciones y concurrencia
  • Facilidades para recuperar la base de datos en caso de que se dañe
  • Soporte para autorización de acceso y actualización de datos
  • Acceda al soporte desde ubicaciones remotas
  • Hacer cumplir restricciones para garantizar que los datos en la base de datos cumplan con ciertas reglas

En general, también se espera que el DBMS proporcione un conjunto de utilidades para los fines que sean necesarios para administrar la base de datos de manera efectiva, incluidas las utilidades de importación, exportación, supervisión, desfragmentación y análisis. La parte central del DBMS que interactúa entre la base de datos y la interfaz de la aplicación a veces se denomina motor de la base de datos.

A menudo, los DBMS tendrán parámetros de configuración que se pueden ajustar estática y dinámicamente, por ejemplo, la cantidad máxima de memoria principal en un servidor que puede usar la base de datos. La tendencia es minimizar la cantidad de configuración manual y, para casos como las bases de datos integradas, la necesidad de apuntar a la administración cero es primordial.

Los DBMS de grandes empresas han tendido a aumentar en tamaño y funcionalidad y pueden haber implicado miles de años humanos de esfuerzo de desarrollo a lo largo de su vida útil.

Los primeros DBMS multiusuario generalmente solo permitían que la aplicación residiera en la misma computadora con acceso a través de terminales o software de emulación de terminal. La arquitectura cliente-servidor fue un desarrollo en el que la aplicación residía en el escritorio de un cliente y la base de datos en un servidor, lo que permitía distribuir el procesamiento. Esto evolucionó hacia una arquitectura de varios niveles que incorpora servidores de aplicaciones y servidores web con la interfaz de usuario final a través de un navegador web con la base de datos conectada directamente al nivel adyacente.

Un DBMS de propósito general proporcionará interfaces de programación de aplicaciones públicas (API) y, opcionalmente, un procesador para lenguajes de base de datos como SQL para permitir que las aplicaciones se escriban para interactuar con la base de datos. Un DBMS de propósito especial puede usar una API privada y personalizarse específicamente y vincularse a una sola aplicación. Por ejemplo, un sistema de correo electrónico realiza muchas de las funciones de un DBMS de propósito general, como la inserción de mensajes, la eliminación de mensajes, el manejo de archivos adjuntos, la búsqueda en listas de bloqueo, la asociación de mensajes a una dirección de correo electrónico, etc. Sin embargo, estas funciones están limitadas a lo que se requiere para manejar. Email.

Solicitud

La interacción externa con la base de datos se realizará a través de un programa de aplicación que interactúa con el DBMS. Esto puede variar desde una herramienta de base de datos que permite a los usuarios ejecutar consultas SQL de forma textual o gráfica, hasta un sitio web que utiliza una base de datos para almacenar y buscar información.

Interfaz del programa de aplicación

Un programador codificará las interacciones con la base de datos (a veces denominada fuente de datos) a través de una interfaz de programa de aplicación (API) o mediante un lenguaje de base de datos. La API o el idioma particular elegido deberá ser compatible con DBMS, posiblemente indirectamente a través de un preprocesador o una API puente. Algunas API pretenden ser independientes de la base de datos, siendo ODBC un ejemplo comúnmente conocido. Otras API comunes incluyen JDBC y ADO.NET.

Idiomas de la base de datos

Los lenguajes de base de datos son lenguajes de propósito especial, que permiten una o más de las siguientes tareas, a veces distinguidas como sublenguajes:

  • Lenguaje de control de datos (DCL): controla el acceso a los datos;
  • Lenguaje de definición de datos (DDL): define los tipos de datos, como la creación, modificación o eliminación de tablas y las relaciones entre ellos;
  • Lenguaje de manipulación de datos (DML): realiza tareas como insertar, actualizar o eliminar ocurrencias de datos;
  • Lenguaje de consulta de datos (DQL): permite buscar información y calcular información derivada.

Los lenguajes de base de datos son específicos para un modelo de datos en particular. Los ejemplos notables incluyen:

  • SQL combina las funciones de definición de datos, manipulación de datos y consulta en un solo idioma. Fue uno de los primeros lenguajes comerciales para el modelo relacional, aunque se aparta en algunos aspectos del modelo relacional descrito por Codd (por ejemplo, se pueden ordenar las filas y columnas de una tabla). SQL se convirtió en un estándar del Instituto Nacional Estadounidense de Estándares (ANSI) en 1986 y de la Organización Internacional para la Estandarización (ISO) en 1987. Desde entonces, los estándares se han mejorado regularmente y cuentan con el respaldo (con diversos grados de conformidad) de todos los estándares comerciales principales. DBMS relacionales.
  • OQL es un estándar de lenguaje de modelo de objetos (del Grupo de gestión de datos de objetos). Ha influido en el diseño de algunos de los lenguajes de consulta más nuevos, como JDOQL y EJB QL.
  • XQuery es un lenguaje de consulta XML estándar implementado por sistemas de base de datos XML como MarkLogic y eXist, por bases de datos relacionales con capacidad XML como Oracle y Db2, y también por procesadores XML en memoria como Saxon.
  • SQL/XML combina XQuery con SQL.

Un lenguaje de base de datos también puede incorporar características como:

  • Configuración específica de DBMS y gestión del motor de almacenamiento
  • Cálculos para modificar los resultados de las consultas, como contar, sumar, promediar, clasificar, agrupar y hacer referencias cruzadas
  • Cumplimiento de restricciones (por ejemplo, en una base de datos automotriz, solo se permite un tipo de motor por automóvil)
  • Versión de la interfaz de programación de aplicaciones del lenguaje de consulta, para comodidad del programador

Almacenamiento

El almacenamiento de la base de datos es el contenedor de la materialización física de una base de datos. Comprende el nivel interno (físico) en la arquitectura de la base de datos. También contiene toda la información necesaria (p. ej., metadatos, "datos sobre los datos" y estructuras de datos internas) para reconstruir el nivel conceptual y el nivel externo a partir del nivel interno cuando sea necesario. Las bases de datos como objetos digitales contienen tres capas de información que deben almacenarse: los datos, la estructura y la semántica. Se necesita un almacenamiento adecuado de las tres capas para la preservación futura y la longevidad de la base de datos.Poner los datos en un almacenamiento permanente es generalmente responsabilidad del motor de la base de datos, también conocido como "motor de almacenamiento". Aunque normalmente se accede a un DBMS a través del sistema operativo subyacente (y, a menudo, se utilizan los sistemas de archivos de los sistemas operativos como intermediarios para el diseño del almacenamiento), las propiedades de almacenamiento y los ajustes de configuración son extremadamente importantes para el funcionamiento eficiente del DBMS y, por lo tanto, los mantienen de cerca. administradores de bases de datos. Un DBMS, mientras está en funcionamiento, siempre tiene su base de datos residiendo en varios tipos de almacenamiento (por ejemplo, memoria y almacenamiento externo). Los datos de la base de datos y la información adicional necesaria, posiblemente en cantidades muy grandes, se codifican en bits. Los datos generalmente residen en el almacenamiento en estructuras que se ven completamente diferentes de la forma en que se ven los datos en los niveles conceptual y externo,

Algunos DBMS admiten especificar qué codificación de caracteres se usó para almacenar datos, por lo que se pueden usar múltiples codificaciones en la misma base de datos.

El motor de almacenamiento utiliza varias estructuras de almacenamiento de base de datos de bajo nivel para serializar el modelo de datos de modo que pueda escribirse en el medio elegido. Se pueden utilizar técnicas como la indexación para mejorar el rendimiento. El almacenamiento convencional está orientado a filas, pero también existen bases de datos de correlación y orientadas a columnas.

Vistas materializadas

A menudo, la redundancia de almacenamiento se emplea para aumentar el rendimiento. Un ejemplo común es el almacenamiento de vistas materializadas, que consisten en vistas externas o resultados de consultas que se necesitan con frecuencia. El almacenamiento de dichas vistas ahorra el costoso cálculo de las mismas cada vez que se necesitan. Las desventajas de las vistas materializadas son los gastos generales en los que se incurre al actualizarlas para mantenerlas sincronizadas con los datos originales de la base de datos actualizada y el costo de la redundancia de almacenamiento.

Replicación

Ocasionalmente, una base de datos emplea la redundancia de almacenamiento mediante la replicación de objetos de la base de datos (con una o más copias) para aumentar la disponibilidad de los datos (tanto para mejorar el rendimiento de los accesos simultáneos de múltiples usuarios finales al mismo objeto de la base de datos como para proporcionar resistencia en caso de falla parcial de la base de datos). una base de datos distribuida). Las actualizaciones de un objeto replicado deben sincronizarse entre las copias del objeto. En muchos casos, se replica toda la base de datos.

Seguridad

La seguridad de la base de datos se ocupa de todos los aspectos de la protección del contenido de la base de datos, sus propietarios y sus usuarios. Abarca desde la protección contra usos intencionales no autorizados de bases de datos hasta accesos no intencionales a bases de datos por parte de entidades no autorizadas (por ejemplo, una persona o un programa informático).

El control de acceso a la base de datos trata de controlar quién (una persona o un determinado programa de computadora) puede acceder a qué información en la base de datos. La información puede comprender objetos específicos de la base de datos (p. ej., tipos de registros, registros específicos, estructuras de datos), ciertos cálculos sobre ciertos objetos (p. ej., tipos de consultas o consultas específicas), o usar rutas de acceso específicas a los primeros (p. ej., usar índices específicos). u otras estructuras de datos para acceder a la información). Los controles de acceso a la base de datos los establece personal especial autorizado (por el propietario de la base de datos) que utiliza interfaces DBMS de seguridad protegidas dedicadas.

Esto puede gestionarse directamente de forma individual, o mediante la asignación de personas y privilegios a grupos, o (en los modelos más elaborados) mediante la asignación de personas y grupos a roles a los que luego se les otorgan derechos. La seguridad de los datos evita que los usuarios no autorizados vean o actualicen la base de datos. Mediante el uso de contraseñas, los usuarios pueden acceder a toda la base de datos oa subconjuntos de la misma denominados "subesquemas". Por ejemplo, una base de datos de empleados puede contener todos los datos sobre un empleado individual, pero un grupo de usuarios puede estar autorizado para ver solo datos de nómina, mientras que otros pueden acceder solo al historial de trabajo y datos médicos. Si el DBMS proporciona una forma de ingresar y actualizar la base de datos de manera interactiva, así como interrogarla, esta capacidad permite administrar bases de datos personales.

La seguridad de datos en general se ocupa de la protección de fragmentos específicos de datos, tanto físicamente (es decir, de la corrupción, destrucción o eliminación; por ejemplo, ver seguridad física), o la interpretación de ellos, o partes de ellos para obtener información significativa (por ejemplo, mediante observando las cadenas de bits que comprenden, concluyendo números de tarjetas de crédito válidos específicos; por ejemplo, consulte el cifrado de datos).

Cambie y acceda a los registros de registro de quién accedió a qué atributos, qué se modificó y cuándo se modificó. Los servicios de registro permiten una auditoría forense de la base de datos más tarde al mantener un registro de las ocurrencias y cambios de acceso. A veces, el código de nivel de aplicación se usa para registrar cambios en lugar de dejarlo en la base de datos. El monitoreo se puede configurar para intentar detectar brechas de seguridad. Por lo tanto, las organizaciones deben tomar en serio la seguridad de la base de datos debido a los muchos beneficios que brinda. Las organizaciones estarán protegidas contra infracciones de seguridad y actividades de piratería, como la intrusión del firewall, la propagación de virus y el software de rescate. Esto ayuda a proteger la información esencial de la empresa, que no se puede compartir con terceros por ningún motivo.

Transacciones y concurrencia

Las transacciones de la base de datos se pueden usar para introducir cierto nivel de tolerancia a fallas e integridad de datos después de la recuperación de un bloqueo. Una transacción de base de datos es una unidad de trabajo, que normalmente encapsula una serie de operaciones sobre una base de datos (p. ej., leer un objeto de base de datos, escribir, adquirir o liberar un bloqueo, etc.), una abstracción admitida en la base de datos y también en otros sistemas. Cada transacción tiene límites bien definidos en términos de las ejecuciones de programa/código que se incluyen en esa transacción (determinado por el programador de la transacción a través de comandos de transacción especiales).

El acrónimo ACID describe algunas propiedades ideales de una transacción de base de datos: atomicidad, consistencia, aislamiento y durabilidad.

Migración

Una base de datos creada con un DBMS no se puede transferir a otro DBMS (es decir, el otro DBMS no puede ejecutarla). Sin embargo, en algunas situaciones, es deseable migrar una base de datos de un DBMS a otro. Las razones son principalmente económicas (diferentes DBMS pueden tener diferentes costos totales de propiedad o TCO), funcionales y operativas (diferentes DBMS pueden tener diferentes capacidades). La migración implica la transformación de la base de datos de un tipo de DBMS a otro. La transformación debe mantener (si es posible) la aplicación relacionada con la base de datos (es decir, todos los programas de aplicación relacionados) intacta. Por lo tanto, los niveles arquitectónicos conceptuales y externos de la base de datos deben mantenerse en la transformación. Se puede desear que también se mantengan algunos aspectos del nivel interno de la arquitectura. Una migración de base de datos compleja o grande puede ser un proyecto complicado y costoso (de una sola vez), que debe tenerse en cuenta en la decisión de migrar. Esto es a pesar del hecho de que pueden existir herramientas para ayudar a la migración entre DBMS específicos. Por lo general, un proveedor de DBMS proporciona herramientas para ayudar a importar bases de datos de otros DBMS populares.

Construcción, mantenimiento y puesta a punto

Después de diseñar una base de datos para una aplicación, la siguiente etapa es construir la base de datos. Por lo general, se puede seleccionar un DBMS de propósito general apropiado para este propósito. Un DBMS proporciona las interfaces de usuario necesarias para que las utilicen los administradores de bases de datos para definir las estructuras de datos de la aplicación necesaria dentro del modelo de datos respectivo del DBMS. Se utilizan otras interfaces de usuario para seleccionar los parámetros DBMS necesarios (como los relacionados con la seguridad, los parámetros de asignación de almacenamiento, etc.).

Cuando la base de datos está lista (todas sus estructuras de datos y otros componentes necesarios están definidos), normalmente se completa con los datos de la aplicación inicial (inicialización de la base de datos, que suele ser un proyecto distinto; en muchos casos, utilizando interfaces DBMS especializadas que admiten la inserción masiva) antes haciéndolo operativo. En algunos casos, la base de datos se vuelve operativa mientras está vacía de datos de la aplicación y los datos se acumulan durante su funcionamiento.

Después de crear, inicializar y llenar la base de datos, es necesario mantenerla. Es posible que sea necesario cambiar varios parámetros de la base de datos y es posible que la base de datos deba ajustarse (ajustarse) para un mejor rendimiento; las estructuras de datos de la aplicación se pueden cambiar o agregar, se pueden escribir nuevos programas de aplicación relacionados para agregar a la funcionalidad de la aplicación, etc.

Copia de seguridad y restaurar

A veces se desea devolver una base de datos a un estado anterior (por muchas razones, por ejemplo, cuando la base de datos se encuentra corrupta debido a un error de software o si se ha actualizado con datos erróneos). Para lograr esto, se realiza una operación de copia de seguridad ocasional o continuamente, donde cada estado deseado de la base de datos (es decir, los valores de sus datos y su incorporación en las estructuras de datos de la base de datos) se mantiene dentro de archivos de copia de seguridad dedicados (existen muchas técnicas para hacer esto de manera efectiva). Cuando un administrador de base de datos decide devolver la base de datos a este estado (por ejemplo, especificando este estado en un momento deseado en el que la base de datos estaba en este estado), estos archivos se utilizan para restaurar ese estado.

Análisis estático

Las técnicas de análisis estático para la verificación de software también se pueden aplicar en el escenario de los lenguajes de consulta. En particular, el marco de interpretación *Abstract se ha extendido al campo de los lenguajes de consulta para bases de datos relacionales como una forma de apoyar técnicas de aproximación sólidas. La semántica de los lenguajes de consulta se puede ajustar de acuerdo con las abstracciones adecuadas del dominio concreto de los datos. La abstracción de los sistemas de bases de datos relacionales tiene muchas aplicaciones interesantes, en particular, con fines de seguridad, como control de acceso detallado, marcas de agua, etc.

Funciones misceláneas

Otras características de DBMS pueden incluir:

  • Registros de la base de datos: esto ayuda a mantener un historial de las funciones ejecutadas.
  • Componente gráfico para producir gráficos y tablas, especialmente en un sistema de almacenamiento de datos.
  • Optimizador de consultas: realiza la optimización de consultas en cada consulta para elegir un plan de consulta eficiente (un orden parcial (árbol) de operaciones) que se ejecutará para calcular el resultado de la consulta. Puede ser específico de un motor de almacenamiento en particular.
  • Herramientas o ganchos para el diseño de bases de datos, programación de aplicaciones, mantenimiento de programas de aplicaciones, análisis y monitoreo de rendimiento de bases de datos, monitoreo de configuración de bases de datos, configuración de hardware de DBMS (un DBMS y una base de datos relacionada pueden abarcar computadoras, redes y unidades de almacenamiento) y mapeo de bases de datos relacionadas (especialmente para un DBMS distribuido), asignación de almacenamiento y monitoreo del diseño de la base de datos, migración de almacenamiento, etc.

Cada vez más, se pide un sistema único que incorpore todas estas funcionalidades básicas en el mismo marco de desarrollo, prueba e implementación para la gestión de bases de datos y el control de código fuente. Tomando prestado de otros desarrollos en la industria del software, algunos comercializan ofertas como "DevOps para base de datos".

Diseño y modelado

La primera tarea de un diseñador de base de datos es producir un modelo de datos conceptual que refleje la estructura de la información que se mantendrá en la base de datos. Un enfoque común para esto es desarrollar un modelo de entidad-relación, a menudo con la ayuda de herramientas de dibujo. Otro enfoque popular es el lenguaje de modelado unificado. Un modelo de datos exitoso reflejará con precisión el posible estado del mundo externo que se está modelando: por ejemplo, si las personas pueden tener más de un número de teléfono, permitirá capturar esta información. El diseño de un buen modelo de datos conceptual requiere una buena comprensión del dominio de la aplicación; por lo general, implica hacer preguntas profundas sobre las cosas de interés para una organización, como "¿un cliente también puede ser un proveedor?" o "si un producto se vende con dos formas diferentes de empaque,

Producir el modelo de datos conceptuales a veces implica la entrada de procesos comerciales o el análisis del flujo de trabajo en la organización. Esto puede ayudar a establecer qué información se necesita en la base de datos y qué se puede omitir. Por ejemplo, puede ayudar a decidir si la base de datos necesita contener datos históricos además de datos actuales.

Habiendo producido un modelo de datos conceptual con el que los usuarios están satisfechos, la siguiente etapa es traducirlo en un esquema que implemente las estructuras de datos relevantes dentro de la base de datos. Este proceso a menudo se denomina diseño de base de datos lógico y el resultado es un modelo de datos lógicos expresado en forma de esquema. Mientras que el modelo de datos conceptual es (al menos en teoría) independiente de la elección de la tecnología de la base de datos, el modelo de datos lógico se expresará en términos de un modelo de base de datos particular soportado por el DBMS elegido. (Los términos modelo de datos y modelo de base de datos a menudo se usan indistintamente, pero en este artículo usamos modelo de datos para el diseño de una base de datos específica y modelo de base de datospara la notación de modelado utilizada para expresar ese diseño).

El modelo de base de datos más popular para bases de datos de propósito general es el modelo relacional, o más precisamente, el modelo relacional representado por el lenguaje SQL. El proceso de creación de un diseño de base de datos lógico utilizando este modelo utiliza un enfoque metódico conocido como normalización. El objetivo de la normalización es garantizar que cada "hecho" elemental solo se registre en un lugar, de modo que las inserciones, actualizaciones y eliminaciones mantengan automáticamente la coherencia.

La etapa final del diseño de la base de datos es tomar las decisiones que afectan el rendimiento, la escalabilidad, la recuperación, la seguridad y similares, que dependen del DBMS en particular. Esto a menudo se denomina diseño de base de datos física y el resultado es el modelo de datos físicos. Un objetivo clave durante esta etapa es la independencia de los datos, lo que significa que las decisiones tomadas con fines de optimización del rendimiento deben ser invisibles para los usuarios finales y las aplicaciones. Hay dos tipos de independencia de datos: independencia de datos físicos e independencia de datos lógicos. El diseño físico está impulsado principalmente por los requisitos de rendimiento y requiere un buen conocimiento de la carga de trabajo esperada y los patrones de acceso, y una comprensión profunda de las funciones que ofrece el DBMS elegido.

Otro aspecto del diseño de bases de datos físicas es la seguridad. Implica tanto definir el control de acceso a los objetos de la base de datos como definir los niveles y métodos de seguridad para los datos en sí.

Modelos

Un modelo de base de datos es un tipo de modelo de datos que determina la estructura lógica de una base de datos y determina fundamentalmente de qué manera se pueden almacenar, organizar y manipular los datos. El ejemplo más popular de un modelo de base de datos es el modelo relacional (o la aproximación SQL de relacional), que utiliza un formato basado en tablas.

Los modelos de datos lógicos comunes para las bases de datos incluyen:

  • Bases de datos de navegación
    • Modelo de base de datos jerárquica
    • modelo de red
    • Base de datos de gráficos
  • modelo relacional
  • Modelo entidad-relación
    • Modelo entidad-relación mejorado
  • modelo de objeto
  • modelo de documento
  • Modelo entidad-atributo-valor
  • esquema de estrella

Una base de datos relacional de objetos combina las dos estructuras relacionadas.

Los modelos de datos físicos incluyen:

  • índice invertido
  • Archivo plano

Otros modelos incluyen:

  • modelo multidimensional
  • modelo de matriz
  • modelo multivalor

Los modelos especializados están optimizados para tipos particulares de datos:

  • base de datos XML
  • modelo semántico
  • Almacén de contenido
  • tienda de eventos
  • Modelo de series de tiempo

Vistas externas, conceptuales e internas

Un sistema de gestión de bases de datos proporciona tres vistas de los datos de la base de datos:

  • El nivel externo define cómo cada grupo de usuarios finales ve la organización de los datos en la base de datos. Una sola base de datos puede tener cualquier número de vistas en el nivel externo.
  • El nivel conceptual unifica las diversas vistas externas en una vista global compatible. Proporciona la síntesis de todas las vistas externas. Está fuera del alcance de los diversos usuarios finales de bases de datos y es más bien de interés para los desarrolladores de aplicaciones de bases de datos y los administradores de bases de datos.
  • El nivel interno (o nivel físico) es la organización interna de datos dentro de un DBMS. Se ocupa del costo, el rendimiento, la escalabilidad y otros asuntos operativos. Se ocupa del diseño de almacenamiento de los datos, utilizando estructuras de almacenamiento como índices para mejorar el rendimiento. En ocasiones, almacena datos de vistas individuales (vistas materializadas), calculadas a partir de datos genéricos, si existe una justificación de rendimiento para tal redundancia. Equilibra todos los requisitos de rendimiento de las vistas externas, posiblemente en conflicto, en un intento de optimizar el rendimiento general en todas las actividades.

Si bien normalmente solo hay una vista conceptual (o lógica) y física (o interna) de los datos, puede haber cualquier cantidad de vistas externas diferentes. Esto permite a los usuarios ver la información de la base de datos de una manera más relacionada con el negocio que desde un punto de vista técnico y de procesamiento. Por ejemplo, un departamento financiero de una empresa necesita los detalles de pago de todos los empleados como parte de los gastos de la empresa, pero no necesita detalles sobre los empleados que son de interés para el departamento de recursos humanos. Por lo tanto, diferentes departamentos necesitan diferentes vistas de la base de datos de la empresa.

La arquitectura de la base de datos de tres niveles se relaciona con el concepto de independencia de los datos, que fue una de las principales fuerzas impulsoras iniciales del modelo relacional. La idea es que los cambios realizados en un cierto nivel no afecten la vista en un nivel superior. Por ejemplo, los cambios en el nivel interno no afectan a los programas de aplicación escritos con interfaces de nivel conceptual, lo que reduce el impacto de realizar cambios físicos para mejorar el rendimiento.

La vista conceptual proporciona un nivel de indirección entre lo interno y lo externo. Por un lado, proporciona una vista común de la base de datos, independiente de las diferentes estructuras de vista externas y, por otro lado, abstrae los detalles de cómo se almacenan o administran los datos (nivel interno). En principio, cada nivel, e incluso cada vista externa, puede presentarse mediante un modelo de datos diferente. En la práctica, por lo general, un DBMS determinado utiliza el mismo modelo de datos tanto para el nivel externo como para el conceptual (por ejemplo, modelo relacional). El nivel interno, que está oculto dentro del DBMS y depende de su implementación, requiere un nivel de detalle diferente y utiliza sus propios tipos de estructuras de datos.

Separar los niveles externo, conceptual e interno fue una característica importante de las implementaciones del modelo de base de datos relacional que dominan las bases de datos del siglo XXI.

Investigar

La tecnología de bases de datos ha sido un tema de investigación activo desde la década de 1960, tanto en el mundo académico como en los grupos de investigación y desarrollo de las empresas (por ejemplo, IBM Research). La actividad investigadora incluye teoría y desarrollo de prototipos. Los temas de investigación notables han incluido modelos, el concepto de transacción atómica, técnicas de control de concurrencia relacionadas, lenguajes de consulta y métodos de optimización de consulta, RAID y más.

El área de investigación de bases de datos tiene varias revistas académicas dedicadas (por ejemplo, ACM Transactions on Database Systems -TODS, Data and Knowledge Engineering -DKE) y conferencias anuales (por ejemplo, ACM SIGMOD, ACM PODS, VLDB, IEEE ICDE).

Contenido relacionado

Núcleo de Dublín

Vóxel

En gráficos 3D por computadora, un vóxel representa un valor en una cuadrícula regular en un espacio tridimensional. Al igual que con los píxeles en un...

Blitz BÁSICO

Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save