Bases de datos distribuidas, tipos de índices y creación de una base de datos en MySQL

Informática y TelecomunicacionesActualizado el 4,59 KB

Resumen

El documento explica los dos tipos principales de bases de datos distribuidas, homogéneas y heterogéneas, según el software de gestión que usen los sitios. Después describe los tipos de índices y sus estructuras (Btree, Hash y Rtree), y termina con un ejemplo en PHP para crear una base de datos y una tabla en MySQL con las funciones mysqli.

Puntos clave

  • En las bases de datos distribuidas homogéneas, todos los sitios usan el mismo DBMS y cooperan en el procesamiento de las solicitudes.
  • En las heterogéneas (multibase de datos), cada sitio usa un DBMS distinto y es esencialmente autónomo.
  • Un índice parcial indexa solo una parte de un campo grande, lo que ahorra espacio a costa de una posible ligera pérdida de velocidad.
  • En MyISAM los índices secundarios se guardan en archivos separados, por lo que cada búsqueda requiere dos accesos a disco.
  • En InnoDB los índices se llaman cluster: las claves primarias se guardan junto a los registros ordenados.
  • Las estructuras de índice principales son Btree (la más usada), Hash (eficiente para igualdad, no para rangos) y Rtree (datos espaciales).

Ponte a prueba

Creación de una Base de Datos y una Tabla en MySQL

El siguiente código muestra cómo crear una base de datos llamada "profesores" y una tabla con el mismo nombre en MySQL. Se asume que se está utilizando el usuario "root" sin contraseña y que el servidor MySQL se encuentra en "localhost".


$MySQL_host = "localhost";
$MySQL_user = "root";
$MySQL_password = "";
$conexion = mysqli_connect($MySQL_host, $MySQL_user, $MySQL_password) or die ("La conexión no se ha podido realizar");
$query = "CREATE DATABASE profesores";
$result = mysqli_query($conexion, $query);
$MySQL_database = "profesores";
mysqli_select_db($conexion, $MySQL_database);
$query = "CREATE TABLE profesores (NOMBRE VARCHAR(30), APELLIDOS VARCHAR(60))";
$result = mysqli_query($conexion, $query);

Nota: Se ha actualizado el código para usar las funciones mysqli_*, ya que las funciones mysql_* están obsoletas y no se recomienda su uso.

Tipos de Bases de Datos Distribuidas

Distribuciones Homogéneas

En los sistemas de bases de datos distribuidas homogéneas, todos los sitios emplean el mismo software de gestión de bases de datos (DBMS). Además, son conscientes de la existencia de los demás sitios y acuerdan cooperar en el procesamiento de las solicitudes de los usuarios.

Distribuciones Heterogéneas

Las bases de datos heterogéneas, también conocidas como multibase de datos, son aquellas donde diferentes sitios utilizan diferentes DBMS, siendo cada uno esencialmente autónomo. Es posible que algunos sitios no sean conscientes de la existencia de los demás y quizás proporcionen facilidades limitadas para la cooperación en el procesamiento de transacciones.

Tipos de Índices en Bases de Datos

Índices Parciales

Si tenemos un campo con un tamaño excesivo, por ejemplo, 255 caracteres en una tabla con millones de registros, podemos ahorrar espacio creando un índice parcial sobre dicho campo. Esto implica indexar solo una parte del campo, lo que reduce el tamaño del índice a costa de una posible ligera disminución en la velocidad de búsqueda.

Índices Multicolumna

Existe también la posibilidad de crear índices sobre más de una columna cuando dichas columnas se utilizan frecuentemente en cláusulas WHERE. Esto puede mejorar significativamente el rendimiento de las consultas que involucran esas columnas.

Índices Secundarios y Cluster

  • Secundarios: En las tablas MyIsam, MySQL guarda los índices en archivos separados que contienen, entre otras cosas, la lista de valores de índice y el valor del registro en la tabla. Por tanto, cualquier búsqueda requiere dos accesos a disco: uno para buscar el índice y otro para localizar el registro.
  • Cluster: En las tablas Innodb, los índices se denominan cluster, es decir, se guardan las claves primarias junto con los propios registros ordenados. Así, las búsquedas por clave primaria son muy rápidas. Respecto al resto de los índices secundarios, la situación es la misma que para las tablas MyIsam.

Estructura de Índice

Existen tres estructuras principales de índices:

  • Btree: La más utilizada en MySQL y la más común en los SGBD. Los índices se almacenan en páginas que son las hojas del árbol. Tiene la ventaja de la rapidez a la hora de recorrerlos buscando valores.
  • Hash: Utiliza una función hash para mapear claves a sus ubicaciones en la tabla. Es muy eficiente para búsquedas de igualdad, pero no para búsquedas por rango.
  • Rtree: Diseñada para indexar datos espaciales, como coordenadas geográficas.

Tipos de Índice según su Función

  • UNIQUE: Se utiliza para campos cuyos valores no se repiten en la tabla, garantizando la unicidad de los datos.
  • PRIMARY: Se crea sobre los campos que forman parte de la clave primaria de una tabla, asegurando la unicidad y permitiendo una rápida identificación de cada registro.
  • FULL-TEXT: Formado por uno o varios campos de texto y utilizado para la búsqueda de palabras dentro de un campo, especialmente útil para campos de gran tamaño.
  • SPATIAL: Índices utilizados para campos de tipo espacial, como LINE o CURVE, optimizando las consultas que involucran datos geométricos.

Descargar

PDF Word HTML

Preguntas frecuentes

¿Qué diferencia hay entre una base de datos distribuida homogénea y una heterogénea?

En las homogéneas todos los sitios usan el mismo software de gestión de bases de datos y cooperan entre sí. En las heterogéneas cada sitio usa un DBMS diferente y es esencialmente autónomo, pudiendo no conocer a los demás.

¿Para qué sirve un índice multicolumna?

Sirve para indexar más de una columna cuando estas se usan con frecuencia en cláusulas WHERE, lo que puede mejorar significativamente el rendimiento de las consultas que las involucran.

¿Cuál es la diferencia entre Btree y Hash?

Btree es la estructura más utilizada en MySQL y es rápida para recorrer valores. Hash usa una función hash para localizar claves, es muy eficiente en búsquedas de igualdad pero no sirve para búsquedas por rango.

Ponte a prueba

Tarjetas de repaso

Pulsa una tarjeta para ver la respuesta.

Test

1. ¿Qué caracteriza a una base de datos distribuida homogénea?
2. ¿Cómo se llaman las bases de datos heterogéneas según el texto?
3. ¿Para qué se usa un índice parcial?
4. ¿Qué estructura de índice es la más utilizada en MySQL?
5. ¿Por qué las búsquedas en tablas MyISAM requieren dos accesos a disco?
6. ¿Qué tipo de índice se usa para datos espaciales como coordenadas geográficas?
7. ¿Qué función cumple un índice FULL-TEXT?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.