lunes, 24 de agosto de 2009
1. Introducción
1.1 Aplicación de bases de datos
1.1.1 Antecedentes
La información ha llegado a ser el eje que mueve a la mayoría de las organizaciones hoy día
La cantidad de información que se maneja actualmente es en extremo enorme.
Se tiene la necesidad de tenerla perfectamente organizada de manera que pueda ser accesada fácilmente y por otro lado se debe tener disponible todo el tiempo (sistemas 24x7)
La solución: las personas de computación han desarrollado conceptos, técnicas y sistemas bajo un tópico conocido como "bases de datos" (databases)
1.1.2 Definición
Surgen entonces los primeros conceptos:
Dato: es la representación física de un aspecto de la realidad
Base de datos: conjunto de datos, que pueden estar organizados y/o interrelacionados de alguna manera con un propósito particular
DBMS*: Sistema Manejador de Bases de Datos (DataBase Manager/Management System) es una colección e datos interrelacionados y un conjunto de programas para accesarlos. En otras palabras un sistema para crear, manipular y aprovechar bases de datos.*Algunos lo llaman SGBD (Sistema Gestionador de Bases de Datos)
1.1.3 Escenarios de bases de datos
Podemos afirmar que las bases de datos están en todas partes, cualquier problema que podamos pensar podemos asociar una base de datos
Bancos: cuentas, transacciones, fondos de ahorro, SAR
Aerolíneas: reservaciones, pasajes, suministros, personal de vuelos
Escuelas: cursos, calificaciones, horarios
Negocios: compras, proveedores, ventas, clientes, devoluciones
Fábricas: flujo de procesos, almacenes, envíos
Recursos Humanos: empleados, puestos, salarios, impuestos, prestaciones
Curiosamente el uso de las bases de datos puede llegar a ser tan transparente que para algunos pareciera que no existen como en las transacciones de web o el cajero del banco (ATM).
1.2 Sistemas de bases de datos vs sistemas de archivos(Databases vs File Systems)
El camino hacia las bases de datos ha sido largo y en el trayecto se han desarrollado un gran número de técnicas que forman los cimientos de las bd y de otras tecnologías.
Dentro de estas técnicas tenemos:
Archivos, Sistemas de Archivos, Acceso y manipulación de archivos, Indices
Pero...
por qué no es suficiente utilizar las herramientas anteriores y es necesario emplear un DBMS ?no es lo mismo ?cuál es la diferencia ?
No es lo mismo, un sistemas de archivos aún cuando pensemos que contiene lógicamente archivos y que se cuenta con índices para accesar los registros en ellos, carece de mucha funcionalidad que se emplea en la mayoría de las aplicaciones, aunque como se mencionó anteriormente, un DBMS emplea sistemas de archivos e índices para la manipulación de datos.
La funcionalidad adicional que provee un DBMS surge en base de algunos inconvenientes al emplear sistemas de archivos únicamente:
Redundancia de datos e inconsistencias (Redundancy and Inconsistency): formatos, duplicidad de información (alto costo de almacenamiento y acceso) e incongruencia entre datos o copias de datos a lo largo del sistema.
Dificultad de acceso (Access): en un sistema de archivos no se pueden obtener aquellos datos que no estén implantados en un programa, se carece de niveles de abstracción.
Aislamiento de datos (Isolation): debido al factor tiempo y los requerimientos que van surgiendo se puede llegar a tener un problema al intentar separar un conjunto de datos porque ya se tiene un enredo en los archivos y se podría dar el caso en que dos usuarios estén manipulando la misma información pero de distinta manera.
Integridad (Integrity): si queremos asociar dos datos, por ejemplo un alumno con una materia que esté cursando, debemos asegurarnos que ambas entidades existan, de lo contrario el alumno parecerá cursando un curso fantasma y viceversa. Para ello se emplean "restricciones de consistencia" (consistency constraints)
Atomicidad (Atomicity): el problema clásico de transacciones bancarias, u ocurre toda la transacción o no ocurre nada pero no puede quedarse a medias.
Acceso concurrente (Concurrent-access): garantizar un buen tiempo de respuesta, que todos los usuarios puedan accesar y/o modificar la información; esto no es fácil porque también hay que considerar que aunque los datos son los mismos, las aplicaciones no necesariamente lo son.
Seguridad (Security): no toda la información debe estar disponible a todos los usuarios, algunos usuarios solo tendrán permisos de lectura, esto es relativamente sencillo de resolver aplicando "roles" pero el problema aumenta cuando en luegar de pensar en terminos de usuarios pensamos en terminos de aplicaciones ya que el número de roles y sus combinaciones aumenta y mantener las restricciones de seguridad se torna complicado.
Podemos entonces extender la definición de DBMS como un sistema robusto que es capaz de emplear algoritmos de almacenamiento y recuperación de información para poder implementar un modelo de datos de manera física garantizando que todas las transacciones que se realizan con respecto a dichos datos sean "ácidas" (Atomicity, Consistency, Isolation, Durability).
1.3 Vistas de datos
Una de las ventajas de emplear una base de datos es que los datos se pueden ver a distintos niveles de abstracción, separando por ejemplo detalles de almacenamiento y mantenimiento.
Niveles de abstracción:
Nivel Físico: el más bajo y define cómo los datos son almacenados
Nivel Lógico: define qué datos hay almacenados y cómo se relacionan
Nivel de visión: más alto nivel, define vistas de "partes" de la base de datos, esto para restringir el acceso a determinados datos o bien para simplificar la interacción
1.4 Modelos de datos
1.4.1 Definición
Un modelo de datos es una colección de herramientas conceptuales para describir datos, sus relaciones, semántica y restricciones de consistencia
Exiten 3 niveles de modelado:
Conceptual
Modelo Entidad-Relación
Lógico
Modelo Relacional
Físico
Implementación en el DBMS
1.1 Aplicación de bases de datos
1.1.1 Antecedentes
La información ha llegado a ser el eje que mueve a la mayoría de las organizaciones hoy día
La cantidad de información que se maneja actualmente es en extremo enorme.
Se tiene la necesidad de tenerla perfectamente organizada de manera que pueda ser accesada fácilmente y por otro lado se debe tener disponible todo el tiempo (sistemas 24x7)
La solución: las personas de computación han desarrollado conceptos, técnicas y sistemas bajo un tópico conocido como "bases de datos" (databases)
1.1.2 Definición
Surgen entonces los primeros conceptos:
Dato: es la representación física de un aspecto de la realidad
Base de datos: conjunto de datos, que pueden estar organizados y/o interrelacionados de alguna manera con un propósito particular
DBMS*: Sistema Manejador de Bases de Datos (DataBase Manager/Management System) es una colección e datos interrelacionados y un conjunto de programas para accesarlos. En otras palabras un sistema para crear, manipular y aprovechar bases de datos.*Algunos lo llaman SGBD (Sistema Gestionador de Bases de Datos)
1.1.3 Escenarios de bases de datos
Podemos afirmar que las bases de datos están en todas partes, cualquier problema que podamos pensar podemos asociar una base de datos
Bancos: cuentas, transacciones, fondos de ahorro, SAR
Aerolíneas: reservaciones, pasajes, suministros, personal de vuelos
Escuelas: cursos, calificaciones, horarios
Negocios: compras, proveedores, ventas, clientes, devoluciones
Fábricas: flujo de procesos, almacenes, envíos
Recursos Humanos: empleados, puestos, salarios, impuestos, prestaciones
Curiosamente el uso de las bases de datos puede llegar a ser tan transparente que para algunos pareciera que no existen como en las transacciones de web o el cajero del banco (ATM).
1.2 Sistemas de bases de datos vs sistemas de archivos(Databases vs File Systems)
El camino hacia las bases de datos ha sido largo y en el trayecto se han desarrollado un gran número de técnicas que forman los cimientos de las bd y de otras tecnologías.
Dentro de estas técnicas tenemos:
Archivos, Sistemas de Archivos, Acceso y manipulación de archivos, Indices
Pero...
por qué no es suficiente utilizar las herramientas anteriores y es necesario emplear un DBMS ?no es lo mismo ?cuál es la diferencia ?
No es lo mismo, un sistemas de archivos aún cuando pensemos que contiene lógicamente archivos y que se cuenta con índices para accesar los registros en ellos, carece de mucha funcionalidad que se emplea en la mayoría de las aplicaciones, aunque como se mencionó anteriormente, un DBMS emplea sistemas de archivos e índices para la manipulación de datos.
La funcionalidad adicional que provee un DBMS surge en base de algunos inconvenientes al emplear sistemas de archivos únicamente:
Redundancia de datos e inconsistencias (Redundancy and Inconsistency): formatos, duplicidad de información (alto costo de almacenamiento y acceso) e incongruencia entre datos o copias de datos a lo largo del sistema.
Dificultad de acceso (Access): en un sistema de archivos no se pueden obtener aquellos datos que no estén implantados en un programa, se carece de niveles de abstracción.
Aislamiento de datos (Isolation): debido al factor tiempo y los requerimientos que van surgiendo se puede llegar a tener un problema al intentar separar un conjunto de datos porque ya se tiene un enredo en los archivos y se podría dar el caso en que dos usuarios estén manipulando la misma información pero de distinta manera.
Integridad (Integrity): si queremos asociar dos datos, por ejemplo un alumno con una materia que esté cursando, debemos asegurarnos que ambas entidades existan, de lo contrario el alumno parecerá cursando un curso fantasma y viceversa. Para ello se emplean "restricciones de consistencia" (consistency constraints)
Atomicidad (Atomicity): el problema clásico de transacciones bancarias, u ocurre toda la transacción o no ocurre nada pero no puede quedarse a medias.
Acceso concurrente (Concurrent-access): garantizar un buen tiempo de respuesta, que todos los usuarios puedan accesar y/o modificar la información; esto no es fácil porque también hay que considerar que aunque los datos son los mismos, las aplicaciones no necesariamente lo son.
Seguridad (Security): no toda la información debe estar disponible a todos los usuarios, algunos usuarios solo tendrán permisos de lectura, esto es relativamente sencillo de resolver aplicando "roles" pero el problema aumenta cuando en luegar de pensar en terminos de usuarios pensamos en terminos de aplicaciones ya que el número de roles y sus combinaciones aumenta y mantener las restricciones de seguridad se torna complicado.
Podemos entonces extender la definición de DBMS como un sistema robusto que es capaz de emplear algoritmos de almacenamiento y recuperación de información para poder implementar un modelo de datos de manera física garantizando que todas las transacciones que se realizan con respecto a dichos datos sean "ácidas" (Atomicity, Consistency, Isolation, Durability).
1.3 Vistas de datos
Una de las ventajas de emplear una base de datos es que los datos se pueden ver a distintos niveles de abstracción, separando por ejemplo detalles de almacenamiento y mantenimiento.
Niveles de abstracción:
Nivel Físico: el más bajo y define cómo los datos son almacenados
Nivel Lógico: define qué datos hay almacenados y cómo se relacionan
Nivel de visión: más alto nivel, define vistas de "partes" de la base de datos, esto para restringir el acceso a determinados datos o bien para simplificar la interacción
1.4 Modelos de datos
1.4.1 Definición
Un modelo de datos es una colección de herramientas conceptuales para describir datos, sus relaciones, semántica y restricciones de consistencia
Exiten 3 niveles de modelado:
Conceptual
Modelo Entidad-Relación
Lógico
Modelo Relacional
Físico
Implementación en el DBMS
Suscribirse a:
Enviar comentarios (Atom)

No hay comentarios:
Publicar un comentario