Prof. José Tomás Cadenas L.

Anuncio
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
Descargar