Fundamentos de Bases de Datos PDF

BASES DE DATOS. INTRODUCCIÓN 1 © W iln e r C u e n c a Unidad 1 Desde el inicio de la informática, las organizacione

Views 86 Downloads 1 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

BASES DE DATOS. INTRODUCCIÓN

1

© W iln e r C u e n c a

Unidad 1

Desde el inicio de la informática, las organizaciones han manifestado su necesidad de procesar grandes volúmenes de información. Es así como surgieron los primeros sistemas de información gestionados por lenguajes de programación. Rápidamente se hizo notoria la complejidad en la elaboración de tales aplicaciones, por lo que, entre los desarrolladores de software se hizo evidente la necesidad de proporcionar instrumentos que facilitaren el desarrollo de sistemas de información para proveer una gestión eficiente y un control confiable de los datos administrados; es aquí, donde se hacen presentes los sistemas de gestión de bases de datos (SGBDs o DBMSs, ‘database management systems’). Así pues, pareciera que la incursión de los SGBDs facilitase el desarrollo de sistemas de bases de datos. No obstante, hay opiniones contrarias al criterio anterior; por ejemplo, considérese el siguiente pensamiento anónimo: ¿Habrá alguien notado que 11 de las 12 letras de bases de datos1, se digitan en un teclado con la mano izquierda? Sépase que la disposición QWERTY de las teclas en los teclados fue diseñada, entre otras cosas, para proporcionar la utilización de ambas manos por igual. Se desprendiera, por lo tanto, que escribir acerca de bases de datos, no es sólo anormal, sino algo más difícil de lo que aparenta. (Adaptado de Ramakrishnan, Pág. 3)

En esta Unidad analizaremos algunos aspectos esenciales que nos proporcionen los 1

En inglés todas las letras: database

2

BASES DE DATOS … ENFOQUE RELACIONAL

SECCIÓN I: FUNDAMENTOS

Fundamentos, diseño e implantación

UNIDAD 1

cimientos para un entendimiento eficiente de los sistemas de bases de datos y de los SGBDs. Estudiaremos las generalidades de dato, base de datos, sistema de información, sistema de gestión de bases de datos y su perspectiva histórica, arquitectura de sistemas, acceso a sistemas de bases de datos, estructura de los SGBDs, y de los usuarios relacionados con los mismos.

Información concerniente a objetos del mundo real, y que en sistemas de bases de datos, normalmente, es considerada atómica; no desde el punto de vista físico, sino en el sentido de que para el sistema que se estudia no tiene objeto su división.

NÚMERO 111 112 113 | 111 113 | 112 114 |

APELLIDO 1 APELLIDO 2



MATRICULADO EN

AÑO

Cuenca Álava Muñoz | Cuenca Muñoz | Álava Loor |

… … … | … … | … … |

Primero Primero Segundo | Segundo Tercero | Segundo Cuarto |

2000 2000 2000 | 2001 2001 | 2002 2002 |

Vera Zambrano Cedeño | Vera Cedeño | Zambrano Pérez |

Figura 1.1. Base de datos Un sistema de información se lo relaciona normalmente con archivos planos que gestionan información (aunque también puede ser un sistema de bases de datos). Un archivo plano es una colección de registros no auto-documentada. Ver Figura 1.2. En la Figura 1.2 se observa que espacios en blanco son utilizados para llenar la longitud de un campo cuando la información correspondiente a éste no completa su longitud, y que cada línea se considera un registro. Cada programa de aplicación que desee acceder a los datos del archivo debe saber el número de caracteres de cada campo. Tales programas deben tener líneas de código para que lean los caracteres de NÚMERO, y para que lean los siguientes caracteres de APELLIDO1,

© W iln e r C u e n c a

Conjunto de datos que se encuentran organizados. Así por ejemplo, los datos mostrados en la Figura 1.1 y almacenados en un procesador de texto u hoja electrónica, se los considera una base de datos. Es más, estos datos, pueden estar simplemente almacenados en un medio no lógico, como una hoja de papel, y por esto no dejan de ser una base de datos.

BASES DE DATOS. INTRODUCCIÓN

3

y así sucesivamente. Los modernos lenguajes de programación como el Pascal, C, Visual Basic, etc., permiten leer cada línea de un archivo plano como una línea de texto que luego puede dividirse en segmentos y asignarle variables significativas dentro de la programación. Lo importante es entender que cada programa de aplicación que use archivos planos debe tener su propia descripción de los archivos de datos. Contrario a un sistema de base de datos que almacena el diccionario de datos dentro de la base en si.

© W iln e r C u e n c a

NÚMERO 111 112 113 | 111 113 | 112 114 |

APELLIDO1 Cuenca Álava Muñoz | Cuenca Muñoz | Álava Loor |

APELLIDO2 Vera Zambrano Cedeño | Vera Cedeño | Zambrano Pérez |

… … … … | … … | … … |

MAT_EN Primero Primero Segundo | | Segundo Tercero | | Segundo Cuarto |

AÑO 2000 2000 2000 2001 2001 2002 2002 |

Figura 1.2. Archivo plano Cuando en un archivo plano se cambia la estructura de los registros, insertando por ejemplo el campo NOMBRES después del campo APELLIDO2, se deben modificar todos los programas de aplicación que realicen operaciones con este archivo plano. En un sistema de base de datos, por el contrario, sólo es necesario cambiar el diccionario de datos. Por supuesto que habrá que hacer ciertas modificaciones en lo que se refiere al acceso del nuevo campo, pero no porque la longitud del registro haya cambiado.

Conjunto de datos pertenecientes a una organización que se encuentran organizados e interrelacionados de forma que puedan ser administrados por un sistema de gestión de bases de datos. Mientras que un archivo plano contiene sólo los datos a gestionar, un sistema de base de datos contiene datos y meta-datos. Los meta-datos son, entre otros, una descripción de: Las columnas en una tabla (o campos de cada registro). La ubicación, nombre, y número de filas en cada tabla. Los índices. Las restricciones que definen el rango de valores que puede ser asignado a cada columna.  Las restricciones de clave que define como los registros pueden añadirse y las limitaciones en que los registros pueden eliminarse. Así mismo, la relación que existe entre los registros de las diferentes tablas (modelo relacional).    

4

BASES DE DATOS … ENFOQUE RELACIONAL

Fundamentos, diseño e implantación

UNIDAD 1

SECCIÓN I: FUNDAMENTOS

Los meta-datos se ubican, generalmente, en varias tablas, denominadas también tablas del sistema, y/o en las propias tablas de datos. Otros factores, como redundancia mínima indispensable, seguridad, etc., se consideran también al hablar de un sistema de base de datos. Así, los datos anteriores estructurados, a como se muestra en la Figura 1.3, se los considera un sistema de base de datos. ESTUDIANTE

CURSO

NÚMERO APELLIDO1 APELLIDO2 …

CÓDIGO NOMBRE

111 112 113 114 |

Cuenca Álava Muñoz Loor |

Vera Zambrano Cedeño Pérez |

1 2 3 4 |

… … … … |

Primero Segundo Tercero Cuarto |

MATRÍCULA 111 112 113 | 111 113 | 112 114 |

1 1 2 | 2 3 | 2 4 |

AÑO 2000 2000 2000 | 2001 2001 | 2002 2002 |

Figura 1.3. Sistema de base de datos Se dice que es un sistema de base de datos, no por el hecho de que vayan a estar soportados por un SGBD, sino a como los datos están organizados; interrelacionados y estructurados con una redundancia mínima, o “aceptable”. Por tanto, si a los datos de la Figura 1.2 se los implantara en un SGBD, por ejemplo, el Microsoft Access, seguiría siendo una base de datos, aunque podría calificarse como un sistema de base de datos mal diseñada, ya que el SGBD no podría hacer un control efectivo de los datos, o habría que hacer la codificación necesaria en la aplicación frontal para suplir las deficiencias del diseño. Si para gestionar los datos en análisis, se utiliza más de un archivo, y estos no están interrelacionados, no se los considera un sistema de bases de datos, sino un sistema de información, que seguramente estará administrado por algún lenguaje de programación de tercera generación. Así pues, no todo sistema de información es

© W iln e r C u e n c a

NÚMERO CÓDIGO

BASES DE DATOS. INTRODUCCIÓN

5

un sistema de base de datos. En realidad, en el ámbito informático no existe acuerdo sobre el significado de los términos base de datos y sistema de base de datos y ambos se utilizan como sinónimos, para expresar el criterio expuesto previamente para lo que es un sistema de base de datos.

© W iln e r C u e n c a

Es un software de aplicación que permite extraer y almacenar información de un sistema de base de datos, proporcionando seguridad en la información almacenada (pese a caídas del sistema o intentos de acceso no autorizados), independencia, integridad y consistencia de los datos, y minimizando redundancia de información en el sistema de base de datos. Una de las características fundamentales de los SGBDs es que permiten compartir recursos entre diferentes aplicaciones, que la distingue de los sistemas de procesamiento de archivos. En un sistema de base de datos, todos los datos se integran en un único archivo físico, o en un conjunto de archivos relacionados. Cualquier acceso a los datos, solicitado por una aplicación, mediante una interfase de usuario, es ejecutado a través del sistema de gestión de base de datos que es el software que entiende y manipula la estructura lógica de los datos en el archivo.

Usar SGBDs para administrar información tiene muchas ventajas, como: independencia de datos, eficiencia de acceso a la información, integridad de datos y su seguridad, acceso concurrente y recuperación ante fallos del sistema, menor tiempo en el desarrollo de aplicaciones, administración de la información, entre otros. INDEPENDENCIA DE DATOS: En un buen sistema de información los programas de aplicación deben ser tan independientes como sea posible de la organización y almacenamiento de los datos. Un SGBD puede proveer de una vista abstracta de los datos para aislar el código del programa de aplicación de tales detalles. EFICIENCIA EN EL ACCESO DE LOS DATOS: Los SGBDs utilizan una variedad de técnicas sofisticadas de almacenamiento y recuperación eficiente de la información mediante el uso de optimizadores, índices, paginación, árboles balaceados, entre otros. INTEGRIDAD DE DATOS Y SEGURIDAD: Los SGBDs pueden forzar restricciones de seguridad en los datos. Por ejemplo, antes de ingresar el salario de un empleado, el SGBD puede chequear que el presupuesto no se exceda. También el SGBD puede

6

BASES DE DATOS … ENFOQUE RELACIONAL

Fundamentos, diseño e implantación

SECCIÓN I: FUNDAMENTOS

UNIDAD 1

incorporar controles de acceso para permitir que la información sea visible de acuerdo al usuario que accede a los datos, es decir, que no todos los usuarios podrán acceder a todos los datos. ACCESO CONCURRENTE Y RECUPERACIÓN ANTE CAÍDAS DEL SISTEMA: Un SGBD controla los accesos concurrentes de tal forma que un(a) usuario piense que es sólo él, el que está accediendo a los datos. Adicionalmente, los SGBDs protegen a los usuarios de los efectos de las caídas del sistema, mediante mecanismos de control y recuperación que poseen los SGBDs.

ADMINISTRACIÓN DE LOS DATOS: Otra ventaja importante de los SGBDs es la forma en que administran los archivos del sistema de base de datos. Mientras que un sistema de base de datos es administrado por un SGBD, los archivos planos son controlados por el sistema de gestión de archivos del sistema operativo. El sistema de gestión de archivos, contrario a un SGBD, no lleva un registro del tipo de datos que el archivo contiene. Al igual como el sistema de gestión de archivos gestiona archivos de procesadores de texto, hojas electrónicas, gráficos, etc., lo hace con el archivo plano, esto es, registra el tamaño y su ubicación. Por lo tanto, cada programa que acceda a los archivos planos debe codificarse para definir el tipo de datos al interior del archivo y el como manipularlos. En un sistema de base de datos un programador necesita especificar sólo lo que debe hacerse con los datos, en lugar de programar cómo el gestor de archivos debe leer, agregar, o remover registros. Un programador de un sistema de base de datos, especifica sólo las acciones que debe ejecutar el SGBD, ya que éste se encargará de la manipulación física de los datos, dando como resultado que los sistemas de bases de datos sean portables. Por ejemplo, la sentencia para borrar un registro en un sistema de base de datos es el mismo para un SGBD instalado bajo Unix o Windows NT (por citar dos sistemas operativos); es el SGBD que se encarga de transformar la sentencia de alto nivel en lenguaje de bajo nivel de acuerdo al sistema operativo, pero esto es transparente al programador, aspecto que no se da en sistemas de información gestionados por lenguajes de programación ya que los comandos de acceso al archivo plano, desafortunadamente, varían entre los sistemas operativos. Analizando las ventajas que proporcionan los SGBDs pareciera que siempre que se necesite gestionar información, la opción más adecuada sería el optar por esta alternativa. Sin embargo, esta no es la situación. Un SGBD es un software costoso

© W iln e r C u e n c a

MENOR TIEMPO EN EL DESARROLLO DE APLICACIONES: Dado a que los SGBDs incorporan varias herramientas de control y utilizan lenguajes de muy alto nivel (tercero y cuarto), dan como resultado que se puedan desarrollar aplicaciones más rápidamente y a la vez más robustas que con lenguajes de programación que gestionan archivos planos.

BASES DE DATOS. INTRODUCCIÓN

7

© W iln e r C u e n c a

y complejo, lo que implica que para aplicaciones pequeñas o en las que no se requiera un control de usuarios, seguridades eficientes, control ante caídas del sistema, etc., lo más racional es optar por otra alternativa, por ejemplo, archivos planos. Otra razón para no utilizar un SGBD es cuando la aplicación a desarrollar necesita manipular datos que no son soportados por su lenguaje de consulta.

El primer SGBD de propósito general fue diseñado por Charles Backman en la General Electric a inicios de los 60s, y formó los cimientos del modelo de datos de red, que posteriormente fuera estandarizado por la ‘Conference on Data Systems Languages’ (CODASYL). A fines de los 60s, la ‘International Business Machines’ (IBM), desarrolló el SGBD sistema de gestión de información ‘Information Management System’ (IMS), aún utilizado actualmente en muchas aplicaciones grandes. El IMS formó las bases del modelo de datos jerárquico. En 1970, Edgar Codd, en el laboratorio de investigación de la IBM, en San José, California, EE.UU., propuso un nuevo marco para estructurar los datos y lo llamó modelo de datos relacional, que marcó una división con los modelos de ese entonces, en la concepción estructural de organizar los datos, y desde los 80s consolidó su posición como el sistema dominante de bases de datos. Otros modelos de datos surgieron, como el sistema SABRE, utilizado para hacer reservaciones en aerolíneas, y que fuera desarrollado en conjunto por American Airlines e IBM. En la actualidad, tres tipos de SGBD son los que tienen mayor aceptación; el jerárquico, de red y relacional. De los cuales el sistema relacional es el que mayoritariamente se utiliza. Pero con la evolución de la informática, nuevos SGBDs están en estudio, y se estima que en un futuro cercano, el sistema relacional, que desplazó al sistema jerárquico y al sistema de red, pueda ser desplazado por alguna variante del modelo relacional, como el sistema de gestión de bases de datos relacional orientado a objetos (SGBDROO)2, o por otro sistema diferente, como el sistema de bases de datos deductivas, o fundirse con otros, como con los sistemas de información geográfica (SIGs)3. Pareciera que los SGBDROOs tienden a consolidar su posición en el mercado, al combinar las características del modelo orientado a objetos y del modelo relacional. Sin embargo, nuestro estudio se basará en las características relacionales de SGBDs. A fines de los 80s y en los 90s muchos avances se han realizado en el área de los SGBDs, como la incorporación de poderosos lenguajes de consulta y el soporte de 2

3

El estándar SQL:1999 basa su estructura para soportar el modelo relacional orientado a objetos, y en la actualidad algunos vendedores de SGBDRs proclaman a sus productos como sistemas de gestión de bases de datos relacionales orientado a objetos. En la actualidad, muchos SIGs utilizan como repositorio de datos sistemas de bases de datos relacionales que soporten datos espaciales; fotos, polígonos, etc., como por ejemplo; Oracle, Microsoft Access, etc.

8

BASES DE DATOS … ENFOQUE RELACIONAL

UNIDAD 1

SECCIÓN I: FUNDAMENTOS

Fundamentos, diseño e implantación

datos complejos, como imágenes, texto variable, etc., y quizás lo mas significante sea la incursión de los SGBDs en la Internet. Actualmente todos los vendedores de SGBDs están añadiendo funciones a sus sistemas para el soporte de sus productos en la Internet.

Existen dos configuraciones en que los datos de un sistema de base de datos se pueden organizar: centralizados y distribuidos.

Es aquel cuyos datos están almacenados en un sólo lugar físico, y por lo tanto todos los aspectos relacionados a la gestión de los mismos se los realiza en un solo lugar. Figura I.4.

SGBDR

Servidor a Peticionesdel program deaplicación

Petciones SQL Base de datos relacional Peticiones SQL

RED DE COMUNICACIONES

Terminales

Clientes Programa de aplicación

Figura 1.4. Bosquejo de una arquitectura centralizada Se puede decir que esta es la configuración estándar y por lo tanto es parte de la mayoría de los SGBDs comerciales. Una breve explicación de la figura previa se la hará cuando se trate la arquitectura cliente-servidor y los sistemas de n-capas.

Es aquel cuyos datos no están almacenados en un sólo lugar (servidor), sino que se distribuyen a lo largo de una red de computadores, geográficamente separados, es decir, está formada por un conjunto de localidades, cada una de las cuales mantiene un sistema de base de datos local. Una localidad puede procesar transacciones

© W iln e r C u e n c a

Programa de aplicación

BASES DE DATOS. INTRODUCCIÓN

9

locales (en su propia localidad) o globales (en diferentes localidades). Figura I.5. SGBDD

Servidor 1

Base de datos 1

RED DE COMUNICACIONES 1

SGBDD

© W iln e r C u e n c a

Servidor 2

Base de datos 2

RED DE COMUNICACIONES 2

BD = BD1 + BD2 Cliente envía solicitud

Clientes Programa de aplicación

Servidor 2 analiza petición y responde a cliente o pregunta a servidor 1 Servidor 1 contesta a servidor 2 y servidor 2 contesta a cliente

Figura 1.5. Bosquejo de una base de datos distribuida El software que gestiona las transacciones de los datos distribuidos se lo conoce como sistema de gestión de bases de datos distribuida (SGBDD), y éste debe ser de total transparencia al usuario (al menos para el usuario final), es decir, un usuario accede a los datos como si se tratara de un sistema centralizado. Puede utilizarse un SGBDR centralizado, y distribuir los datos en más de una localidad, pero involucra realizar programación adicional para hacer la gestión distribuida. Este esquema funciona con el modelo cliente-servidor que se estudiará

10

BASES DE DATOS … ENFOQUE RELACIONAL

Fundamentos, diseño e implantación

SECCIÓN I: FUNDAMENTOS

UNIDAD 1

Esta arquitectura presenta la ventaja de que partes del sistema pueden funcionar independientemente ante caídas del sistema en otras redes que conformen el sistema global, es decir se pueden realizar transacciones locales pero no globales. Entre las desventajas se tiene su elevado costo y la complejidad en el desarrollo de las aplicaciones, aunque quizás el principal inconveniente de los sistemas distribuidos es el control que se requiere para garantizar una coordinación adecuada entre las localidades. Tradicionalmente los sistemas de bases de datos han sido centralizados, las bases de datos distribuidas no han madurado lo suficiente para desplazar este esquema, ya que su software de gestión es más sencillo y con menor probabilidad de errores ante fallos, por lo tanto, es más económico que el de los sistemas distribuidos. Un aspecto de seguridad que se debe considerar en los sistemas centralizados, es que como toda la información, de una determinada institución, está en un sólo computador, de ser posible, se debe tener replicación del sistema de base de datos.

Para acceder a los datos de un sistema de base de datos se pueden tener dos configuraciones: la arquitectura maestro-esclavo, y la arquitectura cliente-servidor.

El modelo maestro-esclavo, también conocido como de acceso directo, es aquel en

© W iln e r C u e n c a

posteriormente. Para explicar el esquema de la figura supongamos que la red de comunicaciones 1, corresponde a la red de área local (RAL), de la Facultad de Ciencias Matemáticas Físicas y Químicas, y la red de comunicaciones 2 corresponde a la RAL de la Facultad de Ciencias Informáticas (FCI). El sistema de base de datos es una aplicación para dar soporte a las bibliotecas de la Universidad Técnica de Manabí (UTM). El sistema de base de datos 1 tiene información de la biblioteca central, mientras que el sistema de base de datos 2 tiene información de la biblioteca de la FCI. Los dos sistemas de bases de datos son el sistema de base de datos de biblioteca de la UTM. Así cuando un cliente, en la red 2, solicita información sobre un documento, la aplicación envía la solicitud a la biblioteca de la FCI, servidor 2, éste analiza la petición, si tiene información de la petición en su base, devuelve al cliente el resultado, caso contrario, ausculta, los otros servidores que conforman el sistema de base de datos, en este caso la biblioteca central, servidor 1, y le solicita la petición, éste devuelve el resultado al servidor 2, y éste responde al cliente. Lo descrito es una explicación simplificada del funcionamiento de los sistemas de bases de datos distribuidas, para proporcionar al lector una idea básica de esta arquitectura. El comportamiento puede diferir al explicado. Para un entendimiento pleno de este modelo se requiere un estudio profundo del mismo.

BASES DE DATOS. INTRODUCCIÓN

11

© W iln e r C u e n c a

el cual un nodo en una red de comunicaciones accede a través de una “red de computadores” al servidor, y ejecuta el programa de aplicación (archivo ejecutable) que reposa en el mismo. Este modelo, se caracteriza por tener terminales tontos o no inteligentes, ya que todas las tareas se procesan en el servidor, pero a su vez conlleva a un aumento considerablemente del tráfico en la “red”, lo que exige un servidor con gran poder de procesamiento para que pueda atender a todos los nodos que se contemple utilizar en un momento determinado. Esta arquitectura no se la reconoce como una red de computadores, conforme a criterios actuales, sino que se lo referencia como terminales enlazados por medios de comunicaciones a un servidor. A esta distribución se la conoce también como arquitectura de una capa. En la Figura 1.6, se puede hacer una analogía de esta arquitectura, considerando los terminales que no son clientes, y el servidor que además de tener el sistema de base de datos también puede tener instalado el programa de aplicación. Estos terminales acceden al servidor, mediante un enlace, para correr el programa de aplicación; con lo que, los procesos se realizan sólo en el servidor.

El modelo cliente-servidor es aquel en el cual las tareas de una aplicación se dividen entre los computadores: servidor y clientes (o distribución en dos capas), a través de una red de computadores. Figura 1.6.

SGBDR Programa de aplicación

Servidor ma Peticionesdel progra deaplicación

Petciones SQL Base de datos relacional Peticiones SQL

RED DE COMUNICACIONES

Terminales

Clientes Programa de aplicación

Figura 1.6. Bosquejo de una arquitectura cliente-servidor En este caso, en los clientes se instala y ejecuta el programa de aplicación. El programa de aplicación, normalmente, realiza ciertas tareas, como controlar el tipo de datos que un usuario ingresa en cada columna y su longitud, comprobar que una casilla de ingreso no sea nula, etc., y sólo envía la petición al servidor cuando requiere acceder a la información, en nuestro caso, al sistema de base de datos. En

12

BASES DE DATOS … ENFOQUE RELACIONAL

Fundamentos, diseño e implantación

SECCIÓN I: FUNDAMENTOS

UNIDAD 1

el modelo relacional de datos, lo que el cliente envía son peticiones en lenguaje de consulta estructurado (SQL, ‘structured query language’), que es el que entiende un sistema de gestión de base de datos relacional (SGBDR). Este modelo reduce el tráfico en la red pero requiere de terminales inteligentes que puedan procesar las tareas a ellos asignadas y que están definidas en el programa de aplicación. En el servidor se encuentra instalado algún SGBDR y el sistema de base de datos a utilizarse; y cuando recibe peticiones de un cliente, las procesa y devuelve el resultado al cliente que las ha solicitado.

 La capa de presentación, corresponde a la interfaz del usuario. Esta capa, normalmente, reside en el cliente.  La capa de negociación o aplicación, corresponde a las reglas de gestión para trabajar con los datos, definición de reportes, etc. Esta capa puede residir en el servidor, en el cliente, o en ambos.  La capa de datos, corresponde al sistema de base de datos, administra la integridad de datos y procedimientos almacenados. Esta capa reside únicamente en el servidor. Como resultado de esta descomposición, se pueden tener sistemas de 2-capas, 3capas, y multi-capas o n-capas. En la configuración de 2-capas se puede tener una arquitectura con un servidor robusto (capa de datos y capa de negociación) y un cliente liviano (capa de presentación), o un servidor no tan robusto (capa de datos) y un cliente robusto (capa de presentación y capa de negociación). Un ejemplo de arquitectura con cliente robusto es una aplicación que utilice Microsoft Access en el cliente. Uno de los principales inconvenientes de este modelo es que cada día las aplicaciones informáticas son más cambiantes, para satisfacer las nuevas necesidades de automatización de las empresas, dando como resultado que la codificación de éstas debe re-escribirse y actualizarse en cada uno de los clientes, y con empresas que poseen cientos y miles de computadores clientes, el costo que implica la actualización se convierte en una gran desventaja. En una configuración de 3-capas y n-capas, cada capa, normalmente, reside en diferentes computadores. Por ejemplo, la capa de datos o capa dorsal, en un servidor de datos, la capa de presentación o capa frontal en los clientes, encargados

© W iln e r C u e n c a

La arquitectura cliente-servidor consiste de tres capas lógicas: la capa de presentación, la capa de negociación o aplicación, y la capa de datos. Esta división en capas, permite diseñar aplicaciones en diferentes formas, en función de la cantidad de procesamiento que se necesite que realice el cliente y el(los) servidor.

BASES DE DATOS. INTRODUCCIÓN

13

de la interfase de usuario, y la capa de negociación o aplicación o capa intermedia, en un servidor de aplicaciones, que es un intermediario de las otras dos capas enviando las peticiones de los clientes a la capa de datos. Con esta disposición el cliente es liberado de las tareas de la capa de aplicación y el servidor de datos también puede ser liberado de determinadas tareas como la de procedimientos almacenados. La capa intermediaria recibe también el nombre de ‘middleware’, y este término se refiere a un conjunto de herramientas de software que facilitan el desarrollo y ejecución de sistemas multi-capas. Este esquema, es el que mayor aceptación tiene en las empresas que utilizan una gran cantidad de clientes, porque esta arquitectura les evita el actualizar todos los clientes cuando hay cambios en las aplicaciones.

© W iln e r C u e n c a

Otro ejemplo de arquitectura de 3-capas puede ser una aplicación de un sitio Web que interactúe con un sistema de base de datos. En este caso, la capa de datos está el servidor de datos, la capa de aplicación y de parte de la de presentación residen en el servidor Web, y en el cliente se utiliza un navegador Web, como complemento a la capa de presentación, para acceder a la información. Figura 1.7.

Internet Base de datos

Aplicación Web

HTML

Ej. HTTP RED DE COMUNICACIONES

Ej. JDBC Cliente

Servidor Web

Servidor de datos

Figura 1.7. Bosquejo de una arquitectura de 3-capas. Aplicación Web En la arquitectura de 3-capas y multi-capas, el cliente interactúa con la capa intermedia mediante protocolos estandarizados como el protocolo de transferencia de hipertexto (HTTP, ‘Hypertext Transfer Protocol’), el procedimiento de llamado remoto (RPC, ‘remote procedure call’), etc., y la capa intermedia interactúa con el servidor de datos mediante protocolos estandarizados para el acceso a bases de datos como la conectividad abierta a base de datos (ODBC, ‘open database connectivity’), la conectividad java a base de datos (JDBC, ‘java database connectivity’4), etc. Un sistema de 3-capas se puede extender a n-capas cuando se provee de diversos servicios a los clientes mediante varias capas intermedias. N-capas, significa cualquier número de capas. Esta arquitectura permite distribuir 4

Sun Microsystems sostiene que las letras JDBC no es una abreviación o una sigla, especialmente para ‘java database connectivity’.

14

BASES DE DATOS … ENFOQUE RELACIONAL

Fundamentos, diseño e implantación

SECCIÓN I: FUNDAMENTOS

UNIDAD 1

las capas sobre una red y administrar los recursos de hardware y software dinámicamente; añadir (o eliminar) lo que se necesite, cuando y donde se lo requiera. Las aplicaciones divididas en varias capas, permiten a cada componente desarrollarse y gestionarse independientemente. Estas características están teniendo gran impacto, y es la tendencia actual en las aplicaciones empresariales y las basadas en portales Web.

USUARIOS FINALES: Se tienen dos clases: sofisticados y no sofisticados. Los usuarios sofisticados son aquellos con amplio conocimiento del SQL, son los que interactúan con los datos a través de interfaces SQL interactivas para realizar operaciones no contempladas en los programas de aplicación. Los usuarios no sofisticados son aquellos que interactúan con el sistema de base de datos a través de los programas de aplicación; usualmente, estos usuarios no tienen conocimiento de sistemas de bases de datos. PROGRAMADORES DE APLICACIONES: Son los que desarrollan los programas de aplicación creando interfaces fáciles de entender y utilizar para que los usuarios finales no sofisticados interactúen con los datos. Estos usuarios, generalmente, usan las herramientas que proporcionan los SGBDs o herramientas compatibles con los mismos, y que normalmente incluyen: escritores de reportes, desarrolladores de formas, hojas electrónicas, paquetes estadísticos, etc. ADMINISTRADORES DE SISTEMAS DE BASES DE DATOS: Estos usuarios son responsables de una serie de tareas críticas, tales como: el diseño de esquemas conceptuales lógicos y físicos, seguridades y autorizaciones, disponibilidad de los datos y recuperación ante fallos del sistema, actualizaciones del sistema de base de datos para mantenerla operativa y eficiente ante cambios de los requerimientos. IMPLEMENTADORES: Son las personas que construyen los sistemas de gestión de bases de datos.

© W iln e r C u e n c a

Los sistemas de bases de datos, al estar administrados por SGBDs, están asociados a una variedad de usuarios, con el objeto de atender la diversidad de tareas que se requiere para su desarrollo, administración, y mantenimiento.