Está en la página 1de 14

PRESENTACION

INTRODUCCION
Unidad 2 - Arquitectura e instalación del SGBD

Estructura de memoria y procesos a la instancia


Para que un SGBD pueda funcionar, primero se debe hacer una instancia de este. La
memoria se puede estructurar de diferentes maneras.
Área Global del sistema (SGA)
Es un grupo de estructuras de la memoria compartida que contiene datos e información
de control de una instancia de una BD. Sirve para facilitar la transferencia de información
entre usuarios y también almacena la información estructural de la BD más
frecuentemente requerido (Vegas, 1998). La SGA se divide en varias partes:
Caché de los Buffers (Database Buffer Cache): Contiene copias de los bloques de datos de
lectura de las páginas. Todos los procesos de los usuarios conectados concurrentemente a
la instancia comparten el acceso a ella.
Buffer del registro del Rehacer (Redo Log Buffer): Contiene información sobre cambios
hechos a la base de datos, la cual se almacena en las entradas redo. Estas entradas
contienen la información necesaria para reconstruir, o rehacer cambios hechos en la base
de datos mediante las operaciones INSERT, UPDATE, DELETE, CREATE, ALTER o DROP y se
usan para la recuperación de la base de datos, si fuera necesario.
Pool Compartido: Es la parte del SGA que contiene la cache de biblioteca, la cache de
diccionario, los buffers para los mensajes de ejecución paralela y las estructuras de
control.
Large Pool: El administrador de la base de datos puede configurar un área de memoria
opcional llamado large pool que proporciona grandes cantidades de memoria para
asignar:

 Memoria de la sesión para el servidor compartido y el Oracle XA interface (usado


donde las transacciones interactúan con más de una base de datos)
 Procesamiento de E/S
 Copias de seguridad y operaciones de recuperación
Java Pool: Se usa en la memoria del servidor para almacenar todo el código y datos del
JVM en las sesiones.
Streams Pool: En una única base de datos, se puede especificar que los flujos de memoria
se asignen desde un pool en el SGA llamado Streams pool.
Cache de diccionario (Dictionary Cache): El diccionario de datos es una colección de
tablas y vistas de la base de datos que contienen información sobre la base de datos (sus
estructuras y sus usuarios). Oracle accede con frecuencia al diccionario de datos, por lo
que tiene dos localizaciones especiales en memoria designadas a mantenerlo. Una de ellas
es la caché del diccionario de datos, también conocida como la cache de fila porque
contiene datos sobre las filas en vez de los buffers (los cuales contienen bloques de datos),
y la otra es el cache de biblioteca.
Áreas globales de programas (PGA)
El Program Global Area es un área de memoria utilizada por un proceso Oracle. Esta zona
de memoria no se puede compartir. Es privada para cada servidor y son procesos en
segundo plano; a cada proceso se asigna un PGA. Por ende, El contenido de su memoria
varía dependiendo donde se esté ejecutando la instancia y de si el servidor es compartido
(Vegas, 1998).
Memoria virtual
La memoria virtual es una técnica de gestión de la memoria que permite que el sistema
operativo disponga, tanto para el software de usuario como para sí mismo, de mayor
cantidad de memoria que esté disponible físicamente. Las funciones de memoria virtual
permiten a un proceso manipular o determinar el estado de las páginas en su espacio de
direcciones virtuales (Microsoft, 2021). Pueden realizar las siguientes operaciones:

 Reserve un intervalo de espacio de direcciones virtuales de un proceso. Reservar


espacio de direcciones no asigna ningún almacenamiento físico, pero impide que
otras operaciones de asignación utilicen el intervalo especificado.
 Liberar un intervalo de páginas reservadas, lo que hace que el intervalo de
direcciones virtuales esté disponible para las operaciones de asignación
posteriores por el proceso de llamada.
 Obtenga información sobre un intervalo de páginas en el espacio de direcciones
virtuales del proceso de llamada o de un proceso especificado.
Área de código de Software (SCA)
El área de código de software son zonas de memoria destinadas a almacenar el código de
Oracle en ejecución o que puede ejecutarse. Este código de Oracle se almacena en una
zona distinta, y más protegida, que las zonas dedicadas a almacenar los códigos de
programas de usuarios.
La SCA suele ser de tamaño estático, cambiando únicamente cuando el software se
reinstala o actualiza. El tamaño requerido para esta área puede variar en función del SO.
Son áreas de sólo lectura y pueden ser instalas de forma compartida o no compartida.
Cuando es posible, el código de Oracle se comparte, por lo que todos los usuarios pueden
acceder a él sin tener múltiples copias en memoria. El resultado es un ahorro considerable
de memoria y una mejora del rendimiento general.
Estructura de procesos
Cuando un usuario se conecta a una base de datos de Oracle ejecuta dos módulos de
código diferentes, que además el encargado de gestionar estos procesos es el sistema
operativo, estos dos módulos diferentes son:

 Aplicación o Herramienta Oracle: normalmente son programas clientes que se


conectan a la base de datos y permiten ejecutar sentencias SQL. Ej.: SQL*Plus, SQL
developer
 Código del Servidor de Oracle: son los diferentes procesos que se han de ejecutar
en el servidor para atender las peticiones del usuario.
De los procesos que se ejecutan en el servidor podemos hacer dos grandes grupos:
Procesos de Usuarios: Cada vez que un usuario ejecuta una aplicación, ya sea propia o de
Oracle se crea un proceso, que puede ser de dos tipos.

 Conexión: Que es la vía de comunicación entre la aplicación y la instancia de la


base de datos a la que se ha conectado.
 Sesión: Es la conexión específica con la base de datos proporcionando un usuario y
su contraseña.
Esto permite que desde un mismo equipo se puedan conectar varios usuarios
simultáneamente, y que un usuario se pueda conectar desde diferentes equipos
simultáneamente.
Procesos de Oracle: Son propios de la base de datos, y el usuario no tiene control sobre
ellos, pueden ser de dos tipos:
Procesos de Servidor: Se crea cuando una aplicación intenta acceder a la base de datos,
para atender a las peticiones de la aplicación y devolver los resultados que se precisen.
Procesos de Background: Se crean cuando se inicia una instancia de la base de datos, solo
hay un proceso de cada tipo de los que especificaremos a continuación, y no han de estar
todos siempre presentes en el servidor. Se utilizan para realizar labores de
mantenimiento, y para guardar la integridad de la base de datos. Los diferentes tipos de
procesos son los siguientes:

 Monitor del sistema (System Monitor, SMON): Es responsable de efectuar la


recuperación de un error cuando se arranca la instancia a continuación de algún
tipo de fallo.
 Monitor de procesos (Process Monitor, PMON): Es responsable de controlar los
procesos de usuario que accedan a la base de datos y recuperados después de
producirse algún error.
 Escritor de base de datos (Database Writer, DBWR): El proceso DBWR es
responsable de escribir los bloques modificados (sucio) desde la caché de búfer del
SGA a los archivos de datos situados en disco.
 Escritor de registro (Log Writer, LGWR): Es responsable de escribir los datos desde
el búfer de registro al archivo de redo.
 Punto de control (Checkpoint, CKPT): Este proceso escribe en los ficheros de
control los checkpoints. Estos puntos de sincronización son referencias al estado
coherente de todos los ficheros de la BD en un instante determinado, en un punto
de sincronización.
 Archivador (Archiver, ARCH): Es responsable de copiar los archivos de registro de
rehacer en línea en el soporte de almacenamiento de archivo cuando dichos
registros se llenan.
 Recuperador (Recoverer, RECO): Es responsable de efectuar las tareas de limpieza
requeridas por las transacciones distribuidas que hayan fallado o que hayan sido
suspendidas.
1 Estructura de memoria y procesos

Estructura física de la base de datos


La organización física de una base de datos es en cierta medida esencial para un buen
sistema ya que de ahí depende el rendimiento general además de que se determina en
gran medida por la estructura físicas que mantienen los datos y por la eficiencia con la
cual el sistema trabaja sobre mismas.
De este modo se producen dos visiones de la base de datos:
Estructura lógica. Indica la composición y distribución teórica de la base de datos. La
estructura lógica sirve para que las aplicaciones puedan utilizar los elementos de la base
de datos sin saber realmente cómo se están almacenando. Es una estructura que permite
idealizar a la base de datos. Sus elementos son objetos, entidades, nodos, relaciones,
enlaces, etc., que realmente no tienen presencia real en la física del sistema. Por ello para
acceder a los datos tiene que haber una posibilidad de traducir la estructura lógica en la
estructura física.
Estructura física. Es la estructura de los datos tan cual se almacenan en las unidades de
disco. La correspondencia entre la estructura lógica y la física se almacena en la base de
datos (en los metadatos) (ITS Hopelchen, 2004).

Requerimientos para instalación.


Cada SGBD tiene un requisito mínimo tanto de CPU, como de memoria para operar
adecuadamente. Además, algunos SGBD especifican los modelos de hardware y software
que requieren. Un problema muy frecuente es que no se sabe que SGBD elegir, es por ello
que antes de tomar estas decisiones es necesario investigar los requerimientos de
instalación, así como el desempeño o descripción de estos.
Requisitos mínimos de hardware para MySQL Workbench

Fuente: MySQL (Oracle Corporation, 2022)

Sistema Operativo:

 Windows 7 (de 64 bits) o superior


 MacOS X 10.6.1 o superior
 Ubuntu 9.10 (64 bits)
 Ubuntu 8.04 (32/64 bits)
Requisitos previos y requisitos de software y hardware Oracle 18c Grid y la base de datos
independiente en Red Hat Enterprise Linux 7.x
Requisitos previos y requisitos de software y hardware
a. Requisitos de RAM y de espacio de intercambio, mínimo de RAM:

 Al menos 1 GB de RAM para las instalaciones de la base de datos de Oracle. Se


recomiendan 2 GB de RAM
 Al menos 8 GB de RAM para instalaciones de infraestructura de red de Oracle
 Espacio de intercambio: el espacio de intercambio mínimo recomendado para la
base de datos de Oracle 18c es de 2 GB o el doble del tamaño de RAM, el que sea
menor
b. Lista de comprobación de almacenamiento
A continuación, se describen los requisitos de espacio en disco para Linux x86-64:

 Al menos 6,8 GB para una infraestructura de red de Oracle en una instalación de


servidor independiente
 Al menos 7,5 GB para Oracle Database Enterprise Edition
 Al menos 7,5 GB para Oracle Database Standard Edition 2
c. Requisitos de red
Se recomienda asegurarse de que cada nodo contenga al menos una tarjeta de interfaz de
red para la red pública. El nombre de host de cada nodo debe seguir el estándar RFC 952
(www.ietf.org/rfc/rfc952.txt). No se permite que el nombre de host incluya un guion bajo
("_") ( (DELL, 2021)).

Instalación del SGBD 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.
Todo software de base de datos es transaccional; si el software de la BD no es
“transaccional", en realidad no es un software de BD; en todo caso, es un software que
emula el funcionamiento de un verdadero software de BD. Cada transacción debe finalizar
de forma correcta o incorrecta como una unidad completa. No puede acabaren un estado
intermedio
Se usan los siguientes comandos:
Begin TRans para iniciar la transacción
El siguiente es la forma incorrecta para utilizar las transacciones porque no se realiza
ninguna comprobación de errores.
$DB -> BeginTrans ();
$DB -> Execute ( "update table1 set val=$val1 where id=$id" );
$DB -> Execute ( "update table2 set val=$val2 where id=$id" );
$DB -> CommitTrans ();
Es posible actualizar tabla1 y para la actualización en tabla2 falle. Aquí es una mejor
manera:
$DB -> BeginTrans ();
$ok = $DB -> Execute ( "update table1 set val=$val1 where id=$id" );
if ( $ok ) $ok = $DB -> Execute ( "update table2 set val=$val2 where id=$id" );
if ( $ok ) $DB -> CommitTrans ();
else $DB -> RollbackTrans ();

CommitTrans para efectuar los cambios con éxito


Guarda los cambios realizados dentro de una transacción abierta en la conexión y termina
la transacción. Para que finalice una transacción con éxito, devuelve verdadero si tiene
éxito, si la base de datos no admite transacciones, devolverá cierto también que los datos
siempre se han comprometido.
Si pasa el parámetro $ ok = false, los datos se deshacen.

RollbackTrans para deshacer los cambios


Finalizar una transacción o deshacer todos los cambios, hará devolver verdadero si tiene
éxito, si la base de datos no admite transacciones, devolverá falso como datos nunca se
rollback.

Variables de Ambiente y archivos importantes para instalación.


Las variables de entorno se crean por la necesidad de acceder al contenido de valores
dinámicos, distintos en cada sistema, son parámetros preestablecidos a rutas, valores o
aplicaciones que cambian según el entorno, PC o sistema o el usuario que los utilice. Las
variables permiten acceder a archivos y funciones comunes del sistema en cualquier lugar
donde estas se encuentren localizadas (Yarzagaray, 2016).
Cada usuario tiene la opción de escoger diferentes ubicaciones físicas a archivos y
directorios de su sistema, pero siempre las variables indicarán la ubicación exacta.

 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.
Hay cuatro tipos de registros (logs):

 Registro de Errores (Error Log): Indica cuando arrancó y se detuvo el servidor. Se graba
por defecto en la carpeta de datos de MySQL (archivo host_name.err, donde
host_name es el nombre del servidor), pero la variable de sistema log_error permite
indicar otra ruta si fuera necesario.
 Registro General de Consultas (General Log File): Está en la carpeta de datos de
MySQL, salvo que se indique la variable general-log-file. Contiene las consultas
realizadas. Es el archivo host_name.log.
 Registro Binario (Binary Log): Registra instrucciones DML. Los archivos binarios se
almacenan por defecto en el directorio de datos. Sirve para intentar restaurar una
base de datos en caso de desastre. Es binario, por lo que su manejo es complicado,
para ver el contenido se usa la utilidad mysqlbinlog de esta forma: mysqlbinlog
archivoLOG
 Registro de Consultas Lentas (Slow Query Log File): Registra las consultas que tardaron
más del tiempo mínimo establecido. El archivo está (salvo que se especifique slow-log-
file como parámetro) en la carpeta de datos de MySQL con el nombre host_name-
slow.log
Variables de entorno para MySQL

 basedir = ruta: Ruta a la raíz MySQL


 console: Muestra los errores por consola independientemente de lo que se
configure para log_error.
 datadir = ruta: Ruta al directorio de datos.
 default-table-type = tipo: Tipo de la Tabla InnoDB o, MyISAM.
 flush: Graba en disco todos los comandos SQL que se ejecuten (modo de trabajo,
sin transacción).
 general-log = valor: Con valor uno, permite que funcione el archivo LOG para
almacenar las consultas realizadas.
 general-log-file = ruta: Indica la ruta al registro general de consultas.

Variables de entorno para Oracle

 directory_path: Especifica el directorio donde se almacenan el idioma, territorio,


juego de caracteres, y los archivos de definición lingüística. Ejemplo:
$ORACLE_HOME/nls/data
 directory1:directory2:directory3 : Especifica la ruta de búsqueda de archivos que
utilizan las aplicaciones Oracle como SQL * Plus. Si la ruta completa al archivo no es
especificada, o si el archivo no está, la aplicación Oracle utiliza ORACLE_PATH para
localizar el archivo. Ejemplo: u01/app/oracle/product/11.2.0/dbhome_1/bin:
 characterset: Especifica el nombre del conjunto de caracteres de Oracle
correspondiente al conjunto de caracteres UNIX lugar en el que los nombres de
archivo y nombres de usuario están codificados por el sistema operativo. Ejemplo:
WE8ISO8859P1

Procedimiento general de instalación


El proceso solo ha de tardar uno cuantos minutos (UAM, 2019).
1. 1. Descargar MYSQL Installer desde su sitio oficial
2. Instalar MySQL Installer.: Una vez descargado, diríjase a la localización del paquete
en su equipo (generalmente en el directorio “Descargas”) y ejecútelo como
administrador haciendo clic derecho. Seleccione los productos que desea instalar
(por default puede realizar una instalación completa) y haga clic en “Next”.
3. Finalmente, deberá hacer clic en el botón “Finish”, para terminar con la
instalación.
4. Al finalizar la instalación de “MySQL Installer”, este se ejecturá. Con esta
herramienta podrá instalar MySQL Workbench y MySQL Server
5. Instalar MySQL Workbench y MySQL Server: Haga clic en “Add”, para instalar
MySQL Workbench y MySQL Server:

Despliegue la pestaña de MySQL Servers>MySQL Server 8.0 y añada “MySQL


Server 8.0.20 - x64” a la lista de productos para instalar, seleccionando y haciendo
clic en la flecha verde con dirección a la derecha. Realice el mismo proceso en la
pestaña Applications>MySQL Workbench 8.0 y esta vez seleccione “MySQL
Workbench 8.0.20 x64” a la lista de productos.
6. Al terminar la configuración, ejecute la aplicación de la configuración haciendo clic
en “Execute”.
7. Finalmente, para terminar con la instalación haga clic en “Finish”.
8. MySQL Server y MySQL Workbench están ahora instalados en su equipo y puede
comenzar a desarrollar.

Procedimiento para configuración de un SGBD.


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.
La configuración de los parámetros del DBMS permite:

 Controlar la manera en que funciona el DBMS


 Recursos puestos a su disposición.
Cada DBMS también proporciona un método para cambiar los parámetros del sistema una
vez que está en funcionamiento.

 Comandos de DBMS para establecer los parámetros del sistema


 Editar un archivo que contiene los valores de los parámetros actuales del sistema.
Aunque el uso de valores por defecto puede ahorrar tiempo y hacer más fácil la
instalación, también puede dar lugar a problemas posteriores como la cantidad de
memoria utilizada para los datos o en el almacenamiento en cache. El no entender
completamente los parámetros utilizados por el DBMS puede resultar en un entorno de
base de datos configurado incorrectamente, lo que puede causar problemas de
rendimiento, en la integridad de los datos y, en el peor de los casos, el fracaso total del
DBMS. (Yarzagaray, 2016)

Comandos generales de alta y baja del SGBD


Comandos principales de MYSQL.
Arranque de los servidores

 Servidor Linux: safe_mysqld –user=mysqladm & root &


 Servidor Windows: Mysqld
 Arranque como usuario: mysql –u usuario –p clave
En el caso en el que el servidor no se encuentre en el ordenador que estamos trabajando
la orden de uso será: mysql –h nombre_host –u usuario –p clave
Consultas generales sobre las bases de datos

 Mostrar las bases de datos: show databases;


 Mostrar las bases de datos seleccionadas: select databases();
 Mostrar las tablas que contiene una base de datos: show tables;
 Seleccionar una base de datos: use nombre_base;
 Describir la estructura de campos de una tabla: describe nombre_tabla;

Creación de bases de datos, tablas y registros


Crear una base de datos: create database nombre_base;
Creación de una tabla:
create [temporary] table [if no exists] nombre_tabla (
nombre_campo tipo opciones cláusulas,
“ “ “ ,
“ “ “ ,
[último campo] );

[temporary] --> la tabla existirá mientras exista la conexión con el cliente actual o hasta
que se emita la instrucción drop table.
[if no exist] --> si existe la tabla no se crea una nueva.

Inserción de registros en una base de datos:


insert [low_priority | delayed][ignore][into] nombre_tabla
forma_introducción
 LOW_PRIORYTY | DELAYED: la primera de las opciones hace que la inserción sea
postergada hasta que ningún cliente utilice la tabla. La segunda genera una cola de
introducción de registros, que se añadirán a la tabla cuando esta quede libre de
usuarios.
 IGNORE: se desechan las filas que duplican valores para claves únicas.
 Las formas de introducción son:
o w(lista_columnas) VALUE (lista_valores_o_expresión)
o w(lista_columnas) SELECT (opción_de_recuperación)
o wSET (nombre_columna=expresion, …)

Alteración de una tabla de datos y registros:


Modificación de la estructura de las tablas: permite renombrar la tabla o variar la
estructura de la tabla de datos. La sintaxis base es:
alter [ignore] table nombre lista_de_acción
La cláusula [ignore] se utiliza si existen datos duplicados en los valores de las claves de los
índices, de esta forma no se eliminarán una vez introducido el primero ( (Santos, 2003)).

También podría gustarte