UTP
Unidad 2: Diseño de software

El activo más importante de una organización es la información por lo tanto en esta lección aprenderemos como realizar un diseño adecuado para que los datos no sean solo datos sino que se conviertan en información que pueda ser consultado por todos y usada de forma adecuada.

El diseño de datos consiste en descubrir y definir completamente los proceso y características de los datos de la aplicación. Es un proceso de perfeccionamiento gradual que abarca las situaciones más simples como por ejemplo ¿Qué datos requieren la aplicación? ¿Cómo se accederán a esos datos? ¿Cómo se almacenarán los datos?. Si se logra un diseño de datos bueno el acceso a los datos de la aplicación será rápido y fácil de mantener y podrá aceptar sin problemas las futuras mejoras de los datos.

Partes de un diagrama de secuencia
Éxito Gangnam Style

Un ejemplo de diseño de datos adecuado ocurrió con el sitio web Youtube.com y el mega éxito “Gangnam Style” ya que el contador de visitas al video que maneja YouTube estaba destinado para manejar una capacidad máxima de 32 bits es decir 2.147.483.647 una cifra que tiempo atrás se creía inalcanzable pero el Surcoreano hizo cambiar esta situación y los desarrolladores de YouTube gracias a un buen diseño de datos cambiaron el tipo de dato de 32 bits a 64 bits alcanzando una cifra de 4.294.967.296.

El diseño de datos se centra más que todo en el diseño de la estructura de la base de datos y los archivos que van a ser usados por el sistema de información en construcción.

Aunque en el diseñado de datos trataremos de cubrir todos los aspectos fundamentales y necesarios para el diseño adecuado para almacenar, mantener y recuperar datos es imposible precisar al inicio de un diseño cómo, cuándo y dónde se van almacenar los datos, generalmente solo se puede prever el uso de un motor de base de datos relacional.

Para un diseño de datos adecuado se debe incluir la identificación de datos, la definición de datos, la integridad de datos, precauciones que se deben adoptar al diseñar datos.

Identificación de datos:

Los datos nos permiten describir cosas, personas, productos, elementos, clientes entre otras muchas cosas más que nos permiten realizar tareas de clasificación por categorías, organización y mantenimiento.

La identificación de datos es un proceso iterativo que a medida que va iterando va siendo más preciso y de alto nivel, esto permite adquirir más conocimiento sobre los procesos previstos de la aplicación y hacerlos más fiables. Cuando identificamos un dato generalmente se debe documentar la siguiente información: nombre, descripción general (qué es), propiedad (quién es el responsable), características (como se mide, que magnitud puede tener), relaciones, procesos y eventos lógicos ( cómo y cuándo se crea, modifica y utiliza).

Es importante resaltar, los datos tienen muchas características diferentes y es importante cuantificar cada uno de los datos con atributos medibles. Algunas características típicas de los datos son las siguientes:

Es importante resaltar que no todos los datos deben ser incluidos en el desarrollo web y está en nuestra habilidad como desarrolladores saber qué vamos a documentar y qué características van a tener estos datos.

Definición de datos:

A medida que vamos identificando los datos y su estructura general a través de las características de los datos podemos crear relaciones entre ellos y diseñar un poco más nuestra base de datos aplicando lo que hemos visto en cursos anteriores. Para definir los datos se debe realizar las siguientes acciones:

Definir tablas, filas y columnas

Independientemente de la forma en que se almacenan los datos en la aplicación estos generalmente deben estar establecidos en tablas donde por medio de conjuntos de atributos identificaremos al objeto o dato que hacemos relación.

Por ejemplo un dato persona, contendrá los campos Nombre, Dirección y Teléfono y un ID numérico.

Tabla de personas

ID Nombres Dirección Teléfono
108825212 Andrés del Valle xxxxx xxxxxxxx (xxx) xxx xxxx
112313566 Carlos García xxxxx xxxxxxxx (xxx) xxx xxxx
212425667 Isabel Díaz xxxxx xxxxxxxx (xxx) xxx xxxx
4464574577 Bernardo Ramírez xxxxx xxxxxxxx (xxx) xxx xxxx

Insertar claves de índice (llaves primarias)

Para el ejemplo anterior la llave primaria o clave de índice sería el atributo o campo Id el cual nos permite crear una relación con el objeto único persona, ya sea Bernardo Ramírez o Isabel Díaz.

Una clave es un campo especial que proporciona un índice para la recuperación de datos de forma rápida.

Insertar relaciones entre tablas.

Atributos de un mismo dato se relaciona en una tabla y a su vez atributos de otras tablas se pueden relacionar con un atributo que sea único de una tabla, por ejemplo, para la tabla personas, la clave de indice o llave primaría es Id, esto nos permitirá relacionar por ejemplo, con otra tabla que fuera notas de la persona. Tal cual como vimos en el curso de base de datos.

Relaciones entre tablas
Relaciones entre tablas

Asignar tipos de datos

Tipos de motores de bases de datos
Tipos de motores de bases de datos

Por último nos queda solo asignar de forma adecuada los tipos de datos para cada atributo del dato, por ejemplo el atributo nombre de la tabla persona debe ser de tipo texto ya que nadie se llama 1418523578. Estos tipos de datos generalmente van muy relacionado al tipo de base de datos que usemos y pueden cambiar sus caracteristicas de un motor de base de datos a otro. Lo importante a resaltar en esta etapa de diseño es recordar que el espacio de almacenamiento es un recurso finito y que asignar el tipo de dato adecuada en la fase de diseño nos permitirá optimizar y mantener de una forma más adecuada nuestro software.

Integridad de datos:

Con la integridad de datos nos referimos a los valores reales que almacenamos y utilizamos en la base de datos del desarrollo web, debemos garantizar que el desarrollo web solo acepte, almacene y mantenga los datos adecuados generando control sobre los mismos y generando los mecanismos para la corrección de los mismos, hay distintas formas de garantizar la integridad de los datos como lo son:

Normalizar datos

lanzador
Ejemplo: Normalización de tablas

Explica el proceso que consiste en perfeccionar las definiciones de datos para eliminar grupos de dependencias innecesarias.

Este proceso consiste en tratar de minimizar las dependencias entre claves y que exista una mayor cohesion de los datos supongamos que tenemos un dato en el cual existen más de una llave única, la normalización nos enseña que lo ideal es separar estas en datos más pequeños y minimizar riesgos.

Hay 3 niveles de normalizar los datos y es un proceso que deben recordar de las bases de datos

Definir reglas de empresa

Por medio de las reglas de la empresa establecemos el control coherente y correcto para el acceso a datos de la aplicación esto incluye la inserción, actualización, eliminación y vista de los datos, validación de datos, controlar la seguridad de los datos, controlar el acceso a datos de varios archivos.

Proporcionar integridad referencial

Es el mecánismo por el cual garantizamos que se dañen los datos.

Validar los datos

Son los procesos por los cuales comprobamos que los datos almacenados sean válidos, este proceso puede ser antes, durante y después de que el dato este en nuestra base de datos, por ejemplo cuando la persona este llenando los apellidos, podemos crear un filtro en el código de nuestro sistema para asegurarnos que solo se suban caracteres de letras y no números. Que en el campo teléfono solo se permitan valores numéricos, ya cuando los datos estén almacenados en nuestra base de datos podemos convertir los datos de un tipo de dato a otro y por último si deseamos eliminar los datos y no dejar cobertura debemos asegurarnos que estos datos no puedan ser legibles.

Normalización de tablas

Instrucciones:

Observa la diferencia entre una tabla normalizada y otra sin normalizar

Datos sin normalizar

NIF DIRECCIÓN COD_POSTAL POBLACIÓN APELLIDOS NOMBRES
1 C/Marin 16 33698 Oviedo Garcia Francisco
2 C/Tenerias 34 85458 Cigales Sánchez Luisa
2 C/Ramorta 65 54585 Bueu Sánchez Luisa

Datos normalizados

NIF APELLIDOS NOMBRES
1 Garcia Francisco
2 Sánchez Luisa

NIF DIRECCION COD_POSTAL POBLACION
1 C/Marin 16 33698 Oviedo
2 C/Tenerias 34 85458 Cigales
2 C/Ramorta 65 54585 Bueu

Enunciados de verdadero y falso

Instrucciones:

Para cada una de las siguientes afirmaciones responder Falso o Verdadero según corresponda.