Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MÉXICO
Licenciatura En Informática
Bases de
Datos
Autor: L.I. María de Lourdes Isabel
Ponce Vásquez
El alumno deberá estar familiarizado con los fundamentos básicos del manejo
de archivos, de sistemas de información y de programación.
Objetivos Específicos
Conocer los orígenes de las bases de datos
Definir qué es una base de datos
Definir qué es un sistema administrador de bases de datos
Describir los elementos y funciones u objetivos de los DBMSs
Comprender la necesidad de usar un modelo de datos
1.1. Introducción
Las Bases de Datos (BD) son probablemente el elemento más importante de los sistemas de
información, ya que para tomar decisiones, planificar y realizar muchas otras actividades se requiere
de los datos almacenados en ellas y del manejo eficiente de esos datos. Actualmente se usan
ampliamente en organizaciones de todos tamaños, públicas y privadas, y en la vida cotidiana
tenemos contacto con ellas en casi todas las actividades, ya sea de forma directa o indirecta.
El área de Bases de Datos es actualmente muy extensa y las técnicas usadas en ella tienen un
amplio espectro, incluyendo lenguajes, orientación a objetos y otros paradigmas de programación,
compilación, sistemas operativos, programación concurrente, estructuras de datos, algoritmos,
teoría, sistemas paralelos y distribuidos, interfaces de usuario, sistemas expertos e inteligencia
artificial, técnicas estadísticas y programación dinámica.
Este curso no pretende tocar todos los aspectos mencionados anteriormente, pero sí mostrar las
bases que permiten comprender el panorama general de las BD.
1.2. Historia
Desde el comienzo de la historia de la humanidad, los hombres han registrado datos en algún tipo de
soporte (piedra, madera, papel, etc.) con el fin de dejar constancia de algún fenómeno o idea. Esos
datos deben ser interpretados (incorporándoles un significado) para que se conviertan en información
útil.
A principios de los 40s, se empezaron a usar cintas perforadas para almacenar datos y programas
en las computadoras, cuando se desarrollaron las computadoras electromecánicas y electrónicas. Al
inicio de los 50s, se crearon las cintas magnéticas, usadas como entrada para computadoras,
incluyendo la UNIVAC 1, que fue la primera computadora comercial disponible. Conjuntos de
tarjetas perforadas, cintas perforadas y cintas magnéticas se usaron esencialmente de la misma
forma, para almacenar programas y proporcionar un método de almacenamiento y entrada de datos.
Los datos en estos medios sólo se podían leer en el orden en el que eran almacenados. Este tipo de
procesamiento de archivos secuenciales fue muy eficiente pero no flexible. El procesamiento de
nómina era generalmente la primera aplicación que las organizaciones automatizaban, debido a lo
complejo de sus cálculos y las necesidades de reportes que eran tediosos para llevarse a cabo por
humanos.
Este tipo de procesamiento usaba un archivo maestro que contenía datos relativamente
permanentes, ordenados por una llave, separados en campos que contenían todos los datos
necesarios. Cada cierto período (diario, semanal, mensual, etc.), se preparaba un archivo de
transacciones que contenía los datos nuevos a incluir, modificar o borrar del archivo maestro.
Generalmente, los archivos maestros se mantenían en cintas magnéticas y los archivos de
transacciones en tarjetas perforadas y ambos tenían que estar en el mismo orden. Este tipo de
procesamiento por lotes, se llevaba a cabo por un operador, sin intervención posterior del personal.
Con el tiempo, muchos programadores se dieron cuenta de que gran parte del trabajo que se
realizaba con los archivos era muy similar en casi todos los casos y empezaron a crear herramientas
que hicieran este trabajo de modo más fácil sin tener que hacer un programa para cada archivo y con
ello se crearon los Sistemas de Administración de Archivos o Manejadores de Archivos.
Los Manejadores de Archivos son sistemas de software que facilitaban recursos para la
administración de archivos a un nivel de abstracción superior del ofrecido por los sistemas
operativos, pero con facilidades menores que las ofrecidas por los actuales sistemas de
Administración de Bases de Datos.
Sin embargo, la mayoría no eran capaces de trabajar con varios archivos a la vez. Podían abrir un
número limitado de archivos, pero sólo podían procesar uno en un momento dado, tampoco eran
capaces mantener la seguridad de los datos, ya que cualquiera que tuviese una herramienta que
pudiese abrir los archivos creados, podía modificarlos sin que quedara rastro del usuario que lo
había hecho. Tampoco eran capaces de mantener integridad de los datos ya que generalmente los
datos eran duplicados en múltiples archivos, esto debido principalmente, a que no se podían
compartir fácilmente entre varios usuarios a la vez, el programador tenía que controlar manualmente
el archivo, bloqueando y desbloqueando registros y/o archivos completos. Por otro lado, tampoco
permitían procesar transacciones seguras, era responsabilidad del programador verificar que sus
datos fueran actualizados correctamente en todo momento, por si fuera poco, era muy fácil perder la
información contenida en los archivos al haber algún corte de energía eléctrica.
Sistema
de pedidos
Archivo Archivo
De Archivo De
Clientes De Pedidos
Inventarios
Sistema de Sistema de
Facturación Nómina
Archivo
Archivo
De
De Archivo
Clientes
Precios De
Empleados
Algunas de las desventajas o problemas que se tenían al manejar la información con los sistemas
manejados con archivos son:
Las BD aparecieron a finales de los 60s como una solución a los problemas técnicos y
administrativos, que surgieron con los antiguos sistemas de archivos de computadora. A medida que
aumentaba el volumen de datos, la complejidad de su organización y se extendían a nuevas áreas
de la operación de las empresas, las dificultades para mantener su funcionamiento y el costo bajo
control se acentuaban. Aunque los archivos casi han desaparecido, su comprensión es importante
porque sus características básicas son el origen de algunas limitaciones del manejo de datos, al
comprender las deficiencias de los sistemas de archivos, se comprenden mejor las propiedades
específicas de las BD y se aprovechan mejor. Los primeros modelos de BD fueron los de red y
jerárquicos.
S istem a d e S istem a de
P edido s Clientes In ven tarios P recio s N óm ina
S istem a de
F actu ra ción
Alto costo del DBMS. Los DBMS son sofisticados sistemas cuyo costo es elevado.
Alto costo del hardware. El DBMS requiere memoria adicional y mucho poder de
procesamiento, por lo que se requiere hardware con mucho potencial que puede ser muy
costoso.
Altos costos de programación. Las herramientas del DBMS pueden ser complejas, por lo
que los programadores necesitan conocer el sistema para poder sacarle el mayor provecho.
El personal experimentado puede ser costoso.
Altos costos de conversión. Cuando una organización migra a otro sistema de bases de
datos, los datos deben pasarse de los archivos existentes a la base de datos. Como los
archivos pueden estar en diferentes formatos, esto puede ser difícil y llevar mucho tiempo de
procesamiento. Además las aplicaciones que hacían uso de esos datos y mantenían detalles
de su forma de almacenamiento deben ser modificadas para trabajar con el DBMS, en el
mejor de los casos esto sólo será una modificación, pero si el lenguaje no posee una
adecuada interfaz a la base de datos, se tendrá que reprogramar toda la aplicación.
Procesamiento de algunas aplicaciones más lento. Aunque los sistemas BD están
diseñados para proporcionar más información de modo más fácil que usar simplemente
archivos, algunas aplicaciones son más lentas, ya que los datos no se almacenan de la mejor
forma dependiendo de cada aplicación.
Incremento de vulnerabilidad. Ya que los recursos están centralizados, se incrementa el
riesgo de seguridad. Como las aplicaciones dependen del DBMS, la falla del sistema puede
ocasionar que las operaciones no se puedan realizar. También, los errores de una aplicación
pueden afectar a otras aplicaciones que usan los datos incorrectos creados por la aplicación
incorrecta.
Recuperación más difícil. La recuperación después de una falla de la BD es complicada
porque muchas transacciones pueden haber estado en progreso cuando fallo el sistema.
Como parte de esta recuperación, el sistema debe determinar cuáles transacciones estaban
completas y cuáles en progreso al momento de la falla. Si la BD se daña, se puede recuperar
usando un respaldo. El hecho de que la BD permita a los usuarios hacer actualizaciones
concurrentes complica el proceso de recuperación.
1.3.1. Campos
Los datos pueden representarse mediante números y caracteres, los caracteres se agrupan para
formar campos. Un campo es una unidad de información que consta de varios caracteres, bytes,
palabras o códigos tratados en conjunto y es la unidad de información lógicamente significativa más
pequeña en un archivo.
Los campos se caracterizan por su nombre, tamaño o longitud y su tipo de datos (entero, cadena,
etc.). Los campos a su vez, pueden subdividirse en subcampos; por ejemplo, el campo fecha se
divide en los subcampos día, mes y año.
1.3.2. Registros
Un registro es un conjunto finito, ordenado y heterogéneo de campos relacionados, tratados como
una unidad. Es una colección de información, normalmente relativa a una entidad en particular. Es un
conjunto de campos agrupados bajo la perspectiva de un archivo.
Por ejemplo, un registro puede ser la información de un determinado empleado que contiene los
campos de nombre, dirección, fecha de nacimiento, estudios, salario, etc., el registro es otro
concepto lógico, los registros no necesariamente existen en el archivo en un sentido físico, pero
constituyen una organización lógica de los datos.
Los registros organizados en campos que manejan información significativa para el programador se
denominan registros lógicos, son definidos por el programador y generalmente son de menor o
igual tamaño de un registro físico. En cambio, un registro físico, es una serie de registros contiguos
registrados como una unidad, es la cantidad de datos más pequeña que puede transferirse en una
operación de entrada / salida a través del búfer; su tamaño está definido en el hardware del equipo.
El propósito principal de los registros es agrupar campos lógicamente relacionados para ejecutar
sobre ellos operaciones de entrada /salida.
1.3.3. Archivos
Un archivo (file, fichero) es un conjunto de datos almacenado en memoria secundaria con el fin de
mantener a largo plazo cierta información y/o para vencer las limitaciones de espacio en la memoria
principal. Es una colección de registros lógicamente relacionados que son tratados como una unidad
y que son persistentes. Es la unidad básica de almacenamiento de información a largo plazo,
formada por registros que tienen significado para el usuario. Para su procesamiento, todo el
contenido del archivo o parte de él, se carga en memoria principal.
Para facilitar el procesamiento de los archivos, a estos se les impone una organización específica
llamada estructura de archivo, gracias a ella, se puede almacenar y acceder de forma eficiente la
información almacenada.
Mundo real, o realidad. En este nivel, se habla de la empresa, la organización para la cual se
diseña la BD. La empresa puede ser una corporación, agencia de gobierno, universidad,
banco, escuela, hospital, etc. que existe en el mundo real. Como la organización funciona en
el mundo real, es imposible obtener la información necesaria para las decisiones simplemente
observando la realidad, ya que existen demasiados factores involucrados para poder tomar
todos en cuenta. En vez de esto, se desarrolla un modelo o vista de la realidad en la cual se
representan estas facetas de la empresa que necesita tomarse en cuenta para tomar
decisiones.
La parte del mundo real que se representa en la BD es llamada minimundo o universo de
discurso. Para el minimundo, se empieza a desarrollar un modelo conceptual, que forma el
segundo nivel de discusión. Se identifican las entidades como representaciones de personas,
lugares, eventos, objetos o conceptos acerca de los cuales se recolectan datos. Las
entidades similares se agrupan en conjuntos de entidades. Un modelo conceptual puede
tener muchos conjuntos de entidades. Cada entidad tiene ciertos atributos, los cuales son
características o propiedades para describir la entidad y que la organización considera
importantes. Cada conjunto de entidades puede tener varios atributos para describir a sus
miembros. Algunas entidades tienen interrelaciones o se asocian con otras entidades. El
modelo conceptual representará estas interrelaciones asociando los conjuntos de entidades
de alguna forma. La BD debe diseñarse para ser un modelo adecuado de la organización y
sus operaciones para el minimundo de interés. Cada entidad debe representarse, con sus
atributos y las interrelaciones en las que participa. En el mundo real, los objetos
representados en el modelo conceptual sufren cambios, por lo que el modelo desarrollado
debe permitir no sólo la representación de entidades, atributos e interrelaciones básicas, sino
que debe permitir también hacer cambios que reflejen los cambios de la realidad.
La estructura de la BD, llamada modelo lógico de la BD, es el tercer nivel de discusión. En
este nivel, se habla de metadatos, o datos acerca de los datos. Para cada conjunto de
entidades en el modelo conceptual, se tiene un tipo de registro en el modelo lógico de la BD.
Un tipo de registro tiene varios tipos de elementos de datos, cada uno de los cuales
representa un atributo de una entidad. Un elemento de dato es la unidad nombrada más
pequeña de almacenamiento de datos. Otras palabras algunas veces usadas para los
elementos de datos son campo o atributo. Generalmente, un campo es un conjunto de bytes
adyacentes identificados como la localización física para el atributo, de modo que tienen un
significado más físico que el de atributo. Atributo se refiere generalmente a una
característica de una entidad en el modelo conceptual, pero ya que existe una
Una Base de Datos es una colección de datos interrelacionados, almacenados en conjunto (en
archivos) en un dispositivo de almacenamiento secundario (no volátil), con redundancia controlada
(normalizados); su finalidad es la de servir a una o más aplicaciones y a uno o más usuarios
(compartidos); los datos son independientes de los programas que los usan; su definición
(metadatos) debe almacenarse junto con los datos; se emplean métodos bien determinados para
incluir datos nuevos y modificar o extraer los existentes (SQL), garantizando la seguridad del
conjunto de datos.
El conjunto de datos se conoce comúnmente como base de datos. El DBMS proporciona un alto nivel
de abstracción para acceder a la información, ya que en vez de manipular archivos, registros,
índices, cilindros, sectores, etc., el programa de aplicación se maneja enteramente en términos de
los objetos almacenados en la BD.
La BD no será controlada por ninguno de los grupos encargados de construir aplicaciones, sino por
un grupo o persona que administrará la BD, llamado Administrador de la BD, quien será responsable
de definir, mantener y garantizar la integridad y seguridad de la BD.
Finalmente el DBMS generalmente tendrá una aplicación especial llamada lenguaje de consulta que
permitirá a los usuarios finales interrogar a la BD sin tener que pasar por el analista o programador.
Este esquema elimina los problemas mencionados previamente, sin embargo, el proceso para
obtener todo esto es complejo.
Además de las funciones anteriores, los DBMS suelen incorporar funciones para simplificar las
tareas de mantenimiento que realiza el DBA, entre estas funciones se encuentran las herramientas
para cargar archivos de otras fuentes a la BD, reorganización de la base de datos, generación de
respaldos de seguridad, generadores de reportes y estadísticas.
Usuario final o casual. Es una persona sin conocimientos técnicos sobre bases de datos ni
sobre programación y computación en general. Los objetivos de interfaces para este tipo de
usuario son permitirle obtener la información que busca con un mínimo de entrenamiento
previo y sin mayor esfuerzo. El usuario final puede acceder a la BD a través de las
aplicaciones creadas por los programadores de aplicaciones, o mediante una interfaz
proporcionada por el software del DBMS.
El programador de aplicaciones. Es el encargado de construir sistemas que utilizan el
DBMS. Generalmente su interés no es interactuar directamente con el DBMS, sino escribir
programas en lenguajes de alto nivel que invocan las funciones necesarias (generalmente
con instrucciones SQL) para acceder a la BD. Su tarea principal es empaquetar el conjunto
de funciones del DBMS que los usuarios finales requieren, para que puedan invocarlas
simplemente oprimiendo una tecla.
Administrador de la BD (DBA). Es el usuario que necesita íntima familiaridad con los
mecanismos internos del sistema, uso de recursos, desempeño, requerimientos de seguridad,
etc. Se encargan de implementar la BD en una organización. Tiene todos los privilegios
permitidos por el DBMS y puede asignar o eliminar privilegios a los otros usuarios.
Algunos sistemas proporcionan una única interfaz, llamada generalmente lenguaje de consulta, para
ser usada por todos los tipos de usuarios. El mismo lenguaje puede usarse desde un programa
escrito en un lenguaje de programación como Java, y también proporciona funciones de
administración para usarse por el DBA.
Otros sistemas proporcionan interfaces de estilos muy distintos para distintos tipos de usuarios,
reconociendo especialmente que los usuarios finales necesitan interfaces visuales muy distintas que
las que pueden requerir los otros usuarios.
Éste módulo interactúa directamente con el sistema de archivos proporcionado por el sistema
operativo. Tiene a su cargo el manejo de las estructuras físicas de almacenamiento, administración
de espacio en memoria secundaria y métodos eficientes de acceso y búsqueda. En algunos casos
los diseñadores del DBMS, estimando que el manejo de archivos proporcionado por el SO no es
adecuado a los fines del DBMS, implementan sus propias rutias de acceso a archivos directamente
sobre el hardware.
Ubicado a un nivel de abstracción mayor que el anterior, este módulo proporciona las funciones
básicas que sirven de interfaz entre los datos y los programas de aplicación o consultas de los
usuarios. Permite encontrar registros o verificar que un conjunto de datos cumpla las restricciones
semánticas del diseño.
Este módulo traduce las consultas expresadas en un lenguaje de consulta de alto nivel a una
sucesión de pedidos básicos a nivel de interpretación del administrador de datos. Esta traducción no
es trivial porque, en general, existen muchas estrategias distintas para implementar una consulta de
alto nivel, con costos muy diferentes. El procesador de consultas tiene a su cargo la optimización de
consultas, o sea, tratar de encontrar la implementación más eficiente de una consulta dada.
Cuando el DBMS soporta múltiples procesos accediendo y posiblemente modificando una misma
base de datos en paralelo, es importante garantizar que estos procesos no interfieran entre sí,
manteniendo a la vez el mayor grado de paralelismo posible.
Como se mencionó previamente, los DBMS tienen como una de sus funciones, proporcionar un
diccionario de los datos contenidos en la BD, por lo que muchos vendedores de DBMSs ofrecen
diccionarios de datos o directorios de datos que almacenan la descripción de la BD y sirven en la
creación y procesamiento de la BD.
Unidad 1. Plataforma Teórico Conceptual Página 15
Un Diccionario de Datos (DD) es una base de Datos que contiene Datos acerca de los Datos de la
base de Datos.
El DD almacena las definiciones de todos los elementos (tablas, vistas, índices, procedimientos
almacenados, disparadores, etc.) de los datos en la base de datos y las interrelaciones entre
diversas estructuras de dato. Gracias a esto, la base de datos es autodescriptiva, pues contiene
información que describe su propia estructura.
El DD libre se emplea en las primeras etapas del diseño para recolectar y organizar la información de
la BD. Cada atributo, su origen, nombre, uso, significado, relaciones con otros elementos, formato, e
identidad personas o grupos de personas responsables de ingresarlo, actualizarlo y mantenerlo
correctamente deben ser determinados. El DD proporciona una herramienta efectiva para cumplir
esta tares. El DBA puede empezar desarrollando del DD identificando los atributos, asegurando
acuerdos con los usuarios en la definición de cada uno e ingresando el atributo en el DD. Ya que los
usuarios no son responsables de los datos de otros usuarios, el DBA debe controlar el acceso al
diccionario.
Recolecta y almacena información acerca de los datos en una localización central. Esto
ayuda a administrar obteniendo control sobre los datos como un recurso.
Asegura acuerdos de los usuarios y diseñadores acerca del significado de los atributos. Una
definición exacta de cada atributo debe desarrollarse para almacenar en el DD.
Comunicación con los usuarios. El DD facilita la comunicación, ya que se almacenan
significados exactos. El DD también identifica las personas, departamentos o grupos que
tienen acceso o interés en cada elemento.
Identifica redundancia e inconsistencia en los nombres de los atributos. En el proceso de
identificar y definir atributos, el DBA puede descubrir sinónimos, que son nombres diferentes
para los mismos datos. La BD puede aceptar sinónimos, pero el sistema debe manejarlos. El
DBA puede también descubrir homónimos, que son nombres idénticos para atributos
diferentes. Este no se permite en la BD:
Mantener el rastro de los cambios a la estructura de la BD. Los cambios como la creación de
nuevos atributos y tipos de registros deben guardarse en el DD.
Determinar el impacto de los cambios a la estructura de la BD. Ya que el DD registra cada
elemento, todas sus interrelaciones y todos sus usuarios, el DBA puede ver qué efectos
puede tener un cambio.
No todos los DD proporcionan soporte para todas las funciones y algunos proporcionan funciones
adicionales. Algunos sólo almacenan el esquema, algún control de documentación y algunos DD son
“metasistemas” que controlan el acceso a la BD, generan código de sistema y mantienen
estadísticas del uso de la BD.
Existen enfoques alternativos para visualizar manejar datos a un nivel lógico independientemente de
cualquier estructura física de soporte en que se basen.
Un modelo de datos es una forma de explicar la organización lógica de los datos y las relaciones
entre ellos; es una definición lógica, independiente y abstracta de los objetos, operadores y demás
que en conjunto constituyen la máquina abstracta con la que interactúan los usuarios. Es un conjunto
de conceptos, reglas y convenciones bien definidos que permiten aplicar una serie de abstracciones
a fin de describir y manipular los datos de un cierto mundo real que se desea almacenar en la BD.
El modelo de datos debe poder representar tanto las características estáticas o estructuras de datos
(objetos), como las dinámicas u operaciones (comportamiento) del sistema real que pretende
representar. En consecuencia, un modelo de datos se define por los siguientes componentes:
Los modelos de datos incluyen generalmente un tipo de diagrama y vocabulario específico para
describir la estructura de la BD. La estructura de la base de datos es llamada intensión de la BD, es
relativamente permanente y se describe en el esquema de la BD. El esquema puede cambiar
ocasionalmente si se requieren nuevos datos, a este proceso se le llama evolución del esquema.
Los datos almacenados en la BD en un momento dado son llamados la extensión de la BD,
instancia de la BD o estado de la BD. La extensión cambia cada vez que se agregan, borrar o
modifican datos. La extensión siempre debe tener un estado válido, lo que implica que satisfaga
todas las restricciones especificadas en el esquema. La intensión de la BD es actualmente una
estructura compleja de datos abstractos que formalmente define todas las posibles extensiones.
Tarea.
a. Leer al menos 2 fuentes adicionales sobre los temas vistos en esta unidad y hacer un resumen
de la unidad (máximo 1 cuartilla). No olvidar conclusiones y bibliografía.
b. Explicar cuáles son las diferencias entre el manejo de datos con archivos y con una BD, entre
una BD y un DBMS, entre los datos y metadatos, entre el DML y el DDL.
c. Investigar y explicar cómo funciona un DBMS.