Sei sulla pagina 1di 17

 El Concepto de Datos

Datos son los hechos que describen sucesos y entidades. “Datos" es una palabra en plural
que se refiere a más de un hecho. A un hecho simple se le denomina "data-ítem" o elemento
de dato.
Los datos son comunicados por varios tipos de símbolos tales como las letras del alfabeto,
números, movimientos de labios,
puntos y rayas, señales con la mano, dibujos, etc. Estos símbolos se pueden ordenar y
reordenar de forma utilizable y se les denomina información.
Los datos son símbolos que describen condiciones, hechos, situaciones o valores. Los datos
se caracterizan por no contener ninguna información. Un dato puede significar un número,
una letra, un signo ortográfico o cualquier símbolo que represente una cantidad, una
medida, una palabra o una descripción.
La importancia de los datos está en su capacidad de asociarse dentro de un contexto para
convertirse en información. Por si mismos los datos no tienen capacidad de comunicar un
significado y por tanto no pueden afectar el comportamiento de quien los recibe. Para ser
útiles, los datos deben convertirse en información para ofrecer un
significado, conocimiento, ideas o conclusiones.
2. El Concepto de Información
La información no es un dato conjunto cualquiera de ellos. Es más bien una colección de
hechos significativos y pertinentes, para el organismo u organización que los percibe. La
definición de información es la siguiente: Información es un conjunto de datos
significativos y pertinentes que describan sucesos o entidades.
DATOS SIGNIFICATIVOS. Para ser significativos, los datos deben constar de símbolos
reconocibles, estar completos y expresar una idea no ambigua.
Los símbolos de los datos son reconocibles cuando pueden ser correctamente interpretados.
Muchos tipos diferentes de símbolos comprensibles se usan para transmitir datos.
La integridad significa que todos los datos requeridos para responder a una pregunta
específica están disponibles. Por ejemplo, un marcador de béisboldebe incluir el tanteo de
ambos equipos. Si se oye el tanteo "New York 6" y no oyes el del oponente, el anuncio será
incompleto y sin sentido.
Los datos son inequívocos cuando el contexto es claro. Por ejemplo, el grupo de signos 2-x
puede parecer "la cantidad 2 menos la cantidad desconocida llamada x" para un estudiante
de álgebra, pero puede significar "2 barra x" a un vaquero que marca ganado. Tenemos que
conocer el contexto de estos símbolos antes de poder conocer su significado.
Otro ejemplo de la necesidad del contexto es el uso de términos especiales en diferentes
campos especializados, tales como la contabilidad. Los contables utilizan muchos términos
de forma diferente al público en general, y una parte de un aprendizaje de contabilidad es
aprender el lenguaje de contabilidad. Así los términos Debe y Haber pueden significar para
un contable no más que "derecha" e "izquierda" en una contabilidad en T, pero pueden
sugerir muchos tipos de ideas diferentes a los no contables.
DATOS PERTINENTES. Decimos que tenemos datos pertinentes (relevantes) cuando
pueden ser utilizados para responder a preguntas propuestas.
Disponemos de un considerable número de hechos en nuestro entorno. Solo los hechos
relacionados con las necesidades de información son pertinentes. Así la organización
selecciona hechos entre sucesos y entidades particulares para satisfacer sus necesidades de
información.
3. Diferencia entre Datos e información
1. Los Datos a diferencia de la información son utilizados como diversos métodos para
comprimir la información a fin de permitir una transmisión o almacenamiento más
eficaces.
2. Aunque para el procesador de la computadora hace una distinción vital entre la
información entre los programas y los datos, la memoria y muchas otras partes de la
computadora no lo hace. Ambos son registradas temporalmente según la instrucción
que se le de. Es como un pedazo de papel no sabe ni le importa lo que se le escriba: un
poema de amor, las cuentas del banco o instrucciones para un amigo. Es lo mismo
que la memoria de la computadora. Sólo el procesador reconoce la diferencia entre
datos e información de cualquier programa. Para la memoria de la computadora, y
también para los dispositivos de entrada y salida (E/S) y almacenamiento en disco, un
programa es solamente más datos, más información que debe ser almacenada,
movida o manipulada.
3. La cantidad de información de un mensaje puede ser entendida como el número de
símbolos posibles que representan el mensaje."los símbolos que representan el
mensaje no son más que datos significativos.
4. En su concepto más elemental, la información es un mensaje con un contenido
determinado emitido por una persona hacia otra y, como tal, representa un papel
primordial en el proceso de la comunicación, a la vez que posee una
evidente función social. A diferencia de los datos, la información tiene significado
para quien la recibe, por eso, los seres humanos siempre han tenido la necesidad de
cambiar entre sí información que luego transforman en acciones. "La información es,
entonces, conocimientos basados en los datos a los cuales, mediante un
procesamiento, se les ha dado significado, propósito y utilidad"

4. El Concepto de Procesamiento de Datos


Hasta el momento hemos supuesto que los datos que maneja una aplicación no son tan
voluminosos y por lo tanto caben en memoria. Cuando recurrimos a archivos se debe a la
necesidad de conservar datos después de que termina un programa, por ejemplo para
apagar el computador.
Sin embargo, existen problemas en donde el volumen de datos es tan grande que es
imposible mantenerlos en memoria. Entonces, los datos se almacenan en un conjunto de
archivos, los que forman una base de datos. Una base de datos es por lo tanto un conjunto
de archivos que almacenan, por ejemplo, datos con respecto al negocio de una empresa.
Cada archivo se forma en base a un conjunto de líneas y cada línea esta formada por
campos de información. Todas las líneas de un mismo archivo tienen la misma estructura,
es decir los mismos campos de información. Diferentes archivos
poseen estructuras distintas, i.e. campos de información.
Por ejemplo, el archivo de postulantes post.dat, visto en capítulos anteriores, tiene la
siguiente información:
 ci: carnet de identidad de la persona.
 nombre.

En lo que sigue supondremos que ambos archivos son lo suficientemente grandes como
para que no quepan en la memoria del computador. A continuación resolveremos
eficientemente el problema de generar un archivo con los tres campos de información, sin
colocar previamente el contenido de un archivo en un arreglo.
Algunas definiciones
Recolección de datos:
Provee un vínculo para obtener la información interoperacionables racional y las
parametrizaciones.
Almacenamiento de datos:
Las unidades de disco de la computadora y otros medios de almacenamiento externo
permiten almacenar los datos a más largo plazo, manteniéndolos disponibles pero
separados del circuito principal hasta que el microprocesador los necesita. Una
computadora dispone también de otros tipos de almacenamiento.
La memoria de sólo lectura (ROM) es un medio permanente de almacenamiento de
información básica, como las instrucciones de inicio y los procedimientos de
entrada/salida. Asimismo, una computadora utiliza varios buffers (áreas reservadas de la
memoria) como zonas de almacenamiento temporal de información específica, como por
ejemplo los caracteres a enviar a la impresora o los caracteres leídos desde el teclado.
Procesamiento de datos:
a. El objetivo es graficar el Procesamiento de Datos, elaborando un Diagrama que
permita identificar las Entradas, Archivos, Programas y Salidas de cada uno de
los Procesos.
b.
c. Su antecedente es el Diagrama de Flujo.
d. Los elementos claves son los Programas.
e. Se confecciona el Diagrama de Procesamiento de Datos
f. Este Diagrama no se podrá elaborar por completo desde un primer momento ya que
depende del Flujo de Información.
g. En este primer paso sólo se identifican las Salidas y Programas. Los elementos
restantes se identifican en forma genérica.

Validación de datos:
Consiste en asegurar la veracidad e integridad de los datos que ingresan a un archivo.
Existen numerosas técnicas de validación tales como: Digito verificador, chequeo de tipo,
chequeo de rango.
5. Concepto de Procesamiento Distribuido y Centralizado
Procesamiento Centralizado:
En la década de los años 50’s las computadoras eran máquinas del tamaño de todo un
cuarto con las siguientes características:
• Un CPU
• Pequeña cantidad de RAM
• Dispositivos DC almacenamiento secundario (cintas)
• Dispositivos d salida (perforadoras de tarjetas)
• Dispositivos de entrada (lectores de tarjeta perforada)
Con el paso del tiempo, las computadoras fueron reduciendo su tamaño y creciendo en
sofisticación,
• Aunque la industria continuaba siendo dominada por las computadoras grandes
"mainframes". A medida que la computación evolucionaba, las computadoras, fueron
capaces de manejar aplicaciones múltiples simultáneamente, convirtiéndose
en procesadores centrales "hosts" a los que se les
Conectaban muchos periféricos y terminales tontas que consistían solamente de
dispositivos de entrada/salida (monitor y teclado) y quizá poco espacio de almacenamiento,
pero que no podían procesar por sí mismas. Las terminales locales se conectaban con el
procesador central a través de interfaces seriales ordinarias de baja velocidad, mientras que
las terminales remotas se enlazaban con
• El "host" usando módems y líneas telefónicas conmutadas. En este ambiente, se ofrecían
velocidades de transmisión de 1200, 2400, o 9600 bps. Un ambiente como el descrito es lo
que se conoce como procesamiento centralizado en su forma más pura "host/terminal".
Aplicaciones características de este tipo de ambiente son:
• Administración de grandes tuses de datos integradas
• Algoritmos científicos de alta velocidad
• Control de inventarios centralizado
Al continuar la evolución de los "mainframes", estos se comenzaron a conectar a enlaces de
alta velocidad donde algunas tareas relacionadas con las comunicaciones se delegaban a
otros dispositivos llamados procesadores comunicaciones "Front End Procesos" (I7EP’s) y
controladores de grupo "Cluster Controllers" (CC’s).
Procesamiento Distribuido:
El procesamiento centralizado tenía varios inconvenientes, entre los que podemos
mencionar que un número limitado de personas controlaba el acceso a la información y a
los reportes, se requería un grupo muy caro de desarrolladores de sistemas para crear las
aplicaciones, y los costos demantenimiento y soporte eran extremadamente altos. La
evolución natural de la computación fue en el sentido del procesamiento distribuido, así las
minicomputadoras (a pesar de su nombre siguen siendo máquinas potentes) empezaron a
tomar parte del procesamiento que tenían los "mainframes".
Ventajas 
Existen cuatro ventajas del procesamiento de bases de datos distribuidas. La primera,
puede dar como resultado un mejor rendimiento que el que se obtiene por un
procesamiento centralizado. Los datos pueden colocarse cerca del punto de su utilización,
de forma que el tiempo de comunicación sea mas corto. Varias computadoras operando en
forma simultánea pueden entregar más volumen de procesamiento que una sola
computadora.
Segundo, los datos duplicados aumentan su confiabilidad. Cuando falla una computadora,
se pueden obtener los datos extraídos de otras computadoras. Los usuarios no dependen de
la disponibilidad de una sola fuente para sus datos .Una tercera ventaja, es que los sistemas
distribuidos pueden variar su tamaño de un modo más sencillo. Se pueden agregar
computadoras adicionales a la red conforme aumentan el número de usuarios y su carga de
procesamiento. A menudo es más fácil y más barato agregar una nueva computadora más
pequeña que actualizar una computadora única y centralizada. Después, si la carga
de trabajo se reduce, el tamaño de la red también puede reducirse.
Por último, los sistemas distribuidos se pueden adecuar de una manera más sencilla a las
estructuras de la organización de los usuarios.
6. Estructura de Datos utilizados en el proceso electrónico de datos
Arreglos
Son una agrupación de datos homogéneos, es decir, con un mismo tipo de dato básico
asociado. Se almacenan en forma contigua en la memoria y son referenciados con un
nombre común y una posición relativa.
Ejemplos:
Arreglo Lineal (1 dimensión ó vector)
Vista gráfica

[1] [2] [3] [4] [5]

Definición de tipo

Type
Linea: Array [1..5] of TipoBasico;
Var
MiArreglo:Linea;

Arreglo Bidimensional (matriz) Definición de tipo


Vista gráfica
Type
[1,1] TipoTabla:Array[1..3,1..4] of TipoBasico;
Var
[1,2]
MiTabla: TipoTabla;
[1,3]

[1,4]

[2,1]

[2,2]

[2,3]

[2,4]

[3,1]

[3,2]
[3,3]

[3,4]

Pilas o colas Lifo:


Imagina un montón de platos "apilados" o bien fichas de dominó formando una torre e
intenta eliminar una desde el centro, ¿qué ocurre?, naturalmente esta operación no está
permitida si queremos mantener intactos a los platos o a la torre construida. Por esta razón,
una pila se asocia a una estructura de datos LIFO (LAST IN FIRST OUT). En base a lo
anterior, construye la definición de una PILA y discútela con el profesor.
En general, podemos definir para cada una de las estructuras de datos una
representación estática y otra dinámica según el método de asignación de memoria
utilizado.
Clasificación
a.)Pila estática:
Sin duda tendremos que utilizar arreglos o registros que como ya sabemos son la base para
estructuras de datos más complejas. Considerando la siguiente figura:
Vista gráfica

Suponiendo que Dato pertenece a un mismo tipo de datos y Cuenta Dato corresponde a un
entero que se incrementa a medida que un nuevo elemento se incorpora a la pila. Intenta
construir la definición de tipo para la estructura Pila.
TYPE
______________________________
______________________________
______________________________
END;
b.)Pila Dinámica:
Sin duda tendremos que utilizar nodos con punteros. Considera la siguiente figura:

Suponiendo que los punteros que aparecen en la figura son capaces de apuntar a un nodo y
que Dato pertenece a cualquiera de los tipos básicos o estructurados, la definición de tipo
sería:
TYPE
Puntero=^NodoPila;
NodoPila=Record
Info:AlgunTipo;
sgte:Puntero;
End;
Var tope:Puntero;
Un concepto por introducir es el de encapsulamiento, que significa que una vez definida la
estructura e implementadas las operaciones básicas, uno se remite a utilizarlas sin importar
su codificación interna, es decir, las llamadas a PUSH(pila, x) o POP(pila, y) empilarán a x o
desempilarán en y sin importar cómo lo hagan.
c.)Listas Enlazadas:
Corresponde a una estructura lineal compuesta por una colección de datos homogéneos con
alguna relación entre ellos. Dicha estructura se crea a través del método dinámico de
memoria.
En una lista enlazada el orden de los elementos está determinado por un campo enlace
(puntero) explícito en cada elemento, por ejemplo: pilas y filas dinámicas.
La representación de lista enlazada es la más óptima debido a que cualquier proceso de
actualización (modificación inserción o eliminación) se realiza en base a reasignación de
punteros. En este capítulo trataremos sólo con las listas enlazadas ya que las listas
secuénciales ya son bien conocidas por ustedes.
Tipos de Listas Enlazadas
 Listas lineales simplemente enlazadas
 Listas Circulares
 Listas doblemente enlazadas
 Listas múltiplemente enlazadas

Árboles
Es una estructura de datos no lineal que posee raíz, ramas y hojas, técnicamente constituye
un grafo finito y sin ciclos. Un árbol define ciertos niveles jerárquicos precedidos por la raíz
(1er. nivel), en donde las hojas constituyen el nivel más bajo.
Componentes
Raíz: Nodo que constituye la única entrada a la estructura (por ello es necesario tener un
puntero sobre él).
Ramas o Arcos: Conexión entre dos nodos del árbol que representa una relación de
jerarquía.
Hojas: Nodo sin hijos.
Características
Nivel o profundidad de un nodo: Longitud del camino para ir desde la raíz al nodo. Por
definición la raíz está en el nivel 0. Por ejemplo: profundidad(Y)=2, profundidad(raíz)=0,
profundidad(árbol)= profundidad(hoja más profunda).
Altura de un nodo: Longitud del camino más largo desde el nodo a una hoja. Por ejemplo:
Altura(X)=1, Altura(Y)=0, Altura(arbol)=Altura(raíz)=profundidad(árbol)
Grado de nodo: Cantidad de hijos de un nodo cualquiera.
Grado de árbol: Cantidad máxima de hijos posibles de asociar a un nodo del árbol
Clasificación
a.)Según Número de Hijos:
b.)Según Estructura de Niveles:
Arbol completo: Es un árbol binario en el cual cada nodo es una hoja o posee exactamente 2
hijos.
Arbol lleno: Es un árbol binario con hojas en a lo más dos niveles adyacentes l-1 y l, en las
cuales los nodos terminales se encuentran ubicados en las posiciones de más a la izquierda
del árbol.
Si un árbol binario es completo, necesariamente es lleno
c.)Según Funcionalidad:
Árbol binario de búsqueda (ABB)
Árbol binario de expresión 
Archivos:
Es una es estructura de datos que reside en memoria secundaria o almacenamiento
permanente (cinta magnética, disco
magnético, disco óptico, disco láser, etc.). La forma de clasificación más básica se realiza de
acuerdo al formato en que residen estos archivos, de esta forma hablamos de
archivos ASCII (de texto) y archivos binarios. En este capítulo nos centraremos en estos
últimos.
Definición archivo binario:
Estructura de datos permanente compuesto por registros (filas) y éstos a su vez por campos
(columnas). Se caracteriza por tener un tipo de dato asociado, el cual define su estructura
interna.
Definición archivo texto:
Estructura de datos permanente no estructurado formado por una secuencia de caracteres
ASCII.
Tipos de Acceso a los Archivos
a.)Secuencial:
Se accesan uno a uno los registros desde el primero hasta el último o hasta aquel que
cumpla con cierta condición de búsqueda. Se permite sobre archivos de Organización
secuencial y Secuencial Indexada.
b.)Random:
Se accesan en primera instancia la tabla de índices de manera de recuperar la dirección de
inicio de bloque en donde se encuentra el registro buscado. (dentro del  rea primaria o de
overflow). Se permite para archivos con Organización Sec.Indexada.
c.)Dinámico:
Se accesan en primera instancia la tabla de índices de manera de recuperar la dirección de
inicio de bloque en donde se
encuentra el registro buscado. (dentro del  rea primaria o de overflow). Se permite para
archivos con Organización Sec.Indexada.
d.)Directo:
Es aquel que utiliza la función de Hashing para recuperar los registros. Sólo se permite para
archivos con Organización Relativa.
Constantes
Las constantes son similares a una variable pero tienen un valor determinado que se
mantiene igual en toda la ejecución del programa. El contenido de una variable puede
cambiar tantas veces sea necesario. ¿Porque usar una constante si no puede cambiar de
valor?. Hacemos esto cuando deseamos usar un mismo número o una palabra (string)
varias veces.
Variables
Magnitud que puede tomar diferentes valores y se representa con una letra o letras. La
variable real es el conjunto de los números reales, y se puede representar por cualquier letra
o conjunto de letras y nos sirve para poder utilizar dicha letra para calculos o para obtener
resultados.
7. Conclusión
La tecnología de información está transformando las actividades económicas y cotidianas
como uno de los fenómenos sociológicos más importantes del siglo. Por esta razón, los
niveles de oportunidades de trabajo se incrementan de una manera acelerada en diferentes
áreas del conocimiento.
Indiscutiblemente, las computadoras han invadido ya todos y cada uno de los campos de la
actividad humana: ciencia,
tecnología, arte, educación, recreación, administración, economía y de acuerdo a la
tendencia actual, nuestra civilización y las venideras dependerán cada vez más de estos
"cerebros" electrónicos.
Se ha venido acelerando la velocidad de cambio del medio de casi todas las organizaciones,
de allí que éstas necesiten ahora más información como soporte a la toma de decisiones.
Aunque las entidades de tipo educativo se han descuidado en este aspecto, en estos
momentos se percibe un cierto interés en la implantación de estrategias que logren
interesar a estudiantes y profesores en el aprendizaje de técnicas que pretende a corto plazo
masificar e implementar el uso de bases de datos, redes de datos e información y
tecnología informática de punta como herramientas básicas de los actuales y nuevos
profesionales del país.
Para responder a los retos planteados por la nueva situación económica y tecnológica
mundial, se impulsa una dinámica tendiente a dar a conocer los elementos necesarios para
estar a la vanguardia en este campo.

1. ¿Qué es un sistema de
información?
Cuando se habla de un sistema de información (SI) se refiere a
un conjunto ordenado de mecanismos que tienen como fin la
administración de datos y de información, de manera que puedan ser
recuperados y procesados fácil y rápidamente.

Todo sistema de información se compone de una serie de recursos


interconectados y en interacción, dispuestos del modo más conveniente
en base al propósito informativo trazado, como puede ser recabar
información personal, procesar estadísticas, organizar archivo, etc. Estos
recursos pueden ser:

 Recursos humanos: Personal de variada índole y destrezas.


 Datos: Cualquier tipo de información masiva que precisa de organizarse.
 Actividades: Procedimientos, pasos a seguir, estaciones de trabajo, etc.
 Recursos informáticos: Aquellos determinados por la tecnología.

Se debe destacar que no es lo mismo un sistema de información que un


sistema informático, si bien estos últimos constituyan a menudo el grueso
de los recursos de un SI. Pero existen muchos otros métodos para los
sistemas de información, que no necesariamente pasan por la informática.

Puede servirte: Base de Datos.

2. Tipos de sistemas de información


Desde un punto de vista empresarial u organizativo, los sistemas de
información pueden clasificarse en:

 Sistemas de Procesamiento de Transacciones (TPS). También conocidos


como sistemas de gestión operativa, recopilan la información pertinente a
las transacciones de la organización, es decir, de su funcionamiento.
 Sistemas de Información Ejecutiva (EIS). Monitoriza las variables
gerenciales de un área específica de la organización, a partir de la
información interna y externa de la misma.
 Sistemas de Información Gerencial (MIS). Contemplan la información
general de la organización y la comprenden como un todo.
 Sistemas de soporte de decisiones (DSS). Orientados al procesamiento de
información intra y extra organizacional, para el apoyo en la conducción de
la empresa.

Existen otras formas especializadas o aplicadas de SI, dependiendo del


campo puntual y de las funciones específicas que se esperan de cada uno.
Sería demasiado extenso enlistarlas a todas.

3. Elementos de un sistema de
información
Por lo general se considera que todos los SI contienen una diversidad de
elementos clasificables en cinco grandes categorías:

 Elementos financieros. Aquellos vinculados con el capital y con los activos


disponibles de la organización.
 Elementos tecnológicos. Aquellos que tienen que ver con la maquinaria
especializada y la capacidad de procesamiento automatizado de la
información.
 Elementos humanos. Básicamente, personal, tanto especializado y
directivo, como no especializado o común.
 Elementos materiales. Se refiere al emplazamiento del sistema, a su
soporte físico y ubicación.
 Elementos administrativos. Aquellos relacionados con los procesos, la
mecánica de conducción, los permisos, informes, transacciones, etc.

4. Ejemplos de sistema de
información
Algunos ejemplos de SI pueden ser:

 Los sistemas de control de calidad, en los que se pide


una retroalimentación al cliente y se evalúan los resultados
estadísticamente para elaborar resultados interpretables por la gerencia.
 Las bases de datos de una biblioteca, en donde está contenido el grueso
volumen de documentos (libros, revistas, tesis, etc.) de la biblioteca, en
función de ubicar y recuperar cada uno lo más rápida y precisamente
posible.
 Las hojas de cálculo, en las que se ingresa información en bruto y se la
organiza de manera cuantificable para obtener directrices de conducción
financiera.

Dato
^

No es sencillo definir qué es un dato, pero intentaremos ver qué es desde el punto
de vista de las bases de datos.
Podemos decir que un dato es una información que refleja el valor de una
característica de un objeto real, sea concreto o abstracto, o imaginario (nada nos
impide hacer una base de datos sobre duendes :-).
Debe cumplir algunas condiciones, por ejemplo, debe permanecer en el tiempo. En
ese sentido, extrictamente hablando, una edad no es un dato, ya que varía con el
tiempo. El dato sería la fecha de nacimiento, y la edad se calcula a partir de ese dato
y de la fecha actual. Además, debe tener un significado, y debe ser manipulable
mediante operadores: comparaciones, sumas, restas, etc (por supuesto, no todos los
datos admiten todos los operadores).
Base de datos
^

Podemos considerar que es un conjunto de datos de varios tipos, organizados e


interrelacionados. Estos datos deben estar libres de redundancias innecesarias y ser
independientes de los programas que los usan.
SGBD (DBMS)
^

Son las siglas que significan Sistema de Gestión de Bases de Datos, en inglés


DBMS, DataBase Manager System. En este caso, MySQL es un SGBD, o mejor
dicho: nuestro SGBD.
Consulta
^

Es una petición al SGBD para que procese un determinado comando SQL. Esto
incluye tanto peticiones de datos como creación de bases de datos, tablas,
modificaciones, inserciones, etc.
Redundancia de datos
^

Decimos que hay redundancia de datos cuando la misma información es


almacenada varias veces en la misma base de datos. Esto es siempre algo a evitar, la
redundancia dificulta la tarea de modificación de datos, y es el motivo más
frecuente de inconsistencia de datos. Además requiere un mayor espacio de
almacenamiento, que influye en mayor coste y mayor tiempo de acceso a los datos.
Inconsistencia de datos
^
Sólo se produce cuando existe redundancia de datos. La inconsistencia consiste en
que no todas las copias redundantes contienen la misma información. Así, si existen
diferentes modos de obtener la misma información, y esas formas pueden conducir
a datos almacenados en distintos sitios. El problema surge al modificar esa
información, si lo sólo cambiamos esos valores en algunos de los lugares en que se
guardan, las consultas que hagamos más tarde podrán dar como resultado
respuestas inconsistentes (es decir, diferentes). Puede darse el caso de que dos
aplicaciones diferentes proporcionen resultados distintos para el mismo dato.
Integridad de datos
^

Cuando se trabaja con bases de datos, generalmente los datos se reparten entre
varios ficheros. Si, como pasa con MySQL, la base de datos está disponible para
varios usuarios de forma simultánea, deben existir mecanismos que aseguren que
las interrelaciones entre registros se mantienen coherentes, que se respetan las
dependencias de existencia y que las claves únicas no se repitan.
Por ejemplo, un usuario no debe poder borrar una entidad de una base de datos, si
otro usuario está usando los datos de esa entidad. Este tipo de situaciones son
potencialmente peligrosas, ya que provocan situaciones con frecuencia imprevistas.
Ciertos errores de integridad pueden provocar que una base de datos deje de ser
usable.
Los problemas de integridad se suelen producir cuando varios usuarios están
editando datos de la misma base de datos de forma simultánea. Por ejemplo, un
usuario crea un nuevo registro, miestras otro edita uno de los existentes, y un
tercero borra otro. El DBMS debe asegurar que se pueden realizar estas tareas sin
que se produzcan errores que afecten a la integridad de la base de datos.

2 Diseño de bases de datos: El Modelo conceptual


El modelo Entidad-Relación
^

En este capítulo, y en los siguientes, explicaremos algo de teoría sobre el diseño


bases de datos para que sean seguras, fiables y para que tengan un buen
rendimiento.
La teoría siempre es algo tedioso, aunque intentaremos que resulte amena, ya que
es necesaria. Aconsejo leer con atención estos capítulos. En ellos aprenderemos
técnicas como el "modelado" y la "normalización" que nos ayudarán a diseñar bases
de datos, mediante la aplicación de ciertas reglas muy sencillas. Aprenderemos a
identificar claves y a elegir claves principales, a establecer interrelaciones, a
seleccionar los tipos de datos adecuados y a crear índices.
Ilustraremos estos capítulos usando ejemplos sencillos para cada caso, en próximos
capítulos desarrollaremos el diseño de algunas bases de datos completas.
Como siempre que emprendamos un nuevo proyecto, grande o pequeño, antes de
lanzarnos a escribir código, crear tablas o bases de datos, hay que analizar el
problema sobre el papel. En el caso de las bases de datos, pensaremos sobre qué
tipo de información necesitamos guardar, o lo que es más importante: qué tipo de
información necesitaremos obtener de la base de datos. En esto consiste el
modelado de bases de datos.
Modelado de bases de datos
^

El proceso de trasladar un problema del mundo real a un ordenador, usando bases


de datos, se denomina modelado.
Para el modelado de bases de datos es necesario seguir un procedimiento
determinado. Pero, cuando el problema a modelar es sencillo, con frecuencia
estaremos tentados de pasar por alto algunos de los pasos, y crear directamente
bases de datos y tablas. En el caso de las bases de datos, como en cualquier otra
solución informática, esto es un gran error. Siempre será mejor seguir todos los
pasos del diseño, esto nos ahorrará (con toda seguridad) mucho tiempo más
adelante. Sobre todo si alguna vez tenemos que modificar la base de datos para
corregir errores o para implementar alguna característica nueva, algo que sucede
con mucha frecuencia.
Además, seguir todo el proceso nos facilitará una documentación necesaria para
revisar o mantener la aplicación, ya sea por nosotros mismos o por otros
administradores o programadores.
La primera fase del diseño de una aplicación (la base de datos, generalmente, es
parte de una aplicación), consiste en hablar con el cliente para saber qué quiere, y
qué necesita realmente.
Esto es una tarea ardua y difícil. Generalmente, los clientes no saben demasiado
sobre programación y sobre bases de datos, de modo que normalmente, no saben
qué pueden pedir. De hecho, lo más habitual es que ni siquiera sepan qué es lo que
necesitan.
Los modelos conceptuales ayudan en esta fase del proyecto, ya que facilitan una
forma clara de ver el proceso en su totalidad, puesto que se trata de una
representación gráfica. Además, los modelos conceptuales no están orientados a
ningún sistema físico concreto: tipo de ordenador, sistema operativo, SGBD, etc. Ni
siquiera tienen una orientación informática clara, podrían servir igualmente para
explicar a un operario cómo funciona el proceso de forma manual. Esto facilita que
sean comprensibles para personas sin conocimientos de programación.
Además de consultar con el cliente, una buena técnica consiste en observar el
funcionamiento del proceso que se quiere informatizar o modelar. Generalmente
esos procesos ya se realizan, bien de una forma manual, con ayuda de libros o
ficheros; o bien con un pequeño apoyo ofimático.
Con las bases de datos lo más importante es observar qué tipo de información se
necesita, y que parte de ella se necesita con mayor frecuencia. Por supuesto,
modelar ciertos procesos puede proporcionarnos ayudas extra sobre el proceso
manual, pero no debemos intentar que nuestra aplicación lo haga absolutamente
todo, sino principalmente, aquello que es realmente necesario.
Cuando los programas se crean sin un cliente concreto, ya sea porque se pretende
crear un producto para uso masivo o porque sólo lo vamos a usar nosotros, el papel
del cliente lo jugaremos nosotros mismos, pero la experiencia nos enseñará que
esto no siempre es una ventaja. Es algo parecido a los que pasa con los abogados o
los médicos. Se suele decir que "el abogado que se defiende a si mismo tiene un
necio por cliente". En el caso de los programadores esto no es tan exagerado; pero
lo cierto es que, demasiadas veces, los programadores somos nuestros peores
clientes.
Toda esta información recogida del cliente debe formar parte de la documentación.
Nuestra experiencia como programadores debe servir, además, para ayudar y guiar
al cliente. De este modo podemos hacerle ver posibles "cuellos de botella",
excepciones, mejoras en el proceso, etc. Así mismo, hay que explicar al cliente qué
es exactamente lo que va a obtener. Cuando un cliente recibe un producto que no
esperaba, generalmente no se siente muy inclinado a pagar por él.
Una vez recogidos los datos, el siguiente paso es crear un modelo conceptual. El
modelo más usado en bases de datos es el modelo Entidad-Relación, que es el que
vamos a explicar en este capítulo.
Muy probablemente, esta es la parte más difícil de la resolución del problema. Es la
parte más "intelectual" del proceso, en el sentido de que es la que más requerirá
pensar. Durante esta fase, seguramente, deberemos tomar ciertas decisiones, que
en cierto modo limitarán en parte el modelo. Cuando esto suceda, no estará de más
consultar con el cliente para que estas decisiones sean, al menos, aceptadas por él, y
si es posible, que sea el propio cliente el que las plantee. ;-)
La siguiente fase es convertir el modelo conceptual en un modelo lógico. Existen
varios modelos lógicos, pero el más usado, el que mejor se adapta a MySQLy el que
por lo tanto explicaremos aquí, es el modelo Relacional. La conversión entre el
modelo conceptual y el lógico es algo bastante mecánico, aunque no por ello será
siempre sencillo.
En el caso del modelo lógico relacional, existe un proceso que sirve para verificar
que hemos aplicado bien el modelo, y en caso contrario, corregirlo para que sea así.
Este proceso se llama normalización, y también es bastante mecánico.
El último paso consiste en codificar el modelo lógico en un modelo físico. Este
proceso está ligado al DBMS elegido, y es, seguramente, la parte más sencilla de
aplicar, aunque nos llevará mucho más tiempo y espacio explicarla, ya que en el
caso del DBMS que nos ocupa (MySQL), se requiere el conocimiento del lenguaje
de consulta SQL.
Modelo Entidad-Relación
^

En esencia, el modelo entidad-relación (en adelante E-R), consiste en buscar las


entidades que describan los objetos que intervienen en el problema y las relaciones
entre esas entidades.
Todo esto se plasma en un esquema gráfico que tiene por objeto, por una parte,
ayudar al programador durante la codificación y por otra, al usuario a comprender
el problema y el funcionamiento del programa.
Definiciones
^

Pero lo primero es lo primero, y antes de continuar, necesitamos entendernos. De


modo que definiremos algunos conceptos que se usan en el modelo E-R. Estas
definiciones nos serán útiles tanto para explicar la teoría, como para entendernos
entre nosotros y para comprender otros textos sobre el modelado de bases de datos.
Se trata de conceptos usados en libros y artículos sobre bases de datos, de modo
que será interesante conocerlos con precisión.
Entidad
Estamos hablando del modelo Entidad-Relación, por lo tanto este es un concepto
que no podemos dejar sin definir.

Entidad: es una representación de un objeto individual concreto del mundo real.

Si hablamos de personas, tu y yo somos entidades, como individuos. Si hablamos de


vehículos, se tratará de ejemplares concretos de vehículos, identificables por su
matrícula, el número de chasis o el de bastidor.
Conjunto de entidades: es la clase o tipo al que pertenecen entidades con
características comunes.

Cada individuo puede pertenecer a diferentes conjuntos: habitantes de un país,


empleados de una empresa, miembros de una lista de correo, etc. Con los vehículos
pasa algo similar, pueden pertenecer a conjuntos como un parque móvil, vehículos
de empresa, etc.
En el modelado de bases de datos trabajaremos con conjuntos de entidades, y no
con entidades individuales. La idea es generalizar de modo que el modelo se ajuste
a las diferentes situaciones por las que pasará el proceso modelado a lo largo de su
vida. Será el usuario final de la base de datos el que trabaje con entidades. Esas
entidades constituirán los datos que manejará con la ayuda de la base de datos.

Atributo: cada una de las características que posee una entidad, y que agrupadas
permiten distingirla de otras entidades del mismo conjunto.

En el caso de las personas, los atributos pueden ser características como el nombre
y los apellidos, la fecha y lugar de nacimiento, residencia, número de
identificación... Si se trata de una plantilla de empleados nos interesarán otros
atributos, como la categoría profesional, la antigüedad, etc.
En el caso de vehículos, los atributos serán la fecha de fabricación, modelo, tipo de
motor, matrícula, color, etc.
Según el conjunto de entidades al que hallamos asignado cada entidad, algunos de
sus atributos podrán ser irrelevantes, y por lo tanto, no aparecerán; pero también
pueden ser necesarios otros. Es decir, el conjunto de atributos que usaremos para
una misma entidad dependerá del conjunto de entidades al que pertenezca, y por lo
tanto del proceso modelado.
Por ejemplo, no elegiremos los mismos atributos para personas cuando formen
parte de modelos diferentes. En un conjunto de entidades para los socios de una
biblioteca, se necesitan ciertos atributos. Estos serán diferentes para las mismas
personas, cuando se trate de un conjunto de entidades para los clientes de un
banco.

Dominio: conjunto de valores posibles para un atributo.

Una fecha de nacimiento o de matriculación tendrá casi siempre un dominio,


aunque generalmente se usará el de las fechas posibles. Por ejemplo, ninguna
persona puede haber nacido en una fecha posterior a la actual. Si esa persona es un
empleado de una empresa, su fecha de nacimiento estará en un dominio tal que
actualmente tenga entre 16 y 65 años. (Por supuesto, hay excepciones...)
Los números de matrícula también tienen un dominio, así como los colores de
chapa o los fabricantes de automóviles (sólo existe un número limitado de empresas
que los fabrican).
Generalmente, los dominios nos sirven para limitar el tamaño de los atributos.
Supongamos que una empresa puede tener un máximo de 1000 empleados. Si uno
de los atributos es el número de empleado, podríamos decir que el dominio de ese
atributo es (0,1000).
Con nombres o textos, los dominios limitarán su longitud máxima.
Sin embargo, los dominios no son demasiado importantes en el modelo E-R, nos
preocuparemos mucho más de ellos en el modelo relacional y en el físico.
Relación
El otro concepto que no podemos dejar de definir es el de relación. Aunque en
realidad, salvo para nombrar el modelo, usaremos el término interrelación, ya
que relación tiene un significado radicalmente diferente dentro del modelo
relacional, y esto nos puede llevar a error.

Interrelación: es la asociaciación o conexión entre conjuntos de entidades.

Tengamos los dos conjuntos: de personas y de vehículos. Podemos encontrar una


interrelación entre ambos conjuntos a la que llamaremos posee, y que asocie una
entidad de cada conjunto, de modo que un individuo posea un vehículo.

Grado: número de conjuntos de entidades que intervienen en una interrelación.

De este modo, en la anterior interrelación intervienen dos entidades, por lo que


diremos que es de grado 2 o binaria. También existen interrelaciones de grado 3, 4,
etc. Pero las más frecuentes son las interrelaciones binarias.
Podemos establecer una interrelación ternaria (de grado tres) entre personas, de
modo que dos personas sean padre y madre, respectivamente, de una tercera.
Existen además tres tipos distintos de interelaciones binarias, dependiendo del
número de entidades del primer conjunto de entidades y del segundo. Así
hablaremos de interrelaciones 1:1 (uno a uno), 1:N (uno a muchos) y N:M (muchos
a muchos).
Nuestro ejemplo anterior de "persona posee vehículo" es una interrelación de 1:N,
ya que cada persona puede no poseer vehículo, poseer uno o poseer más de uno.
Pero cada vehículo sólo puede ser propidad de una persona.
Otras relaciones, como el matrimonio, es de 1:1, o la de amistad, de N:M.
Clave
Estaremos de acuerdo en que es muy importante poder identificar claramente cada
entidad y cada interrelación. Esto es necesario para poder referirnos a cada
elemento de un conjunto de entidades o interrelaciones, ya sea para consultarlo,
modificarlo o borrarlo. No deben existir ambigüedades en ese sentido.
En principio, cada entidad se puede distinguir de otra por sus atributos. Aunque un
subconjunto de atributos puedan ser iguales en entidades distintas, el conjunto
completo de todos los atributos no se puede repetir nunca. Pero a menudo son sólo
ciertos subconjuntos de atributos los que son diferentes para todas las entidades.

Clave: es un conjunto de atributos que identifican de forma unívoca una entidad.

En nuestro ejemplo de las entidades persona, podemos pensar que de una forma
intuitiva sabemos qué atributos distinguen a dos personas distintas. Sabemos que el
nombre por si mismo, desde luego, no es uno de esos atributos, ya que hay muchas
personas con el mismo nombre. A menudo, el conjunto de nombre y apellidos
puede ser suficiente, pero todos sabemos que existen ciertos nombres y apellidos
comunes que también se repiten, y que esto es más probable si se trata de personas
de la misma familia.
Las personas suelen disponer de un documento de identidad que suele contener un
número que es distinto para cada persona. Pero habrá aplicaciones en que este
valor tampoco será una opción: podemos tener, por ejemplo, personas en nuestra
base de datos de distintas nacionalidades, o puede que no tengamos acceso a esa
información (una agenda personal no suele contener ese tipo de datos), también
hay personas, como los menores de edad, que generalmente no disponen de
documento de identidad.
Con otros tipos de entidad pasa lo mismo. En el caso de vehículos no siempre será
necesario almacenar el número de matrícula o de bastidor, o tal vez no sea un valor
adecuado para usar como clave (ya veremos más adelante que en el esquema físico
es mucho mejor usar valores enteros).
En fin, que en ocasiones, por un motivo u otro, creamos un atributo artificial para
usarlo sólo como clave. Esto es perfectamente legal en el modelo E-R, y se hace
frecuentemente porque resulta cómodo y lógico.
Claves candidatas
Una característica que debemos buscar siempre en las claves es que contengan el
número mínimo de atributos, siempre que mantengan su función. Diremos que una
clave es mínima cuando si se elimina cualquiera de los atributos que la componen,
deja de ser clave. Si en una entidad existe más de una de estas claves mínimas, cada
una de ellas es una clave candidata.

Clave candidata: es cada una de las claves mínimas existente en un conjunto de


entidades.

Clave principal
Si disponemos de varias claves candidatas no usaremos cualquiera de ellas según la
ocasión. Esto sería fuente de errores, de modo que siempre usaremos la misma
clave candidata para identificar la entidad.

Clave principal: (o primaria), es una clave candidata elegida de forma arbitraria,


que usaremos siempre para identificar una entidad.

Claves de interrelaciones
Para identificar interrelaciones el proceso es similar, aunque más simple. Tengamos
en cuenta que para definir una interrelación usaremos las claves primarias de las
entidades interrelacionadas. De este modo, el identificador de una interrelación es
el conjunto de las claves primarias de cada una de las entidades interrelacionadas.
Por ejemplo, si tenemos dos personas identificadas con dos valores de su clave
primaria, clave1 y clave2, y queremos establecer una interrelación "es padre de"
entre ellas, usaremos esas dos claves. El identificador de la interrelación
será clave1,clave2.
Entidades fuertes y débiles
A menudo la clave de una entidad está ligada a la clave principal de otra, aún sin
tratarse de una interrelación. Por ejemplo, supongamos una entidad viaje, que usa
la clave de un vehículo y añade otros atributos como origen, destino, fecha,
distancia. Decimos que la entidad viaje es una entidad débil, en contraposición a la
entidad vehículo, que es una entidad fuerte. La diferencia es que las entidades
débiles no necesitan una clave primaria, sus claves siempre están formadas como la
combinación de una clave primaria de una entidad fuerte y otros atributos.
Además, la existencia de las entidades débiles está ligada o subordinada a la de la
fuerte. Es decir, existe una dependencia de existencia. Si eliminamos un vehículo,
deberemos eliminar también todos los viajes que ese vehículo ha realizado.
Dependencia de existencia

Dependencia de existencia: decimos que existe una dependencia de existencia


entre una entidad, subordinada, y otra, dominante, cuando la eliminación de la
entidad dominante, conlleva también la eliminación de la entidad o entidades
subordinadas.

Desde cierto punto de vista, podemos considerar que las entidades dominantes y
sus entidades subordinadas forman parte de una misma entidad. Es decir, una
entidad está formada por ella misma y sus circunstancias (citando a Ortega :-). Esas
circunstancias podrían ser, en el caso de nuestro vehículo, además de los viajes que
ha hecho, los dueños que ha tenido, las revisiones que se le han efectuado, averías,
etc. Es decir, todo su historial.

Potrebbero piacerti anche