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.