Las tablas constituyen la estructura principal de una base de datos. La creación de tablas debe estar supeditada a la representación del dominio o el ámbito de aplicación de las mismas. Esto es en función de los procesos y actividades que lleva a cabo una institución, la información y documentación que produce, su tratamiento y los servicios que ofrece. Las tablas o entidades deben tener una denominación que identifique el contenido de la información que almacenará, el nombre del proceso que se desempeña con la información almacenada o la finalidad en el tratamiento de la misma. Por ejemplo el caso de una base de datos de un directorio de recursos web, plantea diversas cuestiones. En primer lugar, cómo son los directorios web, qué información contienen, cómo se estructuran, cómo procesan la información, cómo la representan y en definitiva cuál es la cadena documental de la información hasta que finalmente es visualizada en forma de directorio. En segundo lugar, la definición de tablas viene dada en función de las características del caso y procesamiento de la información del directorio, por ello una tabla de registro de recursos web es fundamental para ingresar inicialmente los recursos. Pero los recursos deben ser descritos y catalogados, por lo tanto se necesita una tabla de catálogo más completa que la de registro. Además los recursos web tienen características tipificadoras que los distinguen como por ejemplo el tipo de recurso, la temática que abordan, el público objetivo al que están destinados. Ello implica una tabla de tipos de recursos, una tabla de categorías temáticas y una tabla de destinatarios. Pero además los recursos de un directorio web pueden ser valorados mediante comentarios o escalas. Esto significa que se deberán añadir una tabla que almacene los comentarios de los usuarios y una tabla que almacene las puntuaciones de los mismos. Y si existen usuarios, también existirán administradores y trabajadores de la compañía o empresa responsable del directorio que accederán al sistema con diferentes propósitos. Ello conlleva una tabla de usuarios y una tabla de administradores. Pero además dentro de los usuarios y administradores existen distintas categorías, por lo tanto tenemos usuarios más o menos experimentados y administradores con distintos rangos de acceso a las funciones y posibilidades del sistema de información del directorio web. En consecuencia, se necesitarán dos nuevas tablas, la correspondiente a los tipos de usuarios y a los tipos de administradores. A todo ello, debe sumarse el estado de la descripción de los recursos web que se registran, que pueden encontrarse en diversas fases, por ejemplo (identificación, descripción, publicación, baja) lo que hace requerir una nueva tabla correspondiente al estado del recurso. Como se puede observar en el ejemplo de un directorio de recursos web, cada fase del tratamiento de la información está considerada en una tabla específica (registro, catálogo) así como los actores del sistema de información (usuarios, administradores) y las tablas auxiliares y tipologías que están directamente vinculadas con los mismos (tipo de recurso, clasificación, categorías, estados, tipos de usuarios y tipos de administradores), además de las tablas relativas a su interacción en la web con los usuarios (comentarios, valoraciones). Todas las acciones que pueden desempeñarse en el sistema de información son representadas para almacenar la información que generan, dando como resultado una tabla especializada en guardar una información puntual que puede completarse con terceras tablas.
DEFINICIÓN DE CAMPOS
Los campos de una tabla de una base de datos son fundamentales para guardar la información de una manera completamente estructurada y ordenada. Esto es definir los rasgos, características y aspectos que deben ser tenidos en cuenta para describir o procesar cada uno de los ítems, objetos, elementos sujetos a descripción. Por ejemplo, una tabla de comentarios de un directorio web, tendrá que contener una información tal que permita obtener el usuario que hizo el comentario, el recurso sobre el cuál se realizó el comentario, el comentario propiamente dicho, la fecha en la que se realizó el comentario, si el comentario forma parte de una respuesta a otro comentario. Todo ello puede ser definido en los campos id (de identificación), id_usuario (campo clave externo para identificar el usuario), id_recurso (campo clave externo para identificar el recurso web), texto (campo que almacena el texto del comentario), fecha1 (campo para la fecha del comentario), fecha2 (campo para la fecha de la edición del comentario), id_comentario (campo clave externo para identificar el comentario que suscita la réplica del presente comentario). A parte de identificar los campos necesarios es necesario definir la tipología de los campos o lo que es lo mismo, el tipo de información que éstos contendrán. Dependiendo del sistema de bases de datos que se emplee las opciones serán más o menos limitadas. Por ejemplo Microsoft Access permite los campos básicos que pueden ser consultados en la tabla1. En cambio MySQL, que corresponde a una base de datos más completa y potente, permite una gran variedad de campos para ser utilizados en muy diversos casos, véase tabla2.
Tipología
de campos en Microsoft Access
|
||
Tipo
de campo
|
Capacidad
|
Descripción
|
Texto
|
Límite de
255 caracteres
|
El campo de
texto permite combinar cadenas de caracteres numéricos, alfabéticos,
alfanuméricos, etc.
|
Memo
|
Límite de
65.536 caracteres
|
Su empleo
está centrado en textos completos como descripciones, anotaciones, extractos
de textos.
|
Numérico
|
Límite 8 bytes
|
Utilizado
para guardar valores numéricos, cálculos matemáticos o sus resultados. Acepta
valores decimales y números enteros. No se utiliza para valores monetarios.
|
Fecha/Hora
|
Límite 8
bytes
|
Guarda la
información de fecha y hora en formato Access, véase: m/dd/aaaa h:mm:ss
A.M./P.M.
|
Currency
|
Límite 8
bytes
|
Se guardan
valores monetarios.
|
Autonumérico
|
Límite 8 bytes
|
Campo
numérico adaptado para números secuenciales con unidad incremental o
numeración aleatoria. Utilizado para crear el campo clave principal primario.
|
Si/No
|
Límite 1
bit
|
Es el campo
lógico que almacena valores como Sí/No, Verdadero/Falso,
Activado/Desactivado, 0/1. El campo sólo guarda uno de los dos valores pero
no acepta un valor nulo.
|
Objeto OLE
|
Límite de
1GB
|
Almacena
documentos ofimáticos, imágenes, hojas de cálculo, sonidos, vídeos y cualquier
objeto binario creado mediante programas con protocolo OLE (Object Linking
and Embedding). Para introducir tales objetos Access debe incrustar el
contenido, repercutiendo directamente en la velocidad y capacidad de gestión
de los contenidos.
|
Hipervínculo
|
Límite de
64.000 caracteres
|
Permite
guardar direcciones URL en las que se aloja el recurso o contenido vinculado.
|
Asistente
para búsquedas
|
Límite 4
bytes
|
Consiste en
un campo con una lista de opciones desplegables, o bien un cuadro combinado
de opciones que permiten alojar o almacenar una información con unos valores
previamente dados y predeterminados, o bien realizar un vínculo con otra
tabla de la base de datos para introducir una información relacionada. Este
campo tiene una función similar al campo clave externo o foráneo que sirve
para establecer relaciones entre tablas.
|
Tabla1. Tipología de campos en Microsoft Access
Tipología
de campos en MySQL
|
||
Numéricos
|
||
Campo
|
Capacidad
|
Descripción
|
TINYINT
|
1 byte
|
Número
entero positivo o negativo de tamaño muy pequeño, con un rango de valores comprendido entre 0
y 255
|
SMALLINT
|
2 bytes
|
Número
entero positivo o negativo de tamaño pequeño, con un rango de valores
comprendido entre 0 y 65.535
|
MEDIUMINT
|
3 bytes
|
Número
entero positivo o negativo de tamaño medio, con un rango de valores comprendido
entre 0 y 16.777.215
|
INT(8)
|
4 bytes.
Determinado por el usuario
|
El campo
definido como INT, permite definir entre paréntesis el número de caracteres
máximo que admite el número. Por tanto es un número entero positivo o
negativo de tamaño normal, con un rango de valores comprendido entre 0 y 429.4967.29.
Por ejemplo el campo INT(8) especifica un número de 8 caracteres como máximo.
|
BIGINT
|
8 bytes
|
Número
entero positivo o negativo de tamaño grande, con un rango de valores
comprendido entre 0 y 18.446.744.073.709.551.615 caracteres
|
FLOAT
|
Precisión
0-23 decimales
|
Campo para
número en coma flotante de precisión simple
|
DOUBLE
|
Precisión
de 24 a 53 decimales
|
Campo para
número en coma flotante de precisión doble
|
DECIMAL(5,2)
|
Determinado
por el usuario
|
Número en
coma flotante con indicación de la precisión (número de decimales
significativos) y la escala (número de dígitos que se almacenan a
continuación del punto decimal)
|
Fecha
y hora
|
||
Campo
|
Estructura
|
Descripción
|
DATETIME
|
yyyy-mm-dd hh:mm:ss
|
Se utiliza
para mostrar una fecha y hora completa. El rango soportado es de '1000-01-01
00:00:00' a '9999-12-31 23:59:59'
|
DATE
|
yyyy-mm-dd
|
El campo DATE es utilizado cuando sólo es
necesario guardar la información de la fecha. El rango soportado es de '1000-01-01'
a '9999-12-31'
|
TIMESTAMP
|
yyyymmddhhmmss
|
Permite
realizar una marca de tiempo automática en el momento en el que se crea un
registro o se modifica. Permite almacenar caracteres en formato de fecha YYYY-MM-DD
HH:MM:SS, YY-MM-DD HH:MM:SS, YYYY-MM-DD, YY-MM-DD, YYYYMMDDHHMMSS, YYMMDDHHMMSS,
YYYYMMDD, YYMMDD,
|
TIME
|
hh:mm:ss
|
Campo para
el almacenamiento de horas. Acepta el rango de -838:59:59 a 838:59:59.
|
YEAR
|
yyyy
|
Permite el
almacenamiento específico de años mostrados en formatos de dos y cuatro
dígitos.
|
Cadenas
de caracteres
|
||
Campo
|
Capacidad
|
Descripción
|
CHAR(50)
|
0-255
caracteres no binarios
|
Campo para
el almacenamiento de una cadena de caracteres de longitud fija , utilizado en
los casos en que la información no varía de tamaño y se represente siempre de
la misma forma. Incluso si no se utilizan todos los caracteres definidos
quedan completados con espacios. Cuando son representados los espacios
finales son eliminados.
|
VARCHAR(500)
|
0-65.535
caracteres no binarios
|
Campo de
longitud variable usado para los casos en que la información puede variar de
longitud. Permite especificar la longitud entre paréntesis al igual que el
campo CHAR.
|
BINARY
|
0-255
caracteres binarios
|
Campo para
el almacenamiento de información y contenidos binarios de extensión fija.
|
VARBINARY
|
0-65.535
caracteres binarios
|
Campo para
el almacenamiento de información y contenidos binarios de extensión variable.
|
TINYBLOB
|
255
caracteres binarios
|
Campo
binario de tamaño muy pequeño
|
BLOB
|
65.535
caracteres binarios
|
Campo binario
de tamaño pequeño
|
MEDIUMBLOB
|
16.777.215
caracteres binarios
|
Campo
binario de tamaño mediano
|
LONGBLOB
|
4.294.967.295
caracteres binarios
|
Campo
binario de tamaño grande
|
TINYTEXT
|
255
caracteres no binarios
|
Campo para
cadena de texto no binario de tamaño muy pequeño
|
TEXT
|
65.535
caracteres no binarios
|
Campo para
cadena de texto no binario de tamaño pequeño
|
MEDIUMTEXT
|
16.777.215
caracteres no binarios
|
Campo para
cadena de texto no binario de tamaño mediano
|
LONGTEXT
|
4.294.967.295
caracteres no binarios
|
Campo para
cadena de texto no binario de tamaño grande
|
ENUM
|
65.535
valores distintos
|
Campo de enumeración
en el que es posible guardar 1 valor de todos los presentados o disponibles.
Equivale a una lista de opciones o de valores prefijados.
|
SET
|
Campo de
enumeración en el que es posible guardar hasta 64 valores de todos los
presentados o disponibles. Equivalen a una lista de opciones o de valores
prefijados.
|
|
Lógicos
|
||
Campo
|
Capacidad
|
Descripción
|
BOOL
|
0/1,
True/False
|
Campo para
el almacenamiento de valores booleanos
|
Tabla2. Tipología de campos en MySQL
DEFINICIÓN DE CLAVES
Los campos claves, tal como se explicó en el apartado anterior, permiten identificar de manera unívoca cada objeto, elemento o registro de una tabla o entidad. Por este motivo se debe tener en cuenta que su control interno a efectos del sistema de información propiamente dicho, deba ser lo más sencillo posible. Con este objetivo, los campos claves principales primarios, suelen ser campos de tipo numérico, con propiedad autonumérica correlativa basada en un incremento unitario, es decir de tipo +1. Para facilitar la tarea de diseño de campos y tablas, se aconseja que el campo clave principal sea denominado siempre como campo "id" en minúsculas. Para definir los campos externos o foráneos destinados al almacenamiento de un número identificador de una tabla externa para realizar algún tipo de relación, se aconseja que el tipo de campo sea numérico entero de tamaño medio y con una nomenclatura similar a la siguiente "id_nombretabla" en donde "id" representa que se trata de un campo clave de identificación, "_" que el campo relaciona una tabla externa y "nombretabla" es el texto que habrá que sustituir por el nombre de la tabla en minúsculas y con todo el nombre seguido sin espacios.
Graciass buenisima informacion :D
ResponderEliminar