BASE DE DATOS
§ CONCEPTOS GENERALES
Una base de datos o banco de datos (abreviado con B.D. o b. d.), es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. Como ejemplo, una biblioteca puede considerarse como una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su posterior consulta. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital, que ofrece un grande rango de soluciones al problema de almacenar datos.
Existen programas denominados sistemas gestores de base de datos, que permiten almacenar y luego poder acceder a los datos de forma rápida y estructurada.
Las aplicaciones más usuales son para la gestión empresas e instituciones públicas. También son utilizadas ampliamente en entornos científicos con el objeto de almacenar la información experimental.
Modelo de Datos:
Un modelo de datos es básicamente una descripción de algo conocido como “contenedor de datos” (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas, sino son abstracciones que permiten implementar un sistema eficiente de base de datos; por lo general se refieren a algoritmos y conceptos matemáticos.
Algunos modelos utilizados con frecuencia:
Ø Bases de datos Jerárquicas: Estas almacenan su información en una estructura jerárquica. En este modelo los datos se organizan en forma de un árbol (visto al revés), en donde un nodo padre de información puede tener varios hijos. El nodo que no tiene padres se llama raíz y a los nodos que no tienen hijos se llaman hojas.
Son útiles para manejar un gran volumen de información y datos muy compartidos permitiendo crear estructuras estables y de gran rendimiento.
Uno de sus problemas, es la incapacidad de representar eficientemente la redundancia de datos.
Ø Base de datos de Red: Aquí un mismo nodo puede tener varios padres.
Fue una gran mejora con respecto al modelo jerárquico, ya que ofrecía una solución eficiente al problema de redundancia de datos; pero aun, así, la dificultad que resultaba administrar la información en una base de datos de red ha significado que sea un modelo utilizado por programadores más que por usuarios finales.
Ø Base de datos Transaccionales: Su fin es el envío y recepción de datos a grandes velocidades, son muy poco comunes y están dirigidas por lo general al entorno de análisis de calidad, datos de producción e industrial, es importante entender que su único fin es recolectar y recuperar los datos a la mayor velocidad posible, por lo tanto la redundancia y la duplicación de información no es un problema como con las demás bases de datos, por lo general para aprovecharlas al máximo permiten algún tipo de conectividad a base de datos relacionales. Un ejemplo habitual es el traspaso de dinero entre cuentas bancarias.
Normalmente se realiza mediante dos operaciones distintas, una en la que se decrece el saldo de la cuenta origen y otra en la que incrementamos el saldo de la cuenta destino. Para garantizar la atomicidad del sistema, las dos operaciones deben ser atómicas, es decir, el sistema debe garantizar que bajo cualquier circunstancia (incluso una caída del sistema), el resultado final es, bien se realiza las dos operaciones o no se realizan ninguna.
Ø Base de datos relacionales: Este es el modelo usado en la actualidad para modelar problemas reales y administrar datos dinámicamente. En este modelo, el lugar y la forma en que se almacenan los datos no tienen relevancia. Esto tiene la considerable ventaja de que es más fácil de entender y de utilizar para un usuario esporádico de la base de datos. La información puede ser almacenada o recuperada mediante “consultas” que ofrecen una gran flexibilidad y poder para poder administrar la información.
El Lenguaje más habitual para construir las consultas a base de datos relacionales es SQL (Structured Query Language), un estándar implementado por los principales motores o sistemas de gestión de base de datos relacionales.
Durante su diseño, una base de datos relacional pasa por un proceso llamado “normalización de una base de datos”.
Ø Base de datos multidimensionales: Ideadas para desarrollar aplicaciones muy concretas, como creación de Cubos OLAP.
Ø Base de datos orientadas a objetos: Este modelo bastante reciente, es propio de los modelos informáticos orientados a objetos, y tratan de almacenar los objetos completos en la base de datos (estado y comportamiento).
Incorpora todos los conceptos importantes del paradigma de objetos:
· Encapsulación: Propiedad que permite ocultar la información al resto de los objetos, impidiendo así accesos incorrectos o conflictos.
· Herencia: Propiedad a través de la cual los objetos heredan comportamiento dentro de una jerarquía de clases.
· Polimorfismo: Propiedad de una operación mediante la cual puede ser aplicada a distintos tipos de objetos.
En base de datos orientados a objetos, los usuarios pueden definir operaciones sobre los datos como parte de la definición de la base de datos.
Una operación se especifica en dos partes. La interfaz de una operación incluye el nombre de la operación y los tipos de datos de sus argumentos. La implementación de la operación se especifica separadamente y puede modificarse sin afectar la interfaz. Los programas de aplicación de los usuarios pueden operar sobre los datos invocando dichas operaciones a través de sus nombres y argumentos, sea cual sea la forma en que se hayan implementado. Esto podría denominarse independencia entre programas y operaciones.
Ø Base de datos documentales: Permiten la indexación a texto completo, y en líneas generales hacer búsquedas más potentes. Tesaurus es un sistema de índices optimizado para este tipo de base de datos.
Ø Base de datos deductivos: Permite hacer deducciones a través de inferencias. Se basa principalmente en reglas y hechos que son almacenados en la base de datos. También son llamados bases de datos lógicas, a raíz que se basa en lógica matemática. Surge debido a limitaciones de la base de datos relacional de responder a consultas recursivas y de deducir relaciones indirectas de los datos almacenados en la base de datos.
Ø Lenguaje: Utiliza un subconjunto del lenguaje Prolog llamado Datalog, el cual es declarativo y permite al ordenador hacer deducciones para contestar consultas basándose en los hechos y reglas almacenados.
Ø Ventajas:
- Uso de reglas lógicas para expresar las consultas.
- Permite responder consultas recursivas.
- Cuenta con negaciones estratificadas.
- Capacidad de obtener nueva información a través de la ya almacenada en la base de datos mediante inferencia.
- Uso de algoritmos de optimización de consultas.
- Soporta objetos y conjuntos complejos.
Ø Desventajas:
- Crea procedimientos eficaces de deducción para evitar caer en bucles infinitos.
- Encontrar criterios que decidan la utilización de una ley como regla de deducción.
- Replantear las convenciones habituales de la base de datos.
Ø Fases:
- Fases de interrogación: Se encarga de buscar en la base de datos informaciones deducibles implícitas. Las reglas de esta fase se denominan reglas de derivación.
- Fases de modificación: Se encarga de añadir a la base de datos nuevas informaciones deducibles. Las reglas de esta fase se denominan reglas de generación.
Ø Interpretación:
- Teoría de demostración: Consideramos las reglas y los hechos como axiomas.
Los hechos son axiomas bases que se consideran como verdaderos y no contienen variables. Las reglas son axiomas deductivos ya que se utilizan para deducir nuevos hechos.
- Teoría de Modelos: Una interpretación es llamada modelo cuando para un conjunto especifico de reglas, están se cumplen siempre para esa interpretación. Consiste en asignar a un predicado todas las combinaciones de valores y argumentos de un dominio de valores constantes dado. A continuación se debe verificar si ese predicado es verdadero o falso.
Ø Mecanismos:
- Ascendente: Donde se parte de los hechos y se obtiene nuevos aplicando reglas de inferencia.
- Descendente: Donde se parte del predicado y se intenta encontrar similitudes entre las variables que nos lleven a hechos correctos almacenados en la base de datos.
Ø Gestión de base de datos Distribuida:
La base de datos y el software SGBD pueden estar distribuidos en múltiples sitios conectados por una red.
- Distribuidos homogéneos: Utilizan el mismo SGBD en múltiples sitios.
- Distribuidos heterogéneos: Da lugar a los SGBD federados o sistemas multibases de datos en los que los SGBD participantes tienen cierto grado de autonomía local y tienen acceso a varias bases de datos autónomas preexistentes almacenados en los SGBD, muchos de estos emplean una arquitectura cliente - servidor.
Surgen debido a la existencia de física de organismos descentralizados. Esto les da la capacidad de unir las bases de datos de cada localidad y acceder así a distintas universidades, sucursales de tienda, etc.
DBMS:
Un sistema de administración de base de datos (DBMS - Database Management System), es un sistema basado en computador que maneja una base de datos, o una colección de base de datos o archivos. La persona que administra un DBMS es conocida como el DBA (Database Administrator).
Está compuesta por:
- DDL (Data Definition Language): Lenguaje de definición de datos.
- DML (Data Manipulation Language): Lenguaje de Manipulación de Datos.
- SQL (Structured Query Language) : Lenguaje Estructurado de Consultas.
Uso y funciones de un DBMS:
- Permiten a los usuarios acceder y manipular la base de datos proveyendo métodos para construir sistemas de procesamiento de datos para aplicaciones que requieran acceso a datos.
- Proveer a los administradores las herramientas que le permitan ejecutar tareas de mantenimiento y administración de datos.
Algunas de las funciones son:
- Definición de la base de datos: Aquí se verá, como, la información será almacenada y organizada.
- Creación de base de datos: Almacenamiento de datos en una base de datos definida.
- Recuperación de los datos: Consultas y reportes.
- Actualización de los datos: Cambiar los contenidos de las bases de datos.
- Programación de aplicaciones para el desarrollo de software.
- Control de la integridad de la base de datos.
- Monitoreo del comportamiento de la base de datos.