Sistemas Gestores de Bases de Datos

Anuncio
Sistemas Gestores de Bases de Datos
Técnicas de Bases de Datos
Anteriormente los sistemas se basaban en ficheros creados para cada aplicación
especifica. Debido a que los sistemas eran de poca envergadura no existían casi
problemas y estos se podían solventar fácilmente.
Con el paso del tiempo, los sistemas fueron creciendo y la cantidad de datos a almacenar
crecían, la planificación mala y los modelos de datos pobres hicieron que este crecimiento
trajera enormes problemas a la hora de solucionar pequeños errores o mantener el
modelo de datos.
Como solución a este problema surgen las Técnicas de Bases de Datos, las cuales tienen
como objetivo prioritario el unificar toda la información en un solo sistema para evitar
redundancias, no perder las distintas perspectivas según usuario y organizar un conjunto
de datos que no este diseñado para una aplicación en concreto.
Sistemas de Bases de Datos
Los sistemas de Bases de Datos tienen 4 componentes:
• Datos
• Hardware
• Software
• Usuarios
Esquema de acceso del SGBD a los datos
El SGBD introduce un nuevo nivel de independencia entre los usuarios y la base de datos,
constituyendo una capa sobre el sistema operativo del computador.
La base de datos debe almacenarse en un dispositivo de memoria secundaria, dado el
volumen que puede alcanzar y el periodo de tiempo que tengamos que trabajar con ella.
Almacenamiento en disco magnético
En un disco magnético, la memoria (bytes) disponible se divide en bloques de longitud fija,
que se definen cuando se le da formato al disco, estos bloques representan la unidad de
transferencia entre los datos del disco y la memoria principal. La transferencia la realiza el
dispositivo de entrada/salida del computador, quien deposita el bloque leído en memorias
intermedias de la memoria principal (áreas contiguas de memoria con capacidad para
varios bloques de datos, que se suelen denominar buffers).
En el disco magnético, y desde el punto de vista del sistema operativo, los datos se
organizan en ficheros de registros. En un fichero los registros se estructuran siguiendo
alguna de las organizaciones de ficheros disponibles en el sistema. Cada tipo de
organización, implica una distribución física particular de los registros en el disco y un tipo
de acceso a los mismos. Estas organizaciones de ficheros son las que se utilizan para
implementar las estructuras de datos de la base de datos, según se define en el esquema
físico.
Esta jerarquía de abstracciones de datos (bloques de datos – ficheros de registros –
estructuras de bases de datos) existente en un sistema de bases de datos es explicada
en la figura que se muestra a continuación
Paso 1
El programa de aplicación del usuario 1 realiza una consulta al SGBD
Paso 2
El SGBD consulta en el esquema externo 1, el esquema lógico y el esquema físico,
realiza la correspondencia entre ellos, y traduce la consulta del usuario en una operación
de lectura sobre un fichero.
Paso 3
El SGBD emite órdenes al administrador de ficheros del SO indicando el registro que
debe leer y el fichero en el que está almacenado.
Paso 4
El administrador de ficheros del SO solicita al administrador de entrada/salida la lectura
del bloque en el que se encuentra el registro requerido.
Paso 5
El administrador de entrada/salida del SO recupera el bloque de datos solicitado y lo
transfiere de la memoria secundaria a las memorias intermedias de la memoria principal
(si el bloque no estuviera ya en ella memoria principal).
Paso 6
El administrador de archivos del SO devuelve al SGBD el registro solicitado.
Paso 7
El SGBD, comparando el esquema externo 1 y el esquema lógico, realiza las
transformaciones necesarias para determinar los datos requeridos, y transfiere estos
datos al área de trabajo del programa que ha realizado la consulta.
Si la consulta del usuario (paso 1) requiere la recuperación de varios registros de datos,
los pasos 3 al 6 se repetirán para cada uno de los registros necesitados. Una vez
recuperados estos registros, el SGBD los examina en memoria principal para ejecutar el
paso 7.
Usuarios de una Base de Datos
Administrador de Datos y Administrador de Base de Datos
La base de datos y los SGBD son recursos corporativos que deben gestionarse igual que
cualquier otro recurso. La administración de datos y de la base de datos son papeles que
generalmente se asocian con la gestión y control de un SGBD y de los datos en él
almacenados. El administrador de datos es responsable de gestionar los recursos de
datos, lo que incluye la planificación de la base de datos, el desarrollo y mantenimiento de
estándares, políticas y procedimientos y el diseño procedimental/lógico de la base de
datos. El administrador de datos consulta con los gerentes de mayor nivel y les aconseja,
para garantizar que la dirección seguida por el desarrollo de la base de datos permita
soportar los objetivos corporativos.
El administrador de la base de datos, es responsable de la materialización física de la
base de datos, incluyendo la implementación y diseño físicos de la base de datos, el
control de la seguridad y la integridad, el mantenimiento de la fiabilidad del sistema y la
garantía de que las aplicaciones exhiban un rendimiento satisfactorio para los usuarios
finales. El papel de un administrador de bases de datos tiene una orientación más técnica
que el administrador de datos, requiriéndose un conocimiento detallado del sistema de
gestión de bases de datos de destino y del entorno de sistema en el que está
implementado.
En algunas organizaciones no hay distinción entre estos dos papeles, esto depende del
volumen de datos y la importancia de los recursos corporativos.
En resumen, el administrador de bases de datos, es el encargado de definir la base de
datos dentro del SGBD y de optimizar su rendimiento, al mismo tiempo que da soporte a
las necesidades específicas de cada usuario.
Las funciones de un administrador de la BD son:
• Definir el esquema lógico (suponiendo la arquitectura a cuatro niveles) Partiendo el
esquema conceptual que describe el sistema de información, el DBA transformará dicho
esquema en el esquema lógico que manejará el SGBD a utilizar. Al realizar esta
transformación, tomará las decisiones oportunas bajo criterios de optimización de la
eficiencia del sistema final. Debe, así mismo, especificar las correspondencias a
establecer entre los esquemas conceptual y lógico.
• Definir el esquema interno. El DBA debe decidir cuál será la forma en que se
almacenarán físicamente los datos, y establecer, al igual que antes, las debidas
correspondencias entre esquemas.
• Definir los esquemas externos. Atendiendo a las necesidades de los usuarios, el DBA
debe asegurar que toda la información necesaria está disponible y accesible por aquellos
que la precisan, y debe crear (o asesorar en su creación) los esquemas externos de cada
aplicación que definirán las partes del sistema de información a las que accederán.
Además, el DBA será el encargado de suministrar asesoramiento técnico para el diseño
de aplicaciones, formación de usuarios y programadores, etc.
• Definir las reglas de integridad y seguridad. Se encargará de definir aquellas reglas de
integridad que actúan sobre los datos y las operaciones en términos que entienda el
SGBD. Los permisos otorgados a los usuarios sobre los datos, y la política de
transferencia de permisos entre ellos es, también, responsabilidad del DBA.
• Especificar los mecanismos de recuperación y copias de seguridad. El sistema de base
de datos e un elemento crítico en el funcionamiento de la Organización, y el DBA debe
especificar los procedimientos adecuados para la realización de copias de seguridad
periódicas y recuperación de datos ante eventuales daños en parte o en todo el sistema
de información almacenado.
• Verificar el rendimiento del sistema y atender a los cambios en los requerimientos.
• Como parte muy importante de sus funciones, el DBA debe vigilar que el sistema de
información no se degrade, por la continua manipulación y actualización de sus datos,
hasta el punto de afectar a los tiempos de respuesta o la sobreocupación de memoria
secundaria. Se responsabilizará de las reorganizaciones necesarias, a cualquier nivel,
que permitan mantener o mejorar el rendimiento de todo el sistema, incluido la renovación
del hardware y el software si fuera necesario.
Desarrolladores de aplicaciones
Una vez implementada la base de datos, es necesario implementar también los
programas de aplicación que proporcionen la funcionalidad requerida por los usuarios
finales. Esto es responsabilidad de los desarrolladores de aplicaciones. Normalmente, los
desarrolladores de aplicaciones trabajan a partir de especificaciones dadas por los
analistas de sistemas. Cada programa contiene enunciados que exigen al SGBD realizar
algún tipo de operación sobre la base de datos. Esto incluye insertar datos, insertarlos,
actualizarlos o borrarlos.
Usuarios finales
Los usuarios finales son los “clientes” de la base de datos, que se diseña, implementa y
mantiene precisamente para dar servicio a sus necesidades de información. Los usuarios
finales pueden clasificarse de acuerdo a la forma en que utilizan en sistema.
Usuarios inexpertos: Normalmente no son conscientes de la existencia de un SGBD,
acceden mediante programas que intentan que las operaciones sean lo más simple
posible.
Usuarios avanzados: Son los que están familiarizados con la estructura de una base de
datos y con el SGBD, suelen utilizar un sistema de consulta con lenguajes de alto nivel,
como SQL.
DATOS
El objetivo final de los sistemas de BBDD es el almacenamiento de estos datos.
Para ello debemos los datos se estructuraran basándose en un Modelo de Datos que
podemos elegir según nuestras conveniencias.
Existen tres grupos de modelos de datos:
•
•
•
Modelos Lógicos basados en objetos
Son modelos que describen datos en los niveles de abstracción lógico y de
vistas. Proporcionan capacidades estructurales muy flexibles y permiten una
especificación explicita de las ligaduras de datos. Algunos de los modelos de
este tipo mas conocidos son:
◦ El Modelo Entidad-Relación
◦ El modelo orientado a objetos
◦ El modelo de datos Semántico
◦ El modelo de datos funcional
Modelos Lógicos basados en registros
Estos modelos describen los datos en los niveles lógico y de vistas, igual
que los basados en objetos, se usan para describir la especificación a alto
nivel y para especificar la estructura lógica de la BD. Su nombre proviene de
que la BD se estructura en registros de formato fijo. Algunos de ellos son,
◦ Modelo Relacional
◦ Modelo de Red
◦ Modelo Jerárquico
Modelos físicos
Describe datos en un nivel mas bajo que los otros dos modelos. Describen
la forma física de almacenar los datos, el formato de los registros, estructura
de los ficheros y los métodos de acceso utilizados. Existen pocos modelos
de este tipo, algunos de ellos pueden ser el modelo de unificación y el
modelo de memoria por marcos.
Sistemas de Gestión de Bases de Datos
Antes de la creación de los Sistemas de Bases de Datos los datos se almacenaban
en archivos adjuntos a la aplicación, esto provocaba una serie de inconvenientes
•
•
•
•
•
•
•
Redundancia e inconsistencia de datos
Dificultad en el acceso a los datos
Aislamiento de datos
Problemas de integridad
Problemas de atomicidad
Anomalías en el acceso concurrente
Problemas de seguridad
Estos problemas llevaron a la creación de los Sistemas de Gestores de Bases de
Datos. Este sistema se encarga de proporcionar una descripción centralizada de los datos
y ademas da la posibilidad de mantener distintas vistas de los datos según para que
usuario sean.
Los objetivos de un SGBD son:
• Independencia
• Integridad
• Seguridad
Integridad
La integridad de datos atiende a la calidad de la información almacenada en los siguientes
aspectos:
• los valores de los datos han de ser correctos.
• las ocurrencias de los datos (los valores en un instante determinado) han de estar
debidamente interrelacionados.
• no se deben producir interferencias en las lecturas y escrituras concurrentes, del tipo
de actualizaciones incorrectas, bloqueos activos o mortales, etc.
Se distinguen dos aproximaciones a este problema: optimista y pesimista. La primera da
por supuesto que tales problemas se presentan muy de cuando en cuando, así que la
solución más eficiente es solucionarlos cuando han ocurrido. Dichos problemas pueden
venir de deterioros de la BD por catástrofes, interrupciones en procesos de actualización,
actualizaciones indebidas por fallo humano, etc. De hecho, la táctica es llevar un registro,
más o menos actualizado, de los estados sucesivos de la base de datos o de las últimas
transacciones efectuadas para devolver a la base de datos a un estado anterior que se
sabía correcto, y volver a comenzar desde ese punto.
La segunda identifica las situaciones que pueden provocar un conflicto y retrasa su
ejecución hasta que tal posibilidad desaparece.
Así, pues, tenemos:
Técnicas Preventivas
Verificación de las restricciones semánticas, controlar la consistencia de las copias
redundantes, y control de los accesos concurrentes, generalmente por el método de
reservas (evitar que un programa acceda al dato mientras lo está modificando y/o
consultando otro).
Técnicas Curativas
Fichero dietario con el que deshacer o rehacer todas las actualizaciones realizadas por
transacciones durante un tiempo determinado, copias de seguridad o volcados de la BD
completa en un momento en que todas las transacciones efectuadas han sido
confirmadas, toma de puntos de control, ...
Ejemplo de Técnica Preventiva: Bloqueos
Un bloqueo es una forma de trabajo para el acceso de distintos usuarios a un mismo
conjunto de datos.
Dependiendo de las bases de datos que se utilicen, hay distintas amplitudes de bloqueo,
pueden serlo a nivel de toda una tabla, es decir, que si utiliza un usuario la tabla "Clientes"
para hacer modificaciones en la misma, no puede ser accedida por otro usuario en tanto
no la abandone. En este ejemplo concreto, y pensando en este tipo de bases de datos,
solamente sería lógico el bloqueo de tabla para operaciones que requieran utilizar la
totalidad de la misma, como puede ser una ordenación (Sort) o indexación, en caso
contrario, se haría a nivel de registros concretos, si un usuario modifica el Cliente X otro
usuario no puede acceder a él, en cambio sí podrían hacerlo ambos si el acceso se
realiza a nivel de consulta y no de modificación.
Otras bases lo que impiden es modificar por páginas, es decir, bloques de datos, no
registros concretos.
Bloqueo Pesimista
Las bases pequeñas, las que se denominan tablas planas, suelen utilizar el llamado
bloqueo pesimista, es decir, que si un usuario está modificando el siguiente en acceder es
expulsado.
Bloqueo Optimista
Permiten que las transacciones accedan libremente a los objetos. Se determina, antes de
su finalización, si ha habido o no interferencias. Cada transacción consta de dos o más
fases:
● Fase de lectura
● Fase de validación
● Y, posiblemente, una fase de escritura.
Durante la fase de lectura todas las escrituras tienen lugar en copias locales (versiones
transitorias). Durante la fase de validación se establece si se viola la serialidad, y las
copias locales se hacen globales.
Conceptos clave de Integridad
Granularidad
Es el grado de detalle de definición de los esquemas externos en función del esquema
lógico. Los más usuales son:
• de registro completo.
• de campo de registro.
Se dice que la granularidad es más fina en el segundo caso que en el primero, y cuanto
más fina sea mayor grado de independencia de datos conseguiremos.
Es evidente que si la granularidad es fina, un determinado esquema externo puede
precisar de la definición de un único campo y, por tanto, modificaciones en el resto de
campos del mismo registro no le afectarán; si la granularidad es a nivel de registro
completo, aún sin utilizar todos los campos, debería incluir la definición del registro y sería
modificado en cualquier alteración del mismo en el esquema lógico.
Ligadura
La ligadura es la transformación de una operación descrita en términos de un esquema
externo en otra descrita en términos del esquema interno.
Una definición de dato de un EE, en el momento de la ligadura, se transforma en una
longitud y una posición dentro de un registro, términos en los que se expresa el EI. No
obstante, puesto que se hace necesaria una primera transformación entre EE y esquema
lógico, y de éste al EI, se diferencia entre ligadura lógica y ligadura física.
El momento en que se produce la ligadura desaparece la independencia de datos puesto
que el esquema externo ya ha sido traducido al más bajo nivel. Por eso, si el momento de
la ligadura se produce cuando se compilan los programas, cualquier alteración en el
esquema interno provocará la recopilación, aunque tal modificación se haya producido en
un dato que no usen.
Podemos decir, por entendernos, que al realizar la ligadura en el momento de la
compilación, los esquemas externos “desaparecen”, puesto que en cada ejecución del
programa se parte ya de los datos físicos de almacenamiento.
Si, por el contrario, es en cada acceso a la base de datos cuando se realiza la ligadura,
cada vez se realizará una nueva traducción del esquema externo en esquema interno.
Eso implica que, si el cambio en el EL o EI no le afecta directamente, no habrá necesidad
de modificar su correspondiente EE.
No obstante, cuanto más tardía sea la ligadura (por ejemplo, en cada acceso) la eficiencia
será menor puesto que continuamente estaremos haciendo uso de las correspondencias
entre esquemas.
Se consideran cuatro momentos en los que puede tener lugar la ligadura, siendo el último
el más tardío y el que garantiza una mayor independencia de datos:
• En la compilación o en un paso de precompilación
• En el montaje (link) para generar el módulo ejecutable del programa
• Al iniciarse la ejecución del programa , o más concretamente, antes de que el
programa solicite acceso a la base de datos.
• En cada acceso a la BD.
La independencia de datos, resumiendo, es mayor cuanto más fina sea la granularidad de
los esquemas externos y cuanto más tardío el momento de la ligadura. La tendencia de
los SGBD actuales es apoyarse en la granularidad a nivel de campo y la ligadura al
comienzo de la ejecución del programa.
Seguridad
La seguridad es uno de los objetivos de los sistemas de gestión de bases de datos, la
idea es que sólo puedan acceder las personas autorizadas a ciertos conjuntos de datos.
Identificación de usuario
Consiste en determinar qué usuario es el que quiere entrar a los datos, este es un paso
previo a determinar qué permisos tiene este usuario (lectura, escritura), normalmente la
identificación se suele hacer mediante una clave de acceso.
Determinación de los accesos permitidos
Hay dos formas de establecer los accesos permitidos:
1. Cada usuario tiene asociada una lista de autorizaciones donde se indican los datos
a los que se puede acceder y las operaciones permitidas a cada uno de ellos. Esta
es la forma más flexible, ya que permite una especificación más detallada de las
autorizaciones.
2. Definición de distintos niveles de autorización, todos los usuarios con el mismo
nivel pueden realizar las mismas operaciones sobre los mismos objetos.
Gestión de autorizaciones transferibles
•
Un sistema de gestión de autorizaciones debe satisfacer lo siguiente:
•
Conocimiento de las autorizaciones de accesos de cada usuario, de estas, algunas
podrían ser transferibles a terceros y otras no.
•
Revocación posterior de una autorización de acceso.
•
La revocación de una autorización de acceso transferible implica la revocación
automática de todas las autorizaciones que son resultado de la misma.
•
Si un usuario puede recibir de otros más de una autorización por el mismo acceso,
cada una de éstas puede ser revocada independientemente de las demás.
Tipos de Esquemas
Para intentar cumplir el objetivo de la independencia de datos se plantea, según
algunos autores, una arquitectura de cuatro niveles, aunque el grupo ANSI/SPARC lo
planteo como una estructura de tres niveles.
Estos esquemas son:
•
•
•
•
Esquema Conceptual (EC) → es la visión desde un punto de vista
organizativo. Es completamente independiente del SGBD que se utilice e
incluso de si se utilizara una BD o no. Es una descripción desde un punto de
vista no informático
Esquema Lógico (EL) → es un esquema que se representa los datos
usando un modelo de datos soportado por el SGBD. Aquí representamos las
entidades y relaciones de acuerdo al modelo de datos a usar.
Esquema Interno (EI) → es la forma en la que se representan los datos en la
memoria externa del equipo. Es también conocido como Esquema Físico.
Esquemas Externos (EE) → describe los datos y las relaciones que hay
entre ellos. Es para una aplicación dada y se pueden ver como subconjuntos
del EL de la BD.
Características de un buen SGBD
•
•
•
•
•
•
Transformación EC-EL: Al describir el Esquema conceptual externo al SGBD
según un cierto modelo de datos, debemos poder convertir manualmente del
conceptual al lógico.
Uso distintos modelos de Datos: el SGBD debe permitirnos diseñar el EC en
los distintos modelos de datos, E-R, Relacional, Modelo Semántico General,
etc....
Establecer correspondencias entre los distintos esquemas: es decir, el poder
traducir que un dato o una relación en cierto esquema, corresponde a otra
en el siguiente esquema.
Independencia lógica: Si modificamos un dato en el esquema lógico, los
esquemas externos que no lo contengan en su definición no deben verse
afectados por el cambio
Independencia física: No puede verse afectado el esquema lógico si
modificamos el modo de acceso físico, los tamaños de paginas, etc etc
Independencia de datos: En definitiva, aislar los esquemas para que no se
vean afectados por cambios en los otros esquemas
Este es un ejemplo de la característica de correspondencia entre los distintos
esquemas. Tenemos dos esquemas externos escritos en PL/I y COBOL y debajo sus
correspondientes tanto en Esquema Lógico como en Esquema Interno.
Bibliografia
Asignatura Bases de Datos de la Universidad de Sevilla
http://www.cs.us.es/cursos/bd-2001/
Transparencias sobre SGBD existentes
http://www.slideshare.net/eder8/dbms-existentes
Apuntes de ficheros y Bases de Datos de la Universidad Jaume I
http://www3.uji.es/~mmarques/f47/apun/apun.html
Fundamentos de bases de datos
Silberschatz, Abraham
Sistemas de bases de datos : un enfoque práctico para diseño, implementación y gestión
Connolly, Thomas M.
Bases de datos relacionales Matilde Celma Giménez, Juan Carlos Casamayor Ródenas,
Laura Mota Herranz
Celma Giménez, M.
Apuntes de Teoría de la asignatura
Descargar