sistemas de bases de datos

24
1.- Definición y Características de un SBD Desde tiempos inmemoriales, los datos han sido almacenados por los humanos en algún tipo de soporte (piedra, papel, madera, etc.) a fin de que quedara constancia. Así mismo estos datos han de ser interpretados para que se conviertan en información útil, interpretación que supone un fenómeno de agrupación y clasificación. En los años 40 del siglo pasado, los sistemas de archivos generados a través de los primeros lenguajes de programación como Cobol y Fortran, permitieron almacenar los datos a través de archivos sin formato alguno (planos) con las únicas funciones de lectura y escritura. Posteriormente surgió el denominado sistema de ficheros que es un conjunto de programas que prestan servicio a los usuarios finales. Cada programa define y maneja sus propios datos. Los sistemas de ficheros surgieron al tratar de informatizar el manejo de los archivadores manuales con objeto de proporcionar un acceso más eficiente a los datos. En lugar de establecer un sistema centralizado en donde almacenar todos los datos de la organización o empresa, se escogió un modelo descentralizado en el que cada división o departamento almacena y gestiona sus propios datos. Los sistemas de ficheros presentan una serie de inconvenientes: * Separación y aislamiento de los datos. Cuando los datos se separan en diferentes ficheros, es más complicado acceder a ellos, ya que el programador de aplicaciones debe sincronizar el procesamiento de los distintos ficheros implicados para asegurar que se extraen los datos correctos. * Duplicación de datos. La redundancia de datos existente en los sistemas de ficheros hace que se desperdicie espacio de almacenamiento y lo que es más importante, puede llevar a que se pierda la consistencia de los datos. Se produce una inconsistencia cuando copias de los mismos datos no coinciden. * Dependencia de datos. Ya que la estructura física de los datos (la definición de los ficheros y de los registros) se encuentra codificada en los programas de aplicación, cualquier cambio en dicha estructura es difícil de realizar. El programador debe identificar todos los programas afectados por este cambio, modificarlos y volverlos a probar, lo que cuesta mucho tiempo y está sujeto a que se produzcan errores. A este problema, tan característico de los sistemas de ficheros, se le denomina también falta de independencia de datos lógica-física. * Formatos de ficheros incompatibles. Ya que la estructura de los ficheros se define en los programas de aplicación, es completamente dependiente del lenguaje de programación. La incompatibilidad entre ficheros generados por distintos lenguajes hace que los ficheros sean difíciles de procesar de modo conjunto. * Consultas fijas y proliferación de programas de aplicación. Desde el punto de vista de los usuarios finales, los sistemas de ficheros fueron un gran avance comparados a los sistemas manuales. Como consecuencia de esto, creció la necesidad de realizar distintos tipos de consultas de datos, sin embargo, los sistemas de ficheros son muy dependientes del programador de aplicaciones: cualquier consulta o informe que se quiera realizar debe ser programado por él. En algunas organizaciones se conformaron con fijar el tipo de consultas e informes, siendo imposible realizar otro tipo de consultas que no se hubieran tenido en cuenta a la hora de escribir los programas de aplicación. Los inconvenientes de los sistemas de ficheros se pueden atribuir a dos factores:

Upload: josemaria

Post on 19-Feb-2016

215 views

Category:

Documents


0 download

DESCRIPTION

..

TRANSCRIPT

Page 1: Sistemas de Bases de Datos

1.- Definición y Características de un SBD

Desde tiempos inmemoriales, los datos han sido almacenados por los humanos en algún tipo de soporte

(piedra, papel, madera, etc.) a fin de que quedara constancia. Así mismo estos datos han de ser interpretados

para que se conviertan en información útil, interpretación que supone un fenómeno de agrupación y

clasificación.

En los años 40 del siglo pasado, los sistemas de archivos generados a través de los primeros lenguajes de

programación como Cobol y Fortran, permitieron almacenar los datos a través de archivos sin formato alguno

(planos) con las únicas funciones de lectura y escritura.

Posteriormente surgió el denominado sistema de ficheros que es un conjunto de programas que prestan

servicio a los usuarios finales. Cada programa define y maneja sus propios datos. Los sistemas de ficheros

surgieron al tratar de informatizar el manejo de los archivadores manuales con objeto de proporcionar un

acceso más eficiente a los datos. En lugar de establecer un sistema centralizado en donde almacenar todos los

datos de la organización o empresa, se escogió un modelo descentralizado en el que cada división o

departamento almacena y gestiona sus propios datos.

Los sistemas de ficheros presentan una serie de inconvenientes:

* Separación y aislamiento de los datos. Cuando los datos se separan en diferentes ficheros, es más

complicado acceder a ellos, ya que el programador de aplicaciones debe sincronizar el procesamiento de los

distintos ficheros implicados para asegurar que se extraen los datos correctos.

* Duplicación de datos. La redundancia de datos existente en los sistemas de ficheros hace que se

desperdicie espacio de almacenamiento y lo que es más importante, puede llevar a que se pierda la

consistencia de los datos. Se produce una inconsistencia cuando copias de los mismos datos no coinciden.

* Dependencia de datos. Ya que la estructura física de los datos (la definición de los ficheros y de los

registros) se encuentra codificada en los programas de aplicación, cualquier cambio en dicha estructura es

difícil de realizar. El programador debe identificar todos los programas afectados por este cambio,

modificarlos y volverlos a probar, lo que cuesta mucho tiempo y está sujeto a que se produzcan errores. A este

problema, tan característico de los sistemas de ficheros, se le denomina también falta de independencia de

datos lógica-física.

* Formatos de ficheros incompatibles. Ya que la estructura de los ficheros se define en los programas de

aplicación, es completamente dependiente del lenguaje de programación. La incompatibilidad entre ficheros

generados por distintos lenguajes hace que los ficheros sean difíciles de procesar de modo conjunto.

* Consultas fijas y proliferación de programas de aplicación. Desde el punto de vista de los usuarios

finales, los sistemas de ficheros fueron un gran avance comparados a los sistemas manuales. Como

consecuencia de esto, creció la necesidad de realizar distintos tipos de consultas de datos, sin embargo, los

sistemas de ficheros son muy dependientes del programador de aplicaciones: cualquier consulta o informe que

se quiera realizar debe ser programado por él. En algunas organizaciones se conformaron con fijar el tipo de

consultas e informes, siendo imposible realizar otro tipo de consultas que no se hubieran tenido en cuenta a la

hora de escribir los programas de aplicación.

Los inconvenientes de los sistemas de ficheros se pueden atribuir a dos factores:

Page 2: Sistemas de Bases de Datos

* La definición de los datos se encuentra codificada dentro de los programas de aplicación, en lugar

de estar almacenada aparte y de forma independiente.

* No hay control sobre el acceso y la manipulación de los datos más allá de lo impuesto por los

programas de aplicación.

Para trabajar de un modo más efectivo, en 1964, se diseñaron los primeros Gestores de Base de Datos

(DBMS), por medio de los que se pretendía dar un cambio total a los sistemas de archivos. Con los DBMS se

creó el concepto de administración de datos, por medio de actividades integradas que permiten verlos

físicamente en un almacenamiento único pero lógicamente se manipulan a través de esquemas compuestos

por estructuras donde se establecen vínculos de integridad, métodos de acceso y organización física sobre los

datos, permitiendo así obtener valores agregados de utilización tales como: manejo de usuarios, seguridad,

atomicidad e independencia física y lógica de los datos, entre otros.

Los sistemas de bases de datos tienen su origen en el proyecto estadounidense Apolo de mandar al hombre a

la luna, gran cantidad de información que requería el proyecto. La primera empresa encargada del proyecto,

NAA ("North American Aviation"), desarrolló un software denominado GUAM ("General Update Access

Method") que estaba basado en el concepto de que varias piezas pequeñas se unen para formar una pieza más

grande, y así sucesivamente hasta que el producto final está ensamblado.

El primer sistema gestor de bases de datos comercial, IDS ("Integrated Data Store"), se diseñó bajo el

concepto de modelo de datos en red (Bachgman, 1965). Posteriormente se desarrolló el IMS ("Information

Management System"), sobre el concepto del modelo de datos jerárquico. A estos sistemas se accedía

normalmente mediante lenguajes de programación como COBOL usando interfaces de bajo nivel, lo cual

implicaba que las tareas de creación de aplicaciones y mantenimiento de los datos fuesen controlables, aunque

bastante complejas.

Actualmente con el auge de los medios informáticos aparece el almacenamiento en soporte magnético bajo

forma de discos, ofreciendo mayores posibilidades de almacenaje, ocupando menos espacio y ahorrando un

tiempo considerable en la búsqueda y tratamiento de los datos. Así se populariza el concepto de base de datos

y con ellas las diferentes metodologías de diseño y tratamiento.

El objetivo básico de cualquier base de datos es el almacenamiento de símbolos, números y letras carentes de

un significado en sí, que mediante un tratamiento adecuado se convierten en información útil. Un ejemplo

podría ser el siguiente dato: 20001224, con el tratamiento correcto podría convertirse en la siguiente

información: "Fecha de nacimiento: 24 de diciembre del año 2000".

Según van evolucionando en el tiempo, las necesidades de almacenamiento de datos van creciendo y con ellas

las necesidades de transformar los mismos datos en información de muy diversa naturaleza. Esta información

es utilizada como herramientas de trabajo y soporte para la toma de decisiones por un gran colectivo de

profesionales que consideran dicha información como base de su actividad. Por este motivo el trabajo del

diseñador de bases de datos es cada vez más delicado, un error en el diseño o en la interpretación de datos

puede dar lugar a información incorrecta y conducir al usuario a la toma de decisiones equivocadas. Se hace

necesario la creación de un sistema que ayude al diseñador a crear estructuras correctas y fiables,

minimizando los tiempos de diseño y explotando todos los datos, así nació la metodología de diseño de bases

de datos.

Se puede definir una base de datos, como un fichero en el cual se almacena información de cualquier tipo. En

dicho fichero la información se guarda en campos o delimitadores, por ejemplo, podemos almacenar el

Page 3: Sistemas de Bases de Datos

nombre y apellidos de las personas de modo separado, de ésta forma es posible obtener del fichero todos los

nombres o todos los apellidos, tanto de forma separada como conjunta. Normalmente el número de campos

que se tienen en una base varía según las necesidades en cuanto a gestión de datos, de forma que después se

pueda explotar la información de forma ordenada y separada, aunque el resto de la información sigue

almacenada y guardada en la base de datos

Una base de datos, no es sólo el fichero en donde están datos, sino que en dicho arvhivo se encuentra la

estructura de los datos, así que para saber qué longitud tiene cada campo,hay que conocer como se llama el

campo y qué longitud en caracteres tiene, así como el tipo de datos en dicho campo, porque puede contener

desde letras a números o incluso otros datos más complejos, dependiendo de la estructura de la base y del

sistema gestor.

En realidad aparte de los datos que son almacenados en el archivo, también hay una serie de datos, en los que

se informa del tipo de campo, los campos y la longitud de cada campo, es lo que se llama gestor de datos, que

permite saber que cada registro (un registro es una suma de campos, por ejemplo a Marisol Collazos, Marisol

lo guardamos en el campo Nombre y Collazos en el campo Apellidos, cada registro es cada persona que

almacenamos en la base, osea una persona es un registro y cada regitro está constituido por los campos

Nombre y Apellido

Un Sistema de Bases de Datos (SBD) es una serie de recursos para manejar grandes volúmenes de

información, sin embargo no todos los sistemas que manejan información son bases de datos.

Un sistema de bases de datos debe responder a las siguientes características:

Abstracción de la información. 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 de los Datos. Es decir, que los datos nunca dependen del programa y por tanto

cualquier aplicación pueda hacer uso de éllos.

Reducción de la Redundancia.Rdundancia es la existencia de duplicación de los datos, al reducir

ésta al máximo conseguimos un mejor aprovechamiento del espacio y además evitamos que existan

inconsistencias entre los datos. Las inconsistencias se dan cuando nos encontramos con datos

contradictorios.

Seguridad. Un SGBD debe permitir que tengamos un control sobre la seguridad de los datos, frente

a usuarios malintencionados que intenten leer información no permitida; frente a ataques que deseen

manipular o destruir la información; o simplemente ante las torpezas de algún usuario autorizado.

Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos

almacenados. Se trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios

Page 4: Sistemas de Bases de Datos

descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada. Los

SGBD proveen mecanismos para garantizar la recuperación de la base de datos hasta un estado

consistente conocido en forma automática.

Respaldo. Los SGBD deben proporcionar una forma eficiente de realizar copias de seguridad de la

información almacenada en ellos, y de restaurar a partir de estas copias los datos que se hayan

podido perder.

Control de la concurrencia. En la mayoría de entornos (excepto quizás el personal), lo más habitual

es que sean muchas las personas que acceden a una base de datos, bien para recuperar información,

bien para almacenarla. Y es también frecuente que dichos accesos se realicen de forma simultánea.

Así pues, un SGBD debe controlar este acceso concurrente a la información, que podría derivar en

inconsistencias.

Manejo de transacciones. Una transacción es un programa que se ejecuta como una sola operación.

Esto quiere decir que el estado luego de una ejecución en la que se produce un fallo 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.

- El expresidente del Real Madrid C.F. sancionado con multa de 360000 euros por vulnerar la Ley Orgánica

de Protección de Datos

- El Opus Dei sancionado a pagar 60101 euros.

- Multa de 6000 euros por compartir en el Emule una base de datos

- Sanción de 1000 euros por el envío de un único e-mail con información comercial

- Multa de 600 euros por dejar a la vista 42 direcciones de e-mail

- Las empresas de telecomunicaciones y los bancos, los que más vulneran los datos de los ciudadanos

2.- Recursos que componen un SBD

Un SBD está formado por:

Page 5: Sistemas de Bases de Datos

Personas

Máquinas

Programas

Son los encargados de manejar los datos, son conocidos como DBMS ("Data Base Management

System") o también SGBD (Sistema Gestor de Base de Datos). Los DBMS tienen dos funciones

principales que son:

- La definición de las estructuras para almacenar los datos.

- La manipulación de los datos.

Datos

Es lo que se conoce como base de datos propiamente dicha. Para manejar estos datos utilizamos una

serie de programas.

3.- Distintos Niveles de un SBD

Los SBD pueden ser estudiados desde tres niveles distintos:

1 Nivel interno o físico

Es el nivel real de los datos almacenados, considerado como el nivel inferior de abstracción, es decir

cómo se almacenan los datos, ya sea en registros, o de otra forma. Este nivel es usado por muy pocas

personas que deben estar cualificadas para ello, lleva asociada una representación de los datos, que

es lo que denominamos Esquema Físico.

2 Nivel conceptual

Es el correspondiente a una visión de la base de datos desde el punto de vista del mundo real. Es

decir, tratamos con la entidad u objeto representado, sin importarnos como está representado o

almacenado. Este nivel lleva asociado el Esquema Conceptual.

3 Nivel externo o visión

Son partes del esquema conceptual. El nivel conceptual presenta toda la base de datos, mientras que

los usuarios por lo general sólo tienen acceso a pequeñas parcelas de ésta. El nivel visión es el

encargado de dividir estas parcelas. Un ejemplo sería el caso del empleado que no tiene porqué tener

acceso al sueldo de sus compañeros. El esquema asociado a éste nivel es el Esquema de Visión.

Los tres niveles indicados, componen lo que conocemos como arquitectura de base de datos a tres niveles. En

ocasiones puede encontrarse el nivel conceptual siubdivido en dos niveles, conceptual y lógico. El primero de

ellos corresponde a la visión del sistema global desde un punto de vista organizativo independiente, no

informático, el segundo correspondería a la visión de la base de datos expresada en términos del sistema que

se va a implantar con medios informáticos

A menudo el nivel físico no es facilitado por muchos DBMS, esto es, no permiten al usuario elegir como se

almacenan sus datos y vienen con una forma estándar de almacenamiento y manipulación de los datos.

Page 6: Sistemas de Bases de Datos

La arquitectura a tres niveles se puede representar como sigue:

4.- Modelos de datos

Un modelo de datos para las bases de datos es un conjunto de conceptos que se usan para describir la

estructura de una base de datos. Esa colección de conceptos incluyen entidades, atributos y relaciones. La

mayoría de los modelos de datos poseen un conjunto de operaciones básicas para especificar consultas y

actualizaciones de la base de datos.

Para representar el mundo real a través de esquemas conceptuales se han creado una serie de modelos:

Los Modelos de Datos más conocidos son:

Modelo Relacional de Datos

Modelo de Red

Modelo Jerárquico

Modelo Orientado a Objetos

4.1 Modelo Relacional de Datos

Se representa el mundo real mediante tablas relacionadas entre sí por columnas comunes. Ej.:

Page 7: Sistemas de Bases de Datos

Num. empleado Nombre Sección

33 Pepe 25

34 Juan 25

Sección Nombre

25 Textil

26 Pintura

4.2 Modelo de Red

Representamos al mundo real como registros lógicos que representan a una entidad y que se relacionan entre

sí por medio de flechas. Ej.:

4.3 Modelo Jerárquico

Tiene forma de árbol invertido. Un padre puede tener varios hijos pero cada hijo sólo puede tener un padre.

Ej.:

Page 8: Sistemas de Bases de Datos

Al llegar a este punto adoptaremos una convención con respecto a las restricciones que se pueden dar en un

modelo, en cuanto a la capacidad de relacionarse que pueda tener cada entidad de ese modelo con el resto de

entidades.

Page 9: Sistemas de Bases de Datos

El modelo jerárquico sólo admite relaciones 1:1 ó 1:N.

En caso de que tuviésemos la necesidad de otro tipo de asociaciones y queramos usar el esquema jerárquico,

recurriríamos a una duplicación de la información en el esquema, pero sólo a nivel esquemático.

Ej.: Tenemos dos entidades (cliente y cuenta), queremos que un cliente pueda poseer varias cuentas, y que

una cuenta pueda tener como titulares a varios clientes. Usando el modelo jerárquico tendríamos que recurrir

a una duplicación de los datos en el esquema.

Esta duplicación sólo ocurriría a nivel esquemático, pero a nivel físico existiría un único registro por cliente, y

por cuenta que relacionaríamos mediante varios punteros con todo lo necesario.

En el modelo de red no existen restricciones, si queremos representar que un cliente puede tener varias

cuentas, cada una de las cuáles sólo puede tener un titular, y cada cuenta ésta en una sola sucursal, que por

supuesto puede ser compartida por varias cuentas.

Con el modelo relacional podríamos tener ambas entidades definidas de la siguiente forma:

Cliente = (Nº Cliente: Acceso Principal; Nombre, Dirección, Nº Cuenta: Acceso Ajeno)

Cuenta = (Nº Cuenta: Acceso Principal; Saldo)

Se podría hablar de otro modelo que está un nivel más arriba y que se denomina Modelo Entidad-Relación

(E/R), fue introducido por Peter Chen en 1976. Este modelo sólo realiza el diseño, no ejecuta la implantación,

por lo tanto una vez hecho el diseño se puede llevar al modelo relacional, de red, orientado a objetos o

jerárquico. En el esquema siguiente define dos entidades y una forma de relación entre ellas.

Page 10: Sistemas de Bases de Datos

Sus características principales son:

Reflejan tan sólo la existencia de los datos sin expresar lo que se hace con ellos.

Es independiente de las bases de datos y de los sistemas operativos (por lo que puede ser

desarrollado en cualquier base de datos).

Está abierto a la evolución del sistema.

Incluye todos los datos que se estudian sin tener en cuenta las aplicaciones que se van a tratar.

No tienen en cuenta las restricciones de espacio y almacenamiento del sistema.

Conceptos del Modelo Entidad-Relación

Entidades

Son objetos concretos o abstractos que presentan interés para el sistema y sobre los que se recoge

información que será representada en un sistema de bases de datos. Por ejemplo, clientes,

proveedores y facturas serían entidades en el entorno de una empresa.

Atributos

Es una unidad básica e indivisible de información acerca de una entidad o una relación. Por ejemplo

la entidad proveedor tendrá los atributos nombre, domicilio, población, CIF.

Dominios

Es el conjunto de valores que puede tomar cada atributo. Por ejemplo el dominio del atributo

población, será la relación de todas las poblaciones del ámbito de actuación de nuestra empresa.

Tablas

Page 11: Sistemas de Bases de Datos

Es la forma de estructurar los datos en filas o registros y columnas o atributos.

Relación

Es la asociación que se efectúa entre entidades. Por ejemplo la relación entre las entidades facturas

emitidas y clientes.

Los diagramas Entidad - Relación representan la estructura lógica de una base de datos de manera gráfica.

Los símbolos utilizados son los siguientes:

- Rectángulo- Conjunto de entidades.

- Elipse- Atributos.

- Rombos- Conjunto de relaciones

- Líneas- Unen atributos a conjuntos de entidades; unen atributos a conjuntos de relaciones; y unen

conjuntos de entidades con conjuntos de relaciones. Si la flecha tiene punta, en ese sentido está el

uno y si no la tiene, en ese sitio está el muchos. La orientación señala cardinalidad.

- Elípse doble- Se trata de dos elipses concéntricas. Representan atributos multivalorados.

- Elipse discontinua- Atributos derivados.

- Líneas dobles- Indican participación total de un conjunto de entidades en un conjunto de relaciones.

- Subrayado- Subraya los atributos que forman parte de la clave primaria del conjunto de entidades.

Page 12: Sistemas de Bases de Datos

Si el conjunto de relaciones tiene atributos asociados, se le unen a la relación. En los diagramas Entidad -

Relación se indican los papeles (roles) mediante etiquetas en las líneas que unen los conjuntos de relaciones

con conjuntos de entidades.

Los conjuntos de relaciones no binarias se especifican uniendo al conjunto de relaciones tantas entidades

como marque la relación. No es recomendable su utilización, prefiriéndose el uso de relaciones binarias.

5.- Programas que conforman el DBMS

El DBMS se compone de una serie de módulos:

El Compilador de DDL (Data Definition Language). El DDL sirve para definir estructuras de

almacenamiento, y por tanto para crear esquemas conceptuales.

El resultado de compilar todas las instrucciones DDL se va a almacenar en lo que se conoce como

Diccionario de Datos. Este diccionario nos aportará información acerca de la base de datos. El

diccionario de datos depende del DBMS.

El Precompilador DML (Data Management Language). Las instrucciones de manejo que define van

dentro de un lenguaje de alto nivel cualquiera (Lenguaje Anfitrión) (El DML se llama Lenguaje

Huésped). El primer paso del pre-compilador es traducir las instrucciones del DML al lenguaje

anfitrión.

Page 13: Sistemas de Bases de Datos

El Procesador de Consultas permite al usuario "jugar" con los datos, o sea consultarlos sin necesidad

de construir un programa de aplicación. Cuenta con un Optimizador de DML para optimizar esas

consultas.

El Manejador de Bases de Datos realiza la traducción entre los diferentes esquemas de la base de

datos. Si un usuario quiere acceder a unos datos, el manejador comprobará su esquema externo para

averiguar a que datos tiene acceso ese usuario; luego estudia el esquema conceptual completo, a

continuación accede al esquema físico para saber como trabajar con ellos y finalmente los

proporcionará al usuario.

6.- Personas relacionadas con un SBD

Administrador de base de datos (DBA)

Se encarga del diseño físico de la base de datos y de su desarrollo, realiza el control de seguridad y

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. Más que una persona suele ser un

grupo de personas.

Programador de aplicaciones

Se encargan, mediante programas en lenguajes de tercera o de cuarta generación 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.

Usuarios casuales

Son usuarios que tienen conocimientos de los DL, hacen uso de los DML de modo interactivo (es decir a

través del procesador de consultas)

Usuarios ingenuos

Emplean el SBD sin conocimientos de informática, es decir usan los programas de aplicación.

Page 14: Sistemas de Bases de Datos

7.- Otros tipos de bases de datos

Otros tipos de bases de datos, que no se tratarán en esta asignatura, son los conocidos como postrrelacionales:

- Modelo Orientado a Objetos

Page 15: Sistemas de Bases de Datos

Las aplicaciones de las bases de datos en áreas como el diseño asistido por ordenador (CAD), ingeniería de

software y procesamiento de documentos no se ajustan al conjunto de suposiciones que se hacen para

aplicaciones habituales de procesamiento de datos. El modelo de datos orientado a objetos (BDOO) se ha

propuesto para tratar algunos de estos nuevos tipos de aplicaciones, combina las mejores cualidades de los

ficheros planos, bases de datos jerárquicas y relacionales. Como veremos a continuación las BDOO

representan el siguiente paso en la evolución de las bases de datos para soportar el análisis, diseño y

programación Orientada a Objetos.

El modelo de bases de datos orientado a objetos es una adaptación a los sistemas de bases de datos. Se basa en

el concepto de encapsulamiento de datos y código que opera sobre estos en un objeto. Los objetos

estructurados se agrupan en clases. El conjunto de clases esta estructurado en sub y superclases basado en una

extensión del concepto ISA del modelo Entidad - Relación. Puesto que el valor de un dato en un objeto

también es un objeto, es posible representar el contenido del objeto dando como resultado un objeto

compuesto.

El propósito de los sistemas de bases de datos es la gestión de grandes cantidades de información. Las

primeras bases de datos surgieron del desarrollo de los sistemas de gestión de archivos. Estos sistemas

primero evolucionaron en bases de datos de red o en bases de datos jerárquicas y, más tarde, en bases de datos

relacionales.

Estructura de objetos.

El modelo orientado a objetos se basa en encapsular código y datos en una única unidad conocida como

objeto. La interfaz entre un objeto y el resto del sistema se define mediante un conjunto de mensajes.

Un objeto tiene asociado:

* Un conjunto de variables que contienen los datos del objeto. El valor de cada variable es un objeto.

* Un conjunto de mensajes a los que el objeto responde.

* Un método, que es un trozo de código para implementar cada mensaje. Un método devuelve un valor como

respuesta al mensaje.

El término mensaje en un contexto orientado a objetos, no implica el uso de un mensaje físico en una red de

ordenadores, si no que se refiere al paso de solicitudes entre objetos sin tener en cuenta detalles específicos de

implementación.

La capacidad de modificar la definición de un objeto sin afectar al resto del sistema está considerada como

una de las mayores ventajas del modelo de programación orientado a objetos.

Jerarquía de clases.

En una base de datos existen objetos que responden a los mismos mensajes, utilizan los mismos métodos y

tienen variables del mismo nombre y tipo. Sería inútil definir cada uno de estos objetos por separado por lo

tanto se agrupan los objetos similares para que formen una clase, a cada uno de estos objetos se le llama

instancia de su clase. Todos los objetos de su clase comparten una definición común, aunque difieran en los

valores asignados a las variables.

Page 16: Sistemas de Bases de Datos

Así que básicamente las bases de datos orientados a objetos tienen la finalidad de agrupar aquellos elementos

que sean semejantes en las entidades para formar un clase, dejando por separado aquellas que no lo son en

otra clase.

Por ejemplo: Retomemos la relación alumno-cursa-materia agregándole la entidad maestro; donde los

atributos considerados para cada uno son alumno: Nombre, Dirección, Teléfono, Especialidad, Semestre,

Grupo; Maestro: Nombre, Dirección, Teléfono, Número económico, Plaza, RFC; Materia: Nombre, Créditos,

Clave.

Los atributos de nombre, dirección y teléfono se repiten en la entidad alumno y maestro, así que podemos

agrupar estos elementos para formar la clase Persona con dichos campos. Quedando por separado en alumno:

Especialidad, semestre, Grupo. Y en maestro: Número económico, Plaza y RFC; la materia no entra en la

agrupación (Clase persona) ya que la clase específica los datos de solo personas, así que queda como clase

materia.

Herencia.

Las clases en un sistema orientado a objetos se representan en forma jerárquica como en el diagrama anterior,

así que las propiedades o características del elemento persona las contendrán (heredaran) los elementos

alumno y maestro. Decimos que tanto la entidad Alumno y maestro son subclases de la clase persona este

concepto es similar al utilizado en la de especialización (la relación ISA) del modelo E-R.

Se pueden crear muchas agrupaciones (clases) para simplificar un modelo así que una jerarquía (en forma

gráfica) puede quedar muy extensa, en estos casos tenemos que tener bien delimitados los elementos que

intervienen en una clase y aquellos objetos que las heredan.

Consultas orientadas a objetos:

Los lenguajes de programación orientados a objetos requieren que toda la interacción con objetos se realiza

mediante el envío de mensajes.

Consideremos el ejemplo de alumno-cursa-materia deseamos realizar la consulta de los alumnos que cursan la

materia de Base de Datos 1, para realizar esta consulta se tendría que enviar un mensaje a cada instancia

alumno

Así un lenguaje de consultas para un sistema de bases de datos orientado a objetos debe incluir tanto el

modelo de pasar el mensaje de objeto a objeto como el modelo de pasar el mensaje de conjunto en conjunto.

Complejidad de Modificación.

En base de datos orientados a objetos pueden existir los siguientes cambios:

* Adición de una nueva clase: Para realizar este proceso, la nueva clase debe colocarse en la jerarquía de clase

o subclase cuidando las variables o métodos de herencia correspondientes.

* Eliminación de una clase: Se requiere la realización de varias operaciones, se debe de cuidar los elementos

que se han heredado de esa clase a otras y reestructurar la jerarquía.

Page 17: Sistemas de Bases de Datos

En sí la estructuración de modelos orientados a objetos simplifica una estructura evitando elementos o

variables repetidas en diversas entidades, sin embargo el precio de esto es dedicarle un minucioso cuidado a

las relaciones entre las clases cuando en modelo es complejo, la dificultad del manejo de objetos radica en la

complejidad de las modificaciones y eliminaciones de clases, ya que de tener variables que heredan otros

objetos se tiene que realizar una reestructuración que involucra una serie de pasos complejos.

Como ejemplo de desarrollo, se describen primeramente los tipos de objetos importantes del dominio de

aquellos tipos de objetos. Estos tipos de objetos determinan las clases que conformarán la definición de la

BDOO. En un caso real, se supone una base de datos diseñada para almacenar la geometría de ciertas partes

mecánicas incluiría las clases CILINDRO, ESFERA Y CUBO. El comportamiento de CILINDRO podría

incluir información relativa a sus dimensiones, volumen área superficial:

Clase de CILINDRO{

ALTURA FLOTANTE ();

RADIO FLOTANTE ();

VOLUMEN FLOTANTE ();

AREA DE SUPERFICIE FLOTANTE ();

};

Se puede llegar a definiciones similares para el cubo y la esfera. En la definición anterior, ALTURA,RADIO

y ÁREA representan los mensajes que se pueden enviar a un objeto CILINDRO.

La Implantación se lleva a cabo en el mismo lenguaje, escribiendo funciones correspondientes a las

solicitudes OO:

CILINDRO::ALTURA () {RETORNA CILINDRO_ALTURA;}

CILINDRO::VOLUMEN () {RETORNA PI*RADIO ()*ALTURA ();}

En este caso, la Altura se almacena como un elemento de los datos, mientras que volume se calcula mediante

la fórmula apropiada. Observe que la implantación interna de volume utiliza solicitudes para obtener altura y

radio. Sin embargo, el aspecto más importante es la sencillez y uniformidad que experimentan los usuarios de

CILINDRO. Sólo necesitan conocer la forma de enviar una solicitud y las solicitudes disponibles.

Page 18: Sistemas de Bases de Datos

- Modelo Semántico

Tienen como objetivo describir de un modo más preciso la información contenida en la base de datos.

- Modelo Deductivo

Son capaces de deducir hechos a partir de las relaciones base y una serie de axiomas deductivas o reglas de

inferencia.

Servidores de bases de datos

Grandes proveedores de información para todo tipo de usuarios

Los servidores de bases de datos surgen con motivo de la necesidad de las empresas de manejar grandes y

complejos volúmenes de datos, al tiempo que requieren compartir la información con un conjunto de clientes

(que pueden ser tanto aplicaciones como usuarios) de una manera segura. Ante este enfoque, un sistema

gestor de bases de datos (SGBD, a partir de ahora) deberá ofrecer soluciones de forma fiable, rentable y de

alto rendimiento. A estas tres características, le debemos añadir una más: debe proporcionar servicios de

forma global y, en la medida de lo posible, independientemente de la plataforma. Internet se ha convertido en

nuestros días en la mayor plataforma de comunicaciones jamás vista. Esto hace que las empresas tiendan a

presentar su información a través de la Web en forma de contenidos, que después los clientes consultarán para

establecer relaciones con dichas empresas.

Una de las funciones que se empieza a exigir a los SGBD, puesto que sobre ellos recae el peso del almacén y

proceso de la información, es la de proporcionar herramientas de apoyo a toma de decisiones

("datawarehouse") al tiempo que proporciona una plataforma de transacciones "on-line" (OLTP) que hacen

que la información esté siempre actualizada y consistente. A lo largo del artículo iremos comentando las

prestaciones de ambas implementaciones y cómo influye el SGBD en el proceso de las mismas.

Aunque parece clara la función de un SGBD, en la actualidad cada vez más filosofías y tecnologías tienden a

confluir en un mismo punto. Ya se está hablando acerca de las posibilidades de los nuevos SGBD de poder

almacenar contenidos multimedia, objetos, documentos complejos... La explosión de nuevos servicios ha

Page 19: Sistemas de Bases de Datos

hecho que cada vez más aplicaciones dependan de estos servidores de datos, delegando la responsabilidad de

la gestión y almacenamiento de la información a aquellos que mejor están preparados para su tratamiento.

Para poder lograr estos objetivos, es un punto muy importante el que los SGBD proporcionen herramientas de

administración completas (que simplifiquen la tarea de la configuración, seguridad, creación y gestión de

bases de datos al tiempo que proporcionan mecanismos de integración con otros sistemas y políticas de copias

de seguridad) y herramientas que permitan su programación (tanto a nivel de diseño como a nivel de reglas y

procedimientos que encapsulen la arquitectura de la base de datos, de tal manera que, a través de conectores a

datos, las aplicaciones sólo tengan que pedir la información que necesitan sin preocuparse de cómo se

encuentra almacenada).

Por último, puesto que los datos deben estar por encima de la plataforma, los SGBD deben proporcionar

mecanismos de comunicación con otras plataformas que actúen también como clientes o servidores de datos.

Lo que nos lleva al último punto que consideraremos: la posibilidad de la replicación de la información,

posibilidad que permitirá que la información pueda estar almacenada en múltiples servidores de datos y

accesible desde cualquier punto como si se tratase de un único volumen de información.

Servidores de bases de dato relacionales

Antes de comenzar a comentar las características a analizar de los SGBD, el primer paso es el de definir qué

es un servidor de bases de datos relacionales y sus cometidos principales. Un servidor de bases de datos

relacionales es un sistema bajo arquitectura cliente/servidor que proporciona servicios de gestión,

administración y protección de la información (datos) a través de conexiones de red, gobernadas por unos

protocolos definidos y a los que acceden los usuarios, de modo concurrente, a través de aplicaciones clientes

(bien sean herramientas del propio sistema como aplicaciones de terceros).

Dichos servidores solucionan los problemas de las empresas al manejar grandes volúmenes de información de

una manera estable, fiable, coherente y segura en un entorno heterogéneo de trabajo y de necesidades de

información.

La información se almacenará de modo lógico de una manera relacional, como ya se ha visto, en la que un

conjunto de almacenamientos que llamaremos tablas (y que se componen de un conjunto de campos que

describen su contenido, y a los cuales denominaremos columnas) se relacionan entre sí a través de un

conjunto definido de claves. Una de las responsabilidades del sistema y del diseño de la base de datos, será el

que sea posible mostrar aquella información requerida a través de conjuntos de datos planos (que llamaremos

cursores), independizando las relaciones establecidas y la arquitectura de la base de datos de la necesidad de

información del usuario. Para proteger la información el sistema contará con mecanismos de control de

transacciones basados en reglas que denominaremos disparadores, reglas de definición del tipo de entrada de

datos y reglas de validación de las entradas de datos. Mediante complejos sistemas de indexación, estos

sistemas serán capaces de ordenar y acelerar las consultas a la información requerida. Cuanto mejor se

indexen los datos, más rápidas se realizarán las consultas. Por último, y como un factor muy importante de

cara al diseño de bases de datos, los sistemas deben proporcionar la posibilidad de automatizar operaciones de

acceso, filtrado y control de los datos, a través de los procedimientos almacenados.

Todo ello se podrá realizar a través del lenguaje SQL (Structured Query Language, lenguaje estructurado de

consulta) que se ha convertido en el estándar de interfaz de estos sistemas para su diseño, desarrollo y

consultas de informaci6n. Desarrollado por IBM, se ha convertido en un estándar para el manejo de estos

sistemas y queda recogido en la norma ANSI SQL'92, en la cual quedan registradas aquellas sentencias SQL

que deben estar presentes en todo sistema gestor de bases de datos. En este apartado, que es donde los SGBD

demuestran sus propios dones, es donde ya nos separamos del estándar, pues cada fabricante añadirá sus

propias extensiones al lenguaje para aprovechar, como es lógico, las ventajas de sus propios motores.

De lo indicado en los párrafos anteriores podremos obtener algunos de los parámetros que emplearemos en la

comparativa: capacidad del servidor de conexión con el exterior; capacidad de atender peticiones concurrentes

Page 20: Sistemas de Bases de Datos

de clientes; seguridad del sistema; herramientas de administraci6n disponibles; herramientas de

administración y automatización de tareas que reduzcan el TCO ("Total Cost Owner") y, por último, la

cantidad de plataformas en la que se puede integrar el sistema.

La seguridad

En todo sistema abierto, debe proporcionarse un potente mecanismo de seguridad que garantice que ningún

intruso pueda acceder o corromper la integridad del sistema. Si este concepto ya es crítico en los sistemas

operativos actuales, hay que imaginarse cuánto más es de importante este concepto cuando ya no hablamos de

recursos del sistema (como puedan ser archivos o correos, más o menos importantes) sino de información

crítica para la empresa, en la que se almacenan datos de contabilidad, gestión, personal, o estratégicos de la

cual depende para su existencia.

En servidores de bases de datos hablaremos de la seguridad a 4 niveles básicos: seguridad de acceso al

sistema, seguridad a nivel de objetos de datos, seguridad a nivel de datos y seguridad en cuanto a protección

de los almacenamientos físicos de los datos.

La seguridad de acceso se implementará de dos maneras posibles: a nivel de sistema operativo, en cuyo caso

el SGBD se apoya en la seguridad de entrada al sistema operativo para comprobar la validez del acceso a los

datos almacenados; o bien lo que llamaremos modo mixto, en el cual la seguridad de entrada a la información

la llevará a cabo el propio servidor de datos a partir de la definición de cuentas de usuario al servidor (su

denominación de mixta proviene de la capacidad de los sistemas de incluir como cuentas de acceso o login

áquellas propias del sistema operativo, lo que facilita la transición de las cuentas de seguridad). La segunda

será de gran ayuda cuando los clientes que acceden al sistema provienen de sistemas operativos con poca (o

ninguna) seguridad o de aplicaciones instaladas que necesiten acceder a los volúmenes de información del

sistema. En ambos casos, en los sistemas se contará con roles o papeles con los que contará el usuario al

entrar al sistema para la realización de determinadas operaciones de cara al sistema.

La seguridad a nivel de objetos entra ya en el detalle del acceso a nivel de creación y administración de

objetos de datos: tablas, vistas, índices, relaciones, reglas...etc. Es decir, las responsabilidades y acciones que

puede hacer el usuario en el esquema de la base de datos (el esqueleto a partir del cual el sistema definirá

cómo se debe almacenar y relacionar la información). Se podrán especificar de nuevo roles a los usuarios,

indicando quién podrá crear, modificar o eliminar cualquier objeto de datos (con lo que se permite establecer

una política de delegación de responsabilidades).

La seguridad a nivel de datos entra ya en la capa de la información en si. En la que indicaremos quién puede

acceder a qué información para su consulta, actualización, inserción o borrado. Las características de los

diversos motores determinarán hasta qué grado de seguridad se llega en este apartado (desde la protección de

las columnas de una tabla hasta la tabla en si, creación de vistas...etc.).

Por último, la seguridad a nivel de protección de los almacenamientos físicos de la información. Tendremos

dos aproximaciones: la seguridad a nivel de sistema operativo de los archivos de datos del sistema, y las

políticas de copia de seguridad y restauración de los datos (tanto con herramientas del sistema operativo como

las proporcionadas por el propio servidor de datos) junto con sus posibles aproximaciones (total, incremental

y diferencial), además de los soportes hardware compatibles de almacenamiento masivo empleados como

destino de las copias.

El soporte de red

Puesto que se está implementando una solución cliente/servidor, es un elemento fundamental para la conexión

entre los distintos clientes y el servidor un canal apropiado para la comunicación, que posibilite el intercambio

de información. Los servidores de datos deben proporcionar mecanismos de comunicación óptimos, pues de

cómo se envíe la información dependerán parámetros tan importantes como la velocidad de acceso a los

datos. Todos los sistemas gestores analizados cuentan con múltiples configuraciones de protocolos,

Page 21: Sistemas de Bases de Datos

adaptándose a los protocolos existentes y estandarizados de la actualidad: TCP/IP, IPX, Banyan..., aunque el

que tiene un auge imparable en este tipo de servicios es el omnipresente TCP/IP, lo que garantiza que la

conexi6n de nuestros servidores estará al alcance de cualquier usuario desde cualquier parte del mundo.

Es importante no sólo el canal de comunicaciones que está disponible para los servidores de datos sino

también cómo es transmitida la información. Es lógico pensar que tienen que existir posibilidades de

encriptación de la información para prevenir accesos no autorizados así como mecanismos de partición de los

datos, para evitar que peticiones masivas de información sobrecarguen el ancho de banda de la red. Además,

será una cuestión de optimización el saber que no toda la información es necesaria al mismo tiempo, y que el

servidor debe ser capaz de ir proveyendo la información requerida en el momento justo en el que es necesaria

(lo que ahorra ancho de banda y recursos de la máquina) .

La configuración de las librerías de red dependerá mucho del tipo de sistema operativo que se encuentre en

explotación. Y será un componente a configurar tanto en la máquina servidor como en los puestos cliente.

Este apartado también dependerá del tipo de plataforma empleada.

Recalcar que el proceso de configuración de los clientes deberá ser un proceso sencillo, que en la mayoría de

los casos sólo implica conocer el nombre del servidor de datos y las cuentas oportunas, siendo el propio

sistema operativo el encargado de encontrar los servidores referenciados (bien a través de un nombre DNS,

una dirección IP o un nombre de servicio con un Puerto de escucha).

Internet y bases de datos distribuidas

Puesto que todo tiende a unificarse con Internet, los servidores de datos también deben proporcionar servicios

de datos a la Red. Los servicios disponibles incorporan generación y alimentación de páginas Web a partir de

consultas prediseñadas en la base de datos.

Dichas consultas mantendrán alimentadas las páginas Web, las cuales estarán siempre actualizadas con la

última información. Cuanto mayor sea el grado de integración con la Web, mejor podrá ser la presentación de

información crítica de la empresa en las páginas. Los servidores de datos deben proporcionar mecanismos de

actualización automática de las páginas, de manera que se asegure que cualquier cambio efectuado en la base

de datos se haga efectivo en la correspondiente página Web. De esta manera, la integridad de la informaci6n

también estará implementada a nivel de servicios de la Red. Lógicamente, también hay que pensar que esto no

es viable de cara a actualizaciones masivas de datos, lo que implica una sobrecarga del servidor (pues no sólo

actualiza datos sino también páginas Web). Por ello, generalmente deberemos contar con opciones que

permitan realizar actualizaciones manuales o programadas en el tiempo (lo que reducirá significativamente el

coste de actualización de las páginas).

No sólo es importante el nivel de integración con el Web, sino que también es importante el grado de

interacción del usuario con la misma. Generalmente las páginas Web proporcionan mecanismos de selección

de información personalizada, lo cual permite que los usuarios accedan sólo a aquella información que

precisan. Para ello, es importante que exista un soporte de interacción que se obtiene a través de código Java.

Por lo tanto, cuanto mejor sea el soporte Java, más se asegura la interacción y se amplía el rango de servicios

que puede proporcionar el servidor de datos.

Una de las mejoras realizadas como consecuencia de la integración con la Red Global, es la de la posibilidad

de permitir la compartición y distribución de la información a lo largo de los servidores situados en cualquier

parte del mundo. Esto permitirá a las empresas disponer de su información sea cuál sea el lugar del mundo en

el que se encuentre el departamento que la procesa. E, incluso, permitirá a las empresas poder integrar sus

bases de datos con sus proveedores o clientes, de manera que podrán colaborar a nivel de servicios y recursos

de información, ganando en rapidez y fiabilidad. Para ello, los servidores de datos deberán proporcionar los

servicios de intercambio de información, reglas de sincronización y todo un conjunto de parámetros

necesarios para que esta revolución en cuanto a acceso global a la información sea posible.

Page 22: Sistemas de Bases de Datos

Herramientas de administración

Avanzando un grado más en las capas de servicios que debe proporcionar un servidor de datos, nos

encontramos con las herramientas que proporciona tanto al usuario administrador como al cliente consumidor

de los datos. De cara al administrador, las herramientas deben proporcionarle un entorno amigable y sencillo

de manejar, que le permita orientarse a su trabajo y no preocuparse con detalles de más bajo nivel, al tiempo

que le permite realizar sus tareas de la manera más rápida y simplificada posible. Indicar que cuanto mayor

sea el nivel de automatización de las tareas, menor será el tiempo que tenga que dedicar a tareas generalmente

repetitivas. Y cuanto mayor sea el número de opciones configurables, mejor servicio se podrá obtener de

dichas tareas. La comodidad de acceso a las herramientas es otro parámetro a tener en cuenta. Cuanta más

información tengamos a nuestro alcance, menor será el tiempo empleado en acceder a la información

necesaria para la administración del servidor. No será extraño acceder a las opciones de configuración y

gestión a través de consolas que permitan la integración de "snap-ins" o que, al menos, sirvan de pasarela

entre las múltiples utilidades disponibles. Dichas herramientas, además, deben permitir la administración

remota del servidor o servidores que estén a cargo del administrador. De nuevo, insistir en el grado de

programación y automatización de tareas, ya que este mecanismo proveerá de la creación de planes

automáticos de realización de tareas repetitivas de administración, lo que garantiza un alto grado de

seguridad, optimización, ahorro de tiempo y esfuerzo.

Como un componente fundamental de un servidor de datos, es el de Optimización de la Base de datos y de las

consultas. Cuanto más efectiva sea la optimización del sistema, mayor velocidad adquirirán las consultas y

mejor rendimiento se obtendrá del servidor. Muchas veces la velocidad no se encuentra en una máquina

sobrada de recursos, sino en aprovechar al máximo los recursos de los que disponemos. Por lo tanto, cuanto

mejor sea el soporte de optimización para el administrador, mejor se podrá configurar el sistema, lo que

asegurará siempre un rendimiento máximo adaptado a las necesidades de la empresa.

Las consultas y su proceso

El servicio más importante que proporciona un servidor de datos es el del acceso a la información que

almacena. El cómo recuperar y actualizar dicha información es un proceso crítico del que depende en mayor

grado el éxito de este tipo de sistemas. El lenguaje que se emplea en la actualidad es el SQL bajo el estándar

ANSI SQL'92. Esto, como comentamos anteriormente, garantiza que todo conjunto de sentencias empleado

para el acceso a una base de datos puede ser empleado para cualquier tipo de servidor de bases de datos que

siga este estándar. Lo que independiza la necesidad de información del cómo se encuentre almacenada.

Las herramientas actuales permiten encapsular el código SQL, de tal manera que el usuario no tiene que

conocer dicho lenguaje para acceder a la información. Incluso, y gracias a los procedimientos almacenados, es

posible encapsular el código SQL dentro de la propia base de datos, lo que da lugar a la petición de

información únicamente a través de un conjunto documentado de funciones sencillas. Esto de cara a

aplicaciones y usuarios simplifica el acceso a la base de datos, y protege la arquitectura de la misma.

La optimización automática de consultas SQL es una nueva opción que proporcionan los nuevos servidores de

datos. Esto permite que sea el propio servidor el que reconozca la mejor manera de recuperar la información

(optimización y asignación automática de índices, o aprendizaje/ entrenamiento de consultas) que es lo que se

conoce como plan de ejecución de la consulta. Lo que en el caso de introducir una sentencia SQL no

optimizada por motivos de rapidez o desconocimiento, permite acelerar al máximo el acceso a los datos.

Esto, junto con las capacidades multiproceso de los servidores, permite que la ejecución de consultas

complejas se convierta en una operación rápida y de alto rendimiento.

Este apartado es muy importante de cara a la implementación de aplicaciones OLTP (en las cuales es crítica la

velocidad de actualización de la información en línea) y en entornos datawarehouse (en el que las consultas

de recuperación de información para la toma de decisiones dependen de consultas muy complejas en proceso

que devuelven valores calculados muy concretos).

Page 23: Sistemas de Bases de Datos

Por último, indicar en este apartado que será una opción de valor añadido el incorporar servicios de

datawarehouse, que permitan la implementación de este tipo de arquitecturas en la empresa.

En el caso de aplicaciones OLTP.es muy importante el asunto de los bloqueos de objetos de datos, pues el

sistema gestor debe mantener la integridad de la información que está siendo actualizada por múltiples

clientes al mismo tiempo. De no ser así, se podrían obtener situaciones de registros fantasma, información de

cálculo erróneo, e información desactualizada. Habrá que estudiar cuál es el sistema que ofrece un grado muy

fino de bloqueo, pues cuanto menor sea el nivel de bloqueo (se bloquea sólo lo justo) más usuarios podrán

acceder a los recursos al mismo tiempo. Un bloqueo a nivel de columna permite a los usuarios acceder y

modificar aquellas columnas que no están siendo actualizadas por otros usuarios, dentro de la misma fila. Un

bloqueo a nivel de tabla paralizará temporalmente las operaciones de aquellos usuarios que no tienen el

acceso a dicho recurso hasta que el operador termine su operación.

En este apartado, uno de los factores críticos es el del control de las transacciones. Las transacciones son un

conjunto de operaciones que se realizan como una unidad de ejecución y que deben terminar con éxito (en

cuyo caso se actualiza la información implicada en todos los pasos, se denomina "commit") o en fracaso (en

cuyo caso el servidor debe ser capaz de deshacer toda la operación para dejar la base de datos en el último

estado consistente, conocido como "rollback"). Cuanto mayor sea el grado de recuperación y control de las

transacciones, mayor integridad se obtendrá en la base de datos. Y este control se propaga en cuanto a

transacciones distribuidas se refiere, pues el que una transacción caiga en un determinado servidor, debe

implicar que todos los servidores implicados deben echar atrás la operación errónea, lo cuál puede resultar

una operación compleja y de envergadura. Además, en caso de caída los servidores deben garantizar que

todas las transacciones consideradas como válidas son restauradas para garantizar la integridad de la

información en el momento del arranque de la máquina y antes de permitir el proceso por parte de los

usuarios (y es por ello por lo que los servidores cuentan con el registro de LOG de transacciones).

Plataformas y programación

En este último punto comentaremos la importancia que tienen dos de los parámetros relacionados con las

plataformas disponibles para el servidor y el grado de ampliación del mismo tanto de cara a su

implementación interna como en su capacidad de proporcionar API de programación a los desarrolladores.

La escalabilidad y portabilidad del servidor será un factor a tener en cuenta de cara a su adquisición o

migración desde sistemas ya existentes. Y ya no sólo de cara al motor del servidor sino de cara a las

plataformas de las herramientas de los clientes. Cuanto mayor sea el rango de plataformas soportadas, tanto

más universal será el acceso al motor, lo que no limita a la empresa en cuanto a parque tecnológico se refiere.

En este punto, decir también que cuanto mejor sea el soporte de migración y traspaso de información entre

distintos servidores, más se garantizará la integraci6n/migración de la información ya existente, con el

mínimo riesgo de pérdida de información y el mínimo coste de implantación y desarrollo.

En cuanto al desarrollo, los servidores de datos deben proporcionar las API necesarias para asegurar que los

desarrollos que se lleven a cabo puedan aprovechar los servicios de acceso y gestión de los datos de la manera

más eficiente y completa posibles. Y, además, no deben limitar el desarrollo a la plataforma en la que se

encuentra el sistema, sino que debe ser capaz de dar soporte a los lenguajes estándar de la Red como pueda

ser Java, lo que garantizará una integración total con los recursos de la Red.

El soporte hardware necesario

Lógicamente, sin un buen soporte hardware que proporcione los factores de rendimiento necesarios para

cumplir los objetivos de acceso a la información, no podremos obtener las prestaciones establecidas. En

cuanto al procesador empiezan a aprovecharse al máximo las arquitecturas SMP (Multiproceso simétrico).

Los servidores de datos serán capaces de distribuir la carga del análisis dé las consultas, la ejecución de la

programación de tareas y, como no, el control de los accesos de múltiples usuarios al mismo tiempo. Es

requisito imprescindible contar con una buena cantidad de memoria, pues una de las mejores maneras que,

Page 24: Sistemas de Bases de Datos

tienen los servidores de proporcionar los datos de la manera más rápida posible es mantener los sistemas de

indexación, cursores y páginas caché en la memoria del servidor. Lo que requiere de una enorme cantidad de

espacio libre. Ni que decir tiene que él disco duro es necesario que disponga de almacenamiento de sobra si

quiere ser capaz de albergar varias bases de datos que son capaces de almacenar el nivel de información diario

(presente y futuro) que requiere el funcionamiento de la empresa y sus reglas de negocio.