Aplicaciones de las bd
Upcoming SlideShare
Loading in...5
×
 

Aplicaciones de las bd

on

  • 3,867 views

Aplicaciones de las BD

Aplicaciones de las BD

Statistics

Views

Total Views
3,867
Views on SlideShare
3,867
Embed Views
0

Actions

Likes
1
Downloads
57
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Aplicaciones de las bd Aplicaciones de las bd Document Transcript

  • CAPÍTULO 1 INTRODUCCIÓN U N sistema gestor de bases de datos (SGBD) consiste en una colección de datos inter- relacionados y un conjunto de programas para acceder a dichos datos. La colección de datos, normalmente denominada base de datos, contiene información relevante para una empresa. El objetivo principal de un SGBD es proporcionar una forma de almacenar y recu- perar la información de una base de datos de manera que sea tanto práctica como eficiente. Los sistemas de bases de datos se diseñan para gestionar grandes cantidades de información. La gestión de los datos implica tanto la definición de estructuras para almacenar la información como la provisión de mecanismos para la manipulación de la información. Además, los siste- mas de bases de datos deben proporcionar la fiabilidad de la información almacenada, a pesar de las caídas del sistema o los intentos de acceso sin autorización. Si los datos van a ser com- partidos entre diversos usuarios, el sistema debe evitar posibles resultados anómalos. Dado que la información es tan importante en la mayoría de las organizaciones, los cientí- ficos informáticos han desarrollado un amplio conjunto de conceptos y técnicas para la gestión de los datos. En este capítulo se presenta una breve introducción a los principios de los siste- mas de bases de datos. 1.1. APLICACIONES DE LOS SISTEMAS DE BASES DE DATOSLas bases de datos son ampliamente usadas. Las si- • Producción. Para la gestión de la cadena de pro-guientes son algunas de sus aplicaciones más repre- ducción y para el seguimiento de la producción desentativas: elementos en las factorías, inventarios de elemen- tos en almacenes y pedidos de elementos. • Banca. Para información de los clientes, cuentas • Recursos humanos. Para información sobre los em- y préstamos, y transacciones bancarias. pleados, salarios, impuestos y beneficios, y para la • Líneas aéreas. Para reservas e información de pla- generación de las nóminas. nificación. Las líneas aéreas fueron de los prime- ros en usar las bases de datos de forma distribui- Como esta lista ilustra, las bases de datos forman una da geográficamente (los terminales situados en parte esencial de casi todas las empresas actuales. todo el mundo accedían al sistema de bases de A lo largo de las últimas cuatro décadas del siglo vein- datos centralizado a través de las líneas telefóni- te, el uso de las bases de datos creció en todas las empre- cas y otras redes de datos). sas. En los primeros días, muy pocas personas interac- • Universidades. Para información de los estudian- tuaron directamente con los sistemas de bases de datos, tes, matrículas de las asignaturas y cursos. aunque sin darse cuenta interactuaron con bases de datos • Transacciones de tarjetas de crédito. Para com- indirectamente (con los informes impresos como extrac- pras con tarjeta de crédito y generación mensual tos de tarjetas de crédito, o mediante agentes como caje- de extractos. ros de bancos y agentes de reserva de líneas aéreas). Des- • Telecomunicaciones. Para guardar un registro de pués vinieron los cajeros automáticos y permitieron a los las llamadas realizadas, generación mensual de usuarios interactuar con las bases de datos. Las interfaces facturas, manteniendo el saldo de las tarjetas tele- telefónicas con los computadores (sistemas de respuesta fónicas de prepago y para almacenar información vocal interactiva) también permitieron a los usuarios mane- sobre las redes de comunicaciones. jar directamente las bases de datos. Un llamador podía marcar un número y pulsar teclas del teléfono para intro- • Finanzas. Para almacenar información sobre gran- ducir información o para seleccionar opciones alternati- des empresas, ventas y compras de documentos vas, para determinar las horas de llegada o salida, por ejem- formales financieros, como bolsa y bonos. plo, o para matricularse de asignaturas en una universidad. • Ventas. Para información de clientes, productos y La revolución de Internet a finales de la década de compras. 1990 aumentó significativamente el acceso directo del 1
  • FUNDAMENTOS DE BASES DE DATOSusuario a las bases de datos. Las organizaciones con- los accesos Web pueden ser almacenados en una basevirtieron muchas de sus interfaces telefónicas a las de datos.bases de datos en interfaces Web, y pusieron disponi- Así, aunque las interfaces de datos ocultan detallesbles en línea muchos servicios. Por ejemplo, cuando del acceso a las bases de datos, y la mayoría de la gen-se accede a una tienda de libros en línea y se busca un te ni siquiera es consciente de que están interactuandolibro o una colección de música se está accediendo a con una base de datos, el acceso a las bases de datos for-datos almacenados en una base de datos. Cuando se ma una parte esencial de la vida de casi todas las per-solicita un pedido en línea, el pedido se almacena en sonas actualmente.una base de datos. Cuando se accede a un banco en un La importancia de los sistemas de bases de datos sesitio Web y se consulta el estado de la cuenta y los puede juzgar de otra forma: actualmente, los vendedo-movimientos, la información se recupera del sistema res de sistemas de bases de datos como Oracle estánde bases de datos del banco. Cuando se accede a un entre las mayores compañías software en el mundo, ysitio Web, la información personal puede ser recupe- los sistemas de bases de datos forman una parte impor-rada de una base de datos para seleccionar los anun- tante de la línea de productos de compañías más diver-cios que se deberían mostrar. Más aún, los datos sobre sificadas, como Microsoft e IBM. 1.2. SISTEMAS DE BASES DE DATOS FRENTE A SISTEMAS DE ARCHIVOSConsidérese parte de una empresa de cajas de ahorros que Mantener información de la organización en un sis-mantiene información acerca de todos los clientes y cuen- tema de procesamiento de archivos tiene una serie detas de ahorros. Una manera de mantener la información inconvenientes importantes:en un computador es almacenarla en archivos del siste-ma operativo. Para permitir a los usuarios manipular la • Redundancia e inconsistencia de datos. Debidoinformación, el sistema tiene un número de programas a que los archivos y programas de aplicación sonde aplicación que manipula los archivos, incluyendo: creados por diferentes programadores en un largo • Un programa para efectuar cargos o abonos en una período de tiempo, los diversos archivos tienen pro- cuenta. bablemente diferentes formatos y los programas pueden estar escritos en diferentes lenguajes. Más • Un programa para añadir una cuenta nueva. aún, la misma información puede estar duplicada • Un programa para calcular el saldo de una cuenta. en diferentes lugares (archivos). Por ejemplo, la • Un programa para generar las operaciones men- dirección y número de teléfono de un cliente parti- suales. cular puede aparecer en un archivo que contenga Estos programas de aplicación se han escrito por pro- registros de cuentas de ahorros y en un archivo quegramadores de sistemas en respuesta a las necesidades contenga registros de una cuenta corriente. Estade la organización bancaria. redundancia conduce a un almacenamiento y cos- Si las necesidades se incrementan, se añaden nuevos te de acceso más altos. Además, puede conducir aprogramas de aplicación al sistema. Por ejemplo, supón- inconsistencia de datos; es decir, las diversasgase que las regulaciones de un nuevo gobierno permi- copias de los mismos datos pueden no coincidir.ten a las cajas de ahorros ofrecer cuentas corrientes. Por ejemplo, un cambio en la dirección del clienteComo resultado se crean nuevos archivos permanentes puede estar reflejado en los registros de las cuentasque contengan información acerca de todas las cuentas de ahorro pero no estarlo en el resto del sistema.corrientes mantenidas por el banco, y puede ser necesa- • Dificultad en el acceso a los datos. Supóngase querio escribir nuevos programas de aplicación para tratar uno de los empleados del banco necesita averiguarsituaciones que no existían en las cuentas de ahorro, tales los nombres de todos los clientes que viven en elcomo manejar descubiertos. Así, sobre la marcha, se aña- distrito postal 28733 de la ciudad. El empleado pideden más archivos y programas de aplicación al sistema. al departamento de procesamiento de datos que Este sistema de procesamiento de archivos típico genere dicha lista. Debido a que esta petición noque se acaba de describir se mantiene mediante un sis- fue prevista cuando el sistema original fue diseña-tema operativo convencional. Los registros permanen- do, no hay un programa de aplicación a mano parates son almacenados en varios archivos y se escriben satisfacerla. Hay, sin embargo, un programa de apli-diferentes programas de aplicación para extraer regis- cación que genera la lista de todos los clientes. Eltros y para añadir registros a los archivos adecuados. empleado del banco tiene ahora dos opciones: bienAntes de la llegada de los sistemas de gestión de bases obtener la lista de todos los clientes y obtener lade datos (SGBDs), las organizaciones normalmente han información que necesita manualmente, o bien pediralmacenado la información usando tales sistemas. al departamento de procesamiento de datos que haga 2
  • CAPÍTULO 1 INTRODUCCIÓN que un programador de sistemas escriba el progra- ferencia de fondos debe ser atómica: ésta debe ocu- ma de aplicación necesario. Ambas alternativas son rrir en ellos por completo o no ocurrir en absoluto. obviamente insatisfactorias. Supóngase que se escri- Es difícil asegurar esta propiedad en un sistema de be tal programa y que, varios días más tarde, el mis- procesamiento de archivos convencional. mo empleado necesita arreglar esa lista para incluir • Anomalías en el acceso concurrente. Conforme se sólo aquellos clientes que tienen una cuenta con sal- ha ido mejorando el conjunto de ejecución de los do de 10.000 € o más. Como se puede esperar, un sistemas y ha sido posible una respuesta en tiempo programa para generar tal lista no existe. De nue- más rápida, muchos sistemas han ido permitiendo a vo, el empleado tiene que elegir entre dos opcio- múltiples usuarios actualizar los datos simultánea- nes, ninguna de las cuales es satisfactoria. mente. En tales sistemas un entorno de interacción La cuestión aquí es que el entorno de procesa- de actualizaciones concurrentes puede dar lugar a miento de archivos convencional no permite que datos inconsistentes. Considérese una cuenta ban- los datos necesarios sean obtenidos de una forma caria A, que contiene 500 €. Si dos clientes retiran práctica y eficiente. Se deben desarrollar sistemas fondos (por ejemplo 50 € y 100 € respectivamen- de recuperación de datos más interesantes para un te) de la cuenta A en aproximadamente el mismo uso general. tiempo, el resultado de las ejecuciones concurrentes • Aislamiento de datos. Debido a que los datos puede dejar la cuenta en un estado incorrecto (o están dispersos en varios archivos, y los archivos inconsistente). Supongamos que los programas se pueden estar en diferentes formatos, es difícil escri- ejecutan para cada retirada y escriben el resultado bir nuevos programas de aplicación para recupe- después. Si los dos programas funcionan concu- rar los datos apropiados. rrentemente, pueden leer ambos el valor 500 €, y • Problemas de integridad. Los valores de los datos escribir después 450 € y 400 €, respectivamente. almacenados en la base de datos deben satisfacer Dependiendo de cuál escriba el último valor, la cuen- ciertos tipos de restricciones de consistencia. Por ta puede contener bien 450 € o bien 400 €, en lugar ejemplo, el saldo de una cuenta bancaria no puede del valor correcto, 350 €. Para protegerse contra esta nunca ser más bajo de una cantidad predetermina- posibilidad, el sistema debe mantener alguna forma da (por ejemplo 25 €). Los desarrolladores hacen de supervisión. Sin embargo, ya que se puede acce- cumplir esas restricciones en el sistema añadiendo der a los datos desde muchos programas de aplica- el código apropiado en los diversos programas de ción diferentes que no han sido previamente coor- aplicación. Sin embargo, cuando se añaden nuevas dinados, la supervisión es difícil de proporcionar. restricciones, es difícil cambiar los programas para • Problemas de seguridad. No todos los usuarios de hacer que se cumplan. El problema es complicado un sistema de bases de datos deberían poder acce- cuando las restricciones implican diferentes ele- der a todos los datos. Por ejemplo, en un sistema mentos de datos de diferentes archivos. bancario, el personal de nóminas necesita ver sólo • Problemas de atomicidad. Un sistema de un com- esa parte de la base de datos que tiene información putador, como cualquier otro dispositivo mecáni- acerca de varios empleados del banco. No necesi- co o eléctrico, está sujeto a fallo. En muchas apli- tan acceder a la información acerca de las cuentas caciones es crucial asegurar que, una vez que un de clientes. Como los programas de aplicación se fallo ha ocurrido y se ha detectado, los datos se res- añaden al sistema de una forma ad hoc, es difícil tauran al estado de consistencia que existía antes garantizar tales restricciones de seguridad. del fallo. Consideremos un programa para transfe- rir 50 € desde la cuenta A a la B. Si ocurre un fallo Estas dificultades, entre otras, han motivado el desa- del sistema durante la ejecución del programa, es rrollo de los sistemas de bases de datos. En este libro se posible que los 50 € fueron eliminados de la cuen- verán los conceptos y algoritmos que han sido inclui- ta A pero no abonados a la cuenta B, resultando un dos en los sistemas de bases de datos para resolver los estado de la base de datos inconsistente. Clara- problemas mencionados anteriormente. En la mayor mente, es esencial para la consistencia de la base parte de este libro se usa una empresa bancaria como el de datos que ambos, el abono y el cargo tengan ejemplo de una aplicación corriente de procesamiento lugar, o que ninguno tenga lugar. Es decir, la trans- de datos típica encontrada en una empresa. 1.3. VISIÓN DE LOS DATOSUn sistema de bases de datos es una colección de archi- de bases de datos es proporcionar a los usuarios unavos interrelacionados y un conjunto de programas que visión abstracta de los datos. Es decir, el sistema escon-permitan a los usuarios acceder y modificar estos archi- de ciertos detalles de cómo se almacenan y mantienenvos. Uno de los propósitos principales de un sistema los datos. 3
  • FUNDAMENTOS DE BASES DE DATOS1.3.1. Abstracción de datos nivel de vistasPara que el sistema sea útil debe recuperar los datos efi- ... vista 1 vista 2 vista ncientemente. Esta preocupación ha conducido al dise-ño de estructuras de datos complejas para la represen-tación de los datos en la base de datos. Como muchos nivelusuarios de sistemas de bases de datos no están fami- lógicoliarizados con computadores, los desarrolladores escon-den la complejidad a los usuarios a través de varios nive- nivelles de abstracción para simplificar la interacción de los físicousuarios con el sistema: FIGURA 1.1. Los tres niveles de abstracción de datos. • Nivel físico: El nivel más bajo de abstracción des- cribe cómo se almacenan realmente los datos. En Este código define un nuevo registro llamado clien- el nivel físico se describen en detalle las estructu- te con cuatro campos. Cada campo tiene un nombre y ras de datos complejas de bajo nivel. un tipo asociado a él. Una empresa bancaria puede tener • Nivel lógico: El siguiente nivel más alto de abs- varios tipos de registros, incluyendo tracción describe qué datos se almacenan en la base de datos y qué relaciones existen entre esos • cuenta, con campos número-cuenta y saldo datos. La base de datos completa se describe así • empleado, con campos nombre-empleado y sueldo en términos de un número pequeño de estructu- ras relativamente simples. Aunque la implemen- En el nivel físico, un registro cliente, cuenta o emplea- tación de estructuras simples en el nivel lógico do se puede describir como un bloque de posiciones puede involucrar estructuras complejas del nivel almacenadas consecutivamente (por ejemplo, palabras físico, los usuarios del nivel lógico no necesitan o bytes). El compilador del lenguaje esconde este nivel preocuparse de esta complejidad. Los adminis- de detalle a los programadores. Análogamente, el sis- tradores de bases de datos, que deben decidir la tema de base de datos esconde muchos de los detalles información que se mantiene en la base de datos, de almacenamiento de nivel inferior a los programado- usan el nivel lógico de abstracción. res de bases de datos. Los administradores de bases de • Nivel de vistas: El nivel más alto de abstracción datos pueden ser conscientes de ciertos detalles de la describe sólo parte de la base de datos completa. organización física de los datos. A pesar del uso de estructuras más simples en el En el nivel lógico cada registro de este tipo se des- nivel lógico, queda algo de complejidad, debido a cribe mediante una definición de tipo, como se ha ilus- la variedad de información almacenada en una gran trado en el fragmento de código previo, y se define la base de datos. Muchos usuarios del sistema de base relación entre estos tipos de registros. Los programa- de datos no necesitan toda esta información. En su dores, cuando usan un lenguaje de programación, tra- lugar, tales usuarios necesitan acceder sólo a una bajan en este nivel de abstracción. De forma similar, los parte de la base de datos. Para que su interacción administradores de bases de datos trabajan habitual- con el sistema se simplifique, se define la abstrac- mente en este nivel de abstracción. ción del nivel de vistas. El sistema puede propor- Finalmente, en el nivel de vistas, los usuarios de com- cionar muchas vistas para la misma base de datos. putadores ven un conjunto de programas de aplicación que esconden los detalles de los tipos de datos. Análo- La Figura 1.1 muestra la relación entre los tres nive- gamente, en el nivel de vistas se definen varias vistasles de abstracción. de una base de datos y los usuarios de la misma ven úni- Una analogía con el concepto de tipos de datos en ca y exclusivamente esas vistas. Además de esconderlenguajes de programación puede clarificar la distin- detalles del nivel lógico de la base de datos, las vistasción entre los niveles de abstracción. La mayoría de también proporcionan un mecanismo de seguridad paralenguajes de programación de alto nivel soportan la evitar que los usuarios accedan a ciertas partes de laestructura de tipo registro. Por ejemplo, en un len- base de datos. Por ejemplo, los cajeros de un banco venguaje tipo Pascal, se pueden declarar registros como únicamente la parte de la base de datos que tiene infor-sigue: mación de cuentas de clientes; no pueden acceder a la información referente a los sueldos de los empleados. type cliente = record nombre-cliente : string; 1.3.2. Ejemplares y esquemas id-cliente : string; calle-cliente : string; Las bases de datos van cambiando a lo largo del tiem- ciudad-cliente : string; po conforme la información se inserta y borra. La colec- end; ción de información almacenada en la base de datos en 4
  • CAPÍTULO 1 INTRODUCCIÓNun momento particular se denomina un ejemplar de la cribe el diseño de la base de datos en el nivel lógico. Unabase de datos. El diseño completo de la base de datos base de datos puede tener también varios esquemas ense llama el esquema de la base de datos. Los esquemas el nivel de vistas, a menudo denominados subesquemas,son raramente modificados, si es que lo son alguna vez. que describen diferentes vistas de la base de datos. El concepto de esquemas y ejemplares de bases de De éstos, el esquema lógico es con mucho el másdatos se puede entender por analogía con un programa importante, en términos de su efecto en los programasescrito en un lenguaje de programación. Un esquema de aplicación, ya que los programadores construyen lasde base de datos corresponde a las declaraciones de aplicaciones usando el esquema lógico. El esquema físi-variables (junto con definiciones de tipos asociadas) co está oculto bajo el esquema lógico, y puede ser fácil-en un programa. Cada variable tiene un valor particu- mente cambiado usualmente sin afectar a los programaslar en un instante de tiempo. Los valores de las varia- de aplicación. Los programas de aplicación se dice quebles en un programa en un instante de tiempo corres- muestran independencia física de datos si no dependenponde a un ejemplar de un esquema de bases de datos. del esquema físico y, por tanto, no deben ser modifica- Los sistemas de bases de datos tiene varios esquemas dos si cambia el esquema físico.divididos de acuerdo a los niveles de abstracción que se Se estudiarán los lenguajes para la descripción de loshan discutido. El esquema físico describe el diseño físi- esquemas, después de introducir la noción de modelosco en el nivel físico, mientras que el esquema lógico des- de datos en el siguiente apartado. 1.4. MODELOS DE LOS DATOSBajo la estructura de la base de datos se encuentra el ción y ciudad. Se debe asignar un identificador únicomodelo de datos: una colección de herramientas con- de cliente a cada cliente. En los Estados Unidos, muchasceptuales para describir los datos, las relaciones, la empresas utilizan el número de la seguridad social desemántica y las restricciones de consistencia. Para ilus- una persona (un número único que el Gobierno de lostrar el concepto de un modelo de datos, describimos dos Estados Unidos asigna a cada persona en los Estadosmodelos de datos en este apartado: el modelo entidad- Unidos) como identificador de cliente*.relación y el modelo relacional. Los diferentes mode- Una relación es una asociación entre varias entida-los de datos que se han propuesto se clasifican en tres des. Por ejemplo, una relación impositor asocia un clien-grupos diferentes: modelos lógicos basados en objetos, te con cada cuenta que tiene. El conjunto de todas lasmodelos lógicos basados en registros y modelos físicos. entidades del mismo tipo, y el conjunto de todas las rela- ciones del mismo tipo, se denominan respectivamente1.4.1. Modelo entidad-relación conjunto de entidades y conjunto de relaciones. La estructura lógica general de una base de datos seEl modelo de datos entidad-relación (E-R) está basado puede expresar gráficamente mediante un diagrama E-en una percepción del mundo real que consta de una R, que consta de los siguientes componentes:colección de objetos básicos, llamados entidades, y derelaciones entre estos objetos. Una entidad es una «cosa» • Rectángulos, que representan conjuntos de enti-u «objeto» en el mundo real que es distinguible de otros dades.objetos. Por ejemplo, cada persona es una entidad, y las • Elipses, que representan atributos.cuentas bancarias pueden ser consideradas entidades. • Rombos, que representan relaciones entre con- Las entidades se describen en una base de datos juntos de entidades.mediante un conjunto de atributos. Por ejemplo, los • Líneas, que unen los atributos con los conjuntosatributos número-cuenta y saldo describen una cuenta de entidades y los conjuntos de entidades con lasparticular de un banco y pueden ser atributos del con- relaciones.junto de entidades cuenta. Análogamente, los atributosnombre-cliente, calle-cliente y ciudad-cliente pueden Cada componente se etiqueta con la entidad o rela-describir una entidad cliente. ción que representa. Un atributo extra, id-cliente, se usa para identificar Como ilustración, considérese parte de una base deunívocamente a los clientes (dado que puede ser posi- datos de un sistema bancario consistente en clientes yble que haya dos clientes con el mismo nombre, direc- cuentas que tienen esos clientes. En la Figura 1.2 se * N. del T. En España, muchas empresas usan el D.N.I. como identi- ficador unívoco, pero a veces encuentran problemas con los núme- ros de D.N.I. que por desgracia aparecen repetidos. Para resolverlo, o bien se usa otro identificador propio de la empresa o se añade un código al número de D.N.I. 5
  • FUNDAMENTOS DE BASES DE DATOS nombre-cliente calle-cliente número de cuenta saldo La primera tabla, la tabla cliente, muestra, por ejem- plo, que el cliente cuyo identificador es 19.283.746 se lla- id-cliente ma González y vive en la calle Arenal sita en La Granja. ciudad-cliente La segunda tabla, cuenta, muestra que las cuentas C-101 tienen un saldo de 500 € y la C-201 un saldo de 900 € cliente impositor cuenta respectivamente. La tercera tabla muestra las cuentas que pertenecen a cada cliente. Por ejemplo, la cuenta C-101 perteneceFIGURA 1.2. Ejemplo de diagrama E-R. al cliente cuyo identificador es 19.283.746 (González), y los clientes 19.283.746 (González) y 01.928.374muestra el diagrama E-R correspondiente. El diagrama (Gómez) comparten el número de cuenta A-201 (pue-E-R indica que hay dos conjuntos de entidades cliente den compartir un negocio).y cuenta, con los atributos descritos anteriormente. El El modelo relacional es un ejemplo de un modelodiagrama también muestra la relación impositor entre basado en registros. Los modelos basados en registroscliente y cuenta. se denominan así porque la base de datos se estructura Además de entidades y relaciones, el modelo E-R en registros de formato fijo de varios tipos. Cada tablarepresenta ciertas restricciones que los contenidos de la contiene registros de un tipo particular. Cada tipo debase de datos deben cumplir. Una restricción importante registro define un número fijo de campos, o atributos.es la correspondencia de cardinalidades, que expresa Las columnas de la tabla corresponden a los atributosel número de entidades con las que otra entidad se pue- del tipo de registro.de asociar a través de un conjunto de relaciones. Por No es difícil ver cómo se pueden almacenar las tablasejemplo, si cada cuenta puede pertenecer sólo a un clien- en archivos. Por ejemplo, un carácter especial (comote, el modelo puede expresar esta restricción. una coma) se puede usar para delimitar los diferentes El modelo entidad-relación se utiliza habitualmente atributos de un registro, y otro carácter especial (comoen el proceso de diseño de bases de datos, y se estudia- un carácter de nueva línea) se puede usar para delimitarrá en produndidad en el Capítulo 2. registros. El modelo relacional oculta tales detalles de implementación de bajo nivel a los desarrolladores de1.4.2. Modelo relacional bases de datos y usuarios.En el modelo relacional se utiliza un grupo de tablas El modelo de datos relacional es el modelo de datospara representar los datos y las relaciones entre ellos. más ampliamente usado, y una amplia mayoría de sis-Cada tabla está compuesta por varias columnas, y cada temas de bases de datos actuales se basan en el mode-columna tiene un nombre único. En la Figura 1.3 se pre- lo relacional. Los Capítulos 3 a 7 tratan el modelo rela-senta un ejemplo de base de datos relacional consisten- cional en detalle.te en tres tablas: la primera muestra los clientes de un El modelo relacional se encuentra a un nivel de abs-banco, la segunda, las cuentas, y la tercera, las cuentas tracción inferior al modelo de datos E-R. Los diseñosque pertenecen a cada cliente. de bases de datos a menudo se realizan en el modelo E-R, y después se traducen al modelo relacional; el Capí- tulo 2 describe el proceso de traducción. Por ejemplo, id-cliente nombre-cliente calle-cliente ciudad-cliente es fácil ver que las tablas cliente y cuenta corresponden 19.283.746 González Arenal La Granja a los conjuntos de entidades del mismo nombre, mien- 01.928.374 Gómez Carretas Cerceda tras que la tabla impositor corresponde al conjunto de 67.789.901 López Mayor Peguerinos 18.273.609 Abril Preciados Valsaín relaciones impositor. 32.112.312 Santos Mayor Peguerinos Nótese también que es posible crear esquemas en el 33.666.999 Rupérez Ramblas León modelo relacional que tengan problemas tales como infor- 01.928.374 Gómez Carretas Cerceda mación duplicada innecesariamente. Por ejemplo, supon- (a) La tabla cliente gamos que se almacena número-cuenta como un atribu- to del registro cliente. Entonces, para representar el hecho número-cuenta saldo id-cliente número-cuenta de que las cuentas C-101 y C-201 pertenecen ambas al C-101 500 19.283.746 C-101 cliente González (con identificador de cliente 19.283.746) C-215 700 19.283.746 C-201 sería necesario almacenar dos filas en la tabla cliente. C-102 400 01.928.374 C-215 Los valores de nombre-cliente, calle-cliente y ciudad- C-305 350 67.789.901 C-102 cliente de González estarían innecesariamente duplica- C-201 900 18.273.609 C-305 dos en las dos filas. En el Capítulo 7 se estudiará cómo C-217 750 32.112.312 C-217 C-222 700 33.666.999 C-222 distinguir buenos diseños de esquema de malos diseños. 01.928.374 C-201 (b) La tabla cuenta 1.4.3. Otros modelos de datos (b) La tabla impositor El modelo de datos orientado a objetos es otro mode-FIGURA 1.3. Ejemplo de base de datos relacional. lo de datos que está recibiendo una atención creciente. 6
  • CAPÍTULO 1 INTRODUCCIÓNEl modelo orientado a objetos se puede observar como mento de datos de un tipo particular debe tener el mis-una extensión del modelo E-R con las nociones de mo conjunto de atributos. El lenguaje de marcas exten-encapsulación, métodos (funciones) e identidad de obje- sible (XML, eXtensible Markup Language) se usato. El Capítulo 8 examina el modelo de datos orienta- ampliamente para representar datos semiestructurados.do a objetos. El Capítulo 10 lo trata. El modelo de datos relacional orientado a objetos Históricamente, otros dos modelos de datos, el mode-combina las características del modelo de datos orien- lo de datos de red y el modelo de datos jerárquico,tado a objetos y el modelo de datos relacional. El Capí- precedieron al modelo de datos relacional. Estos mode-tulo 9 lo examina. los estuvieron ligados fuertemente a la implementación Los modelos de datos semiestructurados permiten la subyacente y complicaban la tarea del modelado deespecificación de datos donde los elementos de datos datos. Como resultado se usan muy poco actualmente,individuales del mismo tipo pueden tener diferentes con- excepto en el código de bases de datos antiguo que aúnjuntos de atributos. Esto es diferente de los modelos de está en servicio en algunos lugares. Se describen en losdatos mencionados anteriormente, en los que cada ele- apéndices A y B para los lectores interesados. 1.5. LENGUAJES DE BASES DE DATOSUn sistema de bases de datos proporciona un lenguaje de Los valores de datos almacenados en la base de datosdefinición de datos para especificar el esquema de la base deben satisfacer ciertas restricciones de consistencia.de datos y un lenguaje de manipulación de datos para Por ejemplo, supóngase que el saldo de una cuenta noexpresar las consultas a la base de datos y las modifica- debe caer por debajo de 100 €. El LDD proporcionaciones. En la práctica, los lenguajes de definición y mani- facilidades para especificar tales restricciones. Los sis-pulación de datos no son dos lenguajes separados; en su temas de bases de datos comprueban estas restriccioneslugar simplemente forman partes de un único lenguaje de cada vez que se actualiza la base de datos.bases de datos, tal como SQL, ampliamente usado. 1.5.2. Lenguaje de manipulación de datos1.5.1. Lenguaje de definición de datos La manipulación de datos es:Un esquema de base de datos se especifica mediante un • La recuperación de información almacenada en laconjunto de definiciones expresadas mediante un len- base de datos.guaje especial llamado lenguaje de definición de datos(LDD). • La inserción de información nueva en la base de Por ejemplo, la siguiente instrucción en el lenguaje datos.SQL define la tabla cuenta: • El borrado de información de la base de datos. • La modificación de información almacenada en la create table cuenta base de datos. (número-cuenta char(10), saldo integer) Un lenguaje de manipulación de datos (LMD) es un lenguaje que permite a los usuarios acceder o mani- La ejecución de la instrucción LDD anterior crea la pular los datos organizados mediante el modelo de datostabla cuenta. Además, actualiza un conjunto especial de apropiado. Hay dos tipos básicamente:tablas denominado diccionario de datos o directorio • LMDs procedimentales. Requieren que el usua-de datos. rio especifique qué datos se necesitan y cómo obte- Un diccionario de datos contiene metadatos, es decir, ner esos datos.datos acerca de los datos. El esquema de una tabla es • LMDs declarativos (también conocidos comoun ejemplo de metadatos. Un sistema de base de datos LMDs no procedimentales). Requieren que elconsulta el diccionario de datos antes de leer o modifi- usuario especifique qué datos se necesitan sin espe-car los datos reales. cificar cómo obtener esos datos. Especificamos el almacenamiento y los métodos deacceso usados por el sistema de bases de datos por un Los LMDs declarativos son más fáciles de aprenderconjunto de instrucciones en un tipo especial de LDD y usar que los LMDs procedimentales. Sin embargo,denominado lenguaje de almacenamiento y definición como el usuario no especifica cómo conseguir los datos,de datos. Estas instrucciones definen los detalles de el sistema de bases de datos tiene que determinar unimplementación de los esquemas de base de datos, que medio eficiente de acceder a los datos. El componentese ocultan usualmente a los usuarios. LMD del lenguaje SQL es no procedimental. 7
  • FUNDAMENTOS DE BASES DE DATOS Una consulta es una instrucción de solicitud para recu- En el nivel físico se deben definir algoritmos que permi-perar información. La parte de un LMD que implica recu- tan un acceso eficiente a los datos. En los niveles supe-peración de información se llama lenguaje de consul- riores de abstracción se enfatiza la facilidad de uso. Eltas. Aunque técnicamente sea incorrecto, en la práctica objetivo es proporcionar una interacción humana eficientese usan los términos lenguaje de consultas y lenguaje de con el sistema. El componente procesador de consultasmanipulación de datos como sinónimos. del sistema de bases de datos (que se estudia en los Capí- Esta consulta en el lenguaje SQL encuentra el nom- tulos 13 y 14) traduce las consultas LMD en secuenciasbre del cliente cuyo identificador de cliente es 19.283.746: de acciones en el nivel físico del sistema de bases de datos. select cliente.nombre-cliente 1.5.3. Acceso a la base de datos from cliente desde programas de aplicación where cliente.id-cliente = ‘19 283 746’ Los programas de aplicación son programas que se usan La consulta especifica que las filas de (from) la tabla para interaccionar con la base de datos. Los programascliente donde (where) el id-cliente es 19 283 746 se debe de aplicación se escriben usualmente en un lenguaje anfi-recuperar, y que se debe mostrar el atributo nombre- trión, tal como Cobol, C, C++ o Java. En el sistema ban-cliente de estas filas. Si se ejecutase la consulta con la cario algunos ejemplos son programas que emiten los che-tabla de la Figura 1.3, se mostraría el nombre González. ques de las nóminas, las cuentas de débito, las cuentas de Las consultas pueden involucrar información de más crédito o las transferencias de fondos entre cuentas.de una tabla. Por ejemplo, la siguiente consulta encuen- Para acceder a la base de datos, las instruccionestra el saldo de todas las cuentas pertenecientes al clien- LMD necesitan ser ejecutadas desde el lenguaje anfi-te cuyo identificador de cliente es 19 283 746. trión. Hay dos maneras de hacerlo: select cuenta.saldo • Proporcionando una interfaz de programas de apli- from impositor, cuenta cación (conjunto de procedimientos) que se pue- where impositor.id-cliente = ‘19-283-746’ and den usar para enviar instrucciones LMD y LDD a impositor.número-cuenta = cuenta.número- la base de datos, y recuperar los resultados. cuenta El estándar de conectividad abierta de bases de datos (ODBC, Open Data Base Connectivity) defi- Si la consulta anterior se ejecutase con las tablas de nido por Microsoft para el uso con el lenguaje Cla Figura 1.3, el sistema encontraría que las dos cuen- es un estándar de interfaz de programas de apli-tas denominadas C-101 y C-201 pertenecen al cliente cación usado comúnmente. El estándar conectivi-19 283 746 e imprimiría los saldos de las dos cuentas, dad de Java con bases de datos (JDBC, Java Dataes decir, 500 y 900 €. Base Connectivity) proporciona características Hay varios lenguajes de consulta de bases de datos correspondientes para el lenguaje Java.en uso, ya sea comercialmente o experimentalmente. Se • Extendiendo la sintaxis del lenguaje anfitrión paraestudiará el lenguaje de consultas más ampliamente usa- incorporar llamadas LMD dentro del programa deldo, SQL, en el Capítulo 4. También se estudiarán otros lenguaje anfitrión. Usualmente, un carácter espe-lenguajes de consultas en el Capítulo 5. cial precede a las llamadas LMD, y un preproce- Los niveles de abstracción que se discutieron en el sador, denominado el precompilador LMD, con-Apartado 1.3 se aplican no solo a la definición o estruc- vierte las instrucciones LMD en llamadas normalesturación de datos, sino también a la manipulación de datos. a procedimientos en el lenguaje anfitrión. 1.6. USUARIOS Y ADMINISTRADORES DE LA BASE DE DATOSUn objetivo principal de un sistema de bases de datos es esperan interactuar con el sistema. Se han diseñado dife-recuperar información y almacenar nueva información rentes tipo de interfaces de usuario para diferentes tiposen la base de datos. Las personas que trabajan con una de usuarios.base de datos se pueden catalogar como usuarios de basesde datos o como administradores de bases de datos. • Usuarios normales. Son usuarios no sofisticados que interactúan con el sistema mediante la invo-1.6.1. Usuarios de bases de datos e interfaces cación de alguno de los programas de aplicación de usuario permanentes que se ha escrito previamente. Por ejemplo, un cajero bancario que necesita transfe-Hay cuatro tipos diferentes de usuarios de un sistema rir 50 € de la cuenta A a la cuenta B invoca un pro-de base de datos, diferenciados por la forma en que ellos grama llamado transferir. Este programa pide al 8
  • CAPÍTULO 1 INTRODUCCIÓN cajero el importe de dinero a transferir, la cuenta lle (por ejemplo, ventas por ciudad dentro de una de la que el dinero va a ser transferido y la cuenta región) o examinar los datos con menos detalle a la que el dinero va a ser transferido. (por ejemplo, agrupando productos por categoría). Como otro ejemplo, considérese un usuario que Otra clase de herramientas para los analistas desee encontrar su saldo de cuenta en World Wide son las herramientas de recopilación de datos, que Web. Tal usuario podría acceder a un formulario les ayudan a encontrar ciertas clases de patrones en el que introduce su número de cuenta. Un pro- de datos. grama de aplicación en el servidor Web recupera En el Capítulo 22 se estudiarán las herramien- entonces el saldo de la cuenta, usando el número tas de recopilación de datos. de cuenta proporcionado, y pasa la información al • Usuarios especializados. Son usuarios sofistica- usuario. dos que escriben aplicaciones de bases de datos La interfaz de usuario normal para los usuarios especializadas que no son adecuadas en el marco normales es una interfaz de formularios, donde el de procesamiento de datos tradicional. Entre estas usuario puede rellenar los campos apropiados del aplicaciones están los sistemas de diseño asistido formulario. Los usuarios normales pueden tam- por computador, sistemas de bases de conoci- bién simplemente leer informes generados de la mientos y sistemas expertos, sistemas que alma- base de datos. cenan los datos con tipos de datos complejos (por• Programadores de aplicaciones. Son profesio- ejemplo, datos gráficos y datos de audio) y siste- nales informáticos que escriben programas de apli- mas de modelado del entorno. Varias de estas apli- cación. Los programadores de aplicaciones pue- caciones se tratan en los Capítulos 8 y 9. den elegir entre muchas herramientas para desarrollar interfaces de usuario. Las herramien- 1.6.2. Administrador de la base de datos tas de desarrollo rápido de aplicaciones (DRA) Una de las principales razones de usar SGBDs es tener son herramientas que permiten al programador de un control centralizado tanto de los datos como de los aplicaciones construir formularios e informes sin programas que acceden a esos datos. La persona que escribir un programa. Hay también tipos especia- tiene este control central sobre el sistema se llama admi- les de lenguajes de programación que combinan nistrador de la base de datos (ABD). Las funciones estructuras de control imperativo (por ejemplo, del ABD incluyen las siguientes: para bucles for, bucles while e instrucciones if- then-else) con instrucciones del lenguaje de mani- • Definición del esquema. El ABD crea el esque- pulación de datos. Estos lenguajes, llamados a ma original de la base de datos escribiendo un con- veces lenguajes de cuarta generación, a menudo junto de instrucciones de definición de datos en el incluyen características especiales para facilitar la LDD. generación de formularios y la presentación de • Definición de la estructura y del método de ac- datos en pantalla. La mayoría de los sistemas de ceso. bases de datos comerciales incluyen un lenguaje de cuarta generación. • Modificación del esquema y de la organización física. Los ABD realizan cambios en el esquema• Los usuarios sofisticados interactúan con el sis- y en la organización física para reflejar las necesi- tema sin programas escritos. En su lugar, ellos for- dades cambiantes de la organización, o para alte- man sus consultas en un lenguaje de consulta de rar la organización física para mejorar el rendi- bases de datos. Cada una de estas consultas se envía miento. al procesador de consultas, cuya función es trans- • Concesión de autorización para el acceso a los formar instrucciones LMD a instrucciones que el datos. La concesión de diferentes tipos de autori- gestor de almacenamiento entienda. Los analistas zación permite al administrador de la base de datos que envían las consultas para explorar los datos en determinar a qué partes de la base de datos puede la base de datos entran en esta categoría. acceder cada usuario. La información de autoriza- Las herramientas de procesamiento analítico ción se mantiene en una estructura del sistema espe- en línea (OLAP, Online Analytical Processing) cial que el sistema de base de datos consulta cuan- simplifican la labor de los analistas permitiéndo- do se intenta el acceso a los datos en el sistema. les ver resúmenes de datos de formas diferentes. Por ejemplo, un analista puede ver las ventas tota- • Mantenimiento rutinario. Algunos ejemplos de les por región (por ejemplo, norte, sur, este y oes- actividades rutinarias de mantenimiento del admi- te), o por producto, o por una combinación de la nistrado de la base de datos son: región y del producto (es decir, las ventas totales — Copia de seguridad periódica de la base de de cada producto en cada región). Las herramien- datos, bien sobre cinta o sobre servidores remo- tas también permiten al analista seleccionar regio- tos, para prevenir la pérdida de datos en caso nes específicas, examinar los datos con más deta- de desastres como inundaciones. 9
  • FUNDAMENTOS DE BASES DE DATOS — Asegurarse de que haya suficiente espacio libre — Supervisión de los trabajos que se ejecuten en la en disco para las operaciones normales y base de datos y asegurarse de que el rendimiento aumentar el espacio en disco según sea nece- no se degrada por tareas muy costosas iniciadas sario. por algunos usuarios. 1.7. GESTIÓN DE TRANSACCIONESVarias operaciones sobre la base de datos forman a la consistencia. Sin embargo, cada programa en sí mis-menudo una única unidad lógica de trabajo. Un ejem- mo no transforma la base de datos de un estado consis-plo que se vio en el Apartado 1.2 es la transferencia de tente en otro nuevo estado consistente. Así, estos pro-fondos, en el que una cuenta (A) se carga y otra cuenta gramas no son transacciones.(B) se abona. Claramente es esencial que, o bien tanto Asegurar las propiedades de atomicidad y durabili-el cargo como el abono tengan lugar, o bien no ocurra dad es responsabilidad del propio sistema de bases deninguno. Es decir, la transferencia de fondos debe ocu- datos, específicamente del componente de gestión derrir por completo o no ocurrir en absoluto. Este requisito transacciones. En ausencia de fallos, toda transacciónde todo o nada se denomina atomicidad. Además, es completada con éxito y atómica se archiva fácilmente.esencial que la ejecución de la transferencia de fondos Sin embargo, debido a diversos tipos de fallos, una tran-preserve la consistencia de la base de datos. Es decir, el sacción puede no siempre completar su ejecución convalor de la suma A + B se debe preservar. Este requisi- éxito. Si se asegura la propiedad de atomicidad, una tran-to de corrección se llama consistencia. Finalmente, tras sacción que falle no debe tener efecto en el estado de lala ejecución correcta de la transferencia de fondos, los base de datos. Así, la base de datos se restaura al esta-nuevos valores de las cuentas A y B deben persistir, a do en que estaba antes de que la transacción en cuestiónpesar de la posibilidad de fallo del sistema. Este requi- comenzara su ejecución. El sistema de bases de datossito de persistencia se llama durabilidad. debe realizar la recuperación de fallos, es decir, detec- Una transacción es una colección de operaciones tar los fallos del sistema y restaurar la base de datos alque se lleva a cabo como una única función lógica en estado que existía antes de que ocurriera el fallo.una aplicación de bases de datos. Cada transacción es Finalmente, cuando varias transacciones actualizanuna unidad de atomicidad y consistencia. Así, se requie- la base de datos concurrentemente, la consistencia dere que las transacciones no violen ninguna restricción los datos puede no ser preservada, incluso aunque cadade consistencia de la base de datos. Es decir, si la base transacción individualmente sea correcta. Es responsa-de datos era consistente cuando la transacción comen- bilidad del gestor de control de concurrencia contro-zó, la base de datos debe ser consistente cuando la tran- lar la interacción entre las transacciones concurrentessacción termine con éxito. Sin embargo, durante la eje- para asegurar la consistencia de la base de datos.cución de una transacción, puede ser necesario permitir Los sistemas de bases de datos diseñados para usoinconsistencias temporalmente, ya que o el cargo de A sobre pequeños computadores personales pueden noo el abono de B se debe realizar uno antes que otro. Esta tener todas las características vistas. Por ejemplo, muchosinconsistencia temporal, aunque necesaria, puede con- sistemas pequeños imponen la restricción de permitir elducir a dificultades si ocurre un fallo. acceso a un único usuario a la base de datos en un ins- Es responsabilidad del programador definir adecua- tante de tiempo. Otros dejan las tareas de copias de segu-damente las diferentes transacciones, de tal manera que ridad y recuperación a los usuarios. Estas restriccionescada una preserve la consistencia de la base de datos. permiten un gestor de datos más pequeño, con menosPor ejemplo, la transacción para transferir fondos de la requisitos de recursos físicos, especialmente de memo-cuenta A a la cuenta B se podría definir como compuesta ria principal. Aunque tales enfoques de bajo coste y pres-de dos programas separados: uno que carga la cuenta A taciones son suficientes para bases de datos personalesy otro que abona la cuenta B. La ejecución de estos dos pequeñas, son inadecuadas para satisfacer las necesida-programas uno después del otro preservará realmente des de una empresa de media a gran escala. 1.8. ESTRUCTURA DE UN SISTEMA DE BASES DE DATOSUn sistema de bases de datos se divide en módulos que rasgos en los componentes gestor de almacenamientose encargan de cada una de las responsabilidades del sis- y procesador de consultas.tema completo. Los componentes funcionales de un El gestor de consultas es importante porque las basessistema de bases de datos se pueden dividir a grandes de datos requieren normalmente una gran cantidad de 10
  • CAPÍTULO 1 INTRODUCCIÓNespacio de almacenamiento. Las bases de datos corpo- to) a pesar de los fallos del sistema, y que las eje-rativas tienen un tamaño de entre cientos de gigabytes cuciones de transacciones concurrentes ocurran siy, para las mayores bases de datos, terabytes de datos. conflictos.Un gigabyte son 1.000 megabytes (1.000 millones de • Gestor de archivos, que gestiona la reserva debytes), y un terabyte es 1 millón de megabytes (1 billón espacio de almacenamiento de disco y las estruc-de bytes). Debido a que la memoria principal de los turas de datos usadas para representar la informa-computadores no puede almacenar esta gran cantidad ción almacenada en disco.de información, esta se almacena en discos. Los datosse trasladan entre el disco de almacenamiento y la • Gestor de memoria intermedia, que es respon-memoria principal cuando es necesario. Como la trans- sable de traer los datos del disco de almacena-ferencia de datos a y desde el disco es lenta compara- miento a memoria principal y decidir qué datosda con la velocidad de la unidad central de procesa- tratar en memoria caché. El gestor de memoriamiento, es fundamental que el sistema de base de datos intermedia es una parte crítica del sistema de basesestructure los datos para minimizar la necesidad de de datos, ya que permite que la base de datos mane-movimiento de datos entre el disco y la memoria prin- je tamaños de datos que son mucho mayores quecipal. el tamaño de la memoria principal. El procesador de consultas es importante porque ayu- El gestor de almacenamiento implementa variasda al sistema de bases de datos a simplificar y facilitar estructuras de datos como parte de la implementaciónel acceso a los datos. Las vistas de alto nivel ayudan a física del sistema:conseguir este objetivo. Con ellas, los usuarios del sis-tema no deberían ser molestados innecesariamente con • Archivos de datos, que almacenan la base de datoslos detalles físicos de implementación del sistema. Sin en sí.embargo, el rápido procesamiento de las actualizacio- • Diccionario de datos, que almacena metadatosnes y de las consultas es importante. Es trabajo del sis- acerca de la estructura de la base de datos, en par-tema de bases de datos traducir las actualizaciones y las ticular, el esquema de la base de datos.consultas escritas en un lenguaje no procedimental, enel nivel lógico, en una secuencia de operaciones en el • Índices, que proporcionan acceso rápido a ele-nivel físico. mentos de datos que tienen valores particulares.1.8.1. Gestor de almacenamiento 1.8.2. Procesador de consultasUn gestor de almacenamiento es un módulo de pro- Los componentes del procesador de consultas incluyen:grama que proporciona la interfaz entre los datos de bajonivel en la base de datos y los programas de aplicación • Intérprete del LDD, que interpreta las instruc-y consultas emitidas al sistema. El gestor de almacena- ciones del LDD y registra las definiciones en elmiento es responsable de la interacción con el gestor de diccionario de datos.archivos. Los datos en bruto se almacenan en disco usan- • Compilador del LMD, que traduce las instruc-do un sistema de archivos, que está disponible ha- ciones del LMD en un lenguaje de consultas a unbitualmente en un sistema operativo convencional. El plan de evaluación que consiste en instruccionesgestor de almacenamiento traduce las diferentes ins- de bajo nivel que entiende el motor de evaluacióntrucciones LMD a órdenes de un sistema de archivos de consultas.de bajo nivel. Así, el gestor de almacenamiento es res- Una consulta se puede traducir habitualmenteponsable del almacenamiento, recuperación y actuali- en varios planes de ejecución alternativos que pro-zación de los datos en la base de datos. porcionan el mismo resultado. El compilador del Los componentes del gestor de almacenamiento LMD también realiza optimización de consultas,incluyen: es decir, elige el plan de evaluación de menor cos- te de entre todas las alternativas. • Gestor de autorización e integridad, que com- • Motor de evaluación de consultas, que ejecuta prueba que se satisfagan las restricciones de inte- las instrucciones de bajo nivel generadas por el gridad y la autorización de los usuarios para acce- compilador del LMD. der a los datos. • Gestor de transacciones, que asegura que la base En la Figura 1.4 se muestran estos componentes y de datos quede en un estado consistente (correc- sus conexiones. 11
  • FUNDAMENTOS DE BASES DE DATOS usuarios normales programadores usuarios sofisticados administrador de la (cajeros, agentes, de aplicaciones (análisis) base de datos usuarios Web) usa escribe usa usa interfaces de programas de herramientas herramientas de aplicaciones aplicación de consulta administración compilador consultas LMD intérprete del LDD y enlazador código objeto de los programas compilador del LMD de aplicación y organizador motor de evaluación de consultas procesador de consultas gestor de memoria gestor de archivos gestor gestor intermedia de autorización de transacciones e integridad gestor de almacenamiento almacenamiento en disco índices diccionario de datos datos datos estadísticosFIGURA 1.4. Estructura del sistema. 1.9. ARQUITECTURAS DE APLICACIONESLa mayoría de usuarios de un sistema de bases de datos ODBC y JDBC se usan para la interacción entre elno están situados actualmente junto al sistema de bases cliente y el servidor.de datos, sino que se conectan a él a través de una red. En cambio, en una arquitectura de tres capas, laSe puede diferenciar entonces entre las máquinas clien- máquina cliente actúa simplemente como frontal y note, en donde trabajan los usuarios remotos de la base de contiene ninguna llamada directa a la base de datos. Endatos, y las máquinas servidor, en las que se ejecuta el su lugar, el cliente se comunica con un servidor de apli-sistema de bases de datos. caciones, usualmente mediante una interfaz de formula- Las aplicaciones de bases de datos se dividen usual- rios. El servidor de aplicaciones, a su vez, se comunicamente en dos o tres partes, como se ilustra en la Figu- con el sistema de bases de datos para acceder a los datos.ra 1.5. En una arquitectura de dos capas, la aplica- La lógica de negocio de la aplicación, que establece lasción se divide en un componente que reside en la acciones a realizar bajo determinadas condiciones, semáquina cliente, que llama a la funcionalidad del sis- incorpora en el servidor de aplicaciones, en lugar de sertema de bases de datos en la máquina servidor median- distribuida a múltiples clientes. Las aplicaciones de treste instrucciones del lenguaje de consultas. Los están- capas son más apropiadas para grandes aplicaciones, ydares de interfaces de programas de aplicación como para las aplicaciones que se ejecutan en World Wide Web. 12
  • CAPÍTULO 1 INTRODUCCIÓN usuario usuario cliente aplicación cliente de aplicaciones red red servidor de aplicaciones sistema de bases de datos servidor sistema de bases de datos a. arquitectura de dos capas b. arquitectura de tres capasFIGURA 1.5. Arquitecturas de dos y tres capas. 1.10. HISTORIA DE LOS SISTEMAS DE BASES DE DATOSEl procesamiento de datos impulsa el crecimiento de memoria principal; así, los programas de procesa-los computadores, como ocurriera en los primeros días miento de datos tenían que procesar los datos segúnde los computadores comerciales. De hecho, la auto- un determinado orden, leyendo y mezclando datosmatización de las tareas de procesamiento de datos pre- de cintas y paquetes de tarjetas perforadas.cede a los computadores. Las tarjetas perforadas, in- • Finales de la década de 1960 y la década deventadas por Hollerith, se usaron en los principios del 1970. El amplio uso de los discos fijos a finales desiglo xx para registrar los datos del censo de los EE.UU., la década de 1960 cambió en gran medida el esce-y se usaron sistemas mecánicos para procesar las tarje- nario del procesamiento de datos, ya que los dis-tas y para tabular los resultados. Las tarjetas perforadas cos fijos permitieron el acceso directo a los datos.posteriormente se usaron ampliamente como medio para La ubicación de los datos en disco no era impor-introducir datos en los computadores. tante, ya que a cualquier posición del disco se podía Las técnicas del almacenamiento de datos han evo- acceder en sólo decenas de milisegundo. Los datoslucionado a lo largo de los años: se liberaron de la tiranía de la secuencialidad. Con • Década de 1950 y principios de la década de 1960. los discos pudieron desarrollarse las bases de datos Se desarrollaron las cintas magnéticas para el alma- de red y jerárquicas, que permitieron que las estruc- cenamiento de datos. Las tareas de procesamiento turas de datos tales como listas y árboles pudieran de datos tales como las nóminas fueron automati- almacenarse en disco. Los programadores pudie- zadas, con los datos almacenados en cintas. El pro- ron construir y manipular estas estructuras de datos. cesamiento de datos consistía en leer datos de una Un artículo histórico de Codd [1970] definió el o más cintas y escribir datos en una nueva cinta. Los modelo relacional y formas no procedimentales de datos también se podían introducir desde paquetes consultar los datos en el modelo relacional, y nacie- de tarjetas perforadas e impresos en impresoras. Por ron las bases de datos relacionales. La simplicidad ejemplo, los aumentos de sueldo se procesaban del modelo relacional y la posibilidad de ocultar introduciendo los aumentos en las tarjetas perfora- completamente los detalles de implementación al das y leyendo el paquete de cintas perforadas en sin- programador fueron realmente atractivas. Codd cronización con una cinta que contenía los detalles obtuvo posteriormente el prestigioso premio Turing maestros de los salarios. Los registros debían estar de la ACM (Association of Computing Machinery, igualmente ordenados. Los aumentos de sueldo tení- asociación de maquinaria informática) por su tra- an que añadirse a los sueldos leídos de la cinta maes- bajo. tra, y escribirse en una nueva cinta; esta nueva cin- • Década de 1980. Aunque académicamente inte- ta se convertía en la nueva cinta maestra. resante, el modelo relacional no se usó inicialmente Las cintas (y los paquetes de tarjetas perfora- en la práctica debido a sus inconvenientes por el das) sólo se podían leer secuencialmente, y los rendimiento; las bases de datos relacionales no tamaños de datos eran mucho mayores que la pudieron competir con el rendimiento de las bases 13
  • FUNDAMENTOS DE BASES DE DATOS de datos de red y jerárquicas existentes. Esta situa- La década de 1980 también fue testigo de una ción cambió con System R, un proyecto innova- gran investigación en las bases de datos paralelas dor en IBM Research que desarrolló técnicas para y distribuidas, así como del trabajo inicial en las la construcción de un sistema de bases de datos bases de datos orientadas a objetos. relacionales eficiente. En Astrahan et al. [1976] y • Principios de la década de 1990. El lenguaje SQL Chamberlin et al. [1981] se pueden encontrar exce- se diseñó fundamentalmente para las aplicaciones lentes visiones generales de System R. El prototi- de ayuda a la toma de decisiones, que son intensi- po de System R completamente funcional condu- vas en consultas, mientras que el objetivo princi- jo al primer producto de bases de datos relacionales pal de las bases de datos en la década de 1980 fue de IBM: SQL/DS. Los primeros sistemas de bases las aplicaciones de procesamiento de transaccio- de datos relacionales, como DB2 de IBM, Oracle, nes, que son intensivas en actualizaciones. La ayu- Ingres y Rdb de DEC, jugaron un importante papel da a la toma de decisiones y las consultas reemer- en el desarrollo de técnicas para el procesamiento gieron como una importante área de aplicación eficiente de consultas declarativas. En los princi- para las bases de datos. Las herramientas para ana- pios de la década de 1980 las bases de datos rela- lizar grandes cantidades de datos experimentaron cionales llegaron a competir con los sistemas de un gran crecimiento de uso. bases de datos jerárquicas y de red incluso en el Muchos vendedores de bases de datos introdu- área de rendimiento. Las bases de datos relacio- jeron productos de bases de datos paralelas en este nales fueron tan sencillas de usar que finalmente periodo, así como también comenzaron ofrecer reemplazaron a las bases de datos jerárquicas y de bases de datos relacionales orientadas a objeto. red; los programadores que usaban estas bases de datos estaban forzados a tratar muchos detalles de • Finales de la década de 1990. El principal acon- implementación de bajo nivel y tenían que codifi- tecimiento fue el crecimiento explosivo de World car sus consultas de forma procedimental. Aún más Wide Web. Las bases de datos se implantaron importante, debían tener presente el rendimiento mucho más extensivamente que nunca antes. Los durante el diseño de sus programas, lo que impli- sistemas de bases de datos tienen ahora soporte caba un gran esfuerzo. En cambio, en una base de para tasas de transacciones muy altas, así como datos relacional, casi todas estas tareas de bajo muy alta fiabilidad y disponibilidad 24×7 (dispo- nivel se realizan automáticamente por la base de nibilidad 24 horas al día y 7 días a la semana, que datos, liberando al programador en el nivel lógi- significa que no hay tiempos de inactividad debi- co. Desde su escalada en el dominio en la década dos a actividades de mantenimiento planificadas). de 1980, el modelo relacional ha conseguido el rei- Los sistemas de bases de datos también tuvieron nado supremo entre todos los modelos de datos. interfaces Web a los datos. 1.11. RESUMEN• Un sistema gestor de bases de datos (SGBD) con- • Un propósito principal de un sistema de bases de datos siste en una colección de datos interrelacionados y es proporcionar a los usuarios una visión abstracta de una colección de programas para acceder a esos datos. los datos. Es decir, el sistema esconde ciertos detalles Los datos describen una empresa particular. de cómo los datos se almacenan y mantienen.• El objetivo principal de un SGBD es proporcionar un • Por debajo de la estructura de la base de datos está el entorno que sea tanto conveniente como eficiente para modelo de datos: una colección de herramientas con- las personas que lo usan para la recuperación y alma- ceptuales para describir los datos, las relaciones entre cenamiento de la información. los datos, la semántica de los datos y las restricciones• Los sistemas de bases de datos se diseñan para alma- de los datos. El modelo de datos entidad-relación es un cenar grandes cantidades de información. La gestión modelo de datos ampliamente usado, y proporciona una de los datos implica tanto la definición de estructuras representación gráfica conveniente para ver los datos, para el almacenamiento de la información como la las relaciones y las restricciones. El modelo de datos provisión de mecanismos para la manipulación de la relacional se usa ampliamente para almacenar datos en información. Además, los sistemas de bases de datos las bases de datos. Otros modelos de datos son el mode- deben proporcionar la seguridad de la información lo de datos orientado a objetos, el relacional orientado almacenada, en caso de caídas del sistema o intentos a objetos y modelos de datos semiestructurados. de accesos sin autorización. Si los datos están com- • El diseño general de la base de datos se denomina el partidos por varios usuarios, el sistema debe evitar esquema de la base de datos. Un esquema de base de posibles resultados anómalos. datos se especifica con un conjunto de definiciones 14
  • CAPÍTULO 1 INTRODUCCIÓN que se expresan usando un lenguaje de definición de de transacciones concurrentes ocurran sin con- datos (LDD). flictos.• Un lenguaje de manipulación de datos (LMD) es — El subsistema procesador de consultas compila y un lenguaje que permite a los usuarios acceder o mani- ejecuta instrucciones LDD y LMD. pular los datos. Los LMD no procedimentales, que — El subsistema gestor de almacenamiento es un requieren que un usuario especifique sólo los datos módulo de programa que proporciona la interfaz que necesita, se usan ampliamente hoy día. entre los datos de bajo nivel almacenados en la base de datos y los programas de aplicación y las• Los usuarios de bases de datos se pueden catalogar en consultas enviadas al sistema. varias clases, y cada clase de usuario usa habitual- mente diferentes tipos de interfaces de la base de datos. • Las aplicaciones de bases de datos se dividen nor- malmente en un parte frontal que se ejecuta en las• Un sistema de bases de datos tiene varios subsistemas: máquinas cliente y una parte que se ejecuta en el dor- — El subsistema gestor de transacciones es el res- sal. En las arquitecturas de dos capas, el frontal se ponsable de asegurar que la base de datos per- comunica directamente con una base de datos que se manezca en un estado consistente (correcto) a ejecuta en el dorsal. En las arquitecturas de tres capas, pesar de los fallos del sistema. El gestor de tran- la parte dorsal se divide asimismo en un servidor de sacciones también asegura que las ejecuciones aplicaciones y en un servidor de bases de datos. TÉRMINOS DE REPASO• Abstracción de datos. • Lenguaje de manipulación de datos.• Administrador de la base de datos (ADB). • Máquinas cliente y servidor.• Aplicaciones de sistemas de bases de datos. • Metadatos.• Concurrencia. • Modelos de datos.• Diccionario de datos. — Modelo de datos orientado a objetos.• Ejemplar de la base de datos. — Modelo de datos relacional.• Esquema. — Modelo de datos relacional orientado a obje- tos. — Esquema de la base de datos. — Modelo entidad-relación. — Esquema físico. — Esquema lógico. • Programa de aplicación.• Inconsistencia de datos. • Restricciones de consistencia.• Independencia física de los datos. • Sistema de gestión de bases de datos (SGBD).• Lenguajes de bases de datos. • Sistemas de archivos. — Lenguaje de consultas. • Transacciones. — Lenguaje de definición de datos. • Vistas de datos. EJERCICIOS1.1. ¿Cuáles son las cuatro diferencias principales entre 1.6. Lístense siete lenguajes de programación que sean pro- un sistema de procesamiento de archivos y un SGBD? cedimentales y dos que sean no procedimentales. ¿Qué1.2. En este capítulo se han descrito las diferentes ventajas grupo es más fácil de aprender a usar? Explíquese la res- principales de un sistema gestor de bases de datos. ¿Cuá- puesta. les son los dos inconvenientes? 1.7. Lístense los seis pasos principales que se deberían dar1.3. Explíquese la diferencia entre independencia de datos en la realización de una base de datos para una empre- física y lógica. sa particular.1.4. Lístense las cinco responsabilidades del sistema gestor de 1.8. Considérese un array de enteros bidimensional de tama- la base de datos. Para cada responsabilidad explíquense ño n × m que se va a usar en su lenguaje de programa- los problemas que ocurrirían si no se realizara esa función. ción preferido. Usando el array como ejemplo, ilústre-1.5. ¿Cuáles son las cinco funciones principales del admi- se la diferencia (a) entre los tres niveles de abstracción nistrador de la base de datos? y (b) entre esquema y ejemplares. 15
  • FUNDAMENTOS DE BASES DE DATOS NOTAS BIBLIOGRÁFICASA continuación se listan libros de propósito general, Una revisión de los logros en la gestión de bases decolecciones de artículos de investigación y sitios Web datos y una valoración de los desafíos en la investiga-de bases de datos. ción futura aparece en Silberschatz et al. [1990], Sil- Libros de texto que tratan los sistemas de bases de berschatz et al. [1996] y Bernstein et al. [1998]. La pági-datos incluyen Abiteboul et al. [1995], Date [1995], na inicial del grupo especial de interés de la ACM enElmasri y Navathe [2000], O’Neil y O’Neil [2000], gestión de datos (véase www.acm.org/sigmod) pro-Ramakrishnan y Gehrke [2000] y Ullman [1988]. El tra- porciona una gran cantidad de información sobre latamiento del procesamiento de transacciones en libros investigación en bases de datos. Los sitios Web de losde texto se puede encontrar en Bernstein y Newcomer vendedores de bases de datos (véase el apartado Herra-[1997] y Gray y Reuter [1993]. mientas a continuación) proporciona detalles acerca de Varios libros incluyen colecciones de artículos de sus respectivos productos.investigación sobre la gestión de bases de datos. Entre Codd [1970] es el artículo histórico que introdujo elestos están Bancilhon y Buneman [1990], Date [1986], modelo relacional. En Fry y Sibley [1976] y Sibley [1976]Date [1990], Kim [1995], Zaniolo et al. [1997], y Sto- se ofrecen discusiones referentes a la evolución de losnebraker y Hellerstein [1998]. SGBDs y al desarrollo de la tecnología de bases de datos. HERRAMIENTASHay un gran número de sistemas de bases de datos comer- Hay también una serie de sistemas de bases de datosciales en uso actualmente. Los principales incluyen: gratuitos/públicos; algunos ampliamente usados in-DB2 de IBM (www.ibm.com/software/data), Oracle cluyen MySQL (www.mysql.com) y PostgresSQL(www.oracle.com), Microsoft SQL Server (www.micro- (www.postgresql.org).soft.com/sql), Informix (www.informix.com) y Sybase Una lista más completa de enlaces a vendedores y(www.sybase.com). Algunos de estos sistemas están dis- otra información se encuentra disponible en la páginaponibles gratuitamente para uso personal o no comer- inicial de este libro en www.research.bell-labs.com/cial, o para desarrollo, pero no para implantación real. topic/books/db-book. 16
  • PA R T E I MODELOS DE DATOS U n modelo de datos es una colección de herramientas conceptuales para la descripción de datos, relaciones entre datos, semántica de los datos y restricciones de consistencia. En esta parte se estudiarán dos modelos de datos —el modelo entidad-relación y el modelo relacional. El modelo entidad-relación (E-R) es un modelo de datos de alto nivel. Está basado en una percepción de un mundo real que consiste en una colección de objetos básicos, denominados entidades, y de relaciones entre estos objetos. El modelo relaciona es un modelo de menor nivel. Usa una colección de tablas para representar tanto los datos como las relaciones entre los datos. Su sim- plicidad conceptual ha conducido a su adopción general; actualmente, una vasta mayoría de productos de bases de datos se basan en el modelo relacional. Los diseñadores formulan generalmente el diseño del esquema de la base de datos modelando primero los datos en alto nivel, usando el modelo E-R, y después traduciéndolo al modelo relacional. Se estudiarán otros modelos de datos más tarde en este libro. El modelo de datos orientado a objetos, por ejemplo, extiende la representación de entida- des añadiendo nociones de encapsulación, métodos (funciones) e identidad de objeto. El modelo de datos relacional orientado a objetos combina caracterís- ticas del modelo de datos orientado a objetos y del modelo de datos relacional. Los Capítulos 8 y 9 tratan respectivamente estos dos modelos de datos.