mysql archivos - Instituto FOC | Informática ONLINE | FP Informática ONLINE

Especialistas en Informática

Principales gestores de bases de datos de la actualidad.

Un Sistema Gestor de Bases de Datos (SGBD) o DBMA (DataBase Management System) consiste en una colección de programas cuyo objetivo es servir de interfaz entre la base de datos, el usuario y las apps.
Está compuesto por:

  • Lenguaje de definición de datos
  • Lenguaje de manipulación de datos
  • Lenguaje de consulta.

Actualmente, conviven multitud de SGBD en el mercado y suelen ser clasificados en base a la forma en que administran los datos en:

  • Relacionales (SQL)
  • No relacionales (NoSQL)

 

Sistemas Gestores de Bases de Datos Relacionales (SQL)

Este modelo establece relaciones o vínculos entre datos. Cada relación representa un conjunto de entidades con las mismas propiedades y se compone de una serie de filas o registros (las llamadas tuplas), cuyos valores dependen de ciertos atributos (columnas).

Los principales SGBD SQL son: MySQL, MariaDB, SQLite (biblioteca escrita en C que implementa un SGBD), PostgreSQL, Microsoft SQL Server y Oracle.

 

Sistemas Gestores de Bases de Datos No Relacionales (NoSQL)

Una base de datos no relacional no requiere de estructuras de datos fijas (tablas), no da completas garantías de las características ACID y realiza escala horizontal de forma óptima.

Se hace uso de ellas en entornos distribuidos que deban estar continuamente disponibles y operativos y que además gestionan un gran volumen de datos.

Los SGBD NoSQL más utilizados actualmente para administrar este tipo de bases de datos son: MongoDB, Redis y Cassandra.

 

Ten en cuenta que deberás hacer un estudio del tipo de datos que vas a almacenar para escoger el SGBD más adecuado a las necesidades.

Taller técnico: Instalación de MySql y uso de MySql WorkBench

Al finalizar esta sesión serás capaz de:

  • Instalar un servidor MySql
  • Instalar la herramienta cliente MySql Workbench
  • Realizar consultas a través de MySql Workbench
  • Realizar procesos de ingeniería directa
  • Realizar procesos de ingeniería inversa

Contenidos de la sesión:

  • Para poder conseguir los objetivos previstos en la sesión trataremos los siguientes contenidos con un enfoque práctico
    • Instalación y configuración de un servidor de bases de datos MySql
    • Instalación de un entorno cliente para bases de datos Mysql
    • Realización de consultas SQL
    • Creación de modelos E/R a través de MySql Workbench

¿Conoces los fraudes más comunes en Internet?

Desde el nacimiento de internet es indudable la gran cantidad de oportunidades y ventajas que nos ha proporcionado, pero no todo son ventajas y oportunidades, en ocasiones podemos vernos con situaciones de fraude no deseadas.

El supuesto anonimato que ofrece internet, pero sobre todo la capacidad de operar desde cualquier lugar del mundo, hace que se convierta en una oportunidad ideal para la realización de fraudes de todo tipo.

5

Los fraudes más comunes son los siguientes:

  • En las compras ONLINE.
    • Productos falsificados.
    • Cargan importes superiores a los indicados en el producto.
    • Plazos de envío superiores a los indicados.
    • No tienen un teléfono de reclamaciones, solo formularios de contacto de los que nunca tienes respuesta.
  • El Phishing o robo de datos personales, credenciales de acceso a servicios online o los más buscados, información bancaria. Se basa en enviar mails suplantando a la entidad de la cual quieren robar tus credenciales, con la finalidad de que a través de este correo, siguiendo un enlace adjunto, te dirijas a una web que suplanta a la original y en ella introduzcas tus credenciales.
  • Falsos prestamos, a través de las redes sociales estos delincuentes ofrecen préstamos a muy bajo interés. Aprovechándose de la desesperación de la gente, con el engaño de un tipo de interés tan bajo, reclaman dinero por adelantado, para gastos de gestión y una vez recibido el dinero desaparecen.
  • Encontrar pareja por internet. Es este caso lo que más se usa la suplantación de identidad, creando perfiles falsos en redes sociales, con fotos y videos de carácter sexual o comprometedor. Una vez conseguida la confianza de la víctima solicitan cantidades de dinero por cualquier motivo.
  • Falsos alquileres o ventas de vehículos. Consiste en ofrecer alquileres de inmuebles o coches muy baratos. En ambos casos, el engaño suele ser similar: propietarios que se encuentran en el extranjero, y que no pueden salir del país en el que residen por el alto coste que supondría venir a realizar la operación de venta o alquiler. Además alegan que ya no volverán y por lo tanto no tienen interés en seguir residiendo o haciendo uso del bien en cuestión, y que por ese motivo lo alquilan o venden. El resultado siempre es el mismo, no hay inmueble que alquilar ni vehículo que vender.

Con esta información solo queremos dar a conocer estos fraudes a los usuarios de Internet  y que puedan eludirlos y a ser posible denunciarlos.

Los alumnos del certificado de profesionalidad IFCD0210-Desarrollo de Aplicaciones con Tecnologías Web, y el IFCD0110 Confección y publicación de páginas web, son capaces de detectar algunos de estos fraudes y eludirlos.

Los desarrolladores siguen prefiriendo Linux.

Aunque Microsoft ha dado un gran salto en el intento de agradar a los desarrolladores, con el lanzamiento de Windows 10.

Otros sistemas de Microsoft no gustaron mucho a los desarrolladores, pero Windows 10 con la incorporación de subsistemas Linux, empieza a tener cada vez más seguidores.

 

Pero Linux sigue teniendo mucho que decir en cuanto a su uso como plataforma de desarrollo de software y mantiene una serie de atractivos que le hacen retener a los desarrolladores.

Para realizar una comparación justa en igualdad de condiciones, necesitamos de la colaboración de los grandes del software que se niegan a portar o editar su software para Linux.

En cualquier caso la plataforma del pingüino mantiene una serie de ventajas muy visibles que le permiten mantener gran número de seguidores entre los desarrolladores de software.

Bajo mi punto de vista las ventajas de Linux son:

  • Es libre y gratuito, lo que le aporta flexibilidad y coste 0,00€ en licencias.
  • Recursos, permite la optimización del sistema para la compilación o para las herramientas de desarrollo que uses.
  • Es sencillo, aunque tiene fama de complejo, no es complicado de usar y gestionar.
  • Tiene soporte para múltiples lenguajes de programación como C, C++,PHP, HTML, CSS, JavaScript, Perl, Java, Python, etc.

Pero seguro que los desarrolladores que siguen en Linux tienen muchas más razones para trabajar con Linux, en el desarrollo de sus proyectos.

Entre por los alumnos del certificado de profesionalidad IFCD0210-Desarrollo de Aplicaciones con Tecnologías Web, y el IFCD0110 Confección y publicación de páginas web, tenemos partidarios de uno y otro sistema.

¿Cómo medir la velocidad de carga de mi página web?

Para conseguir una buena experiencia entre los usuarios de nuestra página web, tenemos que conseguir que la carga de la página sea lo más rápida posible y conseguir que el tiempo de respuesta sea adecuado. Estas técnicas para la mejora de la experiencia de los usuarios web, son estudiadas por los alumnos del certificado de profesionalidad IFCD0210-Desarrollo de Aplicaciones con Tecnologías Web, y el IFCD0110 Confección y publicación de páginas web.

Para saber qué velocidad de carga tiene nuestra web y su tiempo de respuesta podemos usar dos herramientas gratuitas.

  • Para medir la velocidad, la herramienta de Google denominada PageSpeeds Insights.
  • Para medir el tiempo de carga web, utilizaremos Pingdom.

La herramienta PageSpeeds Insights analiza la página web que le indiquemos, ofreciendo todo tipo de destalles con respecto a las mejoras necesarias para aumentar la velocidad de la página web, para ello mide el rendimiento de las páginas para dispositivos móviles y para ordenadores, puntuando de 0 a 100. De forma que  si una página tiene 90 puntos es que está muy bien optimizada su velocidad. En el ejemplo de abajo vemos justamente lo contrario, solo 38 puntos de 100.

PageSpeed01

 

Para medir el tiempo de carga usaremos Pingdom. Es muy sencillo de usar, solo tenemos que indicar la web a chequear y nos ofrece los resultados.

pingdown01

El resumen de resultados es el siguiente, en el que te indica el tiempo de carga (Load Time), que como podemos ver es muy alto, ya que Google recomienda 1,5 S.

pingdown02

Es muy importante tener presente que el tiempo de carga y la velocidad de respuesta de una página web, pueden ser factores determinantes para el éxito o el fracaso de una página web.

 

Tipos de hojas de estilos que podemos aplicar en nuestra página web.

Las hojas de estilos CSS en inglés Cascading Style Sheets (en español Hojas de Estilo en Cascada), permiten el control total sobre la presentación de las páginas web.

css

Con las  hojas de estilos CSS, puede colocar y definir con precisión la apariencia de los elementos de una página web.

Una hoja de estilos CSS puede ser:

  • Externa
  • Interna
  • En línea

El orden de prioridad de las hojas de estilos es la siguiente:

  1. La hoja de estilos en línea frente a la externa e interna
  2. La hojas de estilos interna frente a la externa

Además debemos tener presente que una página web puede usar uno o varios de estos tipos de CSS a la vez.

Para que sirven los distintos tipos de hojas de estilos.

  • Las CSS externas sirven para aplicar de forma coherente los mismos estilos a un proyecto web. De esta forma una modificación en un estilo se aplica a todas las web de un proyecto, de forma automática.
  • Las CSS internas o también conocidas como incrustadas, sirven para aplicar estilos a una sola web y también para modificar los estilos de heredados de una CSS externa. Las CSS internas se incluyen entre las etiquetas <head> de las páginas web.
  • Las CSS en línea sirven para aplicar las propiedades de las hojas de estilos en cascada a elementos individuales de una página sin tener que reutilizar el estilo. Los estilos en línea se definen dentro de las etiquetas iniciales de los elementos HTML de páginas web.

Por ejemplo:

<div id=»reloj» style=»font-family: ‘DS-Digital’; width: 450px; background-color: black;font-size:100px;color: green ; text-align: center «></div>

En el artículo de la semana pasada, usamos Javascript para aplicar estilos al reloj digital propuesto, mediante estilos en línea. Estos mismos estilos los podemos aplicar mediante:

  • CSS interna, de la siguiente manera:
  1. <script type=»text/javascript»>
  2. function startTime(){
  3. today=new Date();
  4. h=today.getHours();
  5. m=today.getMinutes();
  6. s=today.getSeconds();
  7. m=checkTime(m);
  8. s=checkTime(s);
  9. document.getElementById(‘reloj’).innerHTML=h+»:»+m+»:»+s;
  10. t=setTimeout(‘startTime()’,500);}
  11. function checkTime(i)
  12. {if (i<10) {i=»0″ + i;}return i;}
  13. window.onload=function(){startTime();}
  14. </script>
  15. <div id=»reloj» ></div>
  16. <head>
  17. <style type=»text/css»>
  18. #reloj { font-family: ‘DS-Digital’;
  19.         width: 450px;
  20.                                background-color: black;
  21.                                font-size:100px;
  22.                                color: green ;
  23.                                text-align: center;
  24.                                }
  25.      </style>
  26. </head>
  • CSS externa, de la siguiente manera:

Contenido fichero externo con los estilos CSS. Lo llamaremos estilos_reloj.css.

  1. #reloj {
  2.                                font-family: ‘DS-Digital’;
  3.         width: 450px;
  4.                                background-color: black;
  5.                                font-size:100px;
  6.                                color: green ;
  7.                                text-align: center;
  8. }

Contenido fichero con el código principal:

  1. <script type=»text/javascript»>
  2. function startTime(){
  3. today=new Date();
  4. h=today.getHours();
  5. m=today.getMinutes();
  6. s=today.getSeconds();
  7. m=checkTime(m);
  8. s=checkTime(s);
  9. document.getElementById(‘reloj’).innerHTML=h+»:»+m+»:»+s;
  10. t=setTimeout(‘startTime()’,500);}
  11. function checkTime(i)
  12. {if (i<10) {i=»0″ + i;}return i;}
  13. window.onload=function(){startTime();}
  14. </script>
  15. <div id=»reloj» ></div>
  16. <head>
  17. <meta http-equiv=»Content-Type» content=»text/html; charset=iso-8859-1″ />
  18. <title>Ejemplo de estilos CSS en un archivo externo</title>
  19. <link rel=»stylesheet» type=»text/css» href=»estilos_reloj.css» media=»screen» />
  20. </head>

Animo a lector a desarrollar sus estilos para este reloj digital y publicar el código. Es un ejercicio muy gratificante.

Todos nuestros alumnos  que han cursado el certificado de profesionalidad IFCD0210-Desarrollo de Aplicaciones con Tecnologías Web, y el IFCD0110 Confección y publicación de páginas web, conocen bien todos estos aspectos de las CSS y saben como aplicarlas según los requerimientos de la web que estén programando.

 

Como mostrar la fecha y hora actual en nuestra página web usando Javascripts.

Todos nuestros alumnos  que han cursado el certificado de profesionalidad IFCD0210-Desarrollo de Aplicaciones con Tecnologías Web,  conocen que Javascripts es un lenguaje que se ejecuta en el lado del cliente. Permitiendo esto una serie de funcionalidades que hacen que la página cambie su contenido sin necesidad de llamadas al servidor, es decir, cambia de aspecto en el navegador de nuestro ordenador. Una de estas funcionalidad es la de mostrar el fecha y hora actual en nuestra web.

Hay muchos programas de edición web y CMS que permiten añadir esta funcionalidad a nuestras webs, pero para los que buscamos profundizar un poco más, nos gusta saber como hacerlo manualmente, y así aportar nuestro toque personal. Para ello también podemos usar CSS.

Las funciones más usadas para esta funcionalidad son:

Función Descripción
getDate() Devuelve el día del mes (entre el 1 y el 31)
getDay() Devuelve el día de la semana (entre el 0 y el 6)
getMonth() Devuelve el mes (entre el 0 y el 11)
getFullYear() Devuelve el año (en formato de 4 dígitos)
getHours() Devuelve la hora (entre el 0 y el 24)
getMinutes() Devuelve los minutos (desde 0 a 59)
getSeconds() Devuelve los segundos (desde 0 a 59)
getTime() Devuelve el número de milisegundos desde el 01/ Enero /1970
getTimezoneOffset() Devuelve la diferencia de horario en minutos entre la hora local y GMT (Meridiano de Greenwich)
getUTCHours() Devuelve la hora de acuerdo a UTC (Tiempo Universal Coordinado)

Para usar estas funciones, es tan sencillo como crear una variable con new Date() para definir la fecha y hora actual y luego pintar en pantalla los datos que deseemos. En el ejemplo siguiente, pintamos el día del mes en el que estamos.

<script type=»text/javascript»>

var d = new Date();

document.write(d.getDate());

</script>

Si queremos que nos diga la hora, podemos escribir el siguiente código:

<script type=»text/javascript»>

var d = new Date();

document.write(d.getHours());

</script>

Para conseguir que nos de toda la información sobre le fecha y hora, podemos encadenar las funciones de fecha y hora, mediante el siguiente código:

<script type=»text/javascript»>

var d = new Date();

document.write(‘Fecha: ‘+d.getDate(),'<br>Dia de la semana: ‘+d.getDay(),'<br>Mes (0 al 11): ‘+d.getMonth(),'<br>Año:’+d.getFullYear(),'<br>Hora:’+d.getHours(),'<br>HoraUTC: ‘+d.getUTCHours(),'<br>Minutos: ‘+d.getMinutes(),'<br>Segundos: ‘+d.getSeconds());

</script>

Obteniendo un resultado en pantalla como el siguiente:

Fecha: 18

Día de la semana: 5

Mes (0 al 11): 7

Año: 2017

Hora: 9

Hora UTC: 7

Minutos: 15

Segundos: 51

Pero esto hay que adaptarlo a nuestro formato de fecha, de forma que sea el usado habitualmente en nuestro país. Por ejemplo el siguiente código, nos muestra la fecha en formato día/mes/año. Ejemplo 22/08/2017.

<div style=»float:left;»>

<script type=»text/javascript»>

var  today = new Date();

var m = today.getMonth() + 1;

var mes = (m < 10) ? ‘0’ + m : m;

document.write(‘Fecha: ‘+today.getDate(),’/’ +mes,’/’+today.getFullYear());

</script></div>

En muchas publicaciones encontraras ejemplos de códigos para pintar de forma correcta la fecha y hora en tus webs. Aconsejamos al lector que busque y pruebe los ejemplos de código propuestos.

En el siguiente ejemplo tienes el código básico para poner en tu web un reloj digital. A este código le puedes aplicar tantos formatos que como desees para personalizarlo.

 <script type=»text/javascript»>

function startTime(){

today=new Date();

h=today.getHours();

m=today.getMinutes();

s=today.getSeconds();

m=checkTime(m);

s=checkTime(s);

document.getElementById(‘reloj’).innerHTML=h+»:»+m+»:»+s;

t=setTimeout(‘startTime()’,500);}

function checkTime(i)

{if (i<10) {i=»0″ + i;}return i;}

window.onload=function(){startTime();}

</script>

<div id=»reloj» style=»font-family: ‘DS-Digital’; width: 450px; background-color: black;font-size:100px;color: green ; text-align: center «></div>

¿Podrás aplicar estilos a este reloj digital hasta conseguir el siguiente aspecto?

Reloj-Digital

Una vez conseguida esta presentación, te animo a publicar el código, es un ejercicio muy gratificante.

 

¿Qué son las supercomputadoras cuánticas?

Las computadoras cuánticas, están basadas en la mecánica cuántica y no tanto en la electrónica y por tanto tienen el potencial de ser más poderosas que las tradicionales, basadas en el sistema binario, es decir, unos y ceros que representan estados como «on/off» y «verdadero/falso».

BINARIO-TEXTO-1

Las computadoras cuánticas, contienen qubits, que pueden ser tanto 0 como 1 al mismo tiempo, un estado conocido como superposición.

Las partículas subatómicas (los electrones, fotones e iones) pueden ser manipulados para que se comporten de este modo tan misterioso. Este comportamiento tan excepcional, creen que puede hacer, que un computador cuántico, llegue teóricamente, a resolver tres millones de cálculos por segundo.

Desgraciadamente, hoy en día esta tecnología no está totalmente desarrolla y requiere de ciertas condiciones especiales para su funcionamiento. Una de ellas es que necesita que el procesador esté justamente por encima del cero absoluto (unos -273.15 en la escala de Celsius), además debe estar alejado de cualquier interferencia electromagnética.

Sin embargo, un sector tan pudiente como el de las finanzas está interesado en este tipo de computación, por la capacidad de calcular miles de escenario posibles, estudiarlos y elegir aquellos más viables a largo plazo. Pero también este mismo sector se plantea que esta capacidad del cálculo tan impresionante, será capaces de romper los códigos de encriptación de las transacciones financieras y las encriptaciones de cualquier otro tipo de sistema de seguridad implantado en los sistemas informáticos anteriores, a las supercomputadoras cuánticas.

Es decir, esta capacidad de cálculo que puede llegar a tener las supercomputadoras cuánticas  romperá la seguridad informática, hasta la fecha implantada, comprometiendo gravemente, toda la seguridad de los sistemas financieros, gobiernos, ejércitos, etc.

Robo de password

Por lo que cabe concluir que necesitamos, “una fórmula matemática que cree un lenguaje encriptado imposible de quebrar». Según, Marco López de Prado, ejecutivo de la firma Guggenheim Partners.

Teniendo en cuenta que la capacidad de procesamiento de cada generación cuántica, es cada vez mayor, el tiempo apremia para conseguir esa fórmula matemática. De lo contrario, la seguridad de los sistemas informáticos, anteriores a la computación cuántica, se puede ver drásticamente comprometida.

Todos estos conceptos le son muy familiares a los alumnos del certificado de profesionalidad IFCT0210 Operación de Sistemas Informáticos ya que forma parte de su formación en ordenadores tradicionales.

 

Linux en Windows. Quién lo hubiera dicho hace una década!!!!.

Aunque en noviembre del 2016, ya anunciamos en este blog que  Microsoft era nuevo miembro de platino en “Linux Fundation”. Si !!! ¿Increíble pero cierto?

Efectivamente, Microsoft  tiene un lugar privilegiado junto a  Cisco, Fujitsu, HPE, Huawei, IBM, Intel o Samsung en la fundación del pingüino. Es decir,  Microsoft  entra a las claras y sin tapujos en la casa madre de Linux.

Linux-Amor-Windows

Para muchos ha supuesto una verdadera sorpresa. ¿Los dos eternos rivales, ahora colaboran juntos? Pues sí, en especial desde que Satya Nadella está al frente de Microsoft.

Ahora Windows y Linux ya trabajan juntos. Desde esta semana es posible descargar la distribución Ubuntu desde la tienda de aplicaciones de Microsoft en ordenadores  equipados con Windows 10.

No es una distribución completa de Ubuntu, pero atención, se anuncia que habrá nuevas posibilidades de descarga de SUSE y Fedora.

Con esta nueva estrategia, Windows pretende consolidarse como la plataforma mar versátil, para desarrolladores y así disuadir a los usuarios más avanzados, en la instalación de un segundo Sistema Operativo.

Para todos los alumnos de los certificados de profesionalidad que disponemos, tanto los de desarrollo, como los de Sistemas, no supone un gran cambio; ya que suelen trabajar con ambos sistemas operativos.

Lo dicho,  QUIEN LO HUBIERA DICHO HACE UNA DÉCADA, QUE NOS LO HAGA SABER. Le felicitaremos, por ser el mejor visionario.

¿Cumple tu página web con las normas básicas de accesibilidad?

El concepto de accesibilidad es muy conocido por nuestros alumnos del certificado de profesionalidad IFCD0210-Desarrollo de Aplicaciones con Tecnologías Web, ya que forma parte del temario del curso.

Este concepto indica la facilidad con la que algo puede ser accedido por todas las personas, especialmente por aquellas que poseen algún tipo de discapacidad. Busca la igualdad de acceso a la web para todos los usuarios.1

Los usuarios  con discapacidad tienen los siguientes problemas para acceder a la web:

  • Acceso a los contenidos web: problemas en visión, audición y/o movilidad.
  • Manipulación de periféricos: dificultades en el uso del teclado y/o ratón.
  • Interacción con los interfaces de usuario: dificultades en la navegación y/o comprensión.

Pero hay otros problemas de accesibilidad que no debemos olvidar y que son provocados por el idioma, la edad, conocimientos previos, conectividad, etc..

El máximo organismo dentro de la jerarquía de internet que se encarga de promover la accesibilidad es el World Wide Web Consortium (W3C), en especial su grupo de trabajo Iniciativa de Accesibilidad en la Web (WAI).

La accesibilidad web la podemos definir como la “posibilidad de que un sitio o servicio web pueda ser visitado y utilizado de forma satisfactoria por el mayor número posible de personas, independientemente de las limitaciones personales que tengan o aquellas derivadas del entorno que las rodea”.

El W3C, dispone de esta herramienta https://validator.w3.org/ en que todos los programadores web deben chequear el nivel de accesibilidad de las páginas desarrolladas.

El objetivo a cumplir es que este validador no reporte ni errores ni warning en la accesibilidad de nuestras web, aunque es por todos conocido, que es muy difícil.

Abajo adjunto el resultado de chequear la web de la Universidad de Granada (www.urg.es). Web con de gran importancia y visitada por un amplio abanico de usuarios a diario y que como podéis comprobar no está exenta de problemas de accesibilidad.

validator-w3-ugr

Beneficios que tiene para nuestra web al cumplir con las normas de accesibilidad:

  1. Aumentar el número de usuarios visitantes del sitio web, al posibilitar que los usuarios con discapacidad, de edad avanzada, baja alfabetización, etc..
  2. Disminución de costes y mantenimiento. Una página web accesible también permite la reutilización del contenido, al ser independiente del dispositivo de acceso.
  3. Reduce tiempos de carga de las páginas web y del servidor
  4. Consigue mejorar los resultados en los motores de búsqueda.

En certificado profesionalidad  IFCD0210-Desarrollo de Aplicaciones con Tecnologías Web, se estudia con detalle todos los aspectos de la accesibilidad web, permitiendo que los alumnos sean capaces de desarrollar webs accesibles.

Exportar una base de datos Access a MySql

Curiosa y desgraciadamente Microsoft Access no tiene ninguna opción para exportar datos en un formato standar  en que podamos pasar tanto la estructura de las tablas como el contenido de las mismas.

Si tuviesemos que exportar datos de MySql a Access la cosa sería más sencilla ya que este gestor (MySql), sí dispone de esta opción. Pero como digo si el problema es transladar nuestra Base de datos de Access a MySql, la cosa se complica.

Investigando he descubierto varias soluciones, algunas de las cuales pasan por exportar de Access a Excel, de Excel pasar a forma osd (hoja de cálculo de OpenOffice) y de ahí recoger esos datos con MySql. Sin contar con el latazo que es hacer esto tabla a tabla a nadie se le puede ocultar que los datos seguramente pasen pero toda la estructura de las tablas se creará errónea ya que muchos tipos de datos no sabrá ni podrá indentificarlos.

La solución más sencilla y a la vez eficiente pasa por comunicar Access con MySql a través de un conector ODBC.

Para eso creamos una conexión DSN con MySQL

ODBC_FOC

Una vez tenemos creado el DNS (app_datos en nuestro caso), ya dentro de Acces, podremos decirle que vamos a exportar a través de él.

ODBC_FOC_Access

Ahora ya podemos seleccionar la conexión que hemos creado previamente.

  • En el proceso en primer lugar indicamos el nombre de la tabla en la base de datos destino:

ODBC_FOC_Access_1

  • En el siguiente paso será cuando seleccionemos la conexión creada.

ODBC_FOC_Access_2

 

Hecho esto Access comienza a exportar tanto la estructura como los datos a MySql.

Ahora ya podemos comprobar que en MySql se ha creado la tabla con la estructura de Access

ODBC_FOC_Access_3

Evidentemente la misma conexión nos servirá para todas las tablas, pero este proceso tendremos que hacerlo tabla a tabla.

Ya solo nos quedaría dentro de MySql, crear todos los índices, claves primarias y otras restricciones que deseemos utilizar.

Razones por la que utilizar MySQL

A la hora de realizar una aplicación una parte importante para nuestro desarrollo son las bases de datos. Tenemos distintas bases de datos como Oracle, MySQL, PostGresSQL, NoSQL (la mas conocida es MariaDB, …

Como podemos ver existen multitud de base de datos que podemos utilizar. A continuación os voy a enumera algunas razones por las que decantarnos por MySQL.

  1. Es Multiplataforma: Para S.O. como Windows, Linux y Mac disponemos de nuestro servidor para instalarlo.
  2. Es fácil encontrar ayuda: Al ser una base de datos que se utiliza en multitud de aplicaciones web existen multitud de tutoriales, foros, …. en la red en los que podemos encontrar la información que necesitamos
  3. Es fácil de aprender: Simplemente con conocer el estándar de SQL podemos manejar la base de datos MySQL si ningún problema.
  4. MySQL es una base de datos ampliamente probada por distintos usuarios y empresas con alto éxito.
  5. Menos características. Menos mantenimientos: Realmente esto nos da la ventaja para que un programador cualquiera pueda aprender rápidamente como debe mantener la base de datos para sus aplicaciones. Sin necesidad de ser un experto Administrador en Base de Datos (DBA). Bases de datos como Oracle requieren de DBA para la gestión de su información debido a todas las características que tienes para su administración. En cambio MySQL para el funcionamiento habitual de una aplicación incluye unas características mínimas que nos sirven ampliamente para nuestras aplicaciones sin tener que recurrir aun DBA para que administre la base datos.
  6. El coste total de inicio es ampliamente inferior al de Oracle o Microsoft SQL Sever. Nosotros vamos a poder crear tantos servidores MySQL como necesitemos sin incurrir en ningún coste alto.
  7. MySQL es escalable:
  8. Soporte para la transacciones. Una de las grandes ventajas de utilizar MySQL es la gestión de las transacciones. Las transacciones en MySQL son Atómicas, consistentes, aisladas (isolated) y durable; ACID.

Para los que queráis saber las desventajas de utilizar MySQL en el siguiente articulo nos argumentan por que no debemos utilizar MySQL: «Choose Something Else»

Prácticas erróneas que cometen los desarrolladores de PHP

En la actualidad hay muchas aplicaciones realizadas por los desarrolladores de PHP. Muchos de estos desarrollares caen en los siguientes errores a la hora de realizar un desarrollo web.

Los principales errores que suelen cometer son:

1.- Utilizar el motor de base de datos MyISAM en vez de INNODB.

Normalmente en las bases de datos MySQL se suele poner por defecto el motor de base de datos MyISAM. Este motor no permite establecer claves foráneas o la utilización de transacciones. Por lo que si queremos crear una base de datos consistente MyISAM se nos quedara corto.

Mi recomendación es que siempre se utilice INNODB para, al menos, mantener la integridad referencial de los datos con los que vamos a interactuar con nuestras aplicaciones.

2.- Utilizar las funciones mysql de php

Otro error muy común es la utilización de las funciones que proporciona php para acceder a una base de datos MySQL. Desde la versión de PHP 4.1..3 tenemos disponible la clase MySQLi que dispone de constructores y método para realizar una gestión mucho mas eficiente de las sesiones con MySQL.

3.- No sanear la entrada de datos

Un error muy común es no proteger nuestros formularios de la inyección sql. Una de las formas mas correctas de evitar que se produzcan este tipo de ataques es no permitir caracteres como «‘» o «;» que puenda hacer ejecutar una sentencia SQL distinta de la que nosotros utilizamos.

4.- No utilizar UTF-8

Por defecto las bases de datos MySQL utilizan una calificación UTF8 pero los desarrolladores de PHP al realizar las web utilizan otro tipo de codificación basados en el idioma o paÃís en el que realizan la página.  Esto implica que la información que se almacena en nuestra base de datos no se introduce de forma correcta.

Para que no suceda esto lo mejor es utilizar siempre UTF8 de esta forma aseguramos que nuestra página se visualice bien en cualquier sitio.

5.- Favorecer el uso de PHP sobre SQL

Siempre debemos tener claro que debemos dividir la carga entre los distintos sistemas que nos componen nuestra aplicación. Así si nosotros queremos saber una media o el número de ventas producido en una fecha. Es mas simple y rapido realizar sobre SQL que utilizar PHP para realizar el cálculo sobre toda la información que obtenemos de la base de datos.

Muchos desarrolladores no tienen en cuenta esto y provocan que sus páginas tarden mas en cargarse para realizar una operación que desde la base de datos se realiza en pocos segundos.

6.- No optimizar las consultas realizadas en nuestros programas.

A la hora de realizar las consultas, en la gran mayoría de los casos, si esta muestra la información que deseamos la dejamos como esta. Esto puede provocar que cuando incremente nuestro volumen de datos esta consulta tarde mas en ejecutarse de lo esperado.

Muchos desarrolladores no conocen la orden de MySQL Exaplain. Esta orden de MySQL realiza un análisis de nuestra consulta mediante el cual podemos ver en que parte de nuestra consulta ralentiza la devolución de resultados y podremos optimizar la consulta para que se ejecute mas rápido.

7.- Utilizar tipos de dato erróneos para almacenar la información.

8.- Utilizar el * en las consultas select

Un error muy común a la hora de interaccionar con las bases de datos es realizar consultas en las que me devuelvan todos los campos de una tabla o vista. Esto puede hacer que tarden mas en visualizar el resultado de nuestra página ya que tiene que procesar toda la información cuando nosotros, en la mayoría de los casos, solo vamos a utilizar unas columnas determinadas.

Lo recomendable es evitar el * y seleccionar aquellas columnas que vamos a necesitar para nuestras páginas en PHP.

9.- Olvidar realizar backups

Espero que todas estas recomendaciónes las tengáis en cuenta en futuro para vuestros desarrollos sean en PHP o en otro lenguaje.

¿Necesitas ayuda?