MATERIAS DEL BLOG

martes, 24 de abril de 2018

PROGRAMA ENCRIPTADOR RESUBIDO

PROGRAMA ENCRIPTADOR
EL CODIGO



#-*- coding: utf-8 -*-
from Tkinter import *
#Jesus Eduardo Martinez Hinojosa

#Ventana
ventana = Tk()
ventana.geometry("300x300+350+80")
ventana.title("Encriptador")
ventana.resizable(width=False,height=False)
try:
    ventana.iconbitmap("icono.ico")
except:
    print("no hay icono disponible")

#Clave
numclave=1

#Funciones.
def boton1():
    # Cifrado Cesar
    TAM_MAX_CLAVE = 26
    def obtenerModo():
        modo = "e"
        return modo
            
    def obtenerMensaje():
        mensaje = text.get("0.0",END)
        return mensaje

    def obtenerClave():
        global numclave
        clave = numclave
        return clave

    def obtenerMensajeTraducido(modo, mensaje, clave):
        if modo[0] == 'd':
            clave= -clave
        traduccion = ''
        for simbolo in mensaje:
            if simbolo.isalpha():
                num = ord(simbolo)
                num += clave
                if simbolo.isupper():
                    if num > ord('Z'):
                        num -= 26
                    elif num < ord('A'):
                        num += 26
                elif simbolo.islower():
                    if num > ord('z'):
                        num -= 26
                    elif num < ord('a'):
                        num += 26
                traduccion += chr(num)
            else:
                traduccion += simbolo
        return traduccion

    modo = obtenerModo()
    mensaje = obtenerMensaje()
    if modo[0] != 'b':
        clave = obtenerClave()
    
    if modo[0] != 'b':
        texto=(obtenerMensajeTraducido(modo, mensaje, clave))
        text.delete("0.0",END)
        text.insert("0.0",texto)
        informe1.config(text="Texto Encriptado")
    else:
        for clave in range(1, TAM_MAX_CLAVE + 1):
            print(clave, obtenerMensajeTraducido('desencriptar', mensaje, clave))


def boton2():
    # Cifrado Cesar
    TAM_MAX_CLAVE = 26
    def obtenerModo():
        modo = "d"
        return modo
            
    def obtenerMensaje():
        mensaje = text.get("0.0",END)
        return mensaje

    def obtenerClave():
        global numclave
        clave = numclave
        return clave

    def obtenerMensajeTraducido(modo, mensaje, clave):
        if modo[0] == 'd':
            clave= -clave
        traduccion = ''
        for simbolo in mensaje:
            if simbolo.isalpha():
                num = ord(simbolo)
                num += clave
                if simbolo.isupper():
                    if num > ord('Z'):
                        num -= 26
                    elif num < ord('A'):
                        num += 26
                elif simbolo.islower():
                    if num > ord('z'):
                        num -= 26
                    elif num < ord('a'):
                        num += 26
                traduccion += chr(num)
            else:
                traduccion += simbolo
        return traduccion

    modo = obtenerModo()
    mensaje = obtenerMensaje()
    if modo[0] != 'b':
        clave = obtenerClave()
    
    if modo[0] != 'b':
        texto=(obtenerMensajeTraducido(modo, mensaje, clave))
        text.delete("0.0",END)
        text.insert("0.0",texto)
        informe1.config(text="Texto Desencriptado")
    else:
        for clave in range(1, TAM_MAX_CLAVE + 1):
            print(clave, obtenerMensajeTraducido('desencriptar', mensaje, clave))


def salir():
    ventana.destroy()

def menu_activacion(event):
    menu_despegable.post(event.x_root, event.y_root)

def cortar():
    text.clipboard_clear()
    text.clipboard_append(text.selection_get())
    sel = text.get(SEL_FIRST, SEL_LAST)
    text.delete(SEL_FIRST, SEL_LAST)
    
def copiar():
    text.clipboard_clear()
    text.clipboard_append(text.selection_get())

def pegar():
    tem = text.selection_get(selection="CLIPBOARD")
    text.insert(INSERT,tem)
    
#Widget
b1 = Button(ventana, text= "Encriptar",bg='black', fg='white', activebackground='cyan', activeforeground='dark slate gray', command=boton1,font=("Courier New", 9))
b2 = Button(ventana, text= "Desencriptar", bg='black', fg='white', activebackground='cyan', activeforeground='dark slate gray',command=boton2,font=("Courier New", 9))
text = Text(ventana, fg='lavender',bg='dark slate gray', font=("Courier New", 10))
informe1 = Label(ventana,text="Ingrese un texto",bg="turquoise",font=("Courier New", 10))

#Empaquetado de los widget
b1.place(x=10,y=260,width=120,height=30)
b2.place(x=167,y=260,width=120,height=30)

informe1.place(x=0,y=0,width=300,height=30)

text.place(x=0,y=30,height=218,width=300)


#Menu popup(menu despegable)
menu_despegable = Menu(ventana, tearoff=0)
menu_despegable.add_command(label="Cortar",command=cortar,font=("Courier New", 9))
menu_despegable.add_command(label="Copiar",command=copiar,font=("Courier New", 9))
menu_despegable.add_command(label="Pegar",command=pegar,font=("Courier New", 9))
menu_despegable.add_separator()
menu_despegable.add_command(label="Salir",command=salir,font=("Courier New", 9))


#Evento del menu despegable
text.bind("<Button-3>",menu_activacion)


#donde mantener el enfoque.
ventana.mainloop()

jueves, 19 de abril de 2018

PROCEDIMIENTOS ALMACENADOS EN MYSQL

PROCEDIMIENTOS ALMACENADOS EN MY SQL



CASE


INSERTAR

BORRAR


CONSULTAR







REPASO UNIDAD 2 : ADMINISTRACION DE BASES DE DATOS

REPASO DE LA UNIDAD

A lo largo de toda la unidad 2 experimentamos con algunas de las herramientas que ofrece MySql, principalmente con el manejo de sistemas gestores de BD y empezar a utilizar ya sea el commit y el rollback

2.1 Características del DBMS

CONTROL DE REDUNDANCIA

* Redundancia es el resultante de almacenar los mismos datos varias veces, esto conduce a serios problemas como duplicación del esfuerzo, derrochar espacio de almacenamiento, incoherencia de los datos.

* En la practica se puede recurrir a una redundancia controlada, en este caso el DBMS debe tener la capacidad de controlarla.


ACCESOS QUE NO SON PERMITIDOS

* Cuando varios usuarios comparten una base de datos grande, la mayoría no tiene autorización para acceder a toda la información de la BD.

* Un DBMS debe proporcionar seguridad y un subsistema de autorización que el DBA debe utilizar para crear cuentas y especificar las restricciones de la misma.

INTEGRIDAD Y SUS RESTRICCIONES
La mayor parte de las aplicaciones de base de datos tienen ciertas restricciones de integridad que deben cumplir los datos. El SGBD debe ofrecer recursos para definir tales restricciones y hacer que se cumplan.

RESPALDAR Y RECUPERAR
* El DBMS debe contar con el subsistema de copia de seguridad y recuperación.
* Por ejemplo si falla la computadora en medio de una transacción compleja de actualización el DBMS debe dejar la BD en el estado anterior.
Suministro de varias interfaces de usuarios
* Cuando una base de datos la utilizan muchos tipos de usuarios con distintos niveles de conocimiento técnico, un DBMS.

2.1.1 Estructura de Memoria y Procesos de la Instancia

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.

Java Pool: usado principalmente para almacenar objetos Java

Procesos:
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
Checkpoint: sincroniza todo lo que se tenga en memoria, con sus correspondientes archivos en disco

proceso servidor y proceso cliente

El proceso cliente es el programa en la memoria de la máquina en la que el usuario ha conectado con Oracle. Este proceso se comunica con un proceso servidor que es lanzado cuando el cliente establece conexión con Oracle.

Puede haber un mismo proceso servidor para más de un cliente en caso de una configuración compartida de proceso servidor. Cuando el proceso cliente y el servidor establecen conexión, se crea la sesión de usuario, que es manejada por el proceso servidor. El proceso de usuario no puede acceder directamente a la base de datos.



2.1.2 Estructuras Físicas de la Base de Datos


Una BD Oracle tiene una estructura física y una estructura lógica que se mantienen separadamente.

La estructura física se corresponde a los ficheros del sistema operativo: de datos (datafiles), de redo log y de control (controlfiles).

La estructura lógica está formada por los tablespace y los objetos de un esquema de BD (tablas, vistas, índices,...).


La Arquitectura de Oracle tiene tres componentes básicos:

*La Estructura de memoria

Es la estructura de memoria compartida que contienen datos e información de control para una instancia de una base de datos, cada instancia tiene sus propias estructuras de memoria y se localiza en la memoria virtual del computador. Las estructuras de memoria se denominan System Global Area (SGA) la cual es un área compartida por todos los usuarios y se divide en tres partes:

1.- shared pool

2.- Database buffer cache

3.- Redo Log Buffer


*Los Procesos

Los procesos son programas que se ejecutan para permitior el acceso a los datos, se cargan en memoria y son transportados para los usuarios.


*Los Archivos.

Se clasifican en 4 tipos:

1.- Los Archivos de Datos (Datafiles): sirve para el almacenamiento físico de las tablas, índices y procedimientos, estos son los únicos que contienen los datos de los usuarios de la base de datos.

2.- Archivos de Control (control files): tiene la descripción física y dirección de los archivos para el arranque correcto de la base de datos

3.- Archivos de Rehacer (redo log files): tienen los cambios que se han hecho a la base de datos para recuperar fallas o para manejar transacciones. Debe esta conformado por dos grupos como mínimo y cada grupo debe esta en discos separados. El principal propósito de estos archivos es de servir de respaldo de los datos en la memoria RAM.

4.- Archivos fuera de línea (archived files): archivos opcionales donde se pueda guardar información vieja de los archivos de rehacer, convenientes para respaldos de base de datos.

2.1.3 Requerimiento para Instalación

Antes de instalar cualquier SGBD es necesario conocer los requerimientos de hardware y software, el posible software a desinstalar previamente, verificar el registro de Windows y el entorno del sistema, así como otras características de configuración especializadas como pueden ser la reconfiguración de los servicios TCP/IP y la modificación de los tipos archivos HTML para los diversos navegadores. Se presenta a continuación una serie de requerimientos mínimos de hardware y software para instalar oracle 11g Express y MySQL estándar versión 5.1. en Windows Seven y Ubuntu 10.



Resultado de imagen para REQUERIMIENTOS INSTALACION MYSQL




La regla general para determinar el tamaño de la memoria virtual depende del tamaño de memoria RAM instalada. Si su sistema tiene menos de 4 GB de RAM por lo general el espacio de intercambio debe ser de al menos dos veces este tamaño. Si usted tiene más de 8 GB de memoria RAM instalada puede considerar usar el mismo tamaño como espacio de intercambio. Cuanta más memoria RAM tenga instalada, es menos probable usar el espacio de intercambio, a menos que tenga un proceso inadecuado.


2.1.4 Instalación del Software de BD en Modo Transaccional



Una base de datos en modo transaccional significa que la BD será capaz de que las operaciones de inserción y actualización se hagan dentro de una transacción, es un componente que procesa información descomponiéndola de forma unitaria en operaciones indivisibles, llamadas transacciones, esto quiere decir que todas las operaciones se realizan o no, si sucede algún error en la operación se omite todo el proceso de modificación de la base de datos, si no sucede ningún error se hacen toda la operación con éxito.



Se usan las siguientes métodos :

· Begin TRans para iniciar la transacción
· CommitTrans para efectuar los cambios con éxito
· RollbackTrans para deshacer los cambios

Y depende que base de datos uses para efectuar las operaciones pero, es la misma teoría para cualquier BD.
Una vez que se sabe la forma de ingresar comandos, es el momento de acceder a una base de datos.

Suponga que en su hogar posee varias mascotas y desea registrar distintos tipos de información sobre ellas. Puede hacerlo si crea tablas para almacenar sus datos e introduce en ellas la información deseada. Entonces, podrá responder una variedad de preguntas acerca de sus mascotas recuperando datos desde las tablas. Los pasos serían:

• Crear una base de datos
• Crear una tabla
• Introducir datos en la tabla
• Recuperar datos desde la tabla de varias maneras
• Emplear múltiples tablas

2.1.5 Variables de Ambiente y Archivos Importantes para Instalación


Para instalar MySQL como primer instancia el archivo primordial es el que se descarga de la web de MySQL. Depende del sistema operativo su instalación.

Variable: Es un espacio en memoria al cual se le da un nombre Hay variables específicas
que se crean al momento de entrar al sistema, pero también hay variables que pueden ser
definidas por el usuario. Las variables son una forma de pasar información a los programas al momento de ejecutarlos.

Variables de Ambiente: Se usan para personalizar el entorno en el que se ejecutan los
programas y para ejecutar en forma correcta los comandos del shell.

El proceso para instalar MySQL desde un archivo ZIP es lo siguiente:



1- Extraer el contenido del archivo dentro del directorio de instalación deseado.



2 - Crear un archivo de opciones


3- Elegir un tipo de servidor MySQL.

4- Iniciar el servidor MySQL

5- Establecer la seguridad de las cuentas de usuario por defecto.

2.1.6 Procedimiento General de Instalación

El proceso de instalación es muy simple y prácticamente no requiere intervención por parte del usuario.







Es similar en otra Bases de Datos.

2.1.7 Procedimiento para Configuración de un DBMS


Para configurar nuestro DBMS podemos acceder a las siguientes pantallas, para Oracle o MySQL.

El esquema de una base de datos (en inglés, Database Schema) describe la estructura de una Base de datos, en un lenguaje formal soportado por un Sistema administrador de Base de datos (DBMS). En una Base de datos Relacional, el Esquema define sus tablas, sus campos en cada tabla y las relaciones entre cada campo y cada tabla.
Oracle generalmente asocia un 'username' como esquemas en este caso SYSTEM y HR (Recursos humanos).

Por otro lado MySQL presenta dos esquemas information_schema y MySQL ambos guardan información sobre privilegios y procedimientos del gestor y no deben ser eliminados.
Adelante, sin miedo…



Pon una contraseña al usuario root. Esto siempre es lo más seguro.

Si lo deseas, puedes indicar que el usuario root pueda acceder desde una máquina diferente a esta, aunque debo advertirte de que eso tal vez no sea una buena práctica de seguridad.






2.1.8 Comandos Generales de Alta y Baja del DBMS

Una tabla es un sistema de elementos de datos (atributo - valores) que se organizan que usando un modelo vertical - columnas (que son identificados por su nombre)- y horizontal filas. Una tabla tiene un número específico de columnas, pero puede tener cualquier número de filas. Cada fila es identificada por los valores que aparecen en un subconjunto particular de la columna que se ha identificado por una llave primaria.

Una tabla de una base de datos es similar en apariencia a una hoja de cálculo, en cuanto a que los datos se almacenan en filas y columnas. Como consecuencia, normalmente es bastante fácil importar una hoja de cálculo en una tabla de una base de datos. La principal diferencia entre almacenar los datos en una hoja de cálculo y hacerlo en una base de datos es la forma de organizarse los datos.

MySQL
MySQL soporta varios motores de almacenamiento que tratan con distintos tipos de tabla. Los motores de almacenamiento de MySQL incluyen algunos que tratan con tablas transaccionales y otros que no lo hacen:

MyISAM: trata tablas no transaccionales. Proporciona almacenamiento y recuperación de datos rápida, así como posibilidad de búsquedas fulltext. MyISAM se soporta en todas las configuraciones MySQL, y es el motor de almacenamiento por defecto a no ser que tenga una configuración distinta a la que viene por defecto con MySQL.

El motor de almacenamiento MEMORY proporciona tablas en memoria. El motor de almacenamiento MERGE permite una colección de tablas MyISAM idénticas ser tratadas como una simple tabla. Como MyISAM, los motores de almacenamiento MEMORY y MERGE tratan tablas no transaccionales y ambos se incluyen en MySQL por defecto.



Conclusión PERSONAL:
Los sistemas gestores de bases de datos, nos facilitan el desempeño y manejo de la información útil. Su funcionamiento depende de qué tanto provecho seamos capaces darle a estas herramientas tan poderosas, por tal razón es preciso conocer definir, manejar e identificar los SGBD para lograr extraer todo el potencial que encierran estos novedosos programas. Pero también es muy importante como es su estructura, características, procedimientos de instalación y configuración, de igual manera conocer sobre la memoria y sus diferentes tipos y los diferentes procesos que nos pueden ayudar en diferentes situaciones.

BASE DE DATOS SQL | ARQUITECTURA FISICA

BD SQL ARQUITECTURA FISICA

La unidad fundamental del almacenamiento de datos en SQL Server es la página. El espacio en disco asignado a un archivo de datos (.mdf o .ndf) de una base de datos se divide lógicamente en páginas numeradas de forma contigua de 0 a n. Las operaciones de E/S de disco se realizan en el nivel de página. Es decir, SQL Server lee o escribe páginas de datos enteras.

Páginas
En SQL Server, el tamaño de página es de 8 KB. Esto significa que las bases de datos de SQL Server tienen 128 páginas por megabyte. Cada página empieza con un encabezado de 96 bytes, que se utiliza para almacenar la información del sistema acerca de la página. Esta información incluye el número de página, el tipo de página, el espacio libre en la página y el Id. de unidad de asignación del objeto propietario de la página.




Extensiones
Las extensiones son la unidad básica en la que se administra el espacio. Una extensión consta de ocho páginas contiguas físicamente, es decir 64 KB. Esto significa que las bases de datos de SQL Server tienen 16 extensiones por megabyte.

Para hacer que la asignación de espacio sea eficaz, SQL Server no asigna extensiones completas a tablas con pequeñas cantidades de datos. SQL Server tiene dos tipos de extensiones:
·         Las extensiones uniformes son propiedad de un único objeto; sólo el objeto propietario puede utilizar las ocho páginas de la extensión.
·         Las extensiones mixtas, que pueden estar compartidas por hasta ocho objetos. Cada una de las 8 páginas de la extensión puede ser propiedad de un objeto diferente.

Archivos de base de datos
Las bases de datos de SQL Server 2005 utilizan tres tipos de archivos:
·         Archivos de datos principales: El archivo de datos principal es el punto de partida de la base de datos y apunta a los otros archivos de la base de datos. Cada base de datos tiene un archivo de datos principal. La extensión recomendada para los nombres de archivos de datos principales es .mdf.
·         Archivos de datos secundarios: Los archivos de datos secundarios son todos los archivos de datos menos el archivo de datos principal. Puede que algunas bases de datos no tengan archivos de datos secundarios, mientras que otras pueden tener varios archivos de datos secundarios. La extensión de nombre de archivo recomendada para los archivos de datos secundarios es .ndf.
·         Archivos de registro: Los archivos de registro almacenan toda la información de registro que se utiliza para recuperar la base de datos. Como mínimo, tiene que haber un archivo de registro por cada base de datos, aunque puede haber varios. La extensión de nombre de archivo recomendada para los archivos de registro es .ldf.

Nombres de archivo logico y fisico

Los archivos de SQL Server 2005 tienen dos nombres:

logical_file_name es el nombre que se utiliza para hacer referencia al archivo en todas las instrucciones Transact-SQL. El nombre de archivo lógico tiene que cumplir las reglas de los identificadores de SQL Server y tiene que ser único entre los nombres de archivos lógicos de la base de datos.

os_file_name es el nombre del archivo físico que incluye la ruta de acceso al directorio.
Debe seguir las reglas para nombres de archivos del sistema operativo.


Paginas de archivos de datos

Las páginas de un archivo de SQL Server 2005 están numeradas secuencialmente, comenzando por 0 para la primera página del archivo. Cada archivo de una base de datos tiene un número de identificador único. Para identificar de forma única una página de un base de datos, se requiere el identificador del archivo y el número de la página. El siguiente ejemplo muestra los números de página de una base de datos que tiene un archivo de datos principal de 4 MB y un archivo de datos secundario de 1 MB.


Archivos de instantáneas de bases de datos
La forma de archivo que utiliza una instantánea de base de datos para almacenar sus datos de copia por escritura depende de si la instantánea la ha creado un usuario o se utiliza internamente:
·         Una instantánea de base de datos que crea un usuario almacena sus datos en uno o más archivos dispersos. La tecnología de archivos dispersos es una característica del sistema de archivos NTFS. Al principio, un archivo disperso no incluye datos de usuario y no se le asigna espacio en disco.
·         Las instantáneas de bases de datos las utilizan internamente algunos comandos DBCC. Entre estos comandos se incluyen: DBCC CHECKDB, DBCC CHECKTABLE, DBCC CHECKALLOC y DBCC CHECKFILEGROUP. Una instantánea de base de datos interna utiliza secuencias de datos alternativos dispersos de los archivos de base de datos originales.

Tamaño de archivo
Los archivos de SQL Server 2005 pueden crecer automáticamente a partir del tamaño originalmente especificado. Cuando se define un archivo, se puede especificar un incremento de crecimiento. Cada vez que se llena el archivo, el tamaño aumenta en la cantidad especificada. Si hay varios archivos en un grupo de archivos, no crecerán automáticamente hasta que todos los archivos estén llenos.

ARQUITECTURA DE UN MANEJADOR DE BASES DE DATOS

ARQUITECTURA DE UN MANEJADOR DE BASES DE DATOS

Resultado de imagen para ARQUITECTURA DE UN MANEJADOR DE BASE DE DATOS

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.

En esta zona se encuentran las sentencias SQL que han sido analizadas. El análisis 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. Si es así, no la analiza y pasa directamente a ejecutar la que mantiene en memoria. De esta manera se premia la uniformidad en la programación de las aplicaciones. La igualdad se entiende que es lexicográfica, espacios en blanco y variables incluidas.
La base de datos Oracle asigna memoria a la shared pool cuando una nueva instrucción sql se analiza. El tamaño de esta memoria depende de la complejidad de la instrucción. Si toda la shared pool ya ha sido asignada la base de datos Oracle puede liberar elementos de la shared pool hasta que haya suficiente espacio libre para nuevas sentencias. Al liberar un elemento de la shared pool el sql asociado debe ser recompilado y reasignado a otra área de sql compartida la próxima vez que se ejecute.
El contenido de la zona de SQL compartido es:
  • Las sentencias SQL y PL/SQL (texto de la sentencia)
  • Plan de ejecución de la sentencia SQL.
  • Lista de objetos referenciados.
Los pasos de procesamiento de cada petición de análisis de una sentencia SQL son:
  • Comprobar si la sentencia se encuentra en el área compartida.
  • Comprobar si los objetos referenciados son los mismos.
  • Comprobar si el usuario tiene acceso a los objetos referenciados.Si no, la sentencia es nueva, se analiza y los datos de análisis se almacenan en la zona de SQL compartida.
Dividido en:

Library cache

Incluye los espacios comunes de SQL, áreas privadas de SQL (en el caso de una configuración de servidor compartido), los procedimientos PL/SQL y paquetes, y las estructuras de control, tales como bloqueos.

Data Dictionary Cache

También conocido como Dictionary Cache o Row Cache, almacena la información de uso más reciente sobre el diccionario de datos. Es una colección de tablas y vistas que contienen información referente a la base de datos como los nombres y tipos de datos de las columnas de las tablas, usuarios, passwords y privilegios. Durante la fase de compilación, esta información es necesaria para resolver los nombres de los objetos utilizados en un comando SQL y para validar los privilegios de acceso.
Video: https://www.youtube.com/watch?v=fKOnylu4tmA

Large Pool

El administrador de la base de datos puede configurar esta área de memoria opcional, para proveer localidades más amplias de memoria para:
  • Memoria de sesiones.
  • Procesos de I/O del servidor
  • Backups de la base de datos y operaciones de recuperación.
Al asignar espacios dentro de large pool para un servidor compartido, Oracle puede usar la shared pool principalmente para guardar en caché las sentencias compartidas de sql y evitar la sobrecarga causada por la disminución de la caché de sql compartida. Además la memoria para backup y operaciones de recuperación y para procesos de I/O del servidor es asignada en buffers de algunos cientos de kilobytes, por lo que la large pool mucho más capaz de satisfacer dicha demanda de memoria que la shared pool.

Java Pool

La memoria java pool es usada en la memoria del servidor para todas las sesiones que utilicen código java y datos en la JVM. Esta memoria es usada de diferentes maneras dependiendo del modo en el que la base de datos esté corriendo.

Streams Pool

Esta memoria es usada exclusivamente por flujos de Oracle. Esta almacena colas de mensajes y provee memoria para que los flujos de Oracle capturen procesos y los apliquen. A menos que se configure específicamente, el tamaño de esta memoria empieza en cero. El tamaño de la streams pool crece dinámicamente como sea necesario cuando los flujos de Oracle son usados.

FIGURA 3D EN PYTHON

import pygame from pygame.locals import * from OpenGL.GL import * from OpenGL.GLU import * verticies = ( (1, -1, -1), (1...