Base de datos

Recopilación organizada de datos en informática
Una sentencia de selección SQL y su resultado

En informática , una base de datos es una colección organizada de datos o un tipo de almacenamiento de datos basado en el uso de un sistema de gestión de bases de datos ( DBMS ), el software que interactúa con los usuarios finales , las aplicaciones y la propia base de datos para capturar y analizar los datos. El DBMS también abarca las instalaciones básicas proporcionadas para administrar la base de datos. La suma total de la base de datos, el DBMS y las aplicaciones asociadas se puede denominar un sistema de base de datos . A menudo, el término "base de datos" también se usa de manera vaga para referirse a cualquiera de los DBMS, el sistema de base de datos o una aplicación asociada con la base de datos.

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 en almacenamiento en la nube . El diseño de bases de datos abarca técnicas formales y consideraciones prácticas, que incluyen modelado de datos , representación y almacenamiento eficientes de datos, lenguajes de consulta , seguridad y privacidad de datos confidenciales y cuestiones de computación distribuida , incluido el soporte de acceso concurrente y tolerancia a fallas .

Los informáticos pueden clasificar los sistemas de gestión de bases de datos según los modelos de base de datos que admiten. Las bases de datos relacionales se volvieron dominantes en la década de 1980. Estas modelan los datos como filas y columnas en una serie de tablas , y la gran mayoría utiliza 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 descripción general

Formalmente, una "base de datos" se refiere a un conjunto de datos relacionados a los que se accede mediante el uso de un "sistema de gestión de bases de datos" (DBMS), que es un conjunto integrado de software informático que permite a los usuarios interactuar con una o más bases de datos y proporciona acceso a todos los datos contenidos en la base de datos (aunque pueden existir restricciones 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 gestionar cómo se organiza esa información.

Debido a la estrecha relación que existe entre ellos, el término "base de datos" se utiliza a menudo de manera informal para referirse tanto a una base de datos como al DBMS utilizado para manipularla.

Fuera del mundo de la tecnología de la información profesional , el término base de datos se utiliza a menudo para referirse a cualquier recopilación de datos relacionados (como una hoja de cálculo o un índice de tarjetas), ya que los requisitos de tamaño y uso normalmente requieren el uso de un sistema de gestión de bases de datos. [1]

Los DBMS existentes proporcionan diversas funciones que permiten la gestión de una base de datos y sus datos que pueden clasificarse en cuatro grupos funcionales principales:

  • Definición de datos : creación, modificación y eliminación de definiciones que detallan cómo se deben organizar los datos.
  • Actualización – Inserción, modificación y eliminación de los propios datos. [2]
  • Recuperación : selección de datos según criterios específicos (por ejemplo, una consulta, una posición en una jerarquía o una posición en relación con otros datos) y suministro de esos datos directamente al usuario o poniéndolos a disposición para su posterior procesamiento por la propia base de datos o por otras aplicaciones. Los datos recuperados pueden ponerse a disposición en una forma más o menos directa sin modificación, tal como están almacenados en la base de datos, o en una nueva forma obtenida alterándolos o combinándolos con datos existentes de la base de datos. [3]
  • Administración : registrar y supervisar usuarios, hacer cumplir la seguridad de los datos, supervisar el rendimiento, mantener la integridad de los datos, lidiar con el control de concurrencia y recuperar información que ha sido dañada por algún evento como una falla inesperada del sistema. [4]

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

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 computadoras 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 pueden construirse alrededor de un núcleo multitarea personalizado con soporte de red integrado , pero los DBMS modernos generalmente dependen de un sistema operativo estándar para proporcionar estas funciones. [ cita requerida ]

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

Las bases de datos y los DBMS se pueden clasificar según 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 servidores hasta un teléfono móvil ), los lenguajes de consulta utilizados para acceder a la base de datos (como SQL o XQuery ) y su ingeniería interna, que afecta el rendimiento, la escalabilidad , la resiliencia y la seguridad.

Historia

Los tamaños, capacidades y 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 de computadora , almacenamiento de computadora y redes de computadoras . El concepto de una base de datos fue posible gracias a la aparición de medios de almacenamiento de acceso directo, como discos magnéticos , que se volvieron ampliamente disponibles a mediados de la década de 1960; los sistemas anteriores dependían del 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 basadas en el modelo o estructura de datos: navegacional , [8] SQL/ relacional y posrelacional.

Los dos primeros modelos de datos de navegación principales fueron el modelo jerárquico y el modelo CODASYL ( modelo de red ). Estos se caracterizaban por el uso de punteros (a menudo direcciones de discos físicos) 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 de 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 potente como para permitir la amplia implementación 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 , [actualizar]siguen siendo dominantes: IBM Db2 , Oracle , MySQL y Microsoft SQL Server son los DBMS más buscados . [9] 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. [ cita requerida ]

Las bases de datos de objetos se desarrollaron en la década de 1980 para superar el inconveniente del desajuste de 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 siguiente generación de bases de datos posrelacionales de finales de los años 2000 se conoció como bases de datos NoSQL , que introdujeron 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, pero que al mismo tiempo apuntaban a igualar el alto rendimiento de NoSQL en comparación con los DBMS relacionales disponibles comercialmente.

Década de 1960, DBMS de navegación

Estructura básica del modelo de base de datos de navegación CODASYL

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

A medida que las computadoras crecieron 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 comenzado a usarse comercialmente. El interés en un estándar comenzó a crecer y Charles Bachman , autor de uno de esos productos, el Integrated Data Store (IDS), fundó el Database Task Group dentro de CODASYL , el grupo responsable de la creación y estandarización de COBOL . En 1971, el Database Task Group presentó su estándar, que generalmente se conoció como el enfoque CODASYL , y pronto ingresaron al mercado varios productos comerciales basados ​​en este enfoque.

El método CODASYL ofrecía a las aplicaciones la posibilidad de navegar por un conjunto de datos vinculados que se formaban en una gran red. Las aplicaciones podían encontrar registros mediante uno de tres métodos:

  1. Uso de una clave principal (conocida como clave CALC, generalmente implementada mediante hash )
  2. Navegar por relaciones (llamadas conjuntos ) de un registro a otro
  3. Escanear todos los registros en orden secuencial

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

IBM también tenía su propio DBMS en 1966, conocido como Information Management System (IMS). IMS fue un desarrollo de software escrito para el programa Apollo en el System/360 . IMS era generalmente similar en concepto a CODASYL, pero utilizaba una jerarquía estricta para su modelo de navegación de datos en lugar del modelo de red de CODASYL. Ambos conceptos luego 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, The Programmer as Navigator . IMS está clasificado por IBM como una base de datos jerárquica . Las bases de datos IDMS y TOTAL de Cincom Systems están clasificadas como bases de datos de red. IMS sigue en uso a partir de 2014. [ 11][actualizar]

Década de 1970, DBMS relacional

Edgar F. Codd trabajó en IBM en San José, California , en una de sus sucursales que se dedicaban principalmente al desarrollo de sistemas de disco duro . No estaba satisfecho con el modelo de navegación del enfoque CODASYL, en particular con 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 A Relational Model of Data for Large Shared Data Banks . [12]

En este artículo, describió un nuevo sistema para almacenar y trabajar con grandes bases de datos. En lugar de almacenar los registros en una especie de lista enlazada de registros de formato libre como en CODASYL, la idea de Codd era organizar los datos como una serie de " tablas ", cada tabla se utilizaba para un tipo diferente de entidad. Cada tabla contendría un número fijo de columnas que contenían los atributos de la entidad. Una o más columnas de cada tabla se designaban como una clave principal mediante la cual las filas de la tabla podían identificarse de forma única; las referencias cruzadas entre tablas siempre utilizaban estas claves principales, en lugar de direcciones de disco, y las consultas unirían las tablas en función de estas relaciones clave, utilizando un conjunto de operaciones basadas en el sistema matemático de cálculo relacional (del que el modelo toma su nombre). La división de los datos en un conjunto de tablas normalizadas (o 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 podían presentar los datos de diferentes maneras para diferentes usuarios, pero las vistas no podían actualizarse directamente.

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

En el modelo relacional , los registros se "vinculan" mediante claves virtuales que no se almacenan en la base de datos, pero que se definen según sea necesario entre los datos contenidos en los registros.

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, permitía reubicar y redimensionar 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 facilitaba la definición de operaciones de actualización con definiciones matemáticas claras, y también permitía definir operaciones de consulta en términos de la disciplina establecida del cálculo de predicados de primer orden ; debido a que estas operaciones tienen propiedades matemáticas claras, se hace posible reescribir consultas de formas demostrablemente correctas, que 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, aunque las conexiones entre tablas ya no son tan explícitas.

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

Por ejemplo, un uso común de un sistema de base de datos es el de rastrear información sobre los usuarios, su nombre, información de inicio de sesión, diversas direcciones y números de teléfono. En el enfoque de navegación, todos estos datos se colocarían en un único 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 se proporcionaran realmente la dirección o los números de teléfono.

Además de identificar filas y registros mediante identificadores lógicos en lugar de direcciones de disco, Codd cambió la forma en que las aplicaciones ensamblaban datos de múltiples registros. En lugar de requerir que las aplicaciones recopilaran datos de un registro a la vez navegando por los vínculos, utilizarían un lenguaje de consulta declarativo que expresara qué datos se necesitaban, en lugar de la ruta de acceso mediante la cual se debían encontrar. Encontrar una ruta de acceso eficiente a los datos pasó a ser responsabilidad del sistema de administración de bases de datos, en lugar del programador de aplicaciones. Este proceso, llamado optimización de consultas, dependía del hecho de que las consultas se expresaban en términos de lógica matemática.

El artículo de Codd fue retomado por dos personas de 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 programadores estudiantes para producir código. A principios de 1973, INGRES entregó sus primeros productos de prueba que, en general, estaban listos para su uso generalizado en 1979. INGRES era similar a System R en varios aspectos, incluido el uso de un "lenguaje" para el acceso a los datos , conocido como QUEL . Con el tiempo, INGRES se trasladó al estándar SQL emergente.

IBM realizó una implementación de prueba del modelo relacional, PRTV , y una de producción, Business System 12 , ambas actualmente descontinuadas. Honeywell escribió MRDS para Multics , y ahora hay dos nuevas implementaciones: Alphora Dataphor y Rel. La mayoría de las otras implementaciones de DBMS que normalmente se denominan relacionales son en realidad DBMS SQL.

En 1970, la Universidad de Michigan comenzó a desarrollar el Sistema de Gestión de Información MICRO [13] basado en el modelo de datos de teoría de conjuntos de DL Childs . [14] [15] [16] MICRO fue utilizado para gestionar conjuntos de datos muy grandes por el Departamento de Trabajo de los EE. UU. , la Agencia de Protección Ambiental de los EE. UU. e investigadores de la Universidad de Alberta , la Universidad de Michigan y la Universidad Estatal de Wayne . Se ejecutaba en computadoras mainframe de IBM utilizando el Sistema de Terminal de Michigan . [17] El sistema permaneció en producción hasta 1998.

Enfoque integrado

En los años 1970 y 1980, se intentó 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. Algunos ejemplos fueron IBM System/38 , la primera oferta de Teradata y la máquina de base de datos de Britton Lee, Inc.

Otro enfoque para el 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 podían 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 actuales son sistemas de software que se ejecutan en hardware de propósito general, utilizando almacenamiento de datos de computadora 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, DBMS SQL

IBM comenzó a trabajar en un sistema prototipo basado libremente en los conceptos de Codd, el System R, a principios de los años 70. La primera versión estuvo lista en 1974/5, y luego se empezó a trabajar en sistemas multitabla en los que los datos se podían dividir de modo que todos los datos de un registro (algunos de los cuales son opcionales) no tuvieran que almacenarse en un único "fragmento" grande. Los clientes probaron versiones multiusuario posteriores en 1978 y 1979, momento en el que se había añadido un lenguaje de consulta estandarizado , SQL [ cita requerida ] . Las ideas de Codd se estaban consolidando como viables y superiores a CODASYL, lo que empujó 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 System R. Aunque las implementaciones de Oracle V1 se completaron en 1978, no fue hasta Oracle Versión 2 cuando Ellison superó a IBM en el mercado en 1979. [18]

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

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

En 1976 surgió otro modelo de datos, el modelo entidad-relación , que ganó popularidad para el diseño de bases de datos , ya que enfatizaba una descripción más familiar que el modelo relacional anterior. Más tarde, las construcciones entidad-relación se adaptaron como una construcción de modelado de datos para el modelo relacional, y la diferencia entre los dos se volvió irrelevante. [ cita requerida ]

Años 80, en el escritorio

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

Década de 1990, orientado a objetos

En la década de 1990, junto con el auge de la programación orientada a objetos , se produjo 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 que pertenecían a esa persona en lugar de ser datos extraños. Esto permite que las relaciones entre los datos se relacionen con los objetos y sus atributos y no con campos individuales. [20] El término " desajuste de impedancia objeto-relacional " 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 objeto-relacionales 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 mapeos objeto-relacionales (ORM) intentan resolver el mismo problema.

Década de 2000, NoSQL y NewSQL

Las bases de datos XML son un tipo de base de datos orientada a documentos estructurados que permite realizar consultas basadas en atributos de documentos XML . Las bases de datos XML se utilizan principalmente en aplicaciones en las que los datos se visualizan cómodamente como una colección de documentos, con una estructura que puede variar desde muy flexible hasta muy rígida: algunos 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 operaciones de unión al almacenar datos desnormalizados 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 esa razón, muchas bases de datos NoSQL están utilizando lo que se denomina consistencia eventual para proporcionar garantías tanto de disponibilidad como de tolerancia a la partición con un nivel reducido de consistencia 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) mientras sigue utilizando SQL y mantiene 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 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. Algunos ejemplos son los sistemas informáticos de bibliotecas , los sistemas de reserva de vuelos , los sistemas informáticos de inventario de piezas y muchos sistemas de gestió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 es según el tipo de contenido, por ejemplo: bibliográficas , de texto documental, estadísticas o de objetos multimedia. Otra forma es según su área de aplicación, por ejemplo: contabilidad, composiciones musicales, películas, banca, fabricación o seguros. Una tercera forma es según algún aspecto técnico, como la estructura de la base de datos o el tipo de interfaz. En esta sección se enumeran algunos de los adjetivos que se utilizan para caracterizar los 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 que normalmente está respaldada por un almacenamiento de datos informático no volátil. Las bases de datos en memoria principal son más rápidas que las bases de datos en disco, por lo que suelen utilizarse cuando el tiempo de respuesta es crítico, como en los equipos de redes de telecomunicaciones.
  • Una base de datos activa incluye una arquitectura basada en eventos que puede responder a condiciones tanto internas como externas a la base de datos. Los posibles usos incluyen la supervisión de la seguridad, las alertas, la recopilación de estadísticas y la autorización. Muchas bases de datos proporcionan funciones de base de datos activa en forma de activadores de base de datos .
  • Una base de datos en la nube se basa en tecnología en 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 [ cita requerida ] 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 se pueden agregar a totales semanales y convertir de códigos de producto internos a códigos UPC para poder compararlos con los datos de ACNielsen . Algunos componentes básicos y esenciales del almacenamiento de datos incluyen la extracción, el análisis y la minería 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 gestionar 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 integrado es un DBMS que está estrechamente integrado con un software de aplicación que requiere acceso a 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. [21]
  • Las bases de datos de usuario final están compuestas por datos desarrollados por usuarios finales individuales. Algunos ejemplos son colecciones de documentos, hojas de cálculo, presentaciones, archivos multimedia y otros. Existen varios productos [ ¿cuáles? ] para respaldar dichas bases de datos.
  • Un sistema de base de datos federado comprende varias bases de datos distintas, cada una con su propio DBMS. Se gestiona como una única base de datos mediante un sistema de gestión de bases de datos federado (FDBMS), que integra de forma transparente varios 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 multibase de datos se utiliza como sinónimo de base de datos federada, aunque puede referirse a un grupo de bases de datos menos integradas (por ejemplo, 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 confirmación atómica (ACP), por ejemplo, el protocolo de confirmación de dos fases , para permitir transacciones distribuidas (globales) entre las bases de datos participantes.
  • Una base de datos de grafos es un tipo de base de datos NoSQL que utiliza estructuras de grafos con nodos, aristas y propiedades para representar y almacenar información. Las bases de datos de grafos generales que pueden almacenar cualquier grafo son distintas de las bases de datos de grafos especializadas, como los almacenes triples y las bases de datos de red .
  • Un DBMS de matriz es un tipo de DBMS NoSQL que permite modelar, almacenar y recuperar matrices multidimensionales (generalmente grandes), como imágenes satelitales y resultados de simulación climática.
  • En una base de datos de hipertexto o hipermedia , 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 saltar cómodamente de un texto a otro. La World Wide Web es, por tanto, una gran base de datos de hipertexto distribuida.
  • Una base de conocimiento (abreviada como KB , kb o Δ [22] [23] ) 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 informatizada del conocimiento . También es una colección de datos que representan problemas con sus soluciones y experiencias relacionadas.
  • Una base de datos móvil puede llevarse a cabo 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 . Algunos ejemplos son las 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 salario, beneficios, datos de habilidades sobre los empleados, sistemas de planificación de recursos empresariales que registran detalles sobre componentes de productos, inventario de piezas y bases de datos financieras que realizan un seguimiento de las transacciones financieras, contables y monetarias de la organización.
  • Una base de datos paralela busca mejorar el rendimiento a través de la paralelización de tareas como cargar datos, crear índices y evaluar consultas.
Las principales arquitecturas DBMS paralelas que son inducidas por la arquitectura de hardware subyacente son:
  • Arquitectura de memoria compartida , donde varios procesadores comparten el espacio de memoria principal, así como otros almacenamientos de datos.
  • Arquitectura de disco compartido , donde cada unidad de procesamiento (que normalmente consta de varios procesadores) tiene su propia memoria principal, pero todas las unidades comparten el resto del almacenamiento.
  • Arquitectura de no uso compartido , donde cada unidad de procesamiento tiene su propia memoria principal y otro tipo de almacenamiento.
  • Las bases de datos probabilísticas emplean lógica difusa para extraer inferencias de datos imprecisos.
  • Las bases de datos en tiempo real procesan las transacciones con la suficiente rapidez para que se pueda obtener el resultado y tomar medidas al respecto de inmediato.
  • Una base de datos espacial puede almacenar 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 zona?".
  • Una base de datos temporal tiene aspectos temporales incorporados, por ejemplo, un modelo de datos temporal 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 terminología se basa en una base de datos orientada a objetos , a menudo personalizada para un campo específico.
  • Una base de datos de datos no estructurados tiene como finalidad almacenar de forma manejable y protegida diversos objetos que no encajan de forma natural y cómoda en bases de datos comunes. Puede incluir mensajes de correo electrónico, documentos, diarios, objetos multimedia, etc. El nombre puede ser engañoso, 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 diversas formas, y están surgiendo nuevos DBMS dedicados.

Sistema de gestión de bases 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". [24] Algunos ejemplos de DBMS son MySQL , MariaDB , PostgreSQL , Microsoft SQL Server , Oracle Database y Microsoft Access .

El acrónimo DBMS se extiende a veces para indicar el modelo de base de datos subyacente , con RDBMS para el relacional , OODBMS para el orientado a objetos y ORDBMS para el modelo objeto-relacional . Otras extensiones pueden indicar otras características, como DDBMS para sistemas de gestión de bases de datos distribuidos.

La funcionalidad que ofrece un DBMS puede variar enormemente. La funcionalidad principal es el almacenamiento, la recuperación y la actualización de datos. Codd propuso las siguientes funciones y servicios que debería proporcionar un DBMS de propósito general completo: [25]

  • Almacenamiento, recuperación y actualización de datos
  • Catálogo o diccionario de datos accesible para el usuario que describe los metadatos
  • Soporte para transacciones y concurrencia
  • Instalaciones para recuperar la base de datos en caso de que resulte dañada
  • Soporte para autorización de acceso y actualización de datos
  • Acceda al soporte desde ubicaciones remotas
  • Imponer restricciones para garantizar que los datos de la base de datos cumplan determinadas reglas

También se espera generalmente que el DBMS proporcione un conjunto de utilidades para los fines que puedan ser necesarios para administrar la base de datos de manera efectiva, incluidas utilidades de importación, exportación, monitoreo, desfragmentación y análisis. [26] 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 base de datos .

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

Los grandes DBMS empresariales han tendido a aumentar en tamaño y funcionalidad y han requerido hasta miles de años humanos de esfuerzo de desarrollo a lo largo de su existencia. [a]

Los primeros DBMS multiusuario normalmente 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 un escritorio cliente y la base de datos en un servidor, lo que permitía distribuir el procesamiento. Esto evolucionó hacia una arquitectura de múltiples 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 solo al nivel adyacente. [28]

Un DBMS de propósito general proporcionará interfaces de programación de aplicaciones (API) públicas y, opcionalmente, un procesador para lenguajes de bases de datos como SQL, para permitir que se escriban aplicaciones que interactúen con la base de datos y la manipulen. Un DBMS de propósito especial puede utilizar una API privada y personalizarse y vincularse específicamente 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 se limitan a lo que se requiere para manejar el correo electrónico.

Solicitud

La interacción externa con la base de datos se realizará a través de un programa de aplicación que interactúe con el DBMS. [29] 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 programación de aplicaciones ( API) o mediante un lenguaje de base de datos. La API o el lenguaje en particular elegidos deberán ser compatibles con el DBMS, posiblemente de forma indirecta a través de un preprocesador o una API de enlace. Algunas API tienen como objetivo ser independientes de la base de datos, siendo ODBC un ejemplo conocido. Otras API comunes incluyen JDBC y ADO.NET .

Lenguajes de bases de datos

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

Los lenguajes de bases de datos son específicos de un modelo de datos en particular. Algunos ejemplos destacados son:

  • SQL combina las funciones de definición de datos, manipulación de datos y consulta en un único lenguaje. 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, las filas y columnas de una tabla se pueden ordenar). SQL se convirtió en un estándar del Instituto Nacional Estadounidense de Estándares (ANSI) en 1986, y de la Organización Internacional de Normalización (ISO) en 1987. Los estándares se han mejorado regularmente desde entonces y son compatibles (con distintos grados de conformidad) con todos los principales DBMS relacionales comerciales. [30] [31]
  • OQL es un estándar de lenguaje de modelos de objetos (del Object Data Management Group ). 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 bases 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. [32]

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 la consulta, como contar, sumar, promediar, ordenar, agrupar y hacer referencias cruzadas
  • Aplicación de restricciones (por ejemplo, en una base de datos automotriz, donde solo se permite un tipo de motor por automóvil)
  • Versión de 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 (por ejemplo, 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. El almacenamiento adecuado de las tres capas es necesario para la preservación futura y la longevidad de la base de datos. [33] Colocar los datos en un almacenamiento permanente es generalmente responsabilidad del motor de la base de datos, también conocido como "motor de almacenamiento". Aunque un DBMS normalmente accede a ellos a través del sistema operativo subyacente (y a menudo utilizando los sistemas de archivos de los sistemas operativos como intermediarios para el diseño del almacenamiento), las propiedades de almacenamiento y las configuraciones son extremadamente importantes para el funcionamiento eficiente del DBMS y, por lo tanto, son mantenidas de cerca por los administradores de la base 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 suelen residir en el almacenamiento en estructuras que tienen un aspecto completamente diferente al de los datos en los niveles conceptual y externo, pero de forma que se intenta optimizar (lo mejor posible) la reconstrucción de estos niveles cuando lo necesitan los usuarios y los programas, así como para calcular tipos adicionales de información necesaria a partir de los datos (por ejemplo, al consultar la base de datos).

Algunos DBMS permiten especificar qué codificación de caracteres se utilizó para almacenar datos, de modo que se pueden utilizar 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 orientadas a columnas y correlacionadas.

Vistas materializadas

A menudo se emplea redundancia de almacenamiento 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 la sobrecarga que se genera al actualizarlas para mantenerlas sincronizadas con los datos de la base de datos original actualizada y el costo de la redundancia de almacenamiento.

Replicación

Ocasionalmente, una base de datos emplea redundancia de almacenamiento mediante la replicación de objetos de 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 base de datos como para proporcionar resiliencia en caso de falla parcial de una base de datos distribuida). Las actualizaciones de un objeto replicado deben sincronizarse entre las copias de objetos. En muchos casos, se replica toda la base de datos.

Virtualización

Con la virtualización de datos , los datos utilizados permanecen en sus ubicaciones originales y se establece un acceso en tiempo real para permitir el análisis de múltiples fuentes. Esto puede ayudar a resolver algunas dificultades técnicas, como problemas de compatibilidad al combinar datos de varias plataformas, reducir el riesgo de error causado por datos defectuosos y garantizar que se utilicen los datos más recientes. Además, evitar la creación de una nueva base de datos que contenga información personal puede facilitar el cumplimiento de las regulaciones de privacidad. Sin embargo, con la virtualización de datos, la conexión a todas las fuentes de datos necesarias debe estar operativa ya que no hay una copia local de los datos, lo que es uno de los principales inconvenientes de este enfoque. [34]

Seguridad

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

El control de acceso a bases de datos se ocupa de controlar quién (una persona o un programa informático determinado) tiene permiso para acceder a qué información de la base de datos. La información puede incluir objetos específicos de la base de datos (por ejemplo, tipos de registros, registros específicos, estructuras de datos), determinados cálculos sobre determinados objetos (por ejemplo, tipos de consultas o consultas específicas) o el uso de rutas de acceso específicas a los primeros (por ejemplo, el uso de índices específicos u otras estructuras de datos para acceder a la información). Los controles de acceso a bases de datos son establecidos por personal autorizado especial (por el propietario de la base de datos) que utiliza interfaces DBMS de seguridad protegidas y dedicadas.

Esto se puede gestionar directamente de forma individual, o mediante la asignación de individuos y privilegios a grupos, o (en los modelos más elaborados) mediante la asignación de individuos y grupos a roles a los que luego se les otorgan derechos. La seguridad de los datos impide que 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 o a subconjuntos de ella 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 a ver solo los datos de nómina, mientras que a otros se les permite acceder solo al historial laboral y los datos médicos. Si el DBMS proporciona una forma de ingresar y actualizar la base de datos de forma interactiva, así como de 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, la destrucción o la eliminación; por ejemplo, consulte seguridad física ) o la interpretación de ellos, o partes de ellos, para obtener información significativa (por ejemplo, al observar las cadenas de bits que los componen, concluyendo números de tarjetas de crédito válidos específicos; por ejemplo, consulte cifrado de datos ).

Los registros de cambios y accesos registran quién accedió a qué atributos, qué se modificó y cuándo se modificó. Los servicios de registro permiten realizar una auditoría forense de la base de datos más adelante al mantener un registro de las incidencias y los cambios de acceso. A veces, se utiliza código a nivel de aplicación para registrar los cambios en lugar de dejarlos en la base de datos. Se puede configurar un sistema de monitoreo para intentar detectar brechas de seguridad. Por lo tanto, las organizaciones deben tomar en serio la seguridad de las bases de datos debido a los muchos beneficios que brinda. Las organizaciones estarán protegidas de las brechas de seguridad y las actividades de piratería, como la intrusión en el firewall, la propagación de virus y el ransomware. Esto ayuda a proteger la información esencial de la empresa, que no se puede compartir con terceros bajo ningún concepto. [35]

Transacciones y concurrencia

Las transacciones de bases de datos se pueden utilizar para introducir cierto nivel de tolerancia a fallos e integridad de los datos tras la recuperación de un fallo . Una transacción de base de datos es una unidad de trabajo que, por lo general, encapsula una serie de operaciones sobre una base de datos (por ejemplo, leer un objeto de base de datos, escribir, adquirir o liberar un bloqueo , etc.), una abstracción admitida en bases de datos y también en otros sistemas. Cada transacción tiene límites bien definidos en términos de qué ejecuciones de programa/código se incluyen en esa transacción (determinadas 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 es portable 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 de arquitectura conceptual y externa de la base de datos deben mantenerse en la transformación. Puede ser deseable 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) en sí mismo, lo 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 la construcción de la base de datos. Normalmente, se puede seleccionar un DBMS de propósito general adecuado para utilizarlo con este fin. 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 correspondiente del DBMS. Se utilizan otras interfaces de usuario para seleccionar los parámetros necesarios del DBMS (como los relacionados con la seguridad, los parámetros de asignación de almacenamiento, etc.).

Cuando la base de datos está lista (se han definido todas sus estructuras de datos y otros componentes necesarios), normalmente se llena con los datos iniciales de la aplicación (inicialización de la base de datos, que suele ser un proyecto independiente; en muchos casos, se utilizan interfaces DBMS especializadas que admiten la inserción masiva) antes de ponerla en funcionamiento. 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.

Una vez creada, inicializada y completada la base de datos, es necesario realizar un mantenimiento. Es posible que sea necesario cambiar varios parámetros de la base de datos y ajustarla ( ajuste ) para obtener un mejor rendimiento; se pueden cambiar o agregar estructuras de datos de la aplicación, se pueden escribir nuevos programas de aplicación relacionados para agregar funcionalidad a la aplicación, etc.

Copia de seguridad y restauración

A veces se desea devolver una base de datos a un estado anterior (por muchas razones, por ejemplo, casos en los que la base de datos se encuentra dañada 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 incrustación en las estructuras de datos de la base de datos) se guarda 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 punto deseado en el tiempo cuando 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 abstracta 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. [36] La semántica de los lenguajes de consulta se puede ajustar de acuerdo con 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, para fines de seguridad, como control de acceso de grano fino, marcas de agua, etc.

Características varias

Otras características del DBMS pueden incluir:

  • Registros de bases 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 : optimiza cada consulta para elegir un plan de consultas eficiente (un orden parcial (árbol) de operaciones) que se ejecutará para calcular el resultado de la consulta. Puede ser específico para 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 del 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 bases 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 creación, prueba e implementación para la gestión de bases de datos y el control de fuentes. Tomando como ejemplo otros desarrollos en la industria del software, algunos comercializan este tipo de ofertas como " DevOps para bases de datos". [37]

Diseño y modelado

La primera tarea de un diseñador de bases de datos es producir un modelo de datos conceptual que refleje la estructura de la información que se almacenará 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. Diseñar 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 que interesan a una organización, como "¿un cliente también puede ser un proveedor?", o "si un producto se vende con dos formas diferentes de empaquetado, ¿son el mismo producto o productos diferentes?", o "si un avión vuela de Nueva York a Dubai vía Frankfurt, ¿se trata de un vuelo o dos (o tal vez incluso tres)?". Las respuestas a estas preguntas establecen definiciones de la terminología utilizada para las entidades (clientes, productos, vuelos, segmentos de vuelo) y sus relaciones y atributos.

La producción del modelo de datos conceptual a veces implica la aportación de datos de los procesos empresariales o el análisis del flujo de trabajo de 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.

Una vez que se ha 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 se suele denominar diseño lógico de la base de datos y el resultado es un modelo lógico de datos 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 lógico de datos se expresará en términos de un modelo de base de datos particular compatible con el DBMS elegido. (Los términos modelo de datos y modelo de base de datos se suelen utilizar indistintamente, pero en este artículo utilizamos modelo de datos para el diseño de una base de datos específica y modelo de base de datos para 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 se registre solo en un lugar, de modo que las inserciones, actualizaciones y eliminaciones mantengan automáticamente la coherencia.

La etapa final del diseño de una base de datos es tomar las decisiones que afectan el rendimiento, la escalabilidad, la recuperación, la seguridad y demás, que dependen del DBMS en particular. Esto suele denominarse diseño físico de la base de datos y el resultado es el modelo físico de datos . 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 los datos: independencia física de los datos e independencia lógica de los datos. El diseño físico está impulsado principalmente por los requisitos de rendimiento y requiere un buen conocimiento de la carga de trabajo y los patrones de acceso esperados, y una comprensión profunda de las características que ofrece el DBMS elegido.

Otro aspecto del diseño de bases de datos físicas es la seguridad, que 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

Collage de cinco tipos de modelos de bases de datos

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, fundamentalmente, determina 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 bases de datos incluyen:

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

Los modelos de datos físicos incluyen:

Otros modelos incluyen:

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

Vistas externa, conceptual e interna

Visión tradicional de los datos [38]

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 única base de datos puede tener cualquier cantidad de vistas en el nivel externo.
  • El nivel conceptual (o nivel lógico ) unifica las distintas vistas externas en una vista global compatible. [39] Proporciona la síntesis de todas las vistas externas. Está fuera del alcance de los distintos 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 los datos dentro de un DBMS. Se ocupa de los costes, el rendimiento, la escalabilidad y otros asuntos operativos. Se ocupa de la disposición del almacenamiento de los datos, utilizando estructuras de almacenamiento como índices para mejorar el rendimiento. Ocasionalmente, almacena datos de vistas individuales ( vistas materializadas ), calculadas a partir de datos genéricos, si existe una justificación de rendimiento para dicha redundancia. Equilibra todos los requisitos de rendimiento de las vistas externas, posiblemente conflictivas, en un intento de optimizar el rendimiento general en todas las actividades.

Si bien normalmente solo existe una única visión conceptual e 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 en lugar de 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, los diferentes departamentos necesitan diferentes vistas de la base de datos de la empresa.

La arquitectura de 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. [39] La idea es que los cambios realizados en un determinado 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 utilizando 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 gestionan los datos (nivel interno). En principio, cada nivel, e incluso cada vista externa, se puede presentar mediante un modelo de datos diferente. En la práctica, por lo general, un determinado DBMS utiliza el mismo modelo de datos tanto para el nivel externo como para el conceptual (por ejemplo, el 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.

Investigación

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

El área de investigación de bases de datos cuenta con 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).

Véase también

Notas

  1. ^ Este artículo cita un tiempo de desarrollo de cinco años en el que participaron 750 personas solo para la versión 9 de DB2. [27]

Referencias

  1. ^ Ullman y Widom 1997, pág. 1.
  2. ^ "Actualizar definición y significado". Merriam-Webster . Archivado desde el original el 25 de febrero de 2024.
  3. ^ "Definición y significado de recuperación". Merriam-Webster . Archivado desde el original el 27 de junio de 2023.
  4. ^ "Definición y significado de administración". Merriam-Webster . Archivado desde el original el 6 de diciembre de 2023.
  5. ^ Tsitchizris y Lochovsky 1982.
  6. ^ Beynon-Davies 2003.
  7. ^ Nelson y Nelson 2001.
  8. ^ Bachman 1973.
  9. ^ "Índice de la base de datos superior TOPDB". pypl.github.io .
  10. ^ "base de datos, n". OED Online . Oxford University Press. Junio ​​de 2013 . Consultado el 12 de julio de 2013 . (Se requiere suscripción.)
  11. ^ IBM Corporation (octubre de 2013). "IBM Information Management System (IMS) 13 Transaction and Database Servers ofrece un alto rendimiento y un bajo coste total de propiedad" . Consultado el 20 de febrero de 2014 .
  12. ^ Codd 1970.
  13. ^ Hershey y Easthope 1972.
  14. ^ Norte 2010.
  15. ^ Niños 1968a.
  16. ^ Niños 1968b.
  17. ^ MA Kahn; DL Rumelhart; BL Bronson (octubre de 1977). Manual de referencia del sistema de gestión de información MICRO (versión 5.0). Instituto de Relaciones Laborales e Industriales (ILIR), Universidad de Michigan y Universidad Estatal de Wayne.
  18. ^ "Cronología del 30.º aniversario de Oracle" (PDF) . Archivado (PDF) del original el 20 de marzo de 2011 . Consultado el 23 de agosto de 2017 .
  19. ^ Entrevista con Wayne Ratliff. La historia de FoxPro. Consultado el 12 de julio de 2013.
  20. ^ Desarrollo de un DBMS orientado a objetos; Portland, Oregon, Estados Unidos; Páginas: 472–482; 1986; ISBN 0-89791-204-7 
  21. ^ Graves, Steve. "Bases de datos COTS para sistemas integrados" Archivado el 14 de noviembre de 2007 en Wayback Machine , revista Embedded Computing Design , enero de 2007. Recuperado el 13 de agosto de 2008.
  22. ^ Argumentación en Inteligencia Artificial por Iyad Rahwan, Guillermo R. Simari
  23. ^ "OWL DL Semantics" . Consultado el 10 de diciembre de 2010 .
  24. ^ Connolly y Begg 2014, pág. 64.
  25. ^ Connolly y Begg 2014, págs. 97–102.
  26. ^ Connolly y Begg 2014, pág. 102.
  27. ^ Chong y otros. 2007.
  28. ^ Connolly y Begg 2014, págs. 106-113.
  29. ^ Connolly y Begg 2014, pág. 65.
  30. ^ Capítulo 2005.
  31. ^ "Lenguaje de consulta estructurado (SQL)". International Business Machines. 27 de octubre de 2006. Consultado el 10 de junio de 2007 .
  32. ^ Wagner 2010.
  33. ^ Ramalho, JC; Faria, L.; Helder, S.; Coutada, M. (31 de diciembre de 2013). "Kit de herramientas de preservación de bases de datos: una herramienta flexible para normalizar y dar acceso a bases de datos". Biblioteca Nacional de Portugal (BNP) . Universidad de Miño.
  34. ^ Paiho, Satu; Tuominen, Pekka; Rökman, Jyri; Ylikerälä, Markus; Pajula, Juha; Siikavirta, Hanne (2022). "Oportunidades de los datos urbanos recopilados para ciudades inteligentes". Ciudades inteligentes IET . 4 (4): 275–291. doi : 10.1049/smc2.12044 . ISSN  2631-7680. S2CID  253467923.
  35. ^ David Y. Chan; Victoria Chiu; Miklos A. Vasarhelyi (2018). Auditoría continua: teoría y aplicación (1.ª ed.). Bingley, Reino Unido: Emerald Publishing. ISBN 978-1-78743-413-4.OCLC 1029759767  .
  36. ^ Halder y Cortesi 2011.
  37. ^ Ben Linders (28 de enero de 2016). "Cómo encaja la administración de bases de datos en DevOps" . Consultado el 15 de abril de 2017 .
  38. ^ itl.nist.gov (1993) Definición de integración para modelado de información (IDEFIX) Archivado el 3 de diciembre de 2013 en Wayback Machine . 21 de diciembre de 1993.
  39. ^ ab Fecha 2003, págs. 31–32.

Fuentes

  • Bachman, Charles W. (1973). "El programador como navegador". Comunicaciones de la ACM . 16 (11): 653–658. doi : 10.1145/355611.362534 .
  • Beynon-Davies, Paul (2003). Sistemas de bases de datos (3.ª ed.). Palgrave Macmillan. ISBN 978-1403916013.
  • Chapple, Mike (2005). "Fundamentos de SQL". Bases de datos . About.com. Archivado desde el original el 22 de febrero de 2009 . Consultado el 28 de enero de 2009 .
  • Childs, David L. (1968a). Descripción de una estructura de datos de teoría de conjuntos (PDF) (Informe técnico). Proyecto CONCOMP (Investigación en el uso conversacional de computadoras). Universidad de Michigan. Informe técnico 3.
  • Childs, David L. (1968b). Viabilidad de una estructura de datos de teoría de conjuntos: una estructura general basada en una definición reconstituida (PDF) (Informe técnico). Proyecto CONCOMP (Investigación en el uso conversacional de computadoras). Universidad de Michigan. Informe técnico 6.
  • Chong, Raul F.; Wang, Xiaomei; Dang, Michael; Snow, Dwaine R. (2007). "Introducción a DB2". Entender DB2: aprender visualmente con ejemplos (2.ª ed.). IBM Press Pearson plc. ISBN 978-0131580183. Recuperado el 17 de marzo de 2013 .
  • Codd, Edgar F. (1970). "Un modelo relacional de datos para grandes bancos de datos compartidos" (PDF) . Comunicaciones de la ACM . 13 (6): 377–387. doi :10.1145/362384.362685. S2CID  207549016.
  • Connolly, Thomas M.; Begg, Carolyn E. (2014). Sistemas de bases de datos: un enfoque práctico para el diseño, la implementación y la gestión (6.ª ed.). Pearson. ISBN 978-1292061184.
  • Date, CJ (2003). Introducción a los sistemas de bases de datos (8.ª ed.). Pearson. ISBN 978-0321197849.
  • Halder, Raju; Cortesi, Agostino (2011). "Interpretación abstracta de lenguajes de consulta de bases de datos" (PDF) . Lenguajes informáticos, sistemas y estructuras . 38 (2): 123–157. doi :10.1016/j.cl.2011.10.004. ISSN  1477-8424.
  • Hershey, William; Easthope, Carol (1972). Una estructura de datos teórica de conjuntos y un lenguaje de recuperación. Conferencia de informática conjunta de primavera, mayo de 1972. Foro ACM SIGIR . Vol. 7, núm. 4. págs. 45–55. doi :10.1145/1095495.1095500.
  • Nelson, Anne Fulcher; Nelson, William Harris Morehead (2001). Creación de comercio electrónico: con construcciones de bases de datos web . Prentice Hall. ISBN 978-0201741308.
  • North, Ken (10 de marzo de 2010). «Conjuntos, modelos de datos e independencia de datos». Dr. Dobb's . Archivado desde el original el 24 de octubre de 2012.
  • Tsitchizris, Dionysios C.; Lochovsky, Fred H. (1982). Modelos de datos. Prentice–Hall. ISBN 978-0131964280.
  • Ullman, Jeffrey; Widom, Jennifer (1997). Un primer curso sobre sistemas de bases de datos. Prentice–Hall. ISBN 978-0138613372.
  • Wagner, Michael (2010), SQL/XML:2006 – Evaluierung der Standardkonformität ausgewählter Datenbanksysteme , Diplomica Verlag, ISBN 978-3836696098

Lectura adicional

  • Ling Liu y Tamer M. Özsu (Eds.) (2009). "Enciclopedia de sistemas de bases de datos", 4100 pág. 60 ilustraciones. ISBN 978-0-387-49616-0 . 
  • Gray, J. y Reuter, A. Procesamiento de transacciones: conceptos y técnicas , 1.ª edición, Morgan Kaufmann Publishers, 1992.
  • Kroenke, David M. y David J. Auer. Conceptos de bases de datos. 3.ª ed. Nueva York: Prentice, 2007.
  • Raghu Ramakrishnan y Johannes Gehrke , Sistemas de gestión de bases de datos .
  • Abraham Silberschatz , Henry F. Korth , S. Sudarshan, Conceptos del sistema de bases de datos .
  • Lightstone, S.; Teorey, T.; Nadeau, T. (2007). Diseño físico de bases de datos: guía del profesional de bases de datos para explotar índices, vistas, almacenamiento y más . Morgan Kaufmann Press. ISBN 978-0-12-369389-1.
  • Teorey, T.; Lightstone, S. y Nadeau, T. Modelado y diseño de bases de datos: diseño lógico , 4.ª edición, Morgan Kaufmann Press, 2005. ISBN 0-12-685352-5 . 
  • Lista de reproducción de cursos de la base de datos de CMU
  • MIT OCW 6.830 | Otoño 2010 | Sistemas de bases de datos
  • Escuela secundaria Berkeley W186
  • Extensión de archivo DB: información sobre los archivos con la extensión DB
Retrieved from "https://en.wikipedia.org/w/index.php?title=Database&oldid=1248210088"