Un servidor de base de datos es un servidor que utiliza una aplicación de base de datos que proporciona servicios de base de datos a otros programas informáticos o a ordenadores , según lo define el modelo cliente-servidor . [ cita requerida ] [1] [2] Los sistemas de gestión de bases de datos (DBMS) proporcionan con frecuencia funcionalidad de servidor de base de datos, y algunos sistemas de gestión de bases de datos (como MySQL ) se basan exclusivamente en el modelo cliente-servidor para el acceso a la base de datos (mientras que otros, como SQLite , están pensados para su uso como base de datos integrada ).
Los usuarios acceden a un servidor de base de datos ya sea a través de un " front end " que se ejecuta en la computadora del usuario, que muestra los datos solicitados, o a través del " back end ", que se ejecuta en el servidor y maneja tareas como el análisis y el almacenamiento de datos.
En un modelo maestro-esclavo , los servidores maestros de base de datos son ubicaciones centrales y principales de datos, mientras que los servidores esclavos de base de datos son copias de seguridad sincronizadas del maestro que actúan como servidores proxy .
La mayoría de las aplicaciones de bases de datos responden a un lenguaje de consulta . Cada base de datos comprende su lenguaje de consulta y convierte cada consulta enviada a un formato legible por el servidor y la ejecuta para recuperar los resultados.
Entre los ejemplos de aplicaciones de bases de datos propietarias se incluyen Oracle , IBM Db2 , Informix y Microsoft SQL Server . Entre los ejemplos de aplicaciones de bases de datos de software libre se incluyen PostgreSQL ; y entre los que se encuentran Ingres y MySQL , que están bajo la Licencia Pública General de GNU . Cada servidor utiliza su propia lógica y estructura de consultas. El lenguaje de consultas SQL (lenguaje de consultas estructurado) es más o menos el mismo en todas las aplicaciones de bases de datos relacionales .
Para aclarar, un servidor de base de datos es simplemente un servidor que mantiene servicios relacionados con los clientes a través de aplicaciones de base de datos.
DB-Engines incluye más de 300 DBMS en su clasificación. [3]
Las bases para modelar grandes conjuntos de datos fueron introducidas por primera vez por Charles Bachman en 1969. [4] Bachman introdujo los Diagramas de Estructura de Datos (DSD) como un medio para representar gráficamente los datos. Los DSD proporcionaban un medio para representar las relaciones entre diferentes entidades de datos. En 1970, Codd introdujo el concepto de que los usuarios de una base de datos deberían ignorar el "funcionamiento interno" de la base de datos. [4] Codd propuso la "visión relacional" de los datos que luego evolucionó hasta convertirse en el Modelo Relacional que la mayoría de las bases de datos utilizan hoy en día. En 1971, el Grupo de Informe de Tareas de Base de Datos de CODASYL (la fuerza impulsora detrás del desarrollo del lenguaje de programación COBOL ) propuso por primera vez un "lenguaje de descripción de datos para describir una base de datos, un lenguaje de descripción de datos para describir esa parte de la base de datos conocida por un programa y un lenguaje de manipulación de datos". [4] La mayor parte de la investigación y el desarrollo de bases de datos se centró en el modelo relacional durante la década de 1970.
En 1975, Bachman demostró que el modelo relacional y el conjunto de estructuras de datos eran formas similares y "congruentes" de estructurar datos mientras trabajaba para Honeywell . [4] El modelo entidad-relación fue propuesto por primera vez en su forma actual por Peter Chen en 1976 mientras realizaba una investigación en el MIT . [5] Este modelo se convirtió en el modelo más utilizado para describir bases de datos relacionales. Chen pudo proponer un modelo que era superior al modelo de navegación y era más aplicable al "mundo real" que el modelo relacional propuesto por Codd. [4]