Bases de datos

Sunday, February 26, 2006

Introduccion a los sistemas de bases de datos

1. Introducción a los sistemas de bases de datos.

1.1 Sistemas de información y bases de datos.

¿Qué es una base de datos? En lo esencial, no es otra cosa que una colección de información que existe durante un periodo largo, a menudo, de muchos años.

Con la expresión base de datos se designa una colección de datos que es administrada por un sistema de administración de base de datos, que se abrevia DBMS (Data Base Management System).

Se espera que este sistema:

* Permita a los usuarios crear otras bases de datos y especificar su esquema por medio de un lenguaje especializado denominado lenguaje de definición de datos.

* Ofrezca a los usuarios la capacidad de consultar los datos y modificarlos, usando para ello un lenguaje apropiado, llamad a menudo lenguaje de consulta o lenguaje de manipulación de datos.

* Soporte el almacenamiento de cantidades muy voluminosas de datos, gigabytes o más durante un largo periodo, protegiéndolos contra accidentes o utilización no autorizada y permitiendo el acceso eficiente para hacer consultas y modificar las bases de datos.

* Controle el acceso simultáneo a los datos por parte de muchos usuarios, sin permitir que las acciones de uno de ellos afecte a los otros ni que los accesos simultáneos corrompan los datos accidentalmente.

Una base de datos es un conjunto de datos que pertenecen al mismo contexto almacenados sistemáticamente para su uso posterior. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta.

En la actualidad, y gracias al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos tienen formato electrónico, que ofrece un amplio rango de soluciones al problema de almacenar datos.

En informática existen los sistemas gestores de bases de datos (SGBD), que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de los sistemas gestores de bases de datos se estudian en informática.

Las aplicaciones más usuales son para la gestión de empresas e instituciones públicas. También son ampliamente utilizadas en entornos científicos con el objeto de almacenar la información experimental.

El objetivo primordial de un DBMS es proporcionar un entorno que sea a la vez conveniente y eficiente para ser utilizado al extraer y almacenar información de la base de datos.

Los sistemas de bases de datos están diseñados para gestionar grandes bloques de información. La gestión de datos implica tanto la definición de estructuras para el almacenamiento de información como la provisión de mecanismos para la gestión de la información.

Además, los sistemas de bases de datos deben mantener la seguridad de la información almacenada, pese a caídas del sistema o intentos de accesos no autorizados. Si los datos van a ser compartidos por varios usuarios, el sistema debe evitar posibles resultados anómalos.

1.1.1 Concepto de sistema de información.

Un sistema de información es un conjunto de elementos que interactúan entre sí con el fin de apoyar las actividades de una empresa o negocio.

El recurso humano que interactúa con el Sistema de Información, el cual está formado por las personas que utilizan el sistema.

Un sistema de información puede definirse técnicamente como un conjunto de componentes interrelacionados que permiten capturar, procesar, almacenar y distribuir la información para apoyar la toma de decisiones y el control en una institución”.

Las empresas requieren información, entre otras cosas, para controlar sus actividades, tomar decisiones, crear nuevos productos y servicios, evaluar posibilidades de expansión, etc.

Para producir la información requerida, los sistemas de información llevan a cabo 3 procesos: alimentación del sistema, procesamiento de los datos y salida de la información propiamente dicha.

Los Sistemas de Información pueden ser informales, los cuales se rigen por acuerdos y normas no establecidas, como las redes de chismes que se presentan en las organizaciones. También pueden ser formales, basados en procedimientos estandarizados y previamente protocolizados. Se pueden clasificar en basados en computadores o en métodos manuales. Si son manuales comúnmente utilizan lápiz y papel para desarrollar sus actividades. Si son basados en computadores, utilizan toda la tecnología de hardware, software y telecomunicaciones, al igual que el estudio y actualización constante en Tecnologías de la Información. Comúnmente se les conoce como (Sistemas de Información Basados en Computadores SIBC).

Es importante tener en cuenta que los sistemas de información tienen una clasificación que los particulariza y los posiciona dentro de una organización.

1.2 Sistemas de información para la gestión y para la ayuda en la toma de decisiones.

Son incuestionables los enormes cambios que están ocurriendo, ya hace algunos años, en todo el mundo y que han provocado un cambio radical en la forma de gerenciar las instituciones, de lo que no escapan las científicas.

El poder del conocimiento, preconizado por Peter Drucker desde mediados del siglo XX, nos obliga a desarrollar sistemas eficientes y eficaces de gestión de la información, como un pilar fundamental para lograr una buena gestión del conocimiento en nuestras organizaciones.

Los Sistemas de Información tienen una enorme importancia en el incremento de la capacidad organizacional frente al cambio del entorno. La voluntad de lograr un sistema de información útil, que permita obtener una ventaja competitiva, implica la posibilidad de ofrecer múltiples, frecuentes, oportunas y relevantes informaciones.

Cualquier institución científica que abogue por alcanzar niveles elevados de eficiencia y eficacia en la gestión de sus funciones sustantivas debe considerar el desarrollo de iniciativas dirigidas en este sentido.

Los sistemas de información van mucho más allá que el diseño y desarrollo del subsistema informático. Un sistema de información puede definirse (Laudon y Laudon, 1996) como "un conjunto de componentes interrelacionados que permiten capturar, procesar, almacenar y distribuir información para apoyar la toma de decisiones y el control de una institución", además de ayudar a dichos directivos y personal a analizar problemas, visualizar cuestiones complejas y crear nuevos productos en un ambiente intensivo de información. La gestión de la información está orientada al control, preservación y retención de la información (Bouthillier y Shearer, 2002)

Las necesidades de información pueden ser relativas a hechos presentes o a situaciones futuras, con el objetivo de realizar una dirección proactiva. Las necesidades de información se agrupan según las unidades organizativas de la institución y las aplicaciones que cada una de ellas lleve a cabo. Resulta importante la necesidad de información sobre el entorno, implicando un mecanismo de observación que provea constantemente información relativa a los principales factores estratégicos:

* Competencia

* Tecnología

* Política, entre otros.

Igualmente, resulta una constante el análisis de información sobre aspectos claves de la organización como I+D, producción, recursos humanos y finanzas, entre otros. La elección o combinación de diversos procedimientos, lógicamente dependerá de las condiciones específicas de cada institución y de los individuos que la componen.

Los sistemas de información mejoran la eficiencia y eficacia de los procesos, sirven de ayuda para la toma de decisiones y agilizan la comunicación con los usuarios.

En el tiempo en que vivimos, en donde el acortar distancias y tiempo es lo predominante, la información veraz y oportuna es fundamental para poder dirigir acciones de mejoramiento. El hombre se ha encargado de crear diversos sistemas de comunicación y de almacenamiento de información y con la ayuda de los computadores, ha creado plataformas en las cuales ha desarrollado Sistemas de Información, buscando con esto ganar eficiencia y eficacia en el quehacer diario. Las empresas cada día están utilizando estas plataformas o canales para optimizar sus procesos, brindar un mejor y variado servicio a sus clientes, como es la obtención de información en línea de reportes (o estadísticas), necesaria para la toma de decisiones, lo que posibilita, mejorar y agilizar la comunicación con todos los usuarios. Para que funcione la generación de estadísticas en línea, las dependencias de una empresa deben digitar en este sistema el diario acontecer de las operaciones que realizan, con esto se facilita el almacenamiento de la información de cada una de ellas.

Por ejemplo, en un supermercado se puede saber cuántos productos han ingresado y cuándo se han vendido; con esta información, si los productos se están agotando se realizaría un nuevo pedido. Asimismo, los bancos tienen excelentes sistemas de información que les permite saber datos personales de sus clientes, como son: su dirección, teléfono, lugar donde trabaja, el saldo de dinero tiene en su cuenta, la clase de movimientos que ha realizado a nivel nacional o internacional, las autorizaciones de debito automático, entre otros.

Como podemos observar es una herramienta de información y para la toma de decisiones.

Según surge la necesidad, se añaden nuevos programas de aplicación al sistema. Así, según pasa el tiempo, se añaden más archivos y programas de aplicación al sistema.

1.3 Sistemas de bases de datos y sus aplicaciones

Las primeras aplicaciones importantes de los sistemas de administración de bases de datos se realizaron cuando los datos se componían de muchos elementos pequeños y se efectuaban un gran número de consultas o modificaciones.

A continuación se describen algunas de estas aplicaciones:

Sistemas de reservación de las líneas aéreas.

En ésta aplicación los elementos de datos incluyen:

* Reservaciones por un cliente individual para un solo vuelo; se incluye información como el asiento asignado o la preferencia por determinada comida.

* Información referente a los vuelos: por ejemplo, el aeropuerto de salida y el aeropuerto de llegada, la hora de salida o la hora de llegada, o bien el avión del vuelo.

* Información sobre los precios de los boletos, requisitos y disponibilidad.

Las consultas típicas se refieren a los vuelos que parten a determinada hora de una ciudad a otra, qué asientos están disponibles y a qué precio. Las modificaciones más comunes son la reservación de pasaje para un cliente, la asignación de asiento o la indicación de la preferencia de los pasajeros por cierta comida. Varios agentes de viajes tendrán acceso a una parte de los datos en un momento dado.

El sistema de administración de bases de datos deberá permitir estos accesos concurrentes, evitar problemas como los que se presentan cuando dos agentes asignan al mismo tiempo el mismo asiento y proteger a los usuarios contra la pérdida de registros en caso de fallas repentinas del sistema.

Sistemas bancarios.

Los elementos de datos contienen los nombres y los domicilios de los clientes, las cuentas, los préstamos y su saldo, así como la conexión entre clientes y sus cuentas y préstamos respectivos; por ejemplo, quién tiene autoridad para firmar las cuentas. Las consultas de cuentas y saldos son frecuentes, pero mucho más lo son las modificaciones que representan un retiro de una cuenta o un depósito en ella.

Cabe suponer que muchos cajeros y clientes consultan y modifican al mismo tiempo la información del banco. Es indispensable que los accesos concurrentes a una cuenta no hagan que se pierda una transacción con el cajero automático. No se toleran las fallas en ésta área. Por ejemplo, una vez que el cajero automático ha emitido dinero, el banco deberá registrar el retiro, aun cuando se produzca en ese momento una falla de la energía eléctrica.

En cambio, el banco no puede registrar el retiro y luego no entregar el dinero a causa de una falla eléctrica. La manera correcta de manejar esta operación dista mucho de ser evidente y puede catalogarse como uno de los grandes logros de la arquitectura de los sistemas de administración de bases de datos.

Registros de las empresas.

Muchas de las primeras aplicaciones se referían a los registros de las empresas; por ejemplo, un registro de las ventas, información sobre cuentas por pagar y por cobrar o sobre los empleados: nombre, domicilio, sueldo, opciones de prestaciones, categoría fiscal. Entre las consultas pueden mencionarse la impresión de informes como las cuentas por cobrar o el pago semanal de la nómina por medio de cheques. Cada venta, compra, factura, recibo, contratación, despido o promoción de empleados producen una modificación en la base de datos.

1.4 Sistemas de bases de datos frente a los sistemas de archivos.

Las bases de datos, surgidas como respuesta al nuevo planteamiento de los sistemas orientados hacia los datos, para mejorar la calidad de las prestaciones de los sistemas informáticos y aumentar su rendimiento, presentan una multitud de ventajas frente a los sistemas de archivos, debido, sobre todo, a que se basan en una estructura de datos integrada y centralizada, eliminando así los problemas de redundancia y control de los datos.

Las ventajas de los sistemas de bases de datos son, entre otras, las siguientes:

Independencia de los datos respecto a los tratamientos y viceversa.

La mutua independencia de datos y tratamientos lleva a que un cambio de los programas no implican tener que cambiar el diseño lógico y/o físico de la base de datos. Por otra parte, la inclusión de nuevas informaciones, desaparición de otras, cambios en la estructura física o en los caminos de acceso, etc., no deben obligar a alterar los programas. Esta independencia de los tratamientos frente a la estructura de la base de datos, evita el importante esfuerzo que origina la reprogramación de las aplicaciones cuando se producen cambios en los datos.

* Independencia lógica de los datos:

Se refiere a que las modificaciones de la representación lógica del problema no afecta a los programas que los manipulan, y viceversa.

·

* Independencia física de los datos:

Se refiere a que la distribución en unidades de almacenamiento es independiente de la estructura lógica general, y viceversa.

Coherencia de los resultados.

Debido a que la información de la base de datos se recoge y almacena una sola vez. En todos los programas se utilizan los mismos datos, por lo que los resultados de todos ellos son coherentes y perfectamente comparables.

Además, al no existir (o al menos disminuir en gran medida) la redundancia en los datos, desaparece el problema que se presentaba en el enfoque clásico, de que el cambio de un dato obligaba a actualizar una serie de ficheros. De esta forma se elimina también el inconveniente de las divergencias en los resultados debidas a actualizaciones no simultáneas en todos los ficheros.

Mejor disponibilidad de los datos para el conjunto, de los usuarios.

Cuando se aplica la metodología de bases de datos, cada usuario ya no es propietario de los datos, puesto que éstos se comparten entre el conjunto de aplicaciones, existiendo una mejor disponibilidad de los datos para todos los que tienen necesidad de ellos, siempre que estén autorizados para su acceso.

Mayor eficiencia en la recogida, validación entrada de los datos al sistema.

Al no existir apenas redundancias, los datos se recogen y validan una sola vez, aumentando así el rendimiento de todo el proceso previo al almacenamiento.

Reducción del espacio de almacenamiento.

La desaparición (o disminución) de las redundancias, así como la aplicación de técnicas de compactación, lleva en los sistemas de bases de datos a una menor ocupación de almacenamiento secundario ‑disco magnético.

Problemas de los sistemas de archivos:

* Redundancia e inconsistencia de los datos

* Dificultad de acceso a los datos: Existen aplicaciones particulares para cada tipo de acceso a los datos.

* Aislamiento de los datos: Los datos están en archivos con diferentes formatos, por lo tanto resultan difíciles de utilizar en nuevos programas.

* Variedad de usuarios: Si varios usuarios actualizan a la vez se puede llegar a tener información inconsistente

* Problemas de seguridad: Es difícil restringir el acceso a registros de un fichero.

* Problemas de integridad de los datos.

1.5 Los distintos niveles de abstracción de una base de datos.

Se puede observar en los sistemas de información la existencia de dos estructuras distintas, la lógica (vista del usuario) y la física (forma en que se encuentran los datos en el almacenamiento). En las bases de datos aparece un nuevo nivel de abstracción que se ha denominado de diversas maneras: nivel conceptual, estructura lógico global, esquema, etc.

Esta estructura intermedia pretende una representación global de los datos que se interponga entre las estructuras lógica y física y que sea independiente, tanto del equipo como de cada usuario en particular.

ANSI/SPARC es un grupo de normalización creado en 1969 para estudiar el impacto de los S.G.B.D. en los sistemas de información y cuyos resultados, publicados en 1975 propusieron el uso de tres niveles de descripción de datos.

1. El nivel interno es el más cercano a la máquina. Es una representación a bajo nivel de la BD en la que se define la forma en la que los datos se almacenan físicamente en la máquina. Se definen características como los dispositivos en donde se almacenan los datos, el espacio que se reserva,

las estrategias de acceso, la creación de ficheros de índices, etc. Es dependiente de la máquina en que se vaya a instalar la BD, del sistema operativo que exista, etc.

2. El nivel conceptual tiene un esquema conceptual, que describe la estructura de los datos que van a ser almacenados en la base de datos. El esquema conceptual esconde los detalles del almacenamiento físico y se concentra en describir entidades, tipos de datos, relaciones, operaciones de usuario y restricciones.

3. El nivel externo o nivel de vista incluye varios esquemas externos o vistas de usuario. Cada esquema externo describe la parte de la base de datos en la que está interesado un grupo de usuarios en particular y esconde el resto de la base de datos para esos usuarios. La información se manipula sin saber cómo está almacenada internamente (nivel interno) ni su organización (nivel conceptual).

Existirán muchas vistas externas distintas, cada una formada por una representación más o menos abstracta (registros y campos lógicos) de alguna parte de la base de datos total, y existirá sólo una vista conceptual formada por una representación igualmente abstracta de la base de datos en su totalidad (hay que recordar que a la mayoría de los usuarios no les interesará toda la base de datos, sino sólo una porción limitada de ella). De manera similar, habrá sólo una vista interna, la cual representará a toda la base de datos tal como está almacenada físicamente.

El Nivel Externo

El nivel externo es el más cercano a los usuarios, es decir, es el que se ocupa de la forma en la que los usuarios perciben los datos. El nivel externo es del usuario individual. Estos usuarios pueden ser o bien programadores de aplicaciones o usuarios finales con conocimientos muy variables de informática. El administrador de la base de datos es un caso especial (también debe interesarse por los demás niveles de la arquitectura).

Cada usuario dispone de un lenguaje:

En el caso del programador de aplicaciones, dicho lenguaje será o bien un lenguaje de programación convencional, o bien un lenguaje de cuarta generación (4GL) específico para el sistema en cuestión.

Para el usuario final será o bien un lenguaje de consulta, o algún lenguaje de aplicación especial, quizá manejado mediante formas o menús, adaptado a los requerimientos de ese usuario y apoyado por algún programa de aplicación en línea (cuya función es servir a un usuario final que tiene acceso a la base de datos desde una terminal en línea).

El aspecto importante de todos estos lenguajes es que deben incluir un sublenguaje de datos, es decir, un subconjunto del lenguaje total que se ocupe de manera específica de los objetos y operaciones de la

base de datos. Se dice que el sublenguaje de datos (DSL ‘data sublanguage’) está embebido (o inmerso) dentro del lenguaje anfitrión correspondiente. Este último se encarga de varios aspectos no relacionados con la base de datos, como por ejemplo variables locales (temporales), operaciones de cálculo, lógica condicional, etc. Un sistema dado puede permitir el empleo de varios lenguajes anfitriones y varios sublenguajes de datos. Un sublenguaje de datos en particular cuyo uso es posible en casi todos los sistemas relacionales actuales es el lenguaje SQL.

En principio, cualquier sublenguaje de datos es en realidad una combinación de por lo menos dos lenguajes subordinados: un lenguaje de definición de datos (DDL ‘data definition language’), con el cual es posible definir o declarar los objetos de la base de datos, y un lenguaje de anipulación de datos (DML, ‘data manipulation language’) con el que es posible manipular o procesar dichos objetos.

Como ya se ha dicho, al usuario individual (en general), sólo le interesará una porción de la base de datos total; por añadidura, la forma como ese usuario percibe dicha porción casi siempre será un tanto abstracta omparada con el almacenamiento físico de los datos. El término ANSI/SPARC para la vista individual de un usuario es vista externa. Así, una vista externa es el contenido de la base de datos tal como lo percibe algún usuario determinado (es decir, para ese usuario la vista externa es la base de datos).

Por ejemplo, un usuario del departamento de personal podría contemplar la base de datos como un conjunto de ocurrencias de registros de departamento unido a un conjunto de ocurrencias de registros de proveedor y de parte vistas por los usuarios del departamento de compras).

Toda vista externa se define mediante un esquema externo, que consiste básicamente en definiciones de cada uno de los diversos tipos de registros externos en esa vista externa. El esquema externo se escribe con la porción DDL del sublenguaje de datos del usuario (por ello se le denomina a ese DDL en ocasiones como DDL externo). Por ejemplo, el tipo de registro externo de empleado puede definirse como un campo de número de empleado de seis caracteres unido a un campo de salario de cinco dígitos, etc. Además, debe haber una definición de la correspondencia entre el esquema externo y el esquema conceptual subyacente.

El Nivel Conceptual

El nivel conceptual es un nivel de mediación entre el nivel interno y externo. La vista conceptual es una representación de toda la información contenida en la base de datos, también (como en el caso de una vista externa) en una forma un tanto abstracta si se compara con almacenamiento físico de los datos.

Además, puede ser muy diferente de la forma como percibe los datos cualquier usuario individual. A grandes rasgos, la vista conceptual debe ser un panorama de los datos “tal como son”, y no como por fuerza los perciben los usuarios debido a las limitaciones del lenguaje o el equipo específicos utilizados, por ejemplo.

La vista conceptual se compone de varias ocurrencias de varios tipos de registro conceptual. Por ejemplo, puede estar formada por un conjunto de ocurrencias de registros de departamento unido un conjunto de ocurrencias de registro de empleado y a un conjunto de ocurrencias de registros de proveedor y a un conjunto de ocurrencia de registros de parte... Un registro conceptual no es por necesidad idéntico a un registro externo, por un lado, ni a un registro almacenado, por el otro.

La vista conceptual se define mediante un esquema conceptual, el cual incluye definiciones de cada uno de los tipos de registro conceptual. El esquema conceptual se escribe utilizando otro lenguaje de definición de datos, el DDL conceptual. Si ha de lograrse la independencia de los datos, esas definiciones en DDL conceptual no deberán implicar consideraciones de estructura de almacenamiento o de técnica de acceso. Si el esquema conceptual se hace en verdad independiente de los datos de esta manera, entonces los esquemas externos, definidos en términos del esquema conceptual, serán por fuerza también independientes de los datos.

Así pues, la vista conceptual es una vista del contenido total de la base de datos, y el esquema conceptual es una definición de esa vista. No obstante, sería engañoso sugerir que el esquema conceptual es sólo un conjunto de definiciones similar a las sencillas definiciones de registros encontradas por ejemplo en un programa en Cobol. Es de esperar que las definiciones en el esquema conceptual incluyan muchas características más, como son las verificaciones de seguridad y de integridad. Algunos expertos podrían llegar a sugerir que el objetivo primordial del esquema conceptual es describir la empresa en su totalidad (no sólo los datos en sí, sino también la forma como se utilizan: cómo fluyen de un punto a otro dentro de la empresa, qué se hace con ellos en cada punto, qué controles de auditoria o de otro tipo deben aplicarse en cada punto, etc. Debe hacerse hincapié en que en ningún sistema actual es posible mantener realmente un nivel conceptual que se aproxime siquiera a ese grado de complejidad; en casi todos los sistemas existentes el esquema conceptual no es mucho más que una simple unión de todos los esquemas externos individuales, con la posible adición de algunas verificaciones sencillas de integridad y seguridad. Con todo, parece evidente que los sistemas del futuro llegarán a mantener niveles conceptuales mucho más complejos.

El Nivel Interno

El tercer nivel de la arquitectura es el nivel interno. La vista interna es una representación de bajo nivel de toda la base de datos; se compone de varias ocurrencias de varios tipos de registro interno. Este último término es el que utiliza ANSI/SPARC para referirse a la construcción que hemos estado llamando

registro almacenado. La vista interna, por tanto, todavía está a un paso del nivel físico, ya que no manejo registros físicos (llamados también páginas o bloques), ni otras consideraciones específicas de los dispositivos como son los tamaños de cilindros o de pistas.

La vista interna se define mediante el esquema interno, el cual no sólo define los diversos tipos de registros almacenados sino también especifica que índices hay, cómo se representan los campos almacenados, en qué secuencia física se encuentran los registros almacenados, etc. El esquema interno se escribe con otro lenguaje más de definición de datos, el DDL interno.

En algunas situaciones excepcionales podría permitirse a los programas de aplicación operar directamente en el nivel interno en vez de hacerlo en el nivel externo. Esta práctica no es recomendable ya que representa un riesgo para la seguridad (ya que pasan por alto las verificaciones de seguridad) y para la integridad (hace lo mismo), y el programa será en extremo dependiente de los datos; sin embargo, en ciertos casos puede ser la única forma de obtener la función o desempeño deseados, del mismo modo como el usuario de un lenguaje de programación de alto nivel puede verse obligado en ocasiones a descender al lenguaje ensamblador para satisfacer ciertos objetivos.

Correspondencias, asociaciones o ligaduras (mappings) Para describir un mismo grupo de datos, un sistema puede gestionar varios niveles de esquemas, para lo cual el DBMS debe poder garantizar la transferencia de los datos desde el formato correspondiente de un nivel al formato correspondiente a otro nivel; este proceso se denomina transformación de datos o mapping.

Hay dos niveles de correspondencia en la arquitectura ANSI/SPARC: uno entre los niveles externo y conceptual del sistema, y otro entre los niveles conceptual e interno. La correspondencia conceptual/interna es la que existe entre la vista conceptual y la base de datos almacenada; especifica cómo se representan los registros y campos conceptuales en el nivel interno. Si se modifica la estructura de la base de datos almacenada (es decir, si se altera la definición de la estructura de almacenamiento), la correspondencia

conceptual/interna deberá modificarse también de acuerdo con ello, para que no varíe el esquema conceptual (el administrador de la base de datos se debe encargar de controlar tales modificaciones). Dicho de otra manera, los efectos de las alteraciones deberán aislarse por debajo del nivel conceptual, a fin de conservar la independencia de los datos.

La correspondencia externa/conceptual es la que existe entre una determinada vista externa y la vista conceptual. Las diferencias que pueden existir entre estos dos niveles son similares a las que pueden existir entre la vista conceptual y la base de datos almacenada. Por ejemplo, los campos pueden tener distintos tipos de datos, los nombres de los campos y los registros pueden diferir, pueden combinarse varios campos conceptuales para formar un solo campo externo (virtual), etc. Puede existir cualquier cantidad de vistas externas; cualquier número de usuarios puede compartir una determinada vista externa.

Algunos sistemas permiten expresar la definición de una vista externa en términos de otras (de hecho, a través de una correspondencia externa/externa), en vez de requerir siempre una definición explícita de la correspondencia respecto al nivel conceptual, cosa que resulta útil si existe una relación muy grande entre varias vistas externas. Los sistemas relacionales en particular casi siempre permiten hacer esto.

1.6 Usuarios y administradores de la base de datos.

Administradores.

Unas de las razones principales para tener sistemas de gestión de bases de datos es tener control central de los datos y de los programas que acceden a esos datos. La persona que tiene dicho control central sobre el sistema se llama administrador de la base de datos (database administrador [DBA]).

Las funciones del administrador de base de datos incluyen:

* Definición de esquema. El esquema original de la base de datos se crea escribiendo un conjunto de definiciones que son traducidas por el compilador de DDL a un conjunto de tablas que son almacenadas permanentemente en el diccionario de datos.

* Definición de la estructura de almacenamiento y del método de acceso. Estructuras de almacenamiento y métodos de acceso adecuados se crean escribiendo un conjunto de definiciones que son traducidas por el compilador del lenguaje de almacenamiento y definición de datos.

* Modificación del esquema y de la organización física. Las modificaciones, tanto al esquema de la base de datos como a la descripción de la organización física de almacenamiento, aunque relativamente poco comunes, se logran escribiendo un conjunto de definiciones que son usadas bien por el compilador de DDL o bien por el compilador del lenguaje de almacenamiento y definición de datos para generar modificaciones a las tablas internas apropiadas del sistema.

* Concesión de autorización para el acceso a los datos. La concesión de diferentes tipos de autorización permite al administrador de la base de datos regular qué partes de la base de datos van a poder ser accedidas por varios usuarios.

* Especificación de las restricciones de integridad. Las restricciones de integridad se mantienen en una estructura especial del sistema que consulta el gestor de la base de datos cada vez que tiene lugar una actualización en el sistema.

Usuarios.

Un objetivo primordial de un sistema de bases de datos es proporcionar un entorno para recuperar información de y almacenar nueva información de base de datos.

Podemos definir a los usuarios como toda persona que tenga todo tipo de contacto con el sistema de base de datos desde que este se diseña, elabora, termina y se usa.

Los usuarios que accesan una base de datos pueden clasificarse como:

* Programadores de aplicaciones.
Los profesionales en computación que interactúan con el sistema por medio de llamadas en DML (Lenguaje de Manipulación de Datos), las cuales están incorporadas en un programa escrito en un lenguaje de programación (Por ejemplo, COBOL, PL/I, Pascal, C, etc.)

* Usuarios sofisticados.
Los usuarios sofisticados interactúan con el sistema sin escribir programas. En cambio escriben sus preguntas en un lenguaje de consultas de base de datos.

* Usuarios especializados.
Algunos usuarios sofisticados escriben aplicaciones de base de datos especializadas que no encajan en el marco tradicional de procesamiento de datos.

* Usuarios ingenuos.
Los usuarios no sofisticados interactúan con el sistema invocando a uno de los programas de aplicación permanentes que se han escrito anteriormente en el sistema de base de datos, podemos mencionar al usuario ingenuo como el usuario final que utiliza el sistema de base de datos sin saber nada del diseño interno del mismo por ejemplo: un cajero.

1.7 Componentes de los sistemas de la base de datos.

Un sistema de base de datos se encuentra dividido en módulos cada uno de los cuales controla una parte de la responsabilidad total de sistema. En la mayoría de los casos, el sistema operativo proporciona únicamente los servicios más básicos y el sistema de la base de datos debe partir de esa base y controlar además el manejo correcto de los datos. Así el diseño de un sistema de base de datos debe incluir la interfaz entre el sistema de base de datos y el sistema operativo.

Los componentes funcionales de un sistema de base de datos, son:

* Gestor de archivos.
Gestiona la asignación de espacio en la memoria del disco y
de las estructuras de datos usadas para representar información.

* Manejador de base de datos.
Sirve de interfaz entre los datos y los programas de aplicación.

* Procesador de consultas.
Traduce las proposiciones en lenguajes de consulta a
instrucciones de bajo nivel. Además convierte la solicitud del
usuario en una forma más eficiente.

* Compilador de DDL.
Convierte las proposiciones DDL en un conjunto de tablas
que contienen metadatos, estas se almacenan en el diccionario
de datos.

* Archivo de datos.
En él se encuentran almacenados físicamente los datos de una
organización.

* Diccionario de datos.
Contiene la información referente a la estructura de la base
de datos.

* Índices.
Permiten un rápido acceso a registros que contienen valores
específicos.

1.8 Arquitectura de los sistemas de la base de datos.

La arquitectura de un sistema de base de datos está influenciada en gran medida por el sistema informático subyacente en el que se ejecuta el sistema de base de datos. En la arquitectura de un sistema de base de datos se reflejan aspectos como la conexión en red, el paralelismo y la distribución:

* La arquitectura centralizada es la más clásica. En ella, el SGBD está implantado en una sola plataforma u ordenador desde donde se gestiona directamente, de modo centralizado, la totalidad de los recursos. Es la arquitectura de los centros de proceso de datos tradicionales. Se basa en tecnologías sencillas, muy experimentadas y de gran robustez.

* La conexión en red de varias computadoras permite que algunas tareas se ejecuten en un sistema servidor y que otras se ejecuten en los sistemas clientes. Esta división de trabajo ha conducido al desarrollo de sistemas de bases de datos cliente-servidor.

* La distribución de datos a través de las distintas sedes o departamentos de una organización permite que estos datos residan donde han sido generados o donde son más necesarios, pero continuar siendo accesibles desde otros lugares o departamentos diferentes. El hecho de guardar varias copias de la base de datos en diferentes sitios permite que puedan continuar las operaciones sobre la base de datos aunque algún sitio se vea afectado por algún desastre natural, como una inundación, un incendio o un terremoto. Se han desarrollado los sistemas de bases de datos distribuidos para manejar datos distribuidos geográfica o administrativamente a lo largo de múltiples sistemas de bases de datos.

* El procesamiento paralelo dentro de una computadora permite acelerar las actividades del sistema de base de datos, proporcionando a las transacciones unas respuestas más rápidas, así como la capacidad de ejecutar más transacciones por segundo. Las consultas pueden procesarse de manera que se explote el paralelismo ofrecido por el sistema informático subyacente. La necesidad del procesamiento paralelo de consultas ha conducido al desarrollo de los sistemas de bases de datos paralelos.

No debe confundirse el SGBD con la arquitectura que se elige para implantarlo. Algunos SGBD sólo se pueden implantar en una de las arquitecturas y otros en todas ellas.

Arquitectura centralizada

Los sistemas de bases de datos centralizados son aquellos que se ejecutan en un único sistema informático sin interaccionar con ninguna otra computadora. Tales sistemas comprenden el rango desde los sistemas de bases de datos monousuario ejecutándose en computadoras personales hasta los sistemas de bases de datos de alto rendimiento ejecutándose en grandes sistemas.

Una computadora moderna de propósito general consiste en una o unas pocas CPU’s y un número determinado de controladores para los dispositivos que se encuentren conectados a través de un bus común, el cual proporciona acceso a la memoria compartida. Las CPU’s poseen memorias caché locales donde se almacenan copias de ciertas partes de la memoria para acelerar el acceso a los datos. Cada controlador de dispositivo se encarga de un tipo específico de dispositivos (por ejemplo, una unidad de disco, una tarjeta de sonido o un monitor). La CPU y los controladores de dispositivo pueden ejecutarse concurrentemente, compitiendo así por el acceso a la memoria. La memoria caché reduce la disputa por el acceso a la memoria, ya que la CPU necesita acceder a la memoria compartida un número de veces menor.

Se distinguen dos formas de utilizar las computadoras: como sistemas monousuario o como sistemas multiusuario. En la primera categoría están las computadoras personales y las estaciones de trabajo. Un sistema monousuario típico es una unidad de sobremesa utilizada por una única persona que dispone de una sola CPU, de uno o dos discos fijos y que trabaja con un sistema operativo que sólo permite un único usuario. Por el contrario, un sistema multiusuario típico tiene más discos y más memoria, puede disponer de varias CPU y trabaja con un sistema operativo multiusuario. Se encarga de dar servicio a un gran número de usuarios que están conectados al sistema a través de terminales. Estos sistemas se denominan con frecuencia sistemas servidores.

Normalmente, los sistemas de bases de datos diseñados para funcionar sobre sistemas monousuario, como las computadoras personales, no suelen proporcionar muchas de las facilidades que ofrecen los sistemas multiusuario. En particular, no tienen control de concurrencia, que no es necesario cuando solamente un usuario puede generar modificaciones. Las facilidades de recuperación en estos sistemas, o no existen o son primitivas; por ejemplo, realizar una copia de seguridad de la base de datos antes de cualquier modificación. La mayoría de estos sistemas no admiten SQL y proporcionan un lenguaje de consulta muy simple, que en algunos casos es una variante de QBE (Query By Example).

Aunque hoy en día las computadoras de propósito general tienen varios procesadores, utilizan paralelismo de grano grueso, disponiendo de unos pocos procesadores (normalmente dos o cuatro) que comparten la misma memoria principal. Las bases de datos que se ejecutan en tales máquinas habitualmente no intentan dividir una consulta simple entre los distintos procesadores, sino que ejecutan cada consulta en un único procesador, posibilitando la concurrencia de varias consultas. Así, estos sistemas soportan una mayor productividad, es decir, permiten ejecutar un mayor número de transacciones por segundo, a pesar de que cada transacción individualmente no se ejecuta más rápido.

Las bases de datos diseñadas para las máquinas monoprocesador ya disponen de multitarea, permitiendo que varios procesos se ejecuten a la vez en el mismo procesador, usando tiempo compartido, mientras que de cara al usuario parece que los procesos se están ejecutando en paralelo. De esta manera, desde un punto de vista lógico, las máquinas paralelas de grano grueso parecen ser idénticas a las máquinas monoprocesador, y pueden adaptarse fácilmente los sistemas de bases de datos diseñados para máquinas de tiempo compartido para que puedan ejecutarse sobre máquinas paralelas de grano grueso.

Por el contrario, las máquinas paralelas de grano fino tienen un gran número de procesadores y los sistemas de bases de datos que se ejecutan sobre ellas intentan paralelizar las tareas simples (consultas, por ejemplo) que solicitan los usuarios.

0 Comments:

Post a Comment

<< Home

Google