BLOG 6 SEMESTRE
GILBERTO ALEJANDRO MARTINEZ CORTINA
miércoles, 25 de abril de 2018
martes, 24 de abril de 2018
Librerías para manejar bases de datos en Python
Siguiendo con el Python, he estado probando como funciona la conexión con bases de datos.
Para poder conectar el Python con el servidor MySQL nos hace falta instalar la librería que hará de intermediario entre el MySQL y Python, por la red hay varias, pero me he decantado por la propia que distribuye Oracle. Elegimos el fichero para nuestro sistema y lo instalamos. Para Ubuntu / Debian podemos bajar el ficheros de la pagina o instalarlo a través del repositorio de Ubuntu, con el siguiente comando.
sudo apt-get install python-mysql.connector
Instalada la librería ya solo queda programar el código en Python, para ello importamos la librería.
import mysql.connector
Crearemos un variable que sera la encargada de manejar la conexión con el servidor de MySQL. Esto se puede hacer de dos maneras, poniendo toda los datos de la conexión en la función, o utilizar cuna variable con los datos como intermediaria.
1º Forma
conexion_mysql = mysql.connector.connect(user='usuario', password='contraseña', host='DireccionServidor', database='BaseDeDatos')
2º Forma, para decirle a la función que los datos están dentro de la variable hay que poner “**” (2 asteriscos) delante de la variable.
# Variable con la configuracion de la conexion config_mysql = { 'user': 'usuario', 'password': 'contraseña', 'host': 'DireccionServidor', 'database': 'BaseDeDatos', } # conectamos al servidor MySql conexion_mysql = mysql.connector.connect(**config_mysql)
Si esto no ha producido ningún error, ya estaremos conectados al servidor de MySQL. Ahora solo nos queda empezar ha trastear con las tablas. Para ello tendremos que crear otra variable que se encargara de realizar las consultas SQL y contendrá la información para esa consulta.
cursor = conexion_mysql.cursor()
Una vez creada esta variable, solo nos queda pasarle la sentencia de SQL que queramos ejecutar.
cursor.execute("SELECT Campo1, Campo2, Campo3 FROM Tabla1")
Ahora ya tenemos la información en la variable, y podremos hacer con ella lo que nos de la gana, para mostrar todos los datos de la consulta, por ejemplo, solo tendríamos que hacer lo siguiente:
for (Campo1, Campo2, Campo3) in cursor: print("Campo1: " + Campo1 + ", Campo2: " + Campo2 + ", Campo3: " + Campo3)
Una vez que ya hemos obtenido la información deseada, solo nos queda cerrar las conexiones, tanto de la variable que se encarga de procesar las consultas de SQL, como la encargada de la conexión con el servidor.
# Cerramos la variable encargada de las consultas cursor.close() # Cerramos la conexión conexion_mysql.close()
Y con esto ya valdría para conectarnos ha una base de datos en MySQL y consultar la información de una tabla.
Código completo del ejemplo.
#! /usr/bin/env python # Importamos el conector de MySQL import mysql.connector # Variable con la configuracion de la conexion config_mysql = { 'user': 'usuario', 'password': 'pass', 'host': 'localhost', 'database': 'prueba', } # conectamos al servidor MySql conector = mysql.connector.connect(**config_mysql) # cursor, clase para el manejo del SQL ??? cursor = conector.cursor() # Creamos la consulta SQL query = ("SELECT Nombre, Telefono FROM prueba") # Ejecutamos la consula SQL cursor.execute(query) # Mostramos todos los datos de la consulta for (Nombre, Telefono) in cursor: print("Nombre: " + Nombre + ", Telefono: " + Telefono) # Cerramos cursor cursor.close() # Cerramos la conexion conector.close()
Que es y para qué sirve el PIP en python
PIP.
¿Qué es PIP para Python?
PIP es un acrónimo que significa "Paquetes de instalación PIP" o "Programa de instalación preferida". Es una utilidad de línea de comandos que le permite instalar, reinstalar o desinstalar paquetes PyPI con un comando simple y directo: "pip".
Si alguna vez ha realizado algún trabajo de línea de comandos en Windows (con el símbolo del sistema) o Mac o Linux (con el Terminal y Bash), entonces te sentirás como en casa y puedes ir directamente a las instrucciones de instalación para su particular sistema operativo.
¿Se instala PIP con Python?
Si está utilizando Python 2.7.9 (o superior) o Python 3.4 (o superior), entonces PIP viene instalado con Python por defecto. Si está utilizando una versión anterior de Python, deberá seguir los pasos de instalación que se detallan a continuación. De lo contrario, salte a la parte inferior para aprender cómo comenzar a usar PIP.
Si está ejecutando Python en un entorno virtual creado con virtualenv o pyvenv, entonces PIP estará disponible para ese entorno independientemente de la versión de Python.
Antes de instalar PIP para Python:
Debe asegurarse de que Python esté instalado correctamente en su sistema. En Windows, abra el símbolo del sistema con la tecla de Windows + X y seleccione Símbolo del sistema. En Mac, abre la Terminal usando Comando + Espacio y busca la terminal. En Linux, abra la Terminal usando Ctrl + Alt + T o como sea que haya sido hecho en su distribución particular.
Luego escribe:
python --version
En Linux, los usuarios de Python 3.x pueden necesitar usar el siguiente comando:
python3 --version
Si obtiene un número de versión (por ejemplo, "Python 2.7.5"), significa que Python está listo para funcionar.
Si aparece el mensaje "Python is not defined", primero deberá instalar Python correctamente.
Cómo instalar PIP en Windows:
Las siguientes instrucciones deberían funcionar en Windows 7, Windows 8.1 y Windows 10:
1.-Descargue el script del instalador get-pip.py. Si estás en Python 3.2, necesitarás esta versión de get-pip.py. De cualquier manera, haga clic derecho en el enlace y seleccione Guardar como y guárdelo en cualquier carpeta del pc, como su carpeta de Descargas.
2.-Abra el símbolo del sistema y navegue hasta el archivo get-pip.py.
3.-Ejecute el siguiente comando: python get-pip.py
miércoles, 14 de marzo de 2018
martes, 13 de marzo de 2018
Estructura de la SGA.
Oracle utiliza la memoria para almacenar la siguiente información:
*Código del programa
*Información acerca de una sesión conectada, incluso si no se encuentra activa.
*Información necesaria durante la ejecución del programa(por ejemplo, el estado de las consultas)
*La información que comparten y con la cual se comunican los procesos Oracle (por ejemplo, la información de bloqueo)
*La Caché de Datos
La memoria se puede estructurar en las siguientes partes:
*Área Global del sistema (SGA), la cual se comparte entre todos los servidores y los procesos en segundo plano.
*Áreas globales de programas (PGA), que es privada para cada servidor y proceso en segundo planos; a cada proceso se asigna un PGA.
*Área de Ordenaciones (Sort Areas).
*Memoria Virtual
*Área de código de Software (SCA).
SGA de Base de datos:
SGA (Área Global del Sistema) es una estructura básica de memoria de Oracle que sirve para facilitar la transferencia de información entre usuarios y también almacena la información estructural de la BD más frecuentemente requerida.
El área global del sistema y un conjunto de procesos de la base de datos constituyen una instancia de una base de datos Oracle. La base de datos Oracle automáticamente reserva memoria para el área global del sistema cuando se inicia una instancia, y el sistema operativo reclama la memoria cuando se apaga dicha instancia. Cada instancia tiene su propia SGA.
su composicion es:
Buffer Redo Log:
Los registros Redo describen los cámbios realizados en la BD y son escritos en los ficheros redo log para que puedan ser utilizados en las operaciones de recuperación hacia adelante, roll-forward, durante las recuperaciones de la BD.
Los registros Redo describen los cámbios realizados en la BD y son escritos en los ficheros redo log para que puedan ser utilizados en las operaciones de recuperación hacia adelante, roll-forward, durante las recuperaciones de la BD.
Database Buffer Cache (Buffers de BD):
Es el caché que almacena los bloques de datos leidos de los segmentos de datos de la BD, tales como tablas, índices y clusters. Los bloques modificados se llamas bloques sucios. El tamaño de buffer caché se fija por el parámetro DB_BLOCK_BUFFERS.
Es el caché que almacena los bloques de datos leidos de los segmentos de datos de la BD, tales como tablas, índices y clusters. Los bloques modificados se llamas bloques sucios. El tamaño de buffer caché se fija por el parámetro DB_BLOCK_BUFFERS.
Shared SQL Pool (Área de SQL Compartido, ):
En esta zona se encuentran las sentencias SQL que han sido analizadas. El analisis sintáctico de las sentencias SQL lleva su tiempo y Oracle mantiene las estructuras asociadas a cada sentencia SQL analizada durante el tiempo que pueda para ver si puede reutilizarlas. Antes de analizar una sentencia SQL, Oracle mira a ver si encuentra otra sentencia exactamente igual en la zona de SQL compartido.
En esta zona se encuentran las sentencias SQL que han sido analizadas. El analisis sintáctico de las sentencias SQL lleva su tiempo y Oracle mantiene las estructuras asociadas a cada sentencia SQL analizada durante el tiempo que pueda para ver si puede reutilizarlas. Antes de analizar una sentencia SQL, Oracle mira a ver si encuentra otra sentencia exactamente igual en la zona de SQL compartido.
Arquitectura de un manejador de bases de datos (DBMS).
Memoria:
- Shared Global Area (SGA): es el área más grande de memoria y quizás el más importante
- Shared Pool: es una caché que mejora el rendimiento ya que almacena parte del diccionario de datos y el parsing de algunas consultas en SQL
- Redo Log Buffer: contiene un registro de todas las transacciones dentro de la base, las cuales se almacenan en el respectivo archivo de Redo y en caso de siniestro se vuelven a ejecutar aquellos cambios que aún no se hayan reflejado en el archivo de datos (commit).
- Large Pool: espacio adicional, generalmente usado en casos de multithreading y esclavos de I/O.
- Procesos:
- Threading
- System Monitor: despierta periódicamente y realiza algunas actividades entre las que se encuentran la recuperación de errores, recuperación de espacio libre en tablespaces y en segmentos temporales.
- Process Monitor: limpia aquellos procesos que el usuario termina de manera anormal, verificando consistencias, liberación de recursos, bloqueos.
- Database Writer: escribe bloques de datos modificados del buffer al disco, aquellas transacciones que llegan a un estado de commit.
- Log Writer: escribe todo lo que se encuentra en el redo log buffer hacia el redo file
Archivos:
- Control (ctl): almacenan información acerca de la estructura de archivos de la base.
- Rollback (rbs): cuando se modifica el valor de alguna tupla en una transacción, los valores nuevos y anteriores se almacenan en un archivo, de modo que si ocurre algún error, se puede regresar (rollback) a un estado anterior.
- Redo (rdo): bitácora de toda transacción, en muchos dbms incluye todo tipo de consulta incluyendo aquellas que no modifican los datos.
- Datos (dbf): el tipo más común, almacena la información que es accesada en la base de datos.
Tipos de instancias de un DBMS.
Online Transaction Processing (OLTP): compra/venta, telemarketing
- Segmentos cortos de rollback
- Shared Pool muy largo
- Redo log suficiente
- Indices en discos separados
- Segmentos temporales pequeños
Decision Support Systems (DSS): datawarehouse
- Segmentos largos de rollback
- Shared Pool relativamente corto
- Redo log suficiente
- Indices apropiados
- Segmentos largos de temporal
- Parallel Query en la medida de lo posible (si está disponible)
miércoles, 7 de marzo de 2018
componentes de un gestor de base de datos
Un SGBD está estructurado en diversos componentes software( o módulos), a cada uno de los cuales se les asigna una operación específica. Como hemos indicado anteriormente , algunas de las funciones del SGBD están soportadas por el sistema operativo subyacente . Sin embargo, el sistema operativo sólo proporciona servicios básicos y el SGBD debe diseñarse para funcionar encima suyo. Por tanto, el diseño de un SGBD debe tener en consideración la interfaz entre el SGBC y el sistema operativo.
Gestor de archivos:
Gestiona la asignación de espacio en la memoria del disco y de las estructuras de datos usadas para representar la información.
Manejador de base de datos:
Sirve de interfaz entre los datos y los programas de aplicación.
Procesador de consultas:
Traduce las proposiciones en lenguajes de consulta a instrucciones de bajo nivel. Además convierte la solicitud del usuario en una forma más eficiente.
Compilador de DDL:
Convierte las proposiciones DDL en un conjunto de tablas que contienen metadatos, estas se almacenan en el diccionario de datos.
Archivo de datos:
En él se encuentran almacenados físicamente los datos de una organización.
Diccionario de datos:
Contiene la información referente a la estructura de la base de datos.
Índices:
Permiten un rápido acceso a registros que contienen valores específicos.
Control de autorización:
Este módulo comprueba que el usuario tiene los permisos necesarios para llevar a cabo la operación que solicita.
Gestor de recuperación:
Este módulo garantiza que la base de datos permanece en un estado consistente en caso de que se produzca algún fallo.
Gestor de transacciones:
Este módulo realiza el procesamiento de las transacciones.
Convierte las proposiciones DDL en un conjunto de tablas que contienen metadatos, estas se almacenan en el diccionario de datos.
Archivo de datos:
En él se encuentran almacenados físicamente los datos de una organización.
Diccionario de datos:
Contiene la información referente a la estructura de la base de datos.
Índices:
Permiten un rápido acceso a registros que contienen valores específicos.
Control de autorización:
Este módulo comprueba que el usuario tiene los permisos necesarios para llevar a cabo la operación que solicita.
Gestor de recuperación:
Este módulo garantiza que la base de datos permanece en un estado consistente en caso de que se produzca algún fallo.
Gestor de transacciones:
Este módulo realiza el procesamiento de las transacciones.
miércoles, 28 de febrero de 2018
programa que imprime 5 veces
TURBO ASSAMBLE:
.model small
.stack 64
.data
mensaje db 0Ah, 0dh,"letrero cinco veces", "$"
.code
inicio:
mov cx,0005
ciclo:
mov ax,@data
mov ds,ax
mov dx,offset mensaje
mov ah,09h
int 21h
loop ciclo
mov ah,04ch
int 21h
end inicio
EMU 8086:
.stack 64
.data
mensaje db 0Ah, 0dh,"letrero cinco veces", "$"
.code
inicio:
mov cx,0005
ciclo:
mov ax,@data
mov ds,ax
mov dx,offset mensaje
mov ah,09h
int 21h
loop ciclo
mov ah,04ch
int 21h
end inicio
Suscribirse a:
Entradas (Atom)
-
Oracle utiliza la memoria para almacenar la siguiente información: *Código del programa *Información acerca de una sesión conectada, in...
-
Ejemplo 1: # coding=utf-8 from turtle import * fi = 1.618033988749895 def cuadro(longitud): """Dibuja un cuadrado ...
-
MENÚ DE OPCIONES EN TURBO ASSEMBLE. pila segment stack 'stack' db 100h dup (?) pila ends datos segment tit...