En ocasiones te
llegan peticiones o presupuestos de clientes que te dicen: Quiero un desarrollo
propio de una web en PHP con MYSQL, CSS3 y… En ese momento le preguntas al
cliente, perfecto sin problemas y ¿Por qué en PHP y no en Java o Ruby on Rails,
por ejemplo…? Ahí el cliente te comenta: No sé, porque es lo que más se usa y
quiero lo último para mi web. Como profesional tienes que explicar a tus
clientes que lo importante no es lo que quieres sino lo que realmente
necesitas.
Para cualquier empresa lo más fácil es decir, vale perfecto te hago esto
y todo lo que tú me pidas y te cobraré X. En iSocialWeb, nos gusta aclarar que
es cada cosa y qué necesita cada cliente y sobre eso que sea el propio cliente
una vez entiende qué es cada cosa el que decida cómo quiere gastarse su dinero
y sobre todo, cómo va a sacar más rentabilidad al mismo. En este punto entramos
a un concepto básico como son las bases de datos, entonces:
Slide 3
¿ QUE ES?
¿Qué es MYSQL y para que sirve? Según la definición de wikipedia mysql
es sistema de gestión de bases de
datos relacional, multihilo y multiusuario con más de
seis millones de instalaciones. Vale, pero esto en cristiano qué
significa. Para que se entienda bien el concepto pondremos un ejemplo. Cuando tú
tienes, por ejemplo, una página web, lo que tienes es un código que al abrir la
URL de tu página web tu navegador lee y lo convierte en algo visual entendible
para nosotros. Este código se ayuda en el caso de las páginas web de los
estilos CSS para darle una parte visual, de la programación PHP (en este
ejemplo) para generar acciones y procesar un contenido que tiene que estar
almacenado de una forma. Es aquí donde entran las bases de datos, en el caso de
las webs uno de los gestores más utilizados es MYSQL, un sistema que nos permite
a través de una serie de sentencias, tener una información almacenada en una
base de datos recuperarla en el momento en el que la necesitemos de una forma
eficiente y rápida..
Slide 4
MySQL es un sistema de gestión de bases de datos relacional,multihilo y multiusuario con más de seis millones de instalaciones.1MySQL AB —desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009— desarrolla MySQL como software libre en un esquema de licenciamiento dual.Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso. Está desarrollado en su mayor parte en ANSI C.
MySQL
Slide 5
Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pública y los derechos de autor del código están en poder del autor individual, MySQL es patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark,Allan Larsson y Michael Widenius.
MySQL es muy utilizado en aplicaciones web, como Joomla, Wordpress, Drupal ophpBB, en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL.
APLICACONES
MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones. Sea cual sea el entorno en el que va a utilizar MySQL, es importante monitorizar de antemano el rendimiento para detectar y corregir errores tanto de SQL como de programación.
Slide 7
Usa GNU Automake, Autoconf, y Libtool para portabilidad
Uso de multihilos mediante hilos del kernel.
Usa tablas en disco b-tree para búsquedas rápidas con compresión de índice
Tablas hash en memoria temporales
El código MySQL se prueba con Purify (un detector de memoria perdida comercial) así como con Valgrind, una herramienta GPL.
Completo soporte para operadores y funciones en cláusulas select y where.
Completo soporte para cláusulas group by y order by, soporte de funciones de agrupación
Seguridad: ofrece un sistema de contraseñas y privilegios seguro mediante verificación basada en el host y el tráfico de contraseñas está cifrado al conectarse a un servidor.
Soporta gran cantidad de datos. MySQL Server tiene bases de datos de hasta 50 millones de registros.
Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada índice puede consistir desde 1 hasta 16 columnas o partes de columnas. El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4.1.2).
Los clientes se conectan al servidor MySQL usando sockets TCP/IP en cualquier plataforma. En sistemas Windows se pueden conectar usando named pipes y en sistemas Unix usando ficheros socket Unix.
En MySQL 5.0, los clientes y servidores Windows se pueden conectar usando memoria compartida.
MySQL contiene su propio paquete de pruebas de rendimiento proporcionado con el código fuente de la distribución de MySQL.
CARACTERISTICAS
Slide 8
Inicialmente, MySQL carecía de elementos considerados esenciales en las bases de datos relacionales, tales comointegridad referencial y transacciones. A pesar de ello, atrajo a los desarrolladores de páginas web con contenido dinámico, justamente por su simplicidad.Poco a poco los elementos de los que carecía MySQL están siendo incorporados tanto por desarrollos internos, como por desarrolladores de software libre. Entre las características disponibles en las últimas versiones se puede destacar:
Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas igualmente.
Disponibilidad en gran cantidad de plataformas y sistemas.
Posibilidad de selección de mecanismos de almacenamiento que ofrecen diferentes velocidades de operación, soporte físico, capacidad, distribución geográfica, transacciones...
Transacciones y claves foráneas.
Conectividad segura.
Replicación.
Búsqueda e indexación de campos de texto.