Bases de Datos

Fundamentos de BDs y algo más…

Archive for the ‘Introducción’ Category

Términos de repaso introductorios a BDs

Posted by fdonorat en 7 febrero 2009

Abstracción de datos: Técnica que permite diseñar estructuras de datos que consiste en representar las características esenciales de una estructura de datos, olvidándose de los detalles específicos de implementación de los datos, escondiendo la complejidad a los usuarios para simplificar su interacción con el sistema.

Administrador de Base de Datos (ABD): La persona que tiene el control central sobre el sistema gestor de bases de datos (SGBD), define el esquema, la estructura y método de acceso a la BD, modifica el esquema y controla organización física, pone las autorizaciones para el acceso a los datos y da mantenimiento a la BD.

Concurrencia: Ocurre cuando dos o más usuarios quieren acceder a los mismos datos al mismo tiempo.

Diccionario de datos: Conjunto de metadatos que contiene la características lógicas de los datos que se van a utilizar en el sistema (nombre, descripción, contenido y organización).

Ejemplar de la base de datos: Colección de información almacenada en la BD.

Esquema de la base de datos: Es el diseño completo de la BD (tablas, campos de cada tabla y relaciones entre cada campo y cada tabla).

  • Esquema físico: Diseño físico en el nivel físico.
  • Esquema lógico: Diseño de la BD en el nivel lógico.

Independencia física de los datos: Cuando los programas de aplicación no dependen del esquema físico y, por tanto, no deben ser modificados si cambia el esquema físico.

Lenguajes de BDs

  • Lenguaje de consultas: Lenguae que permite a los usuarios acceder y recuperar información almacenada en la BD.
  • Lenguaje de definición de datos: Especifica un esquema de BD mediante un conjunto de definiciones.
  • Lenguaje de manipulación de datos: Lenguaje para recuperar información almacenada, insertar información nueva, borrar información y modificar información de la BD.

Máquinas cliente y servidor: Las máquinas cliente son donde trabajan los usuarios remotos de la BD; las máquinas servidor son en las que se ejecuta el sistema de BD.

Metadatos: Datos acerca de los datos.

Modelos de datos: Colección de herramientas para describir datos, las relaciones entre ellos, su semántica y sus restricciones.

  • Modelo de datos orientado a objetos: Extensión del modelo entidad-relación con las nociones de encapsulación, métodos (funciones) e identidad de objeto.
  • Modelo de datos relacional: Utiliza un grupo de tablas para representar los datos y las relaciones entre ellos. Basado en registros.
  • Modelo de datos relacional orientado a objetos: Combina el model de datos orientado a objetos y el modelo de datos relacional.
  • Modelo entidad-relación (E-R): Basado en una percepción del mundo real que consta de una colección de objetos básicos llamados entidades, y de relaciones entre objetos.

Programa de aplicación: Programa que se usa para interactuar con la BD.

Sistema gestor de bases de datos (SGBD): Consiste en una colección de datos interrelacionados y una colección de programas para acceder a los datos. Proporciona un entorno conveniente y eficiente para los usuarios que lo usan para la recuperación y almacenamiento de la información.

Sistema de archivos: Estructuran la información guardada en una unidad de almacenamiento de una computadora, que luego será representada textual o gráficamente utilizando un gestor de archivos. Proveen métodos para crear, mover, renombrar y eliminar archivos y directorios.

Transacciones: Colección de operaciones que se lleva a cabo como una única función lógica en una aplicación de BD.

Vistas de datos: Dependiendo del usuario que necesite información de la BD, se le muestran ciertos elementos (vistas), proporcionándoles el sistema sólo una parte de la BD.

Posted in Introducción, Términos de repaso | Leave a Comment »

Conceptos de la Gestión de Transacciones

Posted by fdonorat en 7 febrero 2009

Transacción: Colección de información de operaciones que se lleva a cabo como una única función lógica (o proceso)  en una aplicación de bases de datos.

Atomicidad: Para un proceso completo que necesita de varios pasos para ser realizada completamente, todos los pasos deben completarse para dar finalizado el proceso; si ocurre un error en un paso el proceso no podrá ser completado, debiendo proceder a abortar la operación y restaurar al estado correcto anterior de los datos.

Consistencia: Los datos que son repetidos o relacionados y que se encuentran en diferentes archivos  deben coincidir o hacerse coincidir  en cada archivo.

Durabilidad: Los datos deben persistir a pesar de que ocurran fallas en el sistema.

Componente de Gestión de Transacciones: Parte del motor de bases de datos que se encarga de controlar y llevar a cabo las transacciones, cumpliento también con la atomicidad y la consistencia.

Gestor de Control de Concurrencia: Controla la interacción entre las transacciones concurrentes para asegurar la consistencia de la base de datos. Controla el orden de realizar transacciones cuando dos o más usuarios quieren hacerlo al mismo tiempo.

Posted in Introducción | Leave a Comment »

Tipos de Usuarios de la Base de Datos

Posted by fdonorat en 7 febrero 2009

Usuarios normales. Son usuarios no sofisticados que interactúan con el sistema mediante un programa de aplicación con una interfaz de formularios, donde puede rellenar los campos apropiados del formulario. Estos usarios pueden también simplemente leer informes generados de la base de datos.

Programadores de aplicaciones. Son profesionales informáticos que escriben los programas de aplicación, utilizando herramientas para desarrollar interfaces de usuario, como las herramientas de desarrollo rápido de aplicaciones (DRA), que facilitan crear los formularios e informes sin escribir directamente el programa.

Usuarios sofisticados. Interactúan con el sistema sin programas escritos, usando el lenguaje  de consulta  de base de datos para hacer sus consultas. Los analistas que envían las consultas para explorar los datos en la base de datos entran en esta categoría, usando ellos las herramientas de procesamiento analítico en línea (OLAP, OnLine Analytical Processing), o herramientas de recopilación de datos.

Usuarios especializados. Son usuarios sofisticados que escriben aplicaciones de bases de datos especializadas y adecuadas para el procesamiento de datos tradicional. Entre estas aplicaciones están los sistemas de diseño asistido por computadora, sistemas de base de conocimientos y sistemas expertos,  sistemas que almacenan datos de tipos de datos complejos (como gráficos y de audio) y sistemas de modelado de entorno.

Administradores de la base de datos (ABD). Son las personas que tienen el control central del SGBD. Entre las funciones del ABD se encuentran:

  • Definición del esquema de la base de datos.
  • Definición de la estructura y el método de acceso.
  • Modificación del esquema y la organización física.
  • Concensión de autorización para el acceso a los datos.
  • Mantenimiento rutinario.

Posted in Introducción | 32 Comments »

Arquitecturas de aplicaciones

Posted by fdonorat en 7 febrero 2009

La mayoría de usuarios de un sistema de bases de datos no están situados actualmente junto al sistema de bases de datos, sino que se conectan a él a través de una red.

En una máquina cliente los usuarios trabajan remotos de la base de datos, en una máquina servidor se ejecuta el sistema de bases de datos.

Las aplicaciones de bases de datos se dividen usualmente en dos o tres partes. En una arquitectura de dos capas, la aplicación se divide en un componente que reside en la máquina cliente, que llama la funcionalidad del sistema de bases de datos en la máquina servidor mediante instrucciones del lenguaje de consultas.

En cambio, en una arquitectura de tres capas, la máquina cliente actúa simplemente como frontal y se comunica con un servidor de aplicaciones , usualmente mediante una interfaz de formularios. A su vez el servidor de aplicaciones se comunica con el sistema de bases de datos para acceder a los datos.

arquitecturas-de-aplicaciones2

Posted in Introducción | Leave a Comment »

Estructura de un sistema de bases de datos

Posted by fdonorat en 7 febrero 2009

Un sistema de bases de datos se divide en módulos que se encargan de cada una de las responsabilidades del sistema completo. A grandes rasgos se pueden dividir en los componentes gestor de almacenamiento y procesador de consultas.

Gestor de almacenamiento

Proporciona la interfaz entre los datos de bajo nivel en la base de datos y los programas de aplicación y consultas emitidas al sistema. Es responsable de la interacción con el gestor de archivos para realizar el almacenamiento, recuperación y actualización de los datos en la base de datos.

Entre sus componentes se incluyen:

  • Gestor de autorización e integridad, comprobando que se satisfagan las restricciones de integridad y la autorización de los usuarios para acceder a los datos.
  • Gestor de transacciones, asegura la consistencia de la base de datos a pesar de los fallos del sistema, y controla las transacciones concurrentes.
  • Gestor de archivos, gestiona la reserva de espacio de almacenamiento de disco y las estructuras de datos usadas para representar la información almacenada en disco.
  • Gestor de memoria intermedia, permite que la base de datos maneje tamaños de datos mucho mayores que el tamaño de la memoria principal.

Procesador de consultas

Ayuda al sistema de bases de datos a simplificar y facilitar el acceso a los datos.

Sus componentes incluyen:

  • Intérprete del LDD, interpreta las instrucciones del LDD y registra las definiciones en el diccionario de datos.
  • Compilador del LMD, traduce las instrucciones del LMD en un lenguaje de consultas a instrucciones de bajo nivel que entiende el motor de evaluación de consultas. El compilador del LMD también optimiza las consultas.
  • Motor de evaluación de consultas, ejecuta las instrucciones de bajo nivel generadas por el compilador del LMD.

Posted in Introducción | Leave a Comment »

Lenguajes de Bases de Datos

Posted by fdonorat en 6 febrero 2009

Un lenguaje ampliamente usado actualmente es el lenguaje SQL. Un sistema de bases de datos proporciona un lenguaje de definición de datos y  un lenguaje de manipulación de datos, los cuales forman partes de un único lenguaje de base de datos.

Lenguaje de definición de datos.

Especifica el esquema de la base de datos.

create table [nombre-tabla (nombre-campo1 tipo-dato, nombre-campo2 tipo-dato, … , nombre-campoN tipo-dato)

Con esa sentencia de SQL se crea una tabla y además actualiza un conjunto especial de tablas denominado diccionario o directorio de datos, el cual contiene metadatos, es decir, datos acerca de los datos.

Lenguaje de manipulación de datos.

Permite a los usuarios recuperar información almacenada, insertar nueva información, borrar información y modificar información de la base de datos.

Una consulta es una instrucción de solicitud para recuperar información.

– Instrucciones de SQL para manipulación de los datos –

Para consultar:

select [nombre-campo1, nombre-campo2, … , nombre-campoN] from [nombre-tabla]

Para agregar:

insert into [nombre-tabla] ([lista-de-campos-a-insertar]) values ([valores])

Para borrar:

delete from [nombre-tablas] where [criterios]

Para modificar:

update [nombre-tablas] set [nombre-campo = nuevo-valorwhere […]

Posted in Introducción | Leave a Comment »

Historia y evolución de las bases de datos

Posted by fdonorat en 6 febrero 2009

Las bases de datos se han constituido como una de las herramientas más ampliamente difundidas en la actual sociedad de la información, utilizadas como fuentes secundarias en cuanto recuperación y almacenamiento de información en todos los campos a nivel científico, social, económico, político y cultural.

Las bases de datos son una herramienta de vital importancia para el desarrollo de la actividad profesional; han sido utilizadas especialmente como fuentes de consulta y de producción de conocimiento por investigadores, científicos y académicos de todas las áreas, que han encontrado en éstas, una herramienta importante para el desarrollo del conocimiento.

El documento presentado a continuación contiene una breve reseña del origen y la evolución de las bases de datos a lo largo del tiempo.

Historia y Evolución de las Bases de Datos

Posted in Introducción | 7 Comments »

Modelos de los datos

Posted by fdonorat en 5 febrero 2009

Un modelo de datos es una colección de herramientas que servirá para describir los datos, las relaciones, la semántica y las restricciones  para la consistencia de las bases de datos.

Modelo entidad-relación (E-R)

Está basado en la precepción del mundo real que consta de una colección de objetos básicos llamados entidades, y de relaciones entre estos objetos. Una entidad es una cosa u objeto del mundo real que se distingue de otros objetos. Las entidades se describen en una base de datos mediante un conjunto de atributos. Una relación es una asociación entre varias entidades. Al conjunto de todas las entidades del mismo tipo se le llama conjunto de entidades, y al conjunto de todas las relaciones del mismo tipo se le llama conjunto de relaciones.

La estructura lógica de una BD se puede expresar gráficamente mediante un diagrama E-R. Por ejemplo:

diagrama-e-r

  • Rectángulos: Representan conjuntos de entidades.
  • Elipses: Representan atributos.
  • Rombos: Representan relaciones entre conjuntos de entidades.
  • Líneas: Unen los atributos con los conjuntos de entidades y los conjuntos de entidades con las relaciones.

Modelo relacional

Se utilizan tablas para representar los datos y las relaciones entre ellos. Las tablas estasn compuestas por columnas, y cada columna tiene un nombre único. Por ejemplo:

tablas-relacionales

El modelo relacional está basado en registros. Las columnas de la tabla corresponden a los atributos del tipo de registro. Este modelo es el más ampliamente usado.

Otros modelos de datos

Otros modelos que se han desarrollado son por ejemplo:

Modelo de datos orientado a objetos, que es una extención del modelo E-R con nociones de encapsulación, métodos o funciones, e identidad de objetos.

Modelo de datos relacional orientado a objetos, que combina las características del modelo de datos orientado a objetos y el modelo de datos relacional.

Modelo de dato de red y el Modelo de datos jerárquico precedieron al modelo de datos relacional.

Posted in Introducción | 1 Comment »

Abstracción y visión de datos

Posted by fdonorat en 4 febrero 2009

La abstracción de datos es una técnica o metodología que permite diseñar estructuras de datos. La abstracción consiste en representar bajo ciertos lineamientos de formato las características esenciales de una estructura de datos. Este proceso de diseño evita los detalles específicos de implementación de los datos.

Un sistema de base de datos mostrará la información que un usuario requiera, la forma de mostrarla dependerá del usuario mismo, escondiendo la complejidad (como la forma de tratar los datos, el cómo están almacenados, detalles que el usuario no necesita conocer) a los usuarios para simplificar su interacción con el sistema.

Este proceso se realiza a través de varios niveles de abstracción:

  • Nivel Físico: Describe cómo se almacenan realmente los datos. Se describen en detalle las estructuras de datos complejas de bajo nivel.
  • Nivel Lógico: Es el siguiente nivel más alto de abstracción. Describe qué datos se almacenan en la base de datos y qué relaciones existen entre esos datos.  Los administradores de bases de datos, que deben decidir la información que se mantiene en la base de datos, usan el nivel lógico de abstracción.
  • Nivel de Vistas: El nivel más alto de abstracción describe sólo parte de la base de datos completa. Los usuarios que utilizan este nivel de abstracción tienen una gran simplificación en su interacción con el sistema, ya que ven un conjunto de programas de aplicación (vistas) que esconden los detalles de los tipos de datos. Además de esconder detalles de nivel lógico también proporcionan un mecanismo de seguridad para evitar que los usuarios accedan a ciertas partes, prohibidas para ellos, de la base de datos.

Ejemplares y esquemas.

  • Ejemplar de la base de datos: Colección de información almacenada en la base de datos en un momento particular.
  • Esquema de la base de datos:Es el diseño completo de la base de datos (tablas, campos de cada tabla y relaciones entre cada campo y cada tabla). A menudo se refiere a una representación gráfica de la estructura de la base de datos. De acuerdo al nivel de abstracción, el esquema se divide en esquema físico, que describe el diseño físico en el nivel físico, y el esquema lógico, que describe el diseño de la base de datos en el nivel lógico.

Posted in Introducción | Leave a Comment »

Sistemas de Bases de Datos vs. Sistemas de Archivos

Posted by fdonorat en 2 febrero 2009

Una manera de mantener información en un computador es hacerlo mediante un sistema de procesamiento de archivos típico o tradicional, que permitirá tener a los archivos estructurados y organizados, y poder realizar operaciones con ellos. Este sistema de archivos se mantiene mediante un sistema operativo convencional. Antes de la llegada de los sistemas de gestión de bases de datos (SGBD), las organizaciones normalmente han almacenado la información usando estos sistemas, pero mantener la información en estos sistemas de archivos tiene una serie de inconvenientes importantes:

  • Redundancia e inconsistencia de datos. Existen datos que pueden repetirse en diferentes lugares o archivos, esto provoca que, teniendo esa duplicidad de datos, el almacenamiento y el costo (en recursos del sistema) de acceso sean más altos. Inconsistencia de datos se presentará porque las copias de los mismos datos en diferentes archivos pueden no coincidir, pues si en un archivo se hicieron cambios de los datos, en los otros archivos donde estaban los mismos datos no son modificados automáticamente.
  • Dificultad en el acceso a los datos. Cuando se requiere de ciertos datos diferentes de archivos diferentes, la obtención, consulta y modificación de los datos no puede hacerse dirtectamente de forma práctica y eficiente. Tendrían que desarrollarse sistemas de recupración de datos para realizar esa operación específica, o desarrollar un sistema de recuperación de datos para uso general y ajustarlo de acuerdo a las necesidades.
  • Aislamiento de datos. Debido a que los datos están dispersos en varios archivos, y los archivos pueden estar en diferentes formatos, es difícil escribir nuevos programas de aplicación para recuperar los datos apropiados.
  • Problemas de integridad. Los valores de los datos almacenadosen la BD deben satisfacer ciertas restricciones de consistencia. Los desarrolladores hacen cumplir estas restricciones en el sistema añadiendo código apropiado en las diversas aplicaciones. Sin embargo, cuando se añaden nuevas restricciones es difícil cambiar los programas para hacer que se cumplan. Esto se complica cuando las restricciones implican diferentes elementos de datos de diferentes archivos.
  • Problemas de atomicidad. En muchas aplicaciones es crucial asegurar que, cuando ocurra un fallo y sea detectado, se restauren los datos a un estado de consistencia que existía antes del fallo. Es difícil asegurar esta propiedad en un sistema de archivos tradicional.
  • Anomalías en el acceso concurrente. en estos sistemas un entorno en el que permita a múltiples usuarios actualizar los datos de un mismo archivo simultáneamiente puede dar lugar a datos inconsistentes o un estado incorrecto.
  • Problemas de seguridad. No todos los usuarios de un sistema de bases de datos deberían poder acceder a todos los datos. En estos sistemas es difícil garantizar tales restricciones de seguridad.

Estas dificultades, entre otras, han motivado el desarrollo de los sistemas de bases de datos para resolver estos problemas.

Posted in Introducción | 3 Comments »