<< Chapter < Page | Chapter >> Page > |
Si quisiésemos hacer una consulta sobre la tabla anterior, no haría falta hacer un programa que tratase con la esturctura de un fichero, sino que utilizaríamos un lenguaje de bases de datos. Concretamente, el lenguaje SQL es un lenguaje estandarizado para bases de datos relacionales. Una consulta SQL que obtiene los clientes de una localidad sería la siguiente:
select apellidos, nombre from clientes where localidad = 'Madrid'
El anterior es un ejemplo de cómo los modelos de bases de datos, los lenguajes estandarizados y el software que los implementa permite facilitar el desarrollo de aplicaciones. Por un lado, SQL es un lenguaje ampliamente utilizado y conocido, y es fácil encontrar documentación sobre él. Por otro lado, los detalles de cómo se almacenan los datos quedan ocultos tras los lenguajes, permitiendo al programador centrarse en otras tareas, y delegando la gestión de los datos y las consultas al software que soporta esos modelos y lenguajes.
Como contraste con el modelo relacional, es interesante conocer modelos orientados a objetos. Aunque las bases de datos orientadas a objetos no han tenido una implantación tan extendida como las relacionales, si han llegado a contar con estándares. Por ejemplo, el estándar ODMG 3.0 permite definir los datos mediante los propios lenguajes de programación. Así, si utilizamos Java, bastaría con definir una clase como la siguiente:
class Cliente{
String apellidos;
String nombre;
Direccion dir;
String cp;
Localidad loc;
java.util.Date fechaNac;
public String getApellidos(){
//...
}
// otros métodos...
}
Donde
Direccion
y
Localidad
serían otras clases Java definiendo objetos que representan direcciones, y podemos ver que se utiliza la clase
Date
definida en las bibliotecas de Java. La ventaja de este modelo de bases de datos es que es muy cercano a la representación de los datos que se utiliza en los lenguajes orientados a objetos (de hecho, las definiciones de los datos son las mismas clases que se utilizan en la programación, como la clase
Cliente
), y permite aplicar el diseño orientado a objetos en la medida que queramos.
Para consultar estas bases de datos uno de los lenguajes posibles es el object query languaje (OQL), similar al SQL.
La normalización de la estructura y los lenguajes de acceso permite construir software especializado que se encargue de tratar con los datos en un formato estandarizado. A ese software especializado se le denomina Sistema Gestor de Bases de Datos (SGBD). Los SGDB además incluyen muchas funciones como la seguridad y el control de acceso, adicionales a la mera estandarización de las estructuras y los lenguajes de consulta y actualización.
Hay muchas aplicaciones software que cumplen (en mayor o menor medida) con el modelo de bases de datos relacional, desde aplicaciones de ofimática como Base en OpenOffice hasta software complejos con muchas funciones, como el gestor de bases de datos MySQL. Habitualmente, un SGBD se ajusta a un modelo de base de datos, así se dice que es un “gestor relaciona” o un “gestor orientado a objetos”, etc., aunque actualmente hay SGBD que combinan aspectos de varios modelos.
El concepto de Sistema Gestor de Bases de Datos (SGBD) se define en el Glosario IEEE de Ingeniería del Software de la siguiente forma.
Sistema Gestor de Bases de Datos (SGBD). Un sistema informático compuesto por hardware, softwar e o ambos, que proporciona una técnica sistemática para la creación, el almacenamiento, el procesamiento y la consulta de la información almacenada en base de datos. Un SGBD actúa como un intermediario entre las aplicaciones y los datos, o bien entre los datos y la base de datos. […]
Es decir, un SGDB es un software (normalmente el mismo software de SGBD puede instalarse en configuraciones hardware muy variadas) que proporciona funcionalidad añadida al sistema de ficheros para facilitar la gestión de datos. Las Figuras 1 y 2 muestran esta diferencia. En la Figura 1, se tiene una aplicación que directxamente funciona sobre la interfaz de ficheros del sistema operativo, que a su vez gestiona los medios físicos de almacenamiento (discos duros, discos ópticos, etc.).
La Figura 1 representa la gestión de los datos mediante ficheros como el mencionado clientes.txt más arriba.
En la Figura 2 se muestra como el SGBD proporciona funciones adicionales, de modo que las aplicaciones no trabajan directamente con los ficheros y directorios, sino que utilizan funciones de los gestores de bases de datos.
Los ficheros son unidades de almacenamiento básicas de los Sistemas Operativos. Un fichero a ese nivel de abstracción es una secuencia de bytes con un nombre. Las aplicaciones abren y usan los ficheros y la asignación del espacio (contigua, enlazada, con índices) en los medios físicos es transparente al usuario.
El uso de un SGBD proporciona una serie de ventajas que han de valorarse a la hora de seleccionar su uso, que vienen a resolver los problemas que presenta el simple uso de ficheros. Los SGBD han evolucionado hasta convertirse en piezas de software complejas que requieren habilidades de configuración y administración específicas.
Notification Switch
Would you like to follow the 'Fundamentos de bases de datos' conversation and receive update notifications?