martes, 25 de marzo de 2014

Fundamentos de bases de datos y diseño con MS Access: diseño de relaciones. Parte2

Las tablas y campos de la base de datos no tienen interacción alguna, a no ser que se establezcan las relaciones pertinentes entre las mismas. Según lo explicado en relación al modelo ER, las relaciones han de ser establecidas utilizando los campos clave primarios y los campos clave foráneos o externos, véase artículo  de relaciones. De esta forma es fácil adivinar que un campo clave foráneo denominado "id_catalogo" sito en la tabla "registro" tendrá una relación directa con el campo clave primario "id" de la tabla "catalogo". Teniendo estos aspectos claros, hay que recordar que las relaciones entre tablas de cualquier base de datos están basadas en una consulta SQL. Esto significa que en esencia una relación entre tablas de una base de datos es de hecho una sentencia en lenguaje de consulta SQL. Esta apunte es importante para comprender que aunque MS Access permita representar visualmente las relaciones a través de líneas vinculantes entre tablas, no son más que representaciones subjetivas de lo que realmente articula, de forma poco visible para el usuario, las relaciones en un sistema de bases de datos. Dicho lo cual se procede a explicar los dos métodos más adecuadas para generar las relaciones entre tablas en bases de datos de tipo Access.

Método de asistente para búsqueda
Es el método más sencillo para crear relaciones de forma rápida y sencilla. Se utiliza durante el proceso de creación y edición de las tablas y sus correspondientes campos. Se parte del supuesto en el que todas las tablas y sus campos fueron creados. A partir de este punto se editan uno a uno los campos foráneos de las tablas, concretamente se especifica que el tipo de campo es "asistente para búsqueda". Esta opción hace posible que se genere automáticamente una relación con las características que se establezcan a través de un asistente de búsqueda. Los pasos a seguir son los siguientes:
  • Selección del campo foráneo en la tabla correspondiente en modo "vista diseño"
  • Cambiar el tipo de campo por "asistente para búsqueda"
  • Acto seguido aparecerá una ventana de diálogo con un proceso guiado para establecer la relación la tabla objetivo, con las siguientes preguntas:
  • P1 - ¿Cómo desea que la columna de búsqueda obtenga sus valores? R1.1 - Deseo que la columna de búsqueda busque los valores en la tabla o consulta (Ésta opción permite relacionar la tabla actual con la tabla que se seleccione a continuación) R1.2 - Escribiré los valores que desee (Se utiliza en el caso en el que se tenga una lista de valores fijos e inamovibles que debe ser mostrada en el formulario, sin necesidad de terceras tablas)
  • P2 - ¿Qué tabla o consulta debe proporcionar los valores para la columna de búsqueda? R2 - Seleccionar la tabla correspondiente.
  • P3 - ¿Qué campos contienen los valores que desea incluir en la columna de búsqueda? R3 - Seleccionar sólo los campos principales que identifican adecuadamente el registro de la tabla relacionada. Por ejemplo el campo clave primario, los campos de denominación o titulación y algún campo de control. Si la tabla posee muchos campos y se vuelcan todos, la longitud de la fila sera mayor de lo que la resolución de la pantalla puede soportar. 
  • P4 - ¿Qué orden desea para los elementos del cuadro de lista? R4 - El orden depende de las necesidades del diseño. Es habitual ordenar de acuerdo al campo clave primario o con orden alfabético de denominación.
  • P5 - Ancho de las columnas. R5 - Establecer un ancho determinado aproximado y desmarcar la opción de ocultar la columna clave. En muchos casos es necesario conocer en todo momento cuál es el identificador de los registros de cada tabla, favoreciendo la transparencia de la misma.
  • P6 - ¿Qué columna en la columna de búsqueda contiene el valor que desea guardar o utilizar en la base de datos? R6 - Elegir en todo caso el campo clave primario "id".
  • P7 - ¿Qué etiqueta desea para la columna de búsqueda? R7 - Mantener el valor dado por defecto. 
  • P8 - ¿Desea almacenar varios valores para esta búsqueda? R8 - Cuando la relación es de muchos a muchos es necesario marcar la casilla "Permitir varios valores"
  • Finalizar proceso.

Automáticamente al finalizar el proceso del asistente, se genera una relación con la tabla especificada de la que extraerá la información indicada, generando una lista con todos los registros que pueden ser relacionados. Ésta relación puede ser comprobada desde el "menú herramientas de base de datos -> relaciones -> mostrar todas las relaciones". Por otra parte, el cuadro de propiedades del campo recientemente editado en su pestaña de "búsqueda" contendrá una instrucción similar a la siguiente en el apartado de "Origen de la fila".
  • SELECT [autoridades].[id], [autoridades].[id_tipoautoridad], [autoridades].[denominacion] FROM autoridades ORDER BY [id]; 
Esta sentencia es lenguaje de consulta SQL que puede ser modificado para adaptar la relación y sus características, ordenación y campos recuperados, lo que demuestra la afirmación anteriormente referida. Otro detalle importante es el apartado "Origen de la fila" que indica en todos los casos de dónde toma el campo, el formulario, el informe o la consulta la información, dicho de otra forma, qué tabla proporciona la información. No hay que olvidar este concepto, puesto que más adelante será utilizado de forma extensiva.


Método convencional de herramienta de relaciones
El método convencional no influye directamente en los campos de las tablas con los que existe una relación, obligando en tal caso a configurar posteriormente cada uno de los campos foráneos. Con el método anterior el campo foráneo y la relación quedan resueltas en el acto. Para editar las relaciones se puede acceder desde "menú herramientas de base de datos -> relaciones -> mostrar todas las relaciones". Inicialmente es posible que nos visualice ninguna tabla. En ese caso hacer clic en la opción "mostrar tabla" y cargar todas las que se necesiten para establecer las relaciones. A continuación basta con seleccionar el campo clave primario y arrastrarlo al campo clave foráneo para mostrar un cuadro de diálogo que permite editar la relación; esto es, los campos clave primario y clave foráneo de la tabla1 y de la tabla2 entre las que se establece la relación, el tipo de combinación y la integridad referencial de la misma.

jueves, 20 de marzo de 2014

Ejemplo de edición de tablas y campos en base de datos MS Access

La edición de tablas y campos de una base de datos constituye un paso importante para el desarrollo de la mecánica relaciona del sistema de información. Un referente que puede ejemplificar este proceso descrito anteriormente, puede ser similar al que se muestra en la base de datos biblioteca_v01.accdb disponible para su descarga en el siguiente enlace.

Descargar biblioteca_v01.accdb

La base de datos biblioteca_v01 está compuesta por las tablas catálogo, autoridades, tipo de autoridad, tipo de documento, usuarios, tipo de usuarios, circulación, políticas de préstamo, lugares, editoriales, estados de suscripción y estados de préstamo. Aunque una base de datos de un sistema de gestión de bibliotecas podría albergar un número de tablas cercano al centenar, en este caso se propone una primera aproximación con las tablas principales y esenciales para comprender el desarrollo de bases de datos relacionales. A continuación se describen cada una de las tablas y sus relaciones:
  • Tabla: Registro - registro. La tabla registro permite realizar un recuento de los ejemplares y copias que la biblioteca dispone de un determinado documento. De esta forma es posible determinar que dichos ejemplares poseen una ficha catalográfica determinada, vinculada en la tabla catálogo. Por tanto la tabla registro describe las características del ejemplar concreto y se relaciona directamente con la tabla catálogo, utilizando campos como el código de barras. Por otra parte pueden existir otras relaciones como por ejemplo la tabla estado de conservación, ya que alude a las particularidades específicas de cada ejemplar, así como la relación con la tabla estado prestable que determina si el ejemplar se encuentra en condiciones de ser prestado o no. Por ejemplo en las bibliotecas es posible encontrar ejemplares de monografías con signatura roja, lo cual indica que sólo pueden ser utilizados en la sala de lectura, no siendo en caso alguno prestables.
  • Tabla: Catálogo - catalogo. Contiene la fecha de registro del ejemplar en la biblioteca, su fecha de actualización o modificación, la fecha de baja y la fecha de expurgo, el tipo de documento, códigos de control externo (upc, isbn, issn), campos de las áreas de título, mención de responsabilidad (autoridades), edición, publicación y notas. Las relaciones de la tabla catálogo lo son con respecto al tipo de documento (tipología documental), las menciones de responsabilidad (autoridades), el lugar de publicación (lugar), la editorial responsable de la publicación (editorial). Por otra parte el campo fecharegistro introduce automáticamente la fecha y hora actuales debido a la asignación de la propiedad del campo "valor predeterminado -> funciones de fecha/hora -> ahora()". Otros campos de importancia son los correspondientes a la signatura del documento y los campos de clasificación (Ejemplo que será tratado en próximos artículos). 
  • Tabla: Estados de la catalogación - estadocatalogacion. La tabla de estados de la catalogación tiene como objetivo establecer en qué fase se encuentra la catalogación del documento que fue dado de alta en la biblioteca. Por ejemplo la fase de precatalogación (cuando el documento es dado de alta y registrado de forma inicial), catalogación (cuando el documento se encuentra en proceso de análisis documental no terminado), difusión (cuando el documento fue catalogado y se encuentra disponible para su recuperación en OPAC), pasivo (el documento fue dado de baja, formando parte del fondo bibliográfico pasivo de la biblioteca) y expurgo (el documento ha sido eliminado, pero el registro de la base de datos se mantiene para dar testimonio de su paso por la biblioteca). 
  • Tabla: Autoridades - autoridades. La tabla de autoridades tiene que asegurar la descripción de diversos tipos de autoridades, ya sean personales, corporativas, institucionales, familias, etc. En este sentido la tabla de autoridades debe contener campos de descripción adaptados para cada caso. Por ello es necesario ser conscientes de que por ejemplo el campo "denominación" puede contener la denominación de una empresa o institución o contener el nombre completo del autor de un libro descrito en el catálogo. Esta ambivalencia hace posible una reducción en el número de tablas y una simplificación del proceso de asignación de autoridades en el registro del catálogo. De otro modo, sería necesario crear tantas tablas como tipos de autoridades, conllevando una difícil gestión y normalización del corpus de autoridades global. La tabla de autoridades está vinculada con la tabla catálogo para proporcionar las autoridades que conforman la mención de responsabilidad de los documentos registrados. La relación con el tipo de autoridad es clave para identificar la naturaleza o género de la autoridad. Por otro lado, pueden existir relaciones con tablas secundarias como por ejemplo la tabla "lugar" para indicar la localización de la autoridad. 
  • Tabla: Tipo de autoridades - tipoautoridad. Tabla auxiliar relacionada con la tabla principal autoridades. Permite identificar los tipos de autoridad personal, corporativa, familias, congresos, series, entre otros. 
  • Tabla: Tipo de documento - tipodocumento. Tabla auxiliar relacionada con la tabla principal catálogo. Permite identificar los tipos de documentos o géneros posibles que se registran y analizan durante el proceso de catalogación.
  • Tabla: Usuarios de la biblioteca - usuarios. La tabla usuarios debe contener campos para la descripción de los usuarios de la biblioteca. Esto es la identificación del tipo de usuario, nombre completo del usuario, correo electrónico y contraseña de acceso del mismo, estado de la suscripción del usuario (tramitación, usuario activo, usuario baja), dirección completa, números o códigos de identificación personal, teléfonos y medios de contacto, anotaciones, etc. Otros posibles campos no introducidos en el ejemplo y de relevancia son el contador de retrasos, campos de penalización o fecha de penalización por retraso en la devolución de los documentos. La tabla usuarios consta de relaciones con la tabla circulación (para definir los documentos prestados al usuario) y la tabla tipo de usuario (define la tipificación de usuarios).
  • Tabla: Tipos de usuario - tipousuario. La tabla tipos de usuario está relacionada con la tabla principal usuarios en la que identifica la naturaleza, género o tipificación del mismo. Por ejemplo alumnos, profesores, investigadores, personal de administración y servicios, etc. También existe relación con la tabla circulación y políticas de préstamo, dado que es necesario especificar el tipo de usuario al que se prestan determinados tipos de documentos, que vinculan directamente las políticas de préstamo de la biblioteca.
  • Tabla: Circulación y préstamo - circulacion. La tabla circulación tiene como objetivo registrar el tipo de usuario, el usuario (Identificador del usuario), el tipo de documento y el documento que se presta (Esto es el identificador de la tabla registros y catálogo correspondiente a la ficha catalográfica del documento) o devuelve en la biblioteca. Cada transacción debe ser registrada con sus fechas de préstamo y devolución así como el estado del préstamo (que puede adoptar valores prestado, devuelto, retrasado). La tabla de circulación por tanto está relacionada con las tablas de usuarios, registro, catálogo, tipo de usuario, tipo de documento y política de préstamo.
  • Tabla: Políticas de préstamo - politicasprestamo. La tabla políticas de préstamo describe para cada tipo de usuario y tipo de documento una duración de préstamo determinada y un determinado número de documentos. De esta forma cuando el usuario es identificado por su tipología así como por el documento que le será prestado, se identifica una política de préstamo que determina las condiciones de la transacción.
  • Tabla: Lugares - lugar. La tabla de lugares, define las localizaciones o lugares que corresponden a la publicación de un documento en la tabla catálogo o al lugar de procedencia de una autoridad. Se trata de una tabla de tipo auxiliar que actúa en diversas tablas principales con las que se relaciona. Debe contener todos los campos que permitan una definición o descripción completa de una localización.
  • Tabla: Editoriales - editorial. La tabla editoriales si bien puede ser sustituida por la tabla autoridades, al ser considerada una autoridad más en los tipos ya enunciados, se ha considerado aparte en el presente ejemplo, por corresponder a un área de descripción distinta. (Ello no significa que no se emplee una tabla autoridades para englobarla también, ya que resulta perfectamente válido). La tabla editoriales está vinculada directamente con la tabla catálogo de la biblioteca, identificando la entidad encargada de la publicación del documento.
  • Tabla: Estados de suscripción del usuario de la biblioteca - estadosuscripcion. La tabla estados de la suscripción del usuario, define en qué estado se encuentra el carné del usuario para acceder a los servicios de la biblioteca, especialmente al préstamo de documentos. La suscripción puede estar siendo tramitada, ha podido ser dada de alta y por lo tanto el usuario se encuentra activo o ha podido ser dado de baja, por lo tanto el usuario no puede acceder al préstamo. 
  • Tabla: Estados del préstamo en circulación - estadoprestamo. La tabla de estados del préstamo en circulación viene a definir que una transacción determinada se encuentra en activo, ha sido cerrada o por el contrario se ha retrasado. De esta forma es posible comprobar qué usuarios no han devuelto los documentos o cuántos documentos se encuentran prestados o bien realizar un informe de los documentos prestados durante un periodo cronológico en la biblioteca. Por ello la tabla auxiliar de estados de préstamo está directamente vinculada con la tabla circulación.
  • Tabla: Estados de la catalogación - estadocatalogacion. La tabla estados de la catalogación define el proceso de análisis documental en el que se encuentra el documento que está siendo registrado en la biblioteca. Algunos de los posibles estados pueden ser precatalogación, catalogación, difusión, pasivo o expurgo. Cómo puede observarse algunos no se consideran estados de análisis documental propiamente dichos e identifican especialmente la fase de la cadena documental.
  • Tabla: Estado prestable - estadoprestable. La tabla estado prestable tiene como objetivo definir si un ejemplar individual puede ser prestado o no en la biblioteca. La tabla auxiliar se relaciona directamente con la tabla principal registros.

Esquema relacional de la base de datos biblioteca_v01.accdb

martes, 11 de marzo de 2014

Fundamentos de bases de datos y diseño con MS Access: tablas y campos. Parte1

La base de datos Microsoft Access proporciona un entorno de aprendizaje excelente para poner en práctica todos los conceptos descritos anteriormente. Esto es la creación de las tablas y campos (entidades y atributos) que se han definido en el plan de automatización de bases de datos. Este primer paso supone la representación de todos los aspectos descriptivos y metadatos que definen los registros e informaciones que se almacenarán en el sistema. Mientras se crean las tablas y se preparan los campos de descripción es muy posible que el documentalista advierta aspectos que originalmente no fueron tenidos en cuenta. Tales consideraciones son de importancia y deben ser introducidas en el diseño final, así como en un registro de cambios y modificaciones que debe adjuntar el proyecto.

Crear tablas
Las tablas son estructuras de una base de datos, capaces de guardar registros, filas, ítems o elementos con características comunes que hacen que sean susceptibles de ser agrupados, listados y representados bajo una misma designación o denominación. Las tablas o entidades permiten por ejemplo almacenar un conjunto de documentos y material bibliográfico bajo la denominación "catálogo", un conjunto de bienes de consumo bajo la denominación "productos", una lista de comprobantes de venta con la denominación "facturación", un conjunto de alumnos, profesores e investigadores, bajo el título de "usuarios", una lista de fabricantes con el nombre de "proveedores" y así sucesivamente, según el caso del sistema de información que se desea desarrollar. Por tanto es de vital importancia concebir nombres lo suficientemente representativos del conjunto de elementos que van a englobar. Por ello siempre que se piensa en tablas es necesario pensar en los contenidos y registros que esta estructura albergará. Con todas las cautelas y la documentación previa, correspondiente a la planificación del sistema de base de datos, la creación de tablas se realiza siguiendo los siguientes pasos:
  • Crear base de datos en blanco
  • Menú superior -> Crear -> Tabla -> Guardar -> Guardar como -> titular tabla (asignar el nombre de la tabla)
En este estado, la tabla se crea automáticamente, sin registros (vacía) y con un campo por defecto, el campo clave primario "Id". Se advierte que la denominación del campo es incorrecta, puesto que contiene la letra "I" mayúscula, aspecto que se deberá modificar en la fase de edición de campos por una letra "i" minúscula. A continuación se deberán crear todas las tablas que se requieran para el proyecto siguiendo el mismo procedimiento anteriormente especificado.


Editar campos
Los campos de las tablas, también denominados atributos, constituyen la estructura interna de la tabla. Permiten describir y guardar diversos datos, aspectos o informaciones sobre el elemento, objeto o registro que se pretende describir y guardar en dicha tabla. Es correcto entender que los campos de una tabla son metadatos si nos atenemos a la significación del concepto, lo cual indica que los campos tienen la misión de fijar la información real y fidedigna del objeto de la descripción. En resumen podría sintetizarse como datos sobre datos. Si bien en el capítulo anterior se especificaban los tipos de campos según sus datos, también cabe una clasificación funcional de los campos que identifica su tipología según su motivación, orientación y objetivos principales, estos son:
  • Campos de control. Campos especializados en el control de los registros y filas de la tabla. Se utilizan para controlar los registros con numeraciones y códigos distintos al método autonumérico exclusivo del campo clave primario. Algunos ejemplos de campos de control pueden ser:
    • Campo numérico de control. Suele ser un campo numérico de tipo entero, no necesariamente autonumérico que tiene como objetivo registrar códigos de producción, números de serie, lotes, y stocks. Por ejemplo es muy habitual que en las tablas convivan dos campos de control, a saber el campo "id" principal (no visible para el usuario de la BD) y un campo de control (Visible para el usuario) con un valor numérico no necesariamente coincidente con la cifra del campo de identificación "id". Obsérvese que el campo autonumérico "id" asigna automáticamente los valores numéricos correlativos para cada registro que se ingresa en la tabla, sin permitir ningún tipo de modificación en el valor asignado. Ello significa que a todos los efectos la numeración es inamovible. En esos casos, cuando se elimina un registro de la tabla la numeración correlativa deja entrever que falta un registro. Pero si se desea modificar en algún momento la numeración de los registros el campo numérico de control, permite precisamente hacerlo. Por ello suele utilizarse de manera combinada con el campo "id", permitiendo un doble control de los registros de la tabla.
    • Campo de identificación unívoca. Campo alfanumérico cuyo objetivo es registrar un código único para un objeto, elemento o ítem, de forma tal que pueda ser recuperado por coincidencia  o correspondencia exacta. Por ejemplo el ISBN, ISSN, NIPO, depósito legal, DOI, URI, permalink, códigos normalizados, número de referencia.
  • Campos de identificación. Corresponde a los campos especializados en la identificación básica del objeto o elemento sujeto a descripción. La información alojada en los campos de identificación permiten describir de forma clara y precisa los rasgos denotativos y característicos del registro de la tabla. Esto significa que es identificable o distinguible del resto de elementos o registros de la tabla. Lo constituyen campos principales comunes a la mayor parte de las tablas en cualquier sistema de información; por ejemplo el campo "título", "subtítulo", "autor", "responsable", "coautor", "fecha de publicación", "fecha", "año", "origen", "procedencia".
    • Campos de titulación o denominación. Habitualmente para cualquier tipo de elemento u objeto sujeto a descripción se requiere algún tipo de titulación o denominación básica que lo identifique preferentemente. Lo constituyen campos como "título", "subtítulo", "denominación", "titular", "nombre".
    • Campos de autoridad principales. Identifican personas, lugares, temáticas, entidades, organizaciones, familias, congresos, reuniones, etc. Por ejemplo algunos campos utilizados para dicha finalidad son "nombre", "apellidos", "nombre completo", "nombre principal", "nombre secundario", "denominación", "entidad(cf)", "persona(cf)", "editorial(cf)", "familia(cf)"
    • Campos de datación cronológica. Identifican fechas o momentos históricos. Algunos campos de esta categoría son "fecha", "hora", "fecha y hora", "fecha de registro", "fecha de modificación", "fecha de recepción", "fecha de actualización", "fecha de revisión", "fecha de aprobación", "fecha de publicación", "hito cronológico(cf)", "data crónica", "hito histórico(cf)"
    • Campos de datación tópica. Identificación de la localización del objeto, elemento, ítem sujeto a descripción. Esto es el lugar en el que se encuentra ubicado, su localización o localizaciones, pudiendo ser o no exactas. Por ejemplo en el ámbito bibliográfico la localización topográfica de un libro a través de su signatura, o la localización topográfica según la codificación del edificio, sala, estantería, balda e incluso carpeta. Pero fuera de la biblioteca o el archivo, las localizaciones pueden ser direcciones completas, lugares concretos y códigos de posicionamiento como es el caso de la información de las bases de datos geográficas. 
    • Campos de origen y destino. Identifican la procedencia del objeto o elemento sujeto a descripción así como su destino. Son campos de especial importancia en el tratamiento documental, la tramitación de documentos y en el diseño de los flujos de trabajo en una organización o centro de información. Por ejemplo el campo "origen(cf)" puede aludir a un sujeto productor, una entidad o departamento que o bien creó el documento, lo modificó, transformó o adiciona nueva información. Cuando el documento quedó completado en dicha fase, se destinó al siguiente departamento, entidad o persona para continuar con su procedimiento y tramitación, quedando identificado el "destinarario(cf)" y el "remitente(cf)". 
    • Campos de tipificación. Son aquellos campos que a partir de una clasificación predeterminada, permiten tipificar un elemento u objeto sujeto a descripción, aportando una información o rasgo  clave que lo identifica. Si bien los campos de tipificación también podrían considerarse de descripción, dada su naturaleza de campos foráneos que almacenan los valores numéricos de los campos claves de otras tablas. Por ejemplo los siguientes campos formarían parte de esta categoría "tipo de documento(cf)", "tipo de formato(cf)", "tipo de soporte(cf)", "tipo de encuadernación(cf)", "tipo de objeto(cf)", "tipo de producto(cf)", "estado de préstamo(cf)", "estado de conservación(cf)", "estado de análisis(cf)", "tipo de adquisición(cf)", "forma de pago(cf)", "estado de tramitación(cf)", "estado de fabricación(cf)", "estado del envío(cf)", "estado del usuario(cf)", "tipo de usuario(cf)", "tipo de acceso(cf)", "género forma(cf)", "tipo de cámara(cf)", "tipo de encuadre(cf)", "tipo de objetivo(cf)", "tipo de plano(cf)"
  • Campos de descripción. Son los campos que, más allá de ofrecer una primera identificación, permiten reflejar todos los aspectos y características del registro, documento, objeto, elemento o ítem sujeto al análisis. Esto significa que los campos de descripción deben permitir realizar un retrato completo de la naturaleza, forma, contenido, orientación, destinatarios, productores, responsables, autoridades y relaciones del documento que esta siendo analizado, de una persona que está siendo registrada, de un proceso que se está describiendo, de una pieza de un taller mecánico, de un repuesto de una aeronave, de una obra de arte pictórica, de un objeto manufacturado, del análisis químico y biológico de la composición del agua de un embalse o una reserva acuífera, de una denuncia de un ciudadano, etc. Cada caso tiene sus particularidades de descripción que conviene determinar inicialmente para ofrecer un grado de exhaustividad en el análisis de los registros, que variará según los objetivos del pliego de especificaciones del proyecto. Por ejemplo la descripción de un libro puede realizarse con unos pocos campos basados en las normas ISBD. Pero si se utilizasen todos los campos, supuestos y excepciones posibles de las normas MARC21, probablemente existirían más de 200 campos de descripción que en muchos casos sobrepasaría las necesidades de descripción reales. Por ello resulta importante adecuar las necesidades y realidades al grado de exhaustividad referido anteriormente. Un ejemplo de campos de descripción bibliográfica podrían ser "edición", "mención de edición", "serie", "colección", "número de serie", "clasificación por tesauro", "clasificación decimal", "etiquetas de clasificación", "categorías temáticas", "encabezamientos de materia", "descripción física", "ilustraciones", "otras partes", "indización", "palabras clave", "resumen", "índice", "sumario", "relación con otros documentos", "forma parte de", "enlaces relacionados", "bibliografía relacionada", "citas", "referencias", etc.
    • Campos de descripción contextual. Campos destinados a describir las circunstancias y características que rodean al objeto sujeto a descripción. Por ejemplo el contexto visual, histórico, denotativo, connotativo, el entorno de aplicación, su objetivo, elementos y objetos similares o parecidos. 
    • Campos de descripción del contenido. Se centran en la descripción de la información que porta el objeto, documento o elemento sujeto a descripción. Esto implica sus propiedades intrínsecas registradas o grabadas en él. En el caso de una estela de piedra, las inscripciones pueden ser transcritas, traducidas y relatadas. Un documento monográfico puede ser descrito a partir de su clasificación, propiedades físicas, estructura y organización.
      • Campos de descripción física.
      • Campos de descripción temática
      • Campos de descripción científica
  • Campos de almacenamiento. Constituyen campos dedicados al almacenamiento de los documentos digitalizados ya sea a través de campos de tipo binario, de memoria, comprimidos o campos hipertextuales que contienen la URL o enlace al documento primario o secundario objetivo. 
    • Campo de almacenamiento hipertextual. Campos especializados en el almacenamiento de enlaces que vinculan un recurso electrónico/digital accesible en un servidor local o remoto.
    • Campo de almacenamiento a texto completo. Campos orientados al alojamiento de textos completos de documentos.
    • Campo de almacenamiento embebido. Campos especializados en la compresión y conversión binaria de los archivos de texto, ofimáticos e imágenes para ser embebidos en el sistema. El documento objetivo no se aloja en un servidor local o remoto, sino en la propia base de datos, lastrando su rendimiento.
  • Campos de seguridad. Si bien son campos de tipo texto sin mayor inconveniente o misterio, un campo de seguridad se distingue por el tipo de información contenida. Son campos creados con una longitud de caracteres limitada o específica para alojar información encriptada, ofuscada o modificada con el objetivo de proteger datos sensibles y no comprometer la seguridad del resto de la base de datos o evitar la vulneración de los derechos de privacidad de las personas. 
    • Campos de nombres de usuarios y contraseñas. Son campos destinados al almacenamiento de nombres de usuario, correos electrónicos, nicks y contraseñas. Por ello se debe procesar la información codificada a fin de evitar o retrasar el proceso de ingeniería inversa o desofuscación de la protección de la información.
    • Campos basura. Se considera campo basura a un campo que almacena toda la información sensible de los usuarios en un campo único, lo que significa que el propio campo articula mecanismos de estructuración de la información internos y una encriptación externa añadida.
    • Campos de comunicaciones. Son campos destinados al almacenamiento de los comentarios de los usuarios en un sistema de información. Por ejemplo las conversaciones privadas de los usuarios de una red social, los comentarios privados, los correos internos, que son almacenados en campos que requieren medidas de encriptación y privacidad de los contenidos.
Teniendo en cuenta la clasificación de los campos de las tablas, para crear los campos en Ms Access, es necesario seleccionar en primer lugar la tabla objeto de la edición -> Hacer clic en el icono Ver Vista Diseño -> Editar la columna nombre del campo añadiendo los campos definidos -> añadir el tipo de datos -> añadir la descripción del campo con la información que contendrá o la finalidad del mismo. Se observará que cada campo posee propiedades específicas a continuación se resumen las más importantes:
  • Tamaño del campo. Extensión del campo expresada en número de caracteres.
  • Formato. Forma que tiene el valor que se almacena en el campo. Se trata de un filtro que define un aspecto o manera de representar la información. Por ejemplo formato moneda, fecha, temperatura, etc.
  • Máscara de entrada. En caso de que el formato no represente adecuadamente la información, es posible diseñar una plantilla o filtro para dar forma a un código, fecha o dato concreto. Por ejemplo podría diseñarse un código de control interno alfanumérico como "123456-ADF-GX" que requeriría una plantilla similar a "000000-LLL-LL". Obsérvese que MsAccess tiene sus propias expresiones regulares para crear los filtros o plantillas
  • Título. Es la denominación que tomará el campo de la tabla cuando se represente en un formulario o pantalla de interacción.
  • Valor predeterminado. Es el valor por defecto que puede tomar siempre el campo cuando se crea un registro.
  • Requerido. Puede ser necesario determinar que el campo es obligatorio.
  • Permitir longitud cero. Significa que si el campo no es relleno la extensión que ocupará en memoria es de 0.
  • Indexado. Permite determinar que el campo se indexe para posibilitar la recuperación de la información guardada en él.

Consideraciones en la edición de tablas y campos 
Algunos aspectos notables del desarrollo de tablas en bases de datos es el empleo de unas normas de denominación del nombre de la tabla que determinen una normalización efectiva: 
  1. Los nombres de las tablas y campos estarán escritos en minúsculas siempre. 
  2. Se recomienda no utilizar espacios ni palabras compuestas. 
  3. En caso de utilizar espacios entre dos palabras, se deberán sustituir por guión medio (-) o guión bajo (_). 
  4. No se pueden emplear caracteres especiales o extraños como por ejemplo signos de puntuación, acentos, comas, puntos, almohadillas, interrogantes, exclamaciones, arrobas, etc. 
  5. Utilizar nombres simples en vez de complejos y demasiado largos.
  6. Utilizar nombres fáciles de recordar. 
  7. Aunque los nombres pueden ser escritos en español, cada vez es más recomendable escribir en inglés las denominaciones tanto de las tablas, como de los campos, así como de cualquier otra estructura de la base de datos, ya que facilita la interoperabilidad entre BD y es el idioma universal en cuanto a terminología informática, por lo que ciertas denominaciones tienen un lenguaje muy específico único en lengua inglesa.

lunes, 10 de marzo de 2014

Relaciones con campos claves foráneos

Las interrelaciones entre tablas son creadas a través de los campos claves foráneos que permiten almacenar el "id" de las tablas auxiliares. Pero qué sucede cuando se necesita almacenar más de 1 dato o valor de otra tabla. Es el caso de las autoridades que figuran en la catalogación de un documento, o de las funciones que desempeña una autoridad personal. En tales casos existen dos soluciones plausibles, que pueden observarse en la figura1. 

Figura1. Soluciones de interrelación con campos claves foráneos

La solución básica, implica la creación de tantos campos como valores sean necesarios almacenar de una misma tabla. Por ejemplo: id_autor1, id_autor2, id_autor3 son campos foráneos que almacenan distintos valores "id" de los autores obtenidos de la tabla "autoridades". Los campos clave foráneos son de tipo numérico.

La solución óptima implica almacenar en un campo único todos los valores de la tabla auxiliar. Por ejemplo, el campo "id_autoridades" guardará los identificadores de los distintos autores, searados por comas, o cualquier otro carácter separador ( | # @ ; : - ) entre otras muchas posibilidades. El campo clave foráneo en este caso no es de tipo numérico sino de tipo texto, ya que almacena números de identificación y caracteres separadores.

La solución básica permite la integridad referencial entre el campo foráneo de la tabla principal y el campo clave primario de la tabla auxiliar relacionada. Esto evita tener que distinguir cada valor separado por comas o caracteres separadores y por ende del uso de "scripts" o programas que manipulen previamente la cadena de caracteres almacenados.

jueves, 27 de febrero de 2014

Los sistemas de gestión de bases de datos SGBD

Qué es un SGBD
Es un programa orientado a la gestión y diseño de bases de datos, permitiendo su creación, modificación, atributos e interfaz. Además de permitir el desarrollo y construcción de las bases de datos, un SGBD permite operar directamente en las tablas de la base de datos, haciendo posible la navegación y visualización de los registros almacenados en las tablas de la misma, su edición, búsqueda, inserción y eliminación. En sí mismo el SGBD no sólo actúa como una herramienta de construcción de BD sino como un interfaz que permite interactuar y explotar sus contenidos. Para ello un SGBD está compuesto por diversos subsistemas a saber; el motor de la base de datos, el sistema de definición de datos, el sistema de manipulación y gestión, el sistema de herramientas y aplicaciones y el módulo de administración.

Componentes de un SGBD
  • Motor de la base de datos. Es el programa del SGBD que construye las consultas y peticiones que se realizan en el sistema para que sean procesadas por el sistema de BD. Por ejemplo el SGBD PhpMyAdmin consta de un motor de base de datos basado en MySQL por lo tanto las peticiones y operaciones que se realicen serán procesadas y convertidas a un formato SQL interpretable por la base de datos gestionada. Con Microsoft Access sucede lo mismo, el programa en sí mismo es un SGBD que transforma todas las peticiones y operaciones sobre la base de datos, también en formato SQL no percibido por el usuario. De esta forma la base de datos interpreta correctamente que el usuario desea insertar una nueva fila en la tabla o editar una serie de valores. 
  • Sistema de definición de datos. Programa especializado en crear los ficheros inversos, ficheros diccionarios, realizar los procesos de indexación de campos de las tablas y aplicar los ficheros de palabras vacías.
  • Sistema de manipulación y gestión. Es la parte del SGBD dedicada a la manipulación de registros en las tablas de la base de datos. Hace posible la navegación a través de sus contenidos, la inserción de nuevos registros, su modificación, eliminación, importación o exportación mediante un interfaz sencillo destinado al usuario, evitándole la programación de sus consultas, sustituyendo procesos complejos por funciones almacenadas en un botón o un enlace.
  • Sistema de herramientas y aplicaciones. Lo constituyen todas las herramientas y subprogramas orientados a facilitar la creación de interfaces de edición y consulta en la base de datos. Esto significa que el SGBD ayuda a construir aplicaciones para manipular de forma eficiente las tablas de la base de  datos, permitiendo al usuario diseñar los formularios de entrada de datos, las pantallas de visualización de registros, las pantallas de búsqueda y recuperación, etc. Por ejemplo Microsoft Access y Filemaker son SGBD que integran tales herramientas con las que es posible construir una aplicación un sistema de información especializado con un interfaz adaptado a las necesidades del usuario. En el caso de MySQL y PhpMyAdmin esto no es así, ya que el interfaz personalizado por el usuario debe ser desarrollado por él mismo en forma de formularios web basados en un servidor Apache y programados en lenguaje PHP. Este aspecto que a priori podría ser una desventaja, hace posible que sea el método de diseño de interfaz más avanzado, personalizado y profesional, dado que es posible modificar todos los parámetros de funcionamiento del sistema, aspecto que a diferencia de SGBD no es posible encontrar, debido a la limitación de las herramientas que proporcionan.
  • Administración. Lo constituye aquella parte del programa destinada a gestionar las funciones de almacenamiento, los procesos generales del sistema, los privilegios de acceso a la base de datos, gestionar las operaciones de mantenimiento con las bases de datos creadas, modificar las propiedades del interfaz, editar la configuración de los demás componentes del SGBD.

Funciones
  • Capacidad para almacenar datos en la BD, acceder a ellos, insertar otros nuevos, modificarlos y eliminarlos.
  • El SGBD oculta a ojos del usuario la apariencia real de las tablas de la BD, mostrando un interfaz sencillo. La apariencia real lo constituye un conjunto de códigos fuente sobre los que se almacenan las cadenas de datos que componen la información del registro.
  • Debe automatizar las funciones de consulta, de forma tal que las peticiones del usuario sean transformadas a un lenguaje identificable y entendible por la BD, generalmente este lenguaje es SQL.
  • El SGBD y especialmente la base de datos gestionada deben asegurar el acceso de múltiples usuarios manipulando o editando sus contenidos mediante un control de la concurrencia. Esto es que el sistema debe proporcionar un orden de prioridad en los procesos que se llevan a cabo en el sistema. Al conjunto de procesos que llevan a cabo múltiples usuarios se le denomina "transacciones". 
  • Un SGBD debe permitir la gestión de los privilegios de acceso al sistema para gestionar el acceso y las restricciones del mismo a diversos tipos de usuarios. 
  • Debe proporcionar las herramientas de mantenimiento necesarias para mantener la consistencia de los datos de la base de datos, esto es el proceso de compactación y desfragmentación de los datos, la optimización de las tablas, su reparación, la eliminación de residuos o información residual en cache como resultado de una transacción finalizada con algún tipo de error, etc.

SGBD Microsoft Access
  • Sitio web disponible en: http://office.microsoft.com/es-es/access/
  • Sistema de gestión Access y la base de datos están integrados en el mismo programa.
  • Permite la edición de tablas, campos de las tablas, operaciones con registros, crear formularios (pantallas de entrada de datos, visualización de registros, edición, búsqueda), crear informes, exportar, importar, editar relaciones entre tablas, crear procesos macro (funciones automáticas programadas por el usuario), administración general, compactación y reparación básicas.
  • Diseñado para funcionar como aplicación de escritorio.
  • Útil para realizar bosquejos, borradores, pruebas de bases de datos. Empleado habitualmente para elaborar bases de datos de tamaño reducido, dada su capacidad limitada. 
Referencias

SGBD PhpMyAdmin
  • Sitio web disponible en: http://www.phpmyadmin.net/home_page/index.php
  • El sistema de gestión PhpMyAdmin no está integrado en la base de datos MySQL.
  • Permite la edición de tablas, campos de tablas, operaciones con registros, consultas directas en lenguaje SQL, administración general, gestión de privilegios, gestión de procesos, importación y exportación de bases de datos, tablas y registros, función de búsqueda a texto completo, archivos de indexación y ficheros diccionario e inverso visibles, permite la generación de consultas en tablas relacionadas mediante asistentes, permite el mantenimiento profesional de la base de datos y sus componentes.
  • Diseñado para funcionar en un servidor web.
  • Útil para realizar proyectos profesionales, académicos y científicos con bases de datos. Empleado habitualmente para elaborar bases de datos de cualquier tamaño, dada su gran capacidad.
Referencias

martes, 25 de febrero de 2014

Práctica 1.- Batería de supuestos de bases de datos

Se propone la resolución de una batería de supuestos de bases de datos, en los que se deberá aplicar la lógica de creación de tablas, los campos clave primarios y foráneos, su relación, así como la descripción mediante campos de los distintos objetos o elementos sujetos a registro. Para su resolución el alumno deberá pensar en todos los elementos que conforma el supuesto que se propone y definir una tabla para cada objeto que necesariamente deba ser registrado y normalizado. Seguidamente deberá pensar qué tablas intermedias existen entre las tablas principales ya creadas y a través de qué campos se pueden establecer las relaciones entre tablas. Para llevar a cabo todo el trabajo se sugiere el empleo de algún sistema de base de datos conocido. Por ejemplo MS Access o Filemaker, que permiten el diseño de tales tablas y por ende su relación, probando el diseño ideado.


Supuesto 1. Centro de Documentación Fotográfica
Figura 1. Diagrama de tablas del supuesto 1 relativo al centro de documentación fotográfica

Supuesto 2. Archivo Central de la Administración
Figura 2. Diagrama de tablas del supuesto 2 relativo a los archivos de la administración

Supuesto 3. Sistema de gestión de mercancías y pasajes
Figura 3. Diagrama de tablas y campos del supuesto 3 relativo a la gestión aeroportuaria

Supuesto 4. Biblioteca Nacional de España


Supuesto 5. Tesauro Multilingüe


Supuesto 6. Diccionario enciclopédico


Supuesto 7. Directorio de recursos científicos


Supuesto 8. Sistema de gestión de contenidos Web CMS

jueves, 20 de febrero de 2014

Modelo entidad-relación ER

El modelo entidad-relación ER es un modelo de datos que permite representar cualquier abstracción, percepción y conocimiento en un sistema de información formado por un conjunto de objetos denominados entidades y relaciones, incorporando una representación visual conocida como diagrama entidad-relación.

CONCEPTOS DEL MODELO ER

Ejemplares - Conjuntos - Extensión - Instancia. Se denominan ejemplares a los registros que guardan una serie de características similares o que pueden ser agrupados o clasificados dadas sus características comunes en grupos bien delimitados. A los ejemplares también se los conoce como registros de una tabla de una base de datos, o en términos de abstracción como la extensión de la base de datos. Por ejemplo es la lista de usuarios de una biblioteca, la lista de productos con sus características, la lista de tipos de documentos y su definición.

Entidad. La entidad es cualquier clase de objeto o conjunto de elementos presentes o no, en un contexto determinado dado por el sistema de información o las funciones y procesos que se definen en un plan de automatización. Dicho de otra forma, las entidades las constituyen las tablas de la base de datos que permiten el almacenamiento de los ejemplares o registros del sistema, quedando recogidos bajo la denominación o título de la tabla o entidad. Por ejemplo, la entidad usuarios guarda los datos personales de los usuarios de la biblioteca, la entidad catalogo registra todos los libros catalogados, la entidad circulación todos los libros prestados y devueltos y así sucesivamente con todos los casos.

Atributos - Intención. Son las características, rasgos y propiedades de una entidad, que toman como valor una instancia particular. Es decir, los atributos de una tabla son en realidad sus campos descriptivos, el predicado que permite definir lo que decimos de un determinado sujeto. Por ejemplo de una entidad o tabla catálogo, se pueden determinar los atributos título, subtítulo, título paralelo, otras formas del título, autor principal, otras menciones de responsabilidad, edición, mención de edición, editorial, lugar de publicación, fecha de publicación,...

Relación. Vínculo que permite definir una dependencia entre los conjuntos de dos o más entidades. Esto es la relación entre la información contenida en los registros de varias tablas. Por ejemplo, los usuarios suelen clasificarse según una lista de tipos de usuarios, ya sean profesores, alumnos o investigadores. De esta forma es posible emitir la relación entre el usuario Jorge Martínez como alumno y Enrique Valtierra como profesor. Las relaciones son definidas de forma natural en un diagrama relacional para expresar un modelo cognitivo que dará lugar posteriormente a las interrelaciones de las entidades.

Interrelación. Las interrelaciones las constituyen los vínculos entre entidades, de forma tal que representan las relaciones definidas en el esquema relacional de forma efectiva. Esto no sólo la relación de los registros sino de sus tablas y de las características de la interrelación entre las entidades, a través de un campo clave que actúa como código de identificación y referencia para relacionar (es decir, como nexo de unión y articulación de la relación). Los tipos de interrelaciones entre entidades o tablas se realizan aplicando las reglas de cardinalidad y modalidad.

Entidades fuertes. Lo constituyen las tablas principales de la base de datos que contienen los registros principales del sistema de información y que requieren de entidades o tablas auxiliares para completar su descripción o información. Por ejemplo la tabla usuario es una entidad fuerte en relación a la tabla tipos de usuarios, que es una entidad débil dada su condición auxiliar para clasificar a los usuarios registrados en la biblioteca.

Entidades débiles. Son entidades débiles a las tablas auxiliares de una tabla principal a la que completan o complementan con la información de sus registros relacionados. Por ejemplo también son consideradas entidades débiles las tablas intermedias que sirven para compartir información de varias tablas principales.

Modelo entidad relación
Objeto de la base de datos
Ejemplo
Ejemplares – Conjuntos – Extensión
Registros de una tabla – Conjunto de registros

Conjunto-Usuarios{Jorge Martínez(1|alumno), Enrique Valtierra(2|profesor), Miguel dos Santos(3|investigador)}

Entidad
Tabla de la base de datos

Tabla usuarios

Atributos – Intención
Campos de una tabla

id, nombre, apellidos, tipo de usuario, dni, dirección, teléfono

Relación
Vínculo entre conjuntos

Jorge Martínez es investigador

Interrelación
Relación entre tablas

Tabla Usuarios relacionada con Tabla Tipo de usuarios

Entidades fuertes
Tabla principal

Tabla Usuarios

Entidades débiles
Tabla auxiliar

Tabla Tipo de usuarios

Tabla1. Esquema con algunos elementos fundamentales del diagrama ER

Clave. Es el campo o atributo de una entidad o tabla que tiene como objetivo distinguir cada registro del conjunto, sirviendo sus valores como datos vinculantes de una relación entre registros de varias tablas.
  • Superclave. Es la combinación de campos clave que identifican unívocamente un registro en una tabla o entidad. 
  • Clave principal primaria. Permiten identificar unívocamente cada registro de una tabla. Por ejemplo campo auto-numérico interno ID.
  • Clave candidata. Campos que cumplen las condiciones de identificación única de registros, pero que no fueron definidos como principales por el diseñador. Por ejemplo el DOI (Document Object Identifier) es un campo que define unívocamente un registro de un documento en una tabla o entidad concreta. No obstante a efectos de gestión interna del sistema el campo principal ID que contiene un valor numérico correlativo, permite un tratamiento más sencillo que el DOI.
  • Clave externa. Campo clave conformado por el valor de una clave principal primaria de otra tabla. Por ejemplo el campo id_tipodeusuario en la tabla usuarios es un campo clave externo que guarda el valor del campo primario ID de la tabla tipodeusuario, especificando de esa forma que un usuario como Enrique Valtierra sea de tipo 2 es decir profesor.

Integridad referencial. Se denomina integridad referencial al tipo de interrelación que se produce entre tablas mediante un campo clave que deberá contener la cadena alfanumérica exacta al identificador de la tabla auxiliar para poder realizar la relación entre los registros. En caso contrario no se produce la relación. Además, se trata de un mecanismo que evita duplicidades e incorrecciones ya que la propiedad de integridad referencial conmina a que los datos de un usuario además de su identificador ID sean distintos al de los demás. Dicho de otra forma, no pueden existir dos registros iguales con los mismos datos.

Tipos de relaciones
  • Según cardinalidad. La cardinalidad se representan en un diagrama ER como una etiqueta que se ubica en ambos extremos de la línea de relación de las entidades y que puede contener diversos valores entre los que destacan comúnmente el 1 y el *, obteniendo los siguientes tipos:
    • Relación 1 a 1. La relación uno a uno, define que un único registro de la tabla puede estar relacionado con un único registro de la tabla relacionada.
Figura1. Esquema de relación 1 a 1
    • Relación 1 a *. La relación de uno a varios, define que un registro dado de una tabla auxiliar o secundaria sólo puede estar vinculado con un único registro de la tabla principal con la que está relacionada.
Figura2. Esquema de relación 1 a muchos
    • Relación * a *. La relación de varios a varios, define que un registro de una tabla puede estar relacionado con varios registros de la tabla relacionada y viceversa.
Figura3. Esquema de relación muchos a muchos
  • Según modalidad
    • Optativa. La relación entre un registro de una tabla y varios de la tabla relacionada, puede existir o no. 
    • Obligatoria. La relación entre un registro de una tabla y otro de la tabla relacionada es obligada, debe existir siempre.
Figura4. Esquema de relaciones optativas y obligatorias

Ejemplos

Relación 1 a 1. Cada documento adquirido es registrado podría equipararse a la cardinalidad 1 a 1. Esto significa que cada documento que se introduce en el módulo de adquisiciones (y por ende en su tabla) tiene su correspondencia con los documentos que finalmente se reciben en la biblioteca para ser dados de alta en la tabla registro. De esta forma, puede haber o no documentos en proceso de adquisición (relación optativa). En cambio la tabla registro se encarga de registrar los documentos que se reciben por lo que su relación es de obligatoriedad (todo documento registrado está presente en la tabla de adquisiciones). Todo ello no implica que todos los documentos en fase de adquisición tengan que estar registrados. Pueden existir documentos en fase de adquisición que no hubieran sido registrados. Véase ejemplo de la figura5.

Figura5. Los documentos que se adquieren son registrados
Relación 1 a *. Los usuarios de una biblioteca suelen solicitar préstamos, por lo tanto la relación que se produce es de uno a muchos. Un usuario puede pedir o no el préstamo de uno o varios libros o documentos. Por lo tanto, pueden existir uno o ningún usuario solicitando el préstamo, pero para que exista la relación con la tabla préstamos, ésta debe registrar al usuario, su fecha de préstamo y devolución. Véase figura6. Por otra parte, el préstamo se compone no sólo del usuario que lo solicita, sino del documento u objeto que le es prestado, que es el caso que se expone en la figura7. Al igual que en la relación del usuario con la tabla préstamo, un documento puede o no ser prestado. Un documento puede haber sido prestado y devuelto muchas veces y para que exista la relación entre la tabla préstamos y catálogo, debe existir un registro que integre su información (de aquí su modalidad de relación obligatoria). Todo ello conduce a una relación más compleja que puede observarse en la figura8. Lo que en un principio se consideraba una relación de 1 a muchos, termina convirtiéndose en una relación de muchos a muchos gracias a una tabla débil o intermedia que almacena la información necesaria del usuario y del documento para poder efectuar el préstamo correspondiente. Por lo tanto la tabla préstamos, relaciona muchos usuarios con muchos libros en múltiples conjuntos o registros que pueden estar activos o finalizados. Recuérdese que los libros una vez devueltos vuelven a estar disponibles para dar servicio a terceros usuarios. Por ello se concluye que para que un préstamo tenga lugar, deberá estar presente el identificador del usuario y del documento siendo obligatorios en todo proceso de circulación.

Figura6. Los usuarios solicitan préstamos
Figura7. Los documentos y libros son prestados
Figura8. Lo documentos son prestados a los usuarios
Relación * a *. Cuando se catalogan los documentos en una biblioteca, al seguir las indicaciones de las normas de catalogación, se advierte un apartado de suma importancia; las autoridades. Éstas definen la responsabilidad intelectual, artística, cognitiva, editorial, administrativa, introductoria, del documento. Por ello no es de extrañar que en la catalogación los campos de autoridades sean repetibles, dado que pueden existir 1 o más autoridades. Esta relación es la que se advierte en la figura9. Cada libro puede tener o no 1 o muchas autoridades. Por lo tanto una autoridad puede estar presente en varios libros o formar parte de varias responsabilidades en el mismo.

Figura9. Los libros al ser catalogados pueden tener o no autoridades