Unidad I – Conceptos Fundamentales de Base de Datos Unidad I Conceptos Fundamentales de Base de Datos Fundamentos de Base de Datos Sistema de Base de Datos Un sistema de Base de datos es un sistema de mantenimiento de registros basado en computadores cuyo propósito general es registrar y mantener información relacionada con cualquier cosa que sea significativa para la organización donde el sistema opera.[1]. Dicha información normalmente es necesaria para los procesos de toma de decisión inherente a la administración de esa organización. En la Figura 1 se muestra una representación muy simplificada de un sistema de Base de Datos. Prof. José Tomás Cadenas L. Figura 1. Representación simplificada de un Sistema de Base de Datos [1] En esta figura se pretende indicar que un sistema de base de datos incluye cuatro componentes principales: datos o Bases de Datos propiamente dicha, hardware, software (Sistema de Administración de Base de Datos o DBMS) y usuarios. Datos o Bases de Datos Los datos almacenados en el sistema se dividen en una o más bases de datos. Desde el punto de vista didáctico es más conveniente suponer que sólo hay una Base de Datos, pero hay que tener claro que hoy en día es muy común encontrar un Sistema de Base de Datos con varias Bases de Datos interoperables (Bases de datos distribuidas) o independientes. Prof. José Tomás Cadenas L. - pág 1 de 1 Unidad I – Conceptos Fundamentales de Base de Datos Una base de datos es un repositorio de datos almacenados y, en general, es tanto integrada como compartida. Por integrada se entiende que la base de datos puede considerarse como una combinación de varios archivos de datos independientes, donde se elimina parcial o totalmente cualquier redundancia entre los mismos, para un uso común; el efecto de combinar datos es una base de datos produce sinergia [1] [2]. Por compartida se entiende que partes individuales de la base de datos pueden compartirse entre varios usuarios distintos, en el sentido de que cada uno de ellos puede tener acceso a la misma parte de la base de datos (y utilizarla con propósitos diferentes) [1]. Fundamentos de Base de Datos Otros autores definen a una base de datos como una colección de datos interrelacionados que contiene información de una o varias organizaciones relacionadas [4] [5]. La noción de integración tiene que ver con una colección de datos interrelacionados, y la de compartir porque contiene información de una o varias organizaciones También la conceptualizan como un conjunto autodescriptivo de registros integrados, ya que posee un diccionario de datos o lo que se denomina metadatos (descripción de la estructura y semántica de los datos). Y en cuanto a la noción de abstracción a través de los modelos de datos también este autor la define como un modelo de un modelo del usuario [3], lo cual será ampliado posteriormente. Hardware El hardware lo componen el(los) servidor(es) de Base(s) de Datos y diversos dispositivos de almacenamiento secundario donde reside la Base de Datos. Hoy en día normalmente esta base de datos se encuentra distribuida y/o replicada en diversos servidores de Bases de Datos o dispositivos de almacenamiento secundario (Bases de Datos Distribuidas Homogéneas), e incluso puede estar bajo diversos esquemas y/o diferentes DBMS (Bases de Datos Distribuidas Heterogéneas). Adicionalmente una bodega o almacén de datos (Datawarehouse) que contiene una inmensa cantidad de datos proveniente de la acumulación de varias bases de datos o datos históricos acumulados, puede residir en un grid computacional (diversos computadores acoplados fuertemente por hardware). Aunque actualmente los DBMS también son utilizados en computadores personales standalone (sin estar conectados en red) y en plataformas clienteservidor. Prof. José Tomás Cadenas L. Software Entre la Base de Datos propiamente dicha o capa física (nivel de almacenamiento real de los datos) y los usuarios del sistema (capa lógica) existe un nivel de software que recibe el nombre de Sistema de Administración de Bases de Datos o DBMS, por sus siglas en inglés Database Management System; en diversas traducciones se utilizan los términos: Sistema Manejador de Base de Datos (SMBD) o Sistema Gestor de Base de Datos (SGBD). Una función general del DBMS es proteger a los usuarios de la base de datos contra los detalles a nivel de hardware de ahí el poder de abstracción de los DBMS. El objetivo principal de un DBMS es proporcionar una forma de almacenar y recuperar la información de una base de datos de manera que sea tanto práctica como eficiente. Un DBMS por lo tanto es un software diseñado para asistir en mantener y utilizar grandes colecciones de datos. La alternativa al no usar DBMS es almacenar los datos en archivos y utilizar lenguajes de programación para manejarlos, estos últimos son denominados Sistemas de Prof. José Tomás Cadenas L. - pág 2 de 2 Unidad I – Conceptos Fundamentales de Base de Datos Archivos. El uso de DBMS tiene muchas ventajas importantes, de allí que su uso es muy extendido en el desarrollo de cualquier tipo de sistema o aplicación automatizada [4]. Hay diversidad de DBMS utilizados tales como: Oracle, PostgreSQL, SQLServer, MySQL, DB2, Sybase, Access; pero la mayoría de ellos están basados en el paradigma dominante en cuanto a modelos de datos el cuál es el Modelo Relacional, es por ello que se denominan RDBMS o Sistemas Administradores de Base de Datos Relacionales. Fundamentos de Base de Datos Usuarios Las personas que trabajan con una base de datos se pueden catalogar como usuario de base de datos, administrador de Base de Datos (DBA o Database Administrator) o programador de aplicación. Los usuarios normales son personas que interactúan con el sistema de base de datos mediante la invocación de alguno de los programas de aplicación permanentes que se ha diseñado previamente; es decir ellos interactúan a través de una interfaz diseñada específicamente para interactuar con la base de datos (Consultar información o añadir, modificar o eliminar datos). Pueden existir usuarios sofisticados que interactúan con el sistema de base de datos sin una interfaz en particular, sino que forman sus consultas (querys) a través del lenguaje de consulta del DBMS, esto es una ventaja que ofrecen los DBMS. Hoy en día existen herramientas de procesamiento analítico en línea (OLAP: Online Analytical Processing) permitiendo al usuario ver resúmenes de datos de formas diferentes; o también Minería de Datos (Datamining) para extraer información significativa de un datawarehouse. El programador de aplicaciones es un profesional de informática que escribe programas de aplicación para desarrollar interfaces de usuario. Actualmente los DBMS incluyen herramientas para el desarrollo rápido de aplicación que permiten generar fácilmente formularios (interfaz automatizada), consultas y reportes escribiendo poco código; es por ello que pueden existir ciertos usuarios sofisticados que pueden generar aplicaciones especializadas. También los DBMS incluyen tipos especiales de lenguajes de programación que combinan estructuras de control imperativo (estructuras de decisión simple o múltiple, ciclos o bucles) con instrucciones de lenguaje de Bases de Datos (normalmente SQL, Structured Query Language) para actualizar y manipular las bases de datos. Estos lenguajes denominados de cuarta generación incluyen características especiales para facilitar la generación de formularios y la presentación de datos en pantalla [5]. Actualmente con los sistemas de bases de datos bajo plataforma Web es muy usual la utilización de lenguajes de script (tales como PHP, ASP o JSP) que utilizan subprogramas incrustados en el código de una página web para acceder y manipular la base de datos a través de su conexión con el motor del DBMS. Prof. José Tomás Cadenas L. Por último el Administrador de la Base de Datos (DBA) tiene el control tanto de los datos como de los programas que acceden a los datos de una Base de Datos en particular. Entre las funciones del DBA se puede mencionar: definición de la estructura y modificación del esquema; modificación de la organización física y el método del acceso; concesión de autorización para el acceso a los datos; entrenamiento y soporte al usuario; evaluación del rendimiento y entonación de la Base de Datos; garantizar la disponibilidad y la recuperación de fallos de la Base de Datos. Por ser el área de Administración de Datos muy importante en los Sistemas de Base de Datos se le dedica un capítulo especial al análisis de la misma. Prof. José Tomás Cadenas L. - pág 3 de 3 Unidad I – Conceptos Fundamentales de Base de Datos Componentes de una Base de Datos Como ya se mencionó anteriormente los Sistemas de Base de Datos es una tecnología posterior a los Sistemas de Archivos; es así que las Bases de Datos como tal necesitan más capacidad de almacenamiento y de procesamiento de los computadores; es por ello que el impulso de las Bases de Datos no es sino después de la década de los años 1980 donde hay un gran avance en el uso de los computadores personales y su conexión en redes; ya que a partir del nacimiento de las Bases de Datos a mediados de la década de 1960 sólo organizaciones que podían tener grandes computadores podían utilizar sistemas de Bases de Datos. F u n d a m e n to s de B ase de D a to s Para ilustrar lo anterior es importante considerar los componentes de una Base de Datos mostrados en la Figura 2. P r o f. Jo sé T o m á s Cadenas L. Figura 2. Componentes de una Base de Datos [3] Cada flecha en la figura representa un conjunto del nivel anterior; el bit es lo que reconoce finalmente la computadora internamente (lenguaje de máquina), un conjunto de bits es un byte que lo asociamos normalmente a un carácter (dependiendo de una tabla de codificación normalmente la ASCII, EBCDIC o Unicode), el conjunto de caracteres forma un campo (por ejemplo: nombre, apellido, fecha de nacimiento), un grupo de campos conforma un registro y el conjunto de registros es un archivo. Hasta este punto llega un Sistema que maneja sólo archivos y es por lo que diversos autores lo denominan Sistemas de Archivos Aislados. Una base de datos no sólo lo conforman los archivos (datos), sino también la descripción de la estructura y semántica de los datos (metadatos), los índices (estructuras de datos auxiliares que mejoran el acceso a la Base de datos) y los metadatos de aplicación (estructura y formato de formularios, consultas, reportes y otros componentes de la aplicación). Es importante destacar que el mantenimiento de componentes tales como metadatos, índices y metadatos de aplicación, necesitan mayor poder de procesamiento y de almacenamiento de los computadores que posean sistemas de Base de Datos, pero con la ventaja de lograr ese nivel de abstracción donde se ocultan detalles de implementación física a los usuarios permitiéndole a los DBMS ser amigables para los usuarios (user friendly) por ser una capa lógica que está por encima de la capa física de los Datos propiamente dichos. Se puede notar también que en una Base de datos existe una separación lógica entre los datos y las aplicaciones; mientras que en los sistemas de Archivos manejados por lenguajes que normalmente son considerados de tercera generación (COBOl, RPG, Pascal, entre otros) los datos son parte de los programas de aplicaciones, es decir, para utilizar los archivos existe una parte declarativa dentro del programa de aplicación que especifica la composición de estos Prof. José Tomás Cadenas L. - pág 4 de 4 Unidad I – Conceptos Fundamentales de Base de Datos archivos. Esto se constituye en una de las ventajas de los Sistemas de Base de Datos sobre los Sistemas de Archivos, estas ventajas se ampliarán en la sección posterior. Estructura de un DBMS Fundamentos de Base de Datos La estructura de un DBMS basado en el modelo relacional simplificada se muestra en la Figura 3. Prof. José Tomás Cadenas L. Figura 3. Estructura simplificada de un DBMS [5] Los componentes funcionales de un DBMS se pueden dividir a grandes rasgos en el procesador de consultas y gestor de almacenamiento. Un sistema de base de datos proporciona un lenguaje de definición de datos (DDL: Data Definition Language) para especificar el esquema de la base de datos y un lenguaje de manipulación de datos (DML: Data Manipulation Language) para expresar las consultas (querys) a la base de datos. En la práctica, los lenguajes de definición y manipulación de datos no son dos lenguajes separados; en su lugar simplemente forman partes de un único lenguaje de bases de datos, tal como SQL (Structured Query Language) o Lenguaje de Consulta Estructurado ampliamente utilizado y convertido en un estándar para los RDBMS [5]. Prof. José Tomás Cadenas L. - pág 5 de 5 Unidad I – Conceptos Fundamentales de Base de Datos El procesador de consultas se encarga de compilar y/o interpretar las consultas requeridas por las personas que interactúan con la base de datos. Este módulo es importante porque ayuda al Sistema de Base de Datos a simplificar y facilitar el acceso a los datos. Los usuarios del sistema no son molestados con los detalles físicos de implementación del sistema; sin embargo el motor de evaluación de consultas es un componente complejo del DBMS porque se encarga de utilizar la información acerca de cómo son almacenados los datos para producir un plan de ejecución eficiente para evaluar la consulta, permitiendo un eficiente procesamiento de las consultas. Fundamentos de Base de Datos El gestor de almacenamiento es un módulo de programa que proporciona la interfaz entre los datos de bajo nivel en la base de datos y los programas de aplicación y/o consultas emitidas al sistema. Este módulo es importante porque las Bases de Datos requieren normalmente de una gran cantidad de espacio de almacenamiento, bases de datos corporativas pueden tener cientos de gigabytes o terabytes de datos. Debido a que la memoria principal no puede almacenar esta gran cantidad de datos, esta se almacena en dispositivos de almacenamiento secundario (normalmente discos). Los datos se trasladan entre el disco de almacenamiento y la memoria principal cuando es necesario, utilizando el buffer y el proceso de paginación. Como la transferencia de datos a y desde el disco es lenta en comparación con la velocidad que el procesador central del computador utiliza datos de la memoria principal, es fundamental que el Sistema de Base de Datos utilice estructuras de datos de bajo nivel que minimicen la necesidad de movimiento de datos entre el disco y la memoria principal. Sistemas de Archivos Versus Sistemas de Base de Datos Un sistema de procesamiento de archivos típico se mantiene mediante un sistema operativo convencional, los registros permanentes son almacenados en varios archivos, se escriben diferentes programas de aplicación para extraer y añadir registros a los archivos adecuados. Este sistema presenta varias desventajas cuando se quiere almacenar gran cantidad de datos que son accesados en forma concucurrente (un mismo registro es tratado de actualizar por dos o más usuarios), son efectuadas consultas periódicas que requieren una respuesta eficiente, los cambios a los datos efectuados por diversos usuarios deberán ser aplicados consistentemente y el acceso a cierta parte de los datos debe ser restringido. Prof. José Tomás Cadenas L. Los principales inconvenientes para mantener información de una o varias organizaciones en un sistema de archivos se resumen a continuación: 1. Redundancia e inconsistencia de los datos: Debido a que los archivos y programas de aplicación son creados por diferentes programadores en un largo período de tiempo, los diversos archivos tienen probablemente diferentes formatos y los programas pueden estar escritos en diferentes lenguajes. Más aún, la información puede estar duplicada en diferentes lugares (archivos), lo que produce que las diversas copias de los mismos datos pueden no coincidir (inconsistencia). El mismo elemento de datos puede tener varios nombres (sinónimos) o un término puede tener diferentes significados dependiendo del contexto (homónimos). 2. Dificultad en el acceso a los datos: El entorno de procesamiento de archivos convencional no permite que la información necesaria sea obtenida de una forma práctica y eficiente. Prof. José Tomás Cadenas L. - pág 6 de 6 Unidad I – Conceptos Fundamentales de Base de Datos 3. Aislamiento de datos: Debido a que los datos están dispersos en varios archivos, y los archivos pueden estar en diferentes formatos, es difícil escribir nuevos programas de aplicación para recuperar los datos apropiados. Fundamentos de Base de Datos 4. Problemas de integridad: Los valores de los datos deben satisfacer ciertos tipos de restricciones de consistencia, que deben ser garantizadas añadiendo código apropiado en los diversos programas de aplicación. Sin embargo, cuando se añaden nuevas restricciones, es difícil cambiar los programas para hacer que se cumplan, más aún, cuando las restricciones implican diferentes elementos de datos de diferentes archivos. 5. Problemas de atomicidad: Es difícil asegurar que los datos se mantengan consistentes si ocurren fallos mientras los cambios son realizados en los datos. 6. Anomalías de acceso concurrente: Muchos sistemas permiten a múltiples usuarios actualizar los mismos datos simultáneamente, si esto no es manejado en forma adecuada puede dar lugar a datos inconsistentes. Los sistemas de archivos no poseen mecanismos para manejar adecuadamente la concurrencia. 7. Problemas de seguridad: Los sistemas de archivos proveen sólo mecanismos de contraseñas (password) para la seguridad; esto no es lo suficientemente flexible para tener políticas de seguridad en la cuál diferentes usuarios tienen permiso de usar diferentes subconjuntos de datos. Estas dificultades, entre otras, han motivado el desarrollo de los sistemas de bases de datos, que brindan entre otras cosas un control centralizado de los datos de operación de la organización, que constituyen hoy en día uno de sus activos más valiosos. Entre las ventajas que pueden destacarse en un sistema de Bases de Datos están: 1. Independencia de los datos: Las bases de datos brindan una separación entre los programas de aplicación y los datos, es decir, los programas pueden ser en cierta medida independientes de los detalles de la definición de datos; esto permite además que el DBMS utilice una visión abstracta de los datos sin estar expuesto a los detalles de la representación y almacenamiento de los datos. Prof. José Tomás Cadenas L. 2. Acceso eficiente a los Datos: Un DBMS utiliza una variedad de técnicas sofisticadas para almacenar y obtener los datos en forma eficiente. Esta característica es especialmente importante si los datos son almacenados en dispositivos de almacenamiento secundarios. 3. Integridad de los Datos y Seguridad: Como los datos son accesados a través del DBMS, éste puede garantizar las restricciones de integridad; también se pueden definir controles de autorización a nivel de datos particulares de acuerdo a las diferentes clases de usuarios. 4. Administración centralizada de los datos: Debido a que múltiples usuarios comparten los datos el DBA puede administrar en forma centralizada los datos teniendo como ventajas principales a) Diseñar la definición de los datos minimizando la redundancia, y b) Realizar cambios a la forma de almacenamiento físico de los datos para extraer la información en forma eficiente (entonar la base de datos). 5. Control de acceso concurrente y recuperación de fallos: El DBMS provee de mecanismos para garantizar que el acceso concurrente de los datos no produzca inconsistencias. Tales mecanismos se basan en la gestión de transacciones para garantizar las propiedades de Prof. José Tomás Cadenas L. - pág 7 de 7 Unidad I – Conceptos Fundamentales de Base de Datos atomicidad, consistencia, aislamiento y durabilidad de las transacciones (ACID), evitando además los efectos que pueden producir las fallas en los sistemas de computación. 6. Facilidad en el desarrollo de aplicaciones: El DBMS provee de funciones importantes que son comunes para que muchas aplicaciones accesen los datos de la Base de Datos. Esto además de las interfaces de alto nivel facilitan el desarrollo rápido de aplicaciones robustas debido a que muchas actividades que garantizan integridad y seguridad son manejadas por el DBMS. Fundamentos de Base de Datos 7. Fácil representación de la vista de datos de los usuarios: Los sistemas de bases de datos proveen de una serie de herramientas conceptuales para el diseño de las bases de datos que proporcionan una visión abstracta de los datos (modelos de datos); es decir, se esconden ciertos detalles de cómo se almacenan y mantienen los datos. Dadas todas estas ventajas, ¿Hay razones para no usar un DBMS?. Una razón de no usarlo es que el DBMS es una pieza de software compleja, optimizada para ciertos tipos trabajos tales como: responder consultas complejas o manejar eficientemente muchos requerimientos concurrentes, y su rendimiento (perfomance) puede que no sea el adecuado para ciertas aplicaciones especializadas. Otra razón es que una aplicación puede necesitar manipular los datos en formas que no son soportadas por un lenguaje de consulta de base de datos. Por ultimo, la función de administración de la base de datos requiere de personal calificado que sea capaz de coordinar las necesidades de los diferentes grupos, de diseñar vistas, definir esquemas de datos, establecer procedimientos de respaldo y recuperación, además de afinar (entonar) la estructura física para obtener criterios de rendimiento aceptables. [2][4] Arquitectura de tres niveles de una Base de Datos La distinción entre la representación lógica y física de los datos fue reconocida oficialmente en 1978, cuando el comité ANSI/SPARC propuso un esqueleto generalizado para sistemas de base de datos, el cual brinda una arquitectura de tres niveles, los tres niveles de abstracción bajo los que podría verse una base de datos, estos son: el interno, el conceptual y el externo [2]. Prof. José Tomás Cadenas L. Se denominan niveles de abstracción ya que esta ligado a la separación de la estructura lógica y la manipulación de los datos tal y como lo concibe el usuario final, de la representación física que requiere el hardware de la computadora. Es por ello que se dice que se esconde la complejidad a los usuarios a través de varios niveles de abstracción los cuales son: nivel físico, nivel lógico y nivel de vistas [5]. El Nivel de vistas o externo es el más alto de abstracción y descrie sólo parte de la base de datos completa. Consiste de las vistas que tiene cada grupo de usuarios de la Base de Datos. Cada una de estas vistas da una descripción de los elementos de los datos y sus interrelaciones orientadas al usuario y de las cuales se compone la vista. Esta se puede derivar directamente del esquema conceptual. El sistema puede proporcionar muchas vistas para la misma base de datos, la colección de todas las vistas de usuario forma el nivel externo. El Nivel Lógico o conceptual describe qué datos se almacenan en la base de datos y qué relaciones existen entre esos datos. Este nivel corresponde al diseño conceptual de la Base de Datos, que implica el análisis de necesidades de información de los usuarios y la definición de las entidades o clases de datos que se necesitan para satisfacer estos requerimientos. El resultado Prof. José Tomás Cadenas L. - pág 8 de 8 Unidad I – Conceptos Fundamentales de Base de Datos del diseño conceptual es el esquema conceptual, una simple y lógica descripción de todos los elementos de los datos y sus interrelaciones. El Nivel físico o interno es el más bajo de abstracción, describe cómo se almacenan realmente los datos, con las estructuras de datos complejas de bajo nivel. Este nivel es responsabilidad de los diseñadores de la base de datos física, quienes deciden cuáles dispositivos físicos contendrán los datos, cuáles métodos de acceso se usarán para recuperar y actualizar los datos y cuáles medidas se tomarán para mantener o mejorar el rendimiento de la base de datos. Ningún usuario tiene que ver con esta vista en calidad de usuario. Fundamentos de Base de Datos Como se muestra en la figura 4, la implementación de estos tres niveles requiere que el DBMS haga corresponder cada nivel con el otro, recordando que la base de datos en realidad existe sólo a nivel interno. Para representar los datos en los niveles conceptual y externo del usuario, el sistema debe ser capaz de trasladar las direcciones y apuntadores físicos con sus correspondientes nombres lógicos e interrelaciones. Esta traducción también debe tener lugar en el sentido inverso (del lógico al físico). El precio de este proceso de traducción es un sobrecosto mayor, pero la ventaja es la independencia de la representación lógica de los datos de su representación física [2]. Prof. José Tomás Cadenas L. Figura 4. La Arquitectura de tres niveles ANSI/SPARC de una Base de Datos. [2] Prof. José Tomás Cadenas L. - pág 9 de 9 Unidad I – Conceptos Fundamentales de Base de Datos Ejemplares y Esquemas Las bases de datos van cambiando a los largo del tiempo conforme la información se inserta y borra. La colección de información almacenada en la base de datos en un momento particular se denomina ejemplar de la base de datos [5], otros autores lo denominan instancia de la base de datos. Fundamentos de Base de Datos El diseño completo de la base de datos se llama esquema de la base de datos. Los esquemas son raramente modificados, si es que lo son alguna vez. Los sistemas de base de datos tienen varios esquemas divididos de acuerdo a los niveles de abstracción ya discutidos. El esquema físico describe el diseño físico en el nivel físico, mientras que el esquema lógico describe el diseño de la base de datos en el nivel lógico. Una base de datos puede tener también varios esquemas en el nivel de vistas, a menudo denominados subesquemas, que describen diferentes vistas de la base de datos. Arquitectura de Aplicaciones La mayoría de usuarios de un sistema de base de datos no están situados actualmente junto al sistema de base de datos, sino que se conectan a él a través de una red. Se puede diferenciar entonces entre las máquinas cliente, en donde trabajan los usuarios remotos de la base de datos y las máquinas servidor, en las que se ejecuta el sistema de base de datos. Las aplicaciones de bases de datos se dividen usualmente en dos o tres capas, tal como se muestra en la Figura 5. Prof. José Tomás Cadenas L. Figura 5. Arquitectura de dos y tres capas [5] Prof. José Tomás Cadenas L. - pág 10 de 10 Unidad I – Conceptos Fundamentales de Base de Datos En una arquitectura de dos capas la aplicación se divide en un componente que reside en la máquina cliente, que llama a la funcionalidad del sistema de base de datos en la máquina servidor mediante instrucciones del lenguaje de consultas. Los estándares de interfaces de programas de aplicación como ODBC (Object Database Conectivity) y JDBC (Java Database Conectivity) se usan para la interacción entre el cliente y el servidor. Fundamentos de Base de Datos En una arquitectura de tres capas, la máquina cliente actúa simplemente como frontal (frontend) y no contiene ninguna llamada directa a la base de datos. En su lugar, el cliente se comunica con un servidor de aplicaciones (middleware), usualmente mediante una interfaz de formularios. El servidor de aplicaciones, a su vez, se comunica con el sistema de base de datos (Backend) para acceder a los datos. La lógica de negocio de la aplicación, que establece las acciones a realizar bajo determinadas condiciones, se incorpora en el servidor de aplicaciones, en lugar de ser distribuida a múltiples clientes. Las aplicaciones de tres capas son más apropiadas para grandes aplicaciones, y para las aplicaciones que se ejecutan en World Wide Web. Historia de los Sistemas de Bases de Datos El procesamiento de datos impulsa el crecimiento de los computadores, las técnicas de almacenamiento de datos han evolucionado a lo largo de los años, a continuación se presenta una breve reseña histórica. Década de 1950 y principios de la década de 1960 Se desarrollaron las cintas magnéticas para el almacenamiento de los datos. Las tareas de procesamiento de datos tales como las nóminas fueron automatizadas con los datos almacenados en cintas. El procesamiento de datos consistía en leer datos de una o más cintas y escribir datos en una nueva cinta; los datos se podían introducir desde paquetes de tarjetas perforadas e impresos en impresoras. Las cintas sólo se podían leer secuencialmente y los tamaños de datos eran mucho mayores que la memoria principal; así, los programas de procesamiento de datos tenían que procesar los datos según un determinado orden, leyendo y mezclando datos de cintas y tarjetas perforadas. Prof. José Tomás Cadenas L. Finales de la década de 1960 y la década de 1970 El amplio uso de los discos fijos a finales de la década de 1960 cambió en gran medida el escenario de procesamiento de datos, ya que permitieron el acceso directo a los datos. La ubicación de los datos en disco no era importante, ya que a cualquier posición del disco se podía acceder en sólo decenas de milisegundo. Se desarrollan los primeros sistemas de base de datos a mediados de los sesenta basados en el modelo jerárquico, que presume que todas las interrelaciones entre los datos puede estructurarse como jerarquías, los archivos se conectan entre sí mediante apuntadores físicos o campos de datos añadidos a los registros individuales; el DBMS jerárquico dominante es el IMS de IBM. A finales de los años sesenta se desarrollaron los sistemas de base de datos en red; donde en una interrelación de datos un registro puede estar subordinado a registros de más de un archivo; al igual que los sistemas de base de datos jerárquicos, los sistemas de base de datos en red emplearon apuntadores físicos para enlazar entre sí los registros de diferentes archivos. Una serie de artículos históricos de Codd (1970) sembró las bases para el nacimiento del modelo relacional y formas no procedimentales de consultar los datos. La simplicidad del modelo Prof. José Tomás Cadenas L. - pág 11 de 11 Unidad I – Conceptos Fundamentales de Base de Datos relacional y la posibilidad de ocultar completamente los detalles de implementación al programador (poder de abstracción) fueron realmente atractivas. Década de 1980 Fundamentos de Base de Datos El modelo relacional no se usó masivamente en sus inicios debido a sus inconvenientes por el rendimiento; las bases de datos relacionales no pudieron competir con el rendimiento de las bases de datos de red y jerárquicas existentes. Esta situación cambió con System R, un proyecto innovador desarrollado por IBM que estableció técnicas para la construcción de RDBMS eficientes, de hecho es la base teórica de exitosos productos comerciales tales como ORACLE, DB2 y Sybase. Las bases de datos relacionales fueron tan sencillas de usar que finalmente reemplazaron a las bases de datos jerárquicas y de red; desde su escalada en el dominio en la década de 1980, el modelo relacional ha conseguido el reinado supremo entre todos los modelos de datos y es la base de la mayoría de DBMS de uso general. La década de 1980 también fue testigo de una gran investigación en las bases de datos paralelas y distribuidas, así como del trabajo inicial en las bases de datos orientadas a objetos; es así que se adopta el modelo conceptual orientado a objetos para el diseño de las bases de datos, basado en las investigaciones realizadas por P. Chen con el Modelo Entidad Relación (MER). Década de 1990 El lenguaje SQL se diseñó fundamentalmente para las aplicaciones de ayuda a la toma de decisiones, que son intensivas en consultas, mientras que el objetivo principal de las bases de datos en la década de 1980 fue las aplicaciones de procesamiento de transacciones, que son intensivas en actualizaciones. Se establecen plataformas cliente-servidor, donde el cliente es el computador frontal (frontend) que tiene interfaz directamente con el usuario; mientras que el servidor (backend) es el que gestiona fundamentalmente el acceso a los datos atendiendo las diferentes peticiones de los clientes, también realiza funciones de control y seguridad de acceso a los datos. Prof. José Tomás Cadenas L. Un fenómeno interesante es la emergencia de diversos software integrados denominados MRP (Management Resource Planning) y ERP (Entreprise Resource Planning), en los cuales se desarrolla una capa de aplicaciones de negocio sobre un RDBMS. Estas aplicaciones proveen un marco general para llevar a cabo las actividades de una organización (control de manufactura, recursos humanos, análisis financiero, entre otros) y los datos son almacenados utilizando las ventajas del RDBMS, pudiendo adaptar las aplicaciones a situaciones particulares, permitiendo bajar los costos de operación de la compañía al no tener que arrancar desde cero para construir sus aplicaciones informáticas. Ejemplos de estas herramientas automatizadas son: SAP, Baan, Oracle, PeopleSoft. Tendencias actuales El principal acontecimiento es el crecimiento explosivo de la World Wide Web. Las bases de Datos se implantan mucho más extensivamente que nunca antes, no se concibe el desarrollo de un sistema automatizado que no implique la utilización de bases de datos; además de la importancia que tienen para la toma de decisiones de una organización y las herramientas que se proveen para analizar grandes cantidades de datos. Los sistemas de bases de datos tienen hoy en día soporte para tasas de transacciones muy altas, así como una muy alta fiabilidad y disponibiildad (24 X 7 X 365); también se desarrollan interfaces web ayudados con lenguajes de programación de script o lenguajes del lado del servidor. Prof. José Tomás Cadenas L. - pág 12 de 12 Unidad I – Conceptos Fundamentales de Base de Datos Los DBMS se han extendido para almacenar nuevos tipos de datos tales como imágenes, texto, video interactivo, librerías digitales o multimedias, y están preparados para responder consultas más complejas; se han creado Datawarehouse (bodegas de datos) que pueden consolidar datos de diversas bases de datos y se pueden llevar a cabo análisis especializados mediante técnicas como OLAP y Datamining. Fundamentos de Base de Datos También se han creado técnicas que incluyen diversas áreas científicas que han permitido desarrollar proyectos tales como la identificación del genoma humano y sistemas de observación de señales del espacio; además se esta trabajando con Bases de Datos Distribuidas Heterogéneas y la Web Semántica que tiene que ver con áreas de inteligencia artificial aplicadas a bases de datos (Bases de datos de conocimiento). Modelos de Datos Bajo la estructura de la base de datos se encuentra el modelo de datos: una colección de herramientas conceptuales para describir los datos, las interrelaciones, la semántica y las restricciones de consistencia [5]. El modelo de datos esconde muchos detalles de almacenamiento de bajo nivel, un DBMS permite aun usuario definir los datos a ser almacenados in términos del modelo de dato [4]. Es por ello que el usuario define qué datos desea almacenar sin importarle el cómo se almacenan; de allí el poder de abstracción de los DBMS, facilitando el trabajo tanto para usuarios, como programadores y hasta administradores de la Base de Datos. Sin embargo es importante destacar que un buen DBA debe tener un conocimiento profundo del DBMS y de modelos físicos de datos que le permitan en un momento dado refinar o entonar la Base de Datos para obtener un mejor rendimiento; a veces lo que por razones de consistencia le obliga a normalizar n el momento del diseño de la base de datos, al evaluar el rendimiento es posible que conscientemente decida desnormalizar para obtener un mejor rendimiento de la base de datos en desmedro de la consistencia. Prof. José Tomás Cadenas L. El poder de abstracción de los modelos se destaca en la siguiente definición: un modelo es una representación de la realidad que conserva sólo los detalles relevantes. Los procesos de definición de requerimientos y del diseño conceptual exigen identificar las exigencias de la información de los usuarios y representar éstos en un modelo bien definido. Para llevar a cabo esto se necesita observar cuidadosamente la naturaleza de las condiciones de los usuarios y el significado preciso de la representación lógica de los mismos [2]. Una base de datos incorpora un modelo de la realidad, de allí la definición de base de datos como: un modelo de un modelo del usuario. Al usuario sólo le interesa una parte de la realidad (vista del usuario), la cuál el diseñador de la Base de Datos representa a través de un modelo. El mundo real es un mundo abierto en el cuál pueden suceder muchas cosas, en cambio en la base de datos sólo podrá ocurrir aquello que se modeló. El trabajo del diseñador es integrar las múltiples vistas de usuarios de la organización en un sólo modelo conceptual o lógico (como el Modelo Entidad Relación), para luego llevarlo a un modelo de implementación (tal como el modelo relacional), siguiendo la metodología de análisis de sistemas top-down, es decir, de arriba hacia abajo o más bien de lo general a lo particular. El DBMS administra la base de datos de modo que cada usuario pueda registrar, acceder y manipular los datos que constituyen su modelo de la realidad. Prof. José Tomás Cadenas L. - pág 13 de 13 Unidad I – Conceptos Fundamentales de Base de Datos Clasificación de los Modelos de Datos Los diferentes modelos de datos que se han propuesto tradicionalmente se clasifican en tres grupos diferentes de acuerdo a su nivel de abstracción: a) modelos conceptuales o lógicos basados en objetos, b) modelos lógicos basados en registros y c) modelos físicos [5]. Fundamentos de Base de Datos Se habla del modelo conceptual de datos como de una metodología para la creación de esquemas de base de datos para situaciones particulares de aplicación. Estos esquemas son en sí mismos modelos que proveen una estructura lógica para capturar hechos sobre una porción particular de la realidad. Cuando estos hechos son capturados y registrados en un sistema de base de datos, entonces la base de datos en sí misma es un modelo del estado actual de la realidad.[2] Es importante destacar que en los modelos de datos se modelan los datos más no los procesos. En metodologías de desarrollo de sistemas los datos son agrupados en objetos, sólo que un objeto además de los atributos (características que definen los objetos, que al final son datos) posee métodos que son los procedimientos o funciones que se pueden aplicar a cada objeto; es por ello la similitud de un modelo conceptual de datos con diagramas de clases utilizados en metodologías orientadas a objetos (diagrama de clases de la notación UML por ejemplo), sólo que el diagrama de clases incorpora los métodos y características de privacidad. Dentro de la clasificación de modelos conceptuales se encuentra el modelo entidad relación, modelo semántico de datos u modelo orientado a objeto. En el segundo escalafón, con menor poder de abstracción y por lo tanto mayor nivel de detalle, modelos lógicos orientados a registros se encuentra el modelo relacional, modelo en red y modelo jerárquico. En el nivel más bajo, el modelo físico se encuentra el diseño de las estructuras de datos de bajo nivel utilizada para almacenar datos (normalmente árboles de diversos tipos y grafos) y diversos operadores físicos para manipular los datos; importante a la hora de evaluar el rendimiento y entonar o refinar la base de datos. En este punto es importante hacer una comparación por analogía de los diferentes niveles de los modelos y aunque esta comparación no es exacta sirve a nivel didáctico para expresar el poder semántico o de significado que puede tener cada modelo y el nivel de detalles a que llega cada uno. Para ello observe la tabla 1, donde se compara la vista del Usuario, el Modelo entidad relación (MER), el Modelo Relacional (MR) y los Sistemas de archivos (SA). Prof. José Tomás Cadenas L. Usuario MER MR SA Columna Atributo Atributo Campo Fila Entidad Tupla Registro Tabla Conjunto de entidades Relación Archivo Tabla 1. Comparación de diferentes niveles de modelos Es importante destacar que estas no son equivalencias, sino que son como puntos de vista diferentes y que por ejemplo todas las tablas para un usuario que se podrían representar eventualmente en archivos, no necesariamente son relaciones de acuerdo a la definición del modelo relacional. Además un atributo del modelo relacional puede especificar el tipo de dato, el tamaño y el dominio (rango de valores que puede tomar el atributo), es decir, el cómo; mientras que el atributo en el MER especifica sólo el nombre y está más orientado a su significado (semántica) es decir, el qué. Prof. José Tomás Cadenas L. - pág 14 de 14 Unidad I – Conceptos Fundamentales de Base de Datos Para ilustrar el concepto de modelo de datos se describirá en general dos de los modelos más ampliamente usados: el modelo entidad relación y el modelo relacional. Fundamentos de Base de Datos Modelo Entidad Relación El modelo entidad relación (MER) está basado en una percepción del mundo real que consta de una colección de objetos básicos, llamados entidades, y de relaciones entre estos objetos. Una entidad es una cosa u objeto en el mundo real que es distinguible de otros objetos [5]. Por ejemplo, un estudiante es una entidad, una materia y el profesor pueden ser considerados entidades. Las entidades se describen en una base de datos mediante un conjunto de atributos. Por ejemplo, los atributos nombre, apellido y fecha de nacimiento describen a un estudiante en articular y pueden ser atributos del conjunto de entidades estudiante. Es aquí donde se establece la analogía en orientación a objeto entre una entidad y un objeto; además de un conjunto de entidades y una clase. Es importante destacar que se debe utilizar un atributo o un conjunto de ellos para identificar unívocamente a cada entidad entre un conjunto de entidades. Por ejemplo, los estudiantes (puede ser posible que existan dos estudiantes con el mismo nombre, apellido y fecha de nacimiento) en nuestro entorno normalmente se utiliza la Cédula de identidad como identificador, ya que dos estudiantes no deben poseer la misma cédula (restricción de consistencia). Una relación es una asociación entre varias entidades [5]. Por ejemplo una relación cursa asocia a un estudiante con cada materia que esta cursando; al igual que una relación dicta asocia a un profesor con cada materia que esta dictando. Es importante destacar la diferencia entre entidades y relaciones; las entidades se conciben como sustantivos o nombres de cosas , mientras que las relaciones se ven como verbos o acciones. El conjunto de todas las entidades del mismo tipo y el conjunto de todas las relaciones del mismo tipo se denominan conjunto de entidades y conjunto de relaciones respectivamente [5]. Prof. José Tomás Cadenas L. La estructura lógica general de una base de datos se puede expresar gráficamente mediante un Diagrama Entidad Relación (DER), que consta de los siguientes componentes: − Rectángulos, que representan conjunto de entidades, − Elipses, que representan atributos, − Rombos, que representan relaciones entre conjunto de entidades, − Líneas, que unen los atributos con los conjuntos de entidades y los conjuntos de entidades con las relaciones, − Cardinalidades, expresa el número de entidades con las que otra entidad se puede asociar a través de un conjunto de relaciones; cuando son relaciones binarias puede ser: uno a uno (1:1), uno a muchos (1:N) o muchos a muchos (N:M). Cada componente se etiqueta con la entidad o relación que representa. El modelo entidad relación se utiliza en el proceso de diseño de base de datos y se estudiará en profundidad posteriormente. A manera de ejemplo considérese parte de una base de datos de un sistema académico de un instituto de educación superior donde se tienen estudiantes, materias, profesores y departamentos. Prof. José Tomás Cadenas L. - pág 15 de 15 Unidad I – Conceptos Fundamentales de Base de Datos Fundamentos de Base de Datos Figura 6. DER de una base de datos académica Modelo Relacional En el modelo relacional se utiliza un grupo de tablas para representar los datos y las asociaciones entre ellos. Cada tabla está compuesta por varias columnas y cada columna tiene un nombre único. El principal concepto para representar datos en el modelo relacional es una relación, éste no debe confundirse con la relación del MER antes especificado. El modelo relacional no debe confundirse con el MER, son dos modelos de niveles de abstracción distintos y después se detallarán otras diferencias, pero principalmente el MER esta orientado a objetos mientras que el Modelo Relacional (MR) está orientado a registros. Prof. José Tomás Cadenas L. Una relación consiste de un esquema y una instancia. La instancia relacional es una tabla y el esquema relacional describe los nombres de las tablas, los nombres de sus atributos con sus dominios y los atributos claves. Para los ejemplos se tomará como referencia la base de datos académica mencionada para el MER. Un ejemplo de instancia relacional de estudiante se presenta en la figura 7. NomEst ApeEst FechaNac CédEst Tomás D. Cadenas O. 07/10/1988 18.693.059 Luis G. Pérez 12/03/1987 17.543.216 Laura G. Pérez 22/04/1988 17.543.217 Oscar A. Gómez 15/11/1987 17.287.111 Figura 7. Ejemplo de instancia relacional Un ejemplo de esquema relacional se presenta en la Figura 8, para cada campo o atributo se debe especificar el dominio, es decir el rango de valores que puede tomar el dato (si es string, entero positivo, carácter, booleano, entre otros) para efectos de simplificación no se especificarán los dominios. Prof. José Tomás Cadenas L. - pág 16 de 16 Unidad I – Conceptos Fundamentales de Base de Datos R1. Estudiante (NomEst, ApeEst, FechaNac, CedEst) R2. Materia (CodMat, DesMat) R3. Cursa (CodMat, CedEst, Nota) CodMat referencia a Materia CedEst referencia a Estudiante R4. Profesor (CedProf, NomProf, ApeProf, CodDpto) CodDpto referencia a Departamento R5. Dicta (CedProf, CodMat) R6. Departamento (CodDpto, NomDpto, CedProf) CedProf referencia a Profesor Fundamentos de Base de Datos Figura 8. Esquema relacional de la base de datos académica En el ejemplo presentado es importante destacar el concepto de claves (key), el cuál aplica como el identificador de entidades mencionado en el MER, en este caso se denomina clave primaria (primary key o PK) las cuáles aparecen subrayadas en el esquema relacional para cada relación. A diferencia del MER las asociaciones en el modelo relacional se realizan a través de claves ajenas o foráneas (foreign key o FK), en este caso se especifican las claves ajenas para referenciar a una relación a través de su clave primaria. Estos conceptos se profundizarán en la siguiente sección. En general, además de la diferencia en niveles de abstracción entre el MER y el MR, se tiene que las asociaciones en el MER son explicitas a través del rombo en el MER mientras que en el MR se realizan a través de las claves ajenas (que no existen en el MER). Además en el MER se tiene mayor poder semántico al poder especificar características tales como: atributos multivalorados, relaciones de ES-UN (herencia) y agregación; por su parte en el MR se pueden especificar los dominios de los atributos lo cual no se tiene en el MER. Prof. José Tomás Cadenas L. Conceptos de Claves El concepto de clave (key), a veces traducido como llave, es muy importante para el diseño de bases de datos, por lo tanto aplica tanto para el MER como para el MR, la diferencia se establece en la clave ajena que sólo se aplica al MR; por ello se revisarán los conceptos de claves y se hablará de entidad o conjunto de entidades en cuanto al MER, o de registro o tabla en el caso del MR. Es necesario tener una forma de especificar como las entidades (registros) dentro de un conjunto de entidades (tabla) pueden distinguirse. Conceptualmente las entidades (registros) individuales son distintos; desde una perspectiva de bases de datos, sin embargo, la diferencia entre ellos se debe expresar en término de sus atributos. Por lo tanto, los valores de los atributos de una entidad (registro) deben ser tales que permitan identificar unívocamente a la entidad (registro). En otras palabras, no se permite que ningún par de entidades (registros) tengan exactamente los mismos valores de sus atributos. Una clave permite identificar un conjunto de atributos suficiente para distinguir las entidades (registros) entre sí. Las claves también ayudan a identificar unívocamente a las relaciones (el caso de cursa y dicta en el ejemplo). Prof. José Tomás Cadenas L. - pág 17 de 17 Unidad I – Conceptos Fundamentales de Base de Datos Cuando se refiere a una clave normalmente se habla del concepto de clave primaria (PK), pero existen otros tipos de claves entre las que se puede mencionar: superclave, clave candidata y clave ajena (sólo aplica al MR). Fundamentos de Base de Datos Una superclave es un conjunto de uno o más atributos que, tomados colectivamente, permiten identificar de forma única una entidad (registro) en el conjunto de entidades (tabla). En el caso de estudiante, la cédula es una superclave, pero la combinación de cédula y apellido también es una superclave. El atributo apellido no es superclave, porque varios estudiantes pueden tener el mismo apellido (el caso de Pérez en el ejemplo). Una superclave puede contener atributos innecesarios, en general, si k es una superclave, cualquier combinación de k con otro(s) atributo(s), es decir cualquier superconjunto de k. A menudo interesan las superclaves tales que los subconjuntos propios de ellas no son superclave. Tales superclaves mínimas se llaman claves candidatas. En el ejemplo la cédula es una clave candidata mientras que cédula y apellido no es clave candidata. En el caso que el estudiante posea un atributo como carnet que sea un valor distinto a la cédula e identifique al estudiante, el carnet también es una clave candidata. Es decir, un conjunto de entidades (tabla) puede contener más de una clave candidata al igual que más de una superclave. Es necesario acotar que en el caso de la tabla cursa, la clave candidata es (CodMat + CedEst), es decir la combinación de dos atributos, esto porque un mismo estudiante puede cursas diversas materias y una misma materia es cursada por diferentes estudiantes. Se usa el término de clave primaria (PK) para denotar una clave candidata que es elegida por el diseñador de la base de datos como elemento principal para identificar las entidades (registros) dentro del conjunto de entidades (tabla). En el caso del estudiante con dos claves candidatas se debe elegir a una de las dos. ¿Qué criterio debe utilizar el diseñador de la base de datos para elegir la clave primaria? Aquí es importante tomar en cuenta el análisis de requerimientos de los usuarios, si los reportes y consultas que se requieren del sistema son a través de la cédula entonces debe ser la clave primaria la cédula; en cambio si los reportes y consultas de los usuarios es por carnet (como es el caso de muchos institutos de educación superior), entonces la clave primaria debe ser el carnet. Prof. José Tomás Cadenas L. Una clave (primaria, superclave o candidata) es una propiedad del conjunto de entidades (tabla), más que de las entidades individuales (registros). Cualesquiera dos entidades (registros) no puede tener el mismo valor en sus atributos clave al mismo tiempo. La designación de una clave representa una restricción en el desarrollo del mundo real que se modela [5]. Es importante destacar que los DBMS en general pueden permitir registros duplicados lo que contradice este principio de las claves, lo que algunos autores consideran como un pecado capital de los DBMS al contradecir los fundamentos teóricos de las bases de datos. La clave primaria se debería elegir de manera que sus atributos nunca, o muy raramente, cambien. Por ejemplo, el campo dirección de una persona no debería formar parte de una clave primaria, porque probablemente cambiará. Los identificadores únicos (códigos) generados por empresas generalmente no cambian, excepto si se fusionan dos empresas; en tal caso el mismo identificador puede haber sido emitido por ambas empresas y es necesario la reasignación de identificadores para asegurarse de que sean únicos; sin embargo, hoy en día con la adopción de códigos de barra para identificar los productos estos se han convertidos en códigos estandarizados a nivel general. Prof. José Tomás Cadenas L. - pág 18 de 18 Unidad I – Conceptos Fundamentales de Base de Datos Por último se va a considerar el concepto de clave ajena o foránea (FK), el cual como ya se ha dicho, aplica sólo a modelos relacionales. Una clave ajena es un conjunto de atributos en una relación (tabla) que constituyen una clave en alguna otra (o posiblemente la misma) relación; usada para indicar enlaces lógicos entre relaciones. Los atributos que son claves ajenas no necesitan tener los mismos nombres que los atributos de la clave con la cual se corresponden, es por ello que en un esquema relacional se pueden especificar de alguna forma cuales son claves ajenas. Un ejemplo de clave ajena es CodDpto (código del departamento) que constituye una clave ajena en la relación profesor y es la clave primaria de la relación Departamento. En algunos casos la clave ajena forma parte de la clave tal es el caso de CodMat (Código de Materia) en la relación cursa y CedEst (Cédula de Estudiante) en la misma tabla; ambas son claves ajenas de cursa y ambas forman la clave primaria de la misma relación. Fundamentos de Base de Datos Existen casos particulares en que una clave ajena puede referencia a la misma relación, como por ejemplo sea la relación Trabajador, donde el supervisor es uno de los trabajadores de la relación, entonces el esquema relacional se muestra en la figura 9. R1. Trabajador (CodTrabajador Nombre, Salario, CodOf, CodSupervisor) CodSupervisor referencia a Trabajador CodOf referencia a Oficio R2. Oficio (CodOficio, DesOficio, Prima) Figura 9. Ejemplo de una relación recursiva. Se puede notar que el valor del CodSupervisor (código del supervisor) es una clave ajena a la misma relación, es decir, el código del supervisor se enlaza con la misma relación a través del código del trabajador. Por otra parte CodOf se enlaza con CodOficio de la relación oficio, no importa que se llamen distintos, lo esencial es que ambos atributos sean del mismo tipo y tengan el mismo dominio. Prof. José Tomás Cadenas L. Prof. José Tomás Cadenas L. - pág 19 de 19 Unidad I – Conceptos Fundamentales de Base de Datos Referencias Bibliográficas [1] Date, C.J. (2001). Introducción a los Sistemas de Bases de Datos. Prentice Hall. [2] Hansen G. y Hansen J. (2000) Diseño y Administración de Bases de Datos. Segunda edición. Prentice Hall. [3] Kronke D. (2003). Procesamiento de Bases de Datos. Fundamentos, Diseño e Instrumentación. Octava edición. Prentice Hall. [4] Ramakrishnan R. y Gehrke J. (2003). Database Management Systems. Third Edition. McGraw-Hill Higher Education.. [5] Silsberchatz A., Korth H. y Sudarshan S. (2002) Fundamentos de Base de Datos. Cuarta edición. McGraw-Hill Interamericana de España. F u n d a m e n to s de B ase de D a to s P ro f. Jo sé T o m á s Cadenas L. Prof. José Tomás Cadenas L. - pág 20 de 20