Desde la aparición de las primeras bases de datos distribuidas hasta los actuales sistemas de replicación modernos, la comunidad de investigación ha propuesto múltiples protocolos para administrar la distribución y replicación de datos, junto con algoritmos de control de concurrencia para manejar las transacciones en ejecución en todos los nodos del sistema. Muchos protocolos están disponibles, por tanto, cada uno con diferentes características y rendimiento, y garantizando diferentes niveles de coherencia. Para saber qué protocolo de replicación es el más adecuado, dos aspectos deben ser considerados: el nivel necesario de coherencia y aislamiento (es decir, el criterio de corrección), y las propiedades del sistema (es decir, el escenario), que determinará el rendimiento alcanzable. Con relación a los criterios de corrección, la serialización de una copia es ampliamente aceptada como el más alto nivel de corrección. Sin embargo, su definición permite diferentes interpretaciones en cuanto a la coherencia de réplicas. En esta tesis se establece una correspondencia entre los modelos de coherencia de memoria, tal como se definen en el ámbito de la memoria compartida distribuida, y los posibles niveles de coherencia de réplicas, definiendo así nuevos criterios de corrección que corresponden a las diferentes interpretaciones identificadas sobre la serialización de una copia. Una vez seleccionado el criterio de corrección, el rendimiento alcanzable por un sistema depende en gran medida del escenario, es decir, de la suma del entorno del sistema y de las aplicaciones que se ejecutan en él. Para que el administrador pueda seleccionar un protocolo de replicación apropiado, los protocolos disponibles deben conocerse plena y profundamente. Una buena descripción de cada candidato es fundamental, pero un marco común es imperativo para comparar las diferentes opciones y estimar su rendimiento en un escenario dado. Esta tesis propone un modelo de caracterización precisa que nos permite descomponer los algoritmos en interacciones individuales entre los elementos significativos del sistema, así como en algunas propiedades subyacentes, y asociar cada interacción con una política específica que la rige. Más tarde se utiliza este modelo como base para un repaso histórico de la evolución de las técnicas de replicación de bases de datos, proporcionando así un estudio exhaustivo de los principales sistemas existentes. Aunque un cierto protocolo de replicación puede ser la mejor opción para un escenario determinado, los sistemas son dinámicos y heterogéneos, y por tanto es difícil que un único protocolo sea continuamente la elección correcta, ya que puede degradarse o puede no llegar a satisfacer todas las necesidades. En esta tesis se propone un metaprotocolo que soporta varios protocolos de replicación que siguen diferentes técnicas y pueden proporcionar diferentes niveles de aislamiento. Con este metaprotocolo, los protocolos de replicación puede trabajar simultáneamente con los mismos datos o intercambiarse para adaptarse a entornos dinámicos. Por último se tienen en cuenta las restricciones de integridad, que son ampliamente utilizadas en bases de datos para definir las propiedades semánticas de los datos, pero son a menudo olvidadas en bases de datos replicadas. Se analizan los posibles problemas que esto puede implicar y se ofrecen pautas sencillas para ampliar un protocolo de forma que identifique y gestione adecuadamente los abortos causados por violaciones de integridad.