jueves, 11 de julio de 2019

Sistemas gestores de Bases de Datos en la Empresa




El uso de sistemas gestores de bases de datos facilita enormemente encontrar y utilizar la información necesaria en cada momento. Si pensamos en la la gran cantidad de datos que se manejan en el día a día de una empresa (información sobre empleados, cifras de ventas, archivos de clientes y proveedores, etc.), las ventajas de usar una buena base de datos resultan evidentes. Estas son solo algunas de ellas:

·         Agrupar todos los datos en un solo lugar, con el consiguiente incremento de productividad al reducir el tiempo de búsqueda de información.
·         Posibilidad de modificar los datos en tiempo real, por ejemplo, para reflejar los últimos cambios en el inventario.
·         Eliminar las redundancias e inconsistencias de los datos, lo que reduce la posibilidad de errores.
·         Estructurar y organizar los datos adaptándose a las necesidades de cada empresa.

Ejemplos de sistemas gestores de bases de datos

Oracle Database:
 Sistema de gestión de base de datos objeto-relacional desarrollado por Oracle Corporation. Se le considera uno de los sistemas de bases de datos más completo y hasta fechas recientes contaba con un gran dominio del mercado.

Microsoft SQL Server
 Sistema de manejo de bases de datos del modelo relacional desarrollado por Microsoft. Solo está disponible para el sistema operativo Windows.

PostgreSQL
Sistema de gestión de base de datos orientado a objetos. Es de código abierto y se publica bajo licencia BSD. Su desarrollo corre a cargo de una comunidad de desarrolladores denominada PGDG (PostgreSQL Global Development Group)

MySQL
Sistema de gestión de bases de datos relacional, multihilo y multiusuario con más de 6 millones de descargas. Está desarrollado como software libre con licenciamiento dual, ya que las empresas que deseen usarlo en productos privativos deben adquirir una licencia específica.


Sistemas gestores de bases de datos mas usados


Oracle Database

Amazon RDS le permite implementar varias ediciones de Oracle Database en cuestión de minutos con una capacidad de hardware rentable y redimensionable. Puede utilizar licencias existentes de Oracle o pagar por cada hora de uso de licencia. RDS le permite centrarse en el desarrollo de la aplicación, ya que se ocupa de las tareas de administración de bases de datos complejas, como el aprovisionamiento, las backups, los parches, la monitorización y el escalado del hardware.


Microsoft SQL Server


 Amazon RDS for SQL Server facilita la configuración, la utilización y el escalado de SQL Server en la nube. Puede implementar varias ediciones de SQL Server incluyendo Express, Web, Standard y Enterprise. Como Amazon RDS for SQL Server proporciona acceso directo a las capacidades nativas de SQL Server, sus aplicaciones y herramientas deberían funcionar sin cambios.


PostgreSQL

PostgreSQL es un potente sistema de base de datos relacional orientado a objetos de código abierto y clase empresarial que hace hincapié en la extensibilidad y la conformidad con los estándares. PostgreSQL presenta numerosas características sofisticadas y ejecuta procedimientos almacenados en más de una docena de lenguajes de programación incluido Java, Perl, Python, Ruby, Tcl, C/C++ y su propio PL/pgSQL, que es similar al PL/SQL de Oracle.


MySQL
MySQL es un sistema de administración de bases de datos relacionales de código abierto (RDBMS) utilizado por un gran número de aplicaciones web. Amazon RDS for MySQL permite obtener acceso a todas las funciones de un motor de base de datos MySQL familiar. Esto supone que el código, las aplicaciones y las herramientas que ya utiliza con sus bases de datos existentes se pueden utilizar con Amazon RDS sin cambios.




Funciones





Entre las funciones más importantes que podemos llevar a cabo haciendo uso del SGBD tenemos:
  • Definir, modificar y eliminar la estructura lógica de la Base de Datos.
  •  Incluir nueva información a la Base de Datos.
  • Actualizar (Modificar y eliminar) la información almacenada en la Base Datos.
  • Mantener la Integridad y Consistencia de todos los datos almacenados.
  • Asegurar la privacidad de los datos a través de Claves de Acceso (Contraseña o Password).
  • Garantizar la seguridad de los datos a través de técnicas de respaldo y recuperación.
  •  Evitar el acceso simultáneo (Concurrencia)al momento de actualizar un mismo registro de un Archivo. A = A


Tipos de Archivos
Dentro de las Bases de Datos los archivos son diferenciados de acuerdo a su:

USO:Son aquellos donde se almacenan los registros que contendrá la Base de Datos. Se clasifican en: Histórico, Maestro y de Movimiento.

ACCESO:Son los usados para localizar los registros almacenados en los archivos de acuerdo a su uso.Se clasifican en: Secuencial, Directo e Indexado

Tipos de Archivos de acuerdo a su Uso
Histórico: Son copias almacenadas en medios externos (CDs, Cintas, etc.) de los datos usados hace tiempo atrás y que pueden ser requeridos en cualquier momento.

Maestro: Almacenan toda la información requerida para que la empresa pueda ejecutar sus actividades diarias. Deben mantenerse actualizados y guardar la información de manera exacta, para que sean de utilidad. Son los que permiten actualizar los archivos llamados de Movimiento.


Movimiento: Registran los datos de todos los hechos en la medida que suceden, por lo que siempre están en constante actualización. Requieren de los archivos Maestros para que esta actualización pueda ejecutarse. También se llaman archivos de Transacciones.

Tipos de Archivos de acuerdo a su Acceso
Secuencial:Es la manera más sencilla para guardar y consultar los registros dentro de un archivo, ya que los mismos se almacenan uno después de otro. Son muy lentos en la búsqueda de los registros, puesto que la misma se inicia desde el primer registro del archivo. En nuestros días ninguna Base de Datos los usa.

Directo:Son archivos con una Clave que asocia un registro con un valor clave dado y una ubicación de almacenamiento en particular. Se limita su uso por el gran desperdicio de espacio en la ubicación, ya que antes se debe haber definido un rango de valores cerrado y ascendente. En la actualidad tampoco son utilizados.

Indexado:Son los más empleados en la actualidad. Los registros se incluyen en la Base Datos. sin un orden específico y su búsqueda se hace a través de un índice , lo que incrementa la velocidad de acceso y reduce el tiempo .Pero, ¿Qué es un índice? Es un archivo separado del archivo de acuerdo a su uso al cual pertenece y que contiene una clave de registro y la dirección de almacenamiento para éste. Para localizar un determinado registro el índice primero se rastrea para encontrar la clave del registro que se desea. Cuando es encontrado, se anota la dirección de almacenamiento y luego la aplicación da acceso al registro encontrado.


OBJETIVOS DE UN SGBD

  • Definir la Base de Datos mediante el Lenguaje de Definición de Datos, el cual  permite especificar la estructura, tipo de datos y las restricciones sobre los datos, almacenándolo todo en la base de datos.
  • Separar la descripción y manipulación de la data, permitiendo un mayor entendimiento de los objetos, además de flexibilidad de consulta y actualización delos datos.
  •  Permitir la inserción, eliminación, actualización, consulta de los datos mediante el Lenguaje de Manejo de Datos, lo que permite resolver el problema que presentan los sistemas de archivos, donde hay que trabajar con un conjunto fijo de consultas o la necesidad de tener muchos programas de aplicaciones.

 Existen dos tipos de programas de Manejo de Datos, los cuales se diferencian por la forma en que acceden a los datos.
  1. Lenguajes procedurales: manipulan la base de datos registro a registro y se deben especificar las operaciones a realizar para obtener los datos resultado.
  2. Lenguajes no procedurales: manipulan la base de datos en conjuntos de registros y se especifican qué datos deben obtenerse como resultado sin plantearlas forma de hacerlo. El lenguaje no procedural más utilizado es SQL (StructureQuery Languaje) que se ha convertido en un estándar y el lenguaje por defecto delos SGBD relacionales. Proporcionar acceso controlado a la base de datos.

  • Seguridad: los usuarios no autorizados no pueden acceder a la base de datos.
  •  Integridad: mantiene la integridad y consistencia de la base de datos.
  • Control de Recurrencia: permite el acceso compartido a la base de datos .
  • Control de Recuperación: restablece la base de datos después de producirse un fallo de software o hardware.
  • contiene la descripción de los datos de la base de datos y es accesible por el usuario. Gestionar la estructura física de los datos y su almacenamiento, proporcionando eficiencia en las operaciones de la base de datos y el acceso al medio de almacenamiento.
  • Proporcionar un mecanismo de vistas, que permita a cada usuario tener su propia vista o visión de la base de datos. El lenguaje de definición nos permite
    definir las vistas como subconjuntos de la base de datos, permitiendo:
  • Proporcionar un nivel de seguridad excluyendo datos para que no sean vistos por determinados usuarios.
  • Permiten que los usuarios vean los datos en el formato deseado.
  • Una vista representa una imagen consistente y permanente de la base de datos, aún cuando a la base de datos se le hagan cambios en sus estructuras.
  • Eliminar la redundancia de datos, establecer una mínima duplicidad en los datos y minimizar el espacio en disco utilizado.
  • Proveer interfaces procedimentales y no procedimentales, permitiendo la manipulación por usuarios interactivos y programadores.
  • Independizar la estructura de la organización lógica de los datos (Independencia física).





Componentes de un Sistema de Gestión de Base de Datos



Los SGBD son paquetes de software muy complejos y sofisticados. No se puede generalizar sobre los elementos que componen un SGBD ya que varían mucho unos de otros. Sin embargo, es muy útil conocer sus componentes y cómo se relacionan cuando se trata de comprender lo que es un sistema de bases de datos.

Un SGBD tiene varios módulos, cada uno de los cuales realiza una función específica. El sistema operativo proporciona servicios básicos al SGBD, que es construido sobre él.

  • El procesador de consultas es el componente principal de un SGBD. Transforma las consultas en un conjunto de instrucciones de bajo nivel que se dirigen al gestor de la base de datos.
  • El gestor de la base de datos es el interfase con los programas de aplicación y las consultas de los usuarios. El gestor de la base de datos acepta consultas y examina los esquemas externo y conceptual para determinar qué registros se requieren para satisfacer la petición. Entonces el gestor de la base de datos realiza una llamada al gestor de ficheros para ejecutar la petición.
  • El gestor de ficheros maneja los ficheros en disco en donde se almacena la base de datos. Este gestor establece y mantiene la lista de estructuras e índices definidos en el esquema interno. Si se utilizan ficheros dispersos, llama a la función de dispersión para generar la dirección de los registros. Pero el gestor de ficheros no realiza directamente la entrada y salida de datos. Lo que hace es pasar la petición a los métodos de acceso del sistema operativo que se encargan de leer o escribir los datos en el buffer del sistema.
  • El preprocesador del LMD convierte las sentencias del LMD embebidas en los programas de aplicación, en llamadas a funciones estándar escritas en el lenguaje anfitrión. El preprocesador del LMD debe trabajar con el procesador de consultas para generar el código apropiado.
  • El compilador del LDD convierte las sentencias del LDD en un conjunto de tablas que contienen metadatos. Estas tablas se almacenan en el diccionario de datos.
  • El gestor del diccionario controla los accesos al diccionario de datos y se encarga de mantenerlo. La mayoría de los componentes del SGBD acceden al diccionario de datos.


PRINCIPALES COMPONENTES DEL GESTOR DE BASES DE DATOS

  • Control de autorización. Este módulo comprueba que el usuario tiene los permisos necesarios para llevar a cabo la operación que solicita.

  • Procesador de comandos. Una vez que el sistema ha comprobado los permisos del usuario, se pasa el control al procesador de comandos.
  • Control de la integridad. Cuando una operación cambia los datos de la base de datos, este módulo debe comprobar que la operación a realizar satisface todas las restricciones de integridad necesarias.
  • Optimizador de consultas. Este módulo determina la estrategia óptima para la ejecución de las consultas.
  • Gestor de transacciones. Este módulo realiza el procesamiento de las transacciones.
  • Gestor de recuperación. Este módulo garantiza que la base de datos permanece en un estado consistente en caso de que se produzca algún fallo.

  • Gestor de buffers. Este módulo es el responsable de transferir los datos entre memoria principal y los dispositivos de almacenamiento secundario. A este módulo también se le denomina gestor de datos.





Concepto y Características




Resultado de imagen para sistemas gestores de bases de datos sgbd

Un Sistema Gestor de Bases de Datos (SGBD) o DBMA (DataBase Management System) es una colección de programas cuyo objetivo es servir de interfaz entre la base de datos, el usuario y las aplicaciones. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta. Un SGBD permiten definir los datos a distintos niveles de abstracción y manipular dichos datos, garantizando la seguridad e integridad de los mismos.

Algunos ejemplos de SGBD son: Oracle, DB2, PostgreSQL, MySQL, MS SQL Server, etc.

Un SGBD debe permitir:
• Definir una base de datos: especificar tipos, estructuras y restricciones de datos.
• Construir la base de datos: guardar los datos en algún medio controlado por el mismo SGBD
• Manipular la base de datos: realizar consultas, actualizarla, generar informes.

Las características de un Sistema Gestor de Base de Datos SGBD son:
• Abstracción de la información. Los SGBD
ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción.
• Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella.

• Redundancia mínima. Un buen diseño de una base de datos logrará evitar la aparición de información repetida o redundante. De entrada, lo ideal es lograr una redundancia nula; no obstante, en algunos casos la complejidad de los cálculos hace necesaria la aparición de redundancias.

• Consistencia. En aquellos casos en los que no se ha logrado esta redundancia nula, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea.

• Seguridad. La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura frente a usuarios malintencionados, que intenten leer información privilegiada; frente a ataques que deseen manipular o destruir la información; o simplemente ante las torpezas de algún usuario autorizado pero despistado. Normalmente, los SGBD disponen de un complejo sistema de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.

• Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada.

• Respaldo y recuperación. Los SGBD deben proporcionar una forma eficiente de realizar copias de respaldo de la información almacenada en ellos, y de restaurar a partir de estas copias los datos que se hayan podido perder.

• Control de la concurrencia. En la mayoría de entornos (excepto quizás el doméstico), lo más habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar información, bien para almacenarla. Y es también frecuente que dichos accesos se realicen de forma simultánea. Así pues, un SGBD debe controlar este acceso concurrente a la información, que podría derivar en inconsistencias.