Sistemas xestores de bases de datos
Introdución
As base de datos (BBDD en adiante) úsanse para satisfacer os requirimentos de información dunha organización. Unha BBDD é un conxunto de datos organizados dalgunha forma entre si para que poidan almacenarse e consultarse eficientemente. Estes datos almacénanse unha soa vez, con independencia dos tratamentos que se faga sobre eles e dos procesos que os utilicen.
Exemplos típicos de bases de datos poden ser o catálogo de CD dunha tenda, unha simple axenda telefónica ou unha complexa BBDD dunha gran empresa.
É importante distinguir entre o concepto de dato e o de información. Se, por exemplo, temos almacenado un dato que indica que un alumno sacou un 5 no exame final dunha materia, e temos outro dato que di que ese exame se puntuaba sobre 10, podemos inferir que ese alumno aprobou. É dicir, a partir dos datos, obtemos información.
INTERÉSACHE
A partir da información as empresas e organizacións toman as súas decisións. Na actualidade existen diferentes técnicas que permiten explotar as BBDD neste sentido, como a minería de datos (Data mining) e os almacéns de datos (Data Warehouse).
A partir da información as empresas e organizacións toman as súas decisións. Na actualidade existen diferentes técnicas que permiten explotar as BBDD neste sentido, como a minería de datos (Data mining) e os almacéns de datos (Data Warehouse).
BBDD relacionais
Existen diferentes formas de tratar os datos. Por exemplo, as BBDD xerárquicas forman estruturas arborescentes; as BBDD en rede forman unha estrutura de malla; pero son as BBDD relacionais as que adquiriron maior popularidade e, de feito, son as que máis se utilizan. Os diferentes modelos de BBDD definen a organización e interrelación dos datos de distinta forma (é o que se chama o modelo de datos da BBDD).
A idea fundamental do modelo de datos das BBDD relacionais recae no uso de relacións entre táboas que conteñen datos. Unha táboa é o sistema que permite almacenar datos dunha determinada entidade. Cada táboa pode conter varios atributos relacionados coa entidade que describen. Chamamos rexistro a cada fila de datos que contén a táboa.
Vexamos un exemplo para aclarar este conceptos. Imaxinemos que queremos crear unha base de datos para a xestión das películas presentes nun videoclub. Ocórrensenos tres entidades: Películas, Actores e Directores. Poderíanse crear as táboas seguintes (xa veremos máis adiante como se relacionan entre si):
- Táboa Películas. Onde se almacenan os datos relacionados coa entidade Película. Os atributos típicos desta entidade poderían ser o Título, Ano, Duración, Director, Xénero, etc.
- Táboa Actores. Onde se almacenan os datos relacionados cos actores: Nome, Apelidos, Salario, etc.
- Táboa Directores. Onde se almacenan os datos relacionados coa entidade Directores que poderían ser o Nome, Apelidos, Lugar de nacemento, etc.
Para cada atributo da táboa débese configurar o tipo de datos que conterá. Por exemplo, para o atributo Duración, o correcto sería usar un tipo de dato numérico e para o campo Nome, un de tipo cadea de caracteres. O conxunto de valores que pode tomar un tipo de dato coñécese como dominio.
Cada táboa pode conter unha clave primaria. O valor dunha clave primaria non se pode repetir entre as filas dunha táboa. Isto quere dicir que a clave primaria identifica unívocamente a unha instancia dunha entidade concreta. Por exemplo, se a entidade é Actor, unha instancia podería ser Bradd Pitt.
No modelo relacional a orde en que se almacenan os datos carece de importancia (a diferenza doutros modelos de bases de datos), xa que esta información se presentará ao usuario a través de consultas que permiten ordenar os datos da maneira máis conveniente.
Os SXBD
Por tanto, podemos ver unha BBDD como unha colección de datos almacenados en soporte secundario (non volátil). Estes datos serán utilizados por distintos usuarios e aplicacións. O sistema que permite o acceso á BBDD e a súa administración chámase Sistema Xestor de Base de Datos (SXBD) ou DBMS en inglés.
Os SXBD xorden na década dos 70, como un intento de mellorar os sistemas de ficheiros empregados ata esa data. Algunhas solucións que aportan os SXBD fronte aos antigos sistemas de ficheiros son:
- Independencia entre programas e datos, é dicir, a aplicación non determina como teñen que estar estruturados os datos e viceversa.
- Acceso compartido, controlando a interacción entre usuarios concorrentes.
- Eliminación de datos redundantes.
- Xestión de permisos de usuarios.
- Control da integridade dos datos, xa que os valores dos datos deben satisfacer determinados tipos de restricións (por exemplo, que a idade dunha persoa non sexa un número negativo), etc.
A seguinte figura amosa un sistema de información dunha empresa inmobiliaria resolto mediante ficheiros. Vemo, por exemplo, que o ficheiro Inmoble está replicado en cada departamento. Isto produce redundancia dos datos e potenciais inconsistencias.
A continuación vemos o mesmo problema resolto mediante unha BBDD relacional onde podemos observar como os datos se comparten entre os distintos departamentos evitando os problemas comentados máis arriba de redundancia, inconsistencia, etc. Por tanto, os datos nunha BBDD poden ser compartidos polos procesos e tamén polos distintos usuarios que fan uso deles.
Usuarios dos SGBD
Existen distintos perfís de usuario á hora de traballar cun SXBD:
- O administrador. Realiza, entre outras, a implementación da BBDD, tarefas de mantemento e xestión da seguridade.
- Os deseñadores. Levan a cabo o deseño lóxico da base de datos, é dicir, que táboas deben existir, como se relacionan entre si, etc. En realidade non son usuarios directos do SXBD, xa que un deseño lóxico normalmente é implementado por un administrador.
- Os programadores. Implementan os programas que darán servizo aos usuarios finais. Estas aplicacións, poden ser xenéricas ou específicas para a consulta, creación, modificación e eliminación de datos da BBDD.
- Os usuarios finais. Son os clientes da base de datos e non teñen ningún coñecemento técnico.
Unha persoa pode ter máis dun rol dos anteriores, ou incluso todos, dependendo, normalmente, do tamaño da organización.
Niveis de abstracción
Do punto anterior podemos deducir que un SXBD ten que proporcionar diferentes funcionalidades, algunhas delas internas, outras relacionadas co uso externo e outras dirixidas exclusivamente a usuarios finais. Isto obedece á propia estrutura dos SXBD que está organizada en varios niveis. Estes niveis foron definidos no ano 1975 polo comité ANSI-SPARC (American National Standard Institute - Standards Planning and Requirements Committee), que propuxo unha arquitectura en tres capas para os SXBD. O seu obxectivo era conseguir, entre outras cousas, independencia entre os datos e as aplicacións.
- Nivel interno. Nesta capa descríbense onde e como se almacenan os datos fisicamente, como se accede a eles, índices, lonxitude de campos, cifrado, etc. Os datos están representados tal e como se almacenan no computador. Este nivel represéntase mediante un único esquema interno para a BBDD.
- Nivel conceptual. Nesta capa descríbense cales son os datos reais que están almacenados na BBDD e que relacións existen entre eles. Unha estrutura sinxela do nivel conceptual pode ter que representarse de maneira complexa no nivel físico, pero para o usuario do nivel conceptual isto é transparente. Neste nivel non se ten en conta nin a organización física, nin os métodos de aceso. Represéntase mediante un único esquema conceptual.
- Nivel externo. É o nivel máis preto aos usuarios. Representa a visión individual dun usuario ou un grupo de usuarios da BBDD. Estas visións particulares dos usuarios proporciónannolas as aplicacións, que só manexan una parte da información da BBDD. Poden existir (e é o habitual) varios esquemas externos (máis dunha vista).
Dicionario de datos
A definición e descrición do conxunto de datos contidos na BBDD están integrados cos mesmos datos. É dicir, a BBDD, como veremos, contén metadatos que non son outra cousa que datos sobre os propios datos. Por exemplo, cal é a clave primaria dunha táboa, se un atributo é numérico ou de tipo carácter, como se chaman as táboas, etc. Estes metadatos conforman o dicionario de datos e forma parte do SXBD.
Linguaxes dos SXBD
A linguaxe máis habitual para traballar cunha BBDD relacional é o SQL (Structured Query Language ou Linguaxe Estruturada de Consultas), un estándar implementado polos principais motores ou sistemas de xestión de bases de datos relacionais, aínda que para os usuarios máis inexpertos existen outros métodos que non requiren a aprendizaxe desta linguaxe.
O SQL podemos usalo como Linguaxe de Manipulación de Datos (LMD ou DML en inglés) ou como Linguaxe de Definición de Datos (LDD ou DDL en inglés):
- Linguaxe de Manipulación de Datos. Utilízase para introducir datos na BBDD, así como para facer consultas ou actualizacións. Normalmente, é o que empregan os usuarios finais da BBDD.
- Linguaxe de Definición de Datos. Úsase para crear o esquema da BBDD, pero non os datos que contén. Normalmente, é o que empregan os administradores e deseñadores da BBDD.
Arquitectura cliente/servidor
Nunha arquitectura cliente/servidor con BBDD o servidor actúa como depósito dos datos e permite levar a cabo as funcións do SXBD. Os clientes son estacións de traballo ou PC que están conectados a través dunha LAN.
Podemos ampliar a arquitectura anterior cun servidor de aplicacións. Este contén normalmente un servidor Web que serve as aplicacións aos clientes. A gran vantaxe deste enfoque é que calquera pode acceder ao servidor de aplicacións dende un navegador Web e utilizar o SXBD a través del, o que simplifica enormemente as tarefas de administración e mantemento nos clientes.