jueves, 25 de agosto de 2011

SISTEMAS DE ARCHIVOS

Un sistema  de  archivos  es  un conjunto  de  programas  que  prestan  servicio  a los  usuarios finales, donde  cada programa define y maneja sus propios datos.

Los  sistemas  de  archivos surgen  de  la necesidad  de  reemplazar  el  manejo  de  los  archivos manuales  para obtener  acceso  a los  datos  con  mayor  rapidez.  Estos  sistemas  de  archivos presentaban  un modelo  descentralizado  para el manejo  de  sus datos,  lo que  representaba que cada núcleo de la organización donde  se manejaba el sistema  de archivos almacenaba  y gestionaba sus propios datos.
Los  sistemas   de  archivos  presentan   algunos  inconvenientes   que  se  atribuyen  a  que  la definición de los datos  se encuentra  codificada  dentro  de los programas  de aplicación, y no siendo  almacenada de forma independiente a las aplicaciones.  Además  no hay control sobre el acceso  y manipulación de  los  datos  diferente  al que  proporciona  la aplicación diseñada para el sistema de archivos.
Debido a los inconvenientes  que presentaban  los sistemas  de archivos surgieron las Bases deDatos y los Sistemas  de Gestión  de Base de Datos.

BASE DE DATOS

Una base  de  datos  es  un conjunto  de  datos  almacenados  entre  los  que  existen  relaciones lógicas   y  ha  sido  diseñada   para  satisfacer   los  requerimientos  de   información   de   una organización, almacenando  en ella su descripción.
En las bases  de datos  se almacenan grandes  cantidades  de datos,  que son definidos  una sola vez  y  que  pueden  ser  accesados   por  varios  usuarios  a  la  vez,  teniendo   todos   los  datos integrados  y creando  una dependencia  de datos  a la organización y no a los departamentos o  núcleos  de  la misma,  eliminando  la redundancia  de  datos  y estableciendo una mínima duplicidad de los datos.
Cada dato  de la base de datos  almacena una descripción  de los mismos que es denominada metadatos, la cual se almacena en el diccionario de datos o catálogo  y es lo que permite  que exista una independencia  de los datos  lógico-física.
Los sistemas de información separan la definición de la estructura de datos  de los programas de aplicación y almacenan esta definición en la base de datos,  lo que permite  que al añadir o modificar  estructura  de  datos,  los programas  de  aplicación no se ven afectados, ya que no dependen directamente de ello.

SISTEMA DE GESTIÓN DE BASE DE DATOS (SGBD) DATA BASE MANAGMENT SYSTEM (DBMS)

Los  sistemas  de  Gestión  de  Bases  de  Datos,  son  aplicaciones  que  permiten  a los  usuarios definir, crear y mantener  la base  de datos  y proporciona  un acceso  controlado  a la misma.
Los SGBD es la aplicación que interactúa con los usuarios de los programas de aplicación y la base de datos.
Algunos  de  los  SGBD más  conocidos  son:  SQL, DB2, SLQ/DS,  ORACLE, INGRES,  INFORMIX,
SYBASE, PARADOX, DBASE, ACCESS, FOXPRO, R, RM/T y RM/V2.

OBJETIVOS DE UN SGBD

 Definir la Base  de  Datos  mediante  el Lenguaje  de  Definición de  Datos,  el cual permite especificar  la estructura,  tipo  de datos  y las restricciones  sobre  los datos,  almacenándolo todo  en la base de datos.
 Separar  la descripción  y manipulación de  la data,  permitiendo  un mayor entendimiento de los objetos, además de flexibilidad de consulta y actualización de los datos.
 Permitir  la  inserción,   eliminación,   actualización,   consulta   de   los   datos   mediante   el Lenguaje  de  Manejo  de  Datos,  lo  que  permite  resolver  el  problema  que  presentan  los sistemas  de  archivos,  donde  hay  que  trabajar  con  un  conjunto  fijo  de  consultas  o  la necesidad  de tener muchos programas de aplicaciones. Existen dos tipos de programas de Manejo de Datos, los cuales se diferencian por la forma en que acceden  a los datos.
•         Lenguajes  procedurales:   manipulan la base  de  datos  registro  a registro  y se  deben especificar las operaciones a realizar para obtener  los datos  resultado.
•         Lenguajes  no procedurales:  manipulan la base  de datos  en conjuntos  de registros  y se especifican  qué  datos  deben   obtenerse  como   resultado   sin  plantear  las  forma  de hacerlo. El lenguaje no procedural más utilizado es SQL (Structure Query Languaje) que se ha convertido  en un estándar y el lenguaje por defecto de los SGBD relacionales.
 Proporcionar  acceso  controlado  a la base de datos.
• Seguridad:  los usuarios no autorizados no pueden acceder a la base de datos.
• Integridad: mantiene la integridad y consistencia de la base de datos.
• Control de Recurrencia: permite el acceso compartido  a la base de datos.
• Control  de  Recuperación:  restablece la base  de  datos  después  de  producirse  un fallode software o hardware.
• Diccionario de  datos  o  Catálogo:  contiene  la descripción  de  los  datos  de  la base  dedatos y es accesible  por el usuario.
 Gestionar la estructura física de los datos y su almacenamiento, proporcionando eficiencia en las operaciones de la base de datos y el acceso  al medio de almacenamiento.
 Proporcionar  un mecanismo  de vistas, que permita a cada usuario tener  su propia vista o visión de  la base  de  datos.  El lenguaje  de  definición  nos  permite  definir las vistas como subconjuntos  de la base de datos,  permitiendo:
• Proporcionar  un nivel  de  seguridad  excluyendo  datos  para  que  no  sean  vistos  por determinados usuarios.
•         Permiten que los usuarios vean los datos en el formato  deseado.
•         Una vista representa  una imagen  consistente y permanente  de  la base  de  datos,  aúncuando a la base de datos se le hagan cambios en sus estructura.
 Eliminar  la  redundancia  de  datos,   establecer  una  mínima  duplicidad  en  los  datos   y minimizar el espacio en disco utilizado.
 Proveer  interfaces  procedimentales y no  procedimentales, permitiendo  la manipulación por usuarios interactivos y programadores.
 Independizar la estructura de la organización lógica de los datos (Independencia  física).
 Independizar la descripción  lógica de la Base de datos  y las descripciones  particulares de los diferentes  puntos de vistas de los usuarios.
 Permitir una fácil administración de los datos.

ACTORES EN EL ENTORNO DE UNA BASE DE DATOS

•      Administrador  de la base  de datos:  se encarga del diseño  físico de la base  de datos  y de su implementación, realiza el control  de  la seguridad  y de  la concurrencia,  mantiene  el sistema  para que  siempre  se encuentre  operativo  y se encarga  de  que  los usuarios y las aplicaciones  obtengan buenas  prestaciones. El administrador  debe  conocer  muy bien  el SGBD  que   se   esté   utilizando,   así  como   el   equipo   informático   sobre   el  que   esté funcionando.
•          Diseñadores  de la base  de datos:  realizan el diseño  lógico  de la base de datos,  debiendo identificar  los  datos,  las relaciones  entre  datos  y las restricciones  sobre  los  datos  y sus relaciones.  El diseñador  de la base de datos  debe  tener  un profundo  conocimiento de los datos  de la empresa  y también debe  conocer  sus reglas de negocio.  Las reglas de negocio describen  las características principales de los datos tal y como  las ve la empresa.
El diseñador  de  la base  de  datos  debe  implicar en  el desarrollo  del  modelo  de  datos  a todos  los usuarios de la base de datos,  tan pronto como  sea posible.  El diseño lógico de la base   de   datos   es   independiente   del   SGBD   concreto    que   se   vaya   a   utilizar,  es independiente de  los  programas  de  aplicación,  de  los  lenguajes  de  programación  y de cualquier otra consideración  física.
•          Programadores de aplicaciones: se encargan de implementar  los programas de aplicación que  servirán a los  usuarios finales.  Estos  programas  de  aplicación  son  los  que  permiten consultar   datos,   insertarlos,   actualizarlos  y  eliminarlos.   Estos   programas   se  escriben mediante  lenguajes de tercera generación  o de cuarta generación.
•      Usuarios  finales:  consultan,  actualizan  y  generan  reportes   de  la  base  de  datos.  A  los usuarios finales también se les llama clientes de la base de datos.

VENTAJAS DE LOS SGBD

INTEGRACIÓN DE LOS DATOS
•      Control  sobre  la  redundancia  de  datos:  Los  sistemas  de  archivos  almacenan  variascopias de los mismos  datos  en archivos distintos.  Esto  hace que se desperdicie  espaciode  almacenamiento,  además   de  provocar  la  falta  de  consistencia   de  datos.   En  lossistemas  de  bases  de  datos  todos  estos  archivos  están  integrados,   por  lo  que  no  sealmacenan varias copias de los mismos datos.  Sin embargo,  en una base de datos no sepuede  eliminar la redundancia completamente, ya que en ocasiones  es necesaria  paramodelar   las   relaciones   entre   los   datos,    o   bien   es   necesaria   para   mejorar   lasprestaciones.
•          Consistencia  de  datos:  Eliminando o controlando  las redundancias de datos  se reduce en gran medida  el riesgo  de que haya inconsistencias.  Si un dato  está almacenado  una sola  vez, cualquier actualización se  debe  realizar sólo  una vez, y está  disponible  para todos  los usuarios inmediatamente. Si un dato  está  duplicado  y el sistema  conoce  esta redundancia, el propio  sistema  puede  encargarse  de garantizar que todas  las copias se mantienen  consistentes.  Desgraciadamente,  no  todos   los  SGBD  de  hoy  en  día  se encargan de mantener automáticamente la consistencia.
•          Más  información   sobre   la  misma   cantidad   de   datos:   Al  estar   todos   los  datos integrados,  se puede  extraer información adicional sobre los mismos.
•      Compartición  de  datos:  En  los  sistemas  de  archivos,  los  archivos  pertenecen  a  las personas  o  a  los  departamentos  que  los  utilizan. Pero  en  los  sistemas  de  bases  de datos,  la base  de datos  pertenece a la empresa  y puede  ser compartida  por todos  los usuarios que estén  autorizados.  Además,  las nuevas aplicaciones  que se vayan creando pueden utilizar los datos de la base de datos existente.
•          Mantenimiento   de  estándares:   Gracias  a  la  integración   es  más  fácil  respetar   los estándares  necesarios,  tanto  los establecidos a nivel de la empresa  como  los nacionales e internacionales.  Estos  estándares  pueden  establecerse sobre  el formato  de los datos para facilitar su intercambio,  pueden  ser estándares  de documentación, procedimientos de actualización y también reglas de acceso.
EXISTENCIA DE LOS SGBD
•         Mejora  en  la integridad  de  datos:  La integridad  de  la base  de  datos  se  refiere  a la validez y la consistencia  de los datos  almacenados. Normalmente, la integridad se expresa mediante  restricciones  o  reglas  que  no  se  pueden  violar. Estas  restricciones  se  pueden aplicar tanto  a los datos,  como  a sus relaciones,  y es el SGBD quien se debe encargar de mantenerlas.
•     Mejora   en  la  seguridad:  Los  SGBD  permiten   mantener   la  seguridad   mediante   el establecimiento  de  claves  para  identificar  al  personal  autorizado  a  utilizar la  base  de datos.  Las  autorizaciones  se  pueden  realizar a  nivel de  operaciones, de  modo  que  un usuario  puede  estar  autorizado  a  consultar  ciertos  datos  pero  no  a actualizarlos,  por ejemplo.
•        Mejora  en  la  accesibilidad   a  los  datos:  Muchos  SGBD  proporcionan   lenguajes  de consultas  o  generadores  de  informes  que  permiten  al usuario  hacer  cualquier  tipo  de consulta   sobre   los  datos,   sin  que   sea   necesario   que   un  programador   escriba   una aplicación que realice tal tarea.
•        Mejora  en  la productividad:  A nivel básico,  el SGBD proporciona  todas  las rutinas de manejo  de archivos típicas de los programas  de aplicación. El hecho de disponer  de estas funciones permite  al programador  centrarse  mejor en la función específica  requerida por los usuarios, sin tener que preocuparse  de los detalles  de implementación  de bajo nivel.
•        Mejora  en  el mantenimiento gracias  a la independencia  de  datos:  Los SGBD separan las  descripciones   de  los  datos   de  las  aplicaciones.   Esto  es  lo  que  se  conoce   como independencia    de  datos,   gracias   a  la  cual  se   simplifica   el   mantenimiento   de   las aplicaciones que acceden  a la base de datos.
•        Aumento  de la concurrencia: La mayoría de los SGBD gestionan  el acceso  concurrente a  la base  de  datos  y garantizan que  no  ocurran  problemas  en  el  acceso  de  múltiples usuarios.
•        Mejora  en  los  servicios  de  copias  de  seguridad  y  de  recuperación  ante  fallos:  Los SGBD actuales funcionan de modo  que se minimiza la cantidad de trabajo perdido cuando se produce un fallo.

INCONVENIENTES DE LOS SGBD

•      Complejidad:   Los  SGBD  son  conjuntos   de  programas  muy  complejos   con  una  gran funcionalidad.  Es preciso  comprender  muy bien  esta  funcionalidad  para poder  sacar un buen partido de ellos.
•      Tamaño:  Los  SGBD  son  programas  complejos  y muy  extensos  que  requieren  una gran cantidad de espacio en disco y de memoria para trabajar de forma eficiente.
•      Coste  económico del SGBD: El coste  de un SGBD varía dependiendo del entorno  y de la funcionalidad que ofrece.  Además,  hay que pagar una cuota anual de mantenimiento que suele ser un porcentaje  del precio del SGBD.
•          Costo  del equipamiento adicional: Tanto el SGBD, como  la propia base de datos,  pueden hacer que sea necesario  adquirir más espacio  de almacenamiento. Además,  para alcanzar las prestaciones  deseadas, es  posible  que  sea  necesario  adquirir una máquina  con  más prestaciones  o una máquina que se dedique  solamente al SGBD.
•      Costo  de  la conversión:  En algunas  ocasiones,  el costo  del  SGBD y el costo  del  equipo informático  que  sea  necesario  adquirir para  su  buen  funcionamiento,   es  insignificante comparado  al coste  de convertir la aplicación actual en un sistema de bases de datos.  Este coste  incluye el coste  de enseñar  a la plantilla a utilizar estos  sistemas  y, probablemente, el costo  del personal especializado  para ayudar a realizar la conversión y poner en marcha el sistema.
•          Prestaciones:  Los  SGBD  están  escritos  para  ser  más  generales   y  ser  útiles  en  muchas aplicaciones,  lo que  puede  hacer que  algunas de  ellas no sean  tan rápidas como  en los sistemas de archivos.
•      Vulnerable  a los fallos:  El hecho  de  que  todo  esté  centralizado  en el SGBD hace que  el sistema sea más vulnerable ante los fallos que puedan producirse.