domingo, 27 de agosto de 2023

Ciclo For

El ciclo for es uno de los más utilizados en programación debido a que permite repetir varias instrucciones (pasos) un cierto número de ocasiones (por ejemplo, 10 veces). Se emplea en el recorrido de vectores, matrices y estructuras, entre otros.

Sobre sus características se puede mencionar que:

Siempre se hace uso de una variable (contador) que incrementará su valor automáticamente y ayudará a determinar si se continúa o finaliza el ciclo.

El contador deberá inicializarse con un valor, generalmente 0 ó 1, dependiendo de lo que se esté realizando.

Un ciclo puede contener otro ciclo dentro de sí (a esto se le denomina ciclo anidado). Nunca se debe utilizar el mismo nombre de la variable (contador) en ambos ciclos, pues el programa no podrá determinar cuándo se finaliza el ciclo.

El ciclo controlado por contador.

El ciclo for es una estructura de control cíclica, también conocida como ciclo controlado por contador. Este ciclo es muy sencillo, ya que se conoce con exactitud cuántas veces se va a llevar a cabo la misma tarea.

Se define una variable de control, el contador, a la que se le incrementa o decrementa de uno en uno. La acción o acciones dentro del cuerpo del ciclo se repiten hasta que la variable de control llegue al valor final determinado en el encabezado del ciclo.

En español, la palabra for suele ser traducida como “para“, pero considero que, por su funcionamiento, y para usarlo dentro de un seudocódigo, la traducción más adecuada es “desde“. Y esto debido a que precisamente el comportamiento del ciclo se puede describir así: repetir n acciones desde que la variable de control tome el valor inicial hasta el valor final.

El ciclo for está disponible en casi todos los lenguajes de programación imperativa, pero con diferencias sustanciales en su sintaxis.

El ciclo for tradicional.

La sintaxis del ciclo for “tradicional” se puede observar en lenguajes de programación como PascalALGOLBASICModula Ada, entre otros. Para mostrar esta sintaxis, te presento la estructura del ciclo for usando el lenguaje de programación Pascal:

Dado que uno de los primeros lenguajes de programación en incluir la estructura cíclica for fue ALGOL, se considera a este tipo de sintaxis la esencia del ciclo for. Es decir, indicar únicamente los valores de inicio y de fin de la variable de control, y simplemente especificar si la variable se incrementará o decrementará. (En Pascal esto se logra con la palabra downto).

El ciclo for de Java

La sintaxis de la estructura cíclica for en el lenguaje Java no obedece a la sintaxis tradicional presentada en el apartado anterior. De hecho, utiliza la sintaxis del lenguaje C, teniendo un encabezado más complejo, pero que también ofrece más posibilidades que el tradicional.  Más adelante describiré los componentes del encabezado de esta versión del ciclo for.

En la figura 1 te muestro la forma en la que se escribe este ciclo en tres notaciones: diagrama de flujo, seudocódigo y el lenguaje Java.

Componentes del ciclo for.

Como todo ciclo, esta estructura de control cuenta con dos componentes: el encabezado y el cuerpo del ciclo. Pero es el encabezado en lenguaje Java el que presenta una composición interesante, la cual te muestro en la figura 2.


Como puedes ver, el encabezado se compone de tres partes:

  1. En la inicialización, se le debe asignar a la variable de control el valor inicial. También puede declararse a la variable inicial, una característica que explicaré más tarde.
  2. En la condición  se establece el valor final de la variable de control, es decir, hasta dónde llegará. Típicamente en lenguajes de programación como Pascal, solo es necesario escribir el valor final. Pero en Java es necesario formar una expresión relacional, de tal forma que tiende  a comportarse como un ciclo while: hacer esta acción mientras el valor de la variable de control llegue a tal límite.
  3. En la última parte se establece la forma en la que la variable de control cambiará su valor dentro del ciclo. Esto puede hacerse de una de dos formas: ya sea incrementando o decrementando el valor inicial. La forma en cómo se mueve la variable de control determina también el operador relacional usado en la condición fin, como se aprecia en la tabla de la figura 3:


Ciclo For

 El ciclo For



La instrucción for permite repetir una instrucción o una instrucción compuesta un número especificado de veces. El cuerpo de una instrucción for se ejecuta cero o más veces hasta que una condición opcional sea false. Puede utilizar expresiones opcionales dentro de la instrucción for para inicializar y cambiar valores durante la ejecución de la instrucción for.

El ciclo for es una estructura de control de flujo repetitiva, que se caracteriza por ser un ciclo controlado por contador.  En este artículo explicaré su funcionamiento, los elementos que lo componen y los errores comunes en su uso. Todo esto acompañado de ejemplos que incluyen algoritmos, programas en lenguajes Java y animaciones.

¿Cómo se utiliza la estructura for?


En general, la estructura for se usa en aquellas situaciones en las cuales conocemos la cantidad de veces que queremos que se ejecute el bloque de instrucciones. Ejemplo: cargar 10 números, ingresar 5 notas de alumnos, etc. Conocemos de antemano la cantidad de veces que queremos que el bloque se repita.

El funcionamiento de la estructura for es el siguiente:


1) Se evalúa la expresión de inicialización.
2) Se evalúa la condición. Si el resultado es falso, termina la ejecución de la estructura for. Si es verdadero, sigue por el paso 3.
3) Se ejecuta el bloque de instrucciones dentro de la estructura.
4) Se evalúa la expresión final, que normalmente altera la variable de control, y se vuelve al paso segundo.

Elementos del for:

  • Variable de control: Prácticamente un mandato impuesto por el uso habitual es utilizar la letra i Iterador como variable de control, o bien sus sucesoras en caso de bucles anidados. El uso de esta letra críptica quizás a primera vista es sin embargo una excelente forma de aportar agilidad de lectura al código por su uso tan extensivo. Como raras veces los bucles anidados superan las tres dimensiones (por una sencilla cuestión de explosión exponencial), las letras i, j y k suelen ser las únicas relacionadas con este uso. En C se define en el primer parámetro de la instrucción junto con la inicialización (opcional).
  • Inicialización de la variable de control: En pseudolenguaje se pide explicitarlo (es la sección := ValorInicial), sin embargo, otros lenguajes más permisivos como C no lo requieren de forma obligatoria. De todos modos, la práctica de utilizar variables de control que no se inicializan en el bucle no es recomendada para la legibilidad del código. En C se define en el primer parámetro del bucle junto con la variable de control.
  • Condición de control: En pseudolenguaje se ve representado por el valor final que puede tomar la variable de control (la sección A ValorFinal). En C es el segundo parámetro y puede ser cualquier condición (ni siquiera es obligación que esté la variable de control, aunque una vez más, esto no se considera una buena práctica).
  • Incremento: En pseudolenguaje se toma por defecto el valor 1, aunque puede explicitarse por medio de la sentencia paso = ValorPaso cualquier número entero (léase bien entero, o sea que técnicamente podemos decrementar). En C es el último parámetro.
  • Cuerpo: Es lo que se hará en cada iteración, pueden ser una o más instrucciones. En pseudolenguaje pesa la restricción de no poder alterar el valor de la variable de control; esto no es requerido en C, pero no se considera una buena práctica.

Sintaxis del ciclo for


en donde,for, palabra reservada que indica el inicio del ciclo {}, Todas las instrucciones dentro de las llaves se ejecutarán como una instrucción como parte del ciclo for.

Expresión-de-inicio: es la inicialización de una variable, la cual sirve como punto de inicio a partir del cual se va a ejecutar el bucle.

Condición: Establece la condición en la que debe detenerse la ejecución del ciclo. El bucle se ejecutará mientras la condición sea verdadera.

Incremento: Establece el incremento que se hará en la variable inicializada en Expresión de inicio cada ciclo que se ejecute. Los incrementos pueden ser unitarios (incrementos en 1) o en otro incremento. Así mismo el contador puede decrementarse en lugar de incrementarse.

sábado, 12 de agosto de 2023

Normalizacion De Bases De Datos

 

Fases de normalización de base de datos

Ahora bien, ¿cómo abordar el proceso de normalización de base de datos?

Para hacerlo fácil, se recomienda seguir las fases de normalización de base de datos a partir del nivel 1. Este es un resumen muy general del proceso, cuyos detalles debes revisar con los diseñadores de la base de datos:

  • Fase 1: Crea tablas diferentes para cada valor, o identifica los campos repetidos en una tabla, colócalos en tablas diferentes y asocia una clave a cada uno.
  • Fase 2: Crea las relaciones entre los valores de tablas diferentes. Por ejemplo, entre una tabla de Colores y una tabla de Tallas de un producto de ropa.
  • Fase 3: Marca las relaciones entre las columnas de clave principal y las columnas sin clave.

Los beneficios de la normalización de bases de datos

Obtener un mapa lógico de los datos

El almacenamiento y mapeo de datos es más lógico y, por tanto, redobla su utilidad para los departamentos que empleen las tablas. Normalizar bases de datos de producto hace que la información se organice y guarde siempre en su lugar correspondiente, sin duplicados ni versiones desactualizadas.

Dar consistencia a los datos

Se incrementa la fiabilidad de los datos para todos los implicados que acceden a las bases, y hay mayor consistencia en la información almacenada. Se evita guardar versiones desactualizadas, encontrar datos duplicados en diferentes partes de la empresa y distintos tipos de relaciones entre datos de producto, sin una jerarquía clara.

Crear una relación de datos sólida

La principal ventaja de normalizar bases de datos, aparte de la eliminación de redundancias, es el diseño de una integridad de datos que muestra claramente cómo se relaciona información de distintas tablas entre sí. Esto facilita la identificación de las relaciones de datos y corrige cualquier aislamiento o inconsistencia de información que pudiese haber en la base de datos de producto.

Conectar la base de datos con otros sistemas

Es fundamental contar con un buen programa para normnalizar bases de datos, como un PIM para la gestión y centralización de la información de producto. Con una buena organización de base, instalar este sistema es más rápido y sencillo, y podrá conectarse fácilmente a las fuentes de datos de la empresa sin atrasos ni necesidad de corregir problemas de sincronización.

Reforzar la seguridad de los datos

Se incrementa la seguridad, ya que la normalización hace que los datos tengan una localización más precisa.

Ahorrar costes de mantenimiento

Es mucho más sencillo mantener las bases de datos que ya tienes y realizar nuevos añadidos. También es más rápido conectar las fuentes de datos a cualquier sistema interno o externo, pues no serán necesarias revisiones para asegurar que los datos enviados son correctos.

Conclusión: ¿debes normalizar tus bases de datos o no?

Depende de cada caso, pero como norma general lo más recomendable es que si puedes, te lances a por ello.

Entre los ejemplos para decidir si normalizar bases de datos en Excel, puedes analizar:

  • Si empleas bases de datos NoSQL.
  • Si cuentas con los recursos adecuados (ya que es un proceso costoso que necesitará dedicación completa durante un tiempo).
  • Si trabajas con diseños muy complejos, que no casan bien con una normalización típica.
  • Si estás creando tan sólo una base de datos de prueba, que no necesita una formalización perfecta desde el principio.



Normalizacion De Bases De Datos

 

¿Por qué se normalizan las bases de datos?

Los principales motivos para normalizar las bases de datos son evitar la duplicidad de datos, garantizar la mínima redundancia y lograr la máxima estabilidad. Además, aplicando este proceso, generamos una estructura comprensible y similar a la situación que ellos representan.

En lo que a hardware se refiere, logramos una optimización del espacio físico de almacenamiento.

Con la normalización también tenemos ventajas en la futura operación de las bases de datos. Evitamos problemas de actualización de los datos en las tablas. Facilitamos el acceso e interpretación de los datos, reduciendo el tiempo y la complejidad de las revisiones de las bases de datos. Protegemos la integridad de los datos previniendo borrados indeseados de datos.

Normalizar una base de datos

Antes de detallar la técnica de normalización, repasemos brevemente unos conceptos del modelo relacional:

  • Una base de datos es un conjunto de tablas.
  • Una tabla está compuesta por registros denominados también como filas o tuplas.
  • Un registro está compuesto por campos a los que también se llaman columnas o atributos.
  • Las claves nos permiten acceder a los registros de una tabla.
  • Una clave candidata es un campo o una combinación de campos que identifican una fila de forma exclusiva.
  • Una clave primaria es una clave candidata que ha sido designada para identificar de forma única los registros de una tabla.
  • Una clave foránea o externa se compone de uno o varios atributos, que forman una clave primaria en otra tabla a la cual se desea relacionar.
  • Las bases de datos relacionales son aquellas en las que cualquier tabla puede relacionarse con otra tabla a través de claves.

¿Por que se necesita la normalizacion de datos?

La normalización de base de datos ayuda a evitar estos efectos negativos ya desde el diseño de nuevas bases de datos y permite también comprobar si las existentes garantizan la integridad de datos o referencial necesaria. Lo más recomendable es proceder a normalizar los datos antes de crear las tablas de la base de datos, aunque siempre es preferible asegurar su integridad y, aunque ya se cuente con las bases de datos y no sean de nueva creación, utilizar estas técnicas para ponerlas a prueba, teniendo claros los objetivos a alcanzar en el proceso.

Objetivos de la normalización de base de datos

  • Corregir datos duplicados y anomalías en la base de datos.
  • Evitar la creación y actualización de relaciones y dependencias no deseadas entre datos.
  • Prevenir borrados indeseados de datos.
  • Optimizar el espacio de almacenamiento.
  • Reducir el tiempo y complejidad de revisión de las bases de datos cuando es necesario introducir nuevos tipos de datos.
  • Facilitar el acceso e interpretación de los datos a los usuarios y aplicaciones que los usan.

Tipos de normalización de bases de datos

Las bases de datos pueden clasificarse por su nivel de normalización, del nivel 1 al 5 (hay quien incluso habla de 8 tipos distintos).

Esto significa que el nivel 1, o 1NF, es la forma más básica y simple de normalizar bases de datos, hasta alcanzar la más sofisticada de todas, o 5NF. Esta última se emplea raras veces y es más común ver los tres primeros tipos.

  • 1NF: Elimina duplicados y crea tablas separadas para grupos de datos relacionados.
  • 2NF: Elimina subgrupos de datos en múltiples filas de una tabla y crea tablas nuevas, con relaciones entre ellas.
  • 3NF: Elimina columnas que no dependen de la clave principal.
  • 4NF: Desaparecen todas las dependencias entre múltiples valores.

Los requisitos para cumplir cada nivel de normalización se van volviendo cada vez más complejos, aunque esto no quiere decir que sean mejores para todas las empresas.

Conocer el tipo de negocio y las necesidades organizativas concretas de tu negocio es clave para elegir el proceso de normalización de base de datos correcto (o incluso la combinación de reglas de distintos tipos de normalización).



Normalizacion De Bases De Datos

 Normalizacion De Bases De Datos

La normalización de bases de datos es un proceso que consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Con objeto de minimizar la redundancia de datos, facilitando su gestión posterior (Wikipedia).

Una vez obtenido el esquema relacional resultantes del modelo entidad relación que representaba la base de datos, normalmente tendremos una buena base de datos. Pero otras veces, debido a fallos en el diseño o a problemas indetectables en esta fase del diseño, tendremos un esquema que puede producir una base de datos que incorpore estos problemas:

Redundancia. Se llama así a los datos que se repiten continua e innecesariamente por las tablas de las bases de datos.

Ambigüedades. Datos que no clarifican suficientemente el registro al que representan.

¿Qué es la normalización de bases de datos?

Es el proceso de organizar los datos de una base de datos, valga la redundancia. Debemos tener en cuenta la creación de tablas y las reglas que se usan para definir las relaciones, estas reglas son diseñadas para proteger los datos, y para que la base de datos sea flexible con el fin de eliminar redundancias y dependencias incoherentes.

¿Por qué se normalizan las bases de datos?


Las bases de datos relacionales se normalizan para:

  • Evitar la redundancia de los datos.
  • Disminuir problemas de actualización de los datos en las tablas.
  • Proteger la integridad de los datos.
  • Facilitar el acceso e interpretación de los datos.
  • Reducir el tiempo y complejidad de revisión de las bases de datos.
  • Optimizar el espacio de almacenamiento.
  • Prevenir borrados indeseados de datos.

Requisitos de la normalización

Para que las tablas de nuestra BD estén normalizadas deben cumplir las siguientes reglas:

  • Cada tabla debe tener su nombre único.
  • No puede haber dos filas iguales.
  • No se permiten los duplicados.
  • Todos los datos en una columna deben ser del mismo tipo.

Reglas o niveles de normalización

Para normalizar una base de datos existen principalmente 3 reglas, las cuales se deberían cumplir para evitar redundancias e incoherencias en las dependencias. A estas reglas se les conoce como "Forma normal" qué va de la 1 a la 3 y si la base de datos cumple con cada regla se dice que está en la "primera o segunda o tercera forma normal".

Primera forma normal

  • Elimine los grupos repetidos de las tablas individuales.
  • Cree una tabla independiente para cada conjunto de datos relacionados.
  • Identifique cada conjunto de datos relacionados con una clave principal.

Segunda forma normal

  • Cree tablas independientes para conjuntos de valores que se apliquen a varios registros.
  • Relacione estas tablas con una clave externa.

Tercera forma normal

  • Elimine los campos que no dependan de la clave.

Cada nivel de normalización exige cierta complejidad, pero debes analizar si en realidad necesitas llegar hasta la tercera forma normal, debes buscar lo que mejor se adapte a la empresa.

 

domingo, 6 de agosto de 2023

Direcciones IP

 

¿Qué es una IP fija?

La IP fija es un identificador único que permite disponer de una dirección exclusiva y reconocible en internet como si de un número de teléfono se tratara.

¿Qué tipo de aplicaciones precisan del uso de IP fija?

Las aplicaciones que precisan el uso de una IP fija son:
Servidor de correo propio.
• Servidor para alojar una web o Intranet.
• Servidor FTP para ficheros.
• Aplicaciones online.
• Conexiones seguras en una Red Privada Virtual.
• Pasarelas de pago.
• Servicios interactivos: videoconferencia.
• Servicios de vigilancia: telealarma o televigilancia.

Direcciones IP Dinámicas

Una dirección IP dinámica es una dirección IP que el ISP permite utilizar en forma temporal a un usuario. Si una dirección dinámica no está en uso, puede ser asignada automáticamente a un dispositivo diferente. Las direcciones IP dinámicas se asignan a través de DHCP o PPPoE.

¿Qué protección de datos ofrece una IP dinámica?

La ventaja del anonimato que suponían las IP dinámicas se está diluyendo. En consecuencia, el TJUE (Tribunal de Justicia de la Unión Europea) ya definió en 2016 que las direcciones IP dinámicas son datos personales. Al menos cuando los operadores de páginas web tienen los medios legales para identificar a los usuarios detrás de una IP dinámica. Por regla general, los medios legales siempre están a disposición de los operadores de las páginas gracias a la ayuda de las autoridades policiales.

La APED (Agencia Española de Protección de Datos) define los datos personales como cualquier información relativa a una persona que la identifica o permite su identificación. Su postura es muy clara: aunque no siempre se puede identificar a un usuario a través de sus datos de red, se debe asumir bajo cualquier circunstancia que la IP es un dato personal y, por tanto, las direcciones IP fijas y dinámicas deben adherirse a la normativa de protección de datos.

En el caso del almacenamiento no autorizado y técnicamente innecesario de IP dinámicas, se decidirá caso por caso. No obstante, los operadores de páginas web deben mostrar siempre el consentimiento al tratamiento de datos por parte de los visitantes de sus páginas para evitar que se produzcan infracciones y sanciones relativas a la protección de datos.

¿Qué diferencia hay entre una IP fija y una IP dinámica?

A nivel de navegación por internet no hay diferencia entre ellas. La diferencia radica en que con la IP fija se puede hacer uso de aplicaciones específicas que la IP dinámica no permitiría.



sábado, 5 de agosto de 2023

Direcciones IP

 

¿Para qué sirven las IP?

Una IP sirve para identificar, pero también para localizar a un equipo o incluso portal online dentro de una red o de internet. Se puede definir como la “matrícula” de un dispositivo en cualquier red, algo que permite saber cuál es exactamente y cómo se conecta.

Su uso es de suma importancia dentro de las redes de cualquier tipo, ya que sin estas direcciones sería imposible detectar los equipos y distinguirlos, ya que son prácticamente lo que les da un nombre para distinguirlos. Extrapolando a internet, su función es exactamente la misma, permitiendo hasta saber en qué lugar se encuentra el servidor de un portal online o desde dónde se conectan los usuarios que entran a este.

Cómo saber si tu IP es fija o dinámica

No todos los proveedores de servicios de Internet ofrecen la posibilidad de tener una IP fija. Por lo tanto, lo más fácil para saber cuál de ellas tienes o si puedes cambiar tu tipo de IP es contactar directamente con tu operador para consultárselo, ya sea por teléfono o en algunas de sus cuentas de asistencia en redes sociales.

Y el segundo método por el que puedes optar es un poco más rudimentario. La idea sería entrar en páginas como Ver mi IP o CualEsMiIP.com, y consultar en ellas tu dirección IP. Entonces, tomas nota de esta dirección y varios días después vas comprobando periódicamente si esta ha cambiado o no. Pero vamos, si necesitas saberlo de forma urgente, lo mejor es preguntar a tu operador.

Ventajas y Desventajas

Ventajas:
  • Reduce los costos de operación a los proveedores de servicios de Internet (ISP).
  • Reduce la cantidad de IP asignadas (de forma fija) inactivas.
  • El usuario puede reiniciar el router para que le sea asignada otra IP y así evitar las restricciones que muchas webs ponen a sus servicios gratuitos de descarga o visionado multimedia online.
Desventajas:
  • Obliga a depender de servicios que redirigen un host a una IP.

Inteligencia Artificial

  Inventos Los 10 inventos que han revolucionado el mundo en 2022 Inteligencia Artificial: AlphaFold En julio, la empresa Alphabet ( antes G...