1-Ficheros Tradicionales
Los ficheros tradicionales, que son muy útiles para aplicaciones pequeñas y
concretas, comienzan a dar problemas cuando el sistema de información va
creciendo. En definitiva, como el sistema está orientado a los procesos, se
tiende, a medida que crece el sistema, a tener muchos archivos, además con
mucha redundancia. El problema de la redundancia es, además de desperdiciar
espacio, la posible inconsistencia de los datos.
Los problemas más importantes que lleva este sistema que ha ido creciendo
serían:
-Redundancia de los datos. Los mismos datos están en múltiples archivos, lo
que conlleva ocupar más lugar del necesario, y además una dificultad de
mantenimiento para que los datos sean consistentes.
-Dificultad para modificar la estructura de los ficheros. Ya se ha
comentado antes que se deberían modificar tanto el archivo (con la
actualización del fichero antiguo al nuevo) como los programas que lo utilizan.
-Problemas de seguridad. Cuando hay muchos usuarios que acceden a los
archivos hay que vigilar mucho que no se puedan hacer cambios no
autorizadas
2-Concepto de Base de Datos
Una Base de Datos es un un conjunto de datos Integrados en una unica
estructura global, con enlaces entre ellos(Ej. Lista universidad alumnos y
cursos “no todos tienen los mismos cursos”.
Es independiente de los programas que lo utilizan y no tienen redundancias
innecesarias(ej. Poner el nombre del alumno en cada uno de los cursos).
Un Sistema Gestor de Bases de Datos ( SGBD ; en inglés DataBase
Management System: DBMS) es un conjunto de programas (software) que
permite a los usuarios crear y mantener bases de datos. La Base de
Datos son nuestros datos (organizadas) y el SGBD serían productos como
ACCESS o ORACLE que nos permiten crear y mantener esta Base de Datos.
Base de Datos se organiza en dos grandes bloques, uno es el catálogo o
diccionario de datos , donde está la estructura y tipo de los datos. En el otro
están los propios datos.
Todas las peticiones de acceso a los datos no se hacen directamente,
sino que se piden al SGBD, que es quien se encarga de acceder a ellas.
El acceso se puede hacer por medio de procesos (programas, formularios, ...) o
bien de forma interactiva (por ejemplo con consultas SQL). Algunos autores
denominan al conjunto de la Base de Datos y el SGBD como Sistema de Base
de Datos.
2.2 Comparación con ficheros tradicionales
• Una Base de Datos es auto descriptiva, es decir la definición de la
estructura, tipo de datos, etc. forma parte de la propia BD (el
diccionario de datos). En los ficheros tradicionales la estructura de
estos tenía que ir en cada programa.
• Independencia de los datos de los programas. Es consecuencia de
la anterior. Así, en una BD, la modificación de la estructura (añadiendo
algún campo o modificando alguno) no afecta a los programas que
puedan acceder a ella. Ya habíamos visto que no era así en los ficheros
tradicionales.
• No hay redundancia, o muy poca. Quizás conveniente un poco de
redundancia para un mejor rendimiento, pero esta puede ser controlada
(para evitar inconsistencias, ...)
• Múltiples vistas de usuario. Podríamos pensar que al concentrarse en
una única BD todos los datos se pierde la visión particular de un usuario
(que en ficheros tradicionales son los ficheros individuales de cada uno
de ellos). Pero no es así, ya que en las BD se pueden definir vistas, que
son la parte de los datos que le interesan a un usuario determinado.
• Compartimiento de los datos por parte de muchos usuarios, con
acceso simultáneo sobre ellas. Deberá haber en el software un control de
concurrencia, para asegurar que la actualización simultánea de varios
usuarios sea correcta.
Los inconvenientes que supone la utilización de BD son los siguientes:
•El Hardware y el software son más costosos.
•Necesidad de personal especializado.
•La implantación es más larga y difícil, y por lo tanto es una solución
buena a medio y largo plazo.
Es decir, que si es una aplicación sencilla, tal vez sea conveniente utilizar
ficheros tradicionales, pero si es de una cierta envergadura o hay que ir
ampliando a lo largo del tiempo, conviene una BD
2.3 Usuarios de la BD
Los múltiples usuarios que pueden utilizar la BD son de distintos tipos. Esta
clasificación agrupa dos grandes bloques: los usuarios con conocimientos
informáticos y los usuarios que no tienen (o no tienen por qué tener).
A. Usuarios informáticos.
A.1 Diseñadores.
Encargados de diseñar la BD: elegir el tipo de información
necesaria, organizarla en estructuras adecuadas.
A.2 Administradores.
Es el encargado de velar por el buen funcionamiento del
sistema: administrar los usuarios y permisos, proteger la BD
de errores (haciendo copias de seguridad, ..), optimizar el
sistema, etc. Es decir mucho trabajo.
A.3 Analistas y programadores.
Estudian los requerimientos de los usuarios finales para
hacer programas, formularios, ... que posibilitan el trabajo
de éstos.
B. Usuarios finales .
Son las personas que necesitan el acceso a la BD para introducir datos,
actualizarlos, consultarlas, generar informes, ... Entre ellos distinguimos:
B.1 Habituales.
También llamados paramétricos, suelen hacer consultas y
actualizaciones constantes (siempre las mismas).
Normalmente los analistas y programadores los harán los
programas o formularios para hacer su trabajo.
B.2 Esporádicos.
Utilizan la BD de vez en cuando, y cada vez para obtener
una información diferente. Lo más normal es que utilizan un
lenguaje de consulta de la BD avanzado pero fácil de usar.
3. Características deseables de un SGBD
• Control de redundancia. Ya hemos comentado que quizá sea
conveniente en algunas ocasiones un poco de redundancia. Pero en caso
de que haya, esta debe estar controlada. Es decir, el SGBD debería
proporcionar mecanismos para controlar los datos que están duplicadas,
y que cuando una información se actualice en un lugar, automáticamente
se actualice en los demás.
•Restricción de accesos no autorizados. Cuando muchos usuarios
utilizan la BD, es normal que no todos tengan autorización para acceder a
toda la información. Puede haber información confidencial a la que pocos
usuarios tienen acceso, y puede haber información a la que un usuario
puede tener acceso pero que no puede modificar. El SGBD debe tener,
por tanto, un subsistema de seguridad y autorización para crear usuarios
(que se identifican con una contraseña) y dar distintos permisos de
acceso a cada uno.
•Suministro de múltiples interfaces para los usuarios. Como hay
muchos tipos de usuarios, con niveles de conocimientos técnicos
distintos, el SGBD debe ofrecer diferentes interfaces: lenguajes de
consulta para usuarios esporádicos, lenguajes de definición y control para
administradores, formularios para usuarios habituales,. ..
•Cumplimiento de restricciones. Habrá restricciones que deben
cumplir los datos. Por ejemplo la nota de un alumno debe estar entre 0 y
10; la fecha de nacimiento no puede ser posterior a la actual; el curso
donde está matriculado un alumno debe ser un curso existente; un
alumno que esté de baja debe tener contenido en la fecha de baja, o no
se le pueden poner notas; ... Algunas de estas restricciones las soportará
directamente el SGBD. Otras requerirán verificación por medio de
programa cuando se introduzca o se modifique el dato.
•Apoyo y recuperación. Todo SGBD debe contar con recursos para
recuperarse de errores del hardware o del software y dejar los datos
como estaban antes de la quiebra.
4. Modelos de datos
Para poder definir la estructura de la BD nos hará falta alguna herramienta,
alguna manera de expresar lo que vemos en el mundo real.
Un Modelo de Datos será un conjunto de conceptos que pueden servir para
describir, a distintos niveles de abstracción, la estructura de una BD. A esta
estructura expresada por medio del modelo de datos lo llamaremos esquema.
Habrá diferenciar entre esquema y los datos concretos que puede tener la BD
en un momento determinado (a lo que algunos autores llaman estado de la
BD o conjunto de ocurrencias o ejemplares).
A lo largo de la historia se han propuesto muchos modelos de datos, tantos que
se clasificarán un poco.
•Modelos de alto nivel o conceptuales : disponen de conceptos muy
cercanos a la manera de percibir los datos las personas. El más conocido
es el Modelo Entidad-Relación.
Otros serían los orientados a objetos. Servirán para poder
diseñar la BD a partir de las percepciones del mundo real.
•Modelos de bajo nivel o físicos : proporcionan detalles de cómo se
guardarán los datos en el ordenador.
•Modelos de representación o implementación : están a medio
camino de los dos anteriores, ya que los conceptos pueden entender los
usuarios finales, aunque no están demasiado alejados de la forma en que
se guardan los datos en el ordenador. Son los más utilizados en los SGBD
actuales. Se pueden destacar el Jerárquico , el de Red y el Relacional ,
que es lo que nosotros veremos en profundidad.
5. Arquitectura en 3 niveles
Para estandarizar la arquitectura de los SGBD, el comité ANSI / X3 / SPARC
propuso una arquitectura en 3 niveles, para asegurar algunas de las
características que hemos visto como deseables, en concreto la de la
separación entre programas y datos, las múltiples vistas y la utilización de un
catálogo para la descripción de la BD Este son los 3 niveles:
[Link] NIVEL INTERNO o FÍSICO hay un esquema interno que describe
la estructura física de almacenamiento de la BD utiliza un modelo físico, y
describe todos los detalles para su almacenamiento (donde están los
archivos, cuántos, estrategias de acceso a los datos, ...).
[Link] NIVEL CONCEPTUAL o LÓGICO hay un esquema conceptual ,
que describe la estructura de toda la BD para el conjunto de los usuarios.
Oculta los detalles de las estructuras físicas de almacenamiento. Se
utiliza un modelo de datos conceptual o de implementación
[Link] NIVEL EXTERNO o DE VISTAS incluyen varios esquemas
externos o vistas de usuario . Cada esquema externo describe la
parte de la BD que interesa a un grupo de usuarios determinado, y oculta
el resto de la BD utiliza también un modelo conceptual o de
implementación.
Los tres esquemas son distintas maneras de describir los datos, aunque estas solo
existen realmente en el nivel físico. Pero el esquema interno debe ser totalmente
transparente a los usuarios, y ellos tienen que "ver" su esquema externo. Cualquier
referencia a este esquema deberá traducirse, por parte del SGBD, a referencias a los
datos oportunos del esquema lógico. Y posteriormente deberá traducirse en una solicitud
al esquema físico.
El proceso de transformar solicitudes y resultados de un nivel a otro se denomina
correspondencia o transformación ( mapping ). Evidentemente consumirán tiempo,
pero facilitarán el que se pretendía:
•Independencia lógica respecto a los datos : se puede modificar el esquema
lógico sin tener que modificar los esquemas externos. Por ejemplo, en el esquema
lógico puedo incorporar un campo para los empleados que sea la fecha de ingreso
en la empresa. Esto no afectará para nada a la vista externa de empleados y
edades.
•Independencia física respecto a los datos : se puede modificar el esquema
físico sin tener que modificar el esquema lógico, y mucho menos los esquemas
externos. Así por ejemplo se puede añadir más espacio para la BD incorporando un
nuevo archivo donde se guardarán las cosas (Oracle), o se incluye un nuevo índice
para acceder más rápidamente a los datos para un determinado orden.
6. Lenguajes del SGBD
SGBD debe proporcionar unos lenguajes a los usuarios para poder realizar
estas acciones .Dos serán los grupos de lenguajes:
Lenguajes de definición. Servirán para construir los distintos
esquemas .Podremos distinguir:
-Lenguaje de definición de datos(DDL: data definition
language). Servirán para construir el esquema lógico.
-Lenguaje de definición de almacenamiento(SDL:
storage definition language), para el esquema físico.
-Lenguaje de definición de vistas(VDL: view definition
language), para las vistas
En la práctica todos estos se les llama DDL.
Lenguajes de manipulación de datos (DML: data manipulation
language).Servirán para manipular los datos, es decir hacer consultas,
inserciones, modificaciones y eliminaciones.
En los SGBD actuales no se acostumbra a separar los lenguajes, sino
que se utiliza un amplio lenguaje que combina todos los aspectos y
permite hacerlo todo.
Maneras de aplicar las sentencias de los lenguajes.
•De forma interactiva: se escribe una sentencia, se ejecuta, luego otra,
... Obtienen conjuntos de resultados, por eso se llaman de conjunto en
conjunto.
•Inmersos en otro lenguaje de propósito general, llamado lenguaje
anfitrión, donde entre los procedimiento incluyen las sentencias del
DML, llamado lenguaje huésped o sublenguaje. Normalmente se
obtienen registros individuales de la BD, por lo que se deberán utilizar
bucles para hacer toda una consulta. Por eso se llaman de registro a
registro .
7. Clasificaciones de los SGBD
•Según el modelo de datos utilizado, tendremos los SGBD
relacionales , jerárquicos y de red. Los dos últimos, aunque hace tiempo
tuvieron mucha importancia y aplicación comercial, han quedado
anticuados. Nosotros nos centraremos en los SGBD Relacionales.
Últimamente han aparecido los orientados a objetos.
•Según el número de usuarios
• Mono-usuario , que solo atienden a un usuario a la vez,
• Multi-usuario , que atienden muchos usuarios al mismo tiempo.
•Según el número de lugares donde está ubicado el sistema:
• centralizados , en los que tanto el SGBD como los datos están en
un único ordenador central (aunque se pueda acceder a la BD de
forma remota).
• distribuidos (SGBDD), en los que el SGBD y los datos están
distribuidos en varios lugares conectados por una red. Dentro de
estos podríamos hacer una distinción entre los homogéneos, que
utilizan todos los lugares el mismo software, y los heterogéneos o
federados que utilizan distinto software y tiene cada SGBD
particular un cierto grado de autonomía local.