Está en la página 1de 17

POD 2

Sistemas distribuidos con BBDD


Índice

1. El procesamiento distribuido.
1.1. Concepto de procesamiento distribuido.
1.2. Ventajas y desventajas.
1.3. Sistemas distribuidos.
1.4. Principios fundamentales de un sistema distribuido.

2. Python y BBDD
2.1. Instalar.
2.2. Importación y datos de conexión.
2.3. Crear una consulta.
2.4. Conectar y realizar una consulta.
2.5. Si insertas/eliminas/actualizas en la base de datos.
2.6. Recorrer resultados.
2.7. Pandas y BBDD.

© Copyright Universidad Europea. Todos los derechos reservados


Sistemas distribuidos con BBDD

Los objetivos que se pretenden alcanzar con este recurso son los siguientes:
▪ Conocer el “procesamiento distribuido”.
▪ Comprender los principios fundamentales de los sistemas distribuidos.
▪ Trabajar el procesamiento distribuido en arquitectura cliente servidor con Python y MySQL.

3 © Copyright Universidad Europea. Todos los derechos reservados


Sistemas distribuidos con BBDD

1. EL PROCESAMIENTO DISTRIBUIDO
1.1. Concepto de procesamiento distribuido

El término “procesamiento distribuido” significa que distintas máquinas pueden conectarse en una red, de tal
manera que una sola tarea de procesamiento de datos pueda extenderse a varias máquinas de la red.
El procesamiento distribuido presenta muchas variedades posibles. Una de las arquitecturas es “cliente-servidor”
▪ El servidor en este caso es el DBMS. Soporta las funciones propias de definir datos, manipular datos, seguridad,
etc.
▪ El cliente son las aplicaciones que se ejecutan sobre el DBMS. Pueden ser:
• Proporcionadas por el propio fabricante.
• Escritas por el usuario e integradas.

Arquitectura cliente servidor


Fuente: Introducción a la arquitectura de software. Un enfoque práctico
4 © Copyright Universidad Europea. Todos los derechos reservados
Sistemas distribuidos con BBDD

1. EL PROCESAMIENTO DISTRIBUIDO
1.2. Ventajas y desventajas

Ventajas:
▪ Centralización.
▪ Seguridad.
▪ Fácil de instalar.
▪ Separación de responsabilidades.
▪ Portabilidad.

Desventajas:
▪ Actualizaciones (en cliente).
▪ Concurrencia.
▪ Caída de servidor.
▪ Protocolos de bajo nivel.
▪ Depuración
5 © Copyright Universidad Europea. Todos los derechos reservados
Sistemas distribuidos con BBDD

1. EL PROCESAMIENTO DISTRIBUIDO
1.3. Sistemas distribuidos

El cliente podría acceder a varios servidores de manera simultánea, es decir una sola petición podría combinar
datos de diversos servidores. Y esto realizarse de manera transparente.

Múltiples servidores por cliente


Fuente: Introducción a la arquitectura de software. Un enfoque práctico

6 © Copyright Universidad Europea. Todos los derechos reservados


Sistemas distribuidos con BBDD

1. EL PROCESAMIENTO DISTRIBUIDO
1.4. Principios fundamentales de un sistema distribuido

1. Autonomía local.
2. No dependencia de un sitio central.
3. Operación continua.
4. Independencia de ubicación.
5. Independencia de fragmentación.
6. Independencia de replicación.
7. Procesamiento de consultas distribuidas.
8. Administración de transacciones distribuidas.
9. Independencia de hardware.
10. Independencia de sistema operativo.
11. Independencia de red.
12. Independencia de DBMS.

7 © Copyright Universidad Europea. Todos los derechos reservados


Sistemas distribuidos con BBDD

1. El procesamiento distribuido
1. Autonomía local. 2. No dependencia de un sitio central 3. Operación continua.

Los sitios de un sistema distribuido La no dependencia de un sitio En un sistema distribuido, nunca


deben ser autónomos. La central sería lo ideal, pero si esto debería haber necesidad de
autonomía local significa que no se logra, la autonomía local apagar o dejar de funcionar. Es
todas las operaciones en un sitio completa se vería decir, el sistema nunca debería
se controlan en ese sitio; ningún comprometida. La dependencia necesitar apagarse para que se
sitio X deberá depender de algún de un sitio central no es práctica pueda realizar alguna operación,
otro sitio Y para su buen al menos por las siguientes como añadirse un nuevo sitio o
funcionamiento (pues de otra razones: primero, estos sitios instalar una versión mejorada del
manera el sitio Y podría no ser podrían generar un cuello de SGBD.
capaz de trabajar, aunque no botella, y segundo, el sistema
tenga problemas, si cae el sitio Y). sería vulnerable; si el sitio central
La autonomía local implica que sufriera un desperfecto, todo el
existe un propietario y un sistema dejaría de funcionar.
administrador local de los datos,
con responsabilidad local: todos
los datos pertenecen a una base
de datos local, aunque los datos
sean accesibles desde sitios
distantes. Todo el manejo de la
seguridad y la integridad de los
datos se efectúan con control de 8 © Copyright Universidad Europea. Todos los derechos reservados
la instalación y admin local.
Sistemas distribuidos con BBDD

1. El procesamiento distribuido
4. Independencia de ubicación. 5. Independencia de fragmentación. 6. Independencia de replicación.
.

La independencia con respecto Un sistema tiene fragmentación de Un sistema maneja réplica de datos si
a la localización, permite que los datos solo si es posible dividir una una relación dada se puede
usuarios finales no sepan donde relación en partes o “fragmentos” representar en el nivel físico mediante
para propósitos de almacenamiento varias copias réplicas, en muchos
están almacenados físicamente
físico. La fragmentación es deseable sitios distintos. La réplica es deseable
los datos, sino que trabajen como por razones de desempeño: los datos al menos por dos razones: 1) Puede
si todos los datos estuvieran pueden almacenarse en la localidad producir un mejor desempeño (las
almacenados en su propio sitio donde se utilizan con mayor aplicaciones pueden operar sobre
local. Esto hace posible la frecuencia, de manera que la mayor copias locales en vez de tener que
migración de datos de un sitio a parte de las operaciones sean solo comunicarse con sitios remotos); 2)
otro sin anular la validez de locales y se reduzca el tráfico en la Puede significar una mejor
ninguno de esos sistemas o red de cómputo. Existen en esencia disponibilidad (un objeto estará
dos clases de fragmentación, la disponible para su procesamiento en
actividades. Esta función de
fragmentación horizontal y la tanto esté disponible por lo menos
migración permite modificar la fragmentación vertical. La una copia, al menos para propósitos
distribución de los datos dentro reconstrucción de la relación de recuperación). La desventaja
de la red, en respuesta a originada a partir de los fragmentos principal de las réplicas es cuando se
cambios en los requerimientos. se hace mediante operaciones de pone al día un cierto objeto copiado,
reunión y unión (reunión en el caso deben ponerse al día todas las
de fragmentación vertical, y la unión réplicas de ese objeto. La réplica
en casos de fragmentación debe ser “transparente para el
horizontal). usuario final”.

9 © Copyright Universidad Europea. Todos los derechos reservados


Sistemas distribuidos con BBDD

1. El procesamiento distribuido
7. Procesamiento de consultas 8. Administración de transacciones 9. Independencia de hardware.
distribuidas. distribuidas
.

Permite las consultas eficientes


.
Tiene dos aspectos principales, el Las instalaciones de cómputo en
desde diferentes usuarios con las control de recuperación y el el mundo real por lo regular
características que determine el control de concurrencia. En un incluyen varias máquinas de
sistema; la consulta de datos es sistema distribuido, una sola diferentes marcas comerciales
más importante en un sistema transacción puede implicar la como IBM, DELL, HP, entre otras;
distribuido que en uno ejecución de programas o por esta razón existe una
centralizado. Lo esencial es que, procesos en varios sitios. Por esto, necesidad de poder integrar los
en una consulta donde están cada transacción está datos en todos esos sistemas y
implicados varios sitios, habrá compuesta de varios agentes, presentar al usuario “una sola
muchas maneras de trasladar los donde un agente es el proceso imagen del sistema”. Por tanto
datos en la red de cómputo para ejecutado en nombre de una conviene ejecutar el mismo SGBD
satisfacer la solicitud, y es crucial transacción dada en en diferentes equipos, y además
encontrar una estrategia determinado sitio. Y el sistema lograr que esos diferentes
suficiente. Por ejemplo, una necesita saber cuándo dos equipos se integren en un sistema
solicitud de unión de una agentes son parte de la misma distribuido.
relación Rx almacenada en el transacción. Es importante
sitio X y una relación Ry aclarar que no puede haber un
almacenada en el sitio Y podría bloqueo mutuo entre dos
llevarse a cabo trasladando Rx a agentes que sean parte de la
Y o trasladando Ry a X, o misma transacción.
trasladando las dos a un tercer 10 © Copyright Universidad Europea. Todos los derechos reservados
sitio Z.
Sistemas distribuidos con BBDD

1. El procesamiento distribuido
10. Independencia de sistema 11. Independencia de red. 12. Independencia de DBMS.
operativo.
.

Es necesario y conveniente no
.
Si el sistema puede manejar En la independencia con
sólo de poder ejecutar el mismo múltiples sitios, con equipos respecto a su manejo, se requiere
SGBD en diferentes equipos, sino distintos y diferentes sistemas que los SGBD en los diferentes
también poder ejecutarlo en operativos, resulta conveniente sitios manejen todos la misma
diferentes sistemas operativos. manejar también varios tipos de interfaz.
redes de comunicación distintas.

11 © Copyright Universidad Europea. Todos los derechos reservados


Sistemas distribuidos con BBDD

2. PYTHON-BBDD
2.1. Instalar

El comando para instalar mysqldb con el administrador de paquetes pip en Python:


pip install mysqlclient

2.2. Importación y datos de conexión

import MySQLdb

/*Sustituir por los nombres de la instalación de MySQL realizada*/


DB_HOST = 'localhost’
DB_USER = 'root'
DB_PASS = 'mysqlroot'
DB_NAME = 'a'

12 © Copyright Universidad Europea. Todos los derechos reservados


Sistemas distribuidos con BBDD

2. PYTHON-BBDD
2.3. Crear una consulta

Recomendable, guardar las consultas el variables para modificarlas fácilmente.


SQL = “SELECT * FROM DVD WHERE %s = %s” % (searchby, searchtext)

2.4. Conectar y realizar una consulta

Recomendable crear una función para llamarla tantas veces como sea necesario.
try:
db = MySQLdb.connect(DB_HOST , DB_USER , DB_PASS , DB_NAME )
c = db.cursor()
c.execute(SQL)
output = c.fetchall()
c.close() #Cerramos la consulta
db.close() #No olvidar cerrar la conexión a la base de datos
except:
print “THERE WAS A PROBLEM ACCESSING THE DATABASE”
raw_input(“Press Enter to continue: “)
return

13 © Copyright Universidad Europea. Todos los derechos reservados


Sistemas distribuidos con BBDD

2. PYTHON-BBDD
2.5. Si insertas/eliminas/actualizas en la base de datos

c = db.cursor()
c.execute(SQL)
#Debemos hacer un commit para grabar la transacción
db.commit()
c.close()
db.close()
raw_input(“Record added - press enter to continue: ")
2.6. Recorrer resultados

for fila in cursor:


print(fila)

14 © Copyright Universidad Europea. Todos los derechos reservados


Sistemas distribuidos con BBDD

2. PYTHON-BBDD
2.7. Pandas y BBDD

# Extrae los datos de la consulta directamente a un DataFrame

surveys_df = pd.read_sql_query("SELECT * from surveys", con)

# Selecciona sólo datos en el año 2002

surveys2002 = surveys_df[surveys_df.year == 2002]

# Escribe los datos del nuevo DataFrame en una nueva tabla en SQLite

surveys2002.to_sql("surveys2002", con, if_exists="replace")

https://pandas.pydata.org/docs/reference/api/pandas.read_sql_query.html
https://pandas.pydata.org/docs/reference/api/pandas.read_sql_table.html
https://pandas.pydata.org/docs/reference/api/pandas.read_sql.html
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html

15 © Copyright Universidad Europea. Todos los derechos reservados


Sistemas distribuidos con BBDD

BIBLIOGRAFÍA

Introducción a los sistemas de bases de datos. C. J. Date


Python. Guía de referencia. Álex Martelli
Python for data analysis. Wes McKinney

16 © Copyright Universidad Europea. Todos los derechos reservados


© Todos los derechos de propiedad intelectual
de esta obra pertenecen en exclusiva a la
Universidad Europea de Madrid, S.A.U. Queda
terminantemente prohibida la reproducción,
puesta a disposición del público y en general
cualquier otra forma de explotación de toda o
parte de la misma.

La utilización no autorizada de esta obra, así como los perjuicios


ocasionados en los derechos de propiedad intelectual e industrial
de la Universidad Europea de Madrid, S.A.U., darán lugar al
ejercicio de las acciones que legalmente le correspondan y, en su
caso, a las responsabilidades que de dicho ejercicio se deriven.

También podría gustarte