Operaciones Básicas con MySQL (Funciones mysql_* Deprecadas)
Nota: Las funciones mysql_* utilizadas en este documento están deprecadas y no se recomiendan para nuevos desarrollos. Se sugiere utilizar las extensiones mysqli o PDO.
Obtención de Filas
Para obtener el número de filas resultantes de una consulta y procesarlas:
$nfilas = mysql_num_rows($consulta);
if ($nfilas > 0) {
for ($i = 0; $i < $nfilas; $i++) {
$fila = mysql_fetch_array($consulta);
// Procesar la fila i-ésima de los resultados
}
}Recuperación de Datos
Para iterar y recuperar datos de cada fila, accediendo a los campos por su índice numérico:
for ($i = 0; $i < $nfilas; $i++) {
$fila = mysql_fetch_array($consulta);
print $fila[0]; // Acceso al primer campo (índice 0)
print $fila[1]; // Acceso al segundo campo (índice 1)
}El primer campo de la fila siempre corresponde al índice 0.
Ejemplo Resuelto de Consulta
<?php
$MySQL_host = "localhost";
$MySQL_user = "root";
$MySQL_password = "";
$conexion = mysql_connect($MySQL_host, $MySQL_user, $MySQL_password);
$MySQL_database = "profesores";
mysql_select_db($MySQL_database);
$query = "SELECT * FROM profesores";
$result = mysql_query($query);
$nfilas = mysql_num_rows($result);
// Corrección: El bucle debe ir hasta $nfilas - 1, por lo tanto, $i < $nfilas
for ($i = 0; $i < $nfilas; $i++) {
$fila = mysql_fetch_array($result);
print "$fila[0]";
print "$fila[1] <br/>\n";
}
?>Actualización de Datos
Para modificar el valor de un campo en la base de datos:
<?php
// Modifica el valor de un campo
$MySQL_host = "localhost";
$MySQL_database = "productos";
$MySQL_user = "root";
$MySQL_password = "root";
$conexion = mysql_connect($MySQL_host, $MySQL_user, $MySQL_password) or die ("La conexión no se ha podido realizar.");
mysql_select_db("productos");
$modifica = "UPDATE productos SET descripcion='placa base' WHERE codproducto='AOO3';";
mysql_query($modifica);
?>Cierre de Conexión
Es fundamental cerrar la conexión a la base de datos una vez finalizadas las operaciones para liberar recursos:
mysql_close($conexion);Bases de Datos Distribuidas
Una base de datos distribuida es aquella que está controlada por más de un servidor. Los servidores de bases de datos (BD) se interconectan mediante una red, y el Sistema Gestor de Bases de Datos (SGBD) proporciona mecanismos para consultar la información de forma independiente del servidor y de la ubicación física de los datos.
Beneficios de las Bases de Datos Distribuidas
- Balanceo de Carga: Con un join de tablas en servidores y con bases de datos distintas, se consigue un mejor balanceo de carga que permite acceder a la información más rápidamente.
- Transparencia: Se incrementa el número de usuarios conectados que el sistema puede mantener.
- Escalabilidad: Se pueden incrementar los recursos en cualquier momento para adecuar el sistema a los usuarios y las aplicaciones.
- Fiabilidad: Aunque falle alguno de los nodos, el resto del sistema sigue funcionando.
- Flexibilidad en el Tipo de Operaciones: Permite realizar procesamiento autónomo y operaciones locales o distribuidas.
Desventajas de las Bases de Datos Distribuidas
- Costos de Implementación: Son sistemas muy costosos de implementar.
- Seguridad: Requiere seguridad tanto de la infraestructura como de cada uno de los sistemas.
- Mayor Probabilidad de Errores: Dado que los nodos funcionan en paralelo, es más difícil asegurar el funcionamiento correcto de los algoritmos.
Componentes de un Sistema de Bases de Datos Distribuidas
- Un SGBD distribuido.
- Un conjunto de bases de datos locales a cada uno de los servidores que almacenarán las BD.
- Una red de comunicaciones (TCP/IP).
- Enlaces entre las bases de datos locales para que el SGBD sea capaz de establecer las conexiones.
- Un diccionario de datos global donde se indique la ubicación de cada uno de los datos.
Tipos de Bases de Datos Distribuidas
- Bases de Datos Distribuidas Homogéneas: El SGBD es el mismo para todas las bases de datos locales y cooperan en el procesamiento de las solicitudes de los usuarios.
- Bases de Datos Distribuidas Heterogéneas: Sitios diferentes utilizan diferentes DBMSs. Cada uno es autónomo, lo que resulta en facilidades limitadas para la cooperación en el procesamiento de transacciones.
Tendencias en Bases de Datos Distribuidas
- Crear software que tenga acceso a diferentes bases de datos autónomas almacenadas en SGBD heterogéneos.
- La heterogeneidad de las BD es inevitable.
- Los sistemas heterogéneos son más complejos que los homogéneos.
- Las bases de datos heterogéneas son una tecnología reciente y aún hay pocas implementaciones maduras.
Replicación de Bases de Datos
La replicación es un proceso distinto a la distribución de bases de datos. Se consigue incrementar el rendimiento de los accesos y consultas a una base de datos mediante la redundancia. En las bases de datos replicadas, se copia la estructura y la información.
Mediante la replicación, toda acción realizada en un servidor de base de datos se replica automáticamente en otro servidor. Para replicar, se necesita un nodo maestro, que canaliza todas las modificaciones sobre los datos, y unos nodos esclavos que recibirán las actualizaciones del maestro.
El nodo maestro almacena los cambios en los ficheros de logs del sistema operativo y posteriormente se aplican a los nodos esclavos. Periódicamente, los nodos esclavos leen estos logs y mantienen una copia actualizada.
No es necesario que la conexión entre el esclavo y el maestro esté activa permanentemente, ya que el maestro sigue registrando en su log. El esclavo lo leerá y ejecutará desde la última posición registrada cuando detecte nuevamente la conexión. Si la conexión es permanente, los datos serán siempre los mismos.
¿Por qué usar Replicación?
- Tolerancia a Fallos: Si el servidor maestro falla, uno de los nodos esclavos puede hacerse cargo y promocionarse a maestro.
- Mejor Tiempo de Respuesta: Se divide la carga de consultas de los clientes a procesar entre los servidores maestro y esclavo.
- Operaciones de Copia de Seguridad: Se pueden realizar en un nodo esclavo sin saturar al nodo maestro.
