Bases de Datos: Conceptos, Arquitecturas y Ventajas
Concepto de Base de Datos
Introducción
El concepto intuitivo de una base de datos (BD) se refiere a un fondo común de información almacenada en una computadora para que cualquier persona o programa autorizado pueda acceder a ella, independientemente del lugar de procedencia y del uso que se le dé. En esencia, una BD es un conjunto de datos comunes a un proyecto, almacenados sin redundancia para ser útiles a diferentes aplicaciones.
Componentes de una Base de Datos
- Datos: Integrados sin redundancia, compartidos y útiles para diversas aplicaciones.
- Hardware: Puede ser una BD normal o una BD distribuida.
- Software: Programas para describir las estructuras y gestionar la información de la BD.
- Usuarios: Usuarios finales, programadores de aplicaciones y administradores.
Datos Operativos
Un dato operativo es una pieza de información que la empresa necesita para su funcionamiento. Se compone de:
- Ítem básico: Elemento sobre el cual se puede solicitar información.
- Atributos: Características de los ítems básicos.
- Relaciones: Conexiones lógicas entre ítems.
Todos estos elementos generan el esquema lógico de la BD.
Independencia de los Datos
La independencia de los datos implica que estos se organizan independientemente de las aplicaciones que los vayan a usar y de los ficheros en los que vayan a almacenarse. Existen dos tipos de independencia:
- Independencia física: El almacenamiento físico de los datos debe ser independiente del diseño lógico de la BD a todos los niveles, permitiendo realizar cambios en la estructura física sin afectar las aplicaciones.
- Independencia lógica: Existen dos tipos de estructuras lógicas (esquema lógico general y vistas de usuario). Cada aplicación debe poder organizar los datos según sus propios esquemas y acceder solo a los datos que necesita.
Objetivos de un DBMS (Sistema de Gestión de Bases de Datos)
- Independencia de los datos
- Diseño y utilización orientada al usuario
- Centralización
- No redundancia
- Consistencia
- Fiabilidad
- Seguridad
Ventajas de Utilizar un DBMS
Para el usuario:
- El usuario final puede acceder a los datos.
- El programador elimina problemas de diseño lógico y físico, depuración de errores y mantenimiento en general.
- El administrador de la BD no sería necesario.
Para el sistema:
- Control centralizado (fiabilidad, consistencia, seguridad, etc.)
- Criterios de uniformidad
- Generación de nuevas aplicaciones
- Equilibrio entre requerimientos conflictivos
Niveles de Abstracción (Arquitectura ANSI/SPARC)
La arquitectura ANSI/SPARC define tres niveles de abstracción:
Nivel Interno
Constituye la representación de la BD más cercana a la estructura de almacenamiento físico. En este nivel se establece la forma en que se implementan las estructuras de datos que organizan los niveles superiores.
Nivel Conceptual
Supone una abstracción global de la BD que integra y aglutina todas las percepciones que los usuarios tienen de ella.
Nivel Externo
En este nivel se definen todas las percepciones particulares de la BD por parte de los usuarios. Cada usuario puede tener su propia visión de la BD.
Transformaciones
- Conceptual/Interna: Define cómo se organizan las entidades lógicas del nivel conceptual en términos de registros y campos almacenados en el nivel interno. La independencia física permite variar el nivel interno sin afectar el nivel conceptual.
- Externa/Conceptual: Describe un esquema externo en términos del esquema conceptual subyacente. La independencia lógica permite variar el nivel conceptual sin afectar el nivel externo.
- Externa/Externa: Algunos SGBD permiten describir esquemas externos en términos de otros esquemas externos. La independencia lógica permite variar el esquema externo subyacente sin afectar el esquema definido.
Sublenguaje DSL (Data Sublanguage)
- DDL (Data Definition Language): Subconjunto del DSL destinado a la definición de estructuras de datos y esquemas de la BD.
- DML (Data Manipulation Language): Subconjunto del DSL que permite introducir datos en los esquemas, modificarlos, eliminarlos y consultarlos. También permite consultar la estructura de los esquemas definidos en la BD.
- DCL (Data Control Language): Subconjunto del DSL que permite gestionar los requisitos de acceso a los datos y otras tareas administrativas sobre la BD.
Aunque ANSI/SPARC recomienda disponer de un DDL, un DML y un DCL para cada nivel de la arquitectura, en la práctica todos estos se presentan bajo una única implementación. La industria ha seguido un camino diferente, optando por lenguajes de datos estándares.
Lenguaje Anfitrión o de Aplicación
Se refiere al lenguaje utilizado para desarrollar aplicaciones en el sistema operativo que trabajen sobre la BD. Existen dos tipos:
- De propósito general: C/C++, Java, C#.
- Herramientas de desarrollo específicas: Developer de Oracle, Delphi de Borland. Proporcionan procesamiento avanzado de datos y gestión de la interfaz de usuario.
Acoplamiento
- Débilmente acoplados: Lenguajes de propósito general. El programador puede distinguir sentencias propias del lenguaje y sentencias dispuestas para acceder a la BD a través del DSL.
- Fuertemente acoplados: Lenguajes y herramientas de propósito específico. Se parte del DSL como elemento central y se le incorporan características para facilitar el desarrollo de aplicaciones.
Para el acoplamiento débil se utilizan APIs de acceso a BD o DSL inmerso en el código fuente del lenguaje anfitrión. Para el acoplamiento fuerte existen diversas propuestas, como PL/SQL de Oracle o la ejecución de Java sobre una máquina virtual implantada en el propio SGBD.
El Administrador de la Base de Datos (DBA)
Las funciones del DBA incluyen:
- Elaboración del esquema conceptual
- Decidir la estructura de almacenamiento en el nivel interno
- Conexión con usuarios
- Definir las restricciones de integridad
- Definir e implantar la política de seguridad
- Definir e implantar la estrategia de recuperación frente a fallos
- Optimización del rendimiento
- Monitorizar el SGBD
Arquitectura Centralizada
En la arquitectura centralizada, toda la carga de gestión y procesamiento de información recaía en servidores centrales (grandes computadores) a los que el usuario accedía mediante terminales. El SGBD y los programas de aplicación se ejecutaban en el ordenador principal. El usuario interactuaba con el computador principal mediante un terminal para ejecutar los programas de aplicación.
Problemas:
- Elevado coste de los ordenadores principales
- Aparición del PC
Solución:
- Desplazar la ejecución de los programas de usuario y la interacción hasta los PCs
- Reducción de costes en hardware
Arquitectura Cliente/Servidor
En la arquitectura cliente/servidor, el SGBD se ejecuta en un servidor que escucha las peticiones de los PCs conectados. El servicio del servidor sirve de enlace entre los PCs y el servidor. Del lado del cliente se encuentran los programas de aplicación y un servicio de enlace entre estos y el servidor.
Problemas:
- Coste de mantenimiento de los PCs (instalación, configuración y actualización)
Solución:
- Separar en las aplicaciones la parte que interactúa con el usuario de la parte de ejecución lógica del programa
Arquitectura en 3 Niveles de Procesamiento
Esta arquitectura se compone de tres niveles:
Nivel de Servidor de Datos
En este nivel, el SGBD permite organizar la información de la empresa como una BD global. Las peticiones de datos formuladas desde una sede se traducen de forma transparente a peticiones en las sedes donde se encuentran esos datos.
Nivel de Servidor de Aplicaciones
Los servidores de aplicaciones facilitan los programas de aplicación a clientes ligeros que disponen de entornos de ejecución de aplicaciones usando estándares (protocolos de red TCP/IP, navegador en HTTP, etc.).
Nivel de Cliente
Los clientes son PCs ligeros con configuraciones basadas en estándares abiertos. Se basan en el carácter portable con que se distribuyen las aplicaciones desde los servidores de aplicaciones. Esto reduce la dependencia del hardware y del sistema operativo para ejecutar las aplicaciones.
Problemas:
- Mayor complejidad en la configuración y administración de los servidores de aplicaciones
- Mayor complejidad en el desarrollo de las aplicaciones conforme a este modelo distribuido
Ventajas:
- Reducción significativa en cuanto al mantenimiento de los clientes
- Mayor facilidad y flexibilidad para el usuario