1. FUNDAMENTO BASE DE DATOS
INGENIERIA CIVIL
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER OCAÑA
BASE DE DATOS
Una base de datos o banco de datos (en inglés: database) es un conjunto de
datos pertenecientes a un mismo contexto y almacenados sistemáticamente
para su posterior uso. En este sentido, una biblioteca puede considerarse una
base de datos compuesta en su mayoría por documentos y textos impresos en
papel e indexados para su 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 (electrónico), que ofrece un amplio
rango de soluciones al problema de almacenar datos.
Existen unos programas denominados sistemas gestores de bases de datos,
abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos
de forma rápida y estructurada.
Las aplicaciones más usuales son para la gestión de empresas e instituciones
públicas. También son ampliamente utilizadas en entornos científicos con el
objeto de almacenar la información experimental.
Tipos de Bases de Datos
Bases de datos estáticas
Éstas son bases de datos de sólo lectura, utilizadas primordialmente para
almacenar datos históricos que posteriormente se pueden utilizar para
estudiar el comportamiento de un conjunto de datos a través del tiempo,
realizar proyecciones y tomar decisiones.
Bases de datos dinámicas
Éstas son bases de datos donde la información almacenada se modifica con el
tiempo, permitiendo operaciones como actualización y adición de datos, además
de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la
2. base de datos utilizada en un sistema de información de una tienda de
abarrotes, una farmacia, un videoclub, etc.
Según el contenido
Bases de datos bibliográficas
Solo contienen un surrogante (representante) de la fuente primaria, que
permite localizarla. Un registro típico de una base de datos bibliográfica
contiene información sobre el autor, fecha de publicación, editorial, título,
edición, de una determinada publicación, etc. Puede contener un resumen o
extracto de la publicación original, pero nunca el texto completo, porque sino
estaríamos en presencia de una base de datos a texto completo (o de fuentes
primarias). Como su nombre lo indica, el contenido son cifras o números. Por
ejemplo, una colección de resultados de análisis de laboratorio, entre otras.
Bases de datos de texto completo
Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas
las ediciones de una colección de revistas científicas.
Directorios
Un ejemplo son las guías telefónicas en formato electrónico.
Bases de datos o "bibliotecas" de información Biológica
Son bases de datos que almacenan diferentes tipos de información proveniente
de las ciencias de la vida o médicas. Se pueden considerar en varios subtipos:
• Aquellas que almacenan secuencias de nucleótidos o proteínas.
• Las bases de datos de rutas metabólicas
• Bases de datos de estructura, comprende los registros de datos
experimentales sobre estructuras 3D de biomoléculas
• Bases de datos clínicas
• Bases de datos bibliográficas (biológicas)
3. Modelos de bases de datos
Además de la clasificación por la función de las bases de datos, éstas también
se pueden clasificar de acuerdo a su modelo de administración 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: son abstracciones que permiten la
implementación de un sistema eficiente de base de datos; por lo general se
refieren a algoritmos, y conceptos matemáticos.
Algunos modelos con frecuencia utilizados en las bases de datos:
Bases de datos jerárquicas
Éstas son bases de datos que, como su nombre indica, almacenan su
información en una estructura jerárquica. En este modelo los datos se
organizan en una forma similar a un árbol (visto al revés), en donde un nodo
padre de información puede tener varios hijos. El nodo que no tiene padres es
llamado raíz, y a los nodos que no tienen hijos se los conoce como hojas.
Las bases de datos jerárquicas son especialmente útiles en el caso de
aplicaciones que manejan un gran volumen de información y datos muy
compartidos permitiendo crear estructuras estables y de gran rendimiento.
Una de las principales limitaciones de este modelo es su incapacidad de
representar eficientemente la redundancia de datos.
Base de datos de red
Éste es un modelo ligeramente distinto del jerárquico; su diferencia
fundamental es la modificación del concepto de nodo: se permite que un mismo
nodo tenga varios padres (posibilidad no permitida en el modelo jerárquico).
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 significa administrar la información en una base de datos de red
4. ha significado que sea un modelo utilizado en su mayoría por programadores
más que por usuarios finales.
Base de datos relacional
Éste es el modelo más utilizado en la actualidad para modelar problemas reales
y administrar datos dinámicamente. Tras ser postulados sus fundamentos en
1970 por Edgar Frank Codd, de los laboratorios IBM en San José (California),
no tardó en consolidarse como un nuevo paradigma en los modelos de base de
datos. Su idea fundamental es el uso de "relaciones". Estas relaciones podrían
considerarse en forma lógica como conjuntos de datos llamados "tuplas". Pese a
que ésta es la teoría de las bases de datos relacionales creadas por Edgar
Frank Codd, la mayoría de las veces se conceptualiza de una manera más fácil
de imaginar. Esto es pensando en cada relación como si fuese una tabla que
está compuesta por registros (las filas de una tabla), que representarían las
tuplas, y campos (las columnas de una tabla).
En este modelo, el lugar y la forma en que se almacenen los datos no tienen
relevancia (a diferencia de otros modelos como el jerárquico y el de red). 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
recuperada o almacenada mediante "consultas" que ofrecen una amplia
flexibilidad y poder para administrar la información.
El lenguaje más habitual para construir las consultas a bases de datos
relacionales es SQL, Structured Query Language o Lenguaje Estructurado de
Consultas, un estándar implementado por los principales motores o sistemas de
gestión de bases de datos relacionales.
Durante su diseño, una base de datos relacional pasa por un proceso al que se le
conoce como normalización de una base de datos.
Durante los años '80 (1980-1989) la aparición de dBASE produjo una
revolución en los lenguajes de programación y sistemas de administración de
datos. Aunque nunca debe olvidarse que dBase no utilizaba SQL como lenguaje
base para su gestión.
5. Bases de datos multidimensionales
Son bases de datos ideadas para desarrollar aplicaciones muy concretas, como
creación de Cubos OLAP. Básicamente no se diferencian demasiado de las
bases de datos relacionales (una tabla en una base de datos multidimensional
podría serlo también en una base de datos multidimensional), la diferencia está
más bien a nivel conceptual; en las bases de datos multidimensionales los
campos o atributos de una tabla pueden ser de dos tipos, o bien representan
dimensiones de la tabla, o bien representan métricas que se desean estudiar.
Bases de datos orientadas a objetos
Este modelo, bastante reciente, y propio de los modelos informáticos
orientados a objetos, trata de almacenar en la base de datos los objetos
completos (estado y comportamiento).
Una base de datos orientada a objetos es una base de datos que 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.
Bases de datos documentales
Permiten la indexación a texto completo, y en líneas generales realizar
búsquedas más potentes.
Base de datos deductivas
Un sistema de base de datos deductivas, es un sistema de base de datos pero
con la diferencia de que 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 las bases de datos deductivas son llamadas base de datos
lógica, a raíz de que se basan en lógica matemática.
6. Gestión de bases de datos distribuida
La base de datos está almacenada en varias computadoras conectadas en red.
Surgen debido a la existencia 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 tiendas, etc.
Características de la base de datos
Permite que sólo se puedan ver, los registros de la base de datos, cuando el
usuario haya introducido un determinado número de registros en ella.
Permite configurar los derechos de edición. Puede agregar entradas
profesores y alumnos, si lo permite en la base de datos. Esto no restringe la
visualización de sus entradas para todos.
Se puede limitar el número máximo de entradas de cada participante.
Podemos permitir añadir comentarios a las entradas de la base de datos.
Podemos habilitar la revisión del profesor antes de que las entradas sean
públicas.
Características y objetivos
Bases de datos
Todos los conceptos referentes a las bases de datos están hoy muy claros y
definidos formalmente, al contrario que los de las bases de conocimiento. La
tecnología de gestión de bases de datos se halla en una etapa muy madura. Las
bases de datos han evolucionado durante los pasados 30 años desde sistemas
de archivos rudimentarios hasta sistemas gestores de complejas estructuras
de datos que ofrecen un gran número de posibilidades. Los principales
objetivos de un SGBD son los siguientes:
1. Independencia lógica y física de los datos: se refiere a la capacidad de
modificar una definición de esquema en un nivel de la arquitectura sin
que esta modificación afecte al nivel inmediatamente superior. Para ello
7. un registro externo en un esquema externo no tiene por qué ser igual a
su registro correspondiente en el esquema conceptual.
2. Redundancia mínima: se trata de usar la base de datos como repositorio
común de datos para distintas aplicaciones.
3. Acceso concurrente por parte de múltiples usuarios: control de
concurrencia mediante técnicas de bloqueo o cerrado de datos
accedidos.
4. Distribución espacial de los datos: la independencia lógica y física
facilita la posibilidad de sistemas de bases de datos distribuidas. Los
datos pueden encontrarse en otra habitación, otro edificio e incluso otro
país. El usuario no tiene por qué preocuparse de la localización espacial
de los datos a los que accede.
5. Integridad de los datos: se refiere a las medidas de seguridad que
impiden que se introduzcan datos erróneos. Esto puede suceder tanto
por motivos físicos (defectos de hardware, actualización incompleta
debido a causas externas), como de operación (introducción de datos
incoherentes).
6. Consultas complejas optimizadas: la optimización de consultas permite la
rápida ejecución de las mismas.
7. Seguridad de acceso y auditoría: se refiere al derecho de acceso a los
datos contenidos en la base de datos por parte de personas y
organismos. El sistema de auditoría mantiene el control de acceso a la
base de datos, con el objeto de saber qué o quién realizó una
determinada modificación y en qué momento.
8. Respaldo y recuperación: se refiere a la capacidad de un sistema de base
de datos de recuperar su estado en un momento previo a la pérdida de
datos.
9. Acceso a través de lenguajes de programación estándar : se refiere a la
posibilidad ya mencionada de acceder a los datos de una base de datos
mediante lenguajes de programación ajenos al sistema de base de datos
propiamente dicho.
Una base de datos típica conlleva la existencia de tres tipos de usuario con
relación a su diseño, desarrollo y uso:
1. El administrador de bases de datos (DBA: Database Administrator):
diseña y mantiene la DB.
2. El desarrollador de aplicaciones (programador): implementa las
transacciones e interfaces.
8. 3. Los usuarios finales: consultan y editan los datos de la DB mediante un
lenguaje de consulta de alto nivel.
En general, podemos decir que el propósito de una base de datos es doble:
a. responder a consultas sobre los datos que contiene, y
b. ejecutar transacciones
COMPONENTES DE UN SISTEMA DE BASE DE DATOS
Un sistema de base de datos está compuesto por:
Base de datos:
Datos del usuario. En la actualidad, casi todas las bases de datos representan
los datos del usuario como afinidades que son tablas de datos. No todas las
afinidades son igualmente deseables; algunas están mejor estructuradas que
otras. Para crear afinidades bien estructuradas se realiza un proceso llamado
normalización.
Metadatos. Debido a que los productos DBMS están diseñados para almacenar
y manipular tablas, la mayor parte de ellos almacenan los metadatos en forma
de tablas, algunas veces llamadas tablas del sistema.
Índices. Están encaminados a mejorar el funcionamiento y la accesibilidad de la
base de datos. Se usan para ordenar y para obtener un acceso rápido a los
datos. Los índices son muy valiosos pero implican un costo. Cada vez que se
actualiza una fila en una afinidad o tabla, también deben actualizarse los
índices. Esto no es malo; sólo significa que los índices no son gratuitos y que
deben reservarse para casos en los que sean de verdad necesarios.
Metadatos de aplicación. Se usan para almacenar la estructura en formato de
formas, reportes, consultas de usuarios, y otros componentes de aplicación.
Normalmente no se accede de forma directa a los metadatos de aplicación sino
que se hace a través de herramientas proporcionadas por el DBMS para tal fin.
Sistema administrador de base de datos:
9. Herramientas de diseño. El subsistema de herramientas de diseño tiene una
serie de elementos que facilitan el diseño y la creación de la base de datos y
sus aplicaciones. Por lo general, incluye recursos para crear tablas, formas,
consultas y reportes. Los productos DBMS también proporcionan lenguajes de
programación e interfaces para estos.
Utilerías de tiempo de ejecución. El subsistema de tiempo de ejecución
procesa los componentes de aplicación que se desarrollan usando las
herramientas de diseño. Otras utilerías de tiempo de ejecución responden a
consultas e imprimen reportes. Adicionalmente hay un componente de tiempo
de ejecución que procesa las solicitudes del programa de aplicación para leer y
escribir datos de la base de datos.
Motor del sistema administrador de base de datos. Es el intermediario entre
las herramientas de diseño y las utilerías del subsistema de tiempo de
ejecución, y los datos mismos.
Aplicaciones de bases de datos:
Formas. Se emplean para introducir información a la base de datos. En algunas
ocasiones los identificadores (ID) de los objetos no son desplegados en la
aplicación. La razón es que en el modelo del usuario no existen y por lo tanto
carecen de significado para él. Se utilizan para que el DBMS identifique cada
fila de cada tabla y se denominan claves sustitutas.
Consultas. Se usan cuando los usuarios desean consultar los datos para
contestar preguntas o para identificar problemas o situaciones particulares.
Para expresar las consultas se puede usar el lenguaje SQL de acceso a los
datos, otra posibilidad es usar la consulta por ejemplo (QBE). En la mayoría de
los DBMS las consultas se pueden guardar como parte de la aplicación, de modo
que sea posible volverlas a ejecutar. Además en las consultas se pueden
especificar parámetros, lo que significa que se estructuran de forma tal que
acepten valores de criterios durante su funcionamiento.
Reportes. Un reporte es una presentación que tiene un formato de la
información de una base de datos. Suelen estar divididos por secciones como
Encabezado, títulos, grupos, detalles, subtotales, totales y pié de página. La
presentación de la información casi siempre tiene uno o más ordenamientos.
10. Menús. Se usan para organizar los distintos componentes de la aplicación con el
propósito de que el usuario final acceda a ellos con facilidad, mostrándole las
opciones disponibles y ayudándole a seleccionar las acciones que desea realizar.
Programas de aplicación. Los programas de aplicación vienen a ser como el
pegamento que nos permite unir el resto de los componentes de manera
coherente y permite realizar procesos y cálculos a la aplicación.
Adicionalmente suele haber algunas limitaciones que los DBMS no pueden
enforzar directamente en la estructura de los datos y que deben ser
codificadas en el programa de aplicación.
ARQUITECTURA DE LAS BASES DE DATOS
La arquitectura de sistemas de bases de datos de tres esquemas fue aprobado
por la ANSI-SPARC (American National Standard Institute - Standards
Planning and Requirements Committee) en 1975 como ayuda para conseguir la
separación entre los programas de aplicación y los datos, el manejo de
múltiples vistas por parte de los usuarios y el uso de un catálogo para
almacenar el esquema de la base de datos.
• Nivel interno: Tiene un esquema interno que describe la estructura física
de almacenamiento de base de datos. Emplea un modelo físico de datos y los
únicos datos que existen están realmente en este nivel.
• Nivel conceptual: tiene esquema conceptual. Describe la estructura de toda
la base de datos para una comunidad de usuarios. Oculta los detalles físicos
de almacenamiento y trabaja con elementos lógicos como entidades,
atributos y relaciones.
• Nivel externo o de vistas: tiene varios esquemas externos o vistas de
usuario. Cada esquema describe la visión que tiene de la base de datos a un
grupo de usuarios, ocultando el resto.
El objetivo de la arquitectura de tres niveles es el de separar los programas
de aplicación de la base de datos física.
La mayoría de los SGBD no distinguen del todo los tres niveles. Algunos
incluyen detalles del nivel físico en el esquema conceptual. En casi todos los
SGBD que se manejan vistas de usuario, los esquemas externos se especifican
con el mismo modelo de datos que describe la información a nivel conceptual,
aunque en algunos se pueden utilizar diferentes modelos de datos en los niveles
conceptual y externo.
11. Hay que destacar que los tres esquemas no son más que descripciones de los
mismos datos pero con distintos niveles de abstracción. Los únicos datos que
existen realmente están a nivel físico, almacenados en un dispositivo como
puede ser un disco. En un SGBD basado en la arquitectura de tres niveles, cada
grupo de usuarios hace referencia exclusivamente a su propio esquema
externo. Por lo tanto, el SGBD debe transformar cualquier petición expresada
en términos de un esquema externo a una petición expresada en términos del
esquema conceptual, y luego, a una petición en el esquema interno, que se
procesará sobre la base de datos almacenada. Si la petición es de una
obtención (consulta) de datos, será preciso modificar el formato de la
información extraída de la base de datos almacenada, para que coincida con la
vista externa del usuario. El proceso de transformar peticiones y resultados
de un nivel a otro se denomina correspondencia o transformación. Estas
correspondencias pueden requerir bastante tiempo, por lo que algunos SGBD no
cuentan con vistas externas.
La arquitectura de tres niveles es útil para explicar el concepto de
independencia de datos que podemos definir como la capacidad para modificar
el esquema en un nivel del sistema sin tener que modificar el esquema del nivel
inmediato superior.
Se pueden definir dos tipos de independencia de datos:
• La independencia lógica es la capacidad de modificar el esquema conceptual
sin tener que alterar los esquemas externos ni los programas de aplicación.
Se puede modificar el esquema conceptual para ampliar la base de datos o
para reducirla. Si, por ejemplo, se reduce la base de datos eliminando una
entidad, los esquemas externos que no se refieran a ella no deberán verse
afectados.
• La independencia física es la capacidad de modificar el esquema interno sin
tener que alterar el esquema conceptual (o los externos). Por ejemplo, puede
ser necesario reorganizar ciertos ficheros físicos con el fin de mejorar el
rendimiento de las operaciones de consulta o de actualización de datos.
Dado que la independencia física se refiere sólo a la separación entre las
aplicaciones y las estructuras físicas de almacenamiento, es más fácil de
conseguir que la independencia lógica.
En los SGBD que tienen la arquitectura de varios niveles es necesario ampliar
el catálogo o diccionario, de modo que incluya información sobre cómo
establecer la correspondencia entre las peticiones de los usuarios y los datos,
12. entre los diversos niveles. El SGBD utiliza una serie de procedimientos
adicionales para realizar estas correspondencias haciendo referencia a la
información de correspondencia que se encuentra en el catálogo. La
independencia de datos se consigue porque al modificarse el esquema en algún
nivel, el esquema del nivel inmediato superior permanece sin cambios, sólo se
modifica la correspondencia entre los dos niveles. No es preciso modificar los
programas de aplicación que hacen referencia al esquema del nivel superior.
Por lo tanto, la arquitectura de tres niveles puede facilitar la obtención de la
verdadera independencia de datos, tanto física como lógica. Sin embargo, los
dos niveles de correspondencia implican un gasto extra durante la ejecución de
una consulta o de un programa, lo cual reduce la eficiencia del SGBD. Es por
esto que muy pocos SGBD han implementado esta arquitectura completa.