sistema de gestión de bases de datos

Anuncio
SISTEMA
DE
GESTIÓN
DE
BASES DE
DATOS
Alumnos :
Angel Castejón Asensio 48576067K
Miguel Lirio Villena 45839549C
Javier-Umbe Gómez Tirado 48624943E
Pablo Sánchez Alonso 53240612M
1. TÉCNICAS DE GESTIÓN DE BASE DE DATOS Los sistemas de gestión de bases de datos son un tipo de software muy específico, dedicado
a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan.
Existen distintos objetivos que deben cumplir los SGBD:
Abstracción de la información. Los SGBD ahorran a los usuarios detalles acerca del
almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos
de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de
abstracción.
Independencia. La independencia de los datos consiste en la capacidad de modificar el
esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las
aplicaciones que se sirven de ella.
Consistencia. En aquellos casos en los que no se ha logrado eliminar la redundancia, será
necesario vigilar que aquella información que aparece repetida se actualice de forma
coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por
otra parte, la base de datos representa una realidad determinada que tiene determinadas
condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El
sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen
herramientas que facilitan la programación de este tipo de condiciones.
Seguridad. La información almacenada en una base de datos puede llegar a tener un gran
valor. Los SGBD deben garantizar que esta información se encuentra segura de permisos a
usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos.
Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola
operación. Esto quiere decir que luego de una ejecución en la que se produce una falla es el
mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen
mecanismos para programar las modificaciones de los datos de una forma mucho más
simple que si no se dispusiera de ellos.
Tiempo de respuesta. Lógicamente, es deseable minimizar el tiempo que el SGBD tarda en
darnos la información solicitada y en almacenar los cambios realizados.
1.1.
MEJORAS DE LOS SGBD
Proveen facilidades para la manipulación de grandes volúmenes de datos (ver objetivos).
Entre éstas:
Simplifican la programación de equipos de consistencia.
Manejando las políticas de respaldo adecuadas, garantizan que los cambios de la base serán
siempre consistentes sin importar si hay errores correctamente, etc.
Organizan los datos con un impacto mínimo en el código de los programas.
Bajan drásticamente los tiempos de desarrollo y aumentan la calidad del sistema
desarrollado si son bien explotados por los desarrolladores.
Usualmente, proveen interfaces y lenguajes de consulta que simplifican la recuperación de
los datos.
1.2 INCONVENIENTES DE LOS SGBD
Típicamente, es necesario disponer de una o más personas que administren de la base de
datos, en la misma forma en que suele ser necesario en instalaciones de cierto porte
disponer de una o más personas que administren los sistemas operativos. Esto puede llegar
a incrementar los costos de operación en una empresa. Sin embargo hay que balancear este
aspecto con la calidad y confiabilidad del sistema que se obtiene.
Si se tienen muy pocos datos que son usados por un único usuario por vez y no hay que
realizar consultas complejas sobre los datos, entonces es posible que sea mejor usar una
planilla de cálculo.
Complejidad: los software muy complejos y las personas que vayan a usarlo deben tener
conocimiento de las funcionalidades del mismo para poder aprovecharlo al máximo.
Tamaño: la complejidad y la gran cantidad de funciones que tienen hacen que sea un
software de gran tamaño, que requiere de gran cantidad de memoria para poder correr.
Coste del hardware adicional: los requisitos de hardware para correr un SGBD por lo
general son relativamente altos, por lo que estos equipos pueden llegar a costar gran
cantidad de dinero.
2 .- ARQUITECTURA DE LOS SISTEMAS DE GESTIÓN DE LAS
BASES DE DATOS
Como primera definición, estableceremos que un Sistema de Gestión de Bases de
Datos (SGDB) no es más que un conjunto de programas que administran y gestionan la
información que posee la propia base de datos. Esta definición es la que encontraremos
dentro de cualquier gestor del mercado.
Dentro de los SGBD, podríamos destacar tres niveles principales enfocados en su
función y en su visión por el usuario de la base de datos:
•
Nivel Interno es el que más se aproxima al almacenamiento físico de los datos con
un esquema interno que describe la estructura física de almacenamiento de la base
de datos. Almacena los datos tal y como están escritos en el ordenador, los cuales,
realmente solo existen en este nivel. Se podría decir que es el que almacena la
descripción del Nivel Conceptual.
•
Nivel Conceptual sigue un esquema conceptual representando los datos que va a
utilizar sin tener en cuenta el aspecto, contrariamente a lo que hace el nivel interno.
En este nivel, también se describe la estructura para todos los usuarios que accedan
a la BD. Oculta los detalles físicos del almacenamiento y trabaja con elementos
lógicos como entidades atributos y relaciones.
•
Nivel Externo (o de vistas). Puede poseer varios esquemas externos o vistas para el
usuario. Cada vista, posee una descripción de dicha visión diferente para cada grupo
de usuarios.
Esta arquitectura fue implantada por la ANSI-SPARC (American National Standard
Institute – Standards Plannings and Requeriments Committee) en 1975 como ayuda para la
separación entre aplicaciones y datos, el manejo de múltiples vistas y el uso de catálogos
para el almacenamiento de los esquemas de las BD. La importancia de esta arquitectura, es
que nos resulta muy útil a la hora de conseguir la diferenciación entre los niveles
mencionados anteriormente.
El problema que nos encontramos tras este modelo, es que muchos SGBD no
distinguen del todo los tres niveles a causa de la introducción del nivel físico en el esquema
conceptual o, lo que ocurre en la mayoría de los casos, que los esquemas externos de cara al
usuario describen la misma información que al nivel conceptual.
Destacando que los esquemas no son más que descripciones de los mismos datos
pero variando su nivel de abstracción, los únicos datos existentes, son los que poseemos a
nivel físico, como por ejemplo, en un disco. Por lo tanto, el SGBD debe de poder
transformar cualquier petición expresada en términos introducidos por el usuario vía
esquemas externos, y con estos, el SGBD debe transformar la petición expresada en
términos de esquema externo, en una petición con términos del esquema conceptual para
seguidamente a una con un esquema interno que se procesará sobre la base de datos
almacenada.
2.1. Estructura General de una SGBD.
Como regla general, todo SGBD sigue un patrón para su desarrollo:
•
•
Gestor de ficheros, el cual se encarga de las estructuras de los datos a la hora de
almacenarlas, asignándoles el espacio en el disco.
Gestor de BD. Es el interfaz de los datos de bajo nivel junto con los programas de
consulta.
•
Procesador de consultas. Encargado de traducir las proposiciones del lengiaje de
consultas a instrucciones comprensibles por la BD.
•
Compilador DDL. Convierte las proposiciones DDL en un conjunto de tablas con
metadatos.
•
Ficheros de datos.
•
Diccionario de datos. Almacén de información referida a la estructura de la BD. Su
uso es continuo debido al énfasis del buen diseño y a la implementación adecuada
del diccionario de datos.
Estructura General de una BD.
2.2. Beneficios de las SGBD y una BD.
El beneficio de la arquitectura de tres niveles es por la explicación de independencia
de datos, definida como la capacidad de modificación del esquema a un nivel de sistema
sin tener que modificar el esquema superior de forma inmediata.
Lo que más tenemos que destacar en un SGBD lo suficientemente funcional, es lo
siguiente:
•
•
•
•
•
•
•
Versatilidad en la representación de los datos, ofreciendo las visiones de la
información almacenada de todas las formas necesarias.
Corto tiempo de respuesta y acceso simultaneo a datos.
Mínima redundancia.
Simplicidad y Privacidad.
Seguridad, teniendo la capacidad de proteger los datos ante perdidas totales o
parciales (incendios, accesos no autorizados, uso incorrecto de los datos...).
Afinación de datos, organizandolos de la forma mas optima para obtener unos
rápidos tiempos de respuesta.
Integridad, otorgando a los datos fiabilidad, frente a fallos de Hardware y
Software.
Ventajas de las BD ante los Ficheros Clásicos ;
•
Independencia de los datos al tratamiento, lo que implica que un cambio en el
programa, tanto lógico o físico no deben obligar la alteración del programa, ya que
la reprogramación origina un importante esfuerzo que no se podría costear si se
producen a menudo. Podemos encontrarnos con dos tipos de independencia:
◦
◦
Independencia lógica de los datos, la cuál se refiere modificaciones de la
representación lógica del problema no afecta a los programas que lo manipulan,
y viceversa.
Independencia física de los datos, referido a la distribución en unidades de
almacenamiento, es independiente de la estructura lógica general, o viceversa.
•
Coherencia de los resultados. La información de las BD se recogen y almacenan
una sola vez, por lo tanto todos lo programas que tienen acceso a estos, tienen que
mostrarlos de una forma coherente y muestrable. Además, al reducir en gran parte la
redundancia de datos, desaparece el problema del enfoque clásico, eliminando la
necesidad de al cambiar un dato, tener que actualizar el resto.
•
Mejor disponibilidad de los datos para el conjunto de usuarios. Al aplicar la
metodología de BD, puesto que estos comparten el conjunto de aplicaciones, los
datos pasan a ser de todos, existiendo una mejor disponibilidad y acceso entre ellos
para tdo usuario autorizado.
•
Mayor eficiencia en recogida y validación de la entrada de datos al sistema.
Como no se producen apenas redundancias, los datos se recogen y validan una única
vez, aumentando así el rendimiento en todo el proceso previo al almacenamiento.
•
Espacio en disco reducido. Como ya se ha mencionado anteriormente, al no
producirse redundancias, y así como la utilización de aplicaciones de compactación,
las BD poseen una menor ocupación de almacenamiento en el disco magnético.
2.3. Inconvenientes de las SGDB.
Los inconvenientes a valorar antes de de la instalación de un SGDB son varios;
•
•
Instalación costosa: tanto en equipos físicos (nuevas instalaciones) como en
lógicos(SO, programas, compiladores...).
Personal especializado: es imprescindible la disposición de un buen equipo para la
correcta utilización , el problema consiste en la dificultad de contratación de
formación.
•
Implantación larga y difícil.
•
No son rentables a corto plazo, se suelen ver los resultados económicos al
transcurso de varios meses o incluso años en instalaciones grandes.
•
Ausencia de reglas y estándares, los cuales últimamente están siendo un punto a
tratar, con el surgimiento de estándares como el SQL.
3. EL ADMINISTRADOR DE LA BD
Toda Base de Datos necesita de un encargado de gestionar y optimizar todas sus funciones,
datos y características de cara a una mejora del rendimiento de la base de datos y una
mejora para la utilización de los usuarios, además de garantizar la seguridad de los datos, y
controlar la ocupación de memoria evitando ralentizaciones.
Las funciones del administrador de la Base de Datos son la toma de decisiones en la
definición de los esquemas que determinarán el funcionamiento de la Base de Datos tales
como el esquema lógico, interno o externo.
También es el encargado del control de las reglas de integridad y seguridad definiéndolas
de la mejor forma para el SGBD, gestionando los permisos para los usuarios.
Las Bases de Datos tienen que estar sujetas a cambios, el administrador tiene que atender a
esos cambios, y reorganizar para que el sistema no se desfase o degrade.
4 . Componentes y Funciones de un SGBD.
El objetivo de un SGBD es proporcionar un interfaz adecuado y eficaz para que podamos
manipular la información que deseemos en nuestra base de datos, ya sea almacenarlos o
acceder a ellos.
Debe permitirnos a nosotros como usuarios el poder crear y mantener la base de datos a la
vez que controla el acceso a la misma.
Las funciones más importantes de un SGBD deben ser:
Definición de los datos: el sistema debe entender la definición de los datos que le
proporcionamos, escrito en el lenguaje adecuado para que los pueda entender, y
procesarlos. Este mismo sistema tiene que tener los elementos necesarios y ser capaz de
procesar los datos, para cada uno de los diferentes lenguajes de definición de datos (DDL).
Manipulación de los datos: el sistema tiene que poder encargarse de realizar las diferentes
órdenes que introduzca el usuario, ya bien sea para acceder, guardar, borrar o editar datos.
Para dicha manipulación, es necesario que el SGBD tenga incluidos lenguajes de
manipulación de datos (DML). Dichos lenguajes pueden ser independientes si ellos mismos
son capaces de traducir las instrucciones que le indiquemos sin necesidad de requerir un
programa que le haga de traductor previamente.
Seguridad e integridad en los datos: para que un SGBD sea estable y asegure la integridad
de los datos, debe controlar el acceso a los mismos por parte de los usuarios, y controlar
cualquier posible violación de las reglas que el administrador de la base de datos habrá
establecido anteriormente.
Recuperación y concurrencia de los datos: los datos almacenados deben permanecer
coherentes tras la manipulación de los mismos por parte de los usuarios, también se debe
controlar el acceso a los mismos cuando varios usuarios se disponen a acceder a la vez a la
base de datos. Además se tendrá que tener en cuenta y poner remedio a posibles fallos, ya
sea bien por instrucciones no realizadas completamente, fallos de energía, errores de
software o posibles problemas de hardware.
Diccionario de datos: la última de las funciones más importantes de un SGBD consiste en
incluir información adicional sobre los datos propios. Esta información se utilizará para el
análisis y diseño de la base de datos.
Los componentes que podemos encontrar en un SGBD están divididos en diferentes
módulos. Aquí podemos ver un esquema de las diferentes partes.
• Procesador de consultas: convierte las instrucciones introducidas por el usuario en
un lenguaje de órdenes que entiende el gestor de la base de datos.
• Gestor de la base de datos: proporciona un canal entre los datos guardados en la
base de datos y los programas de aplicación y las consultas que se hacen en el
sistema, para comunicarse entre ambos y poder realizar dichas consultas.
• Gestor de archivos: gestiona la cantidad de espacio en la memoria del disco y de los
datos usados para representar la información almacenada en disco.
• Pre compilador del lenguaje de manipulación de datos DML: convierte las
instrucciones en DML integradas en un programa de aplicación en llamadas
normales a procedimientos en el lenguaje principal.
• Compilador del lenguaje de definición de datos DDL: convierte sentencias en DDL
en un conjunto de metadatos, para que después sean incorporados al diccionario de
datos.
• Gestor del diccionario de datos: almacena los metadatos creados anteriormente en la
estructura de la base de datos
5. INDEPENDENCIA DE DATOS
La independencia de datos es el hecho de que la modificación de datos solo afectarán a
aquellos programas y esquemas que están directamente vinculados o afectados por esos
datos. El grado de independencia es calculado basándose en dos conceptos: granularidad y
ligadura.
El proceso de transformación del esquema externo en esquema interno es conocido como
ligadura. No se trata de un proceso de transformación directa sino que se produce en dos
pasos. Primero se transforma de externo a lógico y de este a interno, por tanto
diferenciaremos entre ligadura lógica y física.
Para determinar la independencia de datos basándonos en este concepto, tenemos que tener
en cuenta el momento en el que se realizará la ligadura. Cuanto más tarde se realice la
ligadura mayor será la independencia.
Vamos a ordenar según el momento en el que puede darse acabo el proceso de ligadura, de
menor a mayor independencia.
0
• Compilación
1
• Montaje
2
• Inicio ejecución
3
• Cada acceso a la base de datos.
El grado de detalle con el que se definen los esquemas externos en función del esquema
interno, es lo que se llama granularidad.
• Registro completo
• Campo de registro
Para determinar la independencia de datos se utiliza el grado de “fina”, cuanto más “fina”
es la granularidad se dice que mayor es el grado de independencia.
La integridad de datos valora la calidad de la información basándose en:
1• Buena relación entre datos.
2• Valores correctos
3• Sin interferencias.
En caso de que se presente uno de estos problemas se pueden abordar de un punto
optimista, solucionándolo cuando se presente o pesimista, ya desde un principio tener en
cuenta los posibles problemas. Dicho de otra forma podemos solucionar los problemas
utilizando una de estas dos técnicas.
4• técnicas preventivas
5• técnicas curativas
6
2La seguridad de los datos se refiere a la autorización de determinados permisos (lectura,
escritura etc), a los usuarios durante el uso de la BD.
3Se utilizan técnicas tales como la identificación del usuario (login y passworrd).
6. ARQUITECTURA CLIENTE- SERVIDOR
Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa
(el servidor) que le da respuesta. Aunque esta idea se puede aplicar a programas que se
ejecutan sobre una sola computadora es más ventajosa en un sistema operativo multiusuario
distribuido a través de una red de computadoras.
En esta arquitectura la capacidad de proceso está repartida entre los clientes y los
servidores, aunque son más importantes las ventajas de tipo organizativo debidas a la
centralización de la gestión de la información y la separación de responsabilidades, lo que
facilita y clarifica el diseño del sistema.
La separación entre cliente y servidor es una separación de tipo lógico, donde el servidor no
se ejecuta necesariamente sobre una sola máquina ni es necesariamente un sólo programa.
Los tipos específicos de servidores incluyen los servidores web, los servidores de archivo,
los servidores del correo, etc. Mientras que sus propósitos varían de unos servicios a otros,
la arquitectura básica seguirá siendo la misma.
Una disposición muy común son los sistemas multicapa en los que el servidor se
descompone en diferentes programas que pueden ser ejecutados por diferentes
computadoras aumentando así el grado de distribución del sistema.
La arquitectura cliente-servidor sustituye a la arquitectura monolítica en la que no hay
distribución, tanto a nivel físico como a nivel lógico.
En la arquitectura C/S el remitente de una solicitud es conocido como cliente. Sus
características son:
Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la comunicación
(dispositivo maestro o amo).
Espera y recibe las respuestas del servidor.
Por lo general, puede conectarse a varios servidores a la vez.
Normalmente interactúa directamente con los usuarios finales mediante una interfaz gráfica
de usuario.
Al receptor de la solicitud enviada por cliente se conoce como servidor. Sus características
son:
Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un
papel pasivo en la comunicación (dispositivo esclavo).
Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente.
Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos casos el
número máximo de peticiones puede estar limitado).
No es frecuente que interactúen directamente con los usuarios finales.
ARQUITECTURA MULTICAPAS
La arquitectura cliente/servidor genérica tiene dos tipos de nodos en la red: clientes y
servidores. Consecuentemente, estas arquitecturas genéricas se refieren a veces como
arquitecturas de dos niveles o dos capas.
Algunas redes disponen de tres tipos de nodos:
Clientes que interactúan con los usuarios finales.
Servidores de aplicación que procesan los datos para los clientes.
Servidores de la base de datos que almacenan los datos para los servidores de aplicación.
Esta configuración se llama una arquitectura de tres-capas.
Ventajas de las arquitecturas n-capas:
La ventaja fundamental de una arquitectura n-capas comparado con una arquitectura de dos
niveles (o una tres-capas con una de dos niveles) es que separa hacia fuera el proceso, eso
ocurre para mejorar el balance la carga en los diversos servidores; es más escalable.
Desventajas de las arquitecturas de la n-capas:
Pone más carga en la red, debido a una mayor cantidad de tráfico de la red.
Es mucho más difícil programar y probar el software que en arquitectura de dos niveles
porque tienen que comunicarse más dispositivos para terminar la transacción de un usuario.
MEJORAS DE LA ARQUITECTURA CLIENTE-SERVIDOR
Centralización del control: los accesos, recursos y la integridad de los datos son controlados
por el servidor de forma que un programa cliente defectuoso o no autorizado no pueda
dañar el sistema. Esta centralización también facilita la tarea de poner al día datos u otros
recursos (mejor que en las redes P2P).
Escalabilidad: se puede aumentar la capacidad de clientes y servidores por separado.
Cualquier elemento puede ser aumentado (o mejorado) en cualquier momento, o se pueden
añadir nuevos nodos a la red (clientes y/o servidores).
Fácil mantenimiento: al estar distribuidas las funciones y responsabilidades entre varios
ordenadores independientes, es posible reemplazar, reparar, actualizar, o incluso trasladar
un servidor, mientras que sus clientes no se verán afectados por ese cambio (o se afectarán
mínimamente). Esta independencia de los cambios también se conoce como encapsulación.
Existen tecnologías, suficientemente desarrolladas, diseñadas para el paradigma de C/S que
aseguran la seguridad en las transacciones, la amigabilidad del interfaz, y la facilidad de
empleo.
INCONVENIENTES DE LA ARQUITECTURA CLIENTE-SERVIDOR
La congestión del tráfico ha sido siempre un problema en el paradigma de C/S. Cuando una
gran cantidad de clientes envían peticiones simultaneas al mismo servidor, puede ser que
cause muchos problemas para éste (a mayor número de clientes, más problemas para el
servidor). Al contrario, en las redes P2P como cada nodo en la red hace también de
servidor, cuantos más nodos hay, mejor es el ancho de banda que se tiene.
El paradigma de C/S clásico no tiene la robustez de una red P2P. Cuando un servidor está
caído, las peticiones de los clientes no pueden ser satisfechas. En la mayor parte de redes
P2P, los recursos están generalmente distribuidos en varios nodos de la red. Aunque
algunos salgan o abandonen la descarga; otros pueden todavía acabar de descargar
consiguiendo datos del resto de los nodos en la red.
El software y el hardware de un servidor son generalmente muy determinantes. Un
hardware regular de un ordenador personal puede no poder servir a cierta cantidad de
clientes. Normalmente se necesita software y hardware específico, sobre todo en el lado del
servidor, para satisfacer el trabajo. Por supuesto, esto aumentará el coste.
El cliente no dispone de los recursos que puedan existir en el servidor. Por ejemplo, si la
aplicación es una Web, no podemos escribir en el disco duro del cliente o imprimir
directamente sobre las impresoras sin sacar antes la ventana previa de impresión de los
navegadores.
Descargar