Logo Studenta

Analisis-comparativo-entre-LDAP-y-las-bases-de-datos-relacionales

¡Este material tiene más páginas!

Vista previa del material en texto

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO 
 
 
FACULTAD DE ESTUDIOS SUPERIORES 
 ARAGÓN 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 MÉXICO, 2009. 
 
“A�ÁLISIS COMPARATIVO E�TRE LDAP Y LAS 
BASES DE DATOS RELACIO�ALES” 
T R A B A J O E S C R I T O 
 
E� LA MODALIDAD DE CRÉDITOS DE 
MAESTRÍA 
 
QUE PARA OBTE�ER EL TÍTULO DE: 
 
I�GE�IERO E� COMPUTACIÓ� 
 
P R E S E � T A : 
 
M I R I A M G Ó M E Z O R O Z C O 
 
 
 
 
 
 
ASESOR: M. en C. MARCELO PÉREZ MEDEL 
 
UNAM – Dirección General de Bibliotecas 
Tesis Digitales 
Restricciones de uso 
 
DERECHOS RESERVADOS © 
PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL 
 
Todo el material contenido en esta tesis esta protegido por la Ley Federal 
del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México). 
El uso de imágenes, fragmentos de videos, y demás material que sea 
objeto de protección de los derechos de autor, será exclusivamente para 
fines educativos e informativos y deberá citar la fuente donde la obtuvo 
mencionando el autor o autores. Cualquier uso distinto como el lucro, 
reproducción, edición o modificación, será perseguido y sancionado por el 
respectivo titular de los Derechos de Autor. 
 
 
 
 
 
 
A mi madre por tu infinita paciencia, gracias por no perder la fe en mí 
A mi padre por enseñarme que con perseverancia se logran las metas 
A mi hermano por estar siempre conmigo en las malas y en las peores 
A mi esposo por ser mi gran amigo, sostén y ejemplo a seguir 
A toda las personas que hicieron posible este trabajo escrito, gracias. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ÍNDICE 
INTRODUCC iÓN 
CAPíTULO 1 SERVICIOS DE DIRECTO RIOS 
1.1 Conceptos básicos 
1.1.1 Descripción 
1.1.2 Características de los servicios de directorios 
l.l.3 HisTOria 
1.2 Descripción de LDAP 
l. 2.1 Modelo de infonnación 
1.2.2 Modelo de nombrado 
l. 2.3 Modelo funcional 
l. 2.4 Modelo de seguridad 
1.3 Herramielllas de LDAP 
l.3 .1 Archivos LDIF 
l.3 .2 Búsquedas 
1.3.3 Acmalizaciones 
1.3.4 Control de acceso 
1.3.5 Replicación de datos 
CAPiTULO 2 BASES DE DATOS 
2.1 Conceptos básicos de bases de datos 
2.1.1 Objetivo de los sistemas de bases de datos 
2.2 Alllecedellles de las bases de dalos relacionales 
2.3 Bases de dalOs relacionales 
2.3.1 Modelo Relacional 
2.4 Sistema Manejador de Bases de Datos (SMBD) 
2.4.1 FUllcionamiellTo cOllcepmal de un RDB MS 
2.4 .2 Componentes de un RDB MS 
2.4 .3 SQL 
2.5 Seguridad 
2.5.1 Segmidad en bases de daTOs 
2.5.2 Niveles de seguridad 
2.5.3 Roles y perfiles 
CAPíTULO 3 HERRAMIENTAS UTILIZADAS 
3.1 OpenLdap 
3.2 Sun One DirecTOr)' Se rver 
3 
6 
7 
8 
10 
11 
12 
12 
14 
16 
18 
19 
19 
20 
23 
23 
23 
29 
30 
31 
33 
34 
34 
38 
39 
41 
42 
45 
45 
46 
46 
47 
48 
49 
 
3.3 Oraele 
3.4 MySQL 
3.5 Postgres 
3.6 SQL Sen 'er 
CAPiTULO 4 DESARROllO DE LAS PRUEBAS 
4.1 Especificaciones y arquitecmra del selv idor de pmebas 
4.2 Condiciones Iniciales 
4.3 Pmebas en LDAP 
4.4 Pmebas en las bases de datos relacionales 
CAPíTULO 5 ANÁLIS IS DE RESULTADOS 
CAPíTULO 6 CONCLUSIONES 
ANEXO 
BIBLIOGRAFÍA 
50 
51 
53 
56 
58 
59 
60 
61 
64 
65 
68 
71 
80 
3 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
INTRODUCCIÓN 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4 
 
Actualmente la información es uno de los activos más importantes en la 
sociedad, y la necesidad de contar con ésta se ha incrementado en todas las 
comunidades del mundo, las universidades, estudiantes, académicos, editores, 
proveedores así como distintos sectores. 
 
La complejidad en el tema se magnifica cuando el volumen de información es 
considerable, así como, la diversidad de usuarios con diferentes necesidades. Es 
por tal motivo, que algunas organizaciones se han dado a la tarea de 
desarrollar soluciones para resolver estos requerimientos, enfatizando en la 
generación de repositorios o bases de datos que permitan mantener la 
información actualizada, íntegra y disponible. 
 
Los sistemas que se han creado para cubrir las diversas necesidades de cada 
usuario, a menudo se topan con obstáculos de desempeño ya que no se 
selecciona de manera adecuada la plataforma o infraestructura sobre la cual se 
construirá el sistema en relación a los repositorios de datos. 
 
A partir de estas necesidades surge el interés de comenzar una investigación 
que da lugar al presente trabajo escrito, el cual es una fracción de la tesis de 
maestría que se está elaborando en conjunto con la Dra. Amparo López Gaona, 
el cual tiene como objetivo principal, cuantificar el desempeño de diferentes 
manejadores de bases de datos relaciones como son Oracle, SQL Server, 
Postgres y MySQL en comparación con software de servicios de directorios 
como son OpenLDAP y Sun Directory Server, para establecer similitudes y 
diferencias en el manejo de la información. 
 
CONTRIBUCION Y RELEVANCIA 
 
El presente documento, por otra parte, también cumple con un segundo 
objetivo no menos importante, el cual es brindar a los programadores y 
diseñadores de sistemas, un documento técnico, que contenga datos 
estadísticos y comparativos del desempeño de las dos tecnologías antes 
mencionadas, con el fin de facilitarles la toma de decisiones adecuadas para el 
desarrollo de nuevos sistemas, que sean más eficientes, robustos y escalables 
en base a las ventajas y desventajas descritas en las conclusiones de este 
documento. 
 
La tesis presentada contiene los siguientes capítulos: 
 
1. Servicio de directorios 
2. Bases de datos relacionales 
3. Herramientas utilizadas para desarrollo de las API’s 
4. Desarrollo de las pruebas 
5. Análisis de Resultados 
6. Conclusiones 
 
El capítulo 1 se enfoca en los servicios de directorios basados en el protocolo 
LDAP; se expone la historia, los conceptos básicos, las características y la forma 
5 
 
en que opera el protocolo LDAP. También se explica la notación estándar para 
realizar consultas, altas, modificaciones y eliminación de información. 
 
En el capítulo 2, el lector se encontrará con historia, conceptos básicos, bases 
técnicas, características y funcionamiento de las bases de datos relacionales; 
con el fin de ofrecer al lector un panorama general de las tecnologías que serán 
evaluadas en los siguientes capítulos. 
 
El capítulo 3 se desarrolla presentando un breve resumen técnico de los 
diversos manejadores de bases de datos relacionales y servicios de directorios 
basados en LDAP, que serán analizados en esta tesis, para establecer los 
parámetros y alcances bajo los cuales se realizarán las pruebas de desempeño 
a las tecnologías antes mencionadas. 
 
En el capítulo 4 se plantean los diferentes escenarios sobre los cuales se irán 
desenvolviendo las pruebas. Se explican los pasos que se siguieron para 
comenzar con los experimentos, tales como especificaciones del equipo en el 
que se harán las pruebas, las instalaciones y configuraciones de las tecnologías. 
También se explican los programas que se desarrollaron en lenguaje Java, para 
agilizar el aprovisionamiento de datos y realizar las consultas de manera 
automatizada. Por otra parte se tiene la parte estadística, en donde a través del 
acoplamiento de los datos a un modelo básico se pueden hacer mediciones más 
precisas y concretas. 
 
En base a los resultados obtenidos anteriormente, en el capítulo 5, se recopila 
toda la información para emitir los resultados, las comparaciones y gráficas de 
las pruebas realizadas en el capítulo anterior. 
 
Finalmente en el capítulo 6 se exponen las conclusiones y las recomendaciones 
respecto al uso de una tecnología u otra. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6SERVICIOS DE DIRECTORIOS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7 
 
1.1 Conceptos básicos 
 
El Protocolo Ligero de Acceso a Directorios (en inglés, Lightweight Directory Access 
Protocol, LDAP) es un conjunto de protocolos abiertos usados para acceder 
información almacenada centralmente a través de la red. Está basado en el estándar 
X.500 para compartir directorios, pero es menos complejo e intensivo en el uso de 
recursos. Por esta razón, a veces se habla de LDAP como "X.500 Lite." El estándar 
X.500 es un directorio que contiene información de forma jerárquica y categorizada 
que puede incluir nombres, directorios y números telefónicos. 
LDAP es un protocolo que se ejecuta en TCP/IP (Protocolo de Control de 
Transmisión/Protocolo de Internet, en inglés, Transmission Control Protocol/Internet 
Protocol). El protocolo LDAP estándar incluye definiciones de protocolo de red de bajo 
nivel y funciones de representación y manejo de datos. Los directorios a los que se 
puede acceder a través de LDAP son conocidos comúnmente como directorios de 
LDAP 
Como X.500, LDAP organiza la información en un modo jerárquico usando directorios. 
Estos directorios pueden almacenar una gran variedad de información y se pueden 
incluso usar de forma similar al Servicio de información de red (NIS), permitiendo que 
cualquiera pueda acceder a su cuenta desde cualquier máquina en la red acreditada 
con LDAP. 
Sin embargo, en la mayoría de los casos, LDAP se usa simplemente como un 
directorio telefónico virtual, permitiendo a los usuarios acceder fácilmente la 
información de contacto de otros usuarios. Pero LDAP va mucho más lejos que un 
directorio telefónico tradicional, ya que es capaz de propagar su consulta a otros 
servidores LDAP por todo el mundo, proporcionando un repositorio de información ad-
hoc global. Sin embargo, en este momento LDAP se usa más dentro de 
organizaciones individuales, como universidades, departamentos del gobierno y 
compañías privadas. 
LDAP es un sistema cliente/servidor. El servidor puede usar una variedad de 
directorios, cada uno optimizado para operaciones de lectura rápidas y en gran 
volumen. Cuando una aplicación cliente LDAP se conecta a un servidor LDAP puede, 
o bien consultar un directorio, o intentar modificarlo. En el evento de una consulta, el 
servidor, puede contestarla localmente o puede dirigir la consulta a un servidor LDAP 
que tenga la respuesta. Si la aplicación cliente está intentando modificar información 
en un directorio LDAP, el servidor verifica que el usuario tiene permiso para efectuar el 
cambio y después añade o actualiza la información. 
Los conceptos básicos de LDAP son: 
Entrada: Una entrada es una unidad en un directorio LDAP. 
Nombre distinguido (Distinguished Name (DN)): Cada entrada se identifica por su 
único Nombre distinguido (DN). 
8 
 
Atributos: Los atributos son piezas de información directamente asociada con la 
entrada. Los atributos asociados con una organización pueden ser su número de fax, 
su dirección, etc. En un directorio LDAP las entradas pueden ser personas, con 
atributos comunes como el número de teléfono y la dirección de e-mail. Algunos 
atributos son obligatorios mientras que otros son opcionales. 
Objectclass: Una definición objectclass determina los atributos que se necesitan y los 
que no para cada entrada. Las definiciones de objectclass se encuentran en varios 
archivos de esquema. 
Nombre Distinguido Relativo (RDN): La afirmación de un atributo y su valor 
correspondiente también se conocen como Nombre Distinguido Relativo (RDN). Un 
RDN solamente es único por entrada mientras que un DN es único globalmente. 
LDIF: El Formato de intercambio de datos de LDAP (LDIF) es una representación de 
texto ASCII de entradas LDAP. Los archivos usados para importar datos a los 
servidores LDAP deben estar en formato LDIF. Una entrada LDIF se ve similar al 
ejemplo siguiente: 
[<id>] dn: <distinguished name> <attrtype>: <attrvalue> <attrtype>: <attrvalue> <attrtype>: <attrvalue> 
Una entrada puede contener tantos pares <attrtype>: <attrvalue> como sean 
necesarios. Una línea en blanco indica el final de una entrada. Todas las parejas 
<attrtype> y <attrvalue>deben estar definidas en el archivo esquema correspondiente 
para usar esta información. 
 
1.1.1 Descripción 
 
Para comprender mejor el concepto, comenzaremos por dar respuesta a la pregunta 
de ¿qué es un servicio de directorios? Los directorios existen en muchas formas a 
través de todos los tipos de tecnologías, desde un mapa de almacenamiento, hasta 
una lista de dispositivos periféricos mantenidos por un sistema operativo. 
Electrónicamente los directorios son usados extensamente en áreas tales como 
sistemas operativos, sistemas de seguridad, sistemas de recursos humanos, correo 
electrónico y aplicaciones. 
El término de servicio de directorios describe la colección de software, hardware y 
procesos que almacenan en un tipo de directorio información para una empresa y sus 
subscritos. El servicio hace que esta información este disponible para los clientes que 
solicitan información. 
Un ejemplo común de un servicio de directorios es el servicio del 040, que provee 
información por medio del teléfono. Un cliente se comunica y solicita al operador que 
le proporcione información, dado un nombre y una dirección, y el operador le regresa 
un número telefónico. 
Las siguientes imágenes muestran más esquemáticamente los servicios de directorios.
Componentes de un servicio de directorio
Un servicio de directorio consiste de al menos una instancia de un servidor de 
directorios y uno o más programas clientes. Esto ha
estén disponibles para cualquier usuario o aplicación. Los servicios de directorios 
incluyen los siguientes componentes:
• Información contenida en el directorio
 
• Software de servidores que soportan(holding) esta información
 
• Software para las acciones de los clientes compartidos entre los usuarios u 
otras entidades que requieran acceder a la informac
 
• Hardware en el cual dichos cli
 
• Soporte al software, tal como sistemas operativos y controlado
dispositivos 
 
• Infraestructura de conexión de redes de cliente a servidores y de servidores a 
cada otro 
 
• Políticas para decidir quién puede acc
 
• Procedimientos por los cuales el servicio de directorio es mantenido y 
monitoreado 
En otros términos, la meta de los servicios de directorios, es tener servicios globales, 
construidos en estándares libres, que permitan a los usuarios y aplicaciones el acceso 
a la información referente a la gente y recursos fácilmente, desde cual
una red. 
as siguientes imágenes muestran más esquemáticamente los servicios de directorios.
 
Componentes de un servicio de directorio 
Un servicio de directorio consiste de al menos una instancia de un servidor de 
programas clientes. Esto hace que los datos de la empresa 
estén disponibles para cualquier usuario o aplicación. Los servicios de directorios 
incluyen los siguientes componentes: 
Información contenida en el directorio 
Software de servidores que soportan(holding) esta información 
oftware para las acciones de los clientes compartidos entre los usuarios u 
otras entidades que requieran acceder a la información 
Hardware en el cual dichos clientes y servidores van a correr 
Soporte al software, tal como sistemas operativos y controlado
Infraestructura de conexión de redes de cliente a servidores y de servidores a 
Políticas para decidir quién puede acceder y actualizar el directorio 
Procedimientos por los cuales el servicio de directorio es mantenido y 
En otros términos, la meta de los servicios de directorios, es tener servicios globales, 
construidos en estándares libres, que permitan a los usuarios y aplicaciones el acceso 
a la información referente a la gente y recursos fácilmente, desde cualquier lugar en 
9 
as siguientes imágenes muestran más esquemáticamentelos servicios de directorios. 
Un servicio de directorio consiste de al menos una instancia de un servidor de 
ce que los datos de la empresa 
estén disponibles para cualquier usuario o aplicación. Los servicios de directorios 
oftware para las acciones de los clientes compartidos entre los usuarios u 
Soporte al software, tal como sistemas operativos y controladores de 
Infraestructura de conexión de redes de cliente a servidores y de servidores a 
Procedimientos por los cuales el servicio de directorio es mantenido y 
En otros términos, la meta de los servicios de directorios, es tener servicios globales, 
construidos en estándares libres, que permitan a los usuarios y aplicaciones el acceso 
quier lugar en 
10 
 
La solución del servicio de directorio también podría incluir formas para limitar el 
acceso a la información, basado en los servicios de solicitud y la fuente en la que ellos 
están tratando de acceder. 
Los sistemas de información también deben ser capaces de mantener una copia de la 
base de datos del directorio en una localización central y en una distribuida (réplica). 
Puntualizar que son y en que nos benefician 
A directory service is a specialized implementation of a database that is designed to 
provide timely and frequent access to special data. 
 
1.1.2 Características de los servicios de directorios 
 
La tabla siguiente muestra un resumen de las cinco principales características de los 
servicios de directorios: 
Característica Descripción 
Escalabilidad Debido a la base estándar común, otro factor 
de escalabilidad es la posibilidad de 
configurar de manera simple hardware y 
software de mayores prestaciones. LDAP no 
se basa en un sistema operativo específico y 
es independiente del proveedor. 
 
Disponibilidad LDAP soporta la réplica y división de 
espacios de nombres. La réplica permite a 
varios servidores LDAP almacenar el 
contenido del mismo directorio. Esto 
permite a los clientes disponer de estos 
servidores adicionales cuando uno presenta 
anomalías. La división permite almacenar 
las secciones de todo el directorio en 
diferentes ubicaciones de servidores 
distintos. Esto no sólo aumenta la 
disponibilidad (ni una sola anomalía) si no 
que simplifica la gestión distribuida. 
Seguridad LDAP soporta características de seguridad que 
impiden el acceso no autorizado a datos. Los 
protocolos de comunicación segura, como SSL 
y procedimientos de autenticación, junto con 
las políticas de listas de control de accesos 
(ACL) para entradas de datos, garantizan el 
máximo nivel de seguridad. 
11 
 
Administración 
 
Las versiones actuales de LDAP, como IBM 
SecureWay Directory, proporcionan una 
interfaz gráfica de usuario tanto para la 
administración de sistemas como para la 
administración de datos de directorio. Su 
esquema ampliable dinámicamente le permite 
ampliar el esquema de directorios sin 
interrumpir el servicio. 
 
Estandarización 
 
El protocolo LDAP --junto con la mayoría de 
prestaciones de cliente/servidor relacionadas, 
las interfaces de programación de aplicaciones 
(API) y las definiciones de datos-- están 
definidos por estándares oficiales o los RFC 
(solicitud de comentarios) correspondientes. 
 
1.1.3 Historia 
 
En 1988, la CCITT (Consultative International Telephonique et Telegraphique, que en 
la actualidad es la ITU-T, International Telecommunications Union -Telecommunication 
Standardization Sector), creó un estándar para servicios de directorio conocidos como 
x.500. Dos años después, el servicio de directorio X.500 se convirtió en el estándar 
ISO 9594 (Data Communications Network Directory, Recommendations X.500-X.521). 
Al conjunto de estándares ISO se le sigue haciendo referencia comúnmente como 
x.500, el cual define un directorio que se puede utilizar universalmente para una gran 
cantidad de datos. 
Para acceder a un directorio X.500, el cliente utiliza Directory Access Protocol (DAP) 
que se definió junto con el estándar X.500. Desafortunadamente, DAP es un protocolo 
complejo que no puede soportarse con facilidad en clientes reducidos, como los 
equipos de escritorio. 
Por lo tanto, X.500 se utiliza en sistemas grandes e implementaciones a gran escala. 
Sin embargo, los requisitos para acceder a directorios centralizados desde clientes 
pequeños, son cada vez más importantes para soportar la obvia rentabilidad de los 
directorios centralizados. 
Los trabajos realizados en la Universidad de Michigan y en Netscape Communications 
Corporation han dado como resultado una versión de DAP simplificada, llamada 
Lightweight Directory Access Protocol (LDAP). LDAP soporta la mayor parte de las 
características de DAP, pero carece de algunas funciones complejas y raramente 
utilizadas. La implementación de LDAP es relativamente simple y puede ser utilizada 
por aplicaciones de sistemas de escritorio. 
12 
 
1.2 Descripción de LDAP 
 
El Protocolo Ligero de Acceso a Directorio (Lightweight Directory Access Protocol -
LDAP) es un estándar, que extiende al Protocolo de Acceso a Directorio (Directory 
Access Protocol - DAP). Esta estandarización permite a los clientes y software de 
servidor de diferentes proveedores trabajar juntos. 
• Los servicios de directorios LDAP son divididos de un estándar más antiguo 
(X.500). 
• LDAP es ligero, lo cual significa que es eficiente, directo y fácil de implementar, 
y a la vez sigue siendo altamente funcional. Los protocolos antiguos tal como 
X.500, DAP, requieren el uso del Protocolo de red Sistema Abierto de 
Interconexión (OSI). 
• LDAP utiliza un conjunto simplificado de métodos codificados y corre 
directamente desde arriba del Protocolo de Control de Transmisión/Protocolo 
de Internet (TCP/IP). Este puede ser usado por la mayor parte de los sistemas 
operativos, porque estos sistemas incluyen TCP/IP con sus sistemas 
operativos, o como algo inherente a ellos. 
• LDAP soporta un conjunto de Interfaces de Aplicación Programada (Application 
Programming Interfaces APIs) para una variedad de lenguajes que soportan el 
desarrollo del directorio, como son las APIs de C, de Java y de Perl (PerLDAP). 
 
1.2.1 Modelo de información 
 
 
El modelo de información LDAP define los tipos de datos y unidades básicas de 
información que se pueden almacenar en un directorio. 
Este modelo define la unidad básica de información en el directorio como una entrada. 
Ésta es una colección de información acerca de un objeto. Esta puede ser un objeto 
real, como una persona, pero esta no requiere un modelo. El repositorio del directorio 
consiste de una o mas entradas en el directorio. Las entradas están estructuradas en 
un árbol jerárquico de información. 
Cada entrada en la base de datos es identificada por un nombre distinguido único 
(DN). El DN es una cadena de representación de la localización de la entrada en el 
árbol del directorio. Pensando en esto como la ruta completa desde la raíz de la 
entrada en la base de datos. Una entrada también puede tener uno o más atributos 
que describen las características de la entrada. Esto es análogo a los archivos que 
pertenecen a un directorio en UNIX. Se puede exportar el repositorio de datos de 
LDAP por un archivo de formato de intercambio de datos de LDAP(LDAP Data 
Interchange Format LDIF), y ser visto con un editor externo de texto. 
13 
 
dn: uid=bjenson, ou=people, cd=Siroe, dc=com 
 
Mientras una entrada es la unidad básica de información en el directorio, la entrada 
está constituida de un elemento fundamental conocido como atributo. Cada atributo 
tiene un tipo y uno o más valores. El tipo describe qué clase de información está 
contenida en un atributo y el valor contiene el dato actual. Los tipos de atributos son 
clasificados principalmente en dos categorías: de usuario y operacionales. Los 
atributos de usuario pueden ser modificados por los usuarios del directorio (con los 
permisos apropiados)y los atributos operacionales son atributos especiales que 
también pueden modificar la operación de un servidor de directorios o reflejan el 
estado operacional del directorio. 
 
Tipo de atributo Valor del atributo 
Dn: uid=sjuarez, ou=people,cd=Colima,dc=com 
Cn: Sara Juarez 
Sn: Juarez 
Telephone number: 312 4678765 
mail saritaj@mail.com 
 
Los directorios de esquemas son colecciones de toda la información requerida y 
atributos requeridos. Estos permiten al diseñador del directorio retener el control y el 
orden del mantenimiento sobre los tipos de información almacenada en el directorio. 
Los esquemas de LDAP son hechos de tipos de atributos, cada uno de los cuales 
tiene una sintaxis y un conjunto de reglas de acoplamiento. Los atributos son usados 
para soportar tipos de datos específicos y son agrupados en unidades lógicas a través 
de la definición de Clases de Objetos (Object Classes). Este es el trabajo de cada 
servidor de directorios, para forzar las restricciones impuestas por los esquemas de las 
cuales cada entrada es creada o modificada. 
En resumen, el modelo de información de LDAP describe entradas, las cuales son lo 
básico para construir bloques en un directorio. Cada entrada es distinguida por un 
único DN. Las entradas son compuestas de atributos, los cuales son compuestos por 
un tipo y uno o más valores. Los atributos pueden tener reglas de integridad que 
limitan el tipo y longitud de los datos en los valores de los atributos. Los directorios de 
esquemas ponen restricciones en los tipos de atributos que deben ser o son 
permitidos para ser contenidos en una entrada. 
 
 
14 
1.2.2 Modelo de nombrado 
 
El modelo de nombrado de LDAP define cómo organizar y referirse a los datos. Este 
modelo describe el tipo de estructuras que se pueden construir fuera de las entradas 
del directorio. Después de haber insertado las entradas en una estructura lógica, el 
modelo de nombrado también indica como referirse a un directorio en particular sin 
una estructura. 
El modelo de nombrado de LDAP especifica que entradas están insertadas en una 
estructura de árbol invertido. La siguiente figura, compara el directorio de árbol LDAP 
con un sistema de archivos de UNIX. Se podrá notar que hay numerosas similitudes, 
pero sin embargo también hay tres diferencias significativas. 
 
En el modelo LDAP, la entrada raíz es conceptual, mejor dicho, que una entrada en la 
cual se pueda vaciar datos. Cada nodo contiene datos y cualquier nodo puede ser 
contenedor. Esto contrasta con un sistema de archivos, donde dado un nodo esta un 
archivo o un directorio, pero no ambos. 
Para expandir este ejemplo, en un directorio, una entrada puede ser ambos, al mismo 
tiempo. La siguiente figura es un segmento de un archivo LDIF, que ilustra lo anterior. 
 
Árbol del directorio Sistema de archivos en Unix 
15 
 
Como se puede ver, las entradas dc=siroe, dc=com, ou=People, y ou=devices 
contienen todos los datos en forma de atributos, pero también puntualiza para el nodo 
hijo debajo de él. 
La ultima diferencia que se puede considerar es que en el modelo de LDAP, los 
nombres están de atrás hacia delante, en orden relativo a los nombres del sistema de 
archivos. Esto es, que los nombres son construidos desde las hojas a la raíz en vez de 
la raíz a la hoja como en el sistema de archivos. Nótese que el DN esta construido de 
la siguiente manera: 
uid=fsmith, ou=people, dc=siroe, dc=com 
Cuando se desea leer un nombre distinguido, se hace de izquierda a derecha, 
moviéndose hacia arriba en la estructura de árbol. 
Como se puede ver, LDAP soporta un árbol de estructura jerárquica de entradas. Sin 
embargo, LDAP no requiere o impone una estructura particular. Como en un sistema 
de archivos, se puede diseñar la estructura de manera libre. También como en un 
sistema de archivos, las buenas prácticas pueden dictar una estructura en vez de otra. 
Para asegurar la interoperabilidad con otro LDAP, se puede necesitar adaptar una 
estructura estandarizada. 
Un modelo de nombrado es importante porque puede dar un nombre único a cualquier 
entrada en el directorio, permitiendo referirse a cualquier entrada sin ambigüedad. 
Para LDAP, las entradas son referidas por su DN. Los DNs son análogos a lo nombres 
de rutas del los sistemas de archivos, como estos un DN es construido de nombres 
individuales desde los ultimos nodos hasta la raíz. Note que los componentes del DN 
están separados por comas. Los espacios después de la coma son opcionales y 
pueden ser usados para mejorar la lectura. 
Para cualquier DN, el componente más a la izquierda es llamado Nombre Distinguido 
Relativo (Relative Distinguished Name -RDN) y este debe ser único entre las entradas. 
Este requerimiento (que sea único) asegura que no habrá dos entradas con el mismo 
DN en el directorio. El intento de insertar entradas con el mismo nombre, resultaría en 
un error. UNIX y otros sistemas de archivos demuestran un comportamiento similar. 
Los RDNs tienen que ser únicos solo si ellos comparten el padre. 
 
16 
 
El ejemplo previo muestra dos RNDs idénticos. Esto es posible porque ellos están en 
diferentes sub-árboles. 
Los RDNs pueden tener más de un valor para un atributo. Por ejemplo cn=Andrew 
Taylor + mail=ataylor@siroe.com, está como un RDN multivaluado. Los RDNs 
multivaluados son utilizados cuando se tienen RDNs que pueden ser idénticos, estos 
deben ser evitados, en lo posible porque pueden desordenar el namespace de LDAP. 
También se pueden encontrar alias en el namespace de LDAP. Los alias son entradas 
que apuntan a otras entradas. Los alias permiten construir una estructura que no es 
estrictamente jerárquica. Los alias pueden ser comparados como ligas simbólicas en 
UNIX o accesos directos en Windows. Los alias son implementados a través de un 
alias de object class con un atributo llamado aliasedObjectName. El valor asignado al 
aliasedObjectName es el DN de la entrada al cual el alias apunta. 
Como los alias pueden apuntar a cualquier entrada, aún a uno en otra máquina, 
pueden imponer un significante bajo desempeño. Cuando encontramos el uso de los 
alias, hay que considerar si las referencias pueden ser ubicables. 
 
1.2.3 Modelo funcional 
 
El modelo funcional de LDAP describe las operaciones que se pueden realizar en el 
directorio usando el protocolo LDAP. El modelo define tres grupos de operaciones: 
1. Operaciones de Interrogación. Las operaciones de interrogación permite a los 
clientes LDAP consultar y obtener datos del directorio. 
a. Consulta: Busca en el directorio entradas y regresa entradas 
individuales del directorio. 
#./ldapsearch –b “dc=siroe;dc=com” “objectclass=*” 
b. Comparación: Revisa si una entrada en particular contiene un valor de 
atributo en particular. El cliente envía una comparación al servidor 
suministrando un DN, un nombre de atributo y un valor. El servidor 
regresa una respuesta afirmativa al cliente si la entrada nombrada por 
el DN contiene el valor del atributo proporcionado. Sino, la respuesta 
regresada es negativa. 
#./ldapsearch –b “ou=people;dc=siroe;dc=com” “givenName=John” 
2. Operaciones de Actualización: Las operaciones de actualización permiten 
manipular los datos en el directorio. 
17 
 
a. Agregar: Crea una nueva entrada en el directorio. Esta tiene dos 
parámetros, el DN de la entrada creada y un conjunto de atributos y 
valores que comprenderán la nueva entrada. 
#./ldapmodify –D “cn=Directory Manager” –w passwd –a 
dn:uid=gfranklin;ou=people;dc=siroe;dc=com 
objectclass:top 
objectclass:person 
givenName:Gina 
uid:gfranklin 
sn:Franklin 
b. Eliminar: Remueve una entrada del directorio.Esta tiene un solo 
parámetro, el DN de la entrada a eliminar. 
#./ldapdelete –D “cn=Directory Manager” –w passwd 
“uid=gfranklin;ou=people;dc=siroe;dc=com” 
c. Modificar: Modifica una entrada en el directorio. Esta puede ser utilizada 
para agregar, eliminar o reemplazar atributos con una entrada. 
#./ldapmodify –D “cn=Directory Manager” –w passwd -f actualiza.ldif 
dónde actualiza.ldif contiene: 
dn:uid=gfranklin;ou=people;dc=siroe;dc=com 
changetype:modify 
add:telephoneNumber 
telephoneNumber:4133456543 
d. Renombrar: O modificar el DN, renombra y mueve entradas en el 
directorio. Esta tiene cuatro parámetros, el DN de la entrada que será 
renombrada, el nuevo RDN para la entrada, y el antiguo RDN que se 
borrará. 
 
3. Operaciones de Autenticación: Hay dos operaciones de autenticación a LDAP y 
un control de operación. 
a. Identificarse (Bind): Utilizado por el cliente para autenticarse en el 
directorio. Esto se realiza proporcionando un DN y un conjunto de 
credenciales. 
b. (Unbind): Utilizado para terminar todas las operaciones mantenidas con 
LDAP y desconectarse. 
c. Abandonar (Abandon): Utilizado cuando el cliente no está interesado en 
los resultados de una operación previamente iniciada. Cuando el 
servidor recibe una petición de “abandonar”, el servidor termina de 
proceso de la operación. 
 
18 
 
1.2.4 Modelo de seguridad 
 
El modelo de seguridad de LDAP proporciona un marco de trabajo para proteger la 
información en el directorio de accesos no autorizados. El modelo de seguridad confía 
en el hecho de que LDAP es un protocolo orientado a conexión. Esto significa que el 
cliente abre una conexión en un servidor LDAP y muestra un número de operaciones 
de protocolo en la misma conexión. El cliente LDAP puede autenticarse en el servidor 
de directorio al mismo punto durante el tiempo de vida de la conexión, en el cual este 
punto puede garantizar privilegios adicionales. 
Desde la perspectiva del cliente, el proceso de autenticación, es proveído por el 
servidor y que el cliente es alguna entidad. El proceso de autenticarse al directorio es 
llamado “identificarse” (binding). Una identidad está ligada a la conexión cuando una 
autenticación sucede exitosamente. Si un cliente no se autentica proporcionando sus 
credenciales, el cliente está ligado anónimamente. En otras palabras, el servidor no 
tiene idea de quién es el cliente, así que garantiza algunas configuraciones de 
privilegios por defecto. Usualmente estas configuraciones de privilegios son mínimas. 
Conociendo la necesidad de soportar diferentes métodos de autenticación, LDAPv3 ha 
adoptado el marco de trabajo (framework) de Autenticación Simple y la Capa de 
Seguridad (Simple Authentication and Security Layer -SASL), el cual proporciona una 
manera estándar para protocolos de múltiple autenticación. Cada tipo de sistema de 
autenticación corresponde a un particular mecanismo de SASL. Un mecanismo SASL 
es un identificador que describe el tipo de protocolo de autenticación que será 
soportado. 
La capa segura de sockets (Secure Sockets Layer - SSL) y la capa segura de 
transporte (Transport Layer Security - TLS), son tecnologías de seguridad que 
encriptan todo el flujo de datos entre un cliente y un servidor. SSL, el más antiguo de 
las dos tecnologías, ha sido una tecnología exitosa en la WWW (World Wide Web), 
asegurando el comercio electrónico y otras transacciones que dependen de la 
transmisión de datos que han sido escondidos de los que se encuentran escuchando 
en la red. TLS, es el que le sigue al SSL y es un estándar emergente de Internet. 
SSL y TLS proporcionan una seguridad efectiva para entidades de comunicación 
sobre redes. Imagine dos compañías trabajando como compañeros de negocios. A 
través de la tecnología TLS, ellos pueden compartir el acceso de manera segura a sus 
respectivos directorios que están en Internet. TLS encripta las consultas y los 
resultados, proporcionando a las compañías la seguridad de que sus datos del 
directorio están protegidos mientras se mueven en Internet. 
SSL y TLS también permiten la mutua autenticación con X.509, basado en 
certificados. Los clientes pueden proveer su identidad a los servidores y en reversa, 
verificar la identidad de los servidores atizando ese certificado digital. 
19 
 
1.3 Herramientas de LDAP 
 
Este capítulo introduce a las herramientas y operaciones que pueden ser utilizadas 
para obtener, modificar y controlar el acceso al directorio de información. 
 
1.3.1 Archivos LDIF 
 
Los servidores de directorios usan el Formato de Intercambio de Datos de LDAP (Data 
Interchange Format - LDIF) para describir un directorio y entradas en los directorios en 
un formato de texto estándar. El LDIF es comúnmente utilizado para construir el 
repositorio de datos inicial del directorio, o para agregar un gran número de entradas al 
directorio de una vez. Además el LDIF es usado para describir cambios en las 
entradas del directorio. Por esta razón, las utilidades del servidor de directorios de 
línea de comandos a menudo utilizan para sus entradas o salidas un LDIF. 
El LDIF descrito en RFC2849: The LDAP Data Interchange Format (LDIF) - Technical 
Specification. 
Un archivo LDIF consiste de uno o más entradas en un directorio separadas por una 
línea en blanco. Cada entrada en un LDIF consiste de: 
Un ID opcional 
Un DN 
Uno o más clases de objetos 
Definiciones múltiples de atributos 
Lo básico de una entrada en un directorio representada en un LDIF es como sigue: 
 
dn: distinguished_name 
objectClass: object_class 
objectClass: object_class 
... 
attribute_type[;subtype]:attribute_value 
attribute_type[;subtype]:attribute_value 
... 
En este ejemplo, una entrada debe comenzar con un DN seguido por un espacio en 
blanco y una cadena, que es el valor del DN. El DN es una cadena que representa el 
nombre de una entrada y su localización dentro del directorio LDAP. 
Típicamente, las definiciones de las clases de objeto (objectclass) aparecerán a 
continuación, aunque no es requerido. Los objectclasses definen el tipo de entrada en 
20 
 
el directorio especificando cuales atributos estarán contenidos en la entrada. Los 
atributos pueden ser requeridos u opcionales dependiendo de la definición en el 
objectclass. 
Los tipos de atributos y sus valores, normalmente siguen a los objectclass en un 
archivo LDIF. Los atributos son usados para soportar la información descriptiva acerca 
de una entrada. Cada atributo también sigue un estándar de sintaxis para el tipo de 
información que puede ser almacenada como el valor del atributo. 
La sintaxis general de un archivo LDIF puede observarse en el siguiente ejemplo: 
 
 
1.3.2 Búsquedas 
 
La operación de consulta de LDAP es usada para localizar y recuperar entradas del 
directorio. Cuando queremos recuperar una entrada o grupo de entradas del directorio, 
se necesita usar una forma de operación de consulta que adhiere la sintaxis definida 
en la especificación de LDAP. 
La sintaxis de consulta no es significante para ser usada amigablemente y es 
normalmente oculta para los usuarios finales, quienes son presentados con una 
interfaz gráfica de usuario (graphical user interface-GUI),que construirá la consulta 
LDAP por ellos. 
La mayoría de los servidores de directorios tienen el comando ldapsearch, utilidad que 
puede ser usada para construir una consulta LDAP. Esta utilidad abre una conexión 
con el servidor, usando el DN específico y contraseña, y localiza entradas basadas en 
un filtro específico de consulta. 
21 
 
El alcance de las consultas puede incluir una sola entrada, una entrada inmediata o un 
árbol o subárbol completo. Los resultados de las consultas pueden ser regresadas en 
formato LDIF. 
Dependiendo del tamaño de la base de datos, el desempeño de las consultas por la 
aplicación cliente puede tomar mucho tiempo y recursos. Se pueden usar índices para 
mejorar el desempeño de las consultas. 
La sintaxis general del comando ldapsearch es: 
ldapsearch options filter attributes 
Dónde: 
• Control de opciones, cómo se mostrará la consulta 
• Filtros que restringen qué es lo que se buscará 
• Especificación de atributos, cuáles atributos deberá regresar 
Algunas opciones más comúnmente utilizadas son: 
Opción Descripción 
-h hostname Especifica el nombre del host del servidor LDAP 
-b searchbase Especifica la base desde donde se iniciará la consulta 
-D bindDN Utiliza el nombre distinguido (DN) para autenticarse 
al directorio 
-w password Especifica la contraseña de autenticación 
-s scope Especifica el nivel de la consulta 
-L Muestra el resultado en formato LDIF 
Especificando una base de la consulta de "ou=people, dc=mycorp, dc=com" 
comenzara la consulta en la rama de people del árbol del directorio. Combinando la 
base con el alcance de la consulta, se permitirá consultar diferentes opciones del 
directorio, por ejemplo: 
#./ldapsearch -h hostname -b "cn=schema" -s base "objectclass=*" 
El scope (-s) base buscará solo en el objeto especificado por el parámetro -b, onelevel 
buscará un nivel abajo del objeto especificado por el parámetro –b y finalmente el 
scope subtree expandirá la consulta para incluir el objeto especificado por el 
parámetro -b y todos los subárboles debajo de él. 
22 
 
Los filtros de consulta seleccionan las entradas que van a ser regresadas para una 
operación de consulta. Cuando se usa ldapsearch se pueden poner múltiples filtros en 
un archivo, con cada filtro en una línea separada en el archivo, o se puede especificar 
un filtro directamente en la línea de comando. Los filtros pueden ser combinados con 
operadores para proporcionar control adicional sobre los resultados de la consulta. 
Algunos de los operadores más usados están listados en la siguiente tabla. 
Operador Descripción 
= Regresa las entradas que contienen el 
valor del atributo que exactamente se 
especificó 
Substring=string* Regresa entradas que contienen atributos 
especificados en la subcadena. El asterisco 
indica cero o más caracteres. 
>= Regresa entradas que contengan atributos 
que sean mayores o igual que el valor 
especificado. 
<= Regresa entradas que contengan atributos 
que sean menores o igual que el valor 
especificado. 
Presence=* Regresa entradas que contengan uno o 
más valores del atributo especificado 
(&(ou=Marketing)(building=a*)) Este filtro regresa todas las entradas que 
se encuentren en la unidad organizacional 
y que su edificio inicie con la letra “a” 
(!(cn=value)) Este filtro regresa todas las entradas que 
no contengan el atributo especificado 
Cuando se consulta por una entrada, se puede especificar atributos que se desea que 
sean regresados como resultado de la consulta. 
 
 
 
 
Opciones de Scope 
Base de la consulta 
23 
 
1.3.3 Actualizaciones 
 
Las utilidades ldapmodify y ldapdelete permiten proporcionar entradas LDIF en el 
directorio para agregar, cambiar y borrar entradas. Estas utilidades leen cualquier 
número de sentencias de actualización de una entrada estándar o de un archivo, y 
modifican las entradas correspondientes de acuerdo a las instrucciones LDIF. 
Una sentencia de actualización contiene el DN de la entrada para la actualización, la 
operación para realizarla, y cualquier dato para los atributos de las entradas. El tipo de 
operación que deberá ser mostrada es específica por la palabra clave chagetype o por 
una opción de línea de comandos. Su sintaxis es la siguiente: 
ldapmodify options input 
Donde: 
• options: Controla como se mostrara la actualización 
• input: Puede ser especificado en la línea de comandos o proporcionando un 
archivo LDIF usando la opción –f. 
 
1.3.4 Control de acceso 
 
El control de acceso permite controlar cuales usuarios o grupos de usuarios tienen 
acceso al directorio, y que permisos tienen sobre los datos del directorio. Aunque el 
control de acceso no es parte del estándar LDAPv3, la mayoría de los servidores de 
directorios comerciales tienen esta funcionalidad. El RFC 2820: Access Control 
Requirements for LDAP describe un modelo de control de acceso para LDAP. 
 
1.3.5 Replicación de datos 
 
Replicación es el mecanismo por el directorio que datos se copian automáticamente 
de servidor de uno directorio a otro. Esta característica hace LDAP atractiva para uso 
como un servicio de nombres. Usa replicación, puede copiar las entradas del directorio 
individual o árboles de directorio completo entre servidores. Además de proporcionar 
alta disponibilidad de datos, se incluyen algunos beneficios adicionales: 
 
• Rendimiento mejorado. Por replicar las entradas del directorio en una ubicación 
cerca de sus usuarios, se puede mejorar considerablemente los tiempos de 
respuesta del directorio. 
24 
• Balanceo de carga. Por replicar el árbol del directorio a través de múltiples 
servidores, se puede reducir la carga de tiempo de acceso en cualquier equipo 
determinado, lo que mejora el tiempo de respuesta del servidor. 
• Gestión de datos locales. La replicación permite poseer los datos localmente y 
compartirlo con otros servidores de directorio en toda su empresa. 
 
Para entender cómo funciona la replicación, primero se debe comprender que los 
servidores LDAP juegan ciertos roles. Cada objeto de directorio debe ser replicado 
por un y sólo un servidor de directorio. El servidor de directorio maestro se denomina 
el servidor proveedor, ya que suministra los objetos a otros servidores. Los servidores 
que reciben los objetos del directorio de servidores proveedor se denominan 
servidores consumidores. 
 
Cualquier servidor de directorio puede ser un proveedor de objetos de directorio, así 
como un consumidor de objetos suministrado desde otros servidores. En futuras 
versiones se admitirán replicación entre varios servidores maestros, que permitirá que 
los datos de directorio sean actualizados por más de un servidor. 
 
Un servidor proveedor o maestro, es responsable de lo siguiente: 
 
• Administrar todas las solicitudes de cambios en los datos de directorio 
replicado. Es decir, cada vez que una solicitud para añadir, eliminar ó cambiar 
que se recibe, la solicitud hace referencia al servidor proveedor, donde 
realmente se realiza la solicitud. 
 
• Seguimiento de los cambios en los objetos del servidor maestro, de modo que 
estos cambios deben replicarse a servidores consumidores ó esclavos. 
 
Los servidores esclavos contienen al menos una entrada de directorio que se ha 
copiado a él por un servidor proveedor. Los servidores consumidores pueden 
contener lo siguiente: 
 
1. El árbol completo del servidor proveedor 
2. Una sub-sección ó sub-árbol del servidor proveedor 
 
 
 
Servidor proveedor Servidor proveedor 
Servidor consumidor Servidor consumidor 
1 2 
25 
 
Sólo las operaciones de lectura se producen en el servidor de consumidores. Todas 
las demás operaciones se tratan en el servidor de proveedor. Cada vez que un cliente 
LDAP intenta modificar las entradas en un árbol replicado, el servidor consumidor hace 
automáticamente referencia al servidor proveedor. Puede elegir qué formade 
sincronización se utiliza para cada acuerdo de replicación. La sincronización de 
replicación puede ser iniciada por el proveedor o el servidor de consumidores. Un 
acuerdo de replicación indica cuáles entradas del directorio se replicarán, los 
servidores que participan en la replicación y cuando se puede producir la replicación. 
Para decidir sobre un método de sincronización, se deben establecer las reglas de 
funcionamiento. 
A continuación se muestran algunos esquemas de replicación que ilustran qué 
ocurriría en caso de falla del servidor primario. 
 
 
Directorio centralizado en un sólo servidor con replicación, respaldos en alguno de los servidores. 
 
 
26 
 
 
Directorio centralizado en un sólo servidor con replicación, respaldos en otro servidor 
 
Directorio centralizado en varios servidores en un solo site, con replicación, respaldos en alguno de los 
servidores 
27 
 
Directorio centralizado en varios servidores a través de una red WAN, con replicación, respaldos en 
alguno de los servidores. 
 
 
Directorio distribuido en varios servidores sin replicación, respaldos en alguno de los servidores 
 
 
28 
 
Directorio distribuido en varios servidores, con replicación, respaldos en alguno de los servidores. 
 
 
Directorio distribuido en varios servidores, con replicación, respaldos en otro servidor 
 
 
Consumidor 
Proveedor 
Consumidor 
Proveedor 
29 
 
 
 
 
 
 
 
BASES DE DATOS 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30 
 
2.1 Conceptos básicos de bases de datos 
 
Con el fin de obtener una idea clara de los conceptos que se manejan en este capítulo, 
primeramente se presentan las definiciones que involucran las bases de datos. 
Dato: Conjunto de caracteres con algún significado, pueden ser numéricos, 
alfabéticos, o alfanuméricos. 
Información: Hechos que pueden ser registrados y tienen un significado implícito. Es 
un conjunto ordenado de datos los cuales son manejados según la necesidad del 
usuario, para que un conjunto de datos pueda ser procesado eficientemente y pueda 
dar lugar a información, primero se debe guardar lógicamente en archivos. 
Base de datos: Una base de datos es una colección o depósito de datos integrados, 
con redundancia controlada y con una estructura que refleje las interrelaciones y 
restricciones existentes en el mundo real, los datos que han de ser compartidos por 
diferentes usuarios y aplicaciones, deben mantenerse independientes de éstas y su 
definición y descripción, únicas para cada tipo de datos, han de estar almacenadas 
junto con los mismos. Los procedimientos de actualización y recuperación, comunes y 
bien determinados, habrán de ser capaces de conservar la integridad, seguridad y 
confidencialidad del conjunto de los datos. 
Sistema Manejador de Base de Datos. (DBMS): Un sistema de administración de 
bases de datos (DBMS database management system) es un sistema cuyo 
objetivo es proporcionar un entorno que sea a la vez conveniente y eficiente 
para ser utilizado al extraer y almacenar información de la base de datos. Se 
compone de la base de datos y de un conjunto de programas para manejarlos. 
El DBMS es responsable de las siguientes tareas: 
 
• Interacción con el gestor de archivos. Los datos sin procesar se almacenan en 
el disco usando el sistema de archivos que normalmente es proporcionado por 
un sistema operativo convencional. El gestor de base de datos traduce las 
distintas sentencias DML a comandos del sistema de archivos de bajo nivel. 
Así, el gestor de base de datos es responsable del almacenamiento, 
recuperación y actualización de los datos en la base de datos. 
 
• Implantación de la integridad. Los valores de los datos que se almacenan en la 
base de datos deben satisfacer ciertos tipos de restricciones de consistencia. 
La persona encargada de la administración de la base de datos debe 
especificar explícitamente estas restricciones, entonces puede determinar se 
las actualizaciones a la base de datos dan como resultado da violación de la 
restricción; si así es, se debe tomar la acción apropiada. 
 
• Implantación de la seguridad. No todos los usuarios de la base de datos 
necesitan tener acceso a todo su contenido. Es trabajo del administrador de la 
base de datos hacer que se cumplan estos requisitos de seguridad. 
 
31 
 
• Copia de seguridad y recuperación. Un sistema de información está sujeto a 
fallos, en los cuales se pierde información referente a la base de datos. Es 
responsabilidad del gestor de la base de datos detectar tales fallos y restaurar 
la base de datos al estado que existía antes de ocurrir el fallo. Esto se lleva a 
cabo normalmente a través de la iniciación de varios procedimientos de copias 
de seguridad y recuperación. 
 
• Control de concurrencia. Cuando varios usuarios actualizan la base de datos 
concurrentemente, es posible que no se conserve la consistencia de los datos. 
Controlar la interacción entre los usuarios concurrentes es otra responsabilidad 
del gestor de la base de datos. 
Esquema de base de datos: Es la estructura por la que está formada la base de 
datos, se especifica por medio de un conjunto de definiciones que se expresa 
mediante un lenguaje especial llamado lenguaje de definición de datos (DDL). El 
resultado de la compilación de las sentencias DDL es un conjunto de tablas las cuales 
se almacenan en un archivo especial llamado diccionario de datos, el cual 
normalmente se esconden a los usuarios. 
Administrador de base de datos (DBA): Es la persona o equipo de personas 
profesionales responsables del control y manejo del sistema de base de datos, 
generalmente tiene(n) experiencia en DBMS, diseño de bases de datos, Sistemas 
operativos, comunicación de datos, hardware y programación. 
Lenguaje de manipulación de datos: (DML data manipulation language) es un 
lenguaje que capacita a los usuarios a acceder o manipular datos según están 
organizados por el modelo de datos adecuado. Una consulta es una sentencia que 
solicita la recuperación de información. La porción de un DML que implica la 
recuperación de información se llama lenguaje ge consultas. Los niveles de 
abstracción se aplican no sólo a la definición o estructuración de datos, también se 
aplican a la manipulación de datos. Por manipulación se entiende: 
 
• La recuperación de información almacenada en la bases de datos 
• La inserción de información nueva en la base de datos 
• La supresión de información de la base de datos 
• La modificación de datos almacenados en la base de datos 
A nivel físico, deben existir algoritmos que permitan acceso eficiente a los datos. En 
los niveles de abstracción más altos, se pone énfasis en la facilidad de uso. El objetivo 
de este lenguaje, es proporcionar una interacción eficiente entre las personas y el 
sistema. 
 
 
2.1.1 Objetivo de los sistemas de bases de datos 
 
 
Los sistemas de base de datos se diseñan para manejar grandes cantidades de 
información, la manipulación de los datos involucra tanto la definición de estructuras 
32 
 
para el almacenamiento de la información como la provisión de mecanismos para la 
manipulación de la información, además un sistema de base de datos debe de tener 
implementados mecanismos de seguridad que garanticen la integridad de la 
información, a pesar de caídas del sistema o intentos de accesos no autorizados. 
 
La importancia de la información en la mayoría de las organizaciones, y por lo tanto el 
valor de la base de datos, ha llevado al desarrollo de una gran cantidad de conceptos 
y técnicas para la gestión eficiente de los datos, que a continuación se describen: 
 
Redundancia e inconsistencia de datos: Puesto que los archivos que mantienen 
almacenada la información son creados por diferentes tipos de programas de 
aplicación existe la posibilidad deque si no se controla detalladamente el 
almacenamiento, se pueda originar un duplicado de información, es decir que la 
misma información sea más de una vez en un dispositivo de almacenamiento. Esto 
aumenta los costos de almacenamiento y acceso a los datos, además de que puede 
originar la inconsistencia de los datos - es decir diversas copias de un mismo dato no 
concuerdan entre sí, por ejemplo: que se actualiza la dirección de un cliente en un 
archivo y que en otros archivos permanezca la anterior. 
Dificultad para tener acceso a los datos: Un sistema de base de datos debe 
contemplar un entorno de datos que le facilite al usuario el manejo de los mismos. 
Supóngase un banco, y que uno de los gerentes necesita averiguar los nombres de 
todos los clientes que viven dentro de cierto código postal de alguna ciudad. El gerente 
pide al departamento de procesamiento de datos que genere la lista correspondiente. 
Puesto que esta situación no fue prevista en el diseño del sistema, no existe ninguna 
aplicación de consulta que permita este tipo de solicitud, esto ocasiona una deficiencia 
del sistema. 
Aislamiento de los datos: Dado que los datos están repartidos en varios archivos, y 
estos no pueden tener diferentes formatos, es difícil escribir nuevos programas de 
aplicación para obtener los datos apropiados. 
Anomalías del acceso concurrente: Para mejorar el funcionamiento global del 
sistema y obtener un tiempo de respuesta más rápido, muchos sistemas permiten que 
múltiples usuarios actualicen los datos simultáneamente. En un entorno así la 
interacción de actualizaciones concurrentes puede dar por resultado datos 
inconsistentes. Para prevenir esta posibilidad debe mantenerse alguna forma de 
supervisión en el sistema. 
Problemas de seguridad: La información de toda empresa es importante, aunque 
unos datos lo son más que otros, por tal motivo se debe considerar el control de 
acceso a los mismos, no todos los usuarios pueden visualizar alguna información, por 
tal motivo para que un sistema de base de datos sea confiable debe mantener un 
grado de seguridad que garantice la autentificación y protección de los datos. En un 
banco por ejemplo, el personal de nóminas sólo necesita ver la parte de la base de 
datos que tiene información acerca de los distintos empleados del banco y no a otro 
tipo de información. 
33 
 
Problemas de integridad: Los valores de datos almacenados en la base de datos 
deben satisfacer cierto tipo de restricciones de consistencia. Estas restricciones se 
hacen cumplir en el sistema añadiendo códigos apropiados en los diversos programas 
de aplicación. 
 
2.2 Antecedentes de las bases de datos relacionales 
 
 
La complejidad de las organizaciones ha demandado eficiencia en la utilización de 
datos y generación de información. Gracias al uso de las computadoras ha sido 
posible manejar enormes cantidades de datos con mayor rapidez y precisión. A la par, 
se han dado cambios en las estructuras de datos empleadas, en las técnicas 
destinadas a la explotación de la información, así como en las interfaces de las 
aplicaciones. 
 
La evolución en el manejo de grandes volúmenes de datos surge a principios de los 
años 60’s con el comité CODASYL (Conference of Data Systems Languages), que 
representaba a fabricantes de computadoreas, agencias gubernamentales, 
organizaciones de usuarios y universidades; este comité preparó el marco de trabajo 
de COBOL (COmmon Business Oriented Language), lenguaje que fue diseñado 
específicamente para el procesamiento de los datos de tipo comercial. La estructura 
de datos predominante fue el archivo. 
 
Los archivos estaban por lo general, diseñados para una aplicación determinada o 
para un grupo de aplicaciones muy similares. Era posible el acceso secuencial y el 
acceso directo a los registros. Con este software se proporcionaban métodos de 
acceso, pero no una administración de datos. 
 
Al surgir la necesidad de aplicaciones más complejas, se observó la necesidad de 
agregar al compilador de COBOL paquetes que facilitaran el ordenamiento y 
clasificación de datos así como la generación de reportes. Surgieron también las 
organizaciones lógicas de alto nivel para los datos, y las aplicaciones comenzaron a 
integrarse para ponerse a disposición de un mayor número de usuarios. En 1971, el 
DBTG (Data Base Task Group), un subgrupo de CODASYL, presentó un documento 
acerca de las bases de datos, en el cual quedaron asentados los principios para el 
desarrollo de lo que serían los DBMS (Data Base Management Systems). 
 
Durante las últimas décadas, las bases de datos han jugado un papel importante en el 
manejo de grandes volúmenes de información, hardware y software (en este caso 
representado por los DBMS), han tenido que evolucionar para poder manipular las 
nuevas estructuras de datos y atender las cada vez más complejas demandas. 
 
Es así como se han representado cronológicamente los diversos modelos de bases de 
datos a través de los años: El Jerárquico, el de Red, el Relacional y el Orientado a 
Objetos. En los dos primeros modelos, se tenía un código de la aplicación totalmente 
34 
 
dependiente a la implementación de las estructuras de datos. El programador debía 
trabajar con ligas físicas tanto en la construcción como en la explotación de datos. 
Esto generó un lento desarrollo y un alto costo en el mantenimiento. Además, se 
tenían grandes limitantes en la modificación de las estructuras. 
 
El modelo relacional prometía resolver estos problemas y proporcionar otros beneficios 
de negocios. 
 
 
2.3 Bases de datos relacionales 
 
 
Una base de datos relacional es una base de datos que cumple con el modelo 
relacional, el cual es el modelo más utilizado en la actualidad para modelar problemas 
reales y administrar datos dinámicamente. Tras ser postuladas sus bases en 1970 por 
Edgar Frank Codd, de los laboratorios IBM en San José (California), no tardó en 
consolidarse como un nuevo paradigma en los modelos de base de datos. 
 
 
2.3.1 Modelo Relacional 
 
 
El Modelo Relacional tuvo origen en las investigaciones del Dr. Edgar F. Codd quien 
publicó en los años 1969 y 1970 sus artículos: ”Derivability, Redundancy, and 
Consistency of Relations stored in Large Data Banks” y “A Relational model of Data for 
Large Shared Data Banks”, colocando un nuevo modelo para las bases de datos en 
una posición firme, robusta, sencilla y bien documentada. El modelo relacional tiene 
sus bases matemáticas en la lógica de predicados de primer orden y la teoría de las 
relaciones. De su idea, surgen los primeros RDBMS (Relational Data Base 
Management Systems) comerciales como System R, DB2(IBM), Informix Dynamic 
Server (Informix), Ingres, Oracle8 (Oracle), Progress y Sybase. 
 
Un modelo de datos es la combinación de al menos tres componentes: 
 
(a) Una colección de tipos de estructuras de datos; 
 
(b) Una colección de operadores o reglas de inferencia, los cuales pueden ser 
aplicados a cualquier instancia válida de los tipos de datos de (a) para 
recuperar, derivar o modificar datos de cualquier parte de la estructura sobre 
cualquier combinación deseada; 
 
(c) Una colección de reglas generales de integridad, las cuales definen (explícita o 
implícitamente) el conjunto de estados consistentes, los cambios de estado de 
la base de datos o ambos. Estas reglas son generadas en el sentido de que se 
aplican a cualquier base de datos usando este modelo. 
35 
 
El modelo relacional es un modelo de datos en este sentido y fue el primero en ser 
definido como tal. En su parte estructural, consta de dominios, relaciones de un grado 
determinado (con tablas como su principal representación conceptual), tuplas, llaves 
candidatas y llaves primarias. 
 
La parte de la manipulación del modelo está dada por los operadores algebraicos que 
permiten transformar las relaciones en nuevas relaciones. 
 
La integridadse define por medio de dos reglas de integridad: Integridad de entidades 
e integridad referencial. 
 
A continuación se presenta la terminología de la teoría relacional: 
 
Una Relación sobre un conjunto de dominios D1, D2, …, Dn (no necesariamente 
distintos), se compone por el subconjunto del producto cartesiano de los dominios: R 
⊆ D1 X D2 X … X Dn y tendrá un grado n. 
La relación se define como único elemento de estructuración y se le asocia un nombre. 
Las relaciones están organizadas como conjuntos de tuplas de la forma <d1, d2, 
…,dn>. Cada dominio tiene un tipo de datos básico asociado. 
 
Tabla es la representación tabular de una relación, está formada por renglones y 
columnas, donde cada columna representa un atributo y los valores de los codominios 
aparecen como entradas (instancias) en la tabla. 
 
El grado de una relación es el número de dominios que forman la tupla de dicha 
relación, incluyendo el caso especial de una relación unaria (donde el número de 
atributos =1). 
 
La cardinalidad es el número de tuplas en la relación. 
 
El Modelo Relacional es una extensión de la teoría matemática de las relaciones para 
adaptarla a los objetivos del procesamiento de datos y se basa en colecciones de 
tablas con propiedades especiales, que permitan representar los distintos tipos de 
asociaciones (1:1, 1:M y M:N) por medio de las técnicas de mapeo. 
 
En la siguiente tabla se pueden observar las equivalencias de términos matemáticos y 
de bases de datos relacionales. 
 
Término matemático Término de Bases de Datos 
Relación R de grado n Tabla-R con n columnas. 
Atributo Columna de la tabla-R. 
Dominio Tipo de dato extendido 
Tupla Renglón de la tabla-R 
36 
 
Cardinalidad de la relación Número de renglones en la tabla-R 
 
 
El Modelo Relacional trata con las tuplas mediante su contenido de información, no por 
medio de identificadores, números, etiquetas o direcciones; se logra así, la 
independencia de las estructuras físicas de las lógicas que se presentaba en los 
modelos anteriores. 
 
El conjunto de operaciones definidas a continuación, fue introducido por Edgar F. 
Codd y se aplican específicamente a las relaciones. El álgebra relacional está formada 
por un conjunto de operadores de alto nivel que operan sobre relaciones. Cada uno de 
estos operadores toma una o dos relaciones como entrada y produce una nueva como 
salida manteniéndose así, la propiedad de cerradura. Codd definió un conjunto de 
ocho operadores de este tipo, divididos en dos grupos: 
 
1. Las operaciones tradicionales de conjuntos. 
 
Unión R1 ∪ R2 
 
Este operador acepta como entradas dos relaciones con los mismos atributos 
en el mismo orden, y produce como resultado todos los atributos y todas las 
tuplas de ambas relaciones. Si existe alguna tupla con la misma información en 
ambas relaciones, en la relación resultado, sólo aparece una vez. 
 
Intersección R1 ∩ R2 
Este operador selecciona de ambas relaciones de entrada, aquellas tuplas que 
tengan la misma información en todos los atributos, generando así la relación 
resultante. 
 
Diferencia R1 – R2 
 
Acepta como entrada dos relaciones que tengan al menos un atributo en 
común, en donde la relación resultante tendrá todas las tuplas de la primera 
relación que no aparezcan en la segunda relación. 
 
Producto Cartesiano R1 X R2 
 
A partir de dos relaciones especificadas, se genera una tercera que contiene 
todas las combinaciones posibles de tuplas, una de cada una de las dos 
relaciones. 
 
2. Las operaciones relacionales especiales. 
 
Proyección Π(d1[,d2,…,dn])R1 
 
37 
 
Este es un operador unario que tiene como entrada una relación y produce 
como resultado sólo aquellos dominios especificados, alternando así, el grado 
de la relación de entrada con respecto a la resultante. El orden en el cual 
aparecen los dominios, es el que se indica cuando se hace la proyección, 
permitiéndose así la permutación de los mismos. 
 
El número máximo de dominios que se puede proyectar, es el grado que tiene 
la relación y como mínimo solo uno. 
 
Selección o Restricción σ(condición)R1 
 
Este es también un operador unario que tiene como entrada una relación y 
produce como resultado los mismos atributos que contiene la relación de 
entrada y las tuplas que sean especificadas, es decir, las que cumplan el 
criterio definido. Se altera así, la cardinalidad de la relación de entrada con 
respecto a la resultante. 
 
Las condiciones de selección de tuplas pueden tener varios grados de 
complejidad y pueden incluir a los operadores booleanos AND, OR y NOT. 
 
Join o Junta R1 θ R2[ θ R3 θ R4 …] 
 
El operador de join acepta como entrada dos o más relaciones, teniendo cada 
una al menos un atributo en común con las otras relaciones, y produce como 
resultado una nueva relación con todos los dominios de las relaciones 
originales, las tuplas se seleccionan con aquellas cuyas instancias en las 
relaciones de entrada cumplen la condición que se indica para hacer la junta. 
Los operadores para indicar las condiciones de join pueden ser: >, <, =, !=, <= 
y >=. Los atributos en común, sólo se muestran una vez. 
 
División R1 : R2 
 
Toma dos relaciones, una binaria y una unaria, y construye una relación 
formada por todos los valores de un dominio de la relación binaria que 
concuerden (en el otro dominio) con todos los valores en la relación unaria. 
El cálculo relacional fue propuesto por Codd en 1971 como alternativa al álgebra. La 
diferencia entre un lenguaje algebráico y un lenguaje predicativo (denominado así por 
el uso del cálculo de predicados para la formulación de consultas), es que en el 
primero hay que especificar qué operadores se tienen que aplicar a las relaciones para 
obtener el resultado, mientras que en el segundo, sólo es preciso indicar cuál es el 
resultado que se quiere obtener, expresándolo mediante el cálculo de predicados de 
primer orden. 
 
Chris J. Date diferencia el álgebra del cálculo de la siguiente manera: “Los lenguajes 
basados en el cálculo relacional son descriptivos, mientras que los algebráicos son 
prescriptivos”. Sin embargo, las distinciones anteriores son sólo superficiales, ya que 
38 
 
es un hecho que el álgebra y el cálculo son lógicamente equivalentes. Para cada 
expresión algebráica hay una equivalente del cálculo, y viceversa. 
 
Codd mostró que el álgebra es al menos tan poderosa como el cálculo. Esto lo hizo 
dando un algoritmo conocido como “El algoritmo de reducción de Codd”, mediante el 
cual, una expresión arbitraria del cálculo podía ser reducida a una expresión del 
álgebra semánticamente equivalente. 
 
Es así como se presenta el modelo relacional, basado en una sencilla y a la vez firme 
teoría matemática que si para muchos representó sólo una forma elegante de 
especificar un nuevo modelo de bases de datos, es sin duda el fundamento de la 
tecnología moderna de ese campo. 
 
Edgar F. Codd recibió el ACM Turing Award en 1981 por su trabajo sobre el modelo 
relacional y con ese motivo presentó un artículo titulado “Relational Database: A 
Practical Foundation for Productivity” donde presenta evidencias para sugerir que la 
solución para atacar el problema de la alta demanda de aplicaciones de cómputo 
contra el atraso de los departamentos de sistemas para satisfacer esa demanda, la 
ofrece la tecnología relacional. 
 
 
2.4 Sistema Manejador de Bases de Datos (SMBD) 
 
Un DBMS consiste de una base de datos y un conjunto de aplicaciones (programas) 
para tener acceso a ellos. Comúnmente, la base de datos contiene información 
interrelacionada y referente a una misma entidad o empresa. 
El objetivo primordial de una DBMS es crear un ambiente en el que sea posible 
almacenary recuperar información en forma eficiente y conveniente. 
Otro modelo que se utiliza Comúnmente para manipular una base de datos es el 
llamado SISTEMA DE PROCESAMIENTO DE ARCHIVOS; que consta de un conjunto 
de programas que permiten el acceso a la base de datos, pero no optimizan los 
métodos utilizados, provocando entre otros los siguientes problemas: 
• Redundancia. Esta se presenta cuando se repiten innecesariamente datos en 
los archivos que conforman la base de datos. Esta redundancia aumenta los 
costes de almacenamiento y acceso y además puede llevar a inconsistencia de 
los datos. 
• Inconsistencia. Ocurre cuando existe información contradictoria o incongruente 
en la base de datos. 
• Dificultad en el acceso a los datos. Debido a que los sistemas de 
procesamiento de archivos generalmente se conforman en distintos tiempos o 
épocas y ocasionalmente por distintos programadores, el formato de la 
39 
 
información no es uniforme y se requiere de establecer métodos de enlace y 
conversión para combinar datos contenidos en distintos archivos. 
 
• Aislamiento de los datos. Se refiere a la dificultad de extender las aplicaciones 
que permitan controlar a la base de datos, como pueden ser, nuevos reportes, 
utilerías y demás debido a la diferencia de formatos en los archivos 
almacenados. 
 
• Anomalías en el acceso concurrente. Ocurre cuando el sistema es multiusuario 
y no se establecen los controles adecuados para sincronizar los procesos que 
afectan a la base de datos. Comúnmente se refiere a la poca o nula efectividad 
de los procedimientos de bloqueo. 
 
• Problemas de seguridad. Se presentan cuando no es posible establecer claves 
de acceso y resguardo en forma uniforme para todo el sistema, facilitando así 
el acceso a intrusos. 
 
• Problemas de integridad. Ocurre cuan no existe a través de todo el sistema 
procedimientos uniformes de validación para los datos. 
 
 
2.4.1 Funcionamiento conceptual de un RDBMS 
 
 
Los sistemas de bases de datos más maduros y utilizados hoy en día son los 
Sistemas de Administración de Bases de Datos Relacionales (RDBMS por sus siglas 
en inglés). Estos sistemas son el núcleo de gran parte de la infraestructura de 
aplicación del mundo incluyendo comercio electrónico, registros médicos, facturación, 
recursos humanos, nómina, administración de relaciones con los clientes y 
administración de la cadena, por nombrar algunos. En esencia, un típico RDBMS tiene 
cinco componentes principales, a manera conceptual, se comenta el funcionamiento 
de éstos, ilustrando un ciclo de vida de una consulta. También sirve como una visión 
general de las secciones restantes del documento. Considere la posibilidad de una 
base de datos, simple pero típica de interacción en un aeropuerto, en el que un agente 
hace clic en un formulario para solicitar la lista de pasajeros para un vuelo. Este botón, 
regresa los resultados en una transacción de sólo-consulta la cual funciona como 
sigue: 
 
1. Una computadora personal de la aerolínea (el "cliente") llama una API 
que a su vez se comunica a través de una red para establecer una 
conexión con el administrador de comunicaciones del cliente de un 
sistema de administración de bases de datos. En algunos casos, esta 
conexión se establece entre el cliente y el servidor de base de datos 
directamente, por ejemplo, mediante el Protocolo de conectividad 
ODBC o JDBC. Esta disposición es denominada sistema de "dos 
niveles" o "cliente-servidor". En otros casos, el cliente puede 
comunicarse con un "servidor de nivel medio" (un servidor web, monitor 
40 
 
de procesamiento de transacciones o similares), que a su vez utiliza un 
protocolo proxy para llevar a cabo la comunicación entre el cliente y el 
sistema de administración de bases de datos. Normalmente a esto se le 
llama un sistema de "tres niveles". En muchos escenarios de basados 
en web, aún existe otro "servidor de aplicaciones" entre el servidor web 
y el sistema de administración de bases de datos, lo que resulta en 
cuatro niveles. Dadas estas diversas, un sistema típico de 
administración de bases de datos debe ser compatible con muchos 
protocolos de conectividad diferentes, utilizados por varios 
controladores de cliente y sistemas intermedios. Sin embargo, la 
responsabilidad del administrador de comunicaciones del cliente del 
RDBMS en todos estos protocolos es aproximadamente el mismo: 
establecer y recordar el estado de conexión para la petición (ya sea un 
cliente o un servidor de middleware), para responder a comandos SQL 
del autor de la petición y a regresar los datos y control de mensajes 
(códigos de resultado, errores, etc.) según corresponda. 
 
2. Al recibir primer comando SQL del cliente, el sistema DBMS debe 
asignar un "hilo" al comando. También debe asegurarse de que los 
datos del flujo y salidas de control están conectados a través del 
administrador de comunicaciones al cliente. La más importante decisión 
que el DBMS tiene que tomar en este momento en el control de 
admisión en lo que respecta a la consulta: Si el sistema debería 
comenzar inmediatamente el procesamiento de la consulta o aplazar la 
ejecución hasta un momento en el que existan suficientes recursos del 
sistema disponibles para procesar la consulta. 
 
3. Una vez admitido y asignado como un hilo de control, la consulta puede 
comenzar a ejecutarse. Esto se realiza, invocando el código en el 
Procesador de Consultas Relacional. Este conjunto de módulos revisa 
que el usuario está autorizado para ejecutar la consulta y compila el 
texto de la consulta SQL del usuario, en un plan de consulta interna. 
Una vez compilado, el plan de consulta resultante se controla mediante 
el ejecutor del plan, el cual consiste en una serie de "operadores" 
(implementaciones de algoritmo relacional) para ejecutar cualquier 
consulta. Los operadores típicos implementan el procesamiento de 
tareas incluyendo uniones, selección, proyección, agregación, 
clasificación, así como las solicitudes de registros de datos de las 
capas inferiores del sistema. 
 
4. En el plan de consulta del agente, uno o varios operadores existen para 
la solicitud de datos de la base de datos. Estos operadores realizan 
llamadas a buscar desde DBMS ‘transaccional Storage Manager (figura 
1.1, la parte inferior), que administra todos los acceso de datos (leer) y 
manipulación de datos (crear, actualizar, eliminar) llamadas. El sistema 
de almacenamiento incluye algoritmos y estructuras de datos para 
organizar y acceso a datos en disco ("métodos de acceso"), incluyendo 
las estructuras básicas como las tablas e índices. También incluye un 
41 
 
módulo de administración de búfer que decide cuándo y qué datos para 
transferir entre búferes de disco y memoria. Volver a nuestro ejemplo, 
en el curso de acceso a los datos en los métodos de acceso, consulta 
del agente de la puerta debe invocar el código de administración de 
transacción para garantizar las propiedades "ACID" conocidas de 
transacciones. Antes de acceder a datos, los bloqueos se adquieran a 
un administrador de bloqueos para garantizar la correcta ejecución de 
las otras consultas simultáneas. Si las actualizaciones a la base de 
datos consulta del agente de la puerta de, sería interactuar con el 
administrador del registro para que la transacción sea duradera si 
cometidos y totalmente anulado si ha anulado. 
 
5. En este punto en la vida de la consulta de ejemplo, se ha comenzado a 
tener acceso a registros de datos y está listo para utilizarlos para 
calcular resultados para el cliente. Para ello, "anulación de la pila" de 
las actividades que hemos descritos hasta este punto. Los métodos de 
acceso de devolución el control a los operadores del ejecutor de la 
consulta, el cual orquestar el cómputo de tuplas del resultado de la base 
de datos; como resultado tuplas se generan, se colocan en un búfer 
para

Continuar navegando