Sistema de Gestión de Bases de Datos
Este elemento es una expansión del contenido de los cursos y guías de Lawi. Ofrece hechos, comentarios y análisis sobre este tema. [aioseo_breadcrumbs]
Visualización Jerárquica de Sistema de gestión de bases de datos
Educación y Comunicación > Informática y tratamiento de datos > Industria informática > Software
Sistema de gestión de bases de datos
Gestión de la base de datos
Un buen RDBMS incluye todas las funciones necesarias para implementar un esquema, importar datos al sistema y realizar consultas.
Puntualización
Sin embargo, estas facilidades representan sólo una parte del conjunto de funciones y capacidades necesarias para crear un sistema de producción.
La prudencia sugeriría que sólo unos pocos usuarios privilegiados tuvieran la capacidad de crear y destruir bases de datos, y que un conjunto más amplio (pero no ilimitado) de usuarios pudiera añadir datos a las bases de datos existentes. También puede haber datos administrativos almacenados en la base de datos que no estén destinados a los usuarios ordinarios del sistema. Todos los principales SGBDR ofrecen facilidades -que van desde simples archivos de permisos hasta elaborados sistemas de seguridad- para limitar el acceso de los usuarios al sistema. La mayoría simplemente utiliza una base de datos separada (integrada en el propio RDBMS) que permite o deniega la capacidad de ejecutar comandos específicos (a menudo utilizando las palabras clave GRANT y REVOKE de SQL). Dado que los RDBMS suelen ejecutarse como procesos de red (para permitir las conexiones remotas), también debería existir algún mecanismo para limitar las conexiones a determinados dominios de red. A diferencia de las aplicaciones de usuario sencillas (que suelen venir con un conjunto razonable de valores predeterminados de seguridad), las aplicaciones multiusuario avanzadas suelen suponer que el administrador se tomará el tiempo de estudiar el modelo de seguridad con detenimiento e implementar los procedimientos adecuados. La suposición de que los usuarios harán esto es quizás ingenua, pero la suposición de que los desarrolladores ya han hecho todo lo posible para que la instalación particular sea segura puede ser realmente imprudente.
La gestión de las transacciones representa otro conjunto de preocupaciones relacionadas. Supongamos que hemos creado un gran archivo lleno de sentencias INSERT para la carga inicial de nuestros datos, pero hemos omitido el punto y coma al final de una de las sentencias. Con toda probabilidad, el RDBMS (que interpreta cada sentencia INSERT como una operación SQL discreta) ejecutaría el primer número n de sentencias, insertando los datos de cada una de ellas, sólo para interrumpirlas en la mitad de la lista. Tal vez podríamos borrar los datos ya insertados, corregir el error en el archivo y volver a cargar todo el archivo, o tal vez podríamos borrar las sentencias INSERT del archivo que ya hemos ejecutado y empezar de nuevo.
Puntualización
Sin embargo, nos iría mejor si tuviéramos alguna forma de declarar todas las sentencias INSERT del archivo como un bloque “todo o nada”; la base de datos tiene que realizar todas estas operaciones con éxito o, de lo contrario, debe salir con una advertencia, sin haber realizado ninguna de ellas. La mayoría de los sistemas proporcionan algún método para declarar un conjunto de sentencias como un bloque de transacción de este tipo.Entre las Líneas En PostgreSQL, por ejemplo, las palabras clave son BEGIN (para señalar el inicio de una transacción), COMMIT (para ejecutar las sentencias en caso de que las operaciones propuestas no generen errores) y ROLLBACK (para deshacer un conjunto de operaciones).7
Aunque el modelo relacional se presta a mecanismos eficientes de almacenamiento y recuperación, el gran número de inserciones, eliminaciones y actualizaciones en un sistema de base de datos de producción suele provocar una cierta fragmentación de los datos (del mismo modo que un disco duro puede fragmentarse tras muchas operaciones frecuentes de lectura y escritura). Se ha investigado mucho para encontrar nuevas formas de desfragmentar y optimizar de otro modo el almacenamiento y la recuperación en sistemas de bases de datos relacionales muy utilizados. Mientras que algunas de estas operaciones ocurren entre bastidores, otras están diseñadas para ser personalizadas por el administrador para las circunstancias locales. Estas optimizaciones se vuelven cada vez más pertinentes a medida que una base de datos (o una base de usuarios) crece en tamaño, y los administradores querrán hacer uso de estas facilidades cuando sea apropiado.
Bases de datos y desarrollo de software
Los administradores de bases de datos (especialmente los que trabajan en un entorno Unix) a menudo encontrarán que la humilde interfaz de línea de comandos representa la forma más eficiente de crear el esquema de la base de datos, cargar grandes archivos llenos de sentencias SQL, comprobar la validez de las consultas y realizar las diversas tareas asociadas con las cuentas de usuario y la seguridad.
Puntualización
Sin embargo, muchas aplicaciones de bases de datos en la informática de las humanidades están destinadas a ser utilizadas fuera del grupo de académicos y desarrolladores que implementan el sistema.Entre las Líneas En estos casos, el acceso de bajo nivel al RDBMS rara vez es deseable. De hecho, a menudo es útil diseñar un sistema que proteja a los usuarios de SQL por completo.
La construcción de sistemas de middleware destinados a proporcionar dicha abstracción es una de las tareas de desarrollo de software más comunes en la informática de las humanidades. Tanto en el caso de las aplicaciones independientes como en el de las basadas en la web, el objetivo habitual es situar la ejecución de consultas y comandos SQL “entre” la interfaz de usuario y el RDBMS subyacente. Este diseño (a menudo llamado diseño de n niveles) tiene la virtud adicional de permitir que la interfaz, la base de datos y la lógica de programación intermedia varíen independientemente unas de otras; en un sistema bien diseñado, un cambio en la interfaz de usuario (por ejemplo) implicaría idealmente sólo cambios menores en los otros niveles. Afortunadamente, casi todos los lenguajes de programación de uso común entre los humanistas informáticos proporcionan mecanismos elaborados para ejecutar comandos SQL contra una base de datos desde una aplicación.
El módulo DBI (o DataBase independent) es una extensión del lenguaje de programación Perl que proporciona un conjunto de funciones y variables para comunicarse con un RDBMS.
Observación
Además de permitir pasar sentencias SQL a una base de datos, recuperar resultados y reestructurar los datos para su entrega (a, por ejemplo, un navegador web), DBI también proporciona una arquitectura de plug-in extremadamente potente que permite utilizar el mismo programa con varias implementaciones de bases de datos. Así, por ejemplo, un programa que utilice la interfaz DBI podría recuperar valores de un formulario web, incrustar esos valores en una serie de sentencias SQL y pasarlos al RDBMS.
Puntualización
Sin embargo, en lugar de ir directamente al RDBMS, el sistema DBI buscaría un controlador (o módulo DBD) correspondiente al RDBMS concreto que se esté utilizando, y traduciría efectivamente la sintaxis SQL de DBI al dialecto de la base de datos concreta.
Una Conclusión
Por lo tanto, cambiar de PostgreSQL a MySQL (o quizás ejecutar los dos simultáneamente) es simplemente una cuestión de añadir un nuevo controlador. DBI también está bastante maduro; hay módulos DBD correspondientes a casi todas las implementaciones de bases de datos importantes, y todos están disponibles de forma gratuita.
Los programadores de Java pueden encontrar el mismo concepto implementado en la biblioteca JDBC (o Java. DataBase Connectivity). JDBC es una de las implementaciones más completas de SQL, y también hay controladores disponibles para todos los principales RDBMS. Java también tiene la ventaja de evitar la sobrecarga de CGI (Common Gateway interface) de la que dependen Perl y otros lenguajes de scripting similares. CGI suele requerir que se cargue en memoria una copia separada del intérprete del lenguaje cada vez que se invoca el programa. La arquitectura de servlets de Java (pensada para crear aplicaciones del lado del servidor) evita esta sobrecarga al tener una copia de la máquina virtual de Java (JVM) que se ejecuta constantemente en memoria con varias facilidades de caché para los programas individuales que se ejecutan en ella9. Este método es generalmente superior al CGI y puede aprovechar la considerable potencia y flexibilidad del lenguaje de programación Java, pero se sacrifica la simplicidad del CGI en el proceso.
Otra tecnología que merece ser mencionada es PHP (PHP Hypertext Processor). PHP es un lenguaje de programación que puede incrustarse en páginas HTML ordinarias y ser interpretado por un programa incrustado en el propio servidor web (alineándose así con los servlets de Java al evitar el CGI). PHP no emplea el concepto de una interfaz única con múltiples controladores, sino que proporciona conjuntos de funciones incorporadas para todos los principales RDBMS. De las tres tecnologías de middleware aquí discutidas, PHP es quizás la más fácil de usar, pero desafortunadamente es la menos “intermedia” de las tres. Incrustar código en una página HTML implica mezclar la lógica de la interfaz de usuario con la lógica de programación – una convergencia que puede llevar a sistemas que son difíciles de mantener. A menudo, el tamaño (y la mutabilidad prevista) del sistema determinará si la simplicidad de PHP compensa el potencial de confusión posterior. PHP proporciona facilidades para trasladar la mayor parte de la lógica de programación a bibliotecas separadas en el servidor – una facilidad que puede al menos ayudar a minimizar el efecto de la incrustación de código en las páginas web.
Basado en la experiencia de varios autores, mis opiniones, perspectivas y recomendaciones se expresarán a continuación (o en otros lugares de esta plataforma, respecto a las características en 2026 o antes, y el futuro de esta cuestión):
Datos verificados por: Brooks
A continuación se examinará el significado.
¿Cómo se define? Concepto de Sistema de gestión de bases de datos
Véase la definición de Sistema de gestión de bases de datos en el diccionario.
Características de Sistema de gestión de bases de datos
[rtbs name=”educacion-y-comunicacion”]Sistema de gestión de bases de datos
Recursos
[rtbs name=”informes-jurídicos-y-sectoriales”][rtbs name=”quieres-escribir-tu-libro”]Traducción de Sistema de gestión de bases de datos
Inglés: Database management system
Francés: Système de gestion de base de données
Alemán: Datenbankverwaltungssystem
Italiano: Sistema di gestione di base dati
Portugués: Sistema de gestão de base de dados
Polaco: System zarządzania bazą danych
Tesauro de Sistema de gestión de bases de datos
Educación y Comunicación > Informática y tratamiento de datos > Industria informática > Software > Sistema de gestión de bases de datos
Véase También
- SGBD
- SGBD jerárquico
- SGBD relacional
Comunicación, control de accesos, control limitado, Datos, Derechos Morales, Privacidad, Información, Información y tratamiento de la información, Informática y tratamiento de datos, Privacidad de Datos Personales, Sistema de comunicación, Telecomunicación, Tratamiento de datos, Videotex
▷ Esperamos que haya sido de utilidad. Si conoces a alguien que pueda estar interesado en este tema, por favor comparte con él/ella este contenido. Es la mejor forma de ayudar al Proyecto Lawi.